目录
1. 问题描述
使用485过程中,发现有时候上位机可正常接收数据,有时候收到错误的数据,更令人奇怪的是,用淘宝买的这种485转usb工具会出现这种问题
用帝特的就不会
担心大家没耐心,直接说结果,再说分析过程
2.原因
是因为485芯片的DE信号并联了一个100nf的电容,导致芯片DE的逻辑电平变化延时,DI变化了而DE还没变化,导致DI的第一位丢失
3.解决
把C2电容去掉,或换成1pF的电容即可
4.分析过程
“使用485过程中,发现有时候上位机可正常接收数据,有时候收到错误的数据” 说明MCU可以正常接收上位机的报文,只是在发送报文给上位机时错误,于是我用逻辑分析仪分析485芯片收到来自MCU的UART数据和485发送给上位机的485数据,发现分析与解析出来的单片机发送的数据和485发送的数据是一样的,无解。
于是继续用示波器测试485的数据,发现AB电平也是对称的,没发现异常,下图是网上找的示意图
于是分别测试DE和DI,RE和RO,由485的逻辑电平可知,DE高电平时,DI的数据才能有效发送,发现DE比DI延时,所以DI的第一位可能已经丢失。
那问题来了,为什么电容的容值会影响通信的电平响应时间呢?
当电容容值增大时,充电和放电的过程会变慢,因为电容需要更长的时间来积累或释放电荷。这会导致信号的延迟,从而增加通信系统的响应时间。相反,减小电容容值可以加快充放电速度,减少信号延迟,从而缩短通信系统的响应时间