ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
I2C 控制器控制寄存器 I2Cx.MCTR 和 I2C 控制器目标地址寄存器 I2Cx.MSA 用于控制控制器发送和接收模式。可以修改以下设置来控制不同的事务。
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | x | 0 或 1 | 1 | 1 | START+ADDR+R/W+ DATA*n+(STOP) | STOP 的发送取决于 STOP 位 |
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | x | 0 或 1 | 0 | 1 | DATA*n+ (ACK/NACK)+(STOP) | STOP 的发送取决于 STOP 位 |
如果有来自目标的 NACK 响应,控制器将自动发送出停止以完成发送。控制器将无法在 ADDR 或 DATA NACK 之后发送 RESTART。
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 或 1 | 0 或 1 | 1 | 1 | START+ADDR +R/W+DATA *n +(ACK/NACK) +(STOP) | 最后数据的 ACK 或 NACK 取决于 ACK 位;额外的 STOP 发送取决于 STOP 位 |
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 或 1 | 0 或 1 | 0 | 1 | DATA*n+ (ACK/NACK) +(STOP) | 最后数据后跟 ACK 或 NACK 取决于 ACK 位;额外的 STOP 发送取决于 STOP 位 |
如果最后的事务以 NACK 结束,则不允许此配置,因为 NACK 只能后跟 STOP 或 RESTART。ACK 和 STOP 位不应同时设置为 1,因为需要先通知目标释放总线,然后才能发送出 STOP。
如果最后一次发送或接收完成而没有停止,则可以生成重复开始以启动新事务
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 0 | 0 或 1 | 0 或 1 | 1 | 1 | Restart+ADDR +R/W+DATA*n +(STOP) | 额外的 STOP 发送取决于 STOP 位 |
如果有来自目标的 NACK 响应,控制器将自动发送出停止以完成发送。控制器将无法在 ADDR 或 DATA NACK 之后发送 RESTART。
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | 1 | 0 或 1 | 0 或 1 | 1 | 1 | Restart+ADDR +R/W+DATA*n +(ACK/NACK)+(STOP) | 最后数据后跟 ACK 或 NACK 取决于 ACK 位;额外的 STOP 发送取决于 STOP 位 |
ACK 和 STOP 位不应同时设置为 1,因为需要先通知目标释放总线,然后才能发送出 STOP。
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| n (n>0) | X | X | 1 | 0 | 1 | 停止 | STOP 命令 |
只有在前一个事务成功完成后才允许发送,如果控制器当前处于接收模式,则不能在没有 NACK 的情况下向目标发送 STOP
快速命令只能在事务开始时发送,而不能跟随其他事务(不停止)或重复开始。
| Length | 方向 | ACK | 停止 | 启动 | 运行 | Format | 说明 |
|---|---|---|---|---|---|---|---|
| 0 | 0/1 | X | 1 | 1 | 1 | START+ADDR +R/W+STOP | 快速命令 |