首页 理论教育 解决McBSP异常和错误状态问题

解决McBSP异常和错误状态问题

时间:2023-06-24 理论教育 版权反馈
【摘要】:为防止数据的丢失,用户应在第三个串行字完全移入到RSR1的至少前2.5个时钟周期读取DRR1的内容。McBSP通过将SPCR2中的Y位清除以表明发送器为空(或下溢)。这一脉冲将终止当前数据的发送并发起下一帧数据的发送,且XSYNCERR将被置位,通过配置SPCR2寄存器XINTM=11b,可向CPU发送中断。

解决McBSP异常和错误状态问题

1.接收器超载(RFULL=1)

RFULL=1表明接收器已经发生超载错误。遇到下列情况都发生时RFULL将被置位:

●在上次RBR到DRR的复制完成后(RRDY=1),DRR1没有被读取过。

●RBR1为满且没有发生RBR到DRR的复制。

●RSR1为满且没有发生RSR到RBR的复制。

为防止数据的丢失,用户应在第三个串行字完全移入到RSR1的至少前2.5个时钟周期读取DRR1的内容。接收器从复位状态释放开始运行后,必须至少接收了3个串行字才会将RFULL置位。下列事件发生时将会清除RFULL位且允许读取后面传输的数据:

●CPU或DMA控制器读取DRR1。

●复位接收器(RRST=0)或者TMS320F2833x器件复位。

2.意外的接收帧同步脉冲(RSYNCERR=1)(www.xing528.com)

这种错误出现在RFIG=0并且发生意外接收帧同步脉冲的场合。若在当前数据帧接收完全之前,又来一帧同步信号并启动新的一帧数据接收,该帧同步信号被称为意外的帧同步脉冲。该同步脉冲会停止当前数据帧的接收并开始下一帧数据的接收,接收器会将接收帧同步错误标志RSYNCERR置位,并可向CPU发送中断请求(配置SPCR1寄存器的RINTM为11b)。RSYNCERR标志只有在接收器复位或向该位写0时才会被清除。若RFIG=1,则接收帧同步信号被忽略,不影响数据接收。

3.发送器数据覆盖

当DXRx中的数据还未复制到XSRx中时,CPU或DMA控制器又向DXRx中写入数据,DXRx之前的数据将被覆盖。为避免数据覆盖现象,CPU在向DXRx中写入新数据之前,需查询并等待SPCR2寄存器中的XRDY位为1。当DXR1中的数据复制到XSR1中时,XRDY位会置位;当新的数据写入到DXR1中时,XRDY会清除。若用户配置SPCR2寄存器中的XINTM位为00b,则在每次XRDY置位时,可向CPU产生XINT中断,因而用户可在XINT中断程序中向DXRx写入新数据而避免数据覆盖现象。

4.发送器下溢978-7-111-49650-2-Chapter07-70.jpg

若在向DXR1中写入新的数据之前又产生了新的帧同步信号,那么DXRx中的旧数据将被再次发送。McBSP通过将SPCR2中的978-7-111-49650-2-Chapter07-71.jpgY位清除以表明发送器为空(或下溢)。当XSRx中的数据已经完全移出DX引脚并且DXR1还未装载入新的值或发送器复位然后又重新启动,将激活978-7-111-49650-2-Chapter07-72.jpg978-7-111-49650-2-Chapter07-73.jpg。在发送器下溢条件下,新的发送帧同步信号将使得发送器持续发送DXRx中的旧数据直至DXR1被重新赋值。当新的数据从DXR1中复制到XSR1中时,978-7-111-49650-2-Chapter07-74.jpg将置位。如果FSXM=1且FSGM=0,发送器将在发生DXR到XSR的复制时,产生一个内部的FSX;否则,发送器将等待发送帧同步信号然后发送数据。

5.意外的发送帧同步脉冲(XSYNCERR=1)

这种错误出现在XFIG=0并且发生意外发送帧同步脉冲的场合。这里意外的帧同步脉冲是指在当前帧的所有数据位还未发送完毕的情况下,又出现启动下一帧传送的帧同步脉冲。这一脉冲将终止当前数据的发送并发起下一帧数据的发送,且XSYNCERR将被置位,通过配置SPCR2寄存器XINTM=11b,可向CPU发送中断。若XFIG=1,发送帧同步脉冲将被忽略,不影响发送。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈