SPRUJF2A March 2026 – March 2026 AM13E23019
For an UNICOMM-I2CC to start receiving data out of the idle mode, the user needs to set the START bit in CTR register to generate the START condition. Then the controller automatically sends the START condition followed by the target address as soon as the bus is free.
First, set TA.DIR to 1 to enable receive mode and set CTR.START to 1 to enable the START condition. CTR.BLEN can then be programmed to indicate the number of bytes (n) for the receive operation on Advanced I2CC instances (for Basic UNICOMM-I2CC instances, this length is hardcoded to 1). The CTR.ACK and CTR.STOP bit can then be set or cleared based on user configuration. CTR.FRM_START is set to begin the transaction on the line. The packet format is: START + ADDR + R + (DATA*n) +(ACK/NACK) + STOP. The last data ACK/NACK depends on the ACK bit and an additional STOP condition depends on STOP bit.
After last byte is received, the RXDONE interrupt in the CPU_INT.IIDX register is set to indicate that Controller-Receive transaction is complete. User can use the RXTRG interrupt in CPU_INT.IIDX register to read the data from the RX FIFO. This interrupt triggers when the controller RX FIFO contains >= defined bytes, the trigger level can be defined by using the RXIFSEL bit in IFLS register. The flow chart of controller receiver mode is shown in Figure 24-14.