请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: MSPM0G1507
尊敬的专家:
切换的详细信息
中导出 禁用(端口高电平‑Z) 最终目的 启用(具有中断的 I2C 目标) 、和
中导出 启用(具有中断的 I2C 目标) 返回 禁用(端口高电平‑Z) :
请确认以下几点 寄存器操作过程 是否适合每次过渡?
在切换过程中:
- 。 SCL/SDA 端口保持在高电平‑Z 状态 、和
- I2C 外设的任何编程 清除挂起或意外中断 以便器件在转换后处于干净状态。
1) 配置 I2C 引脚、同时将端口保持在高电平‑Z 状态
PINCMx.PC = 0:断开外围设备PINCMx.INENA = 0:禁用输入路径PINCMx.PF = 0:未选择外围设备功能PINCMx.HIZ1 = 1:启用高‑ZPINCMx.PIPU/PIPD = 0:禁用内部上拉/下拉电阻器
2) 启用 I2C 目标模式之前的‑μ s 处理(推荐)
I2Cx.TFIFOCTL.RXFLUSH = 1:清空 RX FIFOI2Cx.TFIFOCTL.TXFLUSH = 1:清空 TX FIFO
3) 启用目标模式
I2Cx.TCTR.ACTIVE = 1I2Cx.TOAR.OAR = xx:配置目标自身地址
4) 将 SCL/SDA 连接到 I2C 外设
PINCMx.PF = xxh <PF value for I2C_SCL or I2C_SDA>PINCMx.PC = 1:连接外围设备PINCMx.INENA = 1:启用输入路径PINCMx.HIZ1 = 0:禁用高‑Z
5) 配置中断
I2Cx.ICLR (1048h / 1078h / 10A8h) = 1
清除所需的目标中断标志I2Cx.IMASK (1028h / 1058h / 1088h) = 1
仅启用所需的目标中断NVIC_ICPR[n] = 1:清除挂起中断NVIC_ISER[n] = 1:启用 IRQ
Target⇒高‑Z
1) 等待通信停止
I2Cx.TSR.BUSBSY:I2C 总线忙状态0 = bus idle
2) 禁用中断
I2Cx.IMASK (1028h / 1058h / 1088h) = 0
屏蔽目标中断I2Cx.ICLR (1048h / 1078h / 10A8h) = 1
清除目标中断标志NVIC_ICPR[n] = 1:清除挂起中断NVIC_ICER[n] = 1:禁用 IRQ
3) 禁用目标模式
I2Cx.TCTR.ACTIVE = 0
4) 强制 SCL/SDA 为高电平‑Z
PINCMx.PC = 0:断开外围设备PINCMx.INENA = 0:禁用输入路径PINCMx.PF = 0:未选择外围设备功能PINCMx.HIZ1 = 1:启用高‑ZPINCMx.PIPU/PIPD = 0:禁用内部上拉/下拉电阻器
最好的注意、
IBUKI ENDO