The Software Reset Call provides a mechanism to
return all devices on the I²C bus to the power-up default state by issuing a
specifically formatted I²C command. This operation assumes that the I²C bus is
operating correctly and that no device is holding the bus in a latched or “hung”
condition. The Software Reset sequence is defined as the following:
- The I²C controller issues a START condition.
- The controller transmits the reserved General
Call address '0000 000' with the R/W bit set to 0 (write).
- A device acknowledges only when detecting the
full General Call address 0000 0000 (00h). If the R/W bit is set to 1 (read), no
acknowledge is generated.
- After the General Call address is acknowledged,
the controller transmits a single data byte with the value 06h.
- The device acknowledges
only when this data byte is equal to 06h.
- If the data byte is not
06h, or if more than one data byte is transmitted, the device does not
acknowledge further.
- When the correct byte has been received and acknowledged, the controller
must issue a STOP condition to complete the Software Reset sequence. At
this point, the device resets the registers to the power-up default
values and becomes ready for subsequent bus transactions after the
required bus-free time.
- If a Repeated START
condition is issued instead of a STOP, the reset is not performed.
- Any missing acknowledge
from the device at any point in this sequence shall be treated by the
controller as a Software Reset Abort. In such a case, the device does
not initiate any register reset.