軟件復位廣播是 I2C 總線上的控制器發(fā)出的命令,指示所有支持該命令的器件復位為上電默認狀態(tài)。要確保按預期運行,I2C 總線必須能夠正常工作,并且任何器件都不能掛起總線。
軟件復位廣播定義為以下步驟:
- I2C 總線控制器發(fā)送一個啟動條件。
- 使用的地址是保留的通用廣播 I2C 總線地址“0000 0000”,其中 R/W 位設置為 0。發(fā)送的字節(jié)為 0x00。
- 任何支持通用廣播功能的器件都將 ACK。如果 R/W 位設置為 1(讀?。骷?NACK。
- 通用廣播地址得到確認后,控制器僅發(fā)送等于 0x06 的 1 字節(jié)數(shù)據(jù)。如果數(shù)據(jù)字節(jié)是任何其他值,器件將不會確認或復位。如果發(fā)送的數(shù)據(jù)超過 1 字節(jié),則不會再確認更多字節(jié),并且器件將忽略 I2C 消息,將其視為無效。
- 發(fā)送 1 字節(jié)數(shù)據(jù) (0x06) 后,控制器發(fā)送一個停止條件來結束軟件復位序列。器件將忽略重復的啟動條件,并且不執(zhí)行復位。
成功完成上述步驟后,器件將執(zhí)行復位。這會將所有寄存器值恢復為上電默認值。