34.8.7 Status
Name: | STATUS |
Offset: | 0x1A |
Reset: | 0x0000 |
Property: | - |
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
LENERR | SEXTTOUT | ||||||||
Access | R/W | R/W | |||||||
Reset | 0 | 0 |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
CLKHOLD | LOWTOUT | SR | DIR | RXNACK | COLL | BUSERR | |||
Access | R | R/W | R | R | R | R/W | R/W | ||
Reset | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 11 – LENERR Transaction Length Error
This bit is cleared automatically when responding to a new start condition with ACK or NACK (CTRLB.CMD=0x3) or when INTFLAG.AMATCH is cleared.
Writing a ‘0
’ to this bit has no
effect.
Writing a ‘1
’ to this bit will clear the
status.
Bit 11 – LENERR Transaction Length Error
This bit is set when the length counter is enabled (LENGTH.LENEN) and a STOP or repeated START is received before or after the length in LENGTH.LEN is reached.
This bit is cleared automatically if responding to a new start condition with ACK or NACK (write 3 to CTRLB.CMD) or when INTFLAG.AMATCH is cleared.
Writing a ‘0
’ to this bit has no effect.
Writing a ‘1
’ to this bit will clear the status.
Value | Description |
---|---|
0 | No length error has occurred. |
1 | Length error has occurred. |
Bit 9 – SEXTTOUT Client SCL Low Extend Time-Out
This bit is set if a client SCL low extend time-out occurs.
This bit is cleared automatically if responding to a new start condition with ACK or NACK (write 3 to CTRLB.CMD) or when INTFLAG.AMATCH is cleared.
Writing a ‘0
’ to this bit has no effect.
Writing a ‘1
’ to this bit will clear the status.
Value | Description |
---|---|
0 | No SCL low extend time-out has occurred. |
1 | SCL low extend time-out has occurred. |
Bit 7 – CLKHOLD Clock Hold
The client Clock Hold bit (STATUS.CLKHOLD) is set when the client is holding the SCL line low, stretching the I2C clock. Software must consider this bit a read-only status flag that is set when INTFLAG.DRDY or INTFLAG.AMATCH is set.
This bit is automatically cleared when the corresponding interrupt is also cleared.
Bit 6 – LOWTOUT SCL Low Time-out
This bit is set if an SCL low time-out occurs.
This bit is cleared automatically if responding to a new start condition with ACK or NACK (write 3 to CTRLB.CMD) or when INTFLAG.AMATCH is cleared.
Writing a ‘0
’ to this bit has no effect.
Writing a ‘1
’ to this bit will clear the status.
Value | Description |
---|---|
0 | No SCL low time-out has occurred. |
1 | SCL low time-out has occurred. |
Bit 4 – SR Repeated Start
When INTFLAG.AMATCH is raised due to an address match, SR indicates a repeated start or start condition.
This flag is only valid while the INTFLAG.AMATCH flag is one.
Value | Description |
---|---|
0 | Start condition on last address match |
1 | Repeated start condition on last address match |
Bit 3 – DIR Read / Write Direction
The Read/Write Direction (STATUS.DIR) bit stores the direction of the last address packet received from a host .
Value | Description |
---|---|
0 | Host write operation is in progress. |
1 | Host read operation is in progress. |
Bit 2 – RXNACK Received Not Acknowledge
This bit indicates whether the last data packet sent was acknowledged or not.
Value | Description |
---|---|
0 | Host responded with ACK. |
1 | Host responded with NACK. |
Bit 1 – COLL Transmit Collision
If set, the I2C client was not able to transmit a high data or NACK bit, the I2C client will immediately release the SDA and SCL lines and wait for the next packet addressed to it.
This flag is intended for the SMBus address resolution protocol (ARP). A detected collision in non-ARP situations indicates that there has been a protocol violation, and must be treated as a bus error.
Writing a ‘0
’ to this bit has no effect.
Writing a ‘1
’ to this bit will clear the status.
Value | Description |
---|---|
0 | No collision detected on last data byte sent. |
1 | Collision detected on last data byte sent. |
Bit 0 – BUSERR Bus Error
The Bus Error bit (STATUS.BUSERR) indicates that an illegal bus condition has occurred on the bus, regardless of bus ownership. An illegal bus condition is detected if a protocol violating start, repeated start or stop is detected on the I2C bus lines. A start condition directly followed by a stop condition is one example of a protocol violation. If a time-out occurs during a frame, this is also considered a protocol violation, and will set STATUS.BUSERR.
This bit is cleared automatically if responding to an address match with an ACK or a NACK (writing 0x3 to CTRLB.CMD) or INTFLAG.AMATCH is cleared.
Writing a ‘0
’ to this bit has no effect.
Writing a ‘1
’ to this bit will clear the
status.
Value | Description |
---|---|
0 | No bus error detected. |
1 | Bus error detected. |