ZHDU116G January   2018  – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1

 

  1.   1
  2.   使用前必读
    1.     关于本手册
    2.     器件
    3.     寄存器、字段和位调用
    4.     相关文档
    5. 1.1 商标
  3. 结构概述
    1. 2.1 目标应用
    2. 2.2 概述
    3. 2.3 功能概述
      1. 2.3.1  Arm® Cortex®-M4F
        1. 2.3.1.1 处理器内核
        2. 2.3.1.2 系统计时器 (SysTick)
        3. 2.3.1.3 嵌套向量中断控制器 (NVIC)
        4. 2.3.1.4 系统控制块
      2. 2.3.2  片上存储器
        1. 2.3.2.1 SRAM
        2. 2.3.2.2 闪存存储器
        3. 2.3.2.3 ROM
      3. 2.3.3  无线电
      4. 2.3.4  安全内核
      5. 2.3.5  通用计时器
        1. 2.3.5.1 看门狗计时器
        2. 2.3.5.2 常开域
      6. 2.3.6  直接存储器存取
      7. 2.3.7  系统控制和时钟
      8. 2.3.8  串行通信外设
        1. 2.3.8.1 UART
        2. 2.3.8.2 I2C
        3. 2.3.8.3 I2S
        4. 2.3.8.4 SSI
      9. 2.3.9  可编程 I/O
      10. 2.3.10 传感器控制器
      11. 2.3.11 随机数生成器
      12. 2.3.12 cJTAG 及 JTAG
      13. 2.3.13 电源系统
        1. 2.3.13.1 电源系统
          1. 2.3.13.1.1 VDDS
          2. 2.3.13.1.2 VDDR
          3. 2.3.13.1.3 数字内核电源
          4. 2.3.13.1.4 其他内部电源
        2. 2.3.13.2 直流/直流转换器
  4. Arm® Cortex®-M4F 处理器
    1. 3.1 Arm® Cortex®-M4F 处理器简介
    2. 3.2 方框图
    3. 3.3 概述
      1. 3.3.1 系统级接口
      2. 3.3.2 集成可配置调试
      3. 3.3.3 跟踪端口接口单元
      4. 3.3.4 浮点单元 (FPU)
      5. 3.3.5 存储器保护单元 (MPU)
      6. 3.3.6 Arm® Cortex®-M4F 系统组件详情
    4. 3.4 编程模型
      1. 3.4.1 软件执行的处理器模式和特权等级
      2. 3.4.2
      3. 3.4.3 异常和中断
      4. 3.4.4 数据类型
    5. 3.5 Arm® Cortex®-M4F 内核寄存器
      1. 3.5.1 内核寄存器映射
      2. 3.5.2 内核寄存器描述
        1. 3.5.2.1  Cortex® 通用寄存器 0 (R0)
        2. 3.5.2.2  Cortex® 通用寄存器 1 (R1)
        3. 3.5.2.3  Cortex® 通用寄存器 2 (R2)
        4. 3.5.2.4  Cortex® 通用寄存器 3 (R3)
        5. 3.5.2.5  Cortex® 通用寄存器 4 (R4)
        6. 3.5.2.6  Cortex® 通用寄存器 5 (R5)
        7. 3.5.2.7  Cortex® 通用寄存器 6 (R6)
        8. 3.5.2.8  Cortex® 通用寄存器 7 (R7)
        9. 3.5.2.9  Cortex® 通用寄存器 8 (R8)
        10. 3.5.2.10 Cortex® 通用寄存器 9 (R9)
        11. 3.5.2.11 Cortex® 通用寄存器 10 (R10)
        12. 3.5.2.12 Cortex® 通用寄存器 11 (R11)
        13. 3.5.2.13 Cortex® 通用寄存器 12 (R12)
        14. 3.5.2.14 栈指针 (SP)
        15. 3.5.2.15 链接寄存器 (LR)
        16. 3.5.2.16 程序计数器 (PC)
        17. 3.5.2.17 程序状态寄存器 (PSR)
        18. 3.5.2.18 优先级屏蔽寄存器 (PRIMASK)
        19. 3.5.2.19 故障屏蔽寄存器 (FAULTMASK)
        20. 3.5.2.20 基址优先级屏蔽寄存器 (BASEPRI)
        21. 3.5.2.21 控制寄存器 (CONTROL)
    6. 3.6 指令集概要
      1. 3.6.1 Arm® Cortex®-M4F 指令
      2. 3.6.2 加载和存储时序
      3. 3.6.3 与其他 Cortex® 处理器实现二进制兼容
    7. 3.7 浮点单元 (FPU)
      1. 3.7.1 关于 FPU
      2. 3.7.2 FPU 功能说明
        1. 3.7.2.1 FPU 寄存器组的视图
        2. 3.7.2.2 运行模式
          1. 3.7.2.2.1 完全合规模式
          2. 3.7.2.2.2 清零模式
          3. 3.7.2.2.3 默认 NaN 模式
        3. 3.7.2.3 FPU 指令集
        4. 3.7.2.4 符合 IEEE 754 标准
        5. 3.7.2.5 完全实现 IEEE 754 标准
        6. 3.7.2.6 IEEE 754 标准实现选择
          1. 3.7.2.6.1 NaN 处理
          2. 3.7.2.6.2 对比
          3. 3.7.2.6.3 下溢
        7. 3.7.2.7 异常
      3. 3.7.3 FPU 编程器模型
        1. 3.7.3.1 使能 FPU
          1. 3.7.3.1.1 启用 FPU
    8. 3.8 存储器保护单元 (MPU)
      1. 3.8.1 关于 MPU
      2. 3.8.2 MPU 功能说明
      3. 3.8.3 MPU 编程器模型
    9. 3.9 Arm® Cortex®-M4F 处理器寄存器
      1. 3.9.1 CPU_DWT 寄存器
      2. 3.9.2 CPU_FPB 寄存器
      3. 3.9.3 CPU_ITM 寄存器
      4. 3.9.4 CPU_SCS 寄存器
      5. 3.9.5 CPU_TPIU 寄存器
  5. 存储器映射
    1. 4.1 存储器映射
  6. Arm® Cortex®-M4F 外设
    1. 5.1 Arm® Cortex®-M4F 外设介绍
    2. 5.2 功能说明
      1. 5.2.1 SysTick
      2. 5.2.2 NVIC
        1. 5.2.2.1 电平敏感中断和脉冲中断
        2. 5.2.2.2 中断的硬件和软件控制
      3. 5.2.3 SCB
      4. 5.2.4 ITM
      5. 5.2.5 FPB
      6. 5.2.6 TPIU
      7. 5.2.7 DWT
  7. 中断和事件
    1. 6.1 异常模型
      1. 6.1.1 异常状态
      2. 6.1.2 异常类型
      3. 6.1.3 异常处理程序
      4. 6.1.4 矢量表
      5. 6.1.5 异常优先级
      6. 6.1.6 中断优先级分组
      7. 6.1.7 异常进入和返回
        1. 6.1.7.1 异常进入
        2. 6.1.7.2 异常返回
    2. 6.2 故障处理
      1. 6.2.1 故障类型
      2. 6.2.2 故障升级和硬故障
      3. 6.2.3 故障状态寄存器和故障地址寄存器
      4. 6.2.4 锁定
    3. 6.3 事件结构
      1. 6.3.1 简介
      2. 6.3.2 事件结构概述
        1. 6.3.2.1 寄存器
    4. 6.4 AON 事件结构
      1. 6.4.1 通用输入事件列表
      2. 6.4.2 事件订阅者
        1. 6.4.2.1 唤醒控制器 (WUC)
        2. 6.4.2.2 实时时钟
        3. 6.4.2.3 MCU 事件结构
    5. 6.5 MCU 事件结构
      1. 6.5.1 通用输入事件列表
      2. 6.5.2 事件订阅者
        1. 6.5.2.1 系统 CPU
        2. 6.5.2.2 NMI
        3. 6.5.2.3 冻结
    6. 6.6 AON 事件
    7. 6.7 中断和事件寄存器
      1. 6.7.1 AON_EVENT 寄存器
      2. 6.7.2 EVENT 寄存器
  8. JTAG 接口
    1. 7.1  顶层调试系统
    2. 7.2  cJTAG
      1. 7.2.1 cJTAG 命令
        1. 7.2.1.1 必需命令
      2. 7.2.2 编程序列
        1. 7.2.2.1 打开命令窗口
        2. 7.2.2.2 更改为 4 引脚模式
        3. 7.2.2.3 关闭命令窗口
    3. 7.3  ICEPick
      1. 7.3.1 次级 TAP
        1. 7.3.1.1 从器件 DAP (CPU DAP)
        2. 7.3.1.2 从属 TAP 和 DAP 的排序
      2. 7.3.2 ICEPick 寄存器
        1. 7.3.2.1 IR 指令
        2. 7.3.2.2 数据移位寄存器
        3. 7.3.2.3 指令寄存器
        4. 7.3.2.4 旁路寄存器
        5. 7.3.2.5 器件标识寄存器
        6. 7.3.2.6 用户代码寄存器
        7. 7.3.2.7 ICEPick 标识寄存器
        8. 7.3.2.8 连接寄存器
      3. 7.3.3 路由器扫描链
      4. 7.3.4 TAP 路由寄存器
        1. 7.3.4.1 ICEPick 控制块
          1. 7.3.4.1.1 All0s 寄存器
          2. 7.3.4.1.2 ICEPick 控制寄存器
          3. 7.3.4.1.3 链接模式寄存器
        2. 7.3.4.2 测试 TAP 链接块
          1. 7.3.4.2.1 次级测试 TAP 寄存器
        3. 7.3.4.3 调试 TAP 链接块
          1. 7.3.4.3.1 次级调试 TAP 寄存器
    4. 7.4  ICEMelter
    5. 7.5  串行线查看器 (SWV)
    6. 7.6  引导中暂停 (HIB)
    7. 7.7  调试与关断
    8. 7.8  通过 WUC TAP 支持的调试功能
    9. 7.9  分析器寄存器
    10. 7.10 边界扫描
  9. 电源、复位和时钟管理 (PRCM)
    1. 8.1 简介
    2. 8.2 系统 CPU 模式
    3. 8.3 电源系统
      1. 8.3.1 内部 DC/DC 转换器和全局 LDO
    4. 8.4 数字电源分区
      1. 8.4.1 MCU_VD
        1. 8.4.1.1 MCU_VD 电源域
      2. 8.4.2 AON_VD
        1. 8.4.2.1 AON_VD 电源域
    5. 8.5 时钟管理
      1. 8.5.1 系统时钟
        1. 8.5.1.1 控制振荡器
      2. 8.5.2 MCU_VD 中的时钟
        1. 8.5.2.1 时钟门控
        2. 8.5.2.2 定标器到 GPT
        3. 8.5.2.3 WDT 分频器
      3. 8.5.3 AON_VD 中的时钟
    6. 8.6 电源模式
      1. 8.6.1 启动状态
      2. 8.6.2 活动模式
      3. 8.6.3 空闲模式
      4. 8.6.4 待机模式
      5. 8.6.5 关断模式
    7. 8.7 复位
      1. 8.7.1 系统复位
        1. 8.7.1.1 时钟丢失检测
        2. 8.7.1.2 软件启动的系统复位
        3. 8.7.1.3 热复位转换为系统复位
      2. 8.7.2 MCU_VD 电源域及模块的复位
      3. 8.7.3 AON_VD 复位
    8. 8.8 PRCM 寄存器
      1. 8.8.1 DDI_0_OSC 寄存器
      2. 8.8.2 PRCM 寄存器
      3. 8.8.3 AON_PMCTL 寄存器
  10. 多功能指令存储器系统 (VIMS)
    1. 9.1 简介
    2. 9.2 VIMS 配置
      1. 9.2.1 VIMS 模式
        1. 9.2.1.1 GPRAM 模式
        2. 9.2.1.2 关闭模式
        3. 9.2.1.3 缓存模式
      2. 9.2.2 VIMS 闪存线路缓冲器
      3. 9.2.3 VIMS 仲裁
      4. 9.2.4 VIMS 高速缓存 TAG 预取
    3. 9.3 VIMS 软件注意事项
      1. 9.3.1 闪存程序或者更新
      2. 9.3.2 VIMS 保持
        1. 9.3.2.1 模式 1
        2. 9.3.2.2 模式 2
        3. 9.3.2.3 模式 3
    4. 9.4 ROM
    5. 9.5 闪存
      1. 9.5.1 闪存保护
      2. 9.5.2 存储器编程
      3. 9.5.3 闪存编程
      4. 9.5.4 电源管理要求
    6. 9.6 ROM 功能
    7. 9.7 VIMS 寄存器
      1. 9.7.1 FLASH 寄存器
      2. 9.7.2 VIMS 寄存器
  11. 10SRAM
    1. 10.1 简介
    2. 10.2 主要特性
    3. 10.3 数据保留
    4. 10.4 奇偶校验和 SRAM 错误支持
    5. 10.5 SRAM 自动初始化
    6. 10.6 奇偶校验调试行为
    7. 10.7 SRAM 寄存器
      1. 10.7.1 SRAM_MMR 寄存器
      2. 10.7.2 SRAM 寄存器
  12. 11引导加载程序
    1. 11.1 引导加载程序功能
      1. 11.1.1 引导加载程序禁用
      2. 11.1.2 引导加载程序后门
    2. 11.2 引导加载程序接口
      1. 11.2.1 数据包处理
        1. 11.2.1.1 数据包确认和非确认字节
      2. 11.2.2 传输层
        1. 11.2.2.1 UART 传输
          1. 11.2.2.1.1 UART 波特率自动检测
        2. 11.2.2.2 SSI 传输
      3. 11.2.3 串行总线命令
        1. 11.2.3.1  COMMAND_PING
        2. 11.2.3.2  COMMAND_DOWNLOAD
        3. 11.2.3.3  COMMAND_SEND_DATA
        4. 11.2.3.4  COMMAND_SECTOR_ERASE
        5. 11.2.3.5  COMMAND_GET_STATUS
        6. 11.2.3.6  COMMAND_RESET
        7. 11.2.3.7  COMMAND_GET_CHIP_ID
        8. 11.2.3.8  COMMAND_CRC32
        9. 11.2.3.9  COMMAND_BANK_ERASE
        10. 11.2.3.10 COMMAND_MEMORY_READ
        11. 11.2.3.11 COMMAND_MEMORY_WRITE
        12. 11.2.3.12 COMMAND_SET_CCFG
        13. 11.2.3.13 COMMAND_DOWNLOAD_CRC
  13. 12器件配置
    1. 12.1 客户配置 (CCFG)
    2. 12.2 CCFG 寄存器
      1. 12.2.1 CCFG 寄存器
    3. 12.3 出厂配置 (FCFG)
    4. 12.4 FCFG 寄存器
      1. 12.4.1 FCFG1 寄存器
  14. 13加密
    1. 13.1 AES 和哈希加密处理器简介
    2. 13.2 功能说明
      1. 13.2.1 调试功能
      2. 13.2.2 异常处理
    3. 13.3 电源管理和睡眠模式
    4. 13.4 硬件说明
      1. 13.4.1 AHB 从总线
      2. 13.4.2 AHB 主总线
      3. 13.4.3 中断
    5. 13.5 模块说明
      1. 13.5.1 简介
      2. 13.5.2 模块存储器映射
      3. 13.5.3 DMA 控制器
        1. 13.5.3.1 内部操作
        2. 13.5.3.2 支持的 DMA 运行
      4. 13.5.4 主控制和选择模块
        1. 13.5.4.1 算法选择寄存器
          1. 13.5.4.1.1 算法选择
        2. 13.5.4.2 主器件 PROT 启用
          1. 13.5.4.2.1 主 PROT 特权访问启用
        3. 13.5.4.3 软件复位
      5. 13.5.5 AES 引擎
        1. 13.5.5.1 第二密钥寄存器(内部,但可清除)
        2. 13.5.5.2 AES 初始化矢量 (IV) 寄存器
        3. 13.5.5.3 AES I/O 缓冲器控制、模式和长度寄存器
        4. 13.5.5.4 数据输入和输出寄存器
        5. 13.5.5.5 TAG 寄存器
      6. 13.5.6 键区寄存器
        1. 13.5.6.1 密钥写入区域寄存器
        2. 13.5.6.2 密钥写入区域寄存器
        3. 13.5.6.3 密钥大小寄存器
        4. 13.5.6.4 密钥存储区读取区域寄存器
        5. 13.5.6.5 哈希引擎
    6. 13.6 AES 模块性能
      1. 13.6.1 简介
      2. 13.6.2 基于 DMA 的操作的性能
    7. 13.7 编程指南
      1. 13.7.1 复位后的一次性初始化
      2. 13.7.2 DMAC 及主控
        1. 13.7.2.1 经常使用
        2. 13.7.2.2 中断 DMA 传输
        3. 13.7.2.3 中断、硬件和软件同步
      3. 13.7.3 哈希
        1. 13.7.3.1 数据格式和字节顺序
        2. 13.7.3.2 带有来自 DMA 的数据的基本哈希
          1. 13.7.3.2.1 通过从器件读取摘要的新哈希会话
          2. 13.7.3.2.2 新建哈希会话并将摘要输出到外部存储器
          3. 13.7.3.2.3 恢复的哈希会话
        3. 13.7.3.3 HMAC
          1. 13.7.3.3.1 安全 HMAC
        4. 13.7.3.4 数据源自从器件接口的备用基本哈希
          1. 13.7.3.4.1 新哈希会话
          2. 13.7.3.4.2 恢复的哈希会话
      4. 13.7.4 加密和解密
        1. 13.7.4.1 数据格式和字节顺序
        2. 13.7.4.2 密钥存储
          1. 13.7.4.2.1 从外部存储器加载密钥
        3. 13.7.4.3 基本 AES 模式
          1. 13.7.4.3.1 AES-ECB
          2. 13.7.4.3.2 AES-CBC
          3. 13.7.4.3.3 AES-CTR
          4. 13.7.4.3.4 使用 DMA 数据的编程顺序
        4. 13.7.4.4 CBC-MAC
          1. 13.7.4.4.1 CBC-MAC 编程顺序
        5. 13.7.4.5 AES-CCM
          1. 13.7.4.5.1 AES-CCM 编程顺序
        6. 13.7.4.6 AES-GCM
          1. 13.7.4.6.1 AES-GCM 编程顺序
      5. 13.7.5 异常处理
        1. 13.7.5.1 软复位
        2. 13.7.5.2 外部端口错误
        3. 13.7.5.3 密钥存储错误
          1. 13.7.5.3.1 PKA 引擎
          2. 13.7.5.3.2 功能说明
            1. 13.7.5.3.2.1 模块架构
          3. 13.7.5.3.3 PKA RAM
            1. 13.7.5.3.3.1 PKCP 操作
            2. 13.7.5.3.3.2 序列发生器操作
              1. 13.7.5.3.3.2.1 模幂运算
              2. 13.7.5.3.3.2.2 模逆运算
              3. 13.7.5.3.3.2.3 性能
              4. 13.7.5.3.3.2.4 ECC 操作
              5. 13.7.5.3.3.2.5 性能
              6. 13.7.5.3.3.2.6 ExpMod 性能
              7. 13.7.5.3.3.2.7 模逆性能
              8. 13.7.5.3.3.2.8 ECC 操作性能
            3. 13.7.5.3.3.3 序列发生器 ROM 行为和接口
            4. 13.7.5.3.3.4 寄存器配置
            5. 13.7.5.3.3.5 运行时序
    8. 13.8 约定与合规性
      1. 13.8.1 本手册中使用的约定
        1. 13.8.1.1 术语
        2. 13.8.1.2 公式和命名规则
      2. 13.8.2 合规性
    9. 13.9 加密寄存器
      1. 13.9.1 CRYPTO 寄存器
  15. 14I/O 控制器 (IOC)
    1. 14.1  简介
    2. 14.2  IOC 概述
    3. 14.3  I/O 映射和配置
      1. 14.3.1 基本 I/O 映射
      2. 14.3.2 将 AUXIO 映射到 DIO 引脚
      3. 14.3.3 通过 I/O 控制外部 LNA/PA(范围扩展器)
      4. 14.3.4 将 32kHz 系统时钟(LF 时钟)映射至 DIO
    4. 14.4  DIO 引脚上的边沿检测
      1. 14.4.1 将 DIO 配置为 GPIO 输入,生成 EDGE DETECT 上的中断
    5. 14.5  未使用的 I/O 引脚
    6. 14.6  GPIO
    7. 14.7  I/O 引脚功能
    8. 14.8  外设 PORTID
    9. 14.9  I/O 引脚
      1. 14.9.1 输入/输出模式
        1. 14.9.1.1 物理引脚
        2. 14.9.1.2 引脚配置
    10. 14.10 IOC 寄存器
      1. 14.10.1 AON_IOC 寄存器
      2. 14.10.2 GPIO 寄存器
      3. 14.10.3 IOC 寄存器
  16. 15微型直接存储器存取 (µDMA)
    1. 15.1 μDMA 简介
    2. 15.2 方框图
    3. 15.3 功能说明
      1. 15.3.1  通道分配
      2. 15.3.2  优先级
      3. 15.3.3  仲裁大小
      4. 15.3.4  请求类型
        1. 15.3.4.1 单个请求
        2. 15.3.4.2 突发请求
      5. 15.3.5  通道配置
      6. 15.3.6  传输模式
        1. 15.3.6.1 停止模式
        2. 15.3.6.2 基本模式
        3. 15.3.6.3 自动模式
        4. 15.3.6.4 乒乓模式
        5. 15.3.6.5 内存散聚模式
        6. 15.3.6.6 外设散聚模式
      7. 15.3.7  传输大小和增量
      8. 15.3.8  外设接口
      9. 15.3.9  软件请求
      10. 15.3.10 中断和错误
    4. 15.4 初始化和配置
      1. 15.4.1 模块初始化
      2. 15.4.2 配置存储器到存储器传输
        1. 15.4.2.1 配置通道属性
        2. 15.4.2.2 配置通道控制结构
        3. 15.4.2.3 启动传输
    5. 15.5 µDMA 寄存器
      1. 15.5.1 UDMA 寄存器
  17. 16计时器
    1. 16.1 通用计时器
    2. 16.2 方框图
    3. 16.3 功能说明
      1. 16.3.1 GPTM 复位条件
      2. 16.3.2 计时器模式
        1. 16.3.2.1 单次触发或周期计时器模式
        2. 16.3.2.2 输入边沿计数模式
        3. 16.3.2.3 输入边沿时间模式
        4. 16.3.2.4 PWM 模式
        5. 16.3.2.5 等待触发模式
      3. 16.3.3 同步 GPT 模块
      4. 16.3.4 访问级联的 16 位和 32 位 GPTM 寄存器值
    4. 16.4 初始化和配置
      1. 16.4.1 单次触发和周期计时器模式
      2. 16.4.2 输入边沿计数模式
      3. 16.4.3 输入边沿计时模式
      4. 16.4.4 PWM 模式
      5. 16.4.5 生成 DMA 触发事件
    5. 16.5 GPTM 寄存器
      1. 16.5.1 GPT 寄存器
  18. 17实时时钟 (RTC)
    1. 17.1 简介
    2. 17.2 功能规格
      1. 17.2.1 功能概述
      2. 17.2.2 自由运行计数器
      3. 17.2.3 通道
        1. 17.2.3.1 捕获和比较
      4. 17.2.4 事件
    3. 17.3 RTC 寄存器信息
      1. 17.3.1 寄存器访问
      2. 17.3.2 进入睡眠和从睡眠中唤醒
      3. 17.3.3 AON_RTC:SYNC 寄存器
    4. 17.4 RTC 寄存器
      1. 17.4.1 AON_RTC 寄存器
  19. 18看门狗计时器 (WDT)
    1. 18.1 简介
    2. 18.2 功能说明
    3. 18.3 初始化和配置
    4. 18.4 WDT 寄存器
      1. 18.4.1 WDT 寄存器
  20. 19真随机数发生器 (TRNG)
    1. 19.1 简介
    2. 19.2 方框图
    3. 19.3 TRNG 软件复位
    4. 19.4 中断请求
    5. 19.5 TRNG 操作说明
      1. 19.5.1 TRNG 关断
      2. 19.5.2 TRNG 警报
      3. 19.5.3 TRNG 熵
    6. 19.6 TRNG 底层编程指南
      1. 19.6.1 初始化
        1. 19.6.1.1 接口模块
        2. 19.6.1.2 TRNG 主序列
        3. 19.6.1.3 TRNG 工作模式
          1. 19.6.1.3.1 轮询模式
          2. 19.6.1.3.2 中断模式
    7. 19.7 TRNG 寄存器
      1. 19.7.1 TRNG 寄存器
  21. 20AUX 域传感器控制器和外设
    1. 20.1 简介
      1. 20.1.1 AUX 方框图
    2. 20.2 电源和时钟管理
      1. 20.2.1 工作模式
        1. 20.2.1.1 双速率 AUX 时钟
      2. 20.2.2 使用场景
        1. 20.2.2.1 MCU
        2. 20.2.2.2 传感器控制器
      3. 20.2.3 SCE 时钟仿真
      4. 20.2.4 AUX RAM 保持
    3. 20.3 传感器控制器
      1. 20.3.1 Sensor Controller Studio
        1. 20.3.1.1 编程模型
        2. 20.3.1.2 任务开发
        3. 20.3.1.3 任务测试、任务调试和运行时日志记录
        4. 20.3.1.4 文档
      2. 20.3.2 传感器控制器引擎 (SCE)
        1. 20.3.2.1  寄存器
          1.        流水线风险
        2. 20.3.2.2  存储器架构
          1.        指令和数据的存储器访问
          2.        模块寄存器的 I/O 访问
        3. 20.3.2.3  程序流程
          1.        零开销循环
        4. 20.3.2.4  指令集
          1. 20.3.2.4.1 指令时序
          2. 20.3.2.4.2 指令前缀
          3. 20.3.2.4.3 指令
        5. 20.3.2.5  SCE 事件接口
        6. 20.3.2.6  数学加速器 (MAC)
        7. 20.3.2.7  可编程微秒延迟
        8. 20.3.2.8  唤醒事件处理
        9. 20.3.2.9  访问 AON 域寄存器
        10. 20.3.2.10 VDDR 充电
    4. 20.4 数字外设模块
      1. 20.4.1 概述
        1. 20.4.1.1 DDI 控制配置
      2. 20.4.2 AIODIO
        1. 20.4.2.1 简介
        2. 20.4.2.2 功能说明
          1. 20.4.2.2.1 映射到 DIO 引脚
          2. 20.4.2.2.2 配置
          3. 20.4.2.2.3 GPIO 模式
          4. 20.4.2.2.4 输入缓冲器
          5. 20.4.2.2.5 数据输出源
      3. 20.4.3 SMPH
        1. 20.4.3.1 简介
        2. 20.4.3.2 功能说明
        3. 20.4.3.3 TI 软件中的信标分配
      4. 20.4.4 SPIM
        1. 20.4.4.1 简介
        2. 20.4.4.2 功能说明
          1. 20.4.4.2.1 TX 和 RX 操作
          2. 20.4.4.2.2 配置
          3. 20.4.4.2.3 时序图
      5. 20.4.5 时间数字转换器 (TDC)
        1. 20.4.5.1 简介
        2. 20.4.5.2 功能说明
          1. 20.4.5.2.1 命令
          2. 20.4.5.2.2 转换时间配置
          3. 20.4.5.2.3 状态和结果
          4. 20.4.5.2.4 时钟源选择
            1. 20.4.5.2.4.1 计数器时钟
            2. 20.4.5.2.4.2 基准时钟
          5. 20.4.5.2.5 启动和停止事件
          6. 20.4.5.2.6 预分频器
        3. 20.4.5.3 支持的测量类型
          1. 20.4.5.3.1 测量脉冲宽度
          2. 20.4.5.3.2 测量频率
          3. 20.4.5.3.3 测量不同事件源之间的边沿时间间隔
            1. 20.4.5.3.3.1 异步计数器启动 — 忽略 0 个停止事件
            2. 20.4.5.3.3.2 同步计数器启动 — 忽略 0 个停止事件
            3. 20.4.5.3.3.3 异步计数器启动 — 忽略停止事件
            4. 20.4.5.3.3.4 同步计数器启动 — 忽略停止事件
          4. 20.4.5.3.4 脉冲计数
      6. 20.4.6 Timer01
        1. 20.4.6.1 简介
        2. 20.4.6.2 功能说明
      7. 20.4.7 Timer2
        1. 20.4.7.1 简介
        2. 20.4.7.2 功能说明
          1. 20.4.7.2.1 时钟源
          2. 20.4.7.2.2 时钟预分频器
          3. 20.4.7.2.3 计数器
          4. 20.4.7.2.4 事件输出
          5. 20.4.7.2.5 通道操作
            1. 20.4.7.2.5.1 周期和脉冲宽度测量
              1. 20.4.7.2.5.1.1 计时器周期和脉冲宽度捕获
            2. 20.4.7.2.5.2 归零时清除,比较时重复翻转
              1. 20.4.7.2.5.2.1 通道 0 生成中心对齐 PWM
            3. 20.4.7.2.5.3 归零时设置,比较时重复翻转
              1. 20.4.7.2.5.3.1 通道 0 生成边沿对齐 PWM
          6. 20.4.7.2.6 异步总线桥
    5. 20.5 模拟外设模块
      1. 20.5.1 概述
        1. 20.5.1.1 ADI 控制配置
        2. 20.5.1.2 方框图
      2. 20.5.2 模数转换器 (ADC)
        1. 20.5.2.1 简介
        2. 20.5.2.2 功能说明
          1. 20.5.2.2.1 输入选择和缩放
          2. 20.5.2.2.2 基准选择
          3. 20.5.2.2.3 ADC 采样模式
          4. 20.5.2.2.4 ADC 时钟源
          5. 20.5.2.2.5 ADC 触发器
          6. 20.5.2.2.6 采样 FIFO
          7. 20.5.2.2.7 µDMA 接口
          8. 20.5.2.2.8 资源所有权和使用情况
      3. 20.5.3 COMPA
        1. 20.5.3.1 简介
        2. 20.5.3.2 功能说明
          1. 20.5.3.2.1 输入选择
          2. 20.5.3.2.2 基准选择
          3. 20.5.3.2.3 LPM 偏置和 COMPA 使能
          4. 20.5.3.2.4 资源所有权和使用情况
      4. 20.5.4 COMPB
        1. 20.5.4.1 简介
        2. 20.5.4.2 功能说明
          1. 20.5.4.2.1 输入选择
          2. 20.5.4.2.2 基准选择
          3. 20.5.4.2.3 资源所有权和使用情况
            1. 20.5.4.2.3.1 传感器控制器唤醒
            2. 20.5.4.2.3.2 系统 CPU 唤醒
      5. 20.5.5 参考 DAC
        1. 20.5.5.1 简介
        2. 20.5.5.2 功能说明
          1. 20.5.5.2.1 基准选择
          2. 20.5.5.2.2 输出电压控制和范围
          3. 20.5.5.2.3 采样时钟
            1. 20.5.5.2.3.1 自动相位控制
            2. 20.5.5.2.3.2 手动相位控制
            3. 20.5.5.2.3.3 工作模式依赖
          4. 20.5.5.2.4 输出选择
            1. 20.5.5.2.4.1 缓存器
            2. 20.5.5.2.4.2 外部负载
            3. 20.5.5.2.4.3 COMPA_REF
            4. 20.5.5.2.4.4 COMPB_REF
          5. 20.5.5.2.5 LPM 偏置
          6. 20.5.5.2.6 资源所有权和使用情况
      6. 20.5.6 ISRC
        1. 20.5.6.1 简介
        2. 20.5.6.2 功能说明
          1. 20.5.6.2.1 可编程电流
          2. 20.5.6.2.2 电压基准
          3. 20.5.6.2.3 ISRC 使能
          4. 20.5.6.2.4 不受温度影响
          5. 20.5.6.2.5 资源所有权和使用情况
    6. 20.6 事件路由和使用
      1. 20.6.1 AUX 事件总线
        1. 20.6.1.1 事件信号
        2. 20.6.1.2 事件订阅者
          1. 20.6.1.2.1 事件检测
            1. 20.6.1.2.1.1 异步事件检测
            2. 20.6.1.2.1.2 同步事件检测
      2. 20.6.2 在外部引脚上观察事件
      3. 20.6.3 来自 MCU 域的事件
      4. 20.6.4 发送到 MCU 域的事件
      5. 20.6.5 来自 AON 域的事件
      6. 20.6.6 发送到 AON 域的事件
      7. 20.6.7 µDMA 接口
    7. 20.7 传感器控制器别名寄存器空间
    8. 20.8 AUX 域传感器控制器和外设寄存器
      1. 20.8.1  ADI_4_AUX 寄存器
      2. 20.8.2  AUX_AIODIO 寄存器
      3. 20.8.3  AUX_EVCTL 寄存器
      4. 20.8.4  AUX_SMPH 寄存器
      5. 20.8.5  AUX_TDC 寄存器
      6. 20.8.6  AUX_TIMER01 寄存器
      7. 20.8.7  AUX_TIMER2 寄存器
      8. 20.8.8  AUX_ANAIF 寄存器
      9. 20.8.9  AUX_SYSIF 寄存器
      10. 20.8.10 AUX_SPIM 寄存器
      11. 20.8.11 AUX_MAC 寄存器
      12. 20.8.12 AUX_SCE 寄存器
  22. 21电池监测器和温度传感器 (BATMON)
    1. 21.1 简介
    2. 21.2 功能说明
    3. 21.3 BATMON 寄存器
      1. 21.3.1 AON_BATMON 寄存器
  23. 22通用异步收发器 (UART)
    1. 22.1 简介
    2. 22.2 方框图
    3. 22.3 信号描述
    4. 22.4 功能说明
      1. 22.4.1 发送和接收逻辑
      2. 22.4.2 波特率生成
      3. 22.4.3 数据传输
      4. 22.4.4 调制解调器握手支持
        1. 22.4.4.1 信号
        2. 22.4.4.2 流控
          1. 22.4.4.2.1 硬件流控制(RTS 和 CTS)
          2. 22.4.4.2.2 软件流控制(调制解调器状态中断)
      5. 22.4.5 FIFO 操作
      6. 22.4.6 中断
      7. 22.4.7 环回操作
    5. 22.5 用于连接 DMA 的接口
    6. 22.6 初始化和配置
    7. 22.7 UART 寄存器
      1. 22.7.1 UART 寄存器
  24. 23同步串行接口 (SSI)
    1. 23.1 简介
    2. 23.2 方框图
    3. 23.3 信号描述
    4. 23.4 功能说明
      1. 23.4.1 比特率生成
      2. 23.4.2 FIFO 操作
        1. 23.4.2.1 发送FIFO
        2. 23.4.2.2 接收FIFO
      3. 23.4.3 中断
      4. 23.4.4 帧格式
        1. 23.4.4.1 德州仪器 (TI) 同步串行帧格式
        2. 23.4.4.2 Motorola SPI 帧格式
          1. 23.4.4.2.1 SPO 时钟极性位
          2. 23.4.4.2.2 SPH 相位控制位
        3. 23.4.4.3 SPO = 0 和 SPH = 0 时的 Motorola SPI 帧格式
        4. 23.4.4.4 SPO = 0 和 SPH = 1 时的 Motorola SPI 帧格式
        5. 23.4.4.5 SPO = 1 和 SPH = 0 时的 Motorola SPI 帧格式
        6. 23.4.4.6 SPO = 1 和 SPH = 1 时的 Motorola SPI 帧格式
        7. 23.4.4.7 MICROWIRE 帧格式
    5. 23.5 DMA 操作
    6. 23.6 初始化和配置
    7. 23.7 SSI 寄存器
      1. 23.7.1 SSI 寄存器
  25. 24内部集成电路 (I2C)
    1. 24.1 简介
    2. 24.2 方框图
    3. 24.3 功能说明
      1. 24.3.1 I2C 总线功能概述
        1. 24.3.1.1 启动和停止条件
        2. 24.3.1.2 带有 7 位地址的数据格式
        3. 24.3.1.3 数据有效性
        4. 24.3.1.4 响应
        5. 24.3.1.5 仲裁
      2. 24.3.2 可用速度模式
        1. 24.3.2.1 标准和快速模式
      3. 24.3.3 中断
        1. 24.3.3.1 I2C 主器件中断
        2. 24.3.3.2 I2C 从器件中断
      4. 24.3.4 环回操作
      5. 24.3.5 命令序列流程图
        1. 24.3.5.1 I2C 主器件命令序列
        2. 24.3.5.2 I2C 从器件命令序列
    4. 24.4 初始化和配置
    5. 24.5 I2C 寄存器
      1. 24.5.1 I2C 寄存器
  26. 25IC 间音频 (I2S)
    1. 25.1 简介
    2. 25.2 方框图
    3. 25.3 信号描述
    4. 25.4 功能说明
      1. 25.4.1 依赖项
        1. 25.4.1.1 系统 CPU 深度睡眠模式
      2. 25.4.2 引脚配置
      3. 25.4.3 串行格式配置
      4. 25.4.4 I2S
        1. 25.4.4.1 寄存器配置
      5. 25.4.5 左对齐 (LJF)
        1. 25.4.5.1 寄存器配置
      6. 25.4.6 右对齐 (RJF)
        1. 25.4.6.1 寄存器配置
      7. 25.4.7 DSP
        1. 25.4.7.1 寄存器配置
      8. 25.4.8 时钟配置
        1. 25.4.8.1 内部音频时钟源
        2. 25.4.8.2 外部音频时钟源
    5. 25.5 存储器接口
      1. 25.5.1 采样字长
      2. 25.5.2 通道映射
      3. 25.5.3 存储器中的采样存储
      4. 25.5.4 DMA 运行
        1. 25.5.4.1 启动
        2. 25.5.4.2 运行
        3. 25.5.4.3 关断
    6. 25.6 采样时间戳发生器
      1. 25.6.1 样片戳计数器
      2. 25.6.2 启动触发
      3. 25.6.3 采样时间戳捕获
      4. 25.6.4 实现恒定音频延迟
    7. 25.7 错误检测
    8. 25.8 用途
      1. 25.8.1 启动序列
      2. 25.8.2 关断序列
    9. 25.9 I2S 寄存器
      1. 25.9.1 I2S 寄存器
  27. 26无线电
    1. 26.1  RF 内核
      1. 26.1.1 概要说明和概述
    2. 26.2  无线电门铃
      1. 26.2.1 特殊引导过程
      2. 26.2.2 命令及状态寄存器和事件
      3. 26.2.3 RF 内核中断
        1. 26.2.3.1 RF 命令和数据包引擎中断
        2. 26.2.3.2 射频内核硬件中断
        3. 26.2.3.3 RF 内核命令确认中断
      4. 26.2.4 无线电计时器
        1. 26.2.4.1 比较和捕获事件
        2. 26.2.4.2 无线电计时器输出
        3. 26.2.4.3 与实时时钟同步
    3. 26.3  RF 内核 HAL
      1. 26.3.1 硬件支持
      2. 26.3.2 固件支持
        1. 26.3.2.1 命令
        2. 26.3.2.2 状态命令
        3. 26.3.2.3 中断
        4. 26.3.2.4 传递数据
        5. 26.3.2.5 命令调度
          1. 26.3.2.5.1 触发条件
          2. 26.3.2.5.2 条件执行
          3. 26.3.2.5.3 命令启动前的处理
        6. 26.3.2.6 命令数据结构
          1. 26.3.2.6.1 无线电操作命令结构
        7. 26.3.2.7 数据输入结构
          1. 26.3.2.7.1 数据条目队列
          2. 26.3.2.7.2 数据条目
          3. 26.3.2.7.3 指针条目
          4. 26.3.2.7.4 部分读取 RX 条目
        8. 26.3.2.8 外部信令
      3. 26.3.3 命令定义
        1. 26.3.3.1 与协议无关的无线电操作命令
          1. 26.3.3.1.1  CMD_NOP:无操作命令
          2. 26.3.3.1.2  CMD_RADIO_SETUP:设置无线电设置命令
          3. 26.3.3.1.3  CMD_FS_POWERUP:上电频率合成器
          4. 26.3.3.1.4  CMD_FS_POWERDOWN:关闭频率合成器电源
          5. 26.3.3.1.5  CMD_FS:频率合成器控制命令
          6. 26.3.3.1.6  CMD_FS_OFF:关闭频率合成器
          7. 26.3.3.1.7  CMD_RX_TEST:接收器测试命令
          8. 26.3.3.1.8  CMD_TX_TEST:发送器测试命令
          9. 26.3.3.1.9  CMD_SYNC_STOP_RAT:同步和停止无线电计时器命令
          10. 26.3.3.1.10 CMD_SYNC_START_RAT:同步启动无线电计时器命令
          11. 26.3.3.1.11 CMD_COUNT:计数器命令
          12. 26.3.3.1.12 CMD_SCH_IMM:以无线电操作形式运行即时命令
          13. 26.3.3.1.13 CMD_COUNT_BRANCH:带有命令链分支的计数器命令
          14. 26.3.3.1.14 CMD_PATTERN_CHECK:将存储器中的值与模式进行比较
        2. 26.3.3.2 与协议无关的直接和即时命令
          1. 26.3.3.2.1  CMD_ABORT:ABORT 命令
          2. 26.3.3.2.2  CMD_STOP:停止命令
          3. 26.3.3.2.3  CMD_GET_RSSI:读取 RSSI 命令
          4. 26.3.3.2.4  CMD_UPDATE_RADIO_SETUP:更新无线电设置命令
          5. 26.3.3.2.5  CMD_TRIGGER:生成命令触发器
          6. 26.3.3.2.6  CMD_GET_FW_INFO:请求有关正在运行的固件的信息
          7. 26.3.3.2.7  CMD_START_RAT:异步启动无线电计时器命令
          8. 26.3.3.2.8  CMD_PING:以中断进行响应
          9. 26.3.3.2.9  CMD_READ_RFREG:读取射频内核寄存器
          10. 26.3.3.2.10 CMD_SET_RAT_CMP:将 RAT 通道设置为比较模式
          11. 26.3.3.2.11 CMD_SET_RAT_CPT:将 RAT 通道设置为捕获模式
          12. 26.3.3.2.12 CMD_DISABLE_RAT_CH:禁用 RAT 通道
          13. 26.3.3.2.13 CMD_SET_RAT_OUTPUT:将 RAT 输出设置为指定模式
          14. 26.3.3.2.14 CMD_ARM_RAT_CH:配置 RAT 通道
          15. 26.3.3.2.15 CMD_DISARM_RAT_CH:解除 RAT 通道配置
          16. 26.3.3.2.16 CMD_SET_TX_POWER:设置发射功率
          17. 26.3.3.2.17 CMD_SET_TX20_POWER:设置 20dBm PA 的传输功率
          18. 26.3.3.2.18 CMD_UPDATE_FS:设置新的合成器频率而不进行重新校准(已弃用)
          19. 26.3.3.2.19 CMD_MODIFY_FS:设置新的合成器频率而不进行重新校准
          20. 26.3.3.2.20 CMD_BUS_REQUEST:请求可用于 RF 内核的系统总线
      4. 26.3.4 数据队列操作的立即命令
        1. 26.3.4.1 CMD_ADD_DATA_ENTRY:将数据条目添加到队列
        2. 26.3.4.2 CMD_REMOVE_DATA_ENTRY:从队列中删除第一个数据条目
        3. 26.3.4.3 CMD_FLUSH_QUEUE:刷新队列
        4. 26.3.4.4 CMD_CLEAR_RX:清除所有 RX 队列条目
        5. 26.3.4.5 CMD_REMOVE_PENDING_ENTRIES:从队列中删除待处理条目
    4. 26.4  数据队列使用情况
      1. 26.4.1 数据队列上的操作仅可用于内部无线电 CPU 操作
        1. 26.4.1.1 PROC_ALLOCATE_TX:分配 TX 条目以进行读取
        2. 26.4.1.2 PROC_FREE_DATA_ENTRY:自由分配的数据条目
        3. 26.4.1.3 PROC_FINISH_DATA_ENTRY:完成队列中第一个数据条目的使用
        4. 26.4.1.4 PROC_ALLOCATE_RX:分配 RX 缓冲区来存储数据
        5. 26.4.1.5 PROC_FINISH_RX:将收到的数据提交到 RX 数据条目
      2. 26.4.2 无线电 CPU 使用模型
        1. 26.4.2.1 接收队列
        2. 26.4.2.2 发送队列
    5. 26.5  IEEE 802.15.4
      1. 26.5.1 IEEE 802.15.4 命令
        1. 26.5.1.1 IEEE 802.15.4 无线电操作命令结构
        2. 26.5.1.2 IEEE 802.15.4 即时命令结构
        3. 26.5.1.3 输出结构
        4. 26.5.1.4 其他结构和位字段
      2. 26.5.2 中断
      3. 26.5.3 数据处理
        1. 26.5.3.1 接收缓冲器
        2. 26.5.3.2 发送缓冲区
      4. 26.5.4 无线电操作命令
        1. 26.5.4.1 RX 操作
          1. 26.5.4.1.1 帧过滤和源匹配
            1. 26.5.4.1.1.1 帧过滤
            2. 26.5.4.1.1.2 源匹配
          2. 26.5.4.1.2 帧接收
          3. 26.5.4.1.3 ACK 发送
          4. 26.5.4.1.4 接收操作结束
          5. 26.5.4.1.5 CCA 监测
        2. 26.5.4.2 能量检测扫描操作
        3. 26.5.4.3 CSMA-CA 操作
        4. 26.5.4.4 发送操作
        5. 26.5.4.5 接收确认操作
        6. 26.5.4.6 中止后台级操作命令
      5. 26.5.5 即时命令
        1. 26.5.5.1 修改 CCA 参数命令
        2. 26.5.5.2 修改帧过滤参数命令
        3. 26.5.5.3 启用或禁用源匹配条目命令
        4. 26.5.5.4 中止前台级操作命令
        5. 26.5.5.5 停止前台级操作命令
        6. 26.5.5.6 请求 CCA 及 RSSI 信息命令
    6. 26.6  低功耗 Bluetooth®
      1. 26.6.1 低功耗 Bluetooth® 命令
        1. 26.6.1.1 命令数据定义
          1. 26.6.1.1.1 低功耗 Bluetooth® 命令结构
        2. 26.6.1.2 参数结构
        3. 26.6.1.3 输出结构
        4. 26.6.1.4 其他结构及位字段
      2. 26.6.2 中断
    7. 26.7  数据处理
      1. 26.7.1 接收缓冲器
      2. 26.7.2 发送缓冲器
    8. 26.8  无线电操作命令说明
      1. 26.8.1  Bluetooth®5 无线电设置命令
      2. 26.8.2  用于低功耗 Bluetooth® 数据包传输的无线电操作命令
      3. 26.8.3  编码 PHY 的编码选择
      4. 26.8.4  参数覆盖
      5. 26.8.5  链路层连接
      6. 26.8.6  从器件命令
      7. 26.8.7  主器件命令
      8. 26.8.8  传统广播器
        1. 26.8.8.1 可连接的非定向广播器命令
        2. 26.8.8.2 可连接的定向广播器命令
        3. 26.8.8.3 不可连接的广播器命令
        4. 26.8.8.4 可扫描非定向广播器命令
      9. 26.8.9  Bluetooth® 5 广播器命令
        1. 26.8.9.1 通用扩展广播数据包
        2. 26.8.9.2 扩展的广播器命令
        3. 26.8.9.3 辅助通道广播器命令
      10. 26.8.10 扫描器命令
        1. 26.8.10.1 扫描器在主通道上接收传统广播数据包
        2. 26.8.10.2 扫描器在主通道上接收扩展广播数据包
        3. 26.8.10.3 扫描器在次级通道上接收扩展广播包
        4. 26.8.10.4 ADI 滤波
        5. 26.8.10.5 扫描器命令结束
      11. 26.8.11 启动器命令
        1. 26.8.11.1 在主通道上接收传统广播数据包的启动器
        2. 26.8.11.2 启动器在主通道上接收扩展广播数据包
        3. 26.8.11.3 启动器在次级通道上接收扩展广播数据包
        4. 26.8.11.4 自动窗口偏移插入
        5. 26.8.11.5 启动器命令结束
      12. 26.8.12 通用接收器命令
      13. 26.8.13 PHY 测试发送命令
      14. 26.8.14 白名单处理
      15. 26.8.15 退避过程
      16. 26.8.16 AUX 指针处理
      17. 26.8.17 器件地址的动态更改
    9. 26.9  即时命令
      1. 26.9.1 更新广播有效载荷命令
    10. 26.10 专有无线电
      1. 26.10.1 数据包格式
      2. 26.10.2 命令
        1. 26.10.2.1 命令数据定义
          1. 26.10.2.1.1 命令结构
        2. 26.10.2.2 输出结构
        3. 26.10.2.3 其他结构和位字段
      3. 26.10.3 中断
      4. 26.10.4 数据处理
        1. 26.10.4.1 接收缓冲区
        2. 26.10.4.2 发送缓冲器
      5. 26.10.5 无线电操作命令说明
        1. 26.10.5.1 操作结束
        2. 26.10.5.2 专有模式设置命令
          1. 26.10.5.2.1 IEEE 802.15.4g 数据包格式
        3. 26.10.5.3 发送器命令
          1. 26.10.5.3.1 标准传输命令 CMD_PROP_TX
          2. 26.10.5.3.2 高级发送命令,CMD_PROP_TX_ADV
        4. 26.10.5.4 接收器命令
          1. 26.10.5.4.1 标准接收命令 CMD_PROP_RX
          2. 26.10.5.4.2 高级接收命令 CMD_PROP_RX_ADV
        5. 26.10.5.5 载波侦听操作
          1. 26.10.5.5.1 常见载波检测说明
          2. 26.10.5.5.2 载波检测命令,CMD_PROP_CS
          3. 26.10.5.5.3 嗅探模式接收命令 CMD_PROP_RX_SNIFF 和 CMD_PROP_RX_ADV_SNIFF
      6. 26.10.6 即时命令
        1. 26.10.6.1 设置数据包长度命令 CMD_PROP_SET_LEN
        2. 26.10.6.2 重新启动数据包 RX 命令 CMD_PROP_RESTART_RX
    11. 26.11 无线电寄存器
      1. 26.11.1 RFC_RAT 寄存器
      2. 26.11.2 RFC_DBELL 寄存器
      3. 26.11.3 RFC_PWR 寄存器
  28. 27修订历史记录

Arm® Cortex®-M4F 指令

处理器实现 ARMv7-M Thumb 指令集。表 3-25 列出了 Arm® Cortex®-M4F 指令及其周期数。周期计数基于具有零等待状态的系统。

在汇编器语法中,根据操作的不同,<op2> 字段可替换为以下选项之一:

  • 例如简单的寄存器说明符
    Rm
  • 例如立即移位寄存器
    Rm, LSL #4
  • 例如寄存器移位寄存器
    Rm, LSL Rs
  • 例如一个直接值
    #0xE000E000

为简洁起见,并未显示所有加载和存储寻址模式。有关更多信息,请参阅 ARMv7-M 架构参考手册

表 3-25周期 列中使用以下缩写:

    P流水线补充所需的周期数。这一范围为 1 至 3,具体取决于目标指令的对齐方式和宽度,以及处理器是否设法提前推测地址。
    B执行屏障操作所需的循环数。对于 DSB 和 DMB,最小周期数为零。对于 ISB,最小周期数等于流水线补充所需的数量。
    N要加载或存储的寄存器列表中的寄存器数量,包括 PC 或 LR。
    W等待相应事件所花费的周期数。
表 3-25 Arm® Cortex®-M4F 指令集摘要
运行说明汇编器周期
移动寄存器
MOV Rd, <op2>
1
16 位立即
MOVW Rd, #<imm>
1
立即进入顶部
MOVT Rd, #<imm>
1
至 PC
MOV PC, Rm
1 + P
ADD Rd, Rn, <op2>
1
添加到 PC
ADD PC, PC, Rm
1 + P
随携带添加
ADC Rd, Rn, <op2>
1
表单地址
ADR Rd, <label>
1
减法减法
SUB Rd, Rn, <op2>
1
用借位减去
SBC Rd, Rn, <op2>
1
反向
RSB Rd, Rn, <op2>
1
乘法乘法
MUL Rd, Rn, Rm
1
乘累加
MLA Rd, Rn, Rm
1
乘减
MLS Rd, Rn, Rm
1
有符号长整型
SMULL RdLo, RdHi, Rn, Rm
1
无符号长整型
UMULL RdLo, RdHi, Rn, Rm
1
有符号长整型累加器
SMLAL RdLo, RdHi, Rn, Rm
1
无符号长整型累加器
UMLAL RdLo, RdHi, Rn, Rm
1
分频有符号
SDIV Rd, Rn, Rm
2 至 12(1)
无符号
UDIV Rd, Rn, Rm
2 至 12(1)
饱和有符号
SSAT Rd, #<imm>, <op2>
1
无符号
USAT Rd, #<imm>, <op2>
1
比较比较
CMP Rn, <op2>
1
CMN Rn, <op2>
1
逻辑
AND Rd, Rn, <op2>
1
异或
EOR Rd, Rn, <op2>
1
ORR Rd, Rn, <op2>
1
或非
ORN Rd, Rn, <op2>
1
位清零
BIC Rd, Rn, <op2>
1
不移动
MVN Rd, <op2>
1
和测试
TST Rn, <op2>
1
异或测试
TEQ Rn, <op1>
1
移位逻辑左移
LSL Rd, Rn, #<imm>
1
逻辑左移
LSL Rd, Rn, Rs
1
逻辑右移
LSR Rd, Rn, #<imm>
1
逻辑右移
LSR Rd, Rn, Rs
1
算术右移
ASR Rd, Rn, #<imm>
1
算术右移
ASR Rd, Rn, Rs
1
旋转向右旋转
ROR Rd, Rn, #<imm>
1
向右旋转
ROR Rd, Rn, Rs
1
带延长
RRX Rd, Rn
1
数量前导零
CLZ Rd, Rn
1
负载
LDR Rd, [Rn, <op2>]
2(2)
至 PC
LDR PC, [Rn, <op2>]
2(2) + P
半字
LDRH Rd, [Rn, <op2>]
2(2)
字节
LDRB Rd, [Rn, <op2>]
2(2)
有符号半字
LDRSH Rd, [Rn, <op2>]
2(2)
有符号字节
LDRSB Rd, [Rn, <op2>]
2(2)
用户字
LDRT Rd, [Rn, #<imm>]
2(2)
用户半字
LDRHT Rd, [Rn, #<imm>]
2(2)
用户字节
LDRBT Rd, [Rn, #<imm>]
2(2)
用户签名的半字
LDRSHT Rd, [Rn, #<imm>]
2(2)
用户签名字节
LDRSBT Rd, [Rn, #<imm>]
2(2)
PC 相对
LDR Rd,[PC, #<imm>]
2(2)
双字
LDRD Rd, Rd, [Rn, #<imm>]
1 + N
多个
LDM Rn, {<reglist>}
1 + N
多个,包括 PC
LDM Rn, {<reglist>, PC}
1 + N + P
存储
STR Rd, [Rn, <op2>]
2(2)
半字
STRH Rd, [Rn, <op2>]
2(2)
字节
STRB Rd, [Rn, <op2>]
2(2)
有符号半字
STRSH Rd, [Rn, <op2>]
2(2)
有符号字节
STRSB Rd, [Rn, <op2>]
2(2)
用户字
STRT Rd, [Rn, #<imm>]
2(2)
用户半字
STRHT Rd, [Rn, #<imm>]
2(2)
用户字节
STRBT Rd, [Rn, #<imm>]
2(2)
用户签名的半字
STRSHT Rd, [Rn, #<imm>]
2(2)
用户签名字节
STRSBT Rd, [Rn, #<imm>]
2(2)
双字
STRD Rd, Rd, [Rn, #<imm>]
1 + N
多个
STM Rn, {<reglist>}
1 + N
推入推入
PUSH {<reglist>}
1 + N
带连接寄存器的推入
PUSH {<reglist>, LR}
1 + N
弹出弹出
POP {<reglist>}
1 + N
弹出并返回
POP {<reglist>, PC}
1 + N + P
信标加载独占项
LDREX Rd, [Rn, #<imm>]
2
加载独占半字
LDREXH Rd, [Rn]
2
加载独占字节
LDREXB Rd, [Rn]
2
存储独占
STREX Rd, Rt, [Rn,#<imm>]
2
存储独占半字
STREXH Rd, Rt, [Rn]
2
存储独占字节
STREXB Rd, Rt, [Rn]
2
清除独占监视器
CLREX
1
转移条件
B<cc> <label>
1 或 1 + P(3)
无条件
B <label>
1 + P
带链接
BL <label>
1 + P
带交换
BX Rm
1 + P
带链路和交换
BLX Rm
1 + P
如果为零,则转移
CBZ Rn, <label>
1 或 1 + P(3)
如果不为零,则转移
CBNZ Rn, <label>
1 或 1 + P(3)
字节表转移
TBB [Rn, Rm]
2 + P
半字表转移
TBH [Rn, Rm, LSL#1]
2 + P
状态变化管理程序调用
SVC #<imm>
If-then-else
IT... <cond>
1(4)
禁用中断
CPSID <flags>
1 或 2
启用中断
CPSIE <flags>
1 或 2
读取特殊寄存器
MRS Rd, <specreg>
1 或 2
写入特殊寄存器
MSR <specreg>, Rn
1 或 2
Breakpoint
BKPT #<imm>
扩展有符号半字到字
SXTH Rd, <op2>
1
有符号字节到字
SXTB Rd, <op2>
1
无符号半字
UXTH Rd, <op2>
1
无符号字节
UXTB Rd, <op2>
1
位字段提取无符号
UBFX Rd, Rn, #<imm>, #<imm>
1
提取有符号
SBFX Rd, Rn, #<imm>, #<imm>
1
清除
BFC Rd, Rn, #<imm>, #<imm>
1
插入
BFI Rd, Rn, #<imm>, #<imm>
1
反向字中的字节
REV Rd, Rm
1
两个半字中的字节
REV16 Rd, Rm
1
有符号底部半字
REVSH Rd, Rm
1
字中的位
RBIT Rd, Rm
1
提示发送事件
SEV
1
等待事件
WFE
1 + W
等待中断
WFI
1 + W
无操作
NOP
1
指令同步
ISB
1 + B
数据存储器
DMB
1 + B
数据同步
DSB <flags>
1 + B
除法运算在除法计算完成时终止,所需的周期数取决于输入操作数的值。除法运算是可中断的,这意味着当发生中断时,操作可以被放弃,最坏情况下的延迟为一个周期,并在中断完成时重新启动。
相邻的加载和存储单个指令可以对其地址和数据阶段进行流水线处理,但在某些情况下(例如在奇半字边界上对齐的 32 位操作码),它们可能无法以最佳方式进行流水线处理。
如果未采用转移,条件转移将在单个周期内完成。
IT 指令可以折叠到前面的 16 位 Thumb 指令上,从而能够在零周期内执行。

 

表 3-26 列出了 Arm® Cortex®-M4F 处理器实现的 DSP 指令。

表 3-26 Arm® Cortex®-M4F DSP 指令集摘要
运行说明汇编器周期
乘法32 位乘法加 32 个最高有效位累加
SMMLA
1
32 位乘法与 32 个最高有效位相减
SMMLS
1
32 位乘法会返回 32 个最高有效位
SMMUL
1
32 位乘法,其中四舍五入的 32 个最高有效位累加
SMMLAR
1
32 位乘法,其中四舍五入的 32 个最高有效位减法
SMMLSR
1
32 位乘法返回四舍五入的 32 个最高有效位
SMMULR
1
有符号的乘法Q 设置 16 位有符号乘法,并进行 32 位累加,低乘低
SMLABB
1
Q 设置 16 位有符号乘法与 32 位累加,低乘高
SMLABT
1
16 位有符号乘法,并进行 64 位累加,低乘低
SMLALBB
1
16 位有符号乘法与 64 位累加,低乘高
SMLALBT
1
双 16 位有符号乘法,采用单个 64 位累加器
SMLALD{X}
1
16 位有符号乘法,并进行 64 位累加,高乘低
SMLALTB
1
16 位有符号乘法与 64 位累加,高乘高
SMLALTT
1
16 位有符号乘法,生成 32 位结果,低乘低
SMULBB
1
16 位有符号乘法,生成 32 位结果,低乘高
SMULBT
1
16 位有符号乘法,生成 32 位结果,高乘低
SMULTB
1
16 位有符号乘法,生成 32 位结果,高乘高
SMULTT
1
16 位乘以 32 位有符号乘法,返回 32 个最高有效位,低
SMULWB
1
16 位乘以 32 位有符号乘法,返回 32 个最高有效位,高
SMULWT
1
双通道 16 位有符号乘法返回差异
SMUSD{X}
1
Q 设置 16 位有符号乘法,累加 32 位,高乘低
SMLATB
1
Q 设置 16 位有符号乘法,累加 32 位,高乘高
SMLATT
1
Q 设置双 16 位有符号乘法,采用单个 32 位累加器
SMLAD{X}
1
Q 设置 16 位乘 32 位有符号乘法,累加 32 位,低
SMLAWB
1
Q 设置 16 位乘 32 位有符号乘法,累加 32 位,高
SMLAWT
1
Q 设置双 16 位有符号乘减,累加 32 位
SMLSD{X}
1
Q 设置双 16 位有符号乘减,采用 64 位累加器
SMLSLD{X}
1
Q 设置双路 16 位有符号乘法的总和
SMUAD{X}
1
无符号的乘法32 位无符号乘法,双精度 32 位累加,生成 64 位结果
UMAAL
1
饱和Q 设置双 16 位饱和
SSAT16
1
Q 设置双 16 位无符号饱和
USAT16
1
紧凑和非紧凑将移位后的低半字打包至高半字位置
PKHTB
将移位后的高半字打包至低半字位置
PKHBT
1
提取 8 位,并将符号扩展到 32 位
SXTB
1
双提取 8 位,并将每个符号扩展到 16 位
SXTB16
1
提取 16 位,并将符号扩展到 32 位
SXTH
1
提取 8 位,并将零扩展到 32 位
UXTB
1
双路提取 8 位,并将零扩展到 16 位
UXTB16
1
提取 16 位,并将零扩展到 32 位
UXTH
1
提取 8 位至 32 位无符号加法
UXTAB
1
双提取 8 位至 16 位无符号加法
UXTAB16
1
提取的 16 位至 32 位无符号加法
UXTAH
1
提取的 8 位至 32 位有符号加法
SXTAB
1
双路提取 8 位至 16 位有符号加法
SXTAB16
1
提取的 16 位至 32 位有符号加法
SXTAH
1
其他数据处理根据 GE 位选择字节
SEL
1
四通道 8 位无符号绝对差值的无符号和
USAD8
1
32 位累加时四路 8 位无符号绝对差的无符号和
USADA8
1
加法两路 16 位无符号饱和加法
UQADD16
1
四路 8 位无符号饱和加法
UQADD8
1
Q 设置饱和加法
QADD
1
Q 设置两路 16 位饱和加法
QADD16
1
Q 设置四路 8 位饱和加法
QADD8
1
Q 设置饱和倍乘和加法
QDADD
1
GE 设置四路 8 位有符号加法
SADD8
1
GE 设置双 16 位有符号加法
SADD16
1
两路 16 位有符号加法,结果减半
SHADD16
1
四路 8 位有符号加法,结果减半
SHADD8
1
GE 设置双 16 位无符号加法
UADD16
1
GE 设置四路 8 位无符号加法
UADD8
1
双 16 位无符号加法,结果减半
UHADD16
1
四路 8 位无符号加法,结果减半
UHADD8
1
减法Q 设置饱和倍减
QDSUB
1
两路 16 位无符号饱和减法
UQSUB16
1
四路 8 位无符号饱和减法
UQSUB8
1
Q 设置饱和减法
QSUB
1
Q 设置两路 16 位饱和减法
QSUB16
1
Q 设置四路 8 位饱和减法
QSUB8
1
两路 16 位有符号减法,结果减半
SHSUB16
1
四路 8 位有符号减法,结果减半
SHSUB8
1
GE 设置两路 16 位有符号减法
SSUB16
1
GE 设置四路 8 位有符号减法
SSUB8
1
两路 16 位无符号减法,结果减半
UHSUB16
1
四路 8 位无符号减法,结果减半
UHSUB8
1
GE 设置两路 16 位无符号减法
USUB16
1
GE 设置四路 8 位无符号减法
USUB8
1
并行加法和减法具有交换的双路 16 位无符号饱和加法和减法
UQASX
1
具有交换的双路 16 位无符号饱和减法和加法
UQSAX
1
GE 设置带交换的双路 16 位加法和减法
SASX
1
Q 设置双路 16 位加法并使用交换
QASX
1
Q 设置双路 16 位减法与加法(通过交换)
QSAX
1
两路 16 位有符号加法和减法,结果减半
SHASX
1
两路 16 位有符号减法与加法,结果减半
SHSAX
1
GE 设置具有交换功能的双 16 位有符号减法和加法
SSAX
1
GE 设置带交换的双 16 位无符号加法和减法
UASX
1
两路 16 位无符号加法和减法,可实现结果减半和交换
UHASX
1
双 16 位无符号减法与加法,可得到一半的结果和交换
UHSAX
1
GE 设置双路 16 位无符号减法与加法(通过交换)
USAX
1