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

 

  1.   1
  2.   使用前必读
    1.     关于本手册
    2.     命名惯例
    3.     术语表
    4.     相关文档
    5.     支持资源
    6.     商标
  3. 架构
    1. 1.1 架构概述
    2. 1.2 总线结构
    3. 1.3 平台存储器映射
      1. 1.3.1 代码区域
      2. 1.3.2 SRAM 区域
      3. 1.3.3 外设区域
      4. 1.3.4 子系统区域
      5. 1.3.5 系统 PPB 区域
    4. 1.4 启动配置
      1. 1.4.1 配置存储器 (NONMAIN)
        1. 1.4.1.1 由 CRC 支持的配置数据
        2. 1.4.1.2 16 位关键字段模式匹配
      2. 1.4.2 引导配置例程 (BCR)
        1. 1.4.2.1 串行线调试相关策略
          1. 1.4.2.1.1 SWD 安全级别 0
          2. 1.4.2.1.2 SWD 安全级别 1
          3. 1.4.2.1.3 SWD 安全级别 2
        2. 1.4.2.2 SWD 批量擦除和恢复出厂设置命令
        3. 1.4.2.3 闪存保护和完整性相关策略
          1. 1.4.2.3.1 锁定应用 (MAIN) 闪存
          2. 1.4.2.3.2 锁定配置 (NONMAIN) 闪存
          3. 1.4.2.3.3 静态写保护 NONMAIN 字段
        4. 1.4.2.4 应用程序 CRC 验证
        5. 1.4.2.5 快速引导
        6. 1.4.2.6 引导加载程序 (BSL) 启用/禁用策略
          1. 1.4.2.6.1 BSL 启用
      3. 1.4.3 引导加载程序 (BSL)
        1. 1.4.3.1 GPIO 调用
        2. 1.4.3.2 引导加载程序 (BSL) 安全策略
          1. 1.4.3.2.1 BSL 访问密码
          2. 1.4.3.2.2 BSL 读取策略
          3. 1.4.3.2.3 BSL 安全警报策略
        3. 1.4.3.3 应用版本
        4. 1.4.3.4 BSL 触发的批量擦除和恢复出厂设置
      4. 1.4.4 NONMAIN 布局类型
      5. 1.4.5 NONMAIN_TYPEA 寄存器
      6. 1.4.6 NONMAIN_TYPEC 寄存器
      7. 1.4.7 NONMAIN_TYPEE 寄存器
    5. 1.5 出厂常量
      1. 1.5.1 FACTORYREGION 寄存器
  4. PMCU
    1. 2.1 PMCU 概述
      1. 2.1.1 电源域
      2. 2.1.2 工作模式
        1. 2.1.2.1 RUN 模式
        2. 2.1.2.2 SLEEP 模式
        3. 2.1.2.3 STOP 模式
        4. 2.1.2.4 STANDBY 模式
        5. 2.1.2.5 SHUTDOWN 模式
        6. 2.1.2.6 不同工作模式下支持的功能
        7. 2.1.2.7 暂停低功耗模式
    2. 2.2 电源管理 (PMU)
      1. 2.2.1 电源
      2. 2.2.2 内核稳压器
      3. 2.2.3 电源监控器
        1. 2.2.3.1 上电复位 (POR)
        2. 2.2.3.2 欠压复位 (BOR)
        3. 2.2.3.3 电源变化期间的 POR 和 BOR 行为
      4. 2.2.4 带隙基准
      5. 2.2.5 用于模拟多路复用器的 VBOOST
      6. 2.2.6 外设启用
        1. 2.2.6.1 低功耗模式下自动禁用外设
    3. 2.3 时钟模块 (CKM)
      1. 2.3.1 振荡器
        1. 2.3.1.1 内部低频振荡器 (LFOSC)
        2. 2.3.1.2 内部系统振荡器 (SYSOSC)
          1. 2.3.1.2.1 SYSOSC 换档
          2. 2.3.1.2.2 SYSOSC 频率和用户修整
          3. 2.3.1.2.3 SYSOSC 频率校正环路
            1. 2.3.1.2.3.1 外部电阻器模式下的 SYSOSC FCL (ROSC)
            2. 2.3.1.2.3.2 内部电阻模式下的 SYSOSC FCL
          4. 2.3.1.2.4 SYSOSC 用户修整过程
          5. 2.3.1.2.5 禁用 SYSOSC
        3. 2.3.1.3 低频晶体振荡器 (LFXT)
        4. 2.3.1.4 LFCLK_IN(数字时钟)
        5. 2.3.1.5 高频晶体振荡器 (HFXT)
        6. 2.3.1.6 HFCLK_IN(数字时钟)
      2. 2.3.2 时钟
        1. 2.3.2.1  MCLK(主时钟)树
        2. 2.3.2.2  CPUCLK(处理器时钟)
        3. 2.3.2.3  ULPCLK(低功耗时钟)
        4. 2.3.2.4  MFCLK(中频时钟)
        5. 2.3.2.5  MFPCLK(中频精密时钟)
        6. 2.3.2.6  LFCLK(低频时钟)
        7. 2.3.2.7  HFCLK(高频外部时钟)
        8. 2.3.2.8  HSCLK(高速时钟)
        9. 2.3.2.9  ADCCLK(ADC 采样周期时钟)
        10. 2.3.2.10 RTCCLK(RTC 时钟)
        11. 2.3.2.11 外部时钟输出 (CLK_OUT)
        12. 2.3.2.12 基础设施的直接时钟连接
      3. 2.3.3 时钟树
        1. 2.3.3.1 外设时钟源选择
      4. 2.3.4 时钟监控器
        1. 2.3.4.1 LFCLK 监测器
        2. 2.3.4.2 MCLK 监测器
        3. 2.3.4.3 启动监视器
          1. 2.3.4.3.1 LFOSC 启动监视器
          2. 2.3.4.3.2 LFXT 启动监视器
          3. 2.3.4.3.3 HFCLK 启动监视器
          4. 2.3.4.3.4 HSCLK 状态
      5. 2.3.5 频率时钟计数器 (FCC)
        1. 2.3.5.1 使用 FCC
        2. 2.3.5.2 FCC 频率计算和精度
    4. 2.4 系统控制器 (SYSCTL)
      1. 2.4.1  复位和器件初始化
        1. 2.4.1.1 复位级别
          1. 2.4.1.1.1 上电复位 (POR) 复位级别
          2. 2.4.1.1.2 欠压复位 (BOR) 复位电平
          3. 2.4.1.1.3 引导复位 (BOOTRST) 复位电平
          4. 2.4.1.1.4 系统复位 (SYSRST) 复位级别
          5. 2.4.1.1.5 仅 CPU 复位 (CPURST) 复位电平
        2. 2.4.1.2 POR 之后的初始条件
        3. 2.4.1.3 NRST 引脚
        4. 2.4.1.4 SWD 引脚
        5. 2.4.1.5 在软件中生成复位
        6. 2.4.1.6 复位原因
        7. 2.4.1.7 外设复位控制
        8. 2.4.1.8 引导失败处理
      2. 2.4.2  选择工作模式
      3. 2.4.3  异步快速时钟请求
      4. 2.4.4  SRAM 写保护
      5. 2.4.5  闪存等待状态
      6. 2.4.6  闪存存储体地址交换
      7. 2.4.7  关断模式处理(如果存在)
      8. 2.4.8  配置锁定
      9. 2.4.9  系统状态
      10. 2.4.10 错误处理
      11. 2.4.11 SYSCTL 事件
        1. 2.4.11.1 CPU 中断事件 (CPU_INT)
        2. 2.4.11.2 不可屏蔽中断事件 (NMI)
    5. 2.5 快速入门参考
      1. 2.5.1 默认器件配置
      2. 2.5.2 利用 MFCLK
      3. 2.5.3 优化 STOP 模式下的功耗
      4. 2.5.4 优化 STANDBY 模式下的功耗
      5. 2.5.5 提高 MCLK 和 ULPCLK 精度
      6. 2.5.6 低功耗模式下的高速时钟(SYSPLL、HFCLK)处理
      7. 2.5.7 通过优化实现最低唤醒延迟
      8. 2.5.8 通过优化在 RUN/SLEEP 模式下实现最低峰值电流
    6. 2.6 SYSCTL 布局类型
    7. 2.7 SYSCTL_TYPEA 寄存器
    8. 2.8 SYSCTL_TYPEB 寄存器
    9. 2.9 SYSCTL_TYPEC 寄存器
  5. CPU
    1. 3.1 概述
    2. 3.2 Arm Cortex-M0+ CPU
      1. 3.2.1 CPU 寄存器文件
      2. 3.2.2 堆栈行为
      3. 3.2.3 执行模式和特权等级
      4. 3.2.4 地址空间和支持的数据大小
    3. 3.3 中断和异常
      1. 3.3.1 外设中断 (IRQ)
        1. 3.3.1.1 嵌套矢量中断控制器 (NVIC)
        2. 3.3.1.2 中断组
        3. 3.3.1.3 唤醒控制器 (WUC)
      2. 3.3.2 中断和异常表
      3. 3.3.3 处理器锁定方案
    4. 3.4 CPU 外设
      1. 3.4.1 系统控制模块 (SCB)
      2. 3.4.2 系统时钟周期计时器 (SysTick)
    5. 3.5 只读存储器 (ROM)
    6. 3.6 CPUSS 寄存器
    7. 3.7 WUC 寄存器
  6. 安全
    1. 4.1 概述
      1. 4.1.1 安全启动
      2. 4.1.2 客户安全代码 (CSC)
    2. 4.2 引导和启动序列
      1. 4.2.1 CSC 编程概述
    3. 4.3 安全密钥存储
    4. 4.4 闪存保护
      1. 4.4.1 存储体交换
      2. 4.4.2 写保护
      3. 4.4.3 读取-执行保护
      4. 4.4.4 IP 保护
      5. 4.4.5 数据存储体保护
      6. 4.4.6 硬件单调计数器
    5. 4.5 SRAM 保护
    6. 4.6 SECURITY 寄存器
  7. DMA
    1. 5.1 DMA 概述
    2. 5.2 DMA 操作
      1. 5.2.1  寻址模式
      2. 5.2.2  通道类型
      3. 5.2.3  传输模式
        1. 5.2.3.1 单字或单字节传输
        2. 5.2.3.2 块传输
        3. 5.2.3.3 重复单字或单字节传输
        4. 5.2.3.4 重复块传输
        5. 5.2.3.5 跨步模式
      4. 5.2.4  扩展模式
        1. 5.2.4.1 填充模式
        2. 5.2.4.2 表模式
      5. 5.2.5  初始化 DMA 传输
      6. 5.2.6  停止 DMA 传输
      7. 5.2.7  通道的优先级
      8. 5.2.8  突发块模式
      9. 5.2.9  DMA 与系统中断结合使用
      10. 5.2.10 DMA 控制器中断
      11. 5.2.11 DMA 触发事件状态
      12. 5.2.12 DMA 工作模式支持
        1. 5.2.12.1 在 RUN 模式下传输
        2. 5.2.12.2 在 SLEEP 模式下传输
        3. 5.2.12.3 在 STOP 模式下传输
        4. 5.2.12.4 在 STANDBY 模式下传输
      13. 5.2.13 DMA 地址和数据错误
      14. 5.2.14 中断和事件支持
    3. 5.3 DMA 寄存器
  8. NVM(闪存)
    1. 6.1 NVM 概述
      1. 6.1.1 关键特性
      2. 6.1.2 系统组成部分
      3. 6.1.3 术语
    2. 6.2 闪存存储体结构
      1. 6.2.1 存储体
      2. 6.2.2 闪存区域
      3. 6.2.3 寻址
        1. 6.2.3.1 闪存映射
      4. 6.2.4 存储器组织示例
    3. 6.3 闪存控制器
      1. 6.3.1 闪存控制器命令概述
      2. 6.3.2 NOOP 命令
      3. 6.3.3 PROGRAM 命令
        1. 6.3.3.1 编程位屏蔽行为
        2. 6.3.3.2 编程少于一个闪存字
        3. 6.3.3.3 目标数据对齐(仅限使用单闪存字编程的器件)
        4. 6.3.3.4 目标数据对齐(使用多字编程的器件)
        5. 6.3.3.5 执行 PROGRAM 操作
      4. 6.3.4 ERASE 命令
        1. 6.3.4.1 擦除扇区屏蔽行为
        2. 6.3.4.2 执行 ERASE 操作
      5. 6.3.5 READVERIFY 命令
        1. 6.3.5.1 执行 READVERIFY 操作
      6. 6.3.6 BLANKVERIFY 命令
        1. 6.3.6.1 执行 BLANKVERIFY 操作
      7. 6.3.7 命令诊断
        1. 6.3.7.1 状态命令
        2. 6.3.7.2 地址转换
        3. 6.3.7.3 脉冲计数
      8. 6.3.8 使用存储体 ID、区域 ID 和存储体地址覆盖系统地址
      9. 6.3.9 FLASHCTL 事件
        1. 6.3.9.1 CPU 中断事件发布者
    4. 6.4 写保护
      1. 6.4.1 写保护分辨率
      2. 6.4.2 静态写保护
      3. 6.4.3 动态写保护
        1. 6.4.3.1 为 MAIN 区域配置保护
        2. 6.4.3.2 为 NONMAIN 区域配置保护
    5. 6.5 读取接口
      1. 6.5.1 存储体地址交换
    6. 6.6 FLASHCTL 寄存器
  9. 事件
    1. 7.1 事件概述
      1. 7.1.1 事件发布者
      2. 7.1.2 事件订阅者
      3. 7.1.3 事件结构路由
        1. 7.1.3.1 CPU 中断事件路由 (CPU_INT)
        2. 7.1.3.2 DMA 触发事件路由 (DMA_TRIGx)
        3. 7.1.3.3 通用事件路由 (GEN_EVENTx)
      4. 7.1.4 事件路由映射
      5. 7.1.5 事件传播延迟
    2. 7.2 事件操作
      1. 7.2.1 CPU 中断
      2. 7.2.2 DMA 触发
      3. 7.2.3 外设间事件
      4. 7.2.4 扩展的模块说明寄存器
      5. 7.2.5 使用事件寄存器
        1. 7.2.5.1 事件寄存器
        2. 7.2.5.2 配置事件
        3. 7.2.5.3 响应应用软件中的 CPU 中断
        4. 7.2.5.4 硬件事件处理
  10. IOMUX
    1. 8.1 IOMUX 概述
      1. 8.1.1 IO 类型和模拟共享
    2. 8.2 IOMUX 运行
      1. 8.2.1 外设功能 (PF) 分配
      2. 8.2.2 逻辑高电平转换到高阻态
      3. 8.2.3 逻辑反相
      4. 8.2.4 SHUTDOWN 模式唤醒逻辑
      5. 8.2.5 上拉/下拉电阻
      6. 8.2.6 驱动强度控制
      7. 8.2.7 迟滞和逻辑电平控制
    3. 8.3 IOMUX 寄存器
  11. GPIO
    1. 9.1 GPIO 概述
    2. 9.2 GPIO 操作
      1. 9.2.1 GPIO 端口
      2. 9.2.2 GPIO 读取/写入接口
      3. 9.2.3 GPIO 输入干扰滤波和同步
      4. 9.2.4 GPIO 快速唤醒
      5. 9.2.5 GPIO DMA 接口
      6. 9.2.6 事件发布者和订阅者
    3. 9.3 GPIO 寄存器
  12. 10AESADV
    1. 10.1 AESADV 概述
      1. 10.1.1 AESADV 性能
    2. 10.2 AESADV 运行
      1. 10.2.1 加载密钥
      2. 10.2.2 写入输入数据
      3. 10.2.3 读取输出数据
      4. 10.2.4 操作说明
        1. 10.2.4.1 单块操作
        2. 10.2.4.2 电码本 (ECB) 模式
          1. 10.2.4.2.1 ECB 加密
          2. 10.2.4.2.2 ECB 解密
        3. 10.2.4.3 密码分组链接 (CBC) 模式
          1. 10.2.4.3.1 CBC 加密
          2. 10.2.4.3.2 CBC 解密
        4. 10.2.4.4 输出反馈 (OFB) 模式
          1. 10.2.4.4.1 OFB 加密
          2. 10.2.4.4.2 OFB 解密
        5. 10.2.4.5 密码反馈 (CFB) 模式
          1. 10.2.4.5.1 CFB 加密
          2. 10.2.4.5.2 CFB 解密
        6. 10.2.4.6 计数器模式 (CTR)
          1. 10.2.4.6.1 CTR 加密
          2. 10.2.4.6.2 CTR 解密
        7. 10.2.4.7 伽罗瓦计数器模式 (GCM)
          1. 10.2.4.7.1 GHASH 运算
          2. 10.2.4.7.2 GCM 工作模式
            1. 10.2.4.7.2.1 自主 GCM 操作
              1. 10.2.4.7.2.1.1 GMAC
            2. 10.2.4.7.2.2 带有预计算值的 GCM
            3. 10.2.4.7.2.3 带有预计算 H 值且 Y0 加密值强制为零的 GCM 操作
        8. 10.2.4.8 带密码分组链接消息身份验证代码的计数器 (CCM)
          1. 10.2.4.8.1 CCM 操作
      5. 10.2.5 AES 事件
        1. 10.2.5.1 CPU 中断事件发布者 (CPU_EVENT)
        2. 10.2.5.2 DMA 触发事件发布者 (DMA_TRIG_DATAIN)
        3. 10.2.5.3 DMA 触发事件发布者 (DMA_TRIG_DATAOUT)
    3. 10.3 AESADV 寄存器
  13. 11CRC
    1. 11.1 CRC 概述
      1. 11.1.1 CRC16-CCITT
      2. 11.1.2 CRC32-ISO3309
    2. 11.2 CRC 运行
      1. 11.2.1 CRC 生成器实现
      2. 11.2.2 配置
        1. 11.2.2.1 多项式选择
        2. 11.2.2.2 位顺序
        3. 11.2.2.3 字节交换
        4. 11.2.2.4 字节顺序
        5. 11.2.2.5 CRC C 库兼容性
    3. 11.3 CRCP0 寄存器
  14. 12密钥库
    1. 12.1 概述
    2. 12.2 详细说明
    3. 12.3 KEYSTORECTL 寄存器
  15. 13TRNG
    1. 13.1 TRNG 概述
    2. 13.2 TRNG 运行
      1. 13.2.1 TRNG 生成数据路径
      2. 13.2.2 时钟配置和输出速率
      3. 13.2.3 低功耗模式下的行为
      4. 13.2.4 健康检测
        1. 13.2.4.1 数字块启动自检
        2. 13.2.4.2 模拟块启动自检
        3. 13.2.4.3 运行时健康检测
          1. 13.2.4.3.1 重复计数测试
          2. 13.2.4.3.2 自适应比例测试
          3. 13.2.4.3.3 处理运行时运行状况测试失败
      5. 13.2.5 配置
        1. 13.2.5.1 TRNG 状态机
          1. 13.2.5.1.1 更改 TRNG 状态
        2. 13.2.5.2 使用 TRNG
        3. 13.2.5.3 TRNG 事件
          1. 13.2.5.3.1 CPU 中断事件发布者 (CPU_INT)
    3. 13.3 TRNG 寄存器
  16. 14温度传感器
  17. 15ADC
    1. 15.1 ADC 概述
    2. 15.2 ADC 操作
      1. 15.2.1  ADC 内核
      2. 15.2.2  电压基准选项
      3. 15.2.3  通用分辨率模式
      4. 15.2.4  硬件均值计算
      5. 15.2.5  ADC 时钟
      6. 15.2.6  常见的 ADC 用例
      7. 15.2.7  断电行为
      8. 15.2.8  采样触发源和采样模式
        1. 15.2.8.1 自动采样模式
        2. 15.2.8.2 手动采样模式
      9. 15.2.9  采样周期
      10. 15.2.10 转换模式
      11. 15.2.11 数据格式
      12. 15.2.12 高级特性
        1. 15.2.12.1 窗口比较器
        2. 15.2.12.2 DMA 和 FIFO 操作
        3. 15.2.12.3 模拟外设互连
      13. 15.2.13 状态寄存器
      14. 15.2.14 ADC 事件
        1. 15.2.14.1 CPU 中断事件发布者 (CPU_INT)
        2. 15.2.14.2 通用事件发布者 (GEN_EVENT)
        3. 15.2.14.3 DMA 触发事件发布者 (DMA_TRIG)
        4. 15.2.14.4 通用事件订阅者 (FSUB_0)
    3. 15.3 ADC12 寄存器
  18. 16COMP
    1. 16.1 比较器概述
    2. 16.2 比较器运行
      1. 16.2.1  比较器配置
      2. 16.2.2  比较器通道选择
      3. 16.2.3  比较器输出
      4. 16.2.4  输出滤波器
      5. 16.2.5  采样输出模式
      6. 16.2.6  消隐模式
      7. 16.2.7  基准电压发生器
      8. 16.2.8  比较器滞后
      9. 16.2.9  输入短路开关
      10. 16.2.10 中断和事件支持
        1. 16.2.10.1 CPU 中断事件发布者 (CPU_INT)
        2. 16.2.10.2 通用事件发布者 (GEN_EVENT)
        3. 16.2.10.3 通用事件订阅者
    3. 16.3 COMP 寄存器
  19. 17OPA
    1. 17.1 OPA 概述
    2. 17.2 OPA 运行
      1. 17.2.1 模拟内核
      2. 17.2.2 上电行为
      3. 17.2.3 输入
      4. 17.2.4 输出
      5. 17.2.5 时钟要求
      6. 17.2.6 斩波
      7. 17.2.7 OPA 放大器模式
        1. 17.2.7.1 通用模式
        2. 17.2.7.2 缓冲模式
        3. 17.2.7.3 OPA PGA 模式
          1. 17.2.7.3.1 反相 PGA 模式
          2. 17.2.7.3.2 同相 PGA 模式
        4. 17.2.7.4 差分放大器模式
        5. 17.2.7.5 级联放大器模式
      8. 17.2.8 选择 OPA 配置
      9. 17.2.9 烧毁电流源
    3. 17.3 OA 寄存器
  20. 18GPAMP
    1. 18.1 GPAMP 概述
    2. 18.2 GPAMP 操作
      1. 18.2.1 模拟内核
      2. 18.2.2 上电行为
      3. 18.2.3 输入
      4. 18.2.4 输出
      5. 18.2.5 GPAMP 放大器模式
        1. 18.2.5.1 通用模式
        2. 18.2.5.2 ADC 缓冲模式
        3. 18.2.5.3 单位增益模式
      6. 18.2.6 斩波
    3. 18.3 GPAMP 寄存器
  21. 19VREF
    1. 19.1 VREF 概述
    2. 19.2 VREF 运行
      1. 19.2.1 内部基准生成
      2. 19.2.2 外部基准输入
      3. 19.2.3 模拟外设接口
    3. 19.3 VREF 寄存器
  22. 20LCD
    1. 20.1 LCD 简介
      1. 20.1.1 LCD 工作原理
      2. 20.1.2 静态模式
      3. 20.1.3 2 路复用模式
      4. 20.1.4 3 路复用模式
      5. 20.1.5 4 路复用模式
      6. 20.1.6 6 路复用模式
      7. 20.1.7 8 路复用模式
      8. 20.1.8 引言
      9. 20.1.9 LCD 波形
    2. 20.2 LCD 时钟
    3. 20.3 电压生成
      1. 20.3.1  模式 0 - 从外部基准和外部电阻分压器生成电压
      2. 20.3.2  模式 1 - 从 AVDD 和外部电阻分压器生成电压
      3. 20.3.3  模式 2 - 从外部基准和内部电阻分压器生成电压
      4. 20.3.4  模式 3 - 从 AVDD 和内部电阻梯生成电压
      5. 20.3.5  模式 4 - 使用外部电源从电荷泵生成电压
      6. 20.3.6  模式 5 - 使用 AVDD 从电荷泵生成电压
      7. 20.3.7  模式 6 - 在 R13 上使用外部基准从电荷泵生成电压
      8. 20.3.8  模式 7 - 在 R13 上使用内部基准从电荷泵生成电压
      9. 20.3.9  电荷泵
      10. 20.3.10 内部基准生成
    4. 20.4 模拟多路复用器
      1. 20.4.1 静态模式
      2. 20.4.2 非静态 1/3 偏置模式
      3. 20.4.3 非静态 1/4 偏置模式
      4. 20.4.4 低功耗模式开关控制
    5. 20.5 LCD 存储器和输出驱动器
      1. 20.5.1 LCD 存储器结构
        1. 20.5.1.1 1 路复用至 4 路复用模式下的存储器结构
        2. 20.5.1.2 5 路复用至 8 路复用模式下的存储器结构
        3. 20.5.1.3 配置存储器
        4. 20.5.1.4 访问存储器和输出驱动器
        5. 20.5.1.5 闪烁覆盖
    6. 20.6 IO 多路复用
    7. 20.7 中断生成
    8. 20.8 电源域和功耗模式
    9. 20.9 LCD 寄存器
  23. 21UART
    1. 21.1 UART 概述
      1. 21.1.1 外设的用途
      2. 21.1.2 特性
      3. 21.1.3 功能方框图
    2. 21.2 UART 运行
      1. 21.2.1 时钟控制
      2. 21.2.2 信号说明
      3. 21.2.3 通用架构和协议
        1. 21.2.3.1  发送/接收逻辑
        2. 21.2.3.2  位采样
        3. 21.2.3.3  多数表决功能
        4. 21.2.3.4  波特率生成
        5. 21.2.3.5  数据传输
        6. 21.2.3.6  错误和状态
        7. 21.2.3.7  本地互连网络 (LIN) 支持
          1. 21.2.3.7.1 LIN 响应者传输延迟
        8. 21.2.3.8  流控
        9. 21.2.3.9  空闲线多处理器
        10. 21.2.3.10 9 位 UART 模式
        11. 21.2.3.11 RS485 支持
        12. 21.2.3.12 DALI 协议
        13. 21.2.3.13 曼彻斯特编码和解码
        14. 21.2.3.14 IrDA 编码和解码
        15. 21.2.3.15 ISO7816 智能卡支持
        16. 21.2.3.16 地址检测
        17. 21.2.3.17 FIFO 操作
        18. 21.2.3.18 回送操作
        19. 21.2.3.19 干扰抑制
      4. 21.2.4 低功耗运行
      5. 21.2.5 复位注意事项
      6. 21.2.6 初始化
      7. 21.2.7 中断和事件支持
        1. 21.2.7.1 CPU 中断事件发布者 (CPU_INT)
        2. 21.2.7.2 DMA 触发发布者(DMA_TRIG_RX、DMA_TRIG_TX)
      8. 21.2.8 仿真模式
    3. 21.3 UART 寄存器
  24. 22I2C
    1. 22.1 I2C 概述
      1. 22.1.1 外设的用途
      2. 22.1.2 特性
      3. 22.1.3 功能方框图
      4. 22.1.4 环境和外部连接
    2. 22.2 I2C 操作
      1. 22.2.1 时钟控制
        1. 22.2.1.1 时钟选择和 I2C 速度
        2. 22.2.1.2 时钟启动
      2. 22.2.2 信号说明
      3. 22.2.3 通用架构
        1. 22.2.3.1  I2C 总线功能概览
        2. 22.2.3.2  START 和 STOP 条件
        3. 22.2.3.3  带有7位地址的数据格式
        4. 22.2.3.4  应答
        5. 22.2.3.5  重复开始
        6. 22.2.3.6  SCL 时钟低电平超时
        7. 22.2.3.7  时钟延展
        8. 22.2.3.8  双地址
        9. 22.2.3.9  仲裁
        10. 22.2.3.10 多控制器模式
        11. 22.2.3.11 干扰抑制
        12. 22.2.3.12 FIFO 操作
          1. 22.2.3.12.1 在目标模式下刷新过时的 Tx 数据
        13. 22.2.3.13 环回模式
        14. 22.2.3.14 突发模式
        15. 22.2.3.15 DMA 操作
        16. 22.2.3.16 低功耗操作
      4. 22.2.4 协议说明
        1. 22.2.4.1 I2C 控制器模式
          1. 22.2.4.1.1 控制器配置
          2. 22.2.4.1.2 控制器模式操作
          3. 22.2.4.1.3 TX 为空时读取
        2. 22.2.4.2 I2C 目标模式
          1. 22.2.4.2.1 目标模式运行
      5. 22.2.5 复位注意事项
      6. 22.2.6 初始化
      7. 22.2.7 中断和事件支持
        1. 22.2.7.1 CPU 中断事件发布者 (CPU_INT)
        2. 22.2.7.2 DMA 触发发布者(DMA_TRIG1、DMA_TRIG0)
      8. 22.2.8 仿真模式
    3. 22.3 I2C 寄存器
  25. 23SPI
    1. 23.1 SPI 概述
      1. 23.1.1 外设的用途
      2. 23.1.2 特性
      3. 23.1.3 功能方框图
      4. 23.1.4 外部连接和信号说明
    2. 23.2 SPI 运行
      1. 23.2.1 时钟控制
      2. 23.2.2 通用架构
        1. 23.2.2.1 芯片选择和命令处理
          1. 23.2.2.1.1 片选控制
          2. 23.2.2.1.2 命令数据控制
        2. 23.2.2.2 数据格式
        3. 23.2.2.3 延迟的数据采样
        4. 23.2.2.4 时钟生成
        5. 23.2.2.5 FIFO 运行
        6. 23.2.2.6 环回模式
        7. 23.2.2.7 DMA 操作
        8. 23.2.2.8 重复传输模式
        9. 23.2.2.9 低功率模式
      3. 23.2.3 协议说明
        1. 23.2.3.1 Motorola SPI 帧格式
        2. 23.2.3.2 TI同步串行接口帧格式
      4. 23.2.4 复位注意事项
      5. 23.2.5 初始化
      6. 23.2.6 中断和事件支持
        1. 23.2.6.1 CPU 中断事件发布者 (CPU_INT)
        2. 23.2.6.2 DMA 触发发布者(DMA_TRIG_RX、DMA_TRIG_TX)
      7. 23.2.7 仿真模式
    3. 23.3 SPI 寄存器
  26. 24计时器 (TIMx)
    1. 24.1 TIMx 概述
      1. 24.1.1 TIMG 概述
        1. 24.1.1.1 TIMG 特性
        2. 24.1.1.2 功能方框图
      2. 24.1.2 TIMA 概述
        1. 24.1.2.1 TIMA 特性
        2. 24.1.2.2 功能方框图
      3. 24.1.3 TIMx 实例配置
    2. 24.2 TIMx 操作
      1. 24.2.1  计时器计数器
        1. 24.2.1.1 时钟源选择和预分频器
          1. 24.2.1.1.1 内部时钟和预分频器
          2. 24.2.1.1.2 外部信号触发
        2. 24.2.1.2 重复计数器(仅限 TIMA)
      2. 24.2.2  计数模式控制
        1. 24.2.2.1 单次触发和周期模式
        2. 24.2.2.2 向下计数模式
        3. 24.2.2.3 向上/向下计数模式
        4. 24.2.2.4 向上计数模式
        5. 24.2.2.5 相位加载(仅限 TIMA)
      3. 24.2.3  捕获/比较模块
        1. 24.2.3.1 捕获模式
          1. 24.2.3.1.1 输入选择、计数器条件和反转
            1. 24.2.3.1.1.1 CCP 输入边沿同步
            2. 24.2.3.1.1.2 CCP 输入脉冲条件
            3. 24.2.3.1.1.3 计数器控制操作
            4. 24.2.3.1.1.4 CCP 输入滤波
            5. 24.2.3.1.1.5 输入选择
          2. 24.2.3.1.2 用例
            1. 24.2.3.1.2.1 边沿时间捕获
            2. 24.2.3.1.2.2 周期捕获
            3. 24.2.3.1.2.3 脉宽捕捉
            4. 24.2.3.1.2.4 组合的脉宽和周期时间
          3. 24.2.3.1.3 QEI 模式(仅限支持 QEI 的 TIMG)
            1. 24.2.3.1.3.1 具有 2 信号的 QEI
            2. 24.2.3.1.3.2 具有索引输入的 QEI
            3. 24.2.3.1.3.3 QEI 错误检测
          4. 24.2.3.1.4 霍尔输入模式(仅限支持 QEI 的 TIMG)
        2. 24.2.3.2 比较模式
          1. 24.2.3.2.1 边沿计数
      4. 24.2.4  影子加载和影子比较
        1. 24.2.4.1 影子加载(仅限 TIMG4-7、TIMA)
        2. 24.2.4.2 影子比较(仅限 TIMG4-7、TIMG12-13 和 TIMA)
      5. 24.2.5  输出发生器
        1. 24.2.5.1 配置
        2. 24.2.5.2 用例
          1. 24.2.5.2.1 边沿对齐的 PWM
          2. 24.2.5.2.2 中心对齐 PWM
          3. 24.2.5.2.3 非对称 PWM(仅限 TIMA)
          4. 24.2.5.2.4 具有死区插入的互补 PWM(仅限 TIMA)
        3. 24.2.5.3 强制输出
      6. 24.2.6  故障处理程序(仅限 TIMA)
        1. 24.2.6.1 故障输入调节
        2. 24.2.6.2 故障输入源
        3. 24.2.6.3 故障条件下的计数器行为
        4. 24.2.6.4 故障条件下的输出行为
      7. 24.2.7  通过交叉触发同步
        1. 24.2.7.1 主计时器交叉触发器配置
        2. 24.2.7.2 次级计时器交叉触发器配置
      8. 24.2.8  低功耗运行
      9. 24.2.9  中断和事件支持
        1. 24.2.9.1 CPU 中断事件发布者 (CPU_INT)
        2. 24.2.9.2 通用事件发布者(GEN_EVENT0 和 GEN_EVENT1)
        3. 24.2.9.3 通用订阅者事件示例(COMP 至 TIMx)
      10. 24.2.10 调试处理程序(仅限 TIMA)
    3. 24.3 TIMx 寄存器
  27. 25低频子系统 (LFSS)
    1. 25.1  概述
    2. 25.2  时钟系统
    3. 25.3  使用 VBAT 进行 LFSS 复位
    4. 25.4  电源域和电源检测
      1. 25.4.1 在 VBAT 首次上电时启动
      2. 25.4.2 在 VDD 首次上电时启动
      3. 25.4.3 VDD 丢失时的行为
      4. 25.4.4 VBAT 丢失时的行为
      5. 25.4.5 器件进入 SHUTDOWN 模式时的行为
      6. 25.4.6 超级电容器充电电路
    5. 25.5  实时计数器 (RTC_x)
    6. 25.6  独立看门狗计时器 (IWDT)
    7. 25.7  防篡改输入和输出
      1. 25.7.1 IOMUX 模式
      2. 25.7.2 防篡改模式
        1. 25.7.2.1 篡改事件检测
        2. 25.7.2.2 时间戳事件输出
        3. 25.7.2.3 检测信号发生器
        4. 25.7.2.4 RTC 时钟输出
    8. 25.8  暂存区存储器
    9. 25.9  RTC、TIO 和 IWDT 的锁定功能
    10. 25.10 LFSS 寄存器
  28. 26低频子系统 (LFSS_B)
    1. 26.1 概述
    2. 26.2 时钟系统
    3. 26.3 LFSS 复位
    4. 26.4 实时计数器 (RTC_x)
    5. 26.5 独立看门狗计时器 (IWDT)
    6. 26.6 RTC 和 IWDT 的锁定功能
    7. 26.7 LFSS 寄存器
  29. 27RTC
    1. 27.1 概述
      1. 27.1.1 RTC 实例
    2. 27.2 基本操作
    3. 27.3 配置
      1. 27.3.1  时钟
      2. 27.3.2  读取和写入 RTC 外设寄存器
      3. 27.3.3  二进制与 BCD
      4. 27.3.4  闰年处理
      5. 27.3.5  日历报警配置
      6. 27.3.6  间隔报警配置
      7. 27.3.7  定期报警配置
      8. 27.3.8  Calibration
        1. 27.3.8.1 晶体偏移误差
          1. 27.3.8.1.1 偏移量误差校正机制
        2. 27.3.8.2 晶体温度误差
          1. 27.3.8.2.1 温度漂移校正机制
      9. 27.3.9  RTC 预分频器扩展
      10. 27.3.10 RTC 时间戳捕获
      11. 27.3.11 RTC 事件
        1. 27.3.11.1 CPU 中断事件发布者 (CPU_INT)
        2. 27.3.11.2 通用事件发布者 (GEN_EVENT)
    4. 27.4 RTC 寄存器
  30. 28IWDT
    1. 28.1 734
    2. 28.2 IWDT 时钟配置
    3. 28.3 IWDT 周期选择
    4. 28.4 IWDT 的调试行为
    5. 28.5 IWDT 寄存器
  31. 29WWDT
    1. 29.1 WWDT 概述
      1. 29.1.1 看门狗模式
      2. 29.1.2 间隔定时器模式
    2. 29.2 WWDT 运行
      1. 29.2.1 模式选择
      2. 29.2.2 时钟配置
      3. 29.2.3 低功耗模式行为
      4. 29.2.4 调试行为
      5. 29.2.5 WWDT 事件
        1. 29.2.5.1 CPU 中断事件发布者 (CPU_INT)
    3. 29.3 WWDT 寄存器
  32. 30调试
    1. 30.1 DEBUGSS 概述
      1. 30.1.1 调试互连
      2. 30.1.2 物理接口
      3. 30.1.3 调试访问端口
    2. 30.2 DEBUGSS 工作原理
      1. 30.2.1 调试特性
        1. 30.2.1.1 处理器调试
          1. 30.2.1.1.1 断点单元 (BPU)
          2. 30.2.1.1.2 数据观察点和跟踪单元 (DWT)
        2. 30.2.1.2 外设调试
        3. 30.2.1.3 EnergyTrace 技术
      2. 30.2.2 低功耗模式下的行为
      3. 30.2.3 限制调试访问
      4. 30.2.4 邮箱 (DSSM)
        1. 30.2.4.1 DSSM 事件
          1. 30.2.4.1.1 CPU 中断事件 (CPU_INT)
        2. 30.2.4.2 参考
    3. 30.3 DEBUGSS 寄存器
  33. 31修订历史记录

I2C 寄存器

表 22-21 列出了 I2C 寄存器的存储器映射寄存器。表 22-21 中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。

表 22-21 I2C 寄存器
偏移 首字母缩写词 寄存器名称 部分
800h PWREN 电源使能 节 22.3.1
804h RSTCTL 复位控制 节 22.3.2
808h CLKCFG 外设时钟配置寄存器 节 22.3.3
814h STAT 状态寄存器 节 22.3.4
1000h CLKDIV 时钟分频器 节 22.3.5
1004h CLKSEL 超低功耗外设的时钟选择 节 22.3.6
1018h PDBGCTL 外设调试控制 节 22.3.7
1020h IIDX 中断索引 节 22.3.8
1028h IMASK 中断屏蔽 节 22.3.9
1030h RIS 原始中断状态 节 22.3.10
1038h MIS 已屏蔽中断状态 节 22.3.11
1040h ISET 中断设置 节 22.3.12
1048h ICLR 中断清除 节 22.3.13
1050h IIDX 中断索引 节 22.3.14
1058h IMASK 中断屏蔽 节 22.3.15
1060h RIS 原始中断状态 节 22.3.16
1068h MIS 已屏蔽中断状态 节 22.3.17
1070h ISET 中断设置 节 22.3.18
1078h ICLR 中断清除 节 22.3.19
1080h IIDX 中断索引 节 22.3.20
1088h IMASK 中断屏蔽 节 22.3.21
1090h RIS 原始中断状态 节 22.3.22
1098h MIS 已屏蔽中断状态 节 22.3.23
10A0h ISET 中断设置 节 22.3.24
10A8h ICLR 中断清除 节 22.3.25
10E0h EVT_MODE 事件模式 节 22.3.26
10E4h INTCTL 中断控制寄存器 节 22.3.27
10FCh DESC 模块说明 节 22.3.28
1200h GFCTL I2C 干扰滤波器控制 节 22.3.29
1204h TIMEOUT_CTL I2C 超时计数控制寄存器 节 22.3.30
1208h TIMEOUT_CNT I2C 超时计数寄存器 节 22.3.31
1210h CSA I2C 控制器目标地址寄存器 节 22.3.32
1214h CCTR I2C 控制器控制寄存器 节 22.3.33
1218h CSR I2C 控制器状态寄存器 节 22.3.34
121Ch CRXDATA I2C 控制器 RX 数据 节 22.3.35
1220h CTXDATA I2C 控制器 TX 数据 节 22.3.36
1224h CTPR I2C 控制器计时器周期 节 22.3.37
1228h CCR I2C 控制器配置 节 22.3.38
1234h CBMON I2C 控制器总线监控器 节 22.3.39
1238h CFIFOCTL I2C 控制器 FIFO 控制 节 22.3.40
123Ch CFIFOSR I2C 控制器 FIFO 状态寄存器 节 22.3.41
1240h _I2CPECCTL I2C 控制器 PEC 控制寄存器 节 22.3.42
1244h _PECSR I2C 控制器 PEC 状态寄存器 节 22.3.43
1250h TOAR I2C 目标自身地址 节 22.3.44
1254h TOAR2 I2C 目标自身地址 2 节 22.3.45
1258h TCTR I2C 目标控制寄存器 节 22.3.46
125Ch TSR I2C 目标状态寄存器 节 22.3.47
1260h TRXDATA I2C 目标 RX 数据 节 22.3.48
1264h TTXDATA I2C 目标 TX 数据 节 22.3.49
1268h TACKCTL I2C 目标 ACK 控制 节 22.3.50
126Ch TFIFOCTL I2C 目标 FIFO 控制 节 22.3.51
1270h TFIFOSR I2C 目标 FIFO 状态寄存器 节 22.3.52
1274h _PECCTL I2C 目标 PEC 控制寄存器 节 22.3.53
1278h _PECSR I2C 目标 PEC 状态寄存器 节 22.3.54

复杂的位访问类型经过编码可适应小型表单元。表 22-22 展示了适用于此部分中访问类型的代码。

表 22-22 I2C 访问类型代码
访问类型 代码 说明
读取类型
R R 读取
写入类型
W W 写入
WK W
K
写入
受密钥保护的写入
复位或默认值
-n 复位后的值或默认值

22.3.1 PWREN 寄存器(偏移 = 800h)[复位 = 00000000h]

表 22-23 中显示了 PWREN。

返回到汇总表

用于控制电源状态的寄存器

表 22-23 PWREN 寄存器字段说明
字段 类型 复位 说明
31-24 KEY W 0h 允许电源状态更改的 KEY
26h = 允许对该寄存器进行写入访问的 KEY
23-1 RESERVED R 0h
0 ENABLE R/WK 0h 启用电源

必须将 KEY 设置为 26h 才能写入该位。


0h = 禁用电源
1h = 启用电源

22.3.2 RSTCTL 寄存器(偏移 = 804h)[复位 = 00000000h]

表 22-24 中显示了 RSTCTL。

返回到汇总表

用于控制复位有效和无效的寄存器

表 22-24 RSTCTL 寄存器字段说明
字段 类型 复位 说明
31-24 KEY W 0h 解锁密钥
B1h = 允许对该寄存器进行写入访问的 KEY
23-2 RESERVED R 0h
1 RESETSTKYCLR WK 0h 清除 STAT 寄存器中的 RESETSTKY 位

必须将 KEY 设置为 B1h 才能写入该位。


0h = 写入 0 不产生影响
1h = 清除复位粘滞位
0 RESETASSERT WK 0h 外设复位生效

必须将 KEY 设置为 B1h 才能写入该位。


0h = 写入 0 无效
1h = 复位生效

22.3.3 CLKCFG 寄存器(偏移 = 808h)[复位 = 00000000h]

表 22-25 中显示了 CLKCFG。

返回到汇总表

外设时钟配置寄存器

表 22-25 CLKCFG 寄存器字段说明
字段 类型 复位 说明
31-24 KEY W 0h 允许状态更改的 KEY - 0xA9
A9h = 允许更改 GPRCM 字段的密钥值
23-9 RESERVED R 0h
8 BLOCKASYNC R/W 0h 阻止异步时钟请求启动 SYSOSC 或强制总线时钟为 32MHz
0h = 不阻止异步时钟请求
1h = 阻止异步时钟请求
7-0 RESERVED R 0h

22.3.4 STAT 寄存器(偏移 = 814h)[复位 = 00000000h]

表 22-26 中显示了 STAT。

返回到汇总表

外设启用和复位状态

表 22-26 STAT 寄存器字段说明
字段 类型 复位 说明
31-17 RESERVED R 0h
16 RESETSTKY R 0h 该位指示自 RSTCTL 寄存器中的 RESETSTKYCLR 清除该位以来,外设是否复位
0h = 自 RSTCTL 寄存器中的 RESETSTKYCLR 上次清除该位以来,外设尚未复位
1h = 自从上次清除该位以来,外设已复位
15-0 RESERVED R 0h

22.3.5 CLKDIV 寄存器(偏移 = 1000h)[复位 = 00000000h]

表 22-27 中显示了 CLKDIV。

返回到汇总表

该寄存器用于指定功能时钟的模块专用分频比

表 22-27 CLKDIV 寄存器字段说明
字段 类型 复位 说明
31-3 RESERVED R 0h
2-0 RATIO R/W 0h 选择模块时钟的分频比
0h = 不对时钟源进行分频
1h = 对时钟源进行 2 分频
2h = 对时钟源进行 3 分频
3h = 对时钟源进行 4 分频
4h = 对时钟源进行 5 分频
5h = 对时钟源进行 6 分频
6h = 对时钟源进行 7 分频
7h = 对时钟源进行 8 分频

22.3.6 CLKSEL 寄存器(偏移 = 1004h)[复位 = 00000000h]

表 22-28 中显示了 CLKSEL。

返回到汇总表

时钟源选择。

表 22-28 CLKSEL 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 BUSCLK_SEL R/W 0h 如果启用,选择 BUSCLK 作为时钟源
0h = 不选择此时钟作为时钟源
1h = 选择此时钟作为时钟源
2 MFCLK_SEL R/W 0h 如果启用,选择 MFCLK 作为时钟源
0h = 不选择此时钟作为时钟源
1h = 选择此时钟作为时钟源
1-0 RESERVED R 0h

22.3.7 PDBGCTL 寄存器(偏移 = 1018h)[复位 = 00000000h]

表 22-29 展示了 PDBGCTL。

返回到汇总表

软件开发人员可以使用该寄存器来控制外设相对于“内核暂停”输入的行为

表 22-29 PDBGCTL 寄存器字段说明
字段 类型 复位 说明
31-2 RESERVED R 0h
1 SOFT R/W 1h 软暂停边界控制。此功能仅在 FREE 设置为“STOP”时可用
0h = 外设将立即暂停,即使系统重新启动后产生的状态将导致损坏的情况下也是如此
1h = 外设阻止调试冻结,直至其达到可以恢复而不会损坏的边界
0 免费 R/W 1h 自由运行控制
0h = 当“内核暂停”输入变为有效时,外设功能冻结;当该输入变为无效时,外设功能恢复。
1h = 外设忽略“内核暂停”输入的状态

22.3.8 IIDX 寄存器(偏移 = 1020h)[复位 = 00000000h](CPU_INT)

表 22-30 中显示了 IIDX。

返回到汇总表

该寄存器提供了具有最高优先级的中断索引。

表 22-30 IIDX 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 STAT R 0h I2C 模块中断矢量值。该寄存器提供了最高优先级中断索引。读取操作会清除 RIS 和 MISC 中的相应中断标志。15h-1Fh = 保留
00h = 无中断挂起
01h = 已接收控制器数据
02h = 已发送控制器数据
03h = 控制器接收 FIFO 触发电平
04h = 控制器发送 FIFO 触发电平
5h = RX FIFO 满事件/中断挂起
6h = 发送 FIFO/缓冲器空事件/中断挂起
08h = 地址/数据 NACK
09h = 启动事件
0Ah = 停止事件
0Bh = 仲裁失败
Ch = 通道 TX 上 DMA 完成
Dh = 通道 RX 上 DMA 完成
Eh = 控制器 PEC 接收错误事件
Fh = 超时 A 事件
10h = 超时 B 事件
11h = 目标数据事件
12h = 目标数据事件
13h = 目标接收 FIFO 触发电平
14h = 目标发送 FIFO 触发电平
15h = RX FIFO 已满事件/中断挂起
16h = 发送 FIFO/缓冲器空事件/中断挂起
17h = 启动事件
18h = 停止事件
19h = 常规调用事件
1Ah = 通道 TX 上 DMA 完成
1Bh = 通道 RX 上 DMA 完成
1Ch = 目标 PEC 接收错误事件
1Dh = 目标 TX FIFO 下溢
1Eh = 目标 RX FIFO 上溢事件
1Fh = 目标仲裁失败事件
20h = 中断上溢事件

22.3.9 IMASK 寄存器(偏移 = 1028h)[复位 = 00000000h](CPU_INT)

表 22-31 中显示了 IMASK。

返回到汇总表

中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。

表 22-31 IMASK 寄存器字段说明
字段 类型 复位 说明
31 INTR_OVFL R/W 0h 中断上溢中断屏蔽
0h = 清除中断屏蔽
1h = 设置中断屏蔽
30 TARBLOST R/W 0h 目标仲裁失败
0h = 清除设置的中断屏蔽
1h = 设置中断屏蔽
29 TRX_OVFL R/W 0h 目标 RX FIFO 上溢
0h = 清除中断屏蔽
1h = 设置中断屏蔽
28 TTX_UNFL R/W 0h 目标 TX FIFO 下溢
0h = 清除中断屏蔽
1h = 设置中断屏蔽
27 TPEC_RX_ERR R/W 0h 目标 RX PEC 错误中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
26 TDMA_DONE_RX R/W 0h 事件通道 RX 上目标 DMA 完成
0h = 清除中断屏蔽
1h = 设置中断屏蔽
25 TDMA_DONE_TX R/W 0h 事件通道 TX 上目标 DMA 完成
0h = 清除中断屏蔽
1h = 设置中断屏蔽
24 TGENCALL R/W 0h 通用广播中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
23 TSTOP R/W 0h 停止条件中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
22 TSTART R/W 0h 启动条件中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
21 TTXEMPTY R/W 0h 目标发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 清除中断屏蔽
1h = 设置中断屏蔽
20 TRXFIFOFULL R/W 0h RXFIFO 满事件。如果目标 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 设置中断屏蔽
19 TTXFIFOTRG R/W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
18 TRXFIFOTRG R/W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
17 TTXDONE R/W 0h 目标发送事务完成中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
16 TRXDONE R/W 0h 目标接收数据中断
表示已接收到一个字节的信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
15 TIMEOUTB R/W 0h 超时 B 中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
14 TIMEOUTA R/W 0h 超时 A 中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
13 CPEC_RX_ERR R/W 0h 控制器 RX PEC 错误中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
12 CDMA_DONE_RX R/W 0h 事件通道 RX 上 DMA 完成
0h = 中断已禁用
1h = 设置中断屏蔽
11 CDMA_DONE_TX R/W 0h 事件通道 TX 上 DMA 完成
0h = 中断已禁用
1h = 设置中断屏蔽
10 CARBLOST R/W 0h 仲裁失败中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
9 CSTOP R/W 0h STOP 检测中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
8 CSTART R/W 0h START 检测中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
7 CNACK R/W 0h 地址/数据 NACK 中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
6 RESERVED R 0h
5 CTXEMPTY R/W 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 清除中断屏蔽
1h = 设置中断屏蔽
4 CRXFIFOFULL R/W 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 设置中断屏蔽
3 CTXFIFOTRG R/W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 CRXFIFOTRG R/W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXDONE R/W 0h 控制器发送事务完成中断

0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXDONE R/W 0h 控制器接收事务完成中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.10 RIS 寄存器(偏移 = 1030h)[复位 = 00000000h](CPU_INT)

表 22-32 中显示了 RIS。

返回到汇总表

原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。

表 22-32 RIS 寄存器字段说明
字段 类型 复位 说明
31 INTR_OVFL R 0h 中断上溢中断
当 CSTART 或 CSTOP 中断上溢发生两次而未得到处理时设置此位
0h = 未发生中断
1h = 已发生中断
30 TARBLOST R 0h 目标仲裁失败
0h = 未发生中断
1h = 已发生中断
29 TRX_OVFL R 0h 目标 RX FIFO 上溢
0h = 未发生中断
1h = 已发生中断
28 TTX_UNFL R 0h 目标 TX FIFO 下溢
0h = 未发生中断
1h = 已发生中断
27 TPEC_RX_ERR R 0h 目标 RX PEC 错误中断
0h = 未发生中断
1h = 已发生中断
26 TDMA_DONE_RX R 0h 事件通道 RX 上 DMA 完成
0h = 清除中断
1h = 设置中断
25 TDMA_DONE_TX R 0h 事件通道 TX 上 DMA 完成
0h = 清除中断
1h = 设置中断
24 TGENCALL R 0h 通用广播中断
0h = 清除中断屏蔽
1h = 已发生中断
23 TSTOP R 0h 停止条件中断
0h = 清除中断
1h = 设置中断
22 TSTART R 0h 启动条件中断
0h = 清除中断
1h = 设置中断
21 TTXEMPTY R 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 未发生中断
1h = 已发生中断
20 TRXFIFOFULL R 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 已发生中断
19 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 已发生中断
18 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 已发生中断
17 TTXDONE R 0h 目标发送事务完成中断
0h = 未发生中断
1h = 已发生中断
16 TRXDONE R 0h 目标接收数据中断
表示已接收到一个字节的信号
0h = 未发生中断
1h = 已发生中断
15 TIMEOUTB R 0h 超时 B 中断
0h = 未发生中断
1h = 已发生中断
14 TIMEOUTA R 0h 超时 A 中断
0h = 未发生中断
1h = 已发生中断
13 CPEC_RX_ERR R 0h 控制器 RX PEC 错误中断
0h = 未发生中断
1h = 已发生中断
12 CDMA_DONE_RX R 0h 事件通道 RX 上 DMA 完成
0h = 中断已禁用
1h = 已发生中断
11 CDMA_DONE_TX R 0h 事件通道 TX 上 DMA 完成
0h = 中断已禁用
1h = 已发生中断
10 CARBLOST R 0h 仲裁失败中断
0h = 未发生中断
1h = 已发生中断
9 CSTOP R 0h STOP 检测中断
0h = 未发生中断
1h = 已发生中断
8 CSTART R 0h START 检测中断
0h = 未发生中断
1h = 已发生中断
7 CNACK R 0h 地址/数据 NACK 中断
0h = 未发生中断
1h = 已发生中断
6 RESERVED R 0h
5 CTXEMPTY R 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 未发生中断
1h = 已发生中断
4 CRXFIFOFULL R 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 未发生中断
1h = 已发生中断
3 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 已发生中断
2 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 已发生中断
1 CTXDONE R 0h 控制器发送事务完成中断
0h = 未发生中断
1h = 已发生中断
0 CRXDONE R 0h 控制器接收事务完成中断
0h = 未发生中断
1h = 已发生中断

22.3.11 MIS 寄存器(偏移 = 1038h)[复位 = 00000000h](CPU_INT)

表 22-33 中显示了 MIS。

返回到汇总表

屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。

表 22-33 MIS 寄存器字段说明
字段 类型 复位 说明
31 INTR_OVFL R 0h 中断上溢
0h = 未发生中断
1h = 已发生中断
30 TARBLOST R 0h 目标仲裁失败
0h = 清除中断屏蔽
1h = 设置中断屏蔽
29 TRX_OVFL R 0h 目标 RX FIFO 上溢
0h = 清除中断屏蔽
1h = 设置中断屏蔽
28 TTX_UNFL R 0h 目标 TX FIFO 下溢
0h = 清除中断屏蔽
1h = 设置中断屏蔽
27 TPEC_RX_ERR R 0h 目标 RX PEC 错误中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
26 TDMA_DONE_RX R 0h 事件通道 RX 上 DMA 完成
0h = 清除 MIS
1h = 设置 MIS
25 TDMA_DONE_TX R 0h 事件通道 TX 上 DMA 完成
0h = 清除 MIS
1h = 设置 MIS
24 TGENCALL R 0h 通用广播中断
0h = 未发生中断
1h = 已发生中断
23 TSTOP R 0h 目标 STOP 检测中断
0h = 清除 MIS
1h = 设置 MIS
22 TSTART R 0h 目标 START 检测中断
0h = 清除 MIS
1h = 设置 MIS
21 TTXEMPTY R 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 未发生中断
1h = 已发生中断
20 TRXFIFOFULL R 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 已发生中断
19 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 已发生中断
18 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 已发生中断
17 TTXDONE R 0h 目标发送事务完成中断
0h = 未发生中断
1h = 已发生中断
16 TRXDONE R 0h 目标接收数据中断
表示已接收到一个字节的信号
0h = 未发生中断
1h = 已发生中断
15 TIMEOUTB R 0h 超时 B 中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
14 TIMEOUTA R 0h 超时 A 中断
0h = 未发生中断
1h = 已发生中断
13 CPEC_RX_ERR R 0h 控制器 RX PEC 错误中断
0h = 清除中断屏蔽
1h = 设置中断屏蔽
12 CDMA_DONE_RX R 0h 事件通道 RX 上 DMA 完成
0h = 中断已禁用
1h = 已发生中断
11 CDMA_DONE_TX R 0h 事件通道 TX 上 DMA 完成
0h = 中断已禁用
1h = 已发生中断
10 CARBLOST R 0h 仲裁失败中断
0h = 未发生中断
1h = 已发生中断
9 CSTOP R 0h STOP 检测中断
0h = 未发生中断
1h = 已发生中断
8 CSTART R 0h START 检测中断
0h = 未发生中断
1h = 已发生中断
7 CNACK R 0h 地址/数据 NACK 中断
0h = 未发生中断
1h = 已发生中断
6 RESERVED R 0h
5 CTXEMPTY R 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 未发生中断
1h = 已发生中断
4 CRXFIFOFULL R 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 未发生中断
1h = 已发生中断
3 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 已发生中断
2 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 已发生中断
1 CTXDONE R 0h 控制器发送事务完成中断
0h = 未发生中断
1h = 已发生中断
0 CRXDONE R 0h 控制器接收数据中断
0h = 未发生中断
1h = 已发生中断

22.3.12 ISET 寄存器(偏移 = 1040h)[复位 = 00000000h](CPU_INT)

表 22-34 中显示了 ISET。

返回到汇总表

中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。

表 22-34 ISET 寄存器字段说明
字段 类型 复位 说明
31 INTR_OVFL W 0h 中断上溢
0h = 无效
1h = 设置中断
30 TARBLOST W 0h 目标仲裁失败
0h = 写入 0 无效
1h = 设置中断
29 TRX_OVFL W 0h 目标 RX FIFO 上溢
0h = 写入 0 无效
1h = 设置中断
28 TTX_UNFL W 0h 目标 TX FIFO 下溢
0h = 写入 0 无效
1h = 设置中断
27 TPEC_RX_ERR W 0h 目标 RX PEC 错误中断
0h = 写入 0 无效
1h = 设置中断
26 TDMA_DONE_RX W 0h 事件通道 RX 上 DMA 完成
0h = 写入 0 无效
1h = 设置中断
25 TDMA_DONE_TX W 0h 事件通道 TX 上 DMA 完成
0h = 写入 0 无效
1h = 设置中断
24 TGENCALL W 0h 通用广播中断
0h = 写入 0 无效
1h = 设置中断
23 TSTOP W 0h 停止条件中断
0h = 写入 0 无效
1h = 设置中断
22 TSTART W 0h 启动条件中断
0h = 写入 0 无效
1h = 设置中断
21 TTXEMPTY W 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 写入 0 不产生影响
1h = 设置中断
20 TRXFIFOFULL W 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 设置中断
19 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断
18 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断
17 TTXDONE W 0h 目标发送事务完成中断
0h = 写入 0 无效
1h = 设置中断
16 TRXDONE W 0h 目标接收数据中断
表示已接收到一个字节的信号
0h = 写入 0 无效
1h = 设置中断
15 TIMEOUTB W 0h 超时 B 中断
0h = 写入 0 无效
1h = 设置中断
14 TIMEOUTA W 0h 超时 A 中断
0h = 写入 0 无效
1h = 设置中断
13 CPEC_RX_ERR W 0h 控制器 RX PEC 错误中断
0h = 写入 0 无效
1h = 设置中断
12 CDMA_DONE_RX W 0h 事件通道 RX 上 DMA 完成
0h = 中断已禁用
1h = 设置中断
11 CDMA_DONE_TX W 0h 事件通道 TX 上 DMA 完成
0h = 中断已禁用
1h = 设置中断
10 CARBLOST W 0h 仲裁失败中断
0h = 写入 0 无效
1h = 设置中断
9 CSTOP W 0h STOP 检测中断
0h = 写入 0 无效
1h = 设置中断
8 CSTART W 0h START 检测中断
0h = 写入 0 无效
1h = 设置中断
7 CNACK W 0h 地址/数据 NACK 中断
0h = 写入 0 无效
1h = 设置中断
6 RESERVED R 0h
5 CTXEMPTY W 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 写入 0 无效
1h = 设置中断
4 CRXFIFOFULL W 0h RXFIFO 满事件。
0h = 写入 0 无效
1h = 设置中断
3 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断
2 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断
1 CTXDONE W 0h 控制器发送事务完成中断
0h = 写入 0 无效
1h = 设置中断
0 CRXDONE W 0h 控制器接收数据中断
表示已接收到一个字节的信号
0h = 写入 0 无效
1h = 设置中断

22.3.13 ICLR 寄存器(偏移 = 1048h)[复位 = 00000000h](CPU_INT)

表 22-35 中显示了 ICLR。

返回到汇总表

中断清除。写入 1 以清除相应的中断。

表 22-35 ICLR 寄存器字段说明
字段 类型 复位 说明
31 INTR_OVFL W 0h 中断上溢
0h = 无效
1h = 清除中断
30 TARBLOST W 0h 目标仲裁失败
0h = 写入 0 无效
1h = 清除中断
29 TRX_OVFL W 0h 目标 RX FIFO 上溢
0h = 写入 0 无效
1h = 清除中断
28 TTX_UNFL W 0h 目标 TX FIFO 下溢
0h = 写入 0 无效
1h = 清除中断
27 TPEC_RX_ERR W 0h 目标 RX PEC 错误中断
0h = 写入 0 无效
1h = 清除中断
26 TDMA_DONE_RX W 0h 事件通道 RX 上 DMA 完成
0h = 写入 0 无效
1h = 清除中断
25 TDMA_DONE_TX W 0h 事件通道 TX 上 DMA 完成
0h = 写入 0 无效
1h = 清除中断
24 TGENCALL W 0h 通用广播中断
0h = 写入 0 无效
1h = 清除中断
23 TSTOP W 0h 目标 STOP 检测中断
0h = 写入 0 无效
1h = 清除中断
22 TSTART W 0h 目标 START 检测中断
0h = 写入 0 无效
1h = 清除中断
21 TTXEMPTY W 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 写入 0 不产生影响
1h = 清除中断
20 TRXFIFOFULL W 0h RXFIFO 满事件。如果 RX FIFO 已满,则设置此中断。
0h = 清除中断屏蔽
1h = 清除中断
19 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 清除中断
18 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 清除中断
17 TTXDONE W 0h 目标发送事务完成中断
0h = 写入 0 无效
1h = 清除中断
16 TRXDONE W 0h 目标接收数据中断
表示已接收到一个字节的信号
0h = 写入 0 无效
1h = 清除中断
15 TIMEOUTB W 0h 超时 B 中断
0h = 写入 0 无效
1h = 清除中断
14 TIMEOUTA W 0h 超时 A 中断
0h = 写入 0 无效
1h = 清除中断
13 CPEC_RX_ERR W 0h 控制器 RX PEC 错误中断
0h = 写入 0 无效
1h = 清除中断
12 CDMA_DONE_RX W 0h 事件通道 RX 上 DMA 完成
0h = 中断已禁用
1h = 清除中断
11 CDMA_DONE_TX W 0h 事件通道 TX 上 DMA 完成
0h = 中断已禁用
1h = 清除中断
10 CARBLOST W 0h 仲裁失败中断
0h = 写入 0 无效
1h = 清除中断
9 CSTOP W 0h STOP 检测中断
0h = 写入 0 无效
1h = 清除中断
8 CSTART W 0h START 检测中断
0h = 写入 0 无效
1h = 清除中断
7 CNACK W 0h 地址/数据 NACK 中断
0h = 写入 0 无效
1h = 清除中断
6 RESERVED R 0h
5 CTXEMPTY W 0h 发送 FIFO 空中断屏蔽。如果发送 FIFO 中的所有数据都已移出并且发送进入空闲模式,则设置此中断。
0h = 写入 0 无效
1h = 清除中断
4 CRXFIFOFULL W 0h RXFIFO 满事件。
0h = 写入 0 无效
1h = 清除中断
3 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 清除中断
2 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 清除中断
1 CTXDONE W 0h 控制器发送事务完成中断
0h = 写入 0 无效
1h = 清除中断
0 CRXDONE W 0h 控制器接收数据中断
表示已接收到一个字节的信号
0h = 写入 0 无效
1h = 清除中断

22.3.14 IIDX 寄存器(偏移 = 1050h)[复位 = 00000000h] (DMA_TRIG1)

表 22-36 中显示了 IIDX。

返回到汇总表

该寄存器提供了具有最高优先级的中断索引。

表 22-36 IIDX 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 STAT R 0h I2C 模块中断矢量值。该寄存器提供了最高优先级中断索引。读取操作会清除 RIS 和 MISC 中的相应中断标志。15h-1Fh = 保留
00h = 无中断挂起
01h = 控制器接收 FIFO 触发电平
02h = 控制器发送 FIFO 触发电平
03h = 目标接收 FIFO 触发电平
04h = 目标发送 FIFO 触发电平

22.3.15 IMASK 寄存器(偏移 = 1058h)[复位 = 00000000h] (DMA_TRIG1)

表 22-37 中显示了 IMASK。

返回到汇总表

中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。

表 22-37 IMASK 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R/W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R/W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R/W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R/W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.16 RIS 寄存器(偏移 = 1060h)[复位 = 00000000h] (DMA_TRIG1)

表 22-38 中显示了 RIS。

返回到汇总表

原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。

表 22-38 RIS 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.17 MIS 寄存器(偏移 = 1068h)[复位 = 00000000h] (DMA_TRIG1)

表 22-39 中显示了 MIS。

返回到汇总表

屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。

表 22-39 MIS 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.18 ISET 寄存器(偏移 = 1070h)[复位 = 00000000h] (DMA_TRIG1)

表 22-40 中显示了 ISET。

返回到汇总表

中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。

表 22-40 ISET 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.19 ICLR 寄存器(偏移 = 1078h)[复位 = 00000000h] (DMA_TRIG1)

表 22-41 中显示了 ICLR。

返回到汇总表

中断清除。写入 1 以清除相应的中断。

表 22-41 ICLR 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.20 IIDX 寄存器(偏移 = 1080h)[复位 = 00000000h] (DMA_TRIG0)

表 22-42 中显示了 IIDX。

返回到汇总表

该寄存器提供了具有最高优先级的中断索引。

表 22-42 IIDX 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 STAT R 0h I2C 模块中断矢量值。该寄存器提供了最高优先级中断索引。读取操作会清除 RIS 和 MISC 中的相应中断标志。15h-1Fh = 保留
00h = 无中断挂起
01h = 控制器接收 FIFO 触发电平
02h = 控制器发送 FIFO 触发电平
03h = 目标接收 FIFO 触发电平
04h = 目标发送 FIFO 触发电平

22.3.21 IMASK 寄存器(偏移 = 1088h)[复位 = 00000000h] (DMA_TRIG0)

表 22-43 中显示了 IMASK。

返回到汇总表

中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。

表 22-43 IMASK 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R/W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R/W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R/W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R/W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.22 RIS 寄存器(偏移 = 1090h)[复位 = 00000000h] (DMA_TRIG0)

表 22-44 中显示了 RIS。

返回到汇总表

原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。

表 22-44 RIS 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.23 MIS 寄存器(偏移 = 1098h)[复位 = 00000000h] (DMA_TRIG0)

表 22-45 中显示了 MIS。

返回到汇总表

屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。

表 22-45 MIS 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG R 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG R 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG R 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG R 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.24 ISET 寄存器(偏移 = 10A0h)[复位 = 00000000h] (DMA_TRIG0)

表 22-46 中显示了 ISET。

返回到汇总表

中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。

表 22-46 ISET 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.25 ICLR 寄存器(偏移 = 10A8h)[复位 = 00000000h] (DMA_TRIG0)

表 22-47 中显示了 ICLR。

返回到汇总表

中断清除。写入 1 以清除相应的中断。

表 22-47 ICLR 寄存器字段说明
字段 类型 复位 说明
31-4 RESERVED R 0h
3 TTXFIFOTRG W 0h 目标发送 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
2 TRXFIFOTRG W 0h 目标接收 FIFO 触发信号
0h = 清除中断屏蔽
1h = 设置中断屏蔽
1 CTXFIFOTRG W 0h 控制器发送 FIFO 触发信号
当发送 FIFO 包含 <= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽
0 CRXFIFOTRG W 0h 控制器接收 FIFO 触发信号
当 RX FIFO 包含 >= 定义的字节时触发
0h = 清除中断屏蔽
1h = 设置中断屏蔽

22.3.26 EVT_MODE 寄存器(偏移 = 10E0h)[复位 = 00000000h]

表 22-48 展示了 EVT_MODE。

返回到汇总表

事件模式寄存器。它用于选择在软件模式(软件清除 RIS)或硬件模式(硬件清除 RIS)下是否禁用每条线路

表 22-48 EVT_MODE 寄存器字段说明
字段 类型 复位 说明
31-6 RESERVED R 0h
5-4 EVT2_CFG R 2h none.DMA_TRIG0 对应事件的事件线模式选择
0h = 中断或事件线被禁用。
1h = 中断或事件线路处于软件模式。软件必须清除 RIS。
2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。
3-2 INT1_CFG R 2h none.DMA_TRIG1 对应事件的事件线模式选择
0h = 中断或事件线被禁用。
1h = 中断或事件线路处于软件模式。软件必须清除 RIS。
2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。
1-0 INT0_CFG R 1h none.CPU_INT 对应事件的事件线模式选择
0h = 中断或事件线被禁用。
1h = 中断或事件线路处于软件模式。软件必须清除 RIS。
2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。

22.3.27 INTCTL 寄存器(偏移 = 10E4h)[复位 = 00000000h]

表 22-49 中显示了 INTCTL。

返回到汇总表

中断控制寄存器

表 22-49 INTCTL 寄存器字段说明
字段 类型 复位 说明
31-1 RESERVED R 0h
0 INTEVAL W 0h 向该字段写入 1 会重新评估中断源。
0h = 中断或事件线路被禁用。
1h = 中断或事件线路处于软件模式。软件必须清除 RIS。

22.3.28 DESC 寄存器(偏移 = 10FCh)[复位 = 00000000h]

表 22-50 中显示了 DESC。

返回到汇总表

该寄存器标识外设及其确切版本。

表 22-50 DESC 寄存器字段说明
字段 类型 复位 说明
31-16 MODULEID R 1511h 模块标识包含唯一的外设标识号。所有平台模块的分配都保存在中央数据库中,可确保唯一性。
0h = 最小值
FFFFh = 尽可能高的值
15-12 FEATUREVER R 0h 模块 *实例* 的功能集
0h = 最小值
Fh = 尽可能高的值
11-8 INSTNUM R 0h 器件中的实例编号。对于具有多个实例的模块,这将是 RTL 的参数
0h = 最小值
Fh = 尽可能高的值
7-4 MAJREV R 1h IP 的主要版本
0h = 最小值
Fh = 尽可能高的值
3-0 MINREV R 0h IP 的次要版本
0h = 最小值
Fh = 尽可能高的值

22.3.29 GFCTL 寄存器(偏移 = 1200h)[复位 = 00000000h]

表 22-51 中显示了 GFCTL。

返回到汇总表

该寄存器控制 SCL 和 SDA 线上的干扰滤波器

表 22-51 GFCTL 寄存器字段说明
字段 类型 复位 说明
31-12 RESERVED R 0h
11 CHAIN R/W 1h 模拟和数字噪声滤波器链接使能。

0h = 为 0 时,禁用链接,只有数字滤波器输出可用于 IP 逻辑以进行过采样
1h = 为 1 时,模拟和数字干扰滤波器将链接起来,组合的输出可用于 IP 逻辑以进行过采样
10-9 AGFSEL R/W 3h 模拟干扰抑制脉宽

该字段可控制 SCL 和 SDA 线上用于进行模拟干扰抑制的脉宽选择。
请参阅器件数据表以了解确切值。
(仅限 ULP I2C)
0h = 过滤掉长度短于 5ns 的脉冲。
1h = 过滤掉长度短于 10ns 的脉冲。
2h = 过滤掉长度短于 25ns 的脉冲。
3h = 过滤掉长度短于 50ns 的脉冲。
8 AGFEN R/W 1h 模拟干扰抑制使能
0h = 禁用模拟干扰滤波器
1h = 启用模拟干扰滤波器
7-3 RESERVED R 0h
2-0 DGFSEL R/W 0h 干扰抑制脉宽

该字段可控制 SCL 和 SDA 线上用于进行干扰抑制的脉宽选择。以下值是功能时钟方面的干扰抑制值。

(仅适用于内核域)
0h = 旁路
1h = 1 个时钟
2h = 2 个时钟
3h = 3 个时钟
4h = 4 个时钟
5h = 8 个时钟
6h = 16 个时钟
7h = 31 个时钟

22.3.30 TIMEOUT_CTL 寄存器(偏移 = 1204h)[复位 = 00020002h]

TIMEOUT_CTL 如 表 22-52 所示。

返回到汇总表

该寄存器包含超时计数器 A 和 B 的控制

表 22-52 TIMEOUT_CTL 寄存器字段说明
字段 类型 复位 说明
31 TCNTBEN R/W 0h 超时计数器 B 使能
0h = 禁用超时计数器 B
1h = 启用超时计数器 B
30-24 RESERVED R 0h
23-16 TCNTLB R/W 2h 超时计数 B 加载:计数器 B 用于 SCL 高电平检测。该字段包含用于超时 B 计数的 12 位预加载值的高 8 位。注意:CNTLB 的值必须大于 1h。

每个计数等于 1* 时钟周期。例如,使用 10MHz 功能时钟时,一个超时周期将等于 1*100ns。

0h = 尽可能小的值
FFh = 尽可能高的值
15 TCNTAEN R/W 0h 超时计数器 A 使能
0h = 禁用超时计数器 B
1h = 启用超时计数器 B
14-8 RESERVED R 0h
7-0 TCNTLA R/W 2h 超时计数器 A 加载值
计数器 A 用于 SCL 低电平检测。该字段包含用于超时 A 计数的 12 位预加载值的高 8 位。注意:CNTLA 的值必须大于 1h。

每个计数等于功能时钟超时周期的 520 倍。例如,使用 8MHz 功能时钟和 100KHz 工作 I2C 时钟时,一个超时周期将等于 (1 / 8MHz) * 520,即 65us。

0h = 最小值
FFh = 尽可能高的值

22.3.31 TIMEOUT_CNT 寄存器(偏移 = 1208h)[复位 = 00020002h]

TIMEOUT_CNT 如 表 22-53 所示。

返回到汇总表

该寄存器包含计数器 A 和 B 的 12 位当前计数器值的高 8 位。计数器的低 4 位非用户可见,始终为 0h。

表 22-53 TIMEOUT_CNT 寄存器字段说明
字段 类型 复位 说明
31-24 RESERVED R 0h
23-16 TCNTB R 2h 超时计数 B 当前计数:该字段包含超时计数器 B 的 12 位当前计数器的高 8 位
0h = 最小值
FFh = 尽可能高的值
15-8 RESERVED R 0h
7-0 TCNTA R 2h 超时计数 A 当前计数:该字段包含超时计数器 A 的 12 位当前计数器的高 8 位
0h = 最小值
FFh = 尽可能高的值

22.3.32 CSA 寄存器(偏移 = 1210h)[复位 = 00000000h]

表 22-54 中显示了 CSA。

返回到汇总表

I2C 控制器目标地址寄存器

表 22-54 CSA 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 CMODE R/W 0h 该位选择要在控制器模式下使用的寻址模式
为 0 时,使用 7 位寻址。
为 1 时,使用 10 位寻址。
0h = 7 位寻址模式
1h = 10 位寻址模式
14-11 RESERVED R 0h
10-1 TADDR R/W 0h I2C 目标地址。该字段指定目标地址的 A9 到 A0 位。
在由 MSA.MODE 位选择的 7 位寻址模式中,前 3 位是无关位
0h = 最小值
3FFh = 尽可能高的值
0 DIR R/W 0h 接收/发送
DIR 位指定下一个控制器操作是接收(高电平)还是发送(低电平)。
0h = 发送
1h = 接收
0h = 控制器处于发送模式。
1h = 控制器处于接收模式。

22.3.33 CCTR 寄存器(偏移 = 1214h)[复位 = 00000000h]

表 22-55 中显示了 CCTR。

返回到汇总表

该控制寄存器用于配置 I2C 控制器操作。START位用来产生开始或重复开始信号。STOP 位决定周期是在数据周期结束时停止,还是继续运行下一个传输周期(可能是重复 START)。为生成单个发送周期,I2C 控制器目标地址(MSA)寄存器中写入所需的地址,R/S 位清零,此寄存器中写入 ACK = X(0 或 1)、STOP = 1、START = 1、RUN = 1,从而执行操作并停止。当操作完成(或由于错误而中止)时,字节事务完成中断将激活,并可从 MRXDATA 寄存器中读取数据。当 I2C 模块在控制器接收器模式下运行时,设置 ACK 位会使 I2C 总线控制器在每个字节后自动发送确认。当 I2C 总线控制器无需接收从目标发送器发送的更多数据时,必须清除该位。

表 22-55 CCTR 寄存器字段说明
字段 类型 复位 说明
31-28 RESERVED R 0h
27-16 CBLEN R/W 0h I2C 事务长度
该字段包含已编程的事务字节长度。
0h = 最小值
FFFh = 尽可能高的值
15-6 RESERVED R 0h
5 RD_ON_TXEMPTY R/W 0h TX 为空时读取
0h = 无特殊行为
1h = 为 1 时,控制器将发送来自 TX FIFO 的所有字节,然后继续执行编程的突发运行读取。 如果 DIR 在 MSA 中未设置为读取,则会忽略该位。必须在 MCTR 中设置启动条件以实现正确的 I2C 协议。在发送 TX FIFO 中的字节之前,控制器将首先发送启动条件,即 I2C 地址的 R/W 位设置为写入。当 TX FIFO 为空时,I2C 事务将按照 MTCR 和 MSA 中的编程继续进行,而不发送停止条件。
旨在用于执行简单的基于 I2C 命令的读取转换,该转换将在启动后完成,无需获取中断来进行总线回转。
4 CACKOEN R/W 0h 控制器 ACK 覆盖使能
0h = 无特殊行为
1h = 为 1 并且控制器正在接收数据并已接收到 MBLEN 中指示的字节数时,状态机将生成一个 rxdone 中断,并在 ACK 的开头等待 FW 指示应发送 ACK 还是 NACK。 选择 ACK 或 NACK 的方法是写入 MCTR 寄存器并相应地设置 ACK。此时还可以写入该寄存器中的其他字段以继续运行事务。如果发送 NACK,状态机将自动发送停止。
3 ACK R/W 0h 数据确认使能。
软件需要配置该位来发送 ACK 或 NACK。


0h = 控制器不自动确认事务最后一个接收的数据字节。
1h = 控制器自动确认事务最后一个接收的数据字节。
2 STOP R/W 0h 生成停止条件
0h = 控制器不生成停止条件。
1h = 控制器生成停止条件。
1 开始 R/W 0h 生成启动条件

0h = 控制器不生成启动条件。
1h = 控制器生成启动条件或重复启动条件。
0 BURSTRUN R/W 0h I2C 控制器使能

和启动事务
0h = 在标准模式下,此编码表示控制器无法发送或接收数据。
1h = 控制器能够发送或接收数据。

22.3.34 CSR 寄存器(偏移 = 1218h)[复位 = 00000000h]

表 22-56 中显示了 CSR。

返回到汇总表

状态寄存器指示 I2C 总线控制器的状态。

表 22-56 CSR 寄存器字段说明
字段 类型 复位 说明
31-28 RESERVED R 0h
27-16 CBCNT R 0h I2C 控制器事务计数
该字段包含事务的当前倒计时值。
0h = 最小值
FFFh = 尽可能高的值
15-7 RESERVED R 0h
6 BUSBSY R 0h I2C 总线忙
控制器状态机将等待清除该位后再启动事务。在多控制器环境中首次启用控制器时,FW 应在将 ACTIVE 设置为高电平后等待一个 I2C 时钟周期,然后再写入 MTCR 寄存器以启动事务,这样如果 SCL 变为低电平,便会触发 BUSBSY。
0h = I2C 总线空闲。
1h = 在启动时或 SCL 变为低电平时会设置该状态位。在停止时或发生 SCL 高电平总线忙超时并且 SCL 和 SDA 都为高电平时,会清除该位。当 ACTIVE 位为低电平时,会清除该状态。

请注意,控制器状态机将等待清除该位后再启动 I2C 事务。在多控制器环境中首次启用控制器时,FW 应在将 ACTIVE 设置为高电平后等待一个 I2C 时钟周期,然后再写入 MTCR 寄存器以启动事务,这样如果 SCL 变为低电平,便会触发 BUSBSY。
5 空闲 R 1h I2C 空闲

0h = I2C 控制器非空闲。
1h = I2C 控制器空闲。
4 ARBLST R 0h 仲裁失败

0h = I2C 控制器赢得仲裁。
1h = I2C 控制器仲裁失败。
3 DATACK R 0h 确认数据

0h = 发送的数据已确认。
1h = 发送的数据未确认。
2 ADRACK R 0h 确认地址

0h = 发送的地址已确认。
1h = 发送的地址未确认。
1 ERR R 0h 错误

该错误可能源于目标地址未得到确认或者发送数据未得到确认。
0h = 在最后一个操作中未检测到错误。
1h = 在最后一个操作中发生了错误。
0 BUSY R 0h I2C 控制器 FSM 忙

在正在进行的事务中会设置 BUSY 位,因此会在发送/接收 MBLEN 中设置的数据量时(包括根据当前事务的需要生成启动、重新启动、地址和停止信号时)设置该位。

0h = 控制器空闲。
1h = 控制器忙。

22.3.35 CRXDATA 寄存器(偏移 = 121Ch)[复位 = 00000000h]

CRXDATA 如 表 22-57 所示。

返回到汇总表

I2C 控制器 RX FIFO 读取数据字节
该字段包含此时在 RX FIFO 栈中读取的当前字节。
如果接收FIFO被禁用,则数据字节和状态位保存在接收保持寄存器(即接收FIFO的最底部单元)中。读取该寄存器可以获取接收的数据。

表 22-57 CRXDATA 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 R 0h 接收的数据。

该字段包含最后接收的数据。
0h = 最小值
FFh = 尽可能高的值

22.3.36 CTXDATA 寄存器(偏移 = 1220h)[复位 = 00000000h]

CTXDATA 如 表 22-58 所示。

返回到汇总表

I2C 控制器发送数据寄存器。
该寄存器是发送数据寄存器(FIFO 的接口)。当发送数据时,若FIFO已使能,则对本寄存器写入的数据将推入发送FIFO。如果发送FIFO被禁用,则数据仅保存在发送保持寄存器(即发送FIFO的最底部单元)中。

表 22-58 CTXDATA 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 R/W 0h 发送数据
该字节包含下一个事务期间要传输的数据。
0h = 最小值
FFh = 尽可能高的值

22.3.37 CTPR 寄存器(偏移 = 1224h)[复位 = 00000001h]

表 22-59 中显示了 CTPR。

返回到汇总表

对该寄存器进行编程,以便设置 SCL 时钟的计时器周期,并将 SCL 时钟指定为标准模式。

表 22-59 CTPR 寄存器字段说明
字段 类型 复位 说明
31-7 RESERVED R 0h
6-0 TPR R/W 1h 计时器周期

该字段用在 SCL_PERIOD 的计算公式中:

SCL_PERIOD = (1 + TPR) × (SCL_LP + SCL_HP) × INT_CLK_PRD
其中:

SCL_PRD 是 SCL 线周期(I2C 时钟)。

TPR 是计时器周期寄存器值(范围为 1 到 127)。

SCL_LP 是 SCL 低电平周期(固定为 6)。

SCL_HP 是 SCL 高电平周期(固定为 4)。

CLK_PRD 是以 ns 为单位的功能时钟周期。
0h = 最小值
7Fh = 尽可能高的值

22.3.38 CCR 寄存器(偏移 = 1228h)[复位 = 00000000h]

表 22-60 中显示了 CCR。

返回到汇总表

控制器配置寄存器

表 22-60 CCR 寄存器字段说明
字段 类型 复位 说明
31-9 RESERVED R 0h
8 LPBK R/W 0h I2C 环回

0h = 正常运行。
1h = 控制器处于测试模式环回配置中。
7-3 RESERVED R 0h
2 CLKSTRETCH R/W 0h 时钟延展。该位控制对 I2C 总线时钟延展的支持。
0h = 禁用时钟延展检测。
如果总线上的任何目标都不支持时钟延展,则可以禁用此功能,以便能够达到总线上的最大速度。

1h = 启用时钟延展检测。
启用时钟延展可确保符合 I2C 标准,但可能会因时钟延展而限制速度。
1 MCTL R/W 0h 多控制器模式。在多控制器模式下,一旦检测到 SCL 线为高电平,SCL 高电平时间便会开始计时。如果未启用此功能,一旦 I2C 控制器将 SCL 线设置为高电平,高电平时间便会开始计时。
0h = 禁用多控制器模式。
1h = 启用多控制器模式。
0 运行 R/W 0h 器件激活。设置该位后,在通过写入 0 或进行复位而清除该位之前,不得再次设置该位,否则可能发生传输失败。
0h = 禁止 I2C 控制器运行。
1h = 允许 I2C 控制器运行。

22.3.39 CBMON 寄存器(偏移 = 1234h)[复位 = 00000003h]

表 22-61 中显示了 CBMON。

返回到汇总表

该寄存器用来确定 SCL 和 SDA 的信号状态。

表 22-61 CBMON 寄存器字段说明
字段 类型 复位 说明
31-2 RESERVED R 0h
1 SDA R 1h I2C SDA 状态

0h = I2CSDA 信号为低电平。
1h = I2CSDA 信号为高电平。注意:在复位期间和复位之后,SDA 引脚处于 GPIO 输入模式,内部拉电阻未启用。为了让 I2C 正确运行,用户应在开始任何 I2C 操作之前设置好外部上拉电阻。
0 SCL R 1h I2C SCL 状态

0h = I2CSCL 信号为低电平。
1h = I2CSCL 信号为高电平。注意:在复位期间和复位之后,SCL 引脚处于 GPIO 输入模式,内部拉电阻未启用。为了让 I2C 正确运行,用户应在开始任何 I2C 操作之前设置好外部上拉电阻。

22.3.40 CFIFOCTL 寄存器(偏移 = 1238h)[复位 = 00000000h]

CFIFOCTL 如 表 22-62 所示。

返回到汇总表

I2C 控制器 FIFO 控制

表 22-62 CFIFOCTL 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 RXFLUSH R/W 0h RX FIFO 清空
设置该位将清空 RX FIFO。
在清除该位以停止清空之前,应校验 RXFIFOCNT 为 0 以指示清空已完成。
0h = 不清空 FIFO
1h = 清空 FIFO
14-11 RESERVED R 0h
10-8 RXTRIG R/W 0h RX FIFO 触发信号
指示 RX FIFO 中哪个填充级别将生成触发信号。
注意:将 RXTRIG 编程为 0x0 无效,因为没有数据从 RX FIFO 中
传出。
0h = 当 RX FIFO 包含 >= 1 字节时触发
1h = 当 RX FIFO 包含 >= 2 字节时触发
2h = 当 RX FIFO 包含 >= 3字节时触发
3h = 当 RX FIFO 包含 >= 4 字节时触发
4h = 当 RX FIFO 包含 >= 5 字节时触发
5h = 当 RX FIFO 包含 >= 6 字节时触发
6h = 当 RX FIFO 包含 >= 7 字节时触发
7h = 当 RX FIFO 包含 >= 8 字节时触发
7 TXFLUSH R/W 0h TX FIFO 清空
设置该位将清空 TX FIFO。
在清除该位以停止清空之前,应校验 TXFIFOCNT 为 8 以指示清空已完成。
0h = 不清空 FIFO
1h = 清空 FIFO
6-3 RESERVED R 0h
2-0 TXTRIG R/W 0h TX FIFO 触发信号
指示 TX FIFO 中哪个填充级别将生成触发信号。
0h = 当 TX FIFO 为空时触发。
1h = 当 TX FIFO 包含 ≤ 1 字节时触发
2h = 当 TX FIFO 包含 ≤ 2 字节时触发
3h = 当 TX FIFO 包含 ≤ 3 字节时触发
4h = 当 TX FIFO 包含 ≤ 4 字节时触发
5h = 当 TX FIFO 包含 ≤ 5 字节时触发
6h = 当 TX FIFO 包含 ≤ 6 字节时触发
7h = 当 TX FIFO 包含 ≤ 7 字节时触发

22.3.41 CFIFOSR 寄存器(偏移 = 123Ch)[复位 = 00000800h]

CFIFOSR 如 表 22-63 所示。

返回到汇总表

I2C 控制器 FIFO 状态寄存器
注意:仅当 BUSY 为 0 时才应读取该寄存器

表 22-63 CFIFOSR 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 TXFLUSH R 0h TX FIFO 清空
设置该位时,TX FIFO 的清空操作将激活。清除控制寄存器中的 TXFLUSH 位将停止。
0h = FIFO 清空未激活
1h = FIFO 清空激活
14-12 RESERVED R 0h
11-8 TXFIFOCNT R 8h 可放入 TX FIFO 的字节数
0h = 最小值
8h = 尽可能高的值
7 RXFLUSH R 0h RX FIFO 清空
设置该位时,RX FIFO 的清空操作将激活。清除控制寄存器中的 RXFLUSH 位将停止。
0h = FIFO 清空未激活
1h = FIFO 清空激活
6-4 RESERVED R 0h
3-0 RXFIFOCNT R 0h 可从 RX FIFO 读取的字节数
0h = 最小值
8h = 尽可能高的值

22.3.42 _I2CPECCTL 寄存器(偏移 = 1240h)[复位 = 00000000h]

_I2CPECCTL 如 表 22-64 所示。

返回到汇总表

I2C 控制器 PEC 控制寄存器

表 22-64 _I2CPECCTL 寄存器字段说明
字段 类型 复位 说明
31-13 RESERVED R 0h
12 PECEN R/W 0h PEC 使能
该位启用 SMB 数据包错误检查 (PEC)。启用后,对于除 Start、Stop、Ack 和 Nack 外的所有位都会计算 PEC。当状态机处于空闲状态时(该状态出现在停止之后或发生超时时),PEC LSFR 和字节计数器设置为 0。在发送或接收 PEC 字节后,计数器也设置为 0。请注意,NACK 会在导致 PEC 错误的 PEC 字节之后自动发送。
PEC 多项式为 x^8 + x^2 + x^1 + 1。
0h = 在控制器模式下禁用 PEC
1h = 在控制器模式下启用 PEC
11-9 RESERVED R 0h
8-0 PECCNT R/W 0h PEC 计数
该字段为非零值时,将进行 I2C 字节数量的计数(请注意,虽然会在 I2C 地址计算 PEC,但不会在字节内进行计数)。当字节计数 = PECCNT 且状态机正在发送时,LSFR 的内容将加载到移位寄存器中,而不是加载从 TX FIFO 接收到的字节。当状态机正在接收时,在接收到该字节的最后一位后,会检查 LSFR,如果它不为零,则会生成 PEC RX 错误中断。必须填充 I2C 数据包以包括用于发送和接收的 PEC 字节。在发送模式下,FIFO 必须加载一个虚拟 PEC 字节。在接收模式下,PEC 字节将传递到 Rx FIFO。

在正常的控制器用例中,FW 会设置 PECEN=1 和 PECCNT=SMB 数据包长度(不包括目标地址字节,但包括 PEC 字节)。然后,FW 会配置 DMA 以允许数据包独立完成,并写入 MCTR 以启动事务。

请注意,当字节计数 = PEC CNT 时,字节计数将复位为 0,并且在单个 I2C 事务中可以自动进行多次 PEC 计算。

请注意,对 Controller_I2CPECCTL 寄存器的任何写入操作都将清除控制器状态机中的当前 PEC 字节计数。
0h = 最小值
1FFh = 最大值

22.3.43 _PECSR 寄存器(偏移 = 1244h)[复位 = 00000000h]

_PECSR 如 表 22-65 所示。

返回到汇总表

控制器 PEC 状态寄存器

表 22-65 _PECSR 寄存器字段说明
字段 类型 复位 说明
31-18 RESERVED R 0h
17 PECSTS_ERROR R 0h 该状态位指示在最后一次停止前发生的事务中是否发生 PEC 检查错误。锁定在停止位置。
0h = 指示在最后一次停止前发生的事务中没有出现 PEC 检查错误
1h = 指示在最后一次停止前发生的事务中发生了 PEC 检查错误
16 PECSTS_CHECK R 0h 该状态位指示在最后一次停止前发生的事务中是否检查了 PEC。锁定在停止位置。
0h = 指示在最后一次停止前发生的事务中没有检查 PEC
1h = 指示在最后一次停止前发生的事务中检查了 PEC
15-9 RESERVED R 0h
8-0 PECBYTECNT R 0h PEC 字节计数
这是控制器状态机的当前 PEC 字节计数。
0h = 最小值
1FFh = 最大值

22.3.44 TOAR 寄存器(偏移 = 1250h)[复位 = 00004000h]

表 22-66 中显示了 TOAR。

返回到汇总表

该寄存器包含七个用于标识 I2C 总线上 I2C 器件的地址位。

表 22-66 TOAR 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 TMODE R/W 0h 该位选择要在目标模式中使用的寻址模式。
为 0 时,使用 7 位寻址。
为 1 时,使用 10 位寻址。
0h = 启用 7 位寻址
1h = 启用 10 位寻址
14 OAREN R/W 1h I2C 目标自身地址使能
0h = 禁用 OAR 地址
1h = 启用 OAR 地址
13-10 RESERVED R 0h
9-0 OAR R/W 0h I2C 目标自身地址:该字段指定目标地址的 A9 到 A0 位。
在由 I2CSOAR.MODE 位选择的 7 位寻址模式中,前 3 位是无关位
0h = 最小值
3FFh = 尽可能高的值

22.3.45 TOAR2 寄存器(偏移 = 1254h)[复位 = 00000000h]

表 22-67 展示了 TOAR2。

返回到汇总表

该寄存器包含七个用于标识 I2C 总线上 I2C 器件备用地址的地址位。

表 22-67 TOAR2 寄存器字段说明
字段 类型 复位 说明
31-23 RESERVED R 0h
22-16 OAR2_MASK R/W 0h I2C 目标自身地址 2 屏蔽:该字段指定目标地址的 A6 到 A0 位。
SOAR2.OAR2_MASK 字段内值为“1”的位将使相应的传入地址位默认匹配,不用考虑 SOAR2.OAR2 中的值,即相应的 SOAR2.OAR2 位是无关位。
0h = 最小值
7Fh = 最大值
15-8 RESERVED R 0h
7 OAR2EN R/W 0h I2C 目标自身地址 2 使能

0h = 禁用备用地址。
1h = 允许在 OAR2 字段中使用备用地址。
6-0 OAR2 R/W 0h I2C 目标自身地址 2
该字段指定备用的 OAR2 地址。
0h = 最小值
7Fh = 尽可能高的值

22.3.46 TCTR 寄存器(偏移 = 1258h)[复位 = 00000404h]

表 22-68 中显示了 TCTR。

返回到汇总表

I2C 目标控制寄存器

表 22-68 TCTR 寄存器字段说明
字段 类型 复位 说明
31-11 RESERVED R 0h
10 TWUEN R/W 1h 目标唤醒使能
0h = 为 0 时,不允许目标在 START 检测时进行时钟延展
1h = 为 1 时,允许目标在 START 检测时进行时钟延展并等待更快的时钟可供使用。 这样可以在低功耗模式用例中为 I2C 提供纯净的唤醒支持
9 EN_DEFDEVADR R/W 0h 启用默认器件地址
0h = 当该位为 0 时,不匹配默认器件地址。注意:如果在 SOAR/SOAR2 内部进行了相应编程,则仍然可能匹配。
1h = 当该位为 1 时,目标地址匹配逻辑会始终匹配默认器件地址 7’h110_0001。
8 EN_ALRESPADR R/W 0h 启用警报响应地址
0h = 当该位为 0 时,不匹配警报响应地址。注意:如果在 SOAR/SOAR2 内部进行了相应编程,则仍然可能匹配
1h = 当该位为 1 时,目标地址匹配逻辑会始终匹配警报响应地址 7’h000_1100。
7 EN_DEFHOSTADR R/W 0h 启用默认主机地址
0h = 当该位为 0 时,不匹配默认主机地址
注意:如果在 SOAR/SOAR2 内部进行了相应编程,则仍然可能匹配

1h = 当该位为 1 时,目标地址匹配逻辑会始终匹配默认主机地址 7’h000_1000。
6 RXFULL_ON_RREQ R/W 0h 在 SSR 中所示的 RREQ 条件下产生的 RX 已满中断
0h = 为 0 时,仅当目标 RX FIFO 已满时才会设置 RIS:TRXFULL。
这种情况下允许使用 TRXFULL 中断来指示 I2C 总线正在进行时钟延展,并且 FW 必须读取 RX FIFO 或对当前的 Rx 字节进行 ACK/NACK。

1h = 为 1 时,在目标状态机处于 RX_WAIT 或 RX_ACK_WAIT 状态的情况下将设置 RIS:TRXFULL;由于 RX FIFO 已满或 ACKOEN 已设置且状态机正在等待 FW 对当前字节进行 ACK/NACK,而导致 I2C 事务进行时钟延展时,便会出现这种情况。
5 TXWAIT_STALE_TXFIFO R/W 0h TX FIFO 中存在过时数据时的 TX 传输等待。
这可防止在下一个 I2C 数据包上自动发送 TX FIFO 中剩余的过时字节。注意:这应该与 TXEMPTY_ON_TREQ 设置一起使用,防止目标状态机在 FIFO 数据过时时等待 TX FIFO 数据而不发出中断通知。
0h = 为 0 时,发送到目标状态机的 TX FIFO 空信号指示 TX FIFO 为空。
1h = 为 1 时,发送到目标状态机的 TX FIFO 空信号指示 TX FIFO 为空或 TX FIFO 数据过时。当目标状态机离开 SSR 寄存器中定义的 TXMODE 时,如果 TX FIFO 中有数据,则 TX FIFO 数据将被确定为过时。如果 TX FIFO 中有剩余字节时发生停止或超时,可能会出现这种情况。
4 TXTRIG_TXMODE R/W 0h 目标 FSM 处于 TX 模式时的 TX 触发信号
0h = 无特殊行为
1h = 为 1 时,在目标 TX FIFO 达到触发电平并且目标状态机处于 SSR 寄存器中定义的 TXMODE 的情况下将设置 RIS:TXFIFOTRG。
清除后,在目标 TX FIFO 处于或者高于触发电平的情况下将设置 RIS:TXFIFOTRG。
此设置可用于延缓 TX DMA 直至事务开始。
这样可以在 I2C 空闲时配置 DMA,但让它等到事务开始加载目标 TX FIFO,这样它就可以从可能随时间变化的存储器缓冲区进行加载。
3 TXEMPTY_ON_TREQ R/W 0h TREQ 时的 Tx 空中断
0h = 为 0 时,仅当目标 TX FIFO 为空的情况下才会设置 RIS:TTXEMPTY。
这样可以使用 TTXEMPTY 中断来指示 I2C 总线正在进行时钟延展并且需要目标 TX 数据。

1h = 为 1 时,在目标状态机处于 TX_WAIT 状态的情况下将设置 RIS:TTXEMPTY;当 TX FIFO 为空且 I2C 事务处于时钟延展状态而等待 FIFO 接收数据时,便会出现这种情况。
2 TCLKSTRETCH R/W 1h 目标时钟延展使能
0h = 禁用目标时钟延展
1h = 启用目标时钟延展
1 GENCALL R/W 0h 通用广播响应使能
仅当 UCSWRST = 1 时修改。
0b = 不响应通用广播
1b = 响应通用广播
0h = 不响应通用广播
1h = 响应通用广播
0 运行 R/W 0h 器件激活。设置该位可启用目标功能。
0h = 禁止 I2C 目标运行。
1h = 允许 I2C 目标运行。

22.3.47 TSR 寄存器(偏移 = 125Ch)[复位 = 00000000h]

表 22-69 中显示了 TSR。

返回到汇总表

写入时,该寄存器是控制寄存器;读取时,该寄存器是状态寄存器。

表 22-69 TSR 寄存器字段说明
字段 类型 复位 说明
31-19 RESERVED R 0h
18-9 ADDRMATCH R 0h 指示发生目标地址匹配的地址
0h = 最小值
3FFh = 最大值
8 STALE_TXFIFO R 0h TX FIFO 过时
0h = TX FIFO 未过时
1h = TX FIFO 已过时 在前一个 I2C 事务期间 TX FIFO 未清空时,便会发生这种情况。
7 TXMODE R 0h 目标 FSM 处于 TX 模式
0h = 总线方向设置为读取时,目标状态机未处于 TX_DATA、TX_WAIT、TX_ACK 或 ADDR_ACK 状态。
1h = 总线方向设置为读取时,目标状态机处于 TX_DATA、TX_WAIT、TX_ACK 或 ADDR_ACK 状态。
6 BUSBSY R 0h I2C 总线忙
0h = I2C 总线不忙
1h = I2C 总线忙 在超时时清除。
5 QCMDRW R 0h 快速命令读取/写入
仅当设置了 QCMDST 位时,该位才有意义。
值说明:
0:快速指令是写入
1:快速命令是读取
0h = 快速命令是写入
1h = 快速命令是读取
4 QCMDST R 0h 快速命令状态
值说明:
0:上一个通信传输是正常通信传输,或者通信传输没有发生。
1:最后一个事务是快速命令事务
0h = 最后一个事务是正常事务或没有发生事务。
1h = 最后一个事务是快速指令事务。
3 OAR2SEL R 0h OAR2 地址匹配
每次比较地址之后会重新评估该位。
0h = OAR2 地址不匹配,或匹配处于旧模式。
1h = OAR2 地址匹配并得到目标确认。
2 RXMODE R 0h 目标 FSM 处于 RX 模式
0h = 总线方向设置为写入时,目标状态机未处于 RX_DATA、RX_ACK、RX_WAIT、RX_ACK_WAIT 或 ADDR_ACK 状态。
1h = 总线方向设置为写入时,目标状态机处于 RX_DATA、RX_ACK、RX_WAIT、RX_ACK_WAIT 或 ADDR_ACK 状态。
1 TREQ R 0h 发送请求

0h = 无未处理的发送请求。
1h = I2C 控制器已被寻址为目标发送器,并且正在使用时钟延展技术来延迟控制器,直到数据被写入 TTXDATA FIFO(目标 TX FIFO 为空)。
0 RREQ R 0h 接收请求

0h = 无未处理的接收数据。
1h = I2C 控制器具有来自 I2C 控制器的未处理的接收数据,并且正在使用时钟延展技术来延迟控制器,直到从 TRXDATA FIFO 读取数据(目标 RX FIFO 已满)。

22.3.48 TRXDATA 寄存器(偏移 = 1260h)[复位 = 00000000h]

TRXDATA 如 表 22-70 所示。

返回到汇总表

I2C 目标 RX FIFO 读取数据字节
该字段包含此时在 RX FIFO 栈中读取的当前字节。
如果接收FIFO被禁用,则数据字节和状态位保存在接收保持寄存器(即接收FIFO的最底部单元)中。读取该寄存器可以获取接收的数据。

表 22-70 TRXDATA 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 R 0h 接收的数据。

该字段包含最后接收的数据。
0h = 最小值
FFh = 尽可能高的值

22.3.49 TTXDATA 寄存器(偏移 = 1264h)[复位 = 00000000h]

TTXDATA 如 表 22-71 所示。

返回到汇总表

I2C 目标发送数据寄存器。
该寄存器是发送数据寄存器(FIFO 的接口)。当发送数据时,若FIFO已使能,则对本寄存器写入的数据将推入发送FIFO。如果发送FIFO被禁用,则数据仅保存在发送保持寄存器(即发送FIFO的最底部单元)中。

表 22-71 TTXDATA 寄存器字段说明
字段 类型 复位 说明
31-8 RESERVED R 0h
7-0 R/W 0h 发送数据
该字节包含下一个事务期间要传输的数据。
0h = 最小值
FFh = 尽可能高的值

22.3.50 TACKCTL 寄存器(偏移 = 1268h)[复位 = 00000000h]

TACKCTL 如 表 22-72 所示。

返回到汇总表

该寄存器使 I2C 目标能够对无效数据或命令进行否定确认 (NACK),或对有效数据和命令进行确认 (ACK)。最后一个数据位之后会将 I2C 时钟拉至低电平,直到写入该寄存器。

表 22-72 TACKCTL 寄存器字段说明
字段 类型 复位 说明
31-5 RESERVED R 0h
4 ACKOEN_ON_PECDONE R/W 0h 设置该位后将在接收到的 PEC 字节的 ACK/NACK 之后自动启用目标 ACKOEN 字段。
0h = 无特殊行为
1h = 设置该位后将在接收到的 PEC 字节的 ACK/NACK 之后自动启用目标 ACKOEN 字段。
3 ACKOEN_ON_PECNEXT R/W 0h 设置该位后将在 PEC 字节之前接收到的字节的 ACK/NACK 之后自动启用目标 ACKOEN 字段。
请注意,设置 ACKOEN 后,状态机不会自动对 PEC 字节进行 ACK/NACK,FW 必须通过写入 Target_SACKCTL 来执行该功能。
0h = 无特殊行为
1h = 设置该位后将在 PEC 字节之前接收到的字节的 ACK/NACK 之后自动启用目标 ACKOEN 字段。
请注意,设置 ACKOEN 后,状态机不会自动对 PEC 字节进行 ACK/NACK,FW 必须通过写入 Target_SACKCTL 来执行该功能。
2 ACKOEN_ON_START R/W 0h 设置该位后将在一个启动条件之后自动启用目标 ACKOEN 字段。
0h = 无特殊行为
1h = 设置该位后将在一个启动条件之后自动启用目标 ACKOEN 字段。
1 ACKOVAL R/W 0h I2C 目标 ACK 覆盖值

注意:对于通用广播,如果设置为 NACK,则会忽略该位,目标继续接收数据。
0h = 发送 ACK 以指示有效数据或命令。
1h = 发送 NACK 以指示无效数据或命令。
0 ACKOEN R/W 0h I2C 目标 ACK 覆盖使能

0h = 不提供响应。
1h = 根据写入 ACKOVAL 位的值发送 ACK 或 NACK。

22.3.51 TFIFOCTL 寄存器(偏移 = 126Ch)[复位 = 00000000h]

TFIFOCTL 如 表 22-73 所示。

返回到汇总表

I2C 目标 FIFO 控制

表 22-73 TFIFOCTL 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 RXFLUSH R/W 0h RX FIFO 清空
设置该位将清空 RX FIFO。
在清除该位以停止清空之前,应校验 RXFIFOCNT 为 0 以指示清空已完成。
0h = 不清空 FIFO
1h = 清空 FIFO
14-11 RESERVED R 0h
10-8 RXTRIG R/W 0h RX FIFO 触发信号
指示 RX FIFO 中哪个填充级别将生成触发信号。
注意:将 RXTRIG 编程为 0x0 无效,因为没有数据从 RX FIFO 中
传出。
4h = 当 RX FIFO 包含 >= 5 字节时触发
5h = 当 RX FIFO 包含 >= 6 字节时触发
6h = 当 RX FIFO 包含 >= 7 字节时触发
7h = 当 RX FIFO 包含 >= 8 字节时触发
7 TXFLUSH R/W 0h TX FIFO 清空
设置该位将清空 TX FIFO。
在清除该位以停止清空之前,应校验 TXFIFOCNT 为 8 以指示清空已完成。
0h = 不清空 FIFO
1h = 清空 FIFO
6-3 RESERVED R 0h
2-0 TXTRIG R/W 0h TX FIFO 触发信号
指示 TX FIFO 中哪个填充级别将生成触发信号。
4h = 当 TX FIFO 包含 ≤ 4 字节时触发
5h = 当 TX FIFO 包含 ≤ 5 字节时触发
6h = 当 TX FIFO 包含 ≤ 6 字节时触发
7h = 当 TX FIFO 包含 ≤ 7 字节时触发

22.3.52 TFIFOSR 寄存器(偏移 = 1270h)[复位 = 00000800h]

TFIFOSR 如 表 22-74 所示。

返回到汇总表

I2C 目标 FIFO 状态寄存器
注意:仅当 BUSY 为 0 时才应读取该寄存器

表 22-74 TFIFOSR 寄存器字段说明
字段 类型 复位 说明
31-16 RESERVED R 0h
15 TXFLUSH R 0h TX FIFO 清空
设置该位时,TX FIFO 的清空操作将激活。清除控制寄存器中的 TXFLUSH 位将停止。
0h = FIFO 清空未激活
1h = FIFO 清空激活
14-12 RESERVED R 0h
11-8 TXFIFOCNT R 8h 可放入 TX FIFO 的字节数
0h = 最小值
8h = 尽可能高的值
7 RXFLUSH R 0h RX FIFO 清空
设置该位时,RX FIFO 的清空操作将激活。清除控制寄存器中的 RXFLUSH 位将停止。
0h = FIFO 清空未激活
1h = FIFO 清空激活
6-4 RESERVED R 0h
3-0 RXFIFOCNT R 0h 可从 RX FIFO 读取的字节数
0h = 最小值
8h = 尽可能高的值

22.3.53 _PECCTL 寄存器(偏移 = 1274h)[复位 = 00000000h]

_PECCTL 如 表 22-75 所示。

返回到汇总表

I2C 目标 PEC 控制寄存器

表 22-75 _PECCTL 寄存器字段说明
字段 类型 复位 说明
31-13 RESERVED R 0h
12 PECEN R/W 0h PEC 使能
该位启用 SMB 数据包错误检查 (PEC)。启用后,对于除 Start、Stop、Ack 和 Nack 外的所有位都会计算 PEC。当状态机处于空闲状态时(该状态出现在停止之后或发生超时时),PEC LSFR 和字节计数器设置为 0。在发送或接收 PEC 字节后,计数器也设置为 0。请注意,NACK 会在导致 PEC 错误的 PEC 字节之后自动发送。
PEC 多项式为 x^8 + x^2 + x^1 + 1。
0h = 禁用 PEC 发送和检查
1h = 启用 PEC 发送和检查
11-9 RESERVED R 0h
8-0 PECCNT R/W 0h 该字段为非零值时,将对 I2C 数据字节数进行计数。当字节计数 = PECCNT 且状态机正在发送时,LSFR 的内容将加载到移位寄存器中,而不是加载从 TX FIFO 接收到的字节。当状态机正在接收时,在接收到该字节的最后一位后,会检查 LSFR,如果它不为零,则会生成 PEC RX 错误中断。必须填充 I2C 数据包以包括用于发送和接收的 PEC 字节。在发送模式下,FIFO 必须加载一个虚拟 PEC 字节。在接收模式下,PEC 字节将传递到 Rx FIFO。

在正常的目标用例中,FW 会设置 PECEN=1 和 PECCNT=0 并使用 ACKOEN 直到知道剩余的 SMB 数据包长度。然后,FW 会将 PECCNT 设置为剩余的数据包长度(包括 PEC 字节)。然后,FW 会配置 DMA,以便允许数据包独立完成并退出 NoAck 模式。

请注意,当字节计数 = PEC CNT 时,字节计数将复位为 0,并且在单个 I2C 事务中可以自动进行多次 PEC 计算

0h = 最小值
1FFh = 最大值

22.3.54 _PECSR 寄存器(偏移 = 1278h)[复位 = 00000000h]

_PECSR 如 表 22-76 所示。

返回到汇总表

目标 PEC 状态寄存器

表 22-76 _PECSR 寄存器字段说明
字段 类型 复位 说明
31-18 RESERVED R 0h
17 PECSTS_ERROR R 0h 该状态位指示在最后一次停止前发生的事务中是否发生 PEC 检查错误。锁定在停止位置。
0h = 指示在最后一次停止前发生的事务中没有出现 PEC 检查错误
1h = 指示在最后一次停止前发生的事务中发生了 PEC 检查错误
16 PECSTS_CHECK R 0h 该状态位指示在最后一次停止前发生的事务中是否检查了 PEC。锁定在停止位置。
0h = 指示在最后一次停止前发生的事务中没有检查 PEC
1h = 指示在最后一次停止前发生的事务中检查了 PEC
15-9 RESERVED R 0h
8-0 PECBYTECNT R 0h 这是目标状态机的当前 PEC 字节计数。
0h = 最小值
1FFh = 最大值