SPRUJF2A March 2026 – March 2026 AM13E23019
Table 24-54 lists the memory-mapped registers for the UNICOMMI2CT_REGS registers. All register offset addresses not listed in Table 24-54 should be considered as reserved locations and the register contents should not be modified.
| Offset | Acronym | Register Name | Section |
|---|---|---|---|
| 0h | CLKDIV | Clock Divider | Go |
| 8h | CLKSEL | Clock Source Selection/Enable. | Go |
| 18h | PDBGCTL | Peripheral Debug Control | Go |
| 20h | IIDX | Interrupt index | Go |
| 28h | IMASK | Interrupt mask | Go |
| 30h | RIS | Raw interrupt status | Go |
| 38h | MIS | Masked interrupt status | Go |
| 40h | ISET | Interrupt set | Go |
| 48h | ICLR | Interrupt clear | Go |
| 58h | IMASK | Interrupt mask | Go |
| 60h | RIS | Raw interrupt status | Go |
| 68h | MIS | Masked interrupt status | Go |
| 70h | ISET | Interrupt set | Go |
| 88h | IMASK | Interrupt mask | Go |
| 90h | RIS | Raw interrupt status | Go |
| 98h | MIS | Masked interrupt status | Go |
| A0h | ISET | Interrupt set | Go |
| E4h | INTCTL | Interrupt control register | Go |
| 100h | CTR | I2C Target Control Register | Go |
| 104h | ACKCTL | I2C Target ACK Control | Go |
| 108h | SR | Status Register | Go |
| 10Ch | IFLS | Interrupt FIFO Level Select Register | Go |
| 118h | GFCTL | I2C Glitch Filter Control | Go |
| 120h | TXDATA | I2C TXData | Go |
| 124h | RXDATA | I2C RXData | Go |
| 128h | PECSR | PEC status register | Go |
| 148h | OAR2 | Own Address 2 | Go |
| 14Ch | OAR | I2C Own Address | Go |
| 150h | TIMEOUT_CNT | I2C Timeout Count Register | Go |
| 154h | TIMEOUT_CTL | I2C Timeout Count Control Register | Go |
| 158h | PECCTL | I2C PEC control register | Go |
Complex bit access types are encoded to fit into small table cells. Table 24-55 shows the codes that are used for access types in this section.
| Access Type | Code | Description |
|---|---|---|
| Read Type | ||
| R | R | Read |
| Write Type | ||
| W | W | Write |
| Reset or Default Value | ||
| -n | Value after reset or the default value | |
CLKDIV is shown in Figure 24-53 and described in Table 24-56.
Return to the Summary Table.
I2CT Clock Divider. This register is used to specify the module-specific divide ratio of the I2CT functional clock (I2Cclk).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||||||||||
| R/W-0h | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RATIO | ||||||||||||||
| R/W-0h | R/W-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R/W | 0h | |
| 2-0 | RATIO | R/W | 0h | Selects divide ratio of module clock
Division factor
0 : DIV_BY_1
1 : DIV_BY_2
....
63: DIV_BY_64
0h = Do not divide clock source 1h = Divide clock source by 2 2h = Divide clock source by 3 3h = Divide clock source by 4 4h = Divide clock source by 5 5h = Divide clock source by 6 6h = Divide clock source by 7 7h = Divide clock source by 8 |
CLKSEL is shown in Figure 24-54 and described in Table 24-57.
Return to the Summary Table.
I2CT Clock Source Selection.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MCLKDIV2 | RESERVED | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R/W | 0h | |
| 3 | MCLKDIV2 | R/W | 0h | Enables MCLKDIV2 as the UNICOMM I2CT clock source.
0h = Does not select this clock as a source 1h = Select this clock as a source |
| 2-0 | RESERVED | R/W | 0h |
PDBGCTL is shown in Figure 24-55 and described in Table 24-58.
Return to the Summary Table.
I2CT Debug Control. This register can be used by the software developer to control the behavior of the peripheral relative to the 'Core Halted' input.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SOFT | FREE | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R/W | 0h | |
| 1 | SOFT | R/W | 1h | Soft Halt Boundary Control. This function is only available, if [FREE] is set to 'STOP' 0h = Not supported 1h = The peripheral blocks the debug freeze until it has reached a boundary where it can resume without corruption |
| 0 | FREE | R/W | 1h | Free Run Control.
0h = The peripheral freezes functionality while the Core Halted input is asserted and resumes when it is deasserted. 1h = The peripheral ignores the state of the Core Halted input |
IIDX is shown in Figure 24-56 and described in Table 24-59.
Return to the Summary Table.
This register provides the highest priority enabled interrupt index.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | STAT | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | STAT | R | 0h | I2CT Interrupt Vector Value. This field provides the highest priority interrupt index. A read clears the corresponding interrupt flag in RIS and MIS. 15h-1Fh = Reserved.
00h = No Interrupt Pending. 1h = Receive Done Flag. 2h = Transmit Done Flag. 3h = RX FIFO Trigger Level. 4h = TX FIFO Trigger level 5h = RX FIFO Full Event/Interrupt Pending. 6h = TX FIFO Empty Event/Interrupt Pending. 7h = I2CT TX FIFO Underflow Event. 8h = I2CT RX FIFO Overflow Event. 9h = General Call Event. Ah = START Event. Bh = STOP Event. Ch = PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances. Dh = Timeout Counter A Event. Eh = Timeout Counter B Event. Interrupt only valid for Advanced UNICOMM I2CT instances. 10h = DMA DONE on Channel RX. 11h = DMA DONE on Channel TX. 12h = Arbitration Lost. |
IMASK is shown in Figure 24-57 and described in Table 24-60.
Return to the Summary Table.
Interrupt Mask. If a bit is set, then corresponding interrupt is un-masked. Un-masking the interrupt causes the raw interrupt to be visible in IIDX, as well as MIS.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ARBLOST | DMA_DONE_TX | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DMA_DONE_RX | RESERVED | TIMEOUTB | TIMEOUTA | PEC_RX_ERR | STOP | START | GENCALL |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RX_OVFL | TX_UNFL | TXEMPTY | RXFULL | TXTRG | RXTRG | TXDONE | RXDONE |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R/W | 0h | |
| 17 | ARBLOST | R/W | 0h | Arbitration Lost Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 16 | DMA_DONE_TX | R/W | 0h | I2CT DMA Done on TX Event Channel Interrupt Mask.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 15 | DMA_DONE_RX | R/W | 0h | I2CT DMA Done on RX Event Channel Interrupt Mask.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 14 | RESERVED | R/W | 0h | |
| 13 | TIMEOUTB | R/W | 0h | Timeout Counter B Interrupt. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 12 | TIMEOUTA | R/W | 0h | I2CT Timeout Counter A Interrupt Mask.
This interrupt is raised when the SCL line is continously low for longer than the clock timeout period programmed by the TIMEOUT_CTL.TCNTLA register.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 11 | PEC_RX_ERR | R/W | 0h | PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 10 | STOP | R/W | 0h | I2CT STOP Condition Interrupt Mask.
This interrupt is raised when a STOP condition is detected on the bus.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 9 | START | R/W | 0h | I2CT START Condition Interrupt Mask.
This interrupt is raised when a START or repeated START condition is detected on the bus.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 8 | GENCALL | R/W | 0h | I2CT General Call Interrupt Mask.
This interrupt is raised when a general call frame, with an address of 0x00 and R/W bit of '0', is received.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 7 | RX_OVFL | R/W | 0h | I2CT RX FIFO Overflow Interrupt Mask.
This interrupt is raised when the I2CT receiver tries to receive data, as a result of receiving an address match with a R/W bit of '0', but the I2CT RX FIFO is full.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 6 | TX_UNFL | R/W | 0h | I2CT TX FIFO Underflow Interrupt Mask.
This interrupt is raised when the I2CT transmitter tries to send data, as a result of having received an address match with a R/W bit of '1', but the I2CT TX FIFO is empty.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 5 | TXEMPTY | R/W | 0h | I2CT TX FIFO Empty Interrupt Mask.
This interrupt is raised when all data has been shifted out of the TX FIFO and the I2CT transmitter goes idle.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 4 | RXFULL | R/W | 0h | I2CT RX FIFO Full Interrupt Mask.
This interrupt is raised when the RX FIFO is full.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 3 | TXTRG | R/W | 0h | I2CT Transmit Trigger Interrupt Mask.
This interrupt is raised when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 2 | RXTRG | R/W | 0h | I2CT Receive Trigger Interrupt Mask.
This interrupt is raised when the RX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 1 | TXDONE | R/W | 0h | I2CT Transmit Done Interrupt Mask.
This interrupt is raised after each byte is transmitted.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 0 | RXDONE | R/W | 0h | I2CT Receive Done Interrupt Mask.
This interrupt is raised after each byte is received.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
RIS is shown in Figure 24-58 and described in Table 24-61.
Return to the Summary Table.
Raw interrupt status. Reflects all pending interrupts, regardless of masking. The RIS register allows the user to implement a poll scheme. A flag set in this register can be cleared by writing 1 to the ICLR register bit even if the corresponding IMASK bit is not enabled.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ARBLOST | DMA_DONE_TX | |||||
| R-0h | R-0h | R-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DMA_DONE_RX | RESERVED | TIMEOUTB | TIMEOUTA | PEC_RX_ERR | STOP | START | GENCALL |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RX_OVFL | TX_UNFL | TXEMPTY | RXFULL | TXTRG | RXTRG | TXDONE | RXDONE |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | |
| 17 | ARBLOST | R | 0h | Arbitration Lost Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 16 | DMA_DONE_TX | R | 0h | I2CT DMA Done on TX Event Channel Interrupt Raw Status.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 15 | DMA_DONE_RX | R | 0h | I2CT DMA Done on RX Event Channel Interrupt Raw Status.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 14 | RESERVED | R | 0h | |
| 13 | TIMEOUTB | R | 0h | Timeout Counter B Interrupt. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 12 | TIMEOUTA | R | 0h | I2CT Timeout Counter A Interrupt Raw Status.
This interrupt is raised when the SCL line is continously low for longer than the clock timeout period programmed by the TIMEOUT_CTL.TCNTLA register.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 11 | PEC_RX_ERR | R | 0h | PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 10 | STOP | R | 0h | I2CT STOP Condition Interrupt Raw Status.
This interrupt is raised when a STOP condition is detected on the bus.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 9 | START | R | 0h | I2CT START Condition Interrupt Raw Status.
This interrupt is raised when a START or repeated START condition is detected on the bus.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 8 | GENCALL | R | 0h | I2CT General Call Interrupt Raw Status.
This interrupt is raised when a general call frame, with an address of 0x00 and R/W bit of '0', is received.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 7 | RX_OVFL | R | 0h | I2CT RX FIFO Overflow Interrupt Raw Status.
This interrupt is raised when the I2CT receiver tries to receive data, as a result of receiving an address match with a R/W bit of '0', but the I2CT RX FIFO is full.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 6 | TX_UNFL | R | 0h | I2CT TX FIFO Underflow Interrupt Raw Status.
This interrupt is raised when the I2CT transmitter tries to send data, as a result of having received an address match with a R/W bit of '1', but the I2CT TX FIFO is empty.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 5 | TXEMPTY | R | 0h | I2CT TX FIFO Empty Interrupt Raw Status.
This interrupt is raised when all data has been shifted out of the TX FIFO and the I2CT transmitter goes idle.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 4 | RXFULL | R | 0h | I2CT RX FIFO Full Interrupt Raw Status.
This interrupt is raised when the RX FIFO is full.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 3 | TXTRG | R | 0h | I2CT Transmit Trigger Interrupt Raw Status.
This interrupt is raised when the TX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 2 | RXTRG | R | 0h | I2CT Receive Trigger Interrupt Raw Status.
This interrupt is raised when the RX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 1 | TXDONE | R | 0h | I2CT Transmit Done Interrupt Raw Status.
This interrupt is raised after each byte is transmitted.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 0 | RXDONE | R | 0h | I2CT Receive Done Interrupt Raw Status.
This interrupt is raised after each byte is received.
0h = Interrupt did not occur 1h = Interrupt occurred |
MIS is shown in Figure 24-59 and described in Table 24-62.
Return to the Summary Table.
Masked interrupt status. This is an AND of the IMASK and RIS registers.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ARBLOST | DMA_DONE_TX | |||||
| R-0h | R-0h | R-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DMA_DONE_RX | RESERVED | TIMEOUTB | TIMEOUTA | PEC_RX_ERR | STOP | START | GENCALL |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RX_OVFL | TX_UNFL | TXEMPTY | RXFULL | TXTRG | RXTRG | TXDONE | RXDONE |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | |
| 17 | ARBLOST | R | 0h | Arbitration Lost Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 16 | DMA_DONE_TX | R | 0h | I2CT DMA Done on TX Event Channel Interrupt Masked Status.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 15 | DMA_DONE_RX | R | 0h | I2CT DMA Done on RX Event Channel Interrupt Masked Status.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 14 | RESERVED | R | 0h | |
| 13 | TIMEOUTB | R | 0h | Timeout Counter B Interrupt. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 12 | TIMEOUTA | R | 0h | I2CT Timeout Counter A Interrupt Masked Status.
This interrupt is raised when the SCL line is continously low for longer than the clock timeout period programmed by the TIMEOUT_CTL.TCNTLA register.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 11 | PEC_RX_ERR | R | 0h | PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 10 | STOP | R | 0h | I2CT STOP Condition Interrupt Masked Status.
This interrupt is raised when a STOP condition is detected on the bus.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 9 | START | R | 0h | I2CT START Condition Interrupt Masked Status.
This interrupt is raised when a START or repeated START condition is detected on the bus.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 8 | GENCALL | R | 0h | I2CT General Call Interrupt Masked Status.
This interrupt is raised when a general call frame, with an address of 0x00 and R/W bit of '0', is received.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 7 | RX_OVFL | R | 0h | I2CT RX FIFO Overflow Interrupt Masked Status.
This interrupt is raised when the I2CT receiver tries to receive data, as a result of receiving an address match with a R/W bit of '0', but the I2CT RX FIFO is full.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 6 | TX_UNFL | R | 0h | I2CT TX FIFO Underflow Interrupt Masked Status.
This interrupt is raised when the I2CT transmitter tries to send data, as a result of having received an address match with a R/W bit of '1', but the I2CT TX FIFO is empty.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 5 | TXEMPTY | R | 0h | I2CT TX FIFO Empty Interrupt Masked Status.
This interrupt is raised when all data has been shifted out of the TX FIFO and the I2CT transmitter goes idle.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 4 | RXFULL | R | 0h | I2CT RX FIFO Full Interrupt Masked Status.
This interrupt is raised when the RX FIFO is full.
0h = Clear Interrupt Mask 1h = Interrupt occurred |
| 3 | TXTRG | R | 0h | I2CT Transmit Trigger Interrupt Masked Status.
This interrupt is raised when the TX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 2 | RXTRG | R | 0h | I2CT Receive Trigger Interrupt Masked Status.
This interrupt is raised when the RX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 1 | TXDONE | R | 0h | I2CT Transmit Done Interrupt Masked Status.
This interrupt is raised after each byte is transmitted.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
| 0 | RXDONE | R | 0h | I2CT Receive Done Interrupt Masked Status.
This interrupt is raised after each byte is received.
0h = Interrupt did not occur or mask was not enabled 1h = Interrupt occurred |
ISET is shown in Figure 24-60 and described in Table 24-63.
Return to the Summary Table.
Interrupt set. Allows interrupts to be set by software (useful in diagnostics and safety checks). Writing a 1 to a bit in ISET will set the event and therefore the related RIS bit also gets set. If the interrupt is enabled through the mask, then the corresponding MIS bit is also set.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ARBLOST | DMA_DONE_TX | |||||
| W-0h | W-0h | W-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DMA_DONE_RX | RESERVED | TIMEOUTB | TIMEOUTA | PEC_RX_ERR | STOP | START | GENCALL |
| W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RX_OVFL | TX_UNFL | TXEMPTY | RXFULL | TXTRG | RXTRG | TXDONE | RXDONE |
| W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | W | 0h | |
| 17 | ARBLOST | W | 0h | Arbitration Lost Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 16 | DMA_DONE_TX | W | 0h | Set I2CT DMA Done on TX Event Channel Interrupt.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Writing 0 has no effect 1h = Set interrupt |
| 15 | DMA_DONE_RX | W | 0h | Set I2CT DMA Done on RX Event Channel Interrupt.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Writing 0 has no effect 1h = Set interrupt |
| 14 | RESERVED | W | 0h | |
| 13 | TIMEOUTB | W | 0h | Timeout Counter B Interrupt. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Set interrupt |
| 12 | TIMEOUTA | W | 0h | Set I2CT Timeout Counter A Interrupt.
This interrupt is raised when the SCL line is continously low for longer than the clock timeout period programmed by the TIMEOUT_CTL.TCNTLA register.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 11 | PEC_RX_ERR | W | 0h | PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Set interrupt |
| 10 | STOP | W | 0h | Set I2CT STOP Condition Interrupt.
This interrupt is raised when a STOP condition is detected on the bus.
0h = Writing 0 has no effect 1h = Set interrupt |
| 9 | START | W | 0h | Set I2CT START Condition Interrupt.
This interrupt is raised when a START or repeated START condition is detected on the bus.
0h = Writing 0 has no effect 1h = Set interrupt |
| 8 | GENCALL | W | 0h | Set I2CT General Call Interrupt.
This interrupt is raised when a general call frame, with an address of 0x00 and R/W bit of '0', is received.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 7 | RX_OVFL | W | 0h | Set I2CT RX FIFO Overflow Interrupt.
This interrupt is raised when the I2CT receiver tries to receive data, as a result of receiving an address match with a R/W bit of '0', but the I2CT RX FIFO is full.
0h = Writing 0 has no effect 1h = Set interrupt |
| 6 | TX_UNFL | W | 0h | Set I2CT TX FIFO Underflow Interrupt.
This interrupt is raised when the I2CT transmitter tries to send data, as a result of having received an address match with a R/W bit of '1', but the I2CT TX FIFO is empty.
0h = Writing 0 has no effect 1h = Set interrupt |
| 5 | TXEMPTY | W | 0h | Set I2CT TX FIFO Empty Interrupt.
This interrupt is raised when all data has been shifted out of the TX FIFO and the I2CT transmitter goes idle.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 4 | RXFULL | W | 0h | Set I2CT RX FIFO Full Interrupt.
This interrupt is raised when the RX FIFO is full.
0h = Clear Interrupt Mask 1h = Set Interrupt |
| 3 | TXTRG | W | 0h | Set I2CT Transmit Trigger Interrupt.
This interrupt is raised when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt |
| 2 | RXTRG | W | 0h | Set I2CT Receive Trigger Interrupt.
This interrupt is raised when the RX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt |
| 1 | TXDONE | W | 0h | Set I2CT Transmit Done Interrupt.
This interrupt is raised after each byte is transmitted.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 0 | RXDONE | W | 0h | Set I2CT Receive Done Interrupt.
This interrupt is raised after each byte is received.
0h = Writing 0 has no effect 1h = Set Interrupt |
ICLR is shown in Figure 24-61 and described in Table 24-64.
Return to the Summary Table.
Interrupt clear. Write a 1 to clear corresponding Interrupt.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ARBLOST | DMA_DONE_TX | |||||
| W-0h | W-0h | W-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DMA_DONE_RX | RESERVED | TIMEOUTB | TIMEOUTA | PEC_RX_ERR | STOP | START | GENCALL |
| W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RX_OVFL | TX_UNFL | TXEMPTY | RXFULL | TXTRG | RXTRG | TXDONE | RXDONE |
| W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | W | 0h | |
| 17 | ARBLOST | W | 0h | Arbitration Lost Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 16 | DMA_DONE_TX | W | 0h | Clear I2CT DMA Done on TX Event Channel Interrupt.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Writing 0 has no effect 1h = Clear interrupt |
| 15 | DMA_DONE_RX | W | 0h | Clear I2CT DMA Done on RX Event Channel Interrupt.
This interrupt is raised when the DONE signal is sent to the I2CT from a DMA, indicating all the transactions have completed.
0h = Writing 0 has no effect 1h = Clear interrupt |
| 14 | RESERVED | W | 0h | |
| 13 | TIMEOUTB | W | 0h | Timeout Counter B Interrupt. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 12 | TIMEOUTA | W | 0h | Clear I2CT Timeout Counter A Interrupt.
This interrupt is raised when the SCL line is continously low for longer than the clock timeout period programmed by the TIMEOUT_CTL.TCNTLA register.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 11 | PEC_RX_ERR | W | 0h | PEC Receive Error Event. Interrupt only valid for Advanced UNICOMM I2CT instances.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 10 | STOP | W | 0h | Clear I2CT STOP Condition Interrupt.
This interrupt is raised when a STOP condition is detected on the bus.
0h = Writing 0 has no effect 1h = Clear interrupt |
| 9 | START | W | 0h | Clear I2CT START Condition Interrupt.
This interrupt is raised when a START or repeated START condition is detected on the bus.
0h = Writing 0 has no effect 1h = Clear interrupt |
| 8 | GENCALL | W | 0h | Clear I2CT General Call Interrupt.
This interrupt is raised when a general call frame, with an address of 0x00 and R/W bit of '0', is received.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 7 | RX_OVFL | W | 0h | Clear I2CT RX FIFO Overflow Interrupt.
This interrupt is raised when the I2CT receiver tries to receive data, as a result of receiving an address match with a R/W bit of '0', but the I2CT RX FIFO is full.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 6 | TX_UNFL | W | 0h | Clear I2CT TX FIFO Underflow Interrupt.
This interrupt is raised when the I2CT transmitter tries to send data, as a result of having received an address match with a R/W bit of '1', but the I2CT TX FIFO is empty.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 5 | TXEMPTY | W | 0h | Clear I2CT TX FIFO Empty Interrupt.
This interrupt is raised when all data has been shifted out of the TX FIFO and the I2CT transmitter goes idle.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 4 | RXFULL | W | 0h | Clear I2CT RX FIFO Full Interrupt.
This interrupt is raised when the RX FIFO is full.
0h = Writing 0 has no effect 1h = Clear Interrupt |
| 3 | TXTRG | W | 0h | Clear I2CT Transmit Trigger Interrupt Mask.
This interrupt is raised when the TX FIFO condition programmed by the IFLS register is met.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 2 | RXTRG | W | 0h | Clear I2CT Receive Trigger Interrupt Mask.
This interrupt is raised when the RX FIFO condition programmed by the IFLS register is met.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 1 | TXDONE | W | 0h | Clear I2CT Transmit Done Interrupt.
This interrupt is raised after each byte is transmitted.
0h = Writing 0 has no effect 1h = Set Interrupt |
| 0 | RXDONE | W | 0h | Clear I2CT Receive Done Interrupt.
This interrupt is raised after each byte is received.
0h = Writing 0 has no effect 1h = Set Interrupt |
IMASK is shown in Figure 24-62 and described in Table 24-65.
Return to the Summary Table.
Interrupt Mask. If a bit is set, then corresponding interrupt is un-masked. Un-masking the interrupt causes the raw interrupt to be visible in IIDX, as well as MIS.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RXTRG | RESERVED | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R/W | 0h | |
| 2 | RXTRG | R/W | 0h | I2CT Receive DMA Trigger Mask.
The DMA is triggered when the RX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 1-0 | RESERVED | R/W | 0h |
RIS is shown in Figure 24-63 and described in Table 24-66.
Return to the Summary Table.
Raw interrupt status. Reflects all pending interrupts, regardless of masking. The RIS register allows the user to implement a poll scheme. A flag set in this register can be cleared by writing 1 to the ICLR register bit even if the corresponding IMASK bit is not enabled.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RXTRG | RESERVED | |||||
| R-0h | R-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | |
| 2 | RXTRG | R | 0h | I2CT Receive DMA Trigger Raw Status.
The DMA is triggered when the RX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur 1h = Interrupt occurred |
| 1-0 | RESERVED | R | 0h |
MIS is shown in Figure 24-64 and described in Table 24-67.
Return to the Summary Table.
Masked interrupt status. This is an AND of the IMASK and RIS registers.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RXTRG | RESERVED | |||||
| R-0h | R-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | |
| 2 | RXTRG | R | 0h | I2CT Receive DMA Trigger Masked Status.
The DMA is triggered when the RX FIFO condition programmed by the IFLS register is met.
0h = Interrupt did not occur or mask was not enabledk 1h = Interrupt occurred |
| 1-0 | RESERVED | R | 0h |
ISET is shown in Figure 24-65 and described in Table 24-68.
Return to the Summary Table.
Interrupt set. Allows interrupts to be set by software (useful in diagnostics and safety checks). Writing a 1 to a bit in ISET will set the event and therefore the related RIS bit also gets set. If the interrupt is enabled through the mask, then the corresponding MIS bit is also set.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RXTRG | RESERVED | |||||
| W-0h | W-0h | W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | W | 0h | |
| 2 | RXTRG | W | 0h | Set I2CT Receive DMA Trigger.
The DMA is triggered when the RX FIFO condition programmed by the IFLS register is met.
0h = Writing 0 has no effect 1h = Set Interrupt Mask |
| 1-0 | RESERVED | W | 0h |
IMASK is shown in Figure 24-66 and described in Table 24-69.
Return to the Summary Table.
Interrupt Mask. If a bit is set, then corresponding interrupt is un-masked. Un-masking the interrupt causes the raw interrupt to be visible in IIDX, as well as MIS.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | TXTRG | RESERVED | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R/W | 0h | |
| 3 | TXTRG | R/W | 0h | I2CT Transmit DMA Trigger Mask.
The DMA is triggered when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 2-0 | RESERVED | R/W | 0h |
RIS is shown in Figure 24-67 and described in Table 24-70.
Return to the Summary Table.
Raw interrupt status. Reflects all pending interrupts, regardless of masking. The RIS register allows the user to implement a poll scheme. A flag set in this register can be cleared by writing 1 to the ICLR register bit even if the corresponding IMASK bit is not enabled.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | TXTRG | RESERVED | |||||
| R-0h | R-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | TXTRG | R | 0h | I2CT Transmit DMA Trigger Raw Status.
The DMA is triggered when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 2-0 | RESERVED | R | 0h |
MIS is shown in Figure 24-68 and described in Table 24-71.
Return to the Summary Table.
Masked interrupt status. This is an AND of the IMASK and RIS registers.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | TXTRG | RESERVED | |||||
| R-0h | R-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | TXTRG | R | 0h | I2CT Transmit DMA Trigger Masked Status.
The DMA is triggered when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 2-0 | RESERVED | R | 0h |
ISET is shown in Figure 24-69 and described in Table 24-72.
Return to the Summary Table.
Interrupt set. Allows interrupts to be set by software (useful in diagnostics and safety checks). Writing a 1 to a bit in ISET will set the event and therefore the related RIS bit also gets set. If the interrupt is enabled through the mask, then the corresponding MIS bit is also set.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | TXTRG | RESERVED | |||||
| W-0h | W-0h | W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | W | 0h | |
| 3 | TXTRG | W | 0h | Set I2CT Transmit DMA Trigger.
The DMA is triggered when the TX FIFO condition programmed by the IFLS register is met.
0h = Clear Interrupt Mask 1h = Set Interrupt Mask |
| 2-0 | RESERVED | W | 0h |
INTCTL is shown in Figure 24-70 and described in Table 24-73.
Return to the Summary Table.
Interrupt Control Register.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | INTEVAL | ||||||
| W-0h | W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-1 | RESERVED | W | 0h | |
| 0 | INTEVAL | W | 0h | Writing a 1 to this field re-evaluates the interrupt sources.
0h = Writing 0 has no effect 1h = Interrupt Eval |
CTR is shown in Figure 24-71 and described in Table 24-74.
Return to the Summary Table.
I2CT Control Register.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | WUEN | CLKSTRETCH | RESERVED | ||||
| R/W-0h | R/W-1h | R/W-1h | R/W-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SUSPEND | RESERVED | EN_DEFDEVADR | EN_ALRESPADR | |||
| R/W-0h | R/W-0h | R/W-1h | R/W-0h | R/W-0h | |||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EN_DEFHOSTADR | RXFULL_ON_RREQ | TXWAIT_STALE_TXFIFO | TXTRIG_TXMODE | TXEMPTY_ON_TREQ | RESERVED | GENCALL | ENABLE |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-1h | R/W-0h | R/W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-22 | RESERVED | R/W | 0h | |
| 21 | WUEN | R/W | 1h | Target Wakeup Enable.
0h = When 0, the Target is not allowed to clock stretch on START detection 1h = When 1, the Target is allowed to clock stretch on START detection and wait for faster clock to be available. This allows clean wake up support for I2C in low power mode use cases |
| 20 | CLKSTRETCH | R/W | 1h | Clock Stretching Enable. The I2CT will automatically clock stretch on the SCL line if the TX FIFO is empty in transmit mode or the RX FIFO is full in receive mode.
0h = clock stretching is disabled 1h = clock stretching is enabled |
| 19-12 | RESERVED | R/W | 0h | |
| 11 | SUSPEND | R/W | 0h | Suspend External Communication.
When this bit is set, I2CT communication on the external bus is suspended after the I2CT FSM goes idle (SR.BUSY reads '0').
0h = Functional mode resumed 1h = External communication suspended |
| 10 | RESERVED | R/W | 1h | |
| 9 | EN_DEFDEVADR | R/W | 0h | Enable Default device address. This field is only available on Advanced I2CT instances.
0h = When this bit is 0, the default device address is not matched. NOTE: it may still be matched if programmed inside OAR/OAR2. 1h = When this bit is 1, default device address of 7'h110_0001 is always matched by the Target address match logic. |
| 8 | EN_ALRESPADR | R/W | 0h | Enable Alert Response Address. This field is only available on Advanced I2CT instances.
0h = When this bit is 0, the alert response address is not matched. NOTE: it may still be matched if programmed inside OAR/OAR2 1h = When this bit is 1, alert response address of 7'h000_1100 is always matched by the Target address match logic. |
| 7 | EN_DEFHOSTADR | R/W | 0h | Enable Default Host Address. This field is only available on Advanced I2CT instances.
0h = When this bit is 0, the default host address is not matched NOTE: it may still be matched if programmed inside OAR/OAR2 1h = When this bit is 1, default host address of 7'h000_1000 is always matched by the Target address match logic. |
| 6 | RXFULL_ON_RREQ | R/W | 0h | RX Full Interrupt on RREQ.
This bit setting determines the behavior of the RXFULL interrupt.
0h = When 0, RIS.RXFULL will be set when only the Target RX FIFO is full. This allows the RXFULL interrupt to be used to indicate that the I2C bus is being clock stretched and that the FW must either read the RX FIFO or ACK/NACK the current RX byte. 1h = When 1, RIS.RXFULL will be set when the I2CT FSM is in the RX_WAIT or RX_ACK_WAIT states which occurs when the I2C transaction is clock stretched because the RX FIFO is full or the ACKOEN has been set and the FSM is waiting for FW to ACK/NACK the current byte. |
| 5 | TXWAIT_STALE_TXFIFO | R/W | 0h | TX Transfer Wait Configuration.
This bit setting determines the behavior of the I2CT transmitter, specifically whether or not the transmitter waits when there is stale data in the TX FIFO.
This prevents stale bytes left in the TX FIFO from automatically being sent on the next I2C packet. Note: This setting should only be enabled when TXEMPTY_ON_TREQ is set to prevent the I2CT FSM from waiting for TX FIFO data without an interrupt notification when there is stale FIFO data.
0h = When 0, the TX FIFO empty signal to the Target State Machine indicates that the TX FIFO is empty. 1h = When 1, the TX FIFO empty signal to the Target State Machine will indicate that the TX FIFO is empty or that the TX FIFO data is stale. The TX FIFO data is determined to be stale when there is data in the TX FIFO when the Target State Machine leaves the TXMODE as defined in the SR register. A stale TX FIFO occurs if a Stop or timeout condition occurs when there are bytes left in the TX FIFO. |
| 4 | TXTRIG_TXMODE | R/W | 0h | TX Trigger when I2CT FSM is in TX Mode.
This bit setting determines the behavior of the TXTRG DMA trigger.
0h = No special behavior 1h = When 1, RIS.TXTRG is set when the I2CT TX FIFO has reached the trigger level AND the I2CT FSM is in the TX mode, as defined in the SR register. When cleared, RIS.TXTRG is set when the I2CT TX FIFO is at or above the trigger level. This setting can be used to hold off the TX DMA until a transaction starts. This allows the DMA to be configured when the I2CT is idle but have it wait until the transaction starts to load the I2CT TX FIFO, so it can load from a memory buffer that might be changing over time. |
| 3 | TXEMPTY_ON_TREQ | R/W | 0h | TX Empty Interrupt on TREQ.
This bit setting determines the behavior of the TXEMPTY interrupt.
0h = When 0, RIS.TXEMPTY will be set when only the I2CT TX FIFO is empty. This allows the TXEMPTY interrupt to be used to indicate that the I2C bus is being clock stretched and that I2CT TX data is required. 1h = When 1, RIS.TXEMPTY will be set when the I2CT FSM is in the TX_WAIT state which occurs when the TX FIFO is empty AND the I2C transaction is being clock stretched waiting for data to be written to the TX FIFO. |
| 2 | RESERVED | R/W | 1h | |
| 1 | GENCALL | R/W | 0h | General Call/Response Enable.
0b = Do not respond to a general call
1b = Respond to a general call
0h = Do not respond to a general call 1h = Respond to a general call |
| 0 | ENABLE | R/W | 0h | I2CT Enable.
Setting this bit enables the module.
0h = Disables module operation. 1h = Enables module operation. |
ACKCTL is shown in Figure 24-72 and described in Table 24-75.
Return to the Summary Table.
I2CT Acknowledge Control Register. This register enables the I2CT to Not Acknowledge (NACK) for invalid data/commands or Acknowledge (ACK) for valid data/commands. The I2C SCL is pulled low after the last data bit until this register is written.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | ACKOEN_ON_PECDONE | ACKOEN_ON_PECNEXT | ACKOEN_ON_START | ACKOVAL | ACKOEN | ||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-5 | RESERVED | R/W | 0h | |
| 4 | ACKOEN_ON_PECDONE | R/W | 0h | Acknowledge Override Enable on PEC Done.
When set, this bit will automatically turn on target acknowledge enable field following the ACK/NACK of the received PEC byte. Status bit ACKOEN will reflect a value of '1' when automatic override enable is used. This field is only available on Advanced I2CT instances.
0h = No special behavior 1h = When set this bit will automatically turn on the Target ACKOEN field following the ACK/NACK of the received PEC byte. |
| 3 | ACKOEN_ON_PECNEXT | R/W | 0h | Acknowledge Override Enable on PEC Next.
When set, this bit will automatically turn on the I2CT acknowledge override following a ACK/NACK of the byte received just prior to the PEC byte.
However, setting ACKCTL.ACKOEN bit will not automatically be ACKed/NACKed by the FSM and firmware must perform this function by writing the I2CT ACKCTL register.
Status bit ACKOEN will reflect a value of '1' when automatic override enable is used. This field is only available on Advanced I2CT instances.
0h = No special behavior 1h = When set this bit will automatically turn on the Target ACKOEN field following the ACK/NACK of the byte received just prior to the PEC byte. Note that when ACKOEN is set the PEC byte will not automatically be ACKed/NACKed by the State Machine and FW must perform this function by writing ACKCTL. |
| 2 | ACKOEN_ON_START | R/W | 0h | Acknowledge Override Enable on START.
When set this bit will automatically enable target override acknowledge following a Start Condition. Status bit ACKOEN will reflect a value of '1' when automatic override enable is used. This field is only available on Advanced I2CT instances.
0h = No special behavior 1h = When set this bit will automatically turn on the Target ACKOEN field following a Start Condition. |
| 1 | ACKOVAL | R/W | 0h | ACK Override Value.
Note: Override control is not applicable to Address frame. Bytes following address frame can be acknowledged using ACKOVAL.
0h = An ACK is sent indicating valid data or command. 1h = A NACK is sent indicating invalid data or command. |
| 0 | ACKOEN | R/W | 0h | I2CT ACK Override Enable.
Determines if the I2CT clock stretches and waits for the application to manually ACK/NACK each received byte using the ACKCTL.ACKOVAL bit, or if the ACK/NACK is done automatically.
Read SR.ACKOEN to check current status of this bit.
0h = A response in not provided. 1h = An ACK or NACK is sent according to the value written to the ACKOVAL bit. |
SR is shown in Figure 24-73 and described in Table 24-76.
Return to the Summary Table.
I2CT Status Register. This status register indicates the current state of the I2CT.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | ADDRMATCH | ||||||
| R-0h | R-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ADDRMATCH | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ACKOEN | TXFF | TXFE | RXFF | RXFE | TXCLR | RXCLR | STALE_TXFIFO |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TXMODE | BUSBSY | QCMDRW | QCMDST | OAR2SEL | RXMODE | TREQ | RREQ |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-26 | RESERVED | R | 0h | |
| 25-16 | ADDRMATCH | R | 0h | Address Match Status.
Indicates the address for which Target address match happened.
0h = Minimum Value 3FFh = Maximum Value |
| 15 | ACKOEN | R | 0h | ACK Override Enable Status.
0h = ACK override is disabled 1h = ACK override was enabled in design |
| 14 | TXFF | R | 0h | TX FIFO Full Status.
0h = Transmit FIFO is not full 1h = Transmit FIFO is full |
| 13 | TXFE | R | 1h | TX FIFO Empty Status.
0h = TX FIFO is not empty. 1h = TX FIFO is empty |
| 12 | RXFF | R | 0h | RX FIFO Full Status.
0h = RX FIFO is not full 1h = RX FIFO is full |
| 11 | RXFE | R | 1h | RX FIFO Empty Status.
0h = RX FIFO is not empty. 1h = RX FIFO is empty |
| 10 | TXCLR | R | 0h | TX FIFO Clear Status.
0h = FIFO is not cleared 1h = FIFO clear is complete |
| 9 | RXCLR | R | 0h | RX FIFO Clear Status.
0h = FIFO is not cleared 1h = FIFO clear is complete |
| 8 | STALE_TXFIFO | R | 0h | Stale TX FIFO Status.
0h = TX FIFO is not stale 1h = The TX FIFO is stale. This occurs when the TX FIFO was not emptied during the previous I2C transaction. |
| 7 | TXMODE | R | 0h | I2CT FSM is in TX Mode.
0h = State Machine is not in TX_DATA, TX_WAIT, TX_ACK or ADDR_ACK state with the bus direction set to read. 1h = State Machine is in TX_DATA, TX_WAIT, TX_ACK or ADDR_ACK state with the bus direction set to read. |
| 6 | BUSBSY | R | 0h | I2C Bus Busy Status.
0h = The I2C Bus is not busy 1h = The I2C Bus is busy. This is cleared on a timeout. |
| 5 | QCMDRW | R | 0h | Quick Command Read / Write Status.
This bit only has meaning when the QCMDST bit is set.
Value Description:
0: Quick command was a write
1: Quick command was a read
0h = Quick command was a write 1h = Quick command was a read |
| 4 | QCMDST | R | 0h | Quick Command Status.
Value Description:
0: The last transaction was a normal transaction or a transaction has not occurred.
1: The last transaction was a Quick Command transaction
0h = The last transaction was a normal transaction or a transaction has not occurred. 1h = The last transaction was a Quick Command transaction. |
| 3 | OAR2SEL | R | 0h | OAR2 Address Matched Status. This bit gets reevaluated after every address comparison. This field is only available on Advanced I2CT instances.
0h = Either the OAR2 address is not matched or the match is in legacy mode. 1h = OAR2 address matched and ACKed by the Target. |
| 2 | RXMODE | R | 0h | I2CT FSM is in RX Mode.
0h = The Target State Machine is not in the RX_DATA, RX_ACK, RX_WAIT, RX_ACK_WAIT or ADDR_ACK state with the bus direction set to write. 1h = The Target State Machine is in the RX_DATA, RX_ACK, RX_WAIT, RX_ACK_WAIT or ADDR_ACK state with the bus direction set to write. |
| 1 | TREQ | R | 0h | Transmit Request Status.
0h = No outstanding transmit request. 1h = I2C Target is addressed as a transmitter and is using clock stretching to delay the Controller until data has been written to the TXDATA FIFO (TX FIFO is empty). |
| 0 | RREQ | R | 0h | Receive Request Status.
0h = No outstanding receive data. 1h = Module has outstanding receive data and is using clock stretching to delay the Controller until the data has been read from the RXDATA FIFO (RX FIFO is full). |
IFLS is shown in Figure 24-74 and described in Table 24-77.
Return to the Summary Table.
I2CT Interrupt FIFO Level Select Register. The IFLS register is the interrupt FIFO level select register. You can use this register to define the levels at which the TX, RX and timeout interrupt flags are triggered. The interrupts are generated based on a transition through a level rather than being based on the level. That is, the interrupts are generated when the fill level progresses through the trigger level. For example, if the receive trigger level is set to the half-way mark, the interrupt is triggered when the RX FIFO is filled with two or more characters. Out of reset, the TXIFLSEL and RXIFLSEL bits are configured so that the FIFOs trigger an interrupt at the half-way mark.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RXCLR | RXIFLSEL | TXCLR | TXIFLSEL | ||||
| R/W-0h | R/W-2h | R/W-0h | R/W-2h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | R/W | 0h | |
| 7 | RXCLR | R/W | 0h | RX FIFO Clear. Setting this bit will clear the RX FIFO contents.
0h = Disable FIFO clear 1h = Enable FIFO Clear |
| 6-4 | RXIFLSEL | R/W | 2h | RX FIFO Level Select for generating events (interrupt/DMA).
Note: for undefined settings the default configuration is used.
1h = RX FIFO >= 1/4 full 2h = RX FIFO >= 1/2 full (default) 3h = RX FIFO >= 3/4 full 4h = Opposite of empty 5h = RX FIFO is full 6h = RX_FIFO >= (MAX_FIFO_LEN -1) 7h = RX_FIFO <= 1 |
| 3 | TXCLR | R/W | 0h | TX FIFO Clear. Setting this bit will clear the TX FIFO contents.
0h = Disable FIFO clear 1h = Enable FIFO Clear |
| 2-0 | TXIFLSEL | R/W | 2h | TX FIFO Level Select for generating events (interrupt/DMA).
Note: for undefined settings the default configuration is used.
1h = TX FIFO <= 3/4 empty 2h = TX FIFO <= 1/2 empty (default) 3h = TX FIFO <= 1/4 empty 4h = Opposite of full 5h = TX FIFO is empty 6h = TX FIFO <= 1 7h = TX_FIFO >= (MAX_FIFO_LEN -1) |
GFCTL is shown in Figure 24-75 and described in Table 24-78.
Return to the Summary Table.
I2CT Glitch Filter Control Register. This register controls the glitch filter on the SCL and SDA lines
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | AGFEN | ||||||
| R/W-0h | R/W-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DGFSEL | ||||||
| R/W-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-9 | RESERVED | R/W | 0h | |
| 8 | AGFEN | R/W | 0h | Analog Glitch Suppression Enable. 0h = Analog Glitch Filter disable 1h = Analog Glitch Filter enable |
| 7-3 | RESERVED | R/W | 0h | |
| 2-0 | DGFSEL | R/W | 0h | Digital Glitch Suppression Pulse Width. The digital glitch filter is only available on Basic I2CT instances.
This field controls the pulse width select for glitch suppression on the SCL and SDA lines. The following glitch suppression values are in terms of I2Cclk cycles.
0h = Bypass 1h = 1 clock 2h = 2 clocks 3h = 3 clocks 4h = 4 clocks 5h = 8 clocks 6h = 16 clocks 7h = 31 clocks |
TXDATA is shown in Figure 24-76 and described in Table 24-79.
Return to the Summary Table.
I2CT Transmit Data Register. This register is the transmit data register (the interface to the FIFOs). For transmitted data, if the FIFO is enabled, data written to this location is pushed onto the TX FIFO. If the FIFO is disabled, data is stored in the transmitter holding register (the bottom word of the TX FIFO).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DATA | ||||||||||||||||||||||||||||||
| W-0h | W-0h | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | W | 0h | |
| 7-0 | DATA | W | 0h | Transmit Data.
This byte contains the data to be transferred during the next transaction.
0h = Smallest value FFh = Highest possible value |
RXDATA is shown in Figure 24-77 and described in Table 24-80.
Return to the Summary Table.
I2CT Receive Data Register. This field contains the current byte being read in the RX FIFO stack. If the FIFO is disabled, the data byte and status are stored in the receiving holding register (the bottom word of the RX FIFO). The received data can be retrieved by reading this register.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DATA | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | DATA | R | 0h | Received Data.
This field contains the last received data.
0h = Smallest value FFh = Highest possible value |
PECSR is shown in Figure 24-78 and described in Table 24-81.
Return to the Summary Table.
PEC Status Register. This register is only available on Advanced I2CT instances.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | PECSTS_ERROR | PECSTS_CHECK | |||||
| R-0h | R-0h | R-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | PECBYTECNT | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PECBYTECNT | |||||||
| R-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | |
| 17 | PECSTS_ERROR | R | 0h | PEC Status Error. This status bit indicates if a PEC check error occurred in the transaction that occurred before the last STOP. This bit is cleared automatically by hardware when the next STOP observed on the line.
0h = Indicates PEC check error did not occur in the transaction that occurred before the last Stop 1h = Indicates PEC check error occurred in the transaction that occurred before the last Stop |
| 16 | PECSTS_CHECK | R | 0h | PEC Status Check. This status bit indicates if the PEC was checked in the transaction that occurred before the last STOP. This bit is cleared automatically by hardware when the next STOP observed on the line.
0h = Indicates PEC was not checked in the transaction that occurred before the last Stop 1h = Indicates PEC was checked in the transaction that occurred before the last Stop |
| 15-9 | RESERVED | R | 0h | |
| 8-0 | PECBYTECNT | R | 0h | PEC Byte Count. This is the current PEC Byte Count of the I2CT FSM.
0h = Minimum Value 1FFh = Maximum Value |
OAR2 is shown in Figure 24-79 and described in Table 24-82.
Return to the Summary Table.
I2CT Own Address 2 Register. This register consists of seven address bits that identify the alternate address for the I2C device on the I2C bus. This register is only available on Advanced I2CT instances.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | OAR2_MASK | ||||||
| R/W-0h | R/W-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OAR2EN | OAR2 | ||||||
| R/W-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-23 | RESERVED | R/W | 0h | |
| 22-16 | OAR2_MASK | R/W | 0h | Own Address 2 Mask. This field specifies bits A6 through A0 of the Target address.
The bits with value '1' in OAR2.OAR2_MASK field will make the corresponding incoming address bits to match by default regardless of the value inside OAR2.OAR2 i.e. corresponding OAR2.OAR2 bit is a don't care.
0h = Minimum Value 7Fh = Maximum Value |
| 15-8 | RESERVED | R/W | 0h | |
| 7 | OAR2EN | R/W | 0h | Own Address 2 Enable.
0h = The alternate address is disabled. 1h = Enables the use of the alternate address in the OAR2 field. |
| 6-0 | OAR2 | R/W | 0h | Own Address 2.
This field specifies the alternate OAR2 address.
0h = Smallest value 7Fh = Highest possible value |
OAR is shown in Figure 24-80 and described in Table 24-83.
Return to the Summary Table.
I2CT Own Address Register. This register consists of seven address bits that identify the I2C device on the I2C bus.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| MODE | OAREN | RESERVED | OAR | ||||
| R/W-0h | R/W-1h | R/W-0h | R/W-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OAR | |||||||
| R/W-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-16 | RESERVED | R/W | 0h | |
| 15 | MODE | R/W | 0h | Addressing Mode Select.
This bit selects the addressing mode to be used.
When 0, 7-bit addressing is used.
When 1, 10-bit addressing is used.
0h = Enable 7-bit addressing 1h = Enable 10-bit addressing |
| 14 | OAREN | R/W | 1h | Own Address Enable.
0h = Disable OAR address 1h = Enable OAR address |
| 13-10 | RESERVED | R/W | 0h | |
| 9-0 | OAR | R/W | 0h | Own Address.
This field specifies bits A9 through A0 of the Target address.
In 7-bit addressing mode as selected by OAR.MODE bit, the top 3 bits are don't care
0h = Smallest value 3FFh = Highest possible value |
TIMEOUT_CNT is shown in Figure 24-81 and described in Table 24-84.
Return to the Summary Table.
I2CT Timeout Counter. This register contains the upper 8 bits of a 12-bit current counter values for Timeout Counter A and B. The lower four bits of the counter are not user visible and are always 0h.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | TCNTB | RESERVED | TCNTA | ||||||||||||||||||||||||||||
| R-0h | R-2h | R-0h | R-2h | ||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | |
| 23-16 | TCNTB | R | 2h | Timeout Counter B Current Count. This field contains the upper 8 bits of a 12-bit current counter for timeout counter B. This field is only available on Advanced I2CT instances.
0h = Smallest Value FFh = Highest possible value |
| 15-8 | RESERVED | R | 0h | |
| 7-0 | TCNTA | R | 2h | Timeout Count A Current Count: This field contains the upper 8 bits of a 12-bit current counter for timeout counter A. Each count is equal to 520 times the timeout period of I2Cclk. For example, with 8MHz I2Cclk and a 100KHz operating I2C clock, one timeout period will be equal to (1 / 8MHz) * 520 or 65 us.
0h = Smallest Value FFh = Highest possible value |
TIMEOUT_CTL is shown in Figure 24-82 and described in Table 24-85.
Return to the Summary Table.
I2CT Timeout Control. This register contains controls for Timeout Counters A and B.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| TCNTBEN | RESERVED | ||||||
| R/W-0h | R/W-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TCNTLB | |||||||
| R/W-2h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| TCNTAEN | RESERVED | ||||||
| R/W-0h | R/W-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TCNTLA | |||||||
| R/W-2h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | TCNTBEN | R/W | 0h | Timeout Counter B Enable. This field is only available on Advanced I2CT instances.
0h = Disable Timeout Counter B 1h = Enable Timeout Counter B |
| 30-24 | RESERVED | R/W | 0h | |
| 23-16 | TCNTLB | R/W | 2h | Timeout Count B Load: Counter B is used for SCL High Detection. Each count is equal to 1* clock period. For example, with 10MHz I2Cclk frequency, one timeout period will be equal to 1*100ns.
0h = Smallest possible value FFh = Highest possible value |
| 15 | TCNTAEN | R/W | 0h | Timeout Counter A Enable.
0h = Disable Timeout Counter B 1h = Enable Timeout Counter B |
| 14-8 | RESERVED | R/W | 0h | |
| 7-0 | TCNTLA | R/W | 2h | Timeout Counter A Load Value.
Counter A is used for SCL low detection. This field contains the upper 8 bits of a 12-bit pre-load value for the Timeout A count. NOTE: The value of CNTLA must be greater than 1h.
Each count is equal to 520 times the timeout period of functional clock. For example, with 8MHz functional clock and a 100KHz operating I2C clock, one timeout period will be equal to (1 / 8MHz) * 520 or 65 us.
0h = Smallest Value FFh = Highest possible value |
PECCTL is shown in Figure 24-83 and described in Table 24-86.
Return to the Summary Table.
PEC Control Register. This register is only available on Advanced I2CT instances.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | PECEN | RESERVED | PECCNT | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PECCNT | |||||||
| R/W-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-13 | RESERVED | R/W | 0h | |
| 12 | PECEN | R/W | 0h | PEC Enable.
This bit enables the SMB Packet Error Checking (PEC).
When enabled, the PEC is calculated on all bits except the START, STOP, ACK and NACK. The PEC internal LSFR and the PECCNT are set to 0 when the I2CT FSM is in the IDLE state, which occurs following a STOP or timeout condition. The PECCNT is also set to 0 after the PEC byte is transmitted or received. Note that the NACK is automatically sent following a PEC byte that results in a PEC error.
The PEC polynomial is x^8 + x^2 + x^1 + 1.
0h = PEC transmission and check is disabled 1h = PEC transmission and check is enabled |
| 11-9 | RESERVED | R/W | 0h | |
| 8-0 | PECCNT | R/W | 0h | PEC Counter.
When this field is non zero, the number of I2C data bytes are counted. When the byte count = PECCNT and the I2CT FSM is transmitting, the contents of the internal LSFR is loaded into the shift register instead of the byte received from the TX FIFO. When the FSM is receiving, after the last bit of this byte is received into the LSFR and the FSM checks that it is non-zero, a PEC RX Error interrupt is generated. The I2C packet must be padded to include the PEC byte for both transmit and receive. In transmit mode, the FIFO must be loaded with a dummy PEC byte. In receive mode, the PEC byte will be passed to the RX FIFO.
In the normal use case, FW would set PECEN=1 and PECCNT=0 and use the ACKOEN until the remaining SMBus packet length is known. FW would then set the PECCNT to the remaining packet length (including the PEC bye). FW would then configure the DMA to allow the packet to complete unassisted and exit the NACK mode.
Note that when the byte count = PECCNT, the byte count is reset to 0 and multiple PEC calculation can automatically occur within a single I2C transaction.
0h = Minimum Value 1FFh = Maximum Value |