
某宝买的USB转485能有多让人无语?
事情起因是我需要一个带电源输出的非隔离USB转RS485适配器,连接一个最近开发的设备,输出引脚顺序最好是5V GND B A,这个实现很简单我随手就可以做一个,不过动手之前还是查一下有没有成品,如果有合适的成品完全没必要自己折腾。搜了下还真找到了,原价4.9,优惠价2.81还包邮,和白送差不多。

到手试了下115200波特率下很多乱码,把外壳拆开以后我人都麻了,USB-A公头居然只焊接了两个物理固定脚,VCC D- D+ GND四根线一根也没有焊接。


不知道是个例还是普遍情况,回去看卖家的介绍,感觉有可能是普遍情况,卖家的宣传图里面貌似也没有焊接USB。顺便再吐槽一下卖家的宣传图“进口CH340芯片”,CH340是南京沁恒的产品,100%国产芯片,不知道进口芯片还要迷信到什么时候。

跟卖家反映了一下情况,卖家也算痛快,让退款,想一下这么便宜就算了。这种低价值物品质量问题“仅退款”是最佳处理方案,不过我真不差这几块钱,跟卖家反应也只是希望他们能把事情做得靠谱一点。
补焊USB的四个焊盘以后再次测试,115200波特率还是有乱码。大致看了下方案:主控是CH340G,真假未知,看了下引脚分布和正品是一样的,带12M外置晶振。我之前见过假的CH340芯片引脚分布和正品都不一样,想换个正品上去都没办法。

RS485接口芯片是3PEAK的TP8485E,支持3-5.5V电压,波特率最高支持250kbps,仪表行业用得很多,价格非常便宜。

还有一颗SOT-23-5的芯片,没有丝印,不过看引脚分布感觉是个非门(与非门),可能是SN74LVC1G04或者SN74LVC1G14(带施密特触发器功能)这类型号,应该是把TXD信号反相作为RS485方向控制用的。按照CH340手册,485方向控制推荐使用TNOW引脚,而CH340G并不带TNOW引脚,所以这颗SOT-23-5的芯片就是控制收发用的。

TXD信号经过RC滤波以后接入SN74LVC1G04芯片的2脚A,从4脚Y反相输出作为RS485接口芯片的方向控制来用。它这里这样用是有一些问题的,所以115200波特率下面有乱码就不奇怪了。我之前做过自动方向控制的TTL转485方案,只能说想省这个方向控制的成本并不是那么容易的。
到这里我已经搞清楚它有乱码的原因了,解决方法有两种:一种是使用CH341T、CH340E、CH340X这类带TNOW引脚的芯片,使用TNOW引脚作为RS485方向控制,方案如下图:

这是沁恒官方提供的USB转RS485方案,稳定性可靠性都有保障,而且CH340E/X的价格和CH340G差不多,这个方案也不会额外增加成本,甚至省下一颗12M的晶振成本还能低几毛钱。MSOP-10封装也比SOP-16封装小太多,可以把模块做得非常小巧。我如果自己做USB转485肯定会用这个方案。

当然,我暂时只需要一个带电源输出的非隔离USB转RS485测试,最好还是把手头这个模块改造一下,CH341T/E/X封装都不是SOP-16,更换可能性不大,只好从RS485接口芯片入手了。这就引出另外一个方案:使用MAX13487E这样的自动方向控制的RS485接口芯片,如下图:

我这里有MAX13487E的芯片库存,把TP8485E拆下来,换成MAX13487E。2脚和3脚需要上拉倒5V电源,这个好办,拆掉SOT-23-5的非门芯片,在4脚和5脚之间焊接一个0603 1k电阻即可,位置刚刚好,改造完成如下:

改造完成测试,115200波特率乱码消失,其它波特率也工作良好,原来的外壳太大,套个透明的热缩管完事,改造圆满结束。这个方案只有一个缺点:贵。MAX13487E一颗芯片价格抵得上这个模块的售价了,我只是改造一个就无所谓了。
最后总结下:这个USB转485适配器方案有问题,9600这样的低波特率凑合用可能还行,115200波特率就完全不行了,不过2.81的价格还包邮,也没什么好说的,我是做不了这种价格。