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