SLAU847F October 2022 – March 2026 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2116 , MSPM0L2117 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
The UNICOMM-I2CC control register (CTR) and UNICOMM-I2CC target address register (TA) are used during the application run to setup controller transmit and receive transactions. The following settings can be used to control each transaction before software reads/writes TXDATA and RXDATA.
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | X | 0 or 1 | 1 | 1 | START+ADDR+R/W+ DATA*n+STOP | Sending of STOP conndition depends on the CTR.STOP bit. |
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | X | 0 or 1 | 0 | 1 | DATA*n+ ACK/NACK+STOP | Sending of STOP conndition depends on the CTR.STOP bit. |
If there is a NACK response from the target, the controller automatically sends out a STOP condition to finish the transmit. The Controller is unable to send a RESTART after a ADDR or DATA NACK.
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 or 1 | 0 or 1 | 1 | 1 | START+ADDR +R/W+DATA *n +ACK/NACK +STOP | The last data ACK or NACK depends on the CTR.ACK bit; additional sending of STOP condition depends on CTR.STOP bit. |
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 or 1 | 0 or 1 | 0 | 1 | DATA*n+ ACK/NACK +STOP | The last data ACK or NACK depends on the CTR.ACK bit; additional sending of STOP condition depends on CTR.STOP bit. |
This configuration is not allowed if last transaction ended with NACK, since NACK can only be followed by a STOP or RESTART condition. The ACK and STOP bits must not be set to 1 at the same time, as the target needs to be informed to release bus lines before sending out STOP.
If the last transmit or receive finished without a STOP, a Repeated START can be generated to initiate a new transaction
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | 0 or 1 | 0 or 1 | 1 | 1 | Restart+ADDR +R/W+DATA*n +STOP | Additional sending of STOP depends on CTR.STOP bit. |
If there is a NACK response from the target, the controller automatically sends out a STOP condition to finish the transmit. The Controller is unable to send a RESTART after an ADDR or DATA NACK.
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 or 1 | 0 or 1 | 1 | 1 | Restart+ADDR +R/W+DATA*n +ACK/NACK+STOP | The last data followed by ACK or NACK depend on CTR.ACK bit; additional sending of STOP depends on CTR.STOP bit. |
The ACK and STOP bits must not be set to 1 at the same time, as the target needs to be informed to release bus lines before sending out STOP.
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| n (n>=0) | X | X | 1 | 0 | 1 | STOP | STOP command |
Only send this transaction after the previous transaction successfully finishes, The STOP condition can't be sent without a NACK to the target if the controller is currently in receive mode.
The Quick command can only be sent at the beginning of a transaction, not following other transactions (without a STOP) or repeatted start.
| Length | Direction | ACK | STOP | START | FRM_START | Frame Format | Notes |
|---|---|---|---|---|---|---|---|
| 0 | 0/1 | X | 1 | 1 | 1 | START+ADDR +R/W+STOP | Quick command |