SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
A system test mode is available for multimaster HS I2C controller module testing. This mode is enabled by setting the I2Ci.I2C_SYSTEST[15] ST_EN bit to 1. When this bit is cleared to 0, the I2C controller is configured in normal operation mode.
In system test mode, the I2Ci.I2C_SYSTEST [13:12] TMODE bit field selects the type of test. Table 24-12 lists the tests available for the multimaster HS I2C controllers.
I2Ci.I2C_SYSTEST[13:12] TMODE | Test | Description |
---|---|---|
00 | Functional mode | Normal operation mode |
01 | Reserved (not used) | |
10 | Test of i2ci_scl serial clock line | The i2ci_scl line is driven with a permanent clock as if mastered with the parameters set in the I2Ci.I2C_PSC, I2Ci.I2C_SCLL, and I2Ci.I2C_SCLH registers. |
11 | Loop-back mode + i2ci_scl/ i2ci_sda I/O | In master transmit mode only, data transmitted out of the I2Ci.I2C_DATA register (write action) is received in the same I2Ci.I2C_DATA register through an internal path through the FIFO buffers. The DMA and interrupt requests are normally generated if they are enabled. Moreover, the i2ci_scl and i2ci_sda are controlled with the I2Ci.I2C_SYSTEST[3:0] bits. |
When the I2Ci.I2C_SYSTEST[13:12] TMODE bit field is set to 11, the I2C controller must be configured in I2C F/S (I2Ci.I2C_CON[13:12] OPMODE set to 00) or I2C HS mode (I2Ci.I2C_CON[13:12] OPMODE set to 01).
In normal operation mode (the I2Ci.I2C_SYSTEST[15] ST_EN bit cleared to 0), the I2Ci.I2C_SYSTEST[3:0] bits that control the i2ci_scl, i2ci_sda lines in system test mode are read-only bits.
In system test mode (the I2Ci.I2C_SYSTEST[15] ST_EN bit set to 1), the I2Ci.I2C_IRQSTATUS_RAW.XRDY, I2C_IRQSTATUS_RAW.RRDY, I2C_IRQSTATUS_RAW.XUDF, I2C_IRQSTATUS_RAW.ROVR, I2C_IRQSTATUS_RAW.ARDY and I2C_IRQSTATUS_RAW.NACK status bits can be set to 1 when the I2Ci.I2C_SYSTEST[11] SSB bit is set to 1. Clearing the I2Ci.I2C_SYSTEST[11] SSB bit to 0 does not clear the I2Ci.I2C_IRQSTATUS_RAW bits to 0. The I2Ci.I2C_IRQSTATUS_RAW bit field can be cleared to 0 only by writing 1 in the corresponding bits.