The software reset call is a command sent from the
controller on the I2C bus that
instructs all devices that support the command to
be reset to the power-up default state. In order
for it to function as expected, the I2C
bus must be functional and no devices can be
hanging the bus.
The software reset call is defined as the
following steps:
- A start condition is sent by the I2C
bus controller.
- The address used is the reserved general call
I2C bus address '0000 0000' with the
R/W bit set to 0. The byte sent is 0x00.
- Any devices supporting the general call
functionality will ACK. If the R/W bit is set to 1
(read), the device will NACK.
- Once the general call address is acknowledged,
the controller sends only 1 byte of data equal to
0x06. If the data byte is any other value, the
device will not acknowledge or reset. If more than
1 byte is sent, no more bytes will be
acknowledged, and the device will ignore the
I2C message considering it
invalid.
- After the 1 byte of data (0x06) is sent, the
controller sends a STOP condition to end the
Software Reset sequence. A repeated START
condition will be ignored by the device and no
reset is performed.
One the above steps are completed successfully,
the device will perform a reset. This will clear
all register values back to power-on defaults.