第11讲多通道缓冲串行接口(McBSP)§11.1McBSP的特性C54xDSP芯片中只有三款有McBSP串行接口功能,分别为C5402(2)、C5410(3)和C5420(6)。特点:(1)全双工通信。(2)双缓冲的发送和三缓冲的接收数据存储器,允许连续的数据流。(3)独立的接收与发送的帧和时钟信号。(4)可以直接与工业标准的编码器、模拟接口芯片(AICS)、其他串行A/D、D/A器件连接并进行通信。(5)具有外部移位时钟发生器及内部频率可编程移位时钟。(6)多达128个发送和接收通道数。(7)数据的大小范围选择,包括8、12、16、20、24和32位字长。(8)利用μ律或A律的压缩扩展通信。§11.1McBSP的特性—续(9)可以直接与如下类型的器件进行接口:1)T1/E1帧调节器2)MVIP转换兼容和ST-BUS兼容的器件3)IOM-2兼容器件4)AC97兼容器件5)IIS兼容器件6)SPI器件(10)可选的高位或低位先发送的8位数据发送。(11)帧同步和时钟信号的极性可编程。(12)可编程的内部时钟和帧发生器。§11.2McBSP的内部结构和工作原理McBSP结构包括数据通路和控制通路两部分,并通过7个引脚与外部器件相连接收引脚发送时钟引脚接收时钟引脚发送帧同步引脚接收帧同步引脚发送引脚外部时钟访问McBSP寄存器映射的方法采用子地址区分的多址映射一址的方法McBSP0McBSP1McBSP2名称地址(Hex)名称地址(Hex)名称地址(Hex)子地址描述RBR[1,2]-接收缓冲寄存器1,2RSR[1,2]-接收移位寄存器1,2XSR[1,2]-发送移位寄存器1,2DRR200020hDRR210040hDRR220030h-数据接收寄存器1DRR100021hDRR110041hDRR120031h-数据接收寄存器2DXR200022hDXR210042hDXR220032h-数据发送寄存器2DXR100023hDXR110043hDXR120033h-数据发送寄存器1SPSA00038hSPSA10048hSPSA20034h-子地址寄存器SPCR100039hSPCR110049hSPCR120035h00串行接口控制寄存器1SPCR200039hSPCR210049hSPCR220035h01串行接口控制寄存器2RCR100039hRCR110049hRCR120035h02接收控制寄存器1RCR200039hRCR210049hRCR220035h03接收控制寄存器2XCR100039hXCR110049hXCR120035h04发送控制寄存器1XCR200039hXCR210049hXCR220035h05发送控制寄存器2SRGR100039hSRGR110049hSRGR120035h06采样率发生器寄存器1SRGR200039hSRGR210049hSRGR220035h07采样率发生器寄存器2MCR100039hMCR110049hMCR120035h08多通道寄存器1MCR200039hMCR210049hMCR220035h09多通道寄存器2RCERA00039hRCERA10049hRCERA20035h0A接收通道使能寄存器段ARCERB00039hRCERB10049hRCERA20035h0B接收通道使能寄存器段BXCERA00039hXCERA10049hXCERA20035h0C发送通道使能寄存器段AXCERB00039hXCERB10049hXCERA20035h0D发送通道使能寄存器段BPCR00039hPCR10049hPCR20035h0E引脚控制寄存器§11.3McBSP的配置—SPCR1、SPCR2、PCRSPCR1(串行接口控制寄存器1)位名称功能15DLB数字循环返回(回送)模式:=0,禁止;=1,使能14~13RJUST接收符号扩展及判别模式:RJUST=00,DRR[1,2]靠右对齐。高位填0RJUST=01,DRR[1,2]靠右对齐,高位进行符号扩展RJUST=10,DRR[1,2]靠左对齐,低位填0RJUST=11,保留12~11CLKSTP时钟停止模式:CLKSTP=0X,禁止时钟停止模式。对于非SPI模式为正常的时钟。各种SPI模式包括如下几种情况:CLKSTP=10并且CLKXP=0时,时钟开始于上升沿,并无延时CLKSTP=10并且CLKXP=1时,时钟开始于下降沿,并无延时CLKSTP=11并且CLKXP=0时,时钟开始于上升沿,有延时CLKSTP=11并且CLKXP=1时,时钟开始于下降沿,有延时l0~8保留保留§11.3McBSP的配置—SPCR1、SPCR2、PCR位名称功能7DXENADX使能位DXENA=0时,DX使能关;DXENA=1时,DX使能开6ABISABIS模式ABIS=0时,禁止ABIS模式;ABIS=1时,使能ABIS模式5~4RINTM接收中断模式RINTM=00时,接收中断RINT由RRDY(字结束)和ABIS模式下的帧结束信号驱动RINTM=01时,接收中断RINT由块结束或多通道操作下的帧结束信号产生RINTM=10时,接收中断RINT由一个新的帧同步信号产生RINTM=11时,接收中断RINT由RSYNCERR产生3RSYNCERR接收同步错误=0时,无接收同步错误;=1时,McBSP检查到接收同步错误2RFULL接收移位寄存器(RSR[1,2])满RFULL=0时,接收缓冲寄存器RBR[1,2]没有出现上溢RFULL=1时,DRR[1,2]未读出,RBR[1,2]满,且RSR[1,2]也满(移入新的字后)1RRDY接收准备好RRDY=0时,接收器没有准备好RRDY=1时,接收器准备好从DRR[1,2]读取数据0RRST接收器复位,可以复位和使能接收器RRST=0时,串行接口接收器被禁止并且处于复位状态RRST=1时,串行接口接收器被使能§11.3McBSP的配置—SPCR1、SPCR2、PCRSPCR2(串行接口控制寄存器2)位名称功能15~10保留保留9FREE自由运行模式FREE=0时,禁止自由运行模式;FREE=1时,使能自由运行模式8SOFTSOFT(软件)模式位SOFT=0时,禁止SOFT模式;SOFT=1时,使能SOFT模式7FRST帧同步发生器复位FRST=0时,帧同步逻辑电路复位。采样率发生器不会产生帧同步信号FSGFRST=1时,在时钟发生器产生了(FPER+1)个CLKG时钟信号后,产生帧同步信号FSG例如,所有的帧同步计数器均由它们的编程值来加载6GRST采样率发生器复位GRST=0时,采样率发生器复位GRST=1时,采样率发生器从复位中退出。CLKG按照采样率发生器寄存器(SRGR[l,2])中的编程值产生时钟信号§11.3McBSP的配置—SPCR1、SPCR2、PCR位名称功能5~4XINTM发送中断模式XINTM=00时,发送中断XINT由XRDY(字结束)和ABIS模式下的帧结束信号驱动XINTM=01时,发送中断XINT由块结束或多通道操作下的帧结束信号产生XINTM=10时,发送中断XINT由一个新的帧同步信号产生XINTM=11时,发送中断XINT由XSYNCERR产生3XSYNCERR发送同步错误。XSYNCERR=0时,无发送同步错误XSYNCERR=1时,McBSP检查到发送同步错误2/XEMPTY发送移位寄存器(XSR[1,2])空/XEMPTY=0时,XSR[1,2]为空/XEMPTY=1时,XSR[1,2]不为空1XRDY发送准备好XRDY=0时,发送器没有准备好XRDY=1时,发送器准备好发送DXR[1,2]中的数据0XRST发送器复位,可以复位和使能发送器XRST=0时,串行接口发送器被禁止并且处于复位状态XRST=1时,串行接口发送器被使能§11.3McBSP的配置—SPCR1、SPCR2、PCRPCR(引脚控制寄存器)§11.3McBSP的配置—SPCR1、SPCR2、PCR位名称功能15~14保留保留13XIOEN发送通用I/O模式位,仅当SPCR2的/XRST=0时(发生器被禁止)有效XIOEN=0时,DX、FSX和CLKX配置为串行接口,并且不能用作通用I/OXIOEN=1时,DX引脚为通用输出引脚。FSX和CLKX为通用I/O。此时串行接口引脚不执行串行接口操作12RIOEN接收通用I/O模式位,仅当SPCR1的/RRST=0时(接收器被禁止)有效RIOEN=0时,DR、FSR、CLKR和CLKS配置为串行接口引脚,并且不能用作通用I/ORIOEN=1时,DR和CLKS引脚为通用输入引脚。FSR和CLKR为通用I/O。此时串行接口引脚不执行串行接口操作。CLKS引脚受接收器的/RRST和RIOEN信号的影响11FSXM发送帧同步模式位FSXM=0时,帧同步信号由外部器件驱动FSXM=1时,采样率发生器的帧同步模式位(SRGR2的FSGM位)决定帧同步信号10FSRM接收帧同步模式位FSRM=0时,帧同步信号由外部器件驱动,FSR为输入引脚FSRM=1时,片内采样率发生器产生帧同步信号,FSR为输出引脚(除非SRGR的GSYNC=1)9CLKXM发送器时钟模式位CLKXM=0时,发送器时钟由外部时钟驱动,CLKX为外部时钟输入引脚CLKXM=1时,CLKX为输出引脚,并且由内部采样率发生器驱动在SPI模式下(当CLKSTP为非0值):CLKXM=0时,McBSP为从器件,并且时钟(CLKX)由系统的SPI主器件驱动。CLKR由内部CLKX驱动;CLKXM=1,McBSP为主器件,并产生时钟(CLKX)去驱动它的接收时钟(CLKR)和系统的SPI从器件的移位时钟时钟和帧发生器§11.3McBSP的配置—SPCR1、SPCR2、PCR位名称功能8CLKRM接收时钟模式位情况1:SPCR1没有设置数字循环返回(回送)模式(DLB=0)CLKRM=0时,接收时钟(CLKR),是由外部时钟驱动的输入CLKRM=1时,CLKR为由内部采样率发生器驱动的输出引脚情况2:SPCR1设置了数字循环返回(回送)模式(DLB=1)CLKRM=0时,接收时钟(不是CLKR引脚)由发送时钟(CLKX)驱动,CLKX的特性由PCR的CLKXM位设定。CLKR引脚为高阻态;CLKRM=1时,CLKR为由发送时钟(CLKX)驱动的输出引脚。CLKX的特性由PCR的CLKXM位设定7保留保留6CLKS_STATCLKS引脚状态位。当CLKS被选作通用输入时,该位反映了CLKS引脚的值5DX_STATDX引脚状态位。当DX被选作通用输出时,该位反映了DX引脚的值4DR_STATDR引脚状态位。当DR被选作通用输入时,该位反映了DR引脚的值3FSXP发送帧同步脉冲的极性位FSXP=0时,帧同步脉冲FSX高电平有效;FSXP=1时,帧同步脉冲FSX低电平有效2FSRP接收帧同步脉冲的极性位FSRP=0时,帧同步脉冲FSR高电平有效;FSRP=1时,帧同步脉冲FSR低电平有效1CLKXP发送时钟极性=0时,在CLKX的上升沿采样发送数据;=1时,在CLKX的下降沿采样发送数据0CLKRP接收时钟极性=0时,在CLKR的下降沿采样接收数据;=1时,在CLKR的上升沿采样接收数据§11.4接收和发送控制寄存器RCR[1,2]和XCR[1,2]用于配置McBSP接收和发送操作的各种参数RCR1(接收控制寄存器1)RCR2(接收控制寄存器2)RCR1的位描述位名称功能15保留保留14~8RFRLEN1接收帧长度1RFRLEN1=0000000时,每帧的长度为1个字RFRLEN1=0000001时,每帧的长度为2个字…RFRLEN1=1111111时,每帧的长度为128个字7~5RWDLEN1接收字长1RWDLEN1=000时,为8位长RWDLEN1=001时,为12位长RWDLEN1=010时,为16位长RWDLEN1=011时,为20位长RWDLEN1=100时,