多通道缓冲串口(McBSP):分为数据通路和控制通路:
数据通路主要是通过对应寄存器控制引脚(DR和DX)的数据收发的格式,完成数据的发送和接收。
控制通路主要通过对应寄存器控制时钟源选择、格式(CLKS和内部时钟等), 位同步(CLKR/CLKX)、帧同步(FSX/FSR)信号格式。
数据通路
传输数据寄存器:DRR、DXR
从时序图可看出D(R/X)按照数据单元读取,相1有2个数据单元,每个数据单元位数为12bit; 相2有3个Element,每个数据单元位数为8bit;
图中的参数,帧(FRAME):单相帧、双相帧(Phase1\Phase2)
数据单元(Elements/Words):每个相包含的数据单元数
数据位:每个数据单元包括的位数
这三个参数在XCR、RCR寄存器配置,如下
发送控制寄存器(XCR)
接收控制寄存器(RCR)
5-7位:相位1单元长度 (R/X)WDLEN1:(X/R)CR[7:5] = 001b;//相1每个数据单元位数为12bit
8-14位:相位1帧长度 (R/X)FRLEN1:(X/R)CR[14:8] = 01b;//相1有2个word (word/phase1)
16-17位:接收数据延迟(R/X)DATDLY:(X/R)CR[17:16] = 10b; //数据2bit延迟
21-23位:相位2单位长度 (R/X)WDLEN2:(X/R)CR[23:21] = 000b;//相2每个数据单元位数为8bit:
24-30位:相位2帧长度(R/X)FRLEN2:(X/R)CR[30:24] = 10b; //相2有3个Word(word/phase2)
31位:相位数(单相帧/双相帧) (R/X)PHASE:(X/R)CR[31] = 1;// 双相帧
除此之外,RCR,XCR还可以配置,32位位反转使能位,帧忽略位,压缩模式位,如下:
4位:32位位反转使能位 (R/X)WDREVRS:(R/X)CR[4],接收/发送 32位位反转使能位
(R/X)WDREVRS = 0:禁用32位的位反转。
(R/X)WDREVRS = 1:已启用了32位的位反转。32位数据首先被接收到LSB。
注意:只有5-7位(R/X)WDLEN1/2位设置为5h时,即设置32位操作模式,该位才有效。除此之外,XCOMPAND位(发送/接收压缩模式位)应设置为1h(传输首先从LSB开始);否则操作未定义。
(R/X)FIG:接收[发送]帧忽略位
(R/X)CR[18] (R/X)FIG = 0:重启第一个脉冲后的接收[发送]帧同步脉冲。
(R/X)FIG = 1:忽略第一个脉冲后的接收[发送]帧同步脉冲。
(R/X)COMPAND:(R/X)CR[20:19],发送/接收压缩模式位。
(R/X)COMPAND = 0:不压缩,发送/接收首先从MSB开始。
(R/X)COMPAND =1h:不压缩,发送/接收数据首先从LSB开始。
(R/X)COMPAND =2h:使用μ律压缩发送/接收数据。
(R/X)COMPAND =3h:使用a律压缩发送/接收数据。
注意:只有5-7位(R/X)WDLEN1/2位不为1h时,即不为8位操作模式时,该位才有效。
由于MCBSP是从设备,所以需要根据主设备(AIC33)来配置数据格式
主设备数据格式
单相、双字、每字16bit,1bit延迟,I2S模式
D4~D3 | D2~D1 | ||
0 | 1 | 0 | 1 |
左DAC数据通路播放左通道输入数据 | 右DAC数据通路播放右通道输入数据 |
D7~D6 | D5~D4 | ||
0 | 0 | 0 | 0 |
串行数据总线使用I2S模式 | 音频数据字长度16bit |
时钟极性:MCBSP在CLKX(BCLK)的下降沿发送数据(SDIN);在CLKR(BCLK)的上升沿接收数据(DOUT)。
帧极性: 高电平有效先发右声道 低电平有效先发左声道
极性介绍:AIC23为主设备,FOR两位设置模式,配置为FOR[1:0]=11,
时钟极性:在上升沿接收数据,下降沿发送数据。
帧极性:帧同步脉冲FSR和FSX均为高电平有效。
(一)完结!