软件复位广播是 I2C 总线上的控制器发出的命令,指示所有支持该命令的器件复位为上电值。要确保按预期运行,I2C 总线必须能够正常工作,并且任何器件都不能挂起总线。
软件复位广播定义为以下步骤:
- I2C 总线控制器发送一个启动条件。
- 使用的地址是保留的通用广播 I2C 总线地址“0000 000”,其中 R/W 位设置为 0。发送的字节为 0x00。
- 任何支持通用广播功能的器件都将 ACK。如果 R/W 位设置为 1(读取),器件将 NACK。
- 通用广播地址得到确认后,控制器仅发送等于 0x06 的 1 字节数据。如果数据字节是任何其他值,器件将不会确认或复位。如果发送的数据超过 1 字节,则不会再确认更多字节,并且器件将忽略此 I2C 消息,将其视为无效。
- 发送 1 字节数据 (0x06) 后,控制器发送一个停止条件来结束软件复位序列。器件将忽略重复的启动条件,并且不执行复位。
成功完成上述步骤后,器件执行复位。这会将所有寄存器值恢复为上电默认值。所有 P 端口都将配置为输入。