打印
[其他]

HK32航顺单片机RS485应用的一个BUG

[复制链接]
2282|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RS, UG, ar
芯片缺货的情况依然没有缓解,ST的单片机价格也是居高不下,最近的一个设计中,使用了航顺的一款单片机HK32F103C8T6,价格要比ST的便宜不少,硬件兼容,软件需要做少量改动,上手起来还是比较容易。但在使用过程中也发现一些问题,这里跟大家分享一下。

使用特权

评论回复

相关帖子

沙发
键盘手没手|  楼主 | 2021-12-31 15:17 | 只看该作者
串口不进接收中断

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

使用特权

评论回复
板凳
键盘手没手|  楼主 | 2021-12-31 15:19 | 只看该作者
测试过程中发现经常485通讯中断(其它板子正常),重新上电后正常。以为是芯片死机了,但是在线仿真测试的时候发现芯片并没有死机,示波器测试串口接收端是有数据的,只是串口中断进不去了。

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

使用特权

评论回复
地板
键盘手没手|  楼主 | 2021-12-31 15:20 | 只看该作者
于是想了一个笨办法:

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

if(uart_dect_tick > 1000)
{
      uart_dect_tick = 0;
      uint8_t temp = USART1->SR;
      temp = USART1->DR;
}

使用特权

评论回复
5
键盘手没手|  楼主 | 2021-12-31 15:20 | 只看该作者
经过测试,发现确实是这样,串口接收部分也会偶尔卡一下,但是会自动恢复。没有再出现上面的问题。

在网上也发现其他朋友也遇到了此问题,说明这个芯片确实存在BUG,上面的方法只是一个无奈的解决方案,并不适用于所有情况,要求高的用户还是要慎重选择。

使用特权

评论回复
6
键盘手没手|  楼主 | 2021-12-31 15:21 | 只看该作者
抗干扰性能差

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

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



使用特权

评论回复
7
james03| | 2022-1-1 21:08 | 只看该作者
根据你的描述感觉应该是芯片进入了ORE状态,然后你使用的是串口的哪个中断呢

使用特权

评论回复
8
Sunriver_Yao| | 2022-8-6 12:42 | 只看该作者
用SysTick有个缺点,会加重Tick Interrupt执行负荷。换个简单的定时器吧, 例如Tim6 !  用两个参数:周期溢出,用于纠正“真正挂死错误”(5000ms之类);ch1输出比较,用于接收监督(10ms之类); ch2用于“长时间没有输入中断”监督(200ms)。没事就休眠。

使用特权

评论回复
9
t1ngus4| | 2022-8-21 18:18 | 只看该作者
听说航顺的抗干扰能力不太好

使用特权

评论回复
10
d1ng2x| | 2022-8-21 18:52 | 只看该作者
这个跟代码逻辑有关系吧,我用ST的程序直接烧录进去,是没有你这个问题的

使用特权

评论回复
11
cen9ce| | 2022-8-21 19:25 | 只看该作者
你是用航顺提供的demo修改的吗?

使用特权

评论回复
12
b5z1giu| | 2022-8-23 07:22 | 只看该作者
抗干扰的话,应该也还行吧,不然能通过检测么

使用特权

评论回复
13
y1n9an| | 2022-8-23 08:00 | 只看该作者
这问题我还没遇到过,可否看看你的电路呢?

使用特权

评论回复
14
liu96jp| | 2022-8-23 12:25 | 只看该作者
现在航顺好像也不是太过便宜吧

使用特权

评论回复
15
w2nme1ai7| | 2022-8-24 07:06 | 只看该作者
软件应该可以不改都行的

使用特权

评论回复
16
p0gon9y| | 2022-8-24 09:34 | 只看该作者
之前航顺有USB不兼容,后来也给改回来了

使用特权

评论回复
17
q1d0mnx| | 2022-8-24 10:17 | 只看该作者
上手相当容易了,基本是0改动的

使用特权

评论回复
18
lamanius| | 2022-8-24 11:22 | 只看该作者
感谢楼主分享,这个问题还没遇到过,可能就操作的事儿吧,就是程序操作的事儿

使用特权

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

本版积分规则

103

主题

1141

帖子

0

粉丝