I2C TIMEOUT addressOffset = 0x010

The TIMEOUT register allows setting an upper limit to certain I^ 2C bus times, informing by status flag and/or interrupt when those times are exceeded.

Two time-outs are generated, and software can elect to use either of them.

  1. EVENTTIMEOUT checks the time between bus events while the bus is not idle: Start, SCL rising, SCL falling, and Stop. The EVENTTIMEOUT status flag in the STAT register is set if the time between any two events becomes longer than the time configured in the TIMEOUT register. The EVENTTIMEOUT status flag can cause an interrupt if enabled to do so by the EVENTTIMEOUTEN bit in the INTENSET register.

  2. SCLTIMEOUT checks only the time that the SCL signal remains low while the bus is not idle. The SCLTIMEOUT status flag in the STAT register is set if SCL remains low longer than the time configured in the TIMEOUT register. The SCLTIMEOUT status flag can cause an interrupt if enabled to do so by the SCLTIMEOUTEN bit in the INTENSET register. The SCLTIMEOUT can be used with the SMBus.

Also see I2C Time-out.

Table 1. I2C registerName = TIMEOUT addressOffset = 0x010
Bit Symbol Description Reset value
3:0 TOMIN Time-out time value, bottom four bits. These are hard-wired to 0xF. This gives a minimum time-out of 16 I^ 2C function clocks and also a time-out resolution of 16 I^ 2C function clocks. 0xF
15:4 TO Time-out time value. Specifies the time-out interval value in increments of 16 I^ 2C function clocks, as defined by the CLKDIV register. To change this value while I ^ 2C is in operation, disable all time-outs, write a new value to TIMEOUT, then re-enable time-outs.

0x000 = A time-out will occur after 16 counts of the I^ 2C function clock.

0x001 = A time-out will occur after 32 counts of the I^ 2C function clock.

...

0xFFF = A time-out will occur after 65,536 counts of the I^ 2C function clock.

0xFFF
31:16 - Reserved. Read value is undefined, only zero should be written. NA


-->