[zz]C64x DSP 音频接口 McASP 应用编程要点
2007-04-19 17:13
McASP应用编程
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
(C64x DSP)
(1)McASP引脚
串行化引脚:AXR[n]的数据引脚,C6000最多支持8个串行化引脚,即n = 0 ~ 7;
发送时钟生成器:① AHCLKX – 高频率发送主时钟;② ACLKX – 发送位时钟;
发送帧同步产生器:AFSX – 发送帧同步或者左/右时钟(LRCLK);
接收时钟生成器:① AHCLKR;② ACLKR;
接收帧同步产生器:AFSR;
Mute输入/输出:① AMUTEIN – 输入,从外部设备;② AMUTE – 输出;③ 数据引脚AXR[n];
(2)时钟器
McASP发送和接收时钟可以独立进行编程;时钟有三种驱动方式:外部驱动,即通过输入到ACLKR/X引脚的外部时钟驱动;内部驱动,即对内部时钟源AUXCLK分频后驱动;混合驱动,即外部高频时钟输入到AHCLKX/R引脚,分频后作为ACLKR/X的驱动源;
ACLKX可以由外部时钟源进行驱动,也可以由AHCLKX分频后的内部时钟驱动;
AHCLKX可以由外部时钟源驱动,也可以由内部时钟AUXCLK的分频时钟进行驱动;
ACLKR可以由外部时钟源驱动,也可以由AHCLKR分频后的内部时钟驱动;
AHCLKR可以由外部时钟源驱动,也可以由AUXCLK的分频时钟驱动;
不同的驱动方式和传输触发方式由相应寄存器(ACLKXCTL、AHCLKXCTL、ACLKRCTL、AHCLKRCTL)的不同位段进行配置;
(3)帧同步器
帧同步有两种方式:burst和TDM。帧同步由AFSRCTL和AFSXCTL寄存器进行配置,主要可以配置的内容有:
① 内部驱动或者外部驱动;
② 上升沿或者下降沿触发帧同步;
③ 帧同步的数据宽度:位或者字;
④ 位延时:0,1,2个位时钟;
帧同步引脚AFSX和AFSR在传输立体声数据时可以配置为左/右时钟(LRCLK)来用;
(4)串行化器
每个串行化器n都有一个对应的数据引脚AXR[n]和一个对应的控制寄存器SRCTL[n]。
XRSR:移位寄存器;
XRBUF:数据缓冲寄存器;
(5)格式化
单元
初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计
格式化单元(传输字以及word在slot中的数据对齐、填充等)由三部分组成,涉及的寄存器是R/XMASK和R/XFMT:
① 位掩码和填充(掩码数据位,进行符号扩展);
接收:RMASK、RPBIT、RPAD;
发送:XMASK、XPBIT、XPAD;
② 循环右移(数据对齐字边界);
接收:RROT;
发送:XRROT;
③ 数据反转 (LSB和MSB反转);
接收:RRVRS;
发送:XRVRS;
(6)状态机
① 接收状态机:由RFMT寄存器控制,保存McASP状态和错误信息于RSTAT寄存器中;
② 发送状态机:由XFMT寄存器控制,保存McASP状态和错误信息于XSTAT寄存器中;
(7) TDM序列器
① 接收TDM序列器:由RTDM寄存器控制,保存当前接收slot于RSLOT寄存器中;
② 发送TDM序列器:由XTDM寄存器控制,保存当前接收slot于XSLOT寄存器中;
(8) 引脚功能控制
除了AMUTEIN引脚,所有的引脚均为双向引脚;双向引脚配置为McASP引脚或者GPIO引脚,由以下寄存器控制:
① PFUNC寄存器:配置为McASP或GPIO;
② PDIR寄存器:配置为输入或输出;
③ PDIN寄存器:配置为数据输入引脚;
④ PDOUT:当引脚配置为GPIO输出时,配置为数据输出引脚;当配置为McASP引脚时,无用;
⑤ PDSET:PDOUT别名,PDSET[n] = 1 -> PDOUT[n] = 1(配置PDSET[n] = 0时无作用);只在引脚配置为GPIO输出时有效;
⑥ PDCLR:PDOUT别名,PDSET[n] = 0 -> PDOUT[n] = 0 。。。;
(9)发送/接收部件初始化
Ø 如果涉及到外部时钟驱动,则需首先保证外部时钟的正常设置和工作;
Ø 设置GBLCTL = 0,重置McASP;
Ø 按序配置除了GBLCTL外的所有McASP寄存器:
① 电源和仿真器管理寄存器:PWRDEMU;
② 接收寄存器:RMASK,RFMT,AFSRCTL,ACLKRCTL,AHCLKRCTL,RTDM,RINTCTL,RCLKCHK;如果ACLKR、AHCLKR使用了外部时钟源,则必须首先与GBLCTL寄存器同步;
③ 发送寄存器:。。。;
④ 全局寄存器:PFUNC,PDIR,DITCTL,DLBCTL和AMUTE;PDIR必须在时钟寄存器和帧同步寄存器配置好之后才能配置;
⑤ DIT模式寄存器:DITCSRA[n],DITCSRB[n],DITUDRA[n]和DITUDRB[n];
Ø 如果AHCLKX和AHCLKR由内部时钟驱动,则启动;否则忽略此步:
① 设置GBLCTL. RHCLKRST和GBLCTL. XHCLKRST,重置内部高频时钟分频器;GBLCTL的所有其它位必须为0;
② 完成后读回GBLCTL相应字段,保证设置成功;
Ø 启动ACLKX和ACLKR(如果它们由外部时钟驱动,则忽略):
① 设置GBLCTL. RCLKRST和GBLCTL. XCLKRST,重置内部时钟分频器;GBLCTL的所有其它位必须保持原来的状态;
② 完成后读回GBLCTL相应字段,保证设置成功;
Ø 配置数据传输方式:
① 如果使用EDMA方式,则启动,即需要在McASP重置后还未运行前启动;
② 如果使用CPU中断方式,则启用McASP发送/接收中断功能;
③ 如果使用CPU轮询方式,则无需进行特别的配置;
Ø 激活串行化器
① 清空发送/接受状态寄存器:写XSTAT和RSTAT FFFFh;
② 设置GBLCTL.RSRCLR和GBLCTL.XSRCLR,准备启动串行化器;
③ 回读确保成功;