[其他] HK32航顺单片机RS485应用的一个BUG

[复制链接]
2796|17
 楼主| 键盘手没手 发表于 2021-12-31 15:17 | 显示全部楼层 |阅读模式
RS, UG, ar
芯片缺货的情况依然没有缓解,ST的单片机价格也是居高不下,最近的一个设计中,使用了航顺的一款单片机HK32F103C8T6,价格要比ST的便宜不少,硬件兼容,软件需要做少量改动,上手起来还是比较容易。但在使用过程中也发现一些问题,这里跟大家分享一下。
 楼主| 键盘手没手 发表于 2021-12-31 15:17 | 显示全部楼层
串口不进接收中断

硬件上是单片机+SP3485芯片,做485通讯,Modbus协议,电路板为从机,电脑为主机,总线上也挂了其它板子的从机设备。

5813361ceae9ec90fb.png
 楼主| 键盘手没手 发表于 2021-12-31 15:19 | 显示全部楼层
测试过程中发现经常485通讯中断(其它板子正常),重新上电后正常。以为是芯片死机了,但是在线仿真测试的时候发现芯片并没有死机,示波器测试串口接收端是有数据的,只是串口中断进不去了。

然后单独一块板子进行测试,一切正常,但是将485的通讯线短路几次后,又出现上述情况。判断是总线冲突导致的,但是其它板子是别人设计的,不好修改,只好在自己设计的板子上下功夫。换了ST的单片机,发现正常了,确定了是HK单片机的问题。硬件没问题,只能通过修改软件来解决了,清除接收中断、溢出中断、错误中断等都无效,后面在仿真中又发现,出问题后只要将串口寄存器USART1->SR和USART1->DR添加到监视串口,程序就可以恢复了。是不是说明只要读取一下串口寄存器的值就恢复了呢。
————————————————
 楼主| 键盘手没手 发表于 2021-12-31 15:20 | 显示全部楼层
于是想了一个笨办法:

定义一个全局变量,在滴答定时中断中+1,在串口接收中断中清零。由于485总线上一直在通讯,所以串口应该会频繁的进中断,该变量的值不会很大。在主程序中判断该变量,如果超过1000,说明超过1秒没进串口中断,应该是出问题了,此时程序读取一次串口寄存器的值即可。

  1. if(uart_dect_tick > 1000)
  2. {
  3.       uart_dect_tick = 0;
  4.       uint8_t temp = USART1->SR;
  5.       temp = USART1->DR;
  6. }
 楼主| 键盘手没手 发表于 2021-12-31 15:20 | 显示全部楼层
经过测试,发现确实是这样,串口接收部分也会偶尔卡一下,但是会自动恢复。没有再出现上面的问题。

在网上也发现其他朋友也遇到了此问题,说明这个芯片确实存在BUG,上面的方法只是一个无奈的解决方案,并不适用于所有情况,要求高的用户还是要慎重选择。
 楼主| 键盘手没手 发表于 2021-12-31 15:21 | 显示全部楼层
抗干扰性能差

使用过程中还发现,相比ST的芯片,航顺的抗干扰能力还有待优化。相同的硬件,当外部的交流接触器动作时,会引起电源的瞬间波动,ST的芯片正常工作,但是航顺的芯片会死机或者复位,性能还是有差距。当然,这个问题也可以通过优化电源设计等方法来解决。

总的来说,这个芯片在价格上有其优势,但在性能上也有有待优化的空间。



james03 发表于 2022-1-1 21:08 | 显示全部楼层
根据你的描述感觉应该是芯片进入了ORE状态,然后你使用的是串口的哪个中断呢
Sunriver_Yao 发表于 2022-8-6 12:42 | 显示全部楼层
用SysTick有个缺点,会加重Tick Interrupt执行负荷。换个简单的定时器吧, 例如Tim6 !  用两个参数:周期溢出,用于纠正“真正挂死错误”(5000ms之类);ch1输出比较,用于接收监督(10ms之类); ch2用于“长时间没有输入中断”监督(200ms)。没事就休眠。
t1ngus4 发表于 2022-8-21 18:18 | 显示全部楼层
听说航顺的抗干扰能力不太好
d1ng2x 发表于 2022-8-21 18:52 | 显示全部楼层
这个跟代码逻辑有关系吧,我用ST的程序直接烧录进去,是没有你这个问题的
cen9ce 发表于 2022-8-21 19:25 | 显示全部楼层
你是用航顺提供的demo修改的吗?
b5z1giu 发表于 2022-8-23 07:22 | 显示全部楼层
抗干扰的话,应该也还行吧,不然能通过检测么
y1n9an 发表于 2022-8-23 08:00 | 显示全部楼层
这问题我还没遇到过,可否看看你的电路呢?
liu96jp 发表于 2022-8-23 12:25 | 显示全部楼层
现在航顺好像也不是太过便宜吧
w2nme1ai7 发表于 2022-8-24 07:06 | 显示全部楼层
软件应该可以不改都行的
p0gon9y 发表于 2022-8-24 09:34 | 显示全部楼层
之前航顺有USB不兼容,后来也给改回来了
q1d0mnx 发表于 2022-8-24 10:17 | 显示全部楼层
上手相当容易了,基本是0改动的
lamanius 发表于 2022-8-24 11:22 | 显示全部楼层
感谢楼主分享,这个问题还没遇到过,可能就操作的事儿吧,就是程序操作的事儿
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1260

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部