《DSP28335-McBSP模块及寄存器中文资料.docx》由会员分享,可在线阅读,更多相关《DSP28335-McBSP模块及寄存器中文资料.docx(9页珍藏版)》请在优知文库上搜索。
1、1 McBSP简介1.1 McBSPMCBSP为多通道缓冲串口(MultichannelBufferedSerialPort)的简写,共有6个引脚,发送引脚MDX、接收引脚MDR、发送时钟信号引脚MCLKX、接收时钟信号引脚MCLKR、发送帧同步引脚MFSX和接收帧同步引脚MFSR028335有两个MCBSP模块,对应引脚如下,模块外设引脚对应GPIO对应PlN(LQFP)输入输出配置模块AMDXAGPIO20PIN64MDRAGPI021PIN65MCLKXAGPIO22PIN66MCLKRAGPIO58、7PINlo0、16MFSXAGPIO23PIN67MFSRAGPIO59.5PINl
2、10.12模块BMDXBGPlO24、12PlN68、21MDRBGPIO25.13PIN69、24MCLKXBGPK)26、14PlN72、25MCLKRBGPlo60、3PINIl1、10MFSXBGPlo27、15PIN73、26MFSRBGPlo61、1PINlI2、6备注:可通过配置GPIo对应的GPXMUXX相应位,选择对放的GPlo引脚1.2 MeRSP特点McBSP具有以下几个特点:1)全双工的通讯方式:2)通过两级缓冲发送和三级缓冲接收实现连续数据流的通信;3)独立的接收与发送的帧和时钟信号:4)可配置最多128个接收和发送通道;5)数据大小和范囤可选,可配置为8、12、16
3、、20、24、32位字长:6)数据传输时可选择高低位的发送顺序;7)可编程的内部时钟和帧发生器,可编程的帧同步和数据时钟极性;McBSP内部结构如下图所示:MCBSP结构图1.3McBSP中断描述1.3.1接收中断RRDYEOBRconditionFSRdetectedRSYNCERRRINTMbits00WTiRINTRINTENAMRINT1.3.2发送中断XRDYEOBXconditionFSXdetectedXsyncerrXlNTMbitsXINTEMXINT2DMA模块寄存器2.1.1 控制寄存器1SPCRl该寄存器设置MCBSP串口的数字回环模式、接收字符拓展和校验模式、CIOC
4、kStoP模式、DX是否允许、A-bis模式、接收中断模式等,并给很粗接受同步错误、接收移位寄存器空、接收就绪等状态位,此外该可以接收复位。1514131211108DLBRJUST|CLKSTP|ReservedR/W-0FVW-OR/W-0R-O76543210DXENAReservedRINTMRSYNCERRRFULLRRDYRRSTR/W-0R/W-0R/W-0R/W-0R-OR-OR/W-01.EGENDR/W=Read/Write;R=Readonly;-n=valueafterreset位名称功能描述15DLB数字环路模式设置0:环路模式无效1:数字环路模式有效,MCBSP内部
5、收发连接一体;14-13RJUST接收数据的符号拓展和对齐方式00:右对齐,MSB补零;01:右对齐,MSB符号拓展;10:左对齐,LSB补零;11:保留;12-11CLKSTP108保留7DXEANDX引脚延时使能0:DX引脚无效:1:DX引脚有效;6ABISABIS模式0:A-bis模式无效;1:A-bis模式有效:5-4RINTM接收中断模式设置00:由RRDY(字尾)和ABIS模式的顿尾驱动:01:由多通道运行时的块尾和帧尾产生;10:由一个新的帧同步信号产生:11:由RSYNCERR产生;3RSYNCERR接收同步错误;0:没有接受同步错误1:MCBSP检测到接收同步错误2RFULL
6、接收移位寄存器满0:RBBUZ不满1:DRR未读,RBR己满,RSR已填入新数据;1REDAY接收器就绪标志位,0:接收器未就绪或空;1:接收器就绪,表示CPU可以从DRR1/中读取数据,读取后自动清零;0RRST接收器复位0:串口接收器无效,处于复位状态;1:串口接收器有效2.1.2 控制寄存器2SPCR2SPCR2设置了MCBSP自由运行模式、SoFT模式、发送中断模式,并给出发送同步错误、发送移位寄存器空、发送准备好等状态位,此外还可进行发送复位、采样率发生器复位、帧同步发生电路复位。151098ReservedFREESOFTR-ORM-OR/W-076543210FRST|GRST|
7、XINTMXSYNCERR|XEMPTYXRDYXRSTRM-ORW-0RW-0R/W-0R-OR-OR/W-0LEGEND:R/W=Read/Write;R=Readonly;n=valueafterreset位名称功能描述15-10保留9FREE与仿真设置位,与SOFT搭配,参见下表8SOFT与仿真设置位,与FREE搭配,参见下表7FRST帧同步产生器复位设置0:帧同步逻辑复位,帧同步信号FSG不由采样率发生器提供;1:帧同步信号FSG每隔(FPER+1)个CLKG时钟产生一次;6GRST采样率发生器复位设置0:采样率发生器复位1:采样率发生器复位结束54XINTM发送中断模式设置00:由
8、XRDY(字尾)和ABIS模式的帧尾驱动:01:山多通道运行时的块尾和帧尾产生;10:由一个新的帧同步信号产生:11:由XSYNCERR产生;3XSYNCERR发送同步错误标志0:未发生错误:1:枪测到发送同步错误;2XEMPTY发送移位寄存器空0:发送移位寄存器空;1:发送移位寄存器未空:1XRDY发送器就绪0:发送器上位就绪;1:发送器已就绪,表明可以向DXR写入数据,写入后该位清零;0XRST发送器复位设置0:串口发送器无效,处于复位状态;1:串口发送器有效;表FREE、SOFT设置FREESOFT串口时钟状态00立即停止串1时钟,结束数据传送01若正在发送数据,则等到当前字发送完后停止
9、发送数据,接收数据不受影响;1X无论SoFT为何值,一旦出现断点,时钟继续运行,数据继续传输;2.1.3 引脚控制寄存器PCRPCR设置McBSP传输帧同步模式、接收帧同步模式、发送时钟模式、接收时钟模式、发送帧同步信号的极性、接收帧同步信号的极性、发送时钟极性、接收时钟极性,并给出CLKS、DX、DR引脚的状态。此外PCR还定义发送和接收部分在复位时相应引脚引脚是否配置为通用I/O:1512111098匚ReservedFSXMFSRMCLKXMCLKRMR-ORW-0RM-ORW-0RV-07643210SCLKMEReservedFSXPFSRPCLKXPCLKRPRV-0R-ORW-0
10、RW0RW-0RV-0LEGEND:R/W=Read/Write,R=Readonly;-n=valueafterreset位名称功能描述15-14保留13XIOEN发送通用I/O模式(仅当SPCR中的XRST=O时)0:DX、FSX.CLKX被设置为串口引脚,不用作通用I/O引脚;1:DX、FSX和CLKX不用作串口引脚,DX用作通用输出引脚,DSX和CLKX用作通用IO引脚;12RIOEN接收通用I/O模式(仅当SPCR中的RRST=O时)0:DRxFSRCLKR被设置为串口引脚,不用作通用I/O引脚;1:DR.FSR和CLKR不用作串口引脚,DRJECLKS用作通用输入引脚,FSR和CL
11、KR用作通用IO引脚:11FSXM发送帧同步模式0:帧同步信号由外部信号源驱动;1:帧同步信号由SRGR中的FSGM位决定;10FSRM接收帧同步模式0:帧同步信号由外部器件提供:FSR为输入引脚;1:帧同步信号由内部的采样率发生器提供,FSR为输出引脚:9CLKXMD发送时钟模式时:0:发送时钟由外部时钟驱动,CLKX为输入引脚1:CLKX为输出引脚,由内部的采样率发生器驱动:2)SPl模式时的设置:0:MCBSP作为从器件,CLKX由SPI系统中的主器件提供,CLKR在内部由CLKX驱动;1:MCBSP作为主器件,产生CLKX驱动CLKR及SPl系统中从器件的移位时钟;8CLKRM设置接收
12、时钟模式1)当SPCRl中的DLB=O时:0:CLKR为输入引脚,由外部时钟驱动:1:CLKR为输出引脚,由内部的采样率发生器驱动;2)当SPCRl中的DLB=I时:0:接收时钟(不是CLKR引脚)由发送时钟(ClkX)驱动,CLKX取决于PCR中的CLKXM位,CLKR引脚呈高阻抗:1:CLKR为输出脚,由发送时钟(CLKX)驱动,CLKX取决于PCR中的CLKXM位;7保留6CLKS_STATCLKS引脚状态,当CLKS作为通用输入时,该位用于反映该引脚的值0:低电平;1:高电平;5DX-STATDX引脚状态,当DX作为通用输出时,该位用于反映出该引脚的值4DR.STATDR引脚状态,当D
13、R作为通用输入时,该位用于反映出该引脚的值3FSXP发送帧同步极性0:发送帧同步FSX高电平有效;1:发送帧同步FSX低电平有效;2FSRP接收帧同步极性0:接收帧同步FSR高电平有效;1:接收帧同步FSR低电平有效:1CLKXP发送时钟极性0:在CLKX上升沿对发送数据采样;1:在CLKX下降沿对发送数据采样:0CLKRP接收时钟极性0:在CLKR下降沿对发送数据采样:1:在CLKR上升沿对发送数据采样;2.1.4 接收控制寄存器RCRlRCRI设置MCBSP接收时第一相的接收帧长度(从1个字到128个字、接收字长度(8、12、16、20、24、32bils)。15148Reserved匚RFRLEN1R-OR/W97540匚RWDLEN1IReservedR/W-0R-OLEGEND:R/W=Read/Write;R=Readonly;-n=valueafterreset