我公司有一款已经量产的产品内包括两个芯片,STM32F103使用uart1与STM8S105之间通过串口进行联系,两芯片之间串有一个200欧电阻,STM32F103工作在3.1V左右,STM8S105工作在5V左右。
昨天我们维修了一块板子,32F向105发数据示波器上清楚明显,8S105仿真可以看到进中断,但是8S105的串口接收缓冲读UART2_DR数据一直为0x0;更换芯片也是一样通不上,反复断电,手动复位也一样。后来想到32F电压可能太低,于是将32F电压提高到3.78V左右,依然通讯不上。
后来用串口监测工具,通过MAX232转成5V 与 8S105通讯,仿真时可以正常通讯(可以进中断,UART2_DR数据正常),于是去掉串口监测工具,让工作在3.78V条件下的产品32F103与8S105通讯,正常了。
后来改用正常产品时的电压32F103工作在3.1V左右,8S105工作在5V左右,两芯片之间通讯正常了。
我的疑问:STM8S105,本来通讯不上的板子,用MAX232转成的TTL电平通讯一下就好了,什么机理。我的产品是不是存在很大的风险啊。可以两年多来,已经出货6万多台产品没有客户反馈产品已经坏了啊。真奇怪!!
请香水城解释一下。谢谢。
|