用户工具

站点工具


标准:bus:i2c:start

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
标准:bus:i2c:start [2025/10/19 20:32] – [信号和连接] hwwiki标准:bus:i2c:start [2025/10/19 20:50] (当前版本) – [电平转换] hwwiki
行 52: 行 52:
  
 1.8/3.3/5V之间的电平转换:用三极管(400KHz以下)、MOS管(1MHz以下)搭建转换电路,或直接用转换芯片(参考{{ :元器件:ic:logic:translators_level-shifters:ti_voltage_translation_buying_guide.pdf | Voltage Translation Buying Guide}}) 1.8/3.3/5V之间的电平转换:用三极管(400KHz以下)、MOS管(1MHz以下)搭建转换电路,或直接用转换芯片(参考{{ :元器件:ic:logic:translators_level-shifters:ti_voltage_translation_buying_guide.pdf | Voltage Translation Buying Guide}})
 +
 +==== 死锁 ====
 +
 +在通讯过程中,当从设备把SDA拉低,而此时主设备异常重启,主设备检测到SDA拉低,认为SDA被占用,同时主设备初始化SCL被拉高,从设备则一直等待SCL被拉低,从而陷入主从设备互锁的状态。
 +
 +解决方案:
 +  * **硬件**:复位主设备的同时,硬件复位从设备
 +  * **软件**:主设备复位后,控制主设备的SDA和SCL,模拟正常的通讯,使得从设备释放SDA。具体步骤见[[https://blog.mbedded.ninja/electronics/communication-protocols/i2c-communication-protocol/#stuck-i2c-buses|mbedded: I2C Communication Protocol > Stuck I2C Buses]]
  
 ===== 协议 ===== ===== 协议 =====
标准/bus/i2c/start.txt · 最后更改: 2025/10/19 20:50 由 hwwiki