单片机多机通信的奇怪问题
有一块买来的基于FT232RL芯片的模块,可以连接电脑USB和单片机串口进行通信的,我把FT232RL模块的Tx引脚直接经杜邦线接到3块51单片机的Rx引脚,发送信息时不...
有一块买来的基于FT232RL芯片的模块,可以连接电脑USB和单片机串口进行通信的,我把FT232RL模块的Tx引脚直接经杜邦线接到3块51单片机的Rx引脚,发送信息时不分地址,就是连续的发送数据包,波特率250K,3块单片机都接收到完全相同的数据。现在的问题是,如果单独接一块单片机,那么单片机可以接收到整个正确的数据包,而一旦对3块单片机同时发送,则接收大于0的字节时就很不稳定,总是会收到错误的数据。刚开始以为是驱动力不足,但是接上拉电阻没效果,甚至每个单片机配一个RS485芯片都没用(485芯片共用一个电源,可能有电源线上的干扰,这个在这里不研究了)。研究了一大堆通讯技术均没有解决问题,最后回归到原始的单片机对单片机通讯,发现,如果用1块单片机接收FT232的信号,然后再转发出去给另外3块单片机,则通信非常稳定,什么技术都不用,就4条杜邦线,经面包板中转,把1块单片机的Tx脚和3块单片机的Rx脚连接起来就可以了。
如果说,FT232发送的信号有问题,那么为什么用1块单片机接收就没问题?如果说驱动力不足,为什么上拉电阻无法解决问题?如果说干扰,为什么同样的线路,单片机之间直接通信就没干扰?而且,发送0就没干扰,只有发送大于0的字节才有干扰?
请大神帮忙猜猜是什么原因。不一定要分析到底,因为本人设备也有限,无法做太多实验,现在系统也可运作,只是对这个问题实在郁闷,难道买的FT232模块有缺陷?这块芯片有山寨货吗? 展开
如果说,FT232发送的信号有问题,那么为什么用1块单片机接收就没问题?如果说驱动力不足,为什么上拉电阻无法解决问题?如果说干扰,为什么同样的线路,单片机之间直接通信就没干扰?而且,发送0就没干扰,只有发送大于0的字节才有干扰?
请大神帮忙猜猜是什么原因。不一定要分析到底,因为本人设备也有限,无法做太多实验,现在系统也可运作,只是对这个问题实在郁闷,难道买的FT232模块有缺陷?这块芯片有山寨货吗? 展开
2个回答
展开全部
专业解答:
1:FT232驱动能力不是很强,你单接上拉是比较弱的,既然只用Tx,那么可以用个74HC04 的两个非门,放大TTL再输送到3个单片机上。
2:FT232 接过多设备,可能会导致波特率偏移,你可以调整下单片机波特率齿轮,或者降低波特率,速率可以适当降低,可以试试9600.
3:杜邦线一般小于30cm问题是不大的,不过要注意Tx和地要紧挨在一起方可。
4:0的接收属于电平误码率极低的数据,所以发送0是没有问题。
以上是针对你的描述进行的建议,因没见到实物或照片,那仅根据经验参考了,你可以试试
1:FT232驱动能力不是很强,你单接上拉是比较弱的,既然只用Tx,那么可以用个74HC04 的两个非门,放大TTL再输送到3个单片机上。
2:FT232 接过多设备,可能会导致波特率偏移,你可以调整下单片机波特率齿轮,或者降低波特率,速率可以适当降低,可以试试9600.
3:杜邦线一般小于30cm问题是不大的,不过要注意Tx和地要紧挨在一起方可。
4:0的接收属于电平误码率极低的数据,所以发送0是没有问题。
以上是针对你的描述进行的建议,因没见到实物或照片,那仅根据经验参考了,你可以试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询