打印

2812串口SCI

[复制链接]
3301|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2014-4-14 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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寄存器报错呢,还是其他的原因?
不知道有人遇到类似问题没?

相关帖子

沙发
拿起书本| | 2014-4-14 16:29 | 只看该作者
根据楼的的描述,感觉是你程序方面应该有什么问题吧?!

使用特权

评论回复
板凳
zhangmangui| | 2014-4-14 22:00 | 只看该作者
个人以前使用的时候    感觉2812的SCI似乎有些bug   但你说的这种问题没有遇到过
参考一些附件中的代码     **一下配置情况
sportctr1-V1.5.zip (517.89 KB)

使用特权

评论回复
地板
tuyongfei| | 2014-4-22 08:28 | 只看该作者
这个我早就能实现,不是我想找的。

使用特权

评论回复
5
jxmzzr| | 2014-4-22 10:26 | 只看该作者
我的也遇到过这种情况,得整个芯片软件复位后才通信正常。

使用特权

评论回复
6
qiuconnie| | 2014-9-13 16:15 | 只看该作者
你好,我也同样遇到了DSP SCI时不时进不了中断的问题,使用的是FIFO普通发送和中断接收,一次发送1包16个数,因为设置了SCI接收中断标志,能报出故障来发现的,若不复位程序,有可能会恢复中断,但时间不确定,请问你是怎么解决的?发送完复位一下TXFIFO reset,接收完也RXFITO reset一下不知道是否可以?

使用特权

评论回复
7
qiuconnie| | 2014-9-13 16:15 | 只看该作者
请加我qq31496647,谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝