mcASP的中文dataBook可参考本人百度网盘文件
![](https://i-blog.csdnimg.cn/blog_migrate/f4add901a88c6d8c53605ccaaf1bcf47.png)
另外可参考csdn的文章
=======================================================================================================
=======================================================================================================
McASP即multichannel audio serial port,是通用音频接口,支持TDM(Time-Division Multiplexed stream)协议、I2S协议等。McASP可以非常灵活的与S/PDIF (Sony/Philips Digital Interface)等接口连接。McASP的数据线可以灵活的配置成输入或者输出,同步模式则根据具体接口设计来决定,可以配置成主模式(由内部生成帧同步、字同步、位同步)或者从模式(由外部提供帧同步、字同步、位同步)。
1、 McASP硬件框架
![](https://i-blog.csdnimg.cn/blog_migrate/eb4bdf6c38126a5c56ed07c84e51b803.jpeg)
由上图可以看出对于McASP接口的时钟(包括帧同步、字同步、位同步)是独立的,这也就意味着McASP可以设置输入输出不同采样率的数据。
2、McASP时钟配置
2.1、Bit Clock
MCASP时钟发生器可以产生两个独立的时钟域,即采集时钟(Receive)和播放时钟(Transmit)。bit clock主要有三种方式:内部时钟、外部时钟、混合时钟输入方式。
内部时钟是有主时钟经过分频送来的AUXCLK提供(具体请参考DM8168 TRM中的PRCM部分介绍);
![](https://i-blog.csdnimg.cn/blog_migrate/627e47681dc895fdebb2519438412e61.png)
外部时钟则可以通过晶体提供,即 输入到ACLKR/X引脚的外部时钟驱动;
混合式中输入方式,即外部高频时钟输入到AHCLK/R引脚,分频后作为ACLKR/X的驱动源;
![](https://i-blog.csdnimg.cn/blog_migrate/6703bf2970dd4f9c4234bf317dcf16e5.jpeg)
注:XCLK 表示 MCASP模块内部 位发送时钟。
疑问(本人):1)如果 AHCLK 使用 外部输入时钟信号AHCLKX_IN ,这种情况属于混合输入类型 ,如何连接音频芯片的时钟信号?
答: 如果使用外部输入信号,则该输入信号同时 连接到音频芯片对应时钟信号上 。以MCASP模块同音频芯片STGL500连接为例:
如果音频芯片 STGL500 采样率=48kHz,则系统时钟MCLK 需要24.576 MHz输入。而24.576MHz信号两种 连接方式:
方式一、 使用 外部晶振OSC =24.576MHz ,连接音频芯片MCLK和 MCSAP模块的发送高频主控时钟AHCLKX。这样保证MCASP模块和音频芯片的时钟同步。
方式二、由内部产生,即 由系统时钟AUXCLK经过MCASP模块分频后 产生24.576MHz。
![](https://i-blog.csdnimg.cn/blog_migrate/46c21b8e66c9233a92339dbaf34f4ac9.png)
由上图可以知道, CLKXM/ CLKRM决定 XCLK/ RCLK是由内部提供还是外部输入; CLKXP/ CLKRP控制 XCLK /RCLK的时钟极性,即上升沿采样或者下降沿采样;
注意:AHCLKX和AHCLKR也有两种方式,一种是外部提供,一种由 AUXCLK倍频得到。
2.2、Frame Clock
帧同步信号有两种不同的模式:突发模式、TDM模式。帧同步信号的选择是通过对接收和发送帧同步信号控制寄存器 AFSRCTL和 AFSXCTL来编程控制的。
主要的配置选项包括以下几个方面:
帧同步时钟驱动方式:内部产生、外部供给
帧同步信号极性:上升沿、下降沿
帧同步信号宽度:bit、word
位延时:在第一个数据位前的0、1或2个时钟周期(在I2S中要求位延迟设置为1)
![](https://i-blog.csdnimg.cn/blog_migrate/408b648681f2c51f260b2d4f65418e99.jpeg)
3、McASP的传输方式
在McASP传输模式中,TRM中讲解的很清楚,有三种:Burst Transfer Mode、Time-Division Multified Tramsfer Mode、Digital Audio Interface Transmit Transfer Mode。
3.1、Burst Transfer Mode
这种传输方式并非用于传输音频信号,常用于处理器之间传输控制信息等,此时其实McASP用作普通的串行通信接口。详细的配置方法请参见DM8168 TRM 14.2.6.1节。
以下网页说明了该模式如何使用:
http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/t/86981.aspx
3.2、Time-Division Multified Tramsfer Mode
最常用的一种传输方式;常用的音频格式I2S格式就是从TDM格式中把每帧中Slot数设置成2得到的。基本时序如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/032252f899e9849eda41cd0f054c1317.png)
图中每个Slot( 最多32个slot)都可以看作是一路信号(maybe 音频信号),每帧数据中包括多个通道的数据。对于标准I2S信号而言,每帧中包括两个Slot(即左右声道数据);扩展后的I2S信号中有2*N个Slot,包含了N路立体声音频数据,例如TW2865、TVP5158这类decoder中音频为多路复合数据(详见datasheet中描述)。
3.3、Digital Audio Interface Transmit Transfer Mode
该传输模式作为以上两种方式的一种补充,传输方式基本类似于I2S,但编码方式有所区别,采用BMC编码( Biphase-Mark Code,中文名: 差分曼彻斯特编码 )方式,如下图所示,详细解释请参考 通信原理相关知识:
![](https://i-blog.csdnimg.cn/blog_migrate/9d56f8e192b5eab574a10d09796f973d.png)
=======================================================================================================
精彩内容稍后继续,后续该文章还将讲述使用EDMA3配合MCASP采集音频数据
有任何问题和意见可以在评论区给我留言,我们一起探讨和学习
=======================================================================================================