2812串口SCI

2019-08-02 21:10发布

2812,使用SCI FIFO中断模式接收数据,波特率153.6K,数据包每包含16个8位数,每接收到一个数据即产生一个中断,也就是每一个数据包会产生16个中断。上位机最快每隔20ms左右发一包数据。
平时大多数时间下使用都是正常的。
但是诡异的是,不时会出现表现为串口无响应的故障。接上仿真器检查,发现确实有在数据线上有数据的情况下,DSP完全不响应中断。检查SCI寄存器,发现SCIRXST寄存器被置0xB2,也就是RX ERROR位,BRKDT位,FE位被置1,通过向SCICTL1寄存器的SW reset复位位写0,可以使串口重新响应中断,但是很快又会出现不响应中断的情况。同事SCIRXST被写0XB2
想让大家帮忙分析的是,这种情况有可能是因为什么导致的?SCIRXST被置为0xB2后,串口会被挂起?
查datasheet ,上面说BRKDT是SCI break标志位,被置为的原因是串口在丢失一个停止位后,连续检测到了十位的低电平
并且貌似在连接仿真器用断点进行调试时,这种现象发生的尤其频繁。我不能肯定的是上位机或者我自己的2812在使用断点调试时,打乱了串口的传输,造成SCIRXST寄存器报错呢,还是其他的原因?
不知道有人遇到类似问题没?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
拿起书本
1楼-- · 2019-08-03 01:51
根据楼的的描述,感觉是你程序方面应该有什么问题吧?!
zhangmangui
2楼-- · 2019-08-03 07:19
个人以前使用的时候    感觉2812的SCI似乎有些bug   但你说的这种问题没有遇到过
参考一些附件中的代码     坚持一下配置情况
sportctr1-V1.5.zip (517.89 KB, 下载次数: 67) 2014-4-14 21:59 上传 点击文件名下载附件
tuyongfei
3楼-- · 2019-08-03 09:03
 精彩回答 2  元偷偷看……
jxmzzr
4楼-- · 2019-08-03 11:11
我的也遇到过这种情况,得整个芯片软件复位后才通信正常。
qiuconnie
5楼-- · 2019-08-03 15:59
你好,我也同样遇到了DSP SCI时不时进不了中断的问题,使用的是FIFO普通发送和中断接收,一次发送1包16个数,因为设置了SCI接收中断标志,能报出故障来发现的,若不复位程序,有可能会恢复中断,但时间不确定,请问你是怎么解决的?发送完复位一下TXFIFO reset,接收完也RXFITO reset一下不知道是否可以?
qiuconnie
6楼-- · 2019-08-03 17:16
请加我qq31496647,谢谢!

一周热门 更多>