1、单片机A通过USART分别和B、C相连,且A控制着B和C的vcc引脚(通过MOS管)。假设AB通信完后,A关闭B的vcc,再打开C的Vcc,然后和C通信,此时的B会不会干扰AC通信?(此时B的Vcc虽然断开,但TXD、RXD、GND还与A相连,这样有干扰吗?)
2、1个单片机通过485芯片接入某一个485网路里,当单片机仅关闭自己的485芯片电源,而USART继续不断发送数据。对整个485网路而言,这样会干扰到其他设备间的正常通信吗?
我没有实际实验过。
但一般地说,单片机B的电源断掉后,其引脚会对联接于各引脚的导线电平产生影响。单片机电源断掉后,Vcc引脚即为地电平,而很多芯片输入引脚对电源和地各有一支二极管,这些二极管在正常工作时处于反接状态,对正常电平不会产生影响。但是,Vcc引脚处于地电平时,对输入信号来说,引脚接到Vcc的二极管就可能导通,使输入信号(你的这个例子中,就是A和C之间的通讯信号)拉低。
B和C再增加一个引脚用作片选就好了,A用于控制BC电源的引脚改为控制片选
B或者C只在自己片选引脚拉高的时候才收发串口消息
那得看B和C是什么样的设备,如果是单片机应该是可以,也不见得都可以,而且高速率没法保证.
原因是有些低压低功耗型io口上的电压会通过内部上拉引入到vcc,灌电流太多会启动,不多也会成负载,结果不好判断.
第二个问题也类似,不上电的设备也会成负载,什么样的485有没有隔离共不共地等等可能都有影响.
仅控制电源是不行的,因为MCU的IO通常都会采用带钳位二极管的设计,这会导致高电平输出被拉低。正确的办法是通过协议,用模拟开关来控制串口的接入或切出。更简单的办法是用485等总线接口,多点通迅时最好采用总线方式。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
你要实现什么功能,可别把这帮老师傅带跑偏了。我感觉你的方向是错误的。总线的协议很多,足够满足你。通讯硬件接口也有各种方案,很少见到去控制电源的。
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
首先,按规范是不允许这样做的,因为B/C单片机的电源一般对配置有电容去稳定供电,而VCC被断开后,这个电容是由你的TXD线充电,这无疑会拉低了TXD导致通讯失败。
正确的做法是通过协议线来通知,或直接在报文协议里用软件区分。
开发,最好用现成的东西,不要去创造。这样会耗费很多时间。做出来还可能有问题。三个设备通信。不要用USART,这是单发单收的。支持多设备通信的总线很多。 需要发数据就发,不需要发,就不发,程序完全可以控制。不需要控制转换芯片电源。你都知道要关电源了。就能进行对应的通信动作。