不知道为啥,高阻状态也不行,不是相当于开路吗,怎么也形成回路给单片机供电了 ...
按原理是这个样子的,为啥不行我也不清楚了。
或者你给从机电源接入一个电容,让单片机断开gnd后有足够的能量切换io状态? 楼主描述的这个现象从芯片内部ESD保护二极管,是完全解释得通的。
具体就是:单片机的每个IO口,都对GND有一个反向的二极管,可以确保IO口电压不低于GND
VCC正常,SCL弱上拉,SDA弱上拉,GND断开。这时候整个PCB模组都处于VCC电位,没什么问题。
但是一旦开始通讯
VCC正常,SCL下拉,SDA下拉,GND断开。这时候整个PCB模组会通过SCL和SDA得到新的地线。GND的电压大约是SCL或SDA电压最小值+0.7V
故障节点通过SCL和SDA抽取了过多电流,将会使I2C波形无法正常产生。
另外,楼主的做法本身就是不符合I2C总线的本意。I2C和SPI从设计上并不支持跨板。
如需跨板,请使用RS232、RS485、CAN、LIN等通讯接口 VCC 发表于 2024-11-16 02:06
楼主描述的这个现象从芯片内部ESD保护二极管,是完全解释得通的。
具体就是:单片机的每个IO口,都对GND有 ...
对啊,我就怀疑是芯片内部导通了但是没有芯片内部电路图,有ESD二极管就说得通了,
今天只接5V电源一根线,测量公共地和STC8的GND电压压降0.47V左右,电压4.3V左右,接入信号线,拉低的时候,GND电压4.3V就通过二极管流向信号线,使信号线不能正常拉低。 本帖最后由 htr 于 2024-11-17 11:09 编辑
VCC 发表于 2024-11-16 02:06
楼主描述的这个现象从芯片内部ESD保护二极管,是完全解释得通的。
具体就是:单片机的每个IO口,都对GND有 ...
当时这个项目通信距离不远最远1米,用串口速度又太慢了,所以就搞得IIC,那知道还有这坑,有没有解决办法啊,只剩这个问题没解决了{:4_184:} 本帖最后由 htr 于 2024-11-17 11:56 编辑
VCC 发表于 2024-11-16 02:06
楼主描述的这个现象从芯片内部ESD保护二极管,是完全解释得通的。
具体就是:单片机的每个IO口,都对GND有 ...电源串个电阻,整个电源电压又不够了。。
页:
1
[2]