灵动微芯片CAN调试避坑
#申请原创# 使用芯片MM32F103系列芯片,CAN波特率为250K,主要功能为采集信号主动发送给主机。现象:发送一段时间数据后,就不再发送数据。
仿真现象:CAN1_PELI->MOD值变为9了,也就是说进入了复位模式
如果软件主动强行进行正常模式,过段时间也会反复进入。CAN1_PELI->TXERR有错误产生。CAN1_PELI->RXERR也有错误产生。
刚开始以为是波特率太高,晶振存在有一定的偏差倒至的,实际上在显波器看定时器输出波形误差才不到0.5%。把波特率降低到10K,确实好很多了,进入复位模式的时间变长了,有可能是一天才会出现一次,这样会倒至问题变得更加扑朔迷离。如果进入复位模式不加软件强行进入正常模式的话,设备就无法发送和接收数据了。
灵动微这个芯片主频为96M,实际运行的频率才48M。经过几个晚上的摸鱼。终于才捉住尾巴。
那就是把芯片的时钟主频降低至12M。实际上24M也行。怕出问题,还是改到了12M,好在这个设备实际使用的频率并不需要太高。波特率调回250K也没问题了。
以前使用的ST用的36M没有此问题。
本项目以前使用的是ST的芯片,后来ST涨价,不得不换成低成本的国产芯片。在程序的移植过程中可能会碰到一些问题,如果花点时间在这方面下功夫,还是可以把产品做好的,现在的国产也不错。但有些特殊用途的,一定也要考虑清楚替换料能不能把产品做稳定。
之前电话给厂家的技术,无耐技术有点不给力,答应帮忙弄的,但是一直没有收到回复,希望厂家能给力一点。同时希望大家使用国产,这样才会让厂商在欠缺方面有所提升。
属实国产的MCU需要完善和提升,不过现在国产做的已经很好了 多少有点玄学了,不过好在楼主解决了,也能给大家一个思路 这种事情一般都是速度过高导致的,不过不好查出来 国产现在越来越好了,而且做替换也是不错的选择 现在国产芯片很好用的,有些都可以完全兼容ST的了 MM32技术支持还可以吧,可能你的问题技术支持的朋友也没遇到过吧 嗯,国产的芯片还是需要下功夫的 你说主频降下来了,是不是CAN的频率也就下来了呢? 你要是直接修改CAN的分频系数是不是就好使了呀 没用过MM32的can,以后这个也算是一个经验帖了,学习了
页:
[1]