STM32
直播中

俞舟群

7年用户 1067经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

STM8串口工作一段时间后出现通讯异常的原因?

公司有款产品用STM8L052R8T6串口(uart3 PF0 PF1)和STM8L051F3(UART1 PA2 PA3)通讯。芯片通过40cm长的导线连接在一起,导线可以拔插。连接线上串联有100R电阻。STM8L051F3控制一个电机,堵转时电流可能会有6A。    大部时间两个单片机处理休眠状态,关闭串口,RX脚配置为外部中断下降沿触发,TX配置为推挽输出高。芯片唤醒的时候把中断功能关闭再使能串口。发送数据前先发送几个0x00唤醒对方再发有用数据。通讯速率很低。
    产品在终端客户手上使用一段时间后可能会出现通讯不上的问题。出现问题后过一段时间可能会自行恢复。通过对STM8L052R8T6做热复位, 问题犹在,STM8L051F3有每分钟软件复位机制。系统重新后就正常了,经过一段时间后可能还会出现问题。有个客户反馈产品完全异常之前有出现10次操作有3次成功的状态。产品带回公司测试几个月也未能复现通讯异常状态。
    除了串口不能通讯外其它功能都可以正常操作。STM8L052R8的另外一个串口也还可以正常操作。STM8L051还可以执行按键检测和电机控制。
    咨询了一个熟悉芯片硬件的大哥,大哥说可能是串口硬件问题,STM8串口很弱。至于是什么弱,他没说。
    以上问题你有遇到过吗?大概会是什么原因?

回帖(1)

颜立歆

2024-4-15 15:43:48
有几种可能的原因导致通讯异常:

1. 导线连接不稳定:由于导线可以拔插,可能连接不牢固或接触不良,导致通讯中断或数据错误。
2. 电线长度和电阻:长距离的导线会引入较大的电阻和电感,可能导致信号衰减和干扰。串联的100R电阻可能会影响通讯质量。
3. 堵转电机产生的电磁干扰:堵转电机时电流较大,可能会产生电磁干扰影响串口通讯信号的稳定性。
4. 唤醒和初始化过程:可能与芯片唤醒和初始化过程相关,中断功能关闭再使能串口可能会导致某些中断信号被误触发或未处理。
5. 数据发送顺序和唤醒机制:发送几个0x00唤醒对方再发送有用数据可能也存在信号干扰的问题,可以考虑修改唤醒机制以提高通讯稳定性。

解决这些问题的方法包括:
1. 确保导线连接牢固,可以考虑使用焊接固定连接方式,减少连接不良的可能性。
2. 缩短导线长度,并且使用抗干扰能力更强的屏蔽导线,减少信号衰减和干扰。
3. 考虑在电机的供电线路上增加抗干扰威廉希尔官方网站 ,如电源滤波电容、电磁屏蔽等,以减少电磁干扰对串口的影响。
4. 重新设计唤醒和初始化流程,确保中断功能的正确配置和串口的正确初始化。
5. 重新评估数据发送顺序和唤醒机制,确保不会引入干扰或错误的信号。可以考虑使用其他唤醒方式,如低功耗定时器中断等。

如果问题仍然存在,可以通过调试串口通讯,检查数据传输是否存在错误或干扰,并查看日志或记录以确定问题出现的具体情况和原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分