軟件復位廣播是 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ā)送一個停止條件來結(jié)束軟件復位序列。器件忽略重復啟動條件,不執(zhí)行復位。
成功完成上述步驟后,器件執(zhí)行復位。這會將所有寄存器值恢復為上電默認值。