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