36.5.13 I2CxBTO
I2C Bus Time-Out Register(1)
Note:
- It is recommended to write
this register only when the module is Idle (MMA =
0or SMA =0) or when the module is clock stretching (CSTR =1or MDR =1). - When TOBY32 is set (TOBY32 =
1) and the LFINTOSC, MFINTOSC, or SOSC is selected as the BTO clock source, the time-out time (TOTIME) will be approximately 1 ms. - If TOTIME = 0, the time-out is 64 periods of the prescaled BTO clock.
| Name: | I2CxBTO |
| Address: | 0x01F7 |
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| TOREC | TOBY32 | TOTIME[5:0] | |||||||
| Access | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
| Reset | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Bit 7 – TOREC Time-Out Recovery Selection
| Value | Description |
|---|---|
| 1 | A BTO event will reset the I2C module and set BTOIF |
| 0 | A BTO event will set BTOIF, but will not reset the I2C module |
Bit 6 – TOBY32 Time-Out Prescaler Extension Enable(2)
| Value | Description |
|---|---|
| 1 | BTO time = TOTIME * TBTOCLK * 32 |
| 0 | BTO time = TOTIME * TBTOCLK |
Bits 5:0 – TOTIME[5:0] Time-Out Time Selection
| Value | Name | Description |
|---|---|---|
| n | TOBY32 = 1 | Time-out is TOTIME periods of the prescaled BTO clock multiplied by 32 (TOTIME = n * TBTOCLK * 32) |
| n | TOBY32 = 0 | Time-out is TOTIME periods of the prescaled BTO clock (TOTIME = n * TBTOCLK) |
