The Software Reset call is a command send from the controller on the I2C
bus that instructs all devices that support the command to be reset to power-up
values. 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 000' 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 acknlowedged, and the device will ignore this 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.
Once the above steps are completed successfully, the device will perform a reset.
This will clear all register values back to power-on defaults. All P-ports will be
configured as inputs, regardless of the port mode configuration of the P3
port.