东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压

Size: px
Start display at page:

Download "东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压"

Transcription

1 32 位 MCU ES8P5086/ES8P5088 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2018 年 9 月 11 日 V1.2 1/278

2 东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压或过流, 从而导致芯片故障或元件退化 具体可参照芯片的数据手册说明 关于芯片的复位东软载波 MCU 芯片具有内部上电复位 对于不同的快速上 / 下电或慢速上 / 下电系统, 内部上电复位电路可能失效, 建议用户使用外部复位 下电复位 看门狗复位等, 确保复位电路正常工作 在系统设计时, 若使用外部复位电路, 建议采用三极管复位电路 RC 复位电路 若不使用外部复位电路, 建议采用复位管脚接电阻到电源, 或采取必要的电源抖动处理电路或其他保护电路 具体可参照芯片的数据手册说明 关于芯片的时钟东软载波 MCU 芯片具有内部和外部时钟源 内部时钟源会随着温度 电压变化而偏移, 可能会影响时钟源精度 ; 外部时钟源采用陶瓷 晶体振荡器电路时, 建议使能起振延时 ; 使用 RC 振荡电路时, 需考虑电容 电阻匹配 ; 采用外部有源晶振或时钟输入时, 需考虑输入高 / 低电平电压 具体可参照芯片的数据手册说明 关于芯片的初始化东软载波 MCU 芯片具有各种内部和外部复位 对于不同的应用系统, 有必要对芯片寄存器 内存 功能模块等进行初始化, 尤其是 I/O 管脚复用功能进行初始化, 避免由于芯片上电以后,I/O 管脚状态的不确定情况发生 关于芯片的管脚东软载波 MCU 芯片具有宽范围的输入管脚电平, 建议用户输入高电平应在 VIHMIN 之上, 低电平应在 VILMAX 之下 避免输入电压介于 VIHMIN 和 VILMAX 之间, 以免波动噪声进入芯片 对于未使用的输入 / 输出管脚, 建议用户设为输入状态, 并通过电阻上拉至电源或下拉至地, 或设置为输出管脚, 输出固定电平并浮空 对未使用的管脚处理因应用系统而异, 具体遵循应用系统的相关规定和说明 关于芯片的 ESD 防护措施东软载波 MCU 芯片具有满足工业级 ESD 标准保护电路 建议用户根据芯片存储 / 应用的环境采取适当静电防护措施 应注意应用环境的湿度 ; 建议避免使用容易产生静电的绝缘体 ; 存放和运输应在抗静电容器 抗静电屏蔽袋或导电材料容器中 ; 包括工作台在内的所有测试和测量工具必须保证接地 ; 操作者应该佩戴静电消除手腕环手套, 不能用手直接接触芯片等 关于芯片的 EFT 防护措施东软载波 MCU 芯片具有满足工业级 EFT 标准的保护电路 当 MCU 芯片应用在 PCB 系统时, 需要遵守 PCB 相关设计要求, 包括电源 地走线 ( 包括数字 / 模拟电源分离, 单 / 多点接地等 ) 复位管脚保护电路 电源和地之间的去耦电容 高低频电路单独分别处理以及单 / 多层板选择等 关于芯片的开发环境东软载波 MCU 芯片具有完整的软 / 硬件开发环境, 并受知识产权保护 选择上海东软载波微电子有限公司或其指定的第三方公司的汇编器 编译器 编程器 硬件仿真器开发环境, 必须遵循与芯片相关的规定和说明 注 : 在产品开发时, 如遇到不清楚的地方, 请通过销售或其它方式与上海东软载波微电子有限公司联系 V1.2 2/278

3 产品订购信息 型号 FLASH RAM I/O Timer RTC UART SPI I2C ADC LVD 封装类型 ES8P5088FLLQ 128KB 24KB 45 ES8P5088FLLP 128KB 24KB 41 ES8P5088FLNK 128KB 24KB 29 ES8P5088FLLK 128KB 24KB 29 ES8P5086FJLK 72KB 16KB 29 ES8P5086FJSK 72KB 16KB bit X 4, 32-bit X 1 16-bit X 4, 32-bit X 1 16-bit X 4, 32-bit X 1 16-bit X 4, 32-bit X 1 16-bit X 4, 32-bit X 1 16-bit X 4, 32-bit X bit 15 LQFP bit 15 LQFP bit 12 QFN bit 14 LQFP bit 14 LQFP bit 13 SOP32 Example: ES8P 5088 F L LQ Package LQ LQFP48 LP LQFP44 NK QFN32 LK LQFP32 SK SOP32 Code Size L 128K Bytes J 72K Bytes Code MEM Type F FLASH Part No. Device Family ES8P 32-Bit MCU based on ARM Cortex-M0 CPU Core 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮编 : support@essemi.com 电话 : 传真 : 网址 : 版权所有 上海东软载波微电子有限公司本资料内容为上海东软载波微电子有限公司在现有数据资料基础上慎重且力求准确无误编制而成, 本资料中所记载的实例以正确的使用方法和标准操作为前提, 使用方在应用该等实例时请充分考虑外部诸条件, 上海东软载波微电子有限公司不担保或确认该等实例在使用方的适用性 适当性或完整性, 上海东软载波微电子有限公司亦不对使用方因使用本资料所有内容而可能或已经带来的风险或后果承担任何法律责任 基于使本资料的内容更加完善等原因, 上海东软载波微电子有限公司未经预告的修改权 使用方如需获得最新的产品信息, 请随时用上述联系方式与上海东软载波微电子有限公司联系 V1.2 3/278

4 版本修改日期更改概要 V 初版发布 修订历史 V V 新增 ES8P5088FLNK QFN32 封装 ; 2. 更新 BOR 模块相关内容 ; 3. 更新睡眠模式的唤醒时间的相关描述 ; 4. 更新 I2C 章节部分内容描述 ; 5. 新增芯片端口输入电平限定范围说明 1. 新增 ES8P5088FLLK LQFP32 封装 ; 2. 增加 LQFP32 封装相关内容说明 ; 3. 更新配置字 CFG_WORD 相关内容 ; 4. 更新 A/D 正负向参考电压选择位说明 ; 5. 更新 ADC 外部参考电压的范围, 不能低于 1.3V@VDD=3.3V,1.8V@VDD=5.0V; 6. 更新 ADC 数据转换时序示意图和备注 Tog > 40us, 添加 ADC 建立时间的描述 V1.2 4/278

5 目录 内容目录 第 1 章 芯片简介 概述 应用领域 结构框图 管脚分配图 pin 管脚封装图 pin 管脚封装图 pin 管脚封装图 管脚说明 管脚说明 管脚对照表 第 2 章 系统控制及操作特性 系统控制保护 概述 特殊功能寄存器 系统电源 结构框图 芯片供电电源 系统复位 概述 结构框图 复位时序图 外部复位 MRSTN 参考 外设模块复位控制 特殊功能寄存器 低电压监测 (LVD) 概述 特殊功能寄存器 系统低功耗操作模式 概述 浅睡眠模式 深度睡眠模式 睡眠模式的唤醒 睡眠模式的唤醒时间 FLASH 存储器等待功能 特殊功能寄存器 系统时钟 概述 结构框图 功能说明 外部时钟 XTAL V1.2 5/278

6 内部高速时钟 HRC 内部低速时钟 LRC 锁相环 PLL 时钟输出 CLKO 外部时钟停振检测 CCM 时钟滤波 CLKFLT 睡眠模式系统状态 浅睡眠模式 深度睡眠模式 特殊功能寄存器 系统时钟应用说明 中断和异常处理 中断和异常 中断和异常向量的分配 中断向量表的重映射 特殊功能寄存器 系统控制块 (SCB) 概述 特殊功能寄存器 系统定时器 (SYSTICK) 概述 特殊功能寄存器 配置字软件控制 定时器 (T16N/T32N) 同步启动关停控制 概述 特殊功能寄存器 模块调试相关配置 概述 特殊功能寄存器 第 3 章 存储器资源 内部存储器地址映射 FLASH 存储器 信息区 FLASH 芯片配置字 芯片唯一识别码 程序区 FLASH FLASH 加密 自编程操作 (IAP) IAP 概述 IAP 操作流程 IAP 自编程硬件固化模块 特殊功能寄存器 数据存储器 (SRAM) SRAM 地址映射 V1.2 6/278

7 SRAM 位带扩展 外设寄存器 外设寄存器映射 外设寄存器位带扩展 系统控制单元 (SCU) 寄存器列表 CRC 寄存器列表 GPIO 寄存器列表 IAP 寄存器列表 ADC 寄存器列表 RTC 寄存器列表 IWDT 寄存器列表 WWDT 寄存器列表 T16N0/T16N1/T16N2/T16N3 寄存器列表 T32N0 寄存器列表 UART0/UART1/UART2/UART3/UART4/UART5 寄存器列表 SPI0 寄存器列表 I2C0 寄存器列表 AES 寄存器列表 内核寄存器 系统定时器 (SYSTICK) 寄存器列表 中断控制器 (NVIC) 寄存器列表 系统控制块 (SCB) 寄存器列表 第 4 章 输入输出端口 (GPIO) 概述 结构框图 外部端口中断 外部按键中断 Buzz 输出 特殊功能寄存器 第 5 章 外设 定时器 / 计数器 位定时器 / 计数器 T16N 概述 结构框图 T16N 定时 / 计数功能 T16N 输入捕捉功能 T16N 输出调制功能 特殊功能寄存器 T16N 应用说明 位定时器 / 计数器 T32N(T32N0) 概述 结构框图 T32N 定时 / 计数功能 T32N 输入捕捉功能 V1.2 7/278

8 T32N 输出调制功能 特殊功能寄存器 T32N 应用说明 通用异步接收 / 发送器 概述 结构框图 UART 数据格式 UART 异步发送器 UART 异步接收器 UART 发送调制功能 UART 红外唤醒功能 UART 端口极性 UART 单线半双工通信 特殊功能寄存器 UART 应用说明 SPI 同步串口通讯控制器 (SPI0) 概述 结构框图 SPI 通讯模式 SPI 数据格式 SPI 帧位宽 SPI 同步发送器 SPI 同步接收器 SPI 通讯控制 SPI 延迟接收功能 SPI 数据帧发送间隔功能 特殊功能寄存器 SPI 应用说明 I2C 总线串口通讯控制器 (I2C0) 概述 结构框图 I2C 总线基本原理 I2C 通讯协议 I2C 数据传输格式 I2C 通讯端口配置 I2C 时基定时器与 16 倍速采样器 I2C 通讯发送器 I2C 通讯接收器 I2C 通讯控制 I2C 起始位 I2C 停止位 I2C 应答延迟功能 I2C 数据帧传输间隔功能 I2C 时钟线自动下拉等待请求功能 V1.2 8/278

9 I2C 自动发送未应答功能 特殊功能寄存器 I2C 应用说明 模数转换器 (ADC) 概述 结构框图 ADC 基本配置 ADC 数据转换 自动转换比较功能 特殊功能寄存器 实时时钟 (RTC) 概述 RTC 写保护 时间日期设置 RTC 中断源 特殊功能寄存器 RTC 应用说明 硬件独立看门狗 (IWDT) 概述 特殊功能寄存器 窗口看门狗 (WWDT) 概述 特殊功能寄存器 循环冗余校验 (CRC) 概述 运用说明 CRC 硬件固化模块 特殊功能寄存器 数据加密 / 解密 (AES) 概述 加密 / 解密流程 特殊功能寄存器 第 6 章 芯片封装外观尺寸图 pin 封装外观尺寸图 pin 封装外观尺寸图 pin 封装外观尺寸图 附录 1 Cortex-M0 内核描述 附录 1. 1 Cortex-M0 指令集 附录 1. 2 Cortex-M0 内核寄存器 附录 通用寄存器 R0~R 附录 堆栈指针寄存器 SP(R13) 附录 链接寄存器 LR(R14) 附录 程序计数器 PC(R15) 附录 程序状态寄存器 xpsr V1.2 9/278

10 附录 异常 / 中断屏蔽寄存器 PRIMASK 附录 控制寄存器 CONTROL 附录 2 电气特性 附录 2. 1 参数特性表 附录 芯片工作条件 附录 芯片特性参数测量方法 附录 芯片功耗特性 附录 芯片 IO 端口特性 附录 芯片系统时钟特性 附录 芯片功能模块特性 附录 2. 2 参数特性图 附录 芯片功耗特性 附录 芯片 IO 端口输入特性 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口除外 ) 附录 芯片 IO 端口输出特性 ( 增强驱动,PA6~PA13 端口除外 ) 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口 ) 附录 芯片 IO 端口输出特性 ( 大电流驱动,PA6~PA13 端口 ) 附录 3 编程调试接口 附录 3. 1 概述 附录 3. 2 ISP 编程接口 附录 通信协议 附录 操作流程 附录 3. 3 SWD 调试接口 附录 概述 附录 SWD 特性 V1.2 10/278

11 图目录图 1-1 ES8P5086/ES8P5088 结构框图 图 1-2 ES8P5088 LQFP48 封装顶视图 图 1-3 ES8P5088 LQFP44 封装顶视图 图 1-4 ES8P5088 QFN32 封装顶视图 图 1-5 ES8P5088 LQFP32 封装顶视图 图 1-6 ES8P5086 LQFP32 封装顶视图 图 1-7 ES8P5086 SOP32 封装顶视图 图 2-1 系统电源结构框图 图 2-2 系统复位电路结构框图 图 2-3 上电复位时序示意图 图 2-4 掉电复位时序示意图 图 2-5 外部复位时序示意图 图 2-6 MRSTN 复位参考电路图 图 2-7 MRSTN 复位参考电路图 图 2-8 系统时钟电路结构框图 图 2-9 XTAL 振荡器电路结构示意图 图 2-10 系统定时器框图 图 3-1 内部存储系统分配示意图 图 3-2 信息区地址映射图 图 3-3 Boot Flash 启动地址分配示意图 图 3-4 IAP 操作请求流程图 图 3-5 IAP 全擦除操作流程图 图 3-6 IAP 页擦除操作流程图 图 3-7 IAP 编程操作流程图 图 3-8 SRAM 映射图 图 3-9 外设存储器分配示意图 图 4-1 IO 端口电流结构图 图 4-2 外部端口中断 PINT0 电路结构示意图 图 4-3 外部按键中断 KINT0 电路结构示意图 图 4-4 Buzz 高电平调制输出波形图 图 4-5 Buzz 低电平调制输出波形图 图 5-1 T16N0 电路结构框图 图 5-2 T16N 计数匹配功能示意图 图 5-3 T16N0 捕捉功能示意图 图 5-4 T16N 输出调制功能示意图 图 5-5 T32N 电路结构框图 图 5-6 T32N 计数匹配功能示意图 图 5-7 T32N 捕捉功能示意图 图 5-8 T32N 输出调制功能示意图 图 5-9 UART 电路结构图 图 5-10 UART 7 位数据格式 图 5-11 UART 8 位数据格式 图 5-12 UART 9 位数据格式 V1.2 11/278

12 图 5-13 UART 发送数据流示意图 图 5-14 UART 发送数据操作流程图示例 图 5-15 UART 接收数据流示意图 图 5-16 UART 接收数据操作流程图示例 图 5-17 高电平调制输出波形图 图 5-18 低电平调制输出波形图 图 5-19 SPI 电路结构框图 图 5-20 SPI 时钟上升沿发送, 下降沿接收波形示意图 图 5-21 SPI 时钟下降沿发送, 上升沿接收波形示意图 图 5-22 SPI 时钟上升沿接收, 下降沿发送波形示意图 图 5-23 SPI 时钟下降沿接收, 上升沿发送波形示意图 图 5-24 SPI 发送数据流示意图 图 5-25 SPI 接收数据流示意图 图 5-26 SPI 延迟接收功能波形示意图 图 5-27 I2C 电路结构框图 图 5-28 I2C 总线通讯协议示意图 图 5-29 I2C 主控器写入从动器数据示意图 图 5-30 I2C 主控器读取从动器数据示意图 图 5-31 开漏输出端口示意图 图 5-32 I2C 总线端口信号的波形示意图 图 5-33 I2C 发送数据流示意图 图 C 接收数据流示意图 图 5-35 I2C 起始位波形图 图 5-36 I2C 自动寻呼波形图 图 5-37 I2C 停止位波形图 图 5-38 I2C 应答延迟功能波形示意图 图 5-39 I2C 数据帧传输间隔功能波形示意图 图 5-40 I2C 时钟线下拉等待波形示意图 图 5-41 ADC 内部结构图 图 5-42 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=0, 软件控制采样 ) 图 5-43 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=1, 硬件控制采样 ) 图 5-44 看门狗时序图 图 5-45 窗口看门狗中断和溢出复位产生时序图 (WWDTWIN 设定为 25%) 图 5-46 错误的喂狗时序图 (WWDTWIN 设定为 25%) 图 5-47 加密 / 解密流程示意图 图 6-1 内核寄存器 图 6-2 堆栈操作示意图 图 6-3 芯片功耗测量连接示意图 图 6-4 芯片 IO 端口输出特性参数测量连接示意图 V1.2 12/278

13 表目录表 1-1 管脚说明 表 1-2 管脚对照表 表 2-1 低功耗模式时钟状态表 表 2-2 异常 / 中断优先级操作类型说明表 表 2-3 异常 / 中断优先级列表 表 2-4 IRQ 分配列表 表 4-1 PINT 选择对应列表 表 4-2 KINT 选择对应列表 表 5-1 I2C 总线端口信号的时序参数列表 表 /24 小时模式对照表 V1.2 13/278

14 第 1 章芯片简介 1. 1 概述 ES8P508x 是一系列基于 ARM Cortex-M0 CPU 内核的高性能低功耗 32 位通用微控制器 内部集成 16 位和 32 位定时器 / 计数器, 实时时钟模块 RTC, 带红外发送调制功能的 UART 模块,SPI 和 I2C 通信模块,128 位 AES 以及用于系统电源监测的 LVD, 分辨率最高为 12 位的可配置 ADC 模块等资源和外设 工作条件 工作电压范围 :2.2V ~ 5.5V 工作温度范围 :-40 ~ 85 ( 工业级 ) 工作主时钟频率 :32KHz,400KHz~48MHz 工作电流 :Ivdd = 4.5mA(@ 内部 HRC 20MHz, 典型值 ) 待机电流 :Ivdd = 5uA( 常温, 典型值 ) 封装 LQFP48/LQFP44/QFN32/LQFP32 封装 (ES8P5088) SOP32/LQFP32 封装 (ES8P5086) 电源 系统电源输入 VDD, 支持工作电压为 5V 或 3.3V 的应用系统 低功耗 LVD 用于监测系统电源掉电和上电, 可选择产生掉电或上电中断 复位 内嵌上电复位电路 POR 内嵌掉电复位电路 BOR 支持外部复位 时钟 外部晶体振荡器可配置, 支持低速振荡器 32KHz 和高速振荡器 1~20MHz, 可配置 为系统时钟源 内部 20MHz RC 振荡器 (HRC) 可配置为系统时钟源, 出厂前已校准 ( 全温度, 全电压范围内频率精度为 ±2%) 内部 32KHz RC 振荡器 (LRC) 作为 WDT 时钟源, 可配置为系统时钟源 支持 PLL 倍频, 时钟源可选择, 最大可倍频至 48MHz, 可配置为系统时钟源 系统上电默认主时钟为 20MHz HRC 时钟 内核 ARM Cortex-M0 32 位嵌入式处理器内核支持 SWD 串行调试接口, 支持 2 个监视点 (watchpoint) 和 4 个断点 (breakpoint) 支持一组 SWD 调试接口内嵌向量中断控制器 NVIC V1.2 14/278

15 支持唤醒中断控制器 WIC NVIC 包含一个不可屏蔽中断 NMI 内置 1 个 SysTick 系统定时器支持单周期 32 位乘法器 硬件独立看门狗 IWDT 时钟源可选择 支持低功耗模式下唤醒 超时计数溢出可选择触发中断或复位 窗口看门狗 WWDT 时钟源可选择, 可用于检测软件的过早或过晚异常 安全可靠, 一旦使能, 只能通过复位关断 可设定喂狗窗口, 喂狗窗口外喂狗将产生复位 存储器 最大 128K 字节 FLASH 存储器 - 72K 字节 FLASH 存储器 (ES8P5086) - 128K 字节 FLASH 存储器 (ES8P5088) - 支持 ISP 在线串行编程 - 支持一组 ISP 编程接口 - 支持 IAP 在应用中编程, 可选取部分区域作为数据存储使用 - 支持 FLASH 全加密的编程代码加密保护 支持 8K 字节 Boot Flash - 通过芯片配置字设置从 Boot Flash 或主程序区启动 最大 24K 字节 SRAM 存储器 - 16K 字节 SRAM 存储器 (ES8P5086) - 24K 字节 SRAM 存储器 (ES8P5088) - SRAM 存储空间及外设寄存器地址空间支持位带 (BIT BAND) 扩展通用 CRC16/32 支持 Flash 数据完整性检查 支持数据通信 CRC 校验 可设定需进行 CRC 校验的 Flash 数据块的起始地址和大小 AES 加密 128 位 AES, 支持数据加密 / 解密 I/O 端口 最多 45 个双向 I/O 端口 (ES8P5088) - PA 端口 (PA0~PA31; 对 PA6 和 PA19, 不同型号的芯片只支持其中一个端口 ) - PB 端口 (PB0~PB13) 最多 29 个双向 I/O 端口 (ES8P5086) - PA 端口 (PA2~PA5,PA7~PA12,PA17~PA22,PA27~PA31)(ES8P5086FJSK) V1.2 15/278

16 - PA 端口 (PA0~PA8,PA10~PA18,PA24~PA25)( ES8P5086FJLK) - PB 端口 (PB0~PB7)(ES8P5086FJSK) - PB 端口 (PB0~PB7,PB11)( ES8P5086FJLK) 支持 8 路外部中断输入, 触发方式可配置, 每个 I/O 端口均可作为外部中断输入源 支持 1 路按键中断输入, 触发方式可配置, 每个 I/O 端口均可作为按键中断输入源 定时器 / 计数器 T16N0:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N1:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N2:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N3:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T32N0:32 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 RTC: 一路 RTC 实时时钟, 时钟源可选择 UART 通信接口 支持 6 路 UART 通信接口 UART0/UART1/UART2/UART3/UART4/UART5 支持全 / 半双工异步通信模式支持单线半双工异步通信模式支持传输波特率可配置支持 4 级发送 / 接收缓冲器支持 7/8/9 位数据格式可配支持奇偶校验功能可配, 支持硬件自动奇偶校验位判断支持接收帧错误标志 溢出标志 奇偶校验错误标志支持数据接收和发送中断支持 PWM 调制输出, 且 PWM 占空比线性可调接收端口支持红外唤醒功能支持 UART 输入输出通讯端口极性可配置 I2C 通信接口 支持 1 路通信接口 I2C0 支持主控和从动模式支持标准 I2C 总线协议, 最高传输速率 400K bit/s 支持 7 位寻址方式约定数据从最高位开始接收 / 发送支持数据接收和发送中断 SCL/SDA 端口支持推挽 / 开漏模式, 开漏时必须使能内部弱上拉或使用外部上拉电阻 SCL 端口支持时钟线自动下拉等待请求功能 V1.2 16/278

17 SPI 通信接口 支持 1 路通信接口 SPI0 支持主控模式和从动模式支持 4 种通信数据格式支持 4 级接收 / 发送缓冲器支持数据接收和发送中断 ADC 模拟数字转换器 支持 8/10/12 位分辨率, 有效精度为 11 位支持外部最多 15 通道模拟输入端支持一路内部 1/4 VDD( 或 1/3 VDD) 通道输入支持参考电压源可选择支持中断产生支持转换结果自动比较支持定时触发 ADC 转换 大电流驱动端口 8 个 40mA 大电流 ( 灌电流 ) 驱动口 (PA6~PA13) 可用于驱动 1~8 个 8 段式共阳极数码管 RTC 实时时钟 仅 POR 上电复位有效, 支持程序写保护, 有效避免系统干扰对时钟造成的影响采用外部 KHz 晶体振荡器作为精确计时时钟源可进行高精度数字校正, 提供高精度计时时钟调校提供两种时间精度, 调校范围为 ±384ppm( 或 ±128ppm), 可实现最大时间精度为 ±1.5 ppm( 或 ±0.5ppm) 时间计数 ( 实现小时 分钟和秒 ) 和日历计数 ( 实现年 月 日和星期 ), BCD 格式提供 5 个可编程定时中断提供 2 个可编程日历闹钟提供一路可配置时钟输出自动闰年识别, 有效期到 2099 年 12 小时和 24 小时模式设置可选低功耗设计 : 工作电压为 VDD=5.0V 时模块工作电流典型值为 0.5μA 1. 2 应用领域 本芯片可用于家电, 小家电以及工业控制仪表等领域 V1.2 17/278

18 1. 3 结构框图 Memory 8KB Boot Loader Clock Reset Interrupt SCU 128-bit AES IWDT X 1 72KB/128KB FLASH CORTEX-M0 AHB Peripherals WWDT X 1 16KB/24KB SRAM GPIO X45 (Max.) APB RTC X 1 AHB Lite AHB-APB Bridge APB 12-bit ADC X 15ch CRC32/16 X1 16Bit Timer X 4 32Bit Timer X 1 UART X 6 I2C X 1 SPI X 1 图 1-1 ES8P5086/ES8P5088 结构框图 V1.2 18/278

19 CLKO1/RXD0/T16N0_1/PA20 T32N0_0/T16N3_0/RTCO/PA21 T32N0_1/T16N3_1/TXD0/PA22 BUZ/RXD0/PA23 MISO0/RXD1/T16N1_1/PA25 SCK0/T16N3_0/PA26 TXD2/NSS0/T16N3_1/PA27 RXD2/T16N2_0/PA28 TXD3/T16N2_1/PA29 SDA0/RXD3/T16N0_0/PA30 PA9/TXD0/T16N1_1/CLKO0/AIN10/AVREFN PA8/RXD0/T16N1_0/AIN9/ISDA PA7/T16N0_1/AIN8/TXD1/ISCK PA6/T16N0_0/RXD1 PA5/SDA0/AIN6/TXD2 PA4/SCL0/AIN5/RXD2 PA3/T32N0_1/AIN4/TXD3/TXD5 PA2/T32N0_0/AIN3/RXD3/RXD5 PA1/BUZ/T16N3_1/TXD4 PA0/BUZ/T16N3_0/RXD4 ES8P5086/ES8P5088 数据手册 1. 4 管脚分配图 pin 管脚封装图 SCL0/BUZ/T16N0_1/PA31 MOSI0/TXD1/T16N1_0/PA24 T32N0_0/RXD0/PB0 T32N0_1/TXD0/PB1 T32N0_0/RXD1/T16N3_0/PB2 T32N0_1/TXD1/T16N3_1/PB3 T16N0_0/SCL0/NSS0/PB4 AIN0/T16N0_1/SDA0/SCK0/PB5 AIN1/RXD2/T16N1_0/MISO0/PB6 AIN2/TXD2/T16N1_1/MOSI0/PB7 RXD3/T16N2_0/PB8 BUZ/TXD3/T16N2_1/PB9 RXD4/PB10 TXD4/PB ES8P5088FLLQ MRSTN PA18/RXD1/T16N1_1/SDA0/OSC1O PA17/TXD1/T16N1_0/OSC1I VSS VDD PA16/RXD2/RXD5/AIN15 PA15/TXD2/TXD5/T16N2_1/AIN14 PA14/T16N2_0/RXD3 PA13/MOSI0/T32N0_1/TXD3 PA12/MISO0/T32N0_0/BUZ/AIN13 PA11/SCK0/T16N2_1/TXD4/AIN12 PA10/NSS0/T16N2_0/RXD4/AIN11/AVREFP PB13/TXD5 PB12/RXD5 图 1-2 ES8P5088 LQFP48 封装顶视图 V1.2 19/278

20 CLKO1/RXD0/T16N0_1/PA20 T32N0_0/T16N3_0/RTCO/PA21 T32N0_1/T16N3_1/TXD0/PA22 BUZ/RXD0/PA23 MOSI0/TXD1/T16N1_0/PA24 MISO0/RXD1/T16N1_1/PA25 SCK0/T16N3_0/PA26 TXD2/NSS0/T16N3_1/PA27 RXD2/T16N2_0/PA28 T32N0_1/TXD0/PB1 T32N0_0/RXD0/PB0 PA10/NSS0/T16N2_0/RXD4/AIN11/AVREFP PA9/TXD0/T16N1_1/CLKO0/AIN10/AVREFN PA8/RXD0/T16N1_0/AIN9/ISDA PA7/T16N0_1/AIN8/TXD1/ISCK MRSTN PA5/SDA0/AIN6/TXD2 PA4/SCL0/AIN5/RXD2 PA3/T32N0_1/AIN4/TXD3/TXD5 PA2/T32N0_0/AIN3/RXD3/RXD5 PA1/BUZ/T16N3_1/TXD4 PA0/BUZ/T16N3_0/RXD4 ES8P5086/ES8P5088 数据手册 pin 管脚封装图 SCL0/BUZ/T16N0_1/PA VSS 2 32 VDD 3 31 T32N0_0/RXD1/T16N3_0/PB T32N0_1/TXD1/T16N3_1/PB T16N0_0/SCL0/NSS0/PB4 6 ES8P5088FLLP 28 AIN0/T16N0_1/SDA0/SCK0/PB AIN1/RXD2/T16N1_0/MISO0/PB AIN2/TXD2/T16N1_1/MOSI0/PB RXD3/T16N2_0/PB BUZ/TXD3/T16N2_1/PB PA19/T16N0_0/TXD0/SCL0 PA18/RXD1/T16N1_1/SDA0/OSC1O/CLKO PA17/TXD1/T16N1_0/OSC1I/CLKI VSS VDD PA16/RXD2/RXD5/AN15 PA15/TXD2/TXD5/T16N2_1/AN14 PA14/T16N2_0/RXD3 PA13/MOSI0/T32N0_1/TXD3 PA11/SCK0/T16N2_1/TXD4/AN12 PA12/MISO0/T32N0_0/BUZ/AN13 图 1-3 ES8P5088 LQFP44 封装顶视图 V1.2 20/278

21 pin 管脚封装图 PB1/T32N0_1/TXD0 PB0/T32N0_0/RXD0 PA31/BUZ/T16N0_1/SCL0 T32N0_0/RXD1/T16N3_0/PB T32N0_1/TXD1/T16N3_1/PB3 T16N0_0/SCL0/NSS0/PB4 AIN0/T16N0_1/SDA0/SCK0/PB5 AIN1/RXD2/T16N1_0/MISO0/PB6 ES8P5088FLNK PA19/T16N0_0/TXD0/SCL0 PA18/RXD1/T16N1_1/SDA0/OSC1O AIN2/TXD2/T16N1_1/MOSI0/PB7 PA17/TXD1/T16N1_0/OSC1I/CLKI T32N0_0/AIN3/RXD3/RXD5/PA2 VSS T32N0_1/AIN4/TXD3/TXD5/PA3 VDD PA30/RXD3/T16N0_0/SDA0 PA29/TXD3/T16N2_1 PA28/RXD2/T16N2_0 PA27/TXD2/T16N3_1/NSS0 PA26/T16N3_0/SCK PA22/TXD0/T16N3_1/T32N0_ PA21/T16N3_0/T32N0_0I/RTCO PA20/T16N0_1/RXD0/CLKO PA11/SCK0/T16N2_1/TXD4/AN12 PA10/NSS0/T16N2_0/RXD4/AIN11/AVREFP PA9/TXD0/T16N1_1/CLKO0/AIN10/AVREFN PA8/RXD0/T16N1_0/AIN9/ISDA PA7/T16N0_1/AIN8/TXD1/ISCK MRSTN PA5/SDA0/AIN6/TXD2 PA4/SCL0/AIN5/RXD2 图 1-4 ES8P5088 QFN32 封装顶视图 V1.2 21/278

22 SCK0/T16N2_1/TXD4/AIN12/PA11 MISO0/T32N0_0/BUZ/AIN13/PA12 MOSI0/T32N0_1/TXD3/PA13 T16N2_0/RXD3/PA14 TXD2/TXD5/T16N2_1/AIN14/PA15 RXD2/RXD5/AIN15/PA16 PB7/AIN2/TXD2/T16N1_1/MOSI0 PB6/AIN1/RXD2/T16N1_0/MISO0 PB5/AIN0/T16N0_1/SDA0/SCK0 PB4/T16N0_0/SCL0/NSS0 PB3/T32N0_1/TXD1/T16N3_1 ES8P5086/ES8P5088 数据手册 MISO0/RXD1/T16N1_1/PA25 NSS0/T16N2_0/RXD4/AIN11/AVREFP/PA MRSTN 1 24 PA6/T16N0_0/RXD1 PA18/RXD1/T16N1_1/SDA0/OSC1O 2 23 PA5/SDA0/AIN6/TXD2 PA17/TXD1/T16N1_0/OSC1I 3 22 PA4/SCL0/AIN5/RXD2 VSS PA24/MOSI0/TXD1/T16N1_0 4 5 ES8P5088FLLK PA3/T32N0_1/AIN4/TXD3/TXD5 PA2/T32N0_0/AIN3/RXD3/RXD5 VDD 6 19 PA1/BUZ/T16N3_1/TXD4 PA7/T16N0_1/AIN8/TXD1/ISCK 7 18 PB11/TXD4 PA8/RXD0/T16N1_0/AIN9/ISDA 8 17 PA0/BUZ/T16N3_0/RXD PB2/T32N0_0/RXD1/T16N3_0 PB1/T32N0_1/TXD0 PB0/T32N0_0/RXD0 图 1-5 ES8P5088 LQFP32 封装顶视图 V1.2 22/278

23 SCK0/T16N2_1/TXD4/AIN12/PA11 MISO0/T32N0_0/BUZ/AIN13/PA12 MOSI0/T32N0_1/TXD3/PA13 T16N2_0/RXD3/PA14 TXD2/TXD5/T16N2_1/AIN14/PA15 RXD2/RXD5/AIN15/PA16 PB7/AIN2/TXD2/T16N1_1/MOSI0 PB6/AIN1/RXD2/T16N1_0/MISO0 PB5/AIN0/T16N0_1/SDA0/SCK0 PB4/T16N0_0/SCL0/NSS0 PB3/T32N0_1/TXD1/T16N3_1 ES8P5086/ES8P5088 数据手册 MISO0/RXD1/T16N1_1/PA25 NSS0/T16N2_0/RXD4/AIN11/AVREFP/PA MRSTN 1 24 PA6/T16N0_0/RXD1 PA18/RXD1/T16N1_1/SDA0/OSC1O 2 23 PA5/SDA0/AIN6/TXD2 PA17/TXD1/T16N1_0/OSC1I 3 22 PA4/SCL0/AIN5/RXD2 VSS PA24/MOSI0/TXD1/T16N1_0 4 5 ES8P5086FJLK PA3/T32N0_1/AIN4/TXD3/TXD5 PA2/T32N0_0/AIN3/RXD3/RXD5 VDD 6 19 PA1/BUZ/T16N3_1/TXD4 PA7/T16N0_1/AIN8/TXD1/ISCK 7 18 PB11/TXD4 PA8/RXD0/T16N1_0/AIN9/ISDA 8 17 PA0/BUZ/T16N3_0/RXD PB2/T32N0_0/RXD1/T16N3_0 PB1/T32N0_1/TXD0 PB0/T32N0_0/RXD0 图 1-6 ES8P5086 LQFP32 封装顶视图 V1.2 23/278

24 SCL0/AIN5/RXD2/PA PA3/T32N0_1/AIN4/TXD3/TXD5 SDA0/AIN6/TXD2/PA PA2/T32N0_0/AIN3/RXD3/RXD5 MRSTN 3 30 PB7/AIN2/TXD2/T16N1_1/MOSI0 TXD1/ISCK/T16N0_1/AIN8/PA PB6/AIN1/RXD2/T16N1_0/MISO0 AIN9/ISDA/RXD0/T16N1_0/PA8 CLKO0/AIN10/AVREFN/TXD0/T16N1_1/PA9 AIN11/AVREFP/RXD4/T16N2_0/NSS0/PA10 SCK0/T16N2_1/TXD4/AIN12/PA11 MISO0/T32N0_0/BUZ/AIN13/PA12 VSS TXD1/T16N1_0/OSC1I/PA17 RXD1/T16N1_1/SDA0/OSC1O/PA ES8P5086FJSK PB5/AIN0/T16N0_1/SDA0/SCK0 PB4/T16N0_0/SCL0/NSS0 PB3/T32N0_1/TXD1/T16N3_1 PB2/T32N0_0/RXD1/T16N3_0 PB1/T32N0_1/TXD0 PB0/T32N0_0/RXD0 VDD PA31/BUZ/T16N0_1/SCL0 SCL0/T16N0_0/TXD0/PA PA30/RXD3/T16N0_0/SDA0 CLKO1/T16N0_1/RXD0/PA PA29/TXD3/T16N2_1 RTCO/T16N3_0/T32N0_0/PA PA28/RXD2/T16N2_0 T32N0_1/T16N3_1/TXD0/PA PA27/TXD2/NSS0/T16N3_1 图 1-7 ES8P5086 SOP32 封装顶视图 注 1: 编程 / 调试接口共用 5 线接口配置, 即电源线 VDD 地线 VSS 复位线 MRSTN 时钟线 ISCK 和数据线 ISDA 注 2: 如果产品封装引脚数小于最大引脚数, 则未引出的和未使用的 I/O 管脚都需设置为输出低电平并禁止内部弱上下拉 否则芯片功耗可能会出现异常, 芯片工作稳定性也容易因外界干扰而降低 注 3:ES8P5086FJLK/ ES8P5088FLLK LQFP32 封装的 PA9 端口在封装内部已经接地, 建议用户程序将 ADC 负参考电压设置为外部参考电压 AVREFN( 即 PA9 配置成模拟口, 并关闭其内部弱上下拉 ) 1. 5 管脚说明 管脚说明 管脚名称 输入类型 输出类型 A/D 管脚说明 PA0~PA31 CMOS CMOS D 通用 I/O 端口 PB0~PB13 CMOS CMOS D 通用 I/O 端口 ISCK CMOS D 编程 / 调试串行时钟端口, 位于 PA7 端口 ISDA CMOS CMOS D 编程 / 调试串行数据端口, 位于 PA8 端口 AIN0~AIN6 AIN8~AIN15 A ADC 模拟通道 0~6,8~15 TX0~TX5 CMOS D UART0~UART5 发送输出端口 RX0~RX5 CMOS D UART0~UART5 接收输入端口 SCK0 CMOS D SPI0 时钟输入端口 NSS0 CMOS D SPI0 片选端口 MISO0 CMOS CMOS D SPI0 主控输入 / 从机输出端口 MOSI0 CMOS CMOS D SPI0 主控输出 / 从机输入端口 SCL0 CMOS D I2C 时钟输入端口 SDA0 CMOS CMOS D I2C 数据输入 / 输出端口 V1.2 24/278

25 管脚名称 输入类型 输出类型 A/D 管脚说明 T16N0_0, T16N0_1 T16N1_0, T16N1_1 T16N0/T16N1/T16N2/T16N3 外部时钟输入 / CMOS CMOS D T16N2_0, T16N2_1 捕捉输入 / 调制输出端口 T16N3_0, T16N3_1 T32N0_0, T32N0_1 CMOS CMOS D T32N0 外部时钟输入 / 捕捉输入 / 调制输出端口 AVREFP - - A ADC 外部正向参考电压 AVREFN - - A ADC 外部负向参考电压 MRSTN CMOS - D 芯片主复位, 低电平有效 OSC1I - - A OSC1O - - A 外部晶体振荡器端口 CLKO0 - CMOS D 内部时钟输出 CLKO1 - CMOS D 内部时钟分频输出 RTCO - CMOS D RTC 脉冲输出 VDD - - P 系统主电源 VSS - - P 系统地 表 1-1 管脚说明 注 :A = 模拟端口,D = 数字端口,P = 电源 / 地 ; 管脚对照表 PIN NAME (FUN0(D)) FUN1(D) FUN2(D) FUN3(D) FUN4(A) PB0 - RXD0 T32N0_0 - PB1 - TXD0 T32N0_1 - PB2 T32N0_0 RXD1 T16N3_0 - PB3 T32N0_1 TXD1 T16N3_1 - PB4 T16N0_0 NSS0 SCL0 - PB5 T16N0_1 SCK0 SDA0 AIN0 PB6 T16N1_0 MISO0 RXD2 AIN1 PB7 T16N1_1 MOSI0 TXD2 AIN2 PB8 - RXD3 T16N2_0 - PB9 BUZ TXD3 T16N2_1 - PB10 RXD PB11 TXD PB12 RXD PB13 TXD PA0 RXD4 T16N3_0 BUZ - PA1 TXD4 T16N3_1 BUZ - V1.2 25/278

26 PIN NAME (FUN0(D)) FUN1(D) FUN2(D) FUN3(D) FUN4(A) PA2 RXD5 T32N0_0 RXD3 AIN3 PA3 TXD5 T32N0_1 TXD3 AIN4 PA4 SCL0 RXD2 - AIN5 PA5 SDA0 TXD2 - AIN6 PA6 - T16N0_0 RXD1 - PA7 - T16N0_1 TXD1 AIN8 PA8 RXD0 T16N1_0 - AIN9 PA9 TXD0 T16N1_1 CLKO0 AIN10/ AVREFN PA10 T16N2_0 RXD4 NSS0 AIN11/ AVREFP PA11 T16N2_1 TXD4 SCK0 AIN12 PA12 T32N0_0 BUZ MISO0 AIN13 PA13 T32N0_1 TXD3 MOSI0 - PA14 - RXD3 T16N2_0 - PA15 TXD5 TXD2 T16N2_1 AIN14 PA16 RXD5 RXD2 - AIN15 PA17/OSC1I TXD1 - T16N1_0 - PA18/OSC1O RXD1 SDA0 T16N1_1 - PA19 T16N0_0 SCL0 TXD0 - PA20 T16N0_1 CLKO1 RXD0 - PA21 T32N0_0 RTCO T16N3_0 - PA22 T32N0_1 TXD0 T16N3_1 - PA23 BUZ RXD0 - - PA24 T16N1_0 TXD1 MOSI0 - PA25 T16N1_1 RXD1 MISO0 - PA26 - T16N3_0 SCK0 - PA27 TXD2 T16N3_1 NSS0 - PA28 RXD2 - T16N2_0 - PA29 - TXD3 T16N2_1 - PA30 T16N0_0 RXD3 SDA0 - PA31 T16N0_1 BUZ SCL0 - 表 1-2 管脚对照表 注 1:FUN0(D)/FUN1(D)/ FUN2(D)/FUN3(D) 表示数字端口 ;FUN4(A) 表示模拟端口 注 2: 表中 T16N0_0 表示 T16N0 定时器 / 计数器的 T16N0CK0/T16N0IN0/T16N0OUT0 三个复用输入或输出 下文若未特别说明,T16N0_1/T16N1_0/T16N1_1/T16N2_0/T16N2_1/T16N3_0/T16N3_1 和 T32N0_0/T32N0_1 都指其对应的三个复用输入或输出信号 注 3: 表中的 FUN4(A) 为模拟端口功能, 不通过 GPIO_PAFUNC0/GPIO_PAFUNC1/GPIO_PAFUNC2/ V1.2 26/278

27 GPIO_PAFUNC3/GPIO_PBFUNC0/GPIO_PBFUNC1 控制寄存器选取 注 4: 对于某一确定的封装, 只有一个 MRSTN 端口可用, 且端口只能固定用作 MRSTN 注 5: 支持一组编程 / 调试接口 :ISCK(PA7), ISDA(PA8) 注 6: 对通信功能模块 UART,SPI 和 I2C, 每个通信管脚支持多个 IO 端口可复用, 并可独立设置, 例如 PA28 端口复用为 RXD2 时, 可以设置 PA27,PA15,PA5 和 PB7 端口中的任意一个复用为 TXD2, 作为 UART2 模块的通信管脚 V1.2 27/278

28 第 2 章系统控制及操作特性 2. 1 系统控制保护 概述由于系统控制寄存器的访问操作会影响整个芯片的运行状态, 为避免误操作导致芯片运行不正常, 芯片提供系统设置保护寄存器 修改系统控制单元前, 必须先关闭写保护, 操作完成后应当重新使能写保护, 使芯片安全运行 寄存器列表和基址参见 : 系统控制单元 (SCU) 寄存器列表 特殊功能寄存器 系统设置保护寄存器 (SCU_PROT) 偏移地址 :00 H 复位值 : _ _ _ B PROT - bit31-1 PROT bit0 R 对 SCU_PROT<31:0> 写 0x55AA6996 时, 位 PROT 为 0; 写其它值时位 PROT 为 1 SCU 写保护位 0: 写保护关闭 1: 写保护使能 注 1: 只有以字方式对 SCU_PROT 寄存器写入 0x55AA6996 才能关闭写保护, 其他任何对 SCU_PROT 寄存器的写操作都将使能写保护功能 注 2:SCU_PROT 保护的寄存器为 SCU_NMICON,SCU_PWRC,SCU_FAULTFLAG,SCU_WAKEUPTIME, SCU_MRSTN_SOFT,SCU_DBGHALT,SCU_FLASHWAIT,SCU_SOFTCFG,SCU_LVDCON,SCU_CCM, SCU_PLLLKCON,SCU_SCLKEN0,SCU_SCLKEN1,SCU_PCLKEN0,SCU_PCLKEN1,SCU_PRSTEN0, SCU_PRSTEN1,SCU_TIMEREN,SCU_TIMERDIS,SCU_TBLREMAPEN,SCU_TBLOFF V1.2 28/278

29 2. 2 系统电源 结构框图 ADC 2.2V~5.5V VDD LDO Logic & Memory VSS 图 2-1 系统电源结构框图 芯片供电电源芯片供电电源为 VDD, 与其对应的是芯片的参考地 VSS VDD 给 GPIO 端口 ADC 供电, 内部 LDO 输出电压给数字逻辑,Flash SRAM 等供电 2. 3 系统复位 概述 支持 POR 上电复位 支持 BOR 低电压监测复位 支持 MRSTN 外部端口复位 支持 WDT 看门狗溢出复位 支持 Cortex-M0 调试接口软件复位 结构框图 MCU_CLK CFG_PWRTEB 掉电检测 上电检测 BOR POR 系RESET 统1024 个系统 140ms 上电定时器 MRSTN WDT_RST 主时钟周期定时器 POR/BOR 复稳定等待定 位时器 Cortex-M0 软件复位 图 2-2 系统复位电路结构框图 注 1: 对 140ms 上电延时定时器, 可通过配置位 CFG_PWRTEB 来配置是否使能, 但当芯片发生 BOR 掉电复位后, 该延时固定为使能, 与配置位 CFG_PWRTEB 无关 推荐用户设置为上电延时使能 (CFG_PWRTEB=0), V1.2 29/278

30 只有在应用系统特别要求芯片上电后快速进入工作状态, 并且系统供电电源稳定可靠的条件下, 才可考虑禁止上电延时 注 2: 芯片上电稳定后, 在工作过程中, 如果发生外部复位,WDT 计数溢出复位, 或软件复位, 则在复位条件撤除后, 芯片会立即退出复位状态, 恢复正常运行状态, 与上图中的各定时器无关 复位时序图以下分别对芯片上电复位 POR, 掉电复位 BOR, 外部复位时序进行说明, 时序图中的 RESET 信号, 为芯片内部产生的复位信号, 高电平有效 Tr 工作电压 VDD 0V RESET Tpwr Tdly Tclk 注 1:VDD 上电时间 Tr < 10ms; 注 2:Tpwr 为芯片内部 LDO 电源稳定时间, 约 40us, 用户不可配置 ; 注 3:Tdly 为上电等待定时时间, 约 140ms, 可通过 CFG_PWRTEB 配置是否使能 ; 注 4:Tclk 为系统时钟稳定时间, 约 1024 个系统主时钟周期, 用户不可配置 图 2-3 上电复位时序示意图 VDD Tflt 工作电压低电压检测阈值 0V RESET Tdly Tclk 注 1:TFlt 为电压跌落的滤波时间, 约 30~250us, 可通过寄存器 BORFLT(SCU_SOFTCFG<7:5>) 配置 ; 注 2:Tdly 为上电等待定时时间, 约 140ms, 用户不可配置 ; 注 3:Tclk 为系统时钟稳定时间, 约 1024 个系统主时钟周期, 用户不可配置 图 2-4 掉电复位时序示意图 工作电压 VDD 0V MRSTN RESET Tflt 注 1:Tflt 为外部复位信号滤波时间, 约 250us, 用户不可配置 ; 注 2: 为确保芯片外部复位有效, 推荐 MRSTN 复位电平时间大于 500us 图 2-5 外部复位时序示意图 V1.2 30/278

31 外部复位 MRSTN 参考 VDD D1 DIODE R1 R2 MRSTN 管脚 C1 图 2-6 MRSTN 复位参考电路图 1 注 : 采用 RC 复位, 其中 47KΩ R1 100KΩ, 电容 C1=(0.1μF),R2 为限流电阻,0.1KΩ R2 1KΩ 注 2: 对 MRSTN 复位管脚, 芯片内部固定集成了约 40K 欧姆的上拉电阻, 可以省去上图中的电阻 R1 VDD VDD R1 Q1 PNP R4 MRSTN 管脚 R2 R3 C1 图 2-7 MRSTN 复位参考电路图 2 注 : 采用 PNP 三极管复位, 通过 R1(2KΩ) 和 R2(10KΩ) 分压作为基极输入, 发射极接 VDD, 集电极一路通过 R3(20KΩ) 接地, 另一路通过 R4(1KΩ) 和 C1(0.1μF) 接地,C1 另一端作为 MRSTN 输入 外设模块复位控制每个外设模块可单独复位, 对外设复位控制寄存器 SCU_PRSTEN0/SCU_PRSTEN1 的某外设的对应位写入 1, 会产生两个 PCLK 周期长度的该外设复位 用户可在使用某一外设模块之前, 使用外设复位控制寄存器对其复位初始化, 防止状态不确定引起外设工作错误 V1.2 31/278

32 特殊功能寄存器 复位寄存器 (SCU_PWRC) 偏移地址 :08 H 复位值 : _ _00000xxx_xxxxxxxx B SOFT_ MRST IWDTR WWD BOR POR POR POR RSTF F STF TRST F RSTF RCF F F - bit SOFT_RSTF bit7 R/W 软件复位标志位 0: 无软件复位 1: 有软件复位 MRSTF bit6 R/W MRSTN 复位标志位 0: 无 MRSTN 复位 1: 有 MRSTN 复位 IWDTRSTF bit5 R/W IWDT 复位标志位 0: 无 IWDT 复位 1: 有 IWDT 复位 WWDTRSTF bit4 R/W WWDT 复位标志位 0: 无 WWDT 复位 1: 有 WWDT 复位 BORF bit3 R/W BOR 复位标志位 0: 无 BOR 复位 1: 有 BOR 复位 PORRSTF bit2 R/W PORRST 复位标志位 ( 内部测试用, 用户无需关心此位 ) 0: 无 PORRST 复位 1: 有 PORRST 复位 PORRCF bit1 R/W PORRC 复位标志位 0: 无 PORRC 复位 1: 有 PORRC 复位 PORF bit0 R/W POR 复位标志位 0: 无 POR 复位 1: 有 POR 复位 注 1: 对 SCU_PWRC 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 标志位 PORRCF 和 PORF 任意一个为 1 时, 均表示芯片发生了上电复位 注 3: 上电后用户必须先对标志位 PORRSTF 作清零操作, 否则即使发生 bit3~bit7 对应的复位事件, 也无法置起 bit3~bit7 标志 V1.2 32/278

33 外设复位控制寄存器 0(SCU_PRSTEN0) 偏移地址 :50 H 复位值 : _ _ _ B AES_RS WWDT_RS IWDT_RS 保 RTC_RS ADC_RS CRC_RS IAP_RS GPIO_RS 保 T T T 留 T T T T T 留 - bit AES_RST bit 9 R/W AES 复位使能位 0: 无复位 1: 使能复位 WWDT_RST bit 8 R/W WWDT 复位使能位 0: 无复位 1: 使能复位 IWDT_RST bit 7 R/W IWDT 复位使能位 0: 无复位 1: 使能复位 - bit RTC_RST bit 5 R/W RTC 复位使能位 0: 无复位 1: 使能复位 ADC_RST bit 4 R/W ADC 复位使能位 0: 无复位 1: 使能复位 CRC_RST bit 3 R/W CRC 复位使能位 0: 无复位 1: 使能复位 IAP_RST bit 2 R/W FLASH_IAP 复位使能位 0: 无复位 1: 使能复位 GPIO_RST bit 1 R/W GPIO 复位使能位 0: 无复位 1: 使能复位 - bit 注 1: 对 SCU_PRSTEN0 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2:SCU_PRSTEN0 寄存器中的各个复位使能位, 写 0 时不会产生复位动作, 每次写 1 时会触发一次复位, 读取时该使能位仍保持为 1, 但不会继续触发复位, 直到该使能位被再次写 1 V1.2 33/278

34 外设复位控制寄存器 1(SCU_PRSTEN1) 偏移地址 :54 H 复位值 : _ _ _ B I2C0_ SPI0_R UART5_ UART4 UART3_RST UART2_RS UART1 UART0 RST ST RST _RST T _RST _RST T32N0_ T16N3_ T16N2_ T16N1_ T16N0_ RST RST RST RST RST - bit I2C0 复位使能位 I2C0_RST bit28 R/W 0: 无复位 1: 使能复位 - bit SPI0 复位使能位 SPI0_RST bit 24 R/W 0: 无复位 1: 使能复位 - bit UART5 复位使能位 UART5_RST bit 21 R/W 0: 无复位 1: 使能复位 UART4 复位使能位 UART4_RST bit 20 R/W 0: 无复位 1: 使能复位 UART3 复位使能位 UART3_RST bit 19 R/W 0: 无复位 1: 使能复位 UART2 复位使能位 UART2_RST bit 18 R/W 0: 无复位 1: 使能复位 UART1 复位使能位 UART1_RST bit 17 R/W 0: 无复位 1: 使能复位 UART0 复位使能位 UART0_RST bit 16 R/W 0: 无复位 1: 使能复位 - bit T32N0 复位使能位 T32N0_RST bit 8 R/W 0: 无复位 1: 使能复位 - bit V1.2 34/278

35 T16N3_RST bit 3 R/W T16N2_RST bit 2 R/W T16N1_RST bit 1 R/W T16N0_RST bit 0 R/W T16N3 复位使能位 0: 无复位 1: 使能复位 T16N2 复位使能位 0: 无复位 1: 使能复位 T16N1 复位使能位 0: 无复位 1: 使能复位 T16N0 复位使能位 0: 无复位 1: 使能复位 注 1: 对 SCU_PRSTEN1 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2:SCU_PRSTEN1 寄存器中的各个复位使能位, 写 0 时不会产生复位动作, 每次写 1 时会触发一次复位, 读取 时该使能位仍保持为 1, 但不会继续触发复位, 直到该使能位被再次写 1 V1.2 35/278

36 2. 4 低电压监测 (LVD) 概述芯片内置 LVD 低电压监测模块, 可监测 VDD 电压模拟通道电压 触发条件可选择掉电触发或上电触发, 触发后产生 LVD 中断标志, 当 LVD 中断使能开启时产生 LVD 中断请求 在浅睡眠和深睡眠模式下此中断可唤醒芯片 特殊功能寄存器 低电压监测控制寄存器 (SCU_LVDCON) 偏移地址 :28 H 复位值 : _ _ _ B LVDO IFS<2:0> IE IF VS<3:0> FLTEN EN bit31-16 LVDO bit15 R LVD 输出状态位 0: 被监测电压高于电压阈值 1: 被监测电压低于电压阈值 bit14-13 IFS<2:0> bit12-10 R/W LVD 中断标志产生模式选择位 000:LVDO 上升沿产生中断 001:LVDO 下降沿产生中断 010:LVDO 高电平产生中断 011:LVDO 低电平产生中断 1xx:LVDO 变化 ( 上升或下降沿 ) 产生中断 IE bit9 R/W LVD 中断使能位 1: 使能 IF bit8 R/W LVD 中断标志位 0: 未发生 LVD 触发事件 1: 发生 LVD 触发事件边沿模式产生中断标志时, 可以写 1 清除标志 ; 电平模式产生中断标志时, 该标志只读, 触发电平消失后, 中断标志自动清零 VS<3:0> bit7-4 R/W LVD 触发电压 0000:2.0V 0001:2.1V 0010:2.2V 0011:2.4V 0100:2.6V V1.2 36/278

37 0101:2.8V 0110:3.0V 0111:3.6V 1000:4.0V 1001:4.6V 1010:2.3V 1011,1100,1101,1110,1111: bit3-2 FLTEN bit1 R/W LVD 滤波使能位 1: 使能 EN bit0 R/W LVD 使能位 1: 使能 注 1: 对 SCU_LVDCON 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 对 LVD 滤波使能位 FLTEN, 需根据实际芯片的工作电源和环境, 及应用系统的具体要求进行设置, 当 LVD 滤波使能时, 会滤除短暂的电源电压抖动, 但也会降低 LVD 电路对电源波动的反应敏感度 V1.2 37/278

38 2. 5 系统低功耗操作模式 概述 配置外设时钟控制寄存器 SCU_PCLKEN, 可分别关闭芯片各个外设功能模块电路的时钟, 使该部分电路功耗降到最低 通过 WFI 指令, 可使芯片进入休眠状态, 配置 SCB_SCR 寄存器的 SLEEPDEEP 位, 可 选择休眠状态为浅睡眠模式或深度睡眠模式 芯片进入休眠状态后, 所有 I/O 端口将保持进入休眠前的状态 为了降低功耗, 所有 I/O 端口都应保持为高电平或低电平, 同时避免输入端口悬空而产生漏电流, 可通过弱上拉或 下拉将悬空的输入端口固定为高电平或低电平 如果产品封装引脚数小于最大引脚数, 则 未引出的和未使用的 I/O 管脚都需设置为输出低电平并禁止内部弱上下拉 芯片进入休眠状态后, 时钟工作状态参考下表 : 时钟 浅睡眠模式 深度睡眠模式 XTAL 工作 ( 若 XTAL_EN=1) 工作 ( 若 XTAL_EN=1 且 MOSC_EN=1) HRC 工作 ( 若 HRC_EN=1) 工作 ( 若 HRC_EN=1 且 MOSC_EN=1) LRC 工作 工作 表 2-1 低功耗模式时钟状态表 浅睡眠模式在浅睡眠模式下, 芯片内核时钟停止, 指令停止运行 可通过复位或中断唤醒浅睡眠模式 芯片进入浅睡眠模式的步骤如下 : 1) 配置休眠状态选择位 SLEEPDEEP=0; 2) 运行等待中断 (WFI) 指令, 进入睡眠模式 在浅睡眠模式下外设功能模块继续运行, 并可能产生中断使内核处理器恢复运行 浅睡眠模式下不访问存储器系统, 相关控制器和内部总线 在浅睡眠模式下, 内核处理器的状态和寄存器, 外设寄存器和内部 SRAM 的值都会保持, 端口的逻辑电平也会保持睡眠前的状态 深度睡眠模式在深度睡眠模式下, 芯片内核时钟停止, 指令停止运行 可通过复位或中断唤醒深度睡眠模式 芯片进入深度睡眠模式的步骤如下 : 1) 配置休眠状态选择位 SLEEPDEEP=1; 2) 运行等待中断 (WFI) 指令, 进入深度睡眠模式 在深度睡眠模式下, 外设时钟 PCLK 停止, 使用 PCLK 或其分频时钟作为时钟源的外设功能模块都停止工作, 其它使用内部低速时钟 LRC 或外部时钟 XTAL 作为时钟源的外设功能模块可正常工作 深度睡眠模式下不访问存储器系统, 相关控制器和内部总线 在深度睡眠模式下, 内核处理器的状态和寄存器, 外设寄存器和内部 SRAM 的值都会保 V1.2 38/278

39 持, 端口的逻辑电平也会保持深度睡眠前的状态 在进入深度睡眠模式前, 通过系统唤醒时间控制寄存器 (SCU_WAKEUPTIME) 的深度睡眠模式时钟控制位 (MOSC_EN) 来选择主晶振 XTAL PLL HRC 和时钟滤波器 CLKFLT 等时钟模块是否关闭 选择时钟模块关闭时 ( 即 MOSC_EN=0), 可降低深度睡眠模式下系统的功耗, 但同时也增大了唤醒时所需要的时间 睡眠模式的唤醒芯片可通过以下事件从睡眠状态唤醒, 并执行下一条指令或进入中断处理程序 如果是中断唤醒且该中断已使能, 则唤醒后立即进入中断处理程序 浅睡眠模式唤醒 - 所有中断均可以唤醒浅睡眠模式 - 芯片复位唤醒浅睡眠模式 深度睡眠模式唤醒 - 外部端口中断 PINTx 可唤醒深度睡眠模式 - 外部端口中断 KINT 可唤醒深度睡眠模式 - RTC 中断可唤醒深度睡眠模式 - LVD 中断可唤醒深度睡眠模式 - WDT 中断可唤醒深度睡眠模式 ( 工作于 LRC 时钟源 ) - ADC 中断可唤醒深度睡眠模式 ( 工作于 LRC 时钟源 ) - 芯片复位可唤醒深度睡眠模式 睡眠模式的唤醒时间芯片深度睡眠模式的唤醒时间, 包括系统时钟稳定时间和内部 LDO 电压稳定时间, 具体的唤醒时间, 与系统时钟源和深度睡眠模式下是否使能系统时钟有关 内部 HRC 时钟的起振稳定时间约为 80us, 外部时钟 XTAL 16MHz 振荡器的起振稳定时间约为 5ms, 外部 XTAL 32KHz 的起振稳定时间约为 1.2 秒 内部 HRC 时钟的稳定时间可软件设置 :80us+Tpclk*WAKEUPTIME( 其中 Tpclk 为系统时钟周期,WAKEUPTIME 为唤醒时间控制位 WAKEUPTIME<11:0>), 推荐 HRC 时钟的稳定时间需设置为大于 90us, 否则芯片唤醒后有可能工作异常 内部 LDO 电压稳定时间, 芯片硬件固定约为 120us, 不可软件设置 例如使用内部 HRC 时钟作为系统时钟时 : 时钟控制位 MOSC_EN=0 时, 深度睡眠模式的唤醒时间最短约为 90us+120us=210us; 时钟控制位 MOSC_EN=1 时, 深度睡眠模式的唤醒时间最短约为 120us 浅睡眠模式无唤醒时间, 与 MOSC_EN 和 WAKEUPTIME 的设置无关, 有唤醒事件时, 芯片立即被唤醒并开始执行程序 FLASH 存储器等待功能 FLASH 存储器的访问频率对芯片功耗影响较大, 降低其访问频率, 可降低芯片功耗 可以通过降低系统时钟频率来降低 FLASH 存储器的访问频率, 但这同时也会降低芯片外设模块的工作速率 V1.2 39/278

40 芯片支持增加 FLASH 存储器等待时间的设置, 在不降低系统时钟频率的前提下, 降低 FLASH 存储器取指令或数据的频率, 从而降低芯片整体功耗 FLASH 存储器支持最高 20MHz 的访问频率, 如果系统时钟的频率超过 20MHz, 则需根据 FLASH 访问模式控制位 HS=0( 普通模式 ) 或 HS=1( 快速模式 ) 来设置合适的 FLASH 存储器等待时间, 否则会导致 FLASH 访问错误 配置 SCU_FLASHWAIT 寄存器的 ACCT<3:0>, 可设定 FLASH 访问的等待时间 当配置 HS=0 时, 为 FLASH 普通访问模式,FLASH 访问的等待时间, 与芯片支持的系统时钟最高频率的对应关系描述如下 : ACCT<3:0>=0 时, 芯片系统时钟频率最高可为 20MHz; ACCT<3:0>=1 时, 芯片系统时钟频率最高可为 32MHz; ACCT<3:0>=2~F 时, 芯片系统时钟频率最高可为 48MHz 如上所述, 当芯片系统时钟选为 PLL 倍频时钟 32MHz 时,ACCT<3:0> 不能为 0, 即至少需要 2 个系统时钟周期才能成功访问 FLASH 存储器 ; 当芯片系统时钟选为 PLL 倍频时钟 48MHz 时,ACCT<3:0> 不能为 0 或 1, 即至少需要 3 个系统时钟周期才能成功访问 FLASH 存储器 所以当系统时钟为 32MHz 或 48MHz 时, 需要先设置 ACCT<3:0>, 选择合适的 FALSH 读取时间, 再将系统时钟切换到 32MHz 或 48MHz, 否则会导致芯片指令运行错误 在 FLASH 普通访问模式下, 当系统时钟较高时, 需要加大 ACCT<3:0> 值, 增加等待周期, 实际降低了 CPU 性能 当配置 HS=1 时 ( 高速模式 ), 建议将系统时钟配置为 48MHz, 且 ACCT<3:0> 设为 1, 此时系统性能最佳 ( 注 : 普通模式不支持在系统时钟为 48MHz 时将 ACCT<3:0> 设为 0 或 1) 特殊功能寄存器 FLASH 访问等待时间寄存器 (SCU_FLASHWAIT) 偏移地址 :20 H 复位值 : _ _ _ B HS ACCT<3:0> - bit HS bit4 R/W FLASH 访问模式 0: 普通模式 1: 快速模式 ACCT<3:0> bit3-0 R/W FLASH 读取访问等待时间设置位 0x0:1TCLK 完成 FLASH 读取 0x1:2TCLK 0x2:3TCLK V1.2 40/278

41 ... 0xF:16TCLK 注 1: 对 SCU_FLASHWAIT 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2:TCLK 时钟周期与芯片系统时钟周期相同 2. 6 系统时钟 概述 芯片系统有四个可选时钟源 外部时钟源支持两种模式, 即高速模式 HS/XT( 又称为 HOSC,1~20MHz) 和低速模式 LP( 又称为 LOSC,32KHz) 内部高频 RC 时钟源 HRC, 支持 20MHz 时钟频率, 为系统上电默认时钟 内部低频 RC 时钟源 LRC, 支持约 32KHz 时钟频率 内部集成锁相环电路 PLL, 其时钟源输入可选,PLL 输出时钟频率支持 32MHz 或 48MHz 系统时钟支持 1~128 分频 支持 2 组 IO 端口可输出系统时钟频率 外部时钟停振检测, 支持停振后自动切换至 HRC/LRC 时钟并产生中断 PLL 失锁检测, 支持 PLL 失锁后自动切换至使用 PLL 前的时钟源并产生中断 芯片系统时钟源的选择方式, 见如下描述 : 1. 系统时钟为外部时钟源 XTAL: 在编程界面中设置配置字, 选择高速 HS/XT 模式或低速 LP 模式 ; 在程序软件中设置 SCU_SCLKEN1 寄存器的 XTAL_EN=1, 等待稳定后设置 SCU_SCLKEN0 寄存器的 CLK_SEL=2, 选择外部振荡器时钟 ; 设置 SCU_SCLKEN1 寄存器的 PLL_EN=0 2. 系统时钟为内部时钟源 HRC 20MHz: 为上电默认系统时钟 设置 SCU_SCLKEN0 寄存器的 CLK_SEL=0; 设置 SCU_SCLKEN1 寄存器的 PLL_EN=0 3. 系统时钟为内部时钟源 LRC 32KHz: 设置 SCU_SCLKEN0 寄存器的 CLK_SEL=1; 设置 SCU_SCLKEN1 寄存器的 PLL_EN=0 4. 系统时钟为内部时钟源 PLL 倍频时钟 : 设置 SCU_SCLKEN0 寄存器的 CLK_SEL=0; 设置 SCU_SCLKEN1 寄存器的 PLL_REF_SEL, 选择 PLL 输入时钟源, 设置 PLL_48M_SEL, 选择 PLL 输出时钟频率, 设置 PLL_EN=1; 设置 SCU_SCLKEN0 寄存器的 PLL_MUX=1 V1.2 41/278

42 结构框图 CFG_XTAL[1:0] OSC1I (PA17) OSC1O (PA18) 32KHz, 1~24MHz 外部振荡电路 XTAL OSC_CLK CCM PLL_MUX CLKFLT_BY SYSCLK_DIV<2:0> 2 分频 4 分频 20MHz 内部振荡器 HRC PLL 32/48 MHz 分频器 8 分频 16 分频 32 分频 64 分频 128 分频 SYS_CLK 32KHz 时钟振荡器 LRC WDT_32K WDT 看门狗模块 CLK_SEL[1:0] PLL_REF_SEL/PLL_48M_SEL FCLK SCLK HCLK PCLK DCLK 生成器 DCLK FCLK for Cortex M0 系统定时器 SysTick HCLK AHB 总线,MEMORY PCLK 16 位定时器 T16N0~T16N3 32 位定时器 T32N0 RTC 定时器 RTC 串口通讯 UART0~UART5 模数转换器 ADC I2C 串口通信 I2C0 异步时钟 异步时钟 OSC_CLK LRC_32K OSC_CLK LRC_32K clkflt PLL_EN SPI 串口通信 SPI0 数据加密 / 解密 AES 图 2-8 系统时钟电路结构框图 功能说明 外部时钟 XTAL 可通过 PA18 PA17 管脚外接时钟振荡器 只要外部振荡器模块使能后 (XTAL_EN=1), 对应的 IO 即被用作模拟端口, 数字输入输出功能被禁止 外部时钟源支持两种模式, 即高速模式 HS/XT( 又称为 HOSC, 频率范围为 1~20MHZ) 和低速模式 LP( 又称为 LOSC, 频率约为 32KHZ) 可在编程界面中设置芯片配置字进行选择, 工作在低速模式时, 建议使用 KHZ 晶振 工作在高速模式 HS 时, 建议使用 5~20MHZ 晶振, 工作在高速模式 XT 时, 建议使用 1~4MHz 晶振 当使用外部振荡器时, 需外接匹配电容 XTAL 振荡器电路示意图如下 : V1.2 42/278

43 C1 OSCI XCLK_IN C2 RS OSCO Rf XTAL_EN 图 2-9 XTAL 振荡器电路结构示意图 注 1: 电阻 RS 为可选配置 注 2:C1 和 C2 为晶振匹配电容, 根据所使用的晶振, 电容参考取值范围为 10~20pF, 建议 1~20MHz 晶振匹配 15pf 电容,32.768KHz 晶振匹配 12pf 电容, 具体电容值需根据外接晶振的参数需求确定 芯片上电后系统时钟默认为内部高速时钟 HRC, 需软件配置方可使用外部时钟 XTAL 详情可参考外部时钟操作例程 当 MOSC_EN=0, 芯片进入深度睡眠模式时,XTAL 时钟振荡器会自动关闭, 被唤醒后,XTAL 时钟振荡器会自动打开 ; 当 MOSC_EN=1, 芯片进入深度睡眠模式时,XTAL 时钟振荡器不会关闭 当系统时钟选择为外部时钟 XTAL, 在芯片正常工作时, 不建议关闭 XTAL 时钟振荡器 (XTAL_EN=0), 否则系统时钟会自动切换至内部 HRC 或 LRC 时钟 ( 当 XTAL 为 HS 模式时, 切换至内部 HRC 时钟, 当 XTAL 为 XT/LP 模式时, 切换至内部 LRC 时钟 ) 可通过寄存器位 XTAL_LP, 选择外部时钟振荡器的功耗模式, 该选择位仅在外部时钟处于低速 LP 模式时有效, 在软件检测到外部振荡器稳定后 (XTAL_RDY=1), 可以将振荡器设置为低功耗模式, 降低芯片振荡器电路功耗 当外部时钟为高速 HS 模式时, 振荡器电路会一直保持高功耗模式, 无法设置为低功耗模式 内部高速时钟 HRC 芯片使用 HRC 20MHz 作为内部高速时钟 全温度范围内 HRC 频率精度为 ±2% 芯片上电后系统时钟默认为内部高速时钟 HRC, 可通过寄存器位 HRC_EN 关闭 当系统时钟选择为内部高速时钟 HRC 时, 不建议关闭 HRC 时钟 (HRC_EN=0), 否则系统时钟会自动切换至内部低速 LRC 时钟 在 HRC_EN=1 的情况下, 当 MOSC_EN=0, 芯片进入深度睡眠模式时,HRC 时钟会自动关断, 被唤醒后,HRC 时钟会自动使能 ; 当 MOSC_EN=1, 芯片进入深度睡眠模式时,HRC 时钟不会关闭 内部低速时钟 LRC 芯片支持内部低速时钟 LRC( 频率约为 32KHz), 且无法关闭, 始终保持工作 全温度范围内,LRC 时钟频率精度为 ±40% 内部低速时钟可供芯片主系统 WDT RTC 等模块使用 对于时钟频率精度要求高的模块不建议使用 LRC 作为时钟源 锁相环 PLL PLL 时钟输入可选择 XTAL(32.768KHz 4MHz 8MHz 16MHz 20MHz), HRC (20MHz), LRC(32KHz) PLL 模块工作时, 通过寄存器位 PLL_REF_SEL<2:0> 选择其输入时钟源, 同时需对所选 V1.2 43/278

44 用的 HRC,LRC 或 XTAL 时钟振荡器进行对应的正确设置 ; 通过寄存器位 PLL_48M_SEL 选择 PLL 模块的倍频系数, 得到对应的时钟输出频率, 具体见下面的详细描述 : 当 PLL_REF_SEL=0 或 1 时 :PLL 输入时钟源即为 20MHz HRC 时钟的 5 分频时钟 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=2 时 :PLL 输入时钟源为 LRC 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 1024 倍,PLL 输出时钟为 MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 1536 倍,PLL 输出时钟为 MHz 当 PLL_REF_SEL=3 时 :PLL 输入时钟源为 XTAL 32KHz 当 PLL_48M_SEL=0 时 : PLL 倍频系数为 1024 倍,PLL 输出时钟为 MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 1536 倍,PLL 输出时钟为 MHz 当 PLL_REF_SEL=4 时 :XTAL 时钟振荡器频率必须为 4MHz,PLL 输入时钟源为 XTAL 时钟 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=5 时 :XTAL 时钟振荡器频率必须为 8MHz,PLL 输入时钟源为 XTAL 的 2 分频 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=6 时 :XTAL 时钟振荡器频率必须为 16MHz,PLL 输入时钟源为 XTAL 的 4 分频 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=7 时 :XTAL 时钟振荡器频率必须为 20MHz,PLL 输入时钟源为 XTAL 的 5 分频 当 PLL_48M_SEL=0 时 :PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时 :PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz PLL 模块使用时, 建议关闭 PLL_BYLOCK, 当 PLL 失锁后, 系统会自动切换至使用 PLL 前的时钟源 ( 由 CLK_SEL 决定 ) 并产生中断 如果使能 PLL_BYLOCK, 当 PLL 失锁后, 系统仍使用 PLL 时钟, 可能会导致系统错误 对 PLL 模块, 必须等其所选择的输入时钟源稳定后, 才可以使能 PLL 工作 ( PLL_EN=1), 详情可参考 PLL 操作例程 在 PLL_EN=1 的情况下, 当 MOSC_EN=0, 芯片进入深度睡眠模式时,PLL 会自动关闭, 被唤醒后,PLL 会自动打开 ; 当 MOSC_EN=1, 芯片进入深度睡眠模式时,PLL 不会关闭 时钟输出 CLKO 芯片支持 2 路 IO 端口输出时钟信号 其中 CLKO0 端口支持内部时钟直接输出,CLKO1 端口支持内部系统时钟 128 分频和 HRC 时钟 512 分频输出 通过 SCU_SCLKEN0 寄存器的 CLKOUT0_SEL 和 CLKOUT1_SEL 控制位选取输出的时钟 使用时需配置相应端口的 GPIO_PAFUNC 寄存器, 使能管脚的时钟输出功能 当使用高频时钟输出时, 需使能管脚大电流驱动模式, 以免输出时钟波形严重失真 V1.2 44/278

45 外部时钟停振检测 CCM 外部时钟停振检测模块使能必须同时满足以下条件 : 1. SCU_CCM 寄存器的外部停振检测软件使能位 EN=1, 缺省为使能 2. 时钟源选择为外部时钟 即 SCU_SCLKEN0 寄存器的 CLK_SEL=2 注意 : 1. 当 PLL 时钟源输入使用的是外部时钟, 但是以上 2 个条件有任何一个不满足时, 外部时钟停振检测模块不工作 2. 外部时钟停振检测开始工作后, 当 MOSC_EN=0 时, 芯片进入深睡眠模式会关闭外部时钟源导致外部时钟停振, 此类情况不会触发时钟停振标志 外部时钟停振检测开始工作后, 当检测到外部时钟停振, 若外部振荡器配置为高速 HS 模式, 则系统时钟会自动切换至 HRC 时钟, 否则切换至 LRC 时钟, 同时会置起中断标志位 当芯片进入停振中断后, 需立即操作 CLK_SEL 把系统时钟切换至 LRC 或 HRC, 同时关闭外部时钟使能位 XTAL_EN, 如果使用 PLL, 则还需要关闭 PLL 模块 PLL_MUX 和 PLL_EN 当排查系统问题后, 必须再次通过软件配置使能外部时钟 详情可参考外部时钟停振检测例程 注 : 使能 CCM 检测后,HRC 自动使能, 在实际运用时需考虑由此带来的功耗影响 外部时钟停振检测中断服务例程 INT_CCM PROC PUSH {LR} LDR R0,=SCU_SCLKEN0 LDR R1,[R0] LDR R2, = 0XFFFFFFFC ANDS R1,R1,R2 LDR R2, = 0X ; 系统时钟切换至 LRC ORRS R1,R1,R2 STR R1,[R0] LDR LDR LDR ANDS STR R0,=SCU_SCLKEN1 R1,[R0] R2, = 0XFFFFFFFE ; 关闭外部时钟振荡器 R1,R1,R2 R1,[R0] 时钟滤波 CLKFLT 芯片支持系统时钟分频前滤波 系统时钟滤波使能操作时, 必须先设置 SCU_WAKEUPTIME 寄存器的系统时钟滤波器使能位 CLKFLT_EN=1, 然后设置 SCU_SCLKEN0 寄存器的 CLKFLT_BY 0x55 以选用经滤波的系统时钟 V1.2 45/278

46 当需要关闭滤波时, 必须先旁路 CLKFKT, 即设置 CLKFLT_BY=0x55, 然后再通过 CLKFLT_EN=0 来关闭时钟滤波器 详情可见时钟滤波例程 在 CLKFLT_EN=1 的情况下, 当 MOSC_EN=0, 芯片进入深度睡眠模式时,CLKFLT 会自动关断, 而当深度睡眠唤醒后,CLKFLT 会自动打开 ; 当 MOSC_EN=1, 芯片进入深度睡眠模式时,CLKFLT 不会关断 当系统时钟为 PLL 输出 48MHz 时钟时, 需要设置 CLKFLT_BY<7:0>=0x55, 旁路时钟滤波器 ; 当系统时钟为其它时钟源时, 则需设置 CLKFLT_BY<7:0>=0x00( 或其它非 0x55 的值 ), 不要旁路时钟滤波器 为保证系统工作可靠性, 除系统时钟为 PLL 输出 48MHz 时钟外, 不建议关闭 CLKFLT 睡眠模式系统状态在睡眠模式下, 芯片内核处理器的状态和寄存器, 外设寄存器和内部 SRAM 的值都会保持, 端口的逻辑电平也会保持睡眠前的状态 浅睡眠模式在浅睡眠模式下, 芯片内核时钟停止工作, 外设时钟 PCLK 正常运行, 芯片时钟源正常工作 深度睡眠模式在深度睡眠模式下, 芯片内核时钟停止工作, 外设时钟 PCLK 停止运行 1. MOSC_EN=0 时 : 除 LRC 时钟源正常运行外,XTAL HRC PLL 和 CLKFLT 模块全部关断 外设模块只有选择使用 LRC 作为时钟源的能正常工作, 其它全部停止工作 ( 异步唤醒功能正常工作 ) 当芯片唤醒后,XTAL HRC PLL CLKFLT 自动恢复到睡眠前的状态 2. MOSC_EN=1 时 : 时钟源正常运行,PLL 模块 CLKFLT 正常工作 外设模块只有选择使用 LRC XTAL 作为时钟源的能正常工作, 其它使用 PCLK 或其分频时钟作为时钟源的全部停止工作 ( 异步唤醒功能正常工作 ) 特殊功能寄存器 系统唤醒时间控制寄存器 (SCU_WAKEUPTIME) 偏移地址 :10 H 复位值 : _ _ _ B LDOLP_VOSEL<2:0> FLASHPW_PD CLKFLT_EN MOSC_EN WAKEUPTIME<11:0> - bit LDOHP_SOFT bit19 R/W 在深度睡眠模式下,LDO 功耗模式选择位 V1.2 46/278

47 0: 低功耗模式 1: 高功耗模式 ( 仅供测试使用, 禁止用户设置为 1, 否则会增大深度睡眠模式功耗 ) LDOLP_VOSEL<2:0> bit18-16 R/W 在深度睡眠模式下,LDO 电压输出选择位 000:1.5V 100:1.4V( 推荐使用该档位 ) 010:1.3V 001:1.2V 其他 :1.4V - bit FLASHPW_PD bit14 R/W 睡眠模式下 FLASH 电源控制位 0: 开启 1: 关断 ( 睡眠模式下可关断 FLASH 电源 ) CLKFLT_EN bit13 R/W CLKFLT 系统时钟滤波器使能位 1: 使能 CLKFLT 为系统时钟滤波器, 为保证系统稳定性, 在芯片正常工作时, 需保持使能, 在深度睡眠模式下, 可禁止 CLKFLT, 降低芯片功耗 MOSC_EN bit12 R/W 深度睡眠模式时钟控制位 0: 深度睡眠模式下, 自动关闭 HRC PLL XTAL 和时钟滤波器 CLKFLT 1: 深度睡眠模式下, 使能 HRC PLL XTAL 和时钟滤波器 CLKFLT WAKEUPTIME<11:0> bit11-0 R/W 唤醒时间控制位 T PCLK * WAKEUPTIME 注 1: 对 SCU_WAKEUPTIME 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 深度睡眠模式下, 当 MOSC_EN 为 1 时,HRC PLL XTAL 和时钟滤波器还必须各自的控制位 HRC_EN PLL_EN XTAL_EN 和 CLKFLT_EN 为 1 时, 才实际被使能 注 3: 唤醒时间控制位 WAKEUPTIME<11:0>, 用于设定在深度睡眠模式下, 被关闭的 HRC PLL 和 XTAL 时钟模块, 在芯片被唤醒后, 能够恢复稳定工作的等待时间, 通常保持为默认时间值, 具体根据芯片在应用系统中的实际工作状况进行调整 ; 如果在深度睡眠模式下, 上述各时钟模块仍保持使能, 则唤醒时间可以设置为 0 系统时钟控制寄存器 0(SCU_SCLKEN0) 偏移地址 :40 H 复位值 : _ _ _ B CLKOUT1_SEL<1:0> CLKOUT0_SEL<1:0> CLKFLT_BY<7:0> SYSCLK_DIV PLL_MUX XTAL_LP CLK_SEL<1:0> V1.2 47/278

48 - bit CLKOUT1_SEL<1:0> bit27-26 R/W CLKO1 选择位 0时钟输出 01: 系统时钟输出 (128 分频 ) 10:LRC 时钟输出 11:HRC 时钟输出 (512 分频 ) CLKOUT0_SEL<1:0> bit R/W CLKO0 选择位 0时钟输出 01: 系统时钟输出 10:LRC 时钟输出 11:HRC 时钟输出 CLKFLT_BY<7:0> bit R/W CLKFLT 旁路控制位 0x55:CLKFLT 旁路其它 : 不旁路 CLKFLT CLKFLT 为系统时钟滤波器 当系统时钟为 PLL 输出 48MHz 时, 需旁路 CLKFLT, 否则可能会造成系统时钟有时失效 ; 当系统时钟为其它时钟源时, 则不建议旁路 CLKFLT, 可进一步提升系统工作稳定性 - bit SYSCLK_DIV<2:0> bit14-12 R/W 系统时钟后分频选择位 000:1:1 001:1:2 010:1:4 011:1:8 100:1:16 101:1:32 110:1:64 111:1:128 - bit PLL_MUX bit8 R/W 时钟倍频选择位 0: 使用原始时钟 ( 由 CLK_SEL 选择的时钟 ) 1: 使用倍频时钟 - bit XTAL_LP bit2 R/W 外部 LP 时钟振荡器功耗模式选择位 0: 低功耗 ( 需软件固定设置为 0) 1: 高功耗 ( 仅供测试使用 ) CLK_SEL<1:0> bit1-0 R/W 原始时钟源选择位 00:HRC 时钟 20MHz 01:LRC 时钟 32KHz 10:XTAL 时钟 ( 由配置位 CFG_XTAL 设置为 HS,XT 或 LP 模式 ) 11:HRC 时钟 20MHz V1.2 48/278

49 注 1: 对 SCU_SCLKEN0 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 当系统时钟选择为 PLL 倍频时钟 32MHz 或 48MHz 时, 需要先设置 SCU_FLASHWAIT 寄存器的 ACCT<3:0>, 选择合适的 FALSH 读取时间, 再将系统时钟切换到 32MHz 或 48MHz, 否则会导致芯片指令运行错误 具体参见 FLASH 存储器等待功能 章节的描述 注 3:XTAL_LP 位需在 SCU_SCLKEN1 寄存器的 XTAL_EN 位置 1 使能后, 方可写入 注 4: 当配置字将外部时钟振荡器设置为高速 HS 和 XT 模式时,XTAL_LP 的软件设置无效, 外部振荡器固定为高功耗模式 ; 当将外部时钟振荡器设置为低速 LP 模式时, 必须将 XTAL_LP 软件设置为 0, 使外部振荡器工作在低功耗模式 系统时钟控制寄存器 1(SCU_SCLKEN1) 偏移地址 :44 H 复位值 : _ _ _ B PLL_RDY HRC_RDY XTAL_RDY PLL_BYLOCK PLL_EN PLL_48M_SEL PLL_REF_SEL<2:0> HRC_EN XTAL_EN - bit PLL_RDY bit18 R PLL 时钟振荡模式稳定标志位 0: 不稳定 1: 稳定 HRC_RDY bit17 R 内部高速时钟振荡模式稳定标志位 0: 不稳定 1: 稳定 XTAL_RDY bit16 R 外部时钟振荡模式稳定标志位 0: 不稳定 1: 稳定该标志位仅在寄存器位 XTAL_EN=1 时有效, 作为 XTAL 振荡器工作稳定的标志位 - bit PLL_BYLOCK bit13 R/W PLL 锁频信号旁路控制位 0: 不旁路 1: 旁路 PLL_EN bit12 R/W PLL 倍频电路工作使能位 1: 使能 ( 使能前需确认 PLL_REF_SEL 所选择的时钟源是否稳定 ) PLL_48M_SEL bit11 R/W PLL 输出时钟选择位 0: 输出频率约 32MHz 时钟 1: 输出频率约 48MHZ 时钟 PLL_REF_SEL<2:0> bit10-8 R/W PLL 输入时钟源选择位 ( 仅在 PLL_EN=0 时可写入 ) 00x: 选择 HRC 时钟 010: 选择 LRC 时钟 V1.2 49/278

50 011: 选择 XTAL 时钟 ( 外挂 32768Hz 晶振 ) 100: 选择 XTAL 时钟 ( 外挂 4MHz 晶振 ) 101: 选择 XTAL 时钟 ( 外挂 8MHz 晶振 ) 110: 选择 XTAL 时钟 ( 外挂 16MHz 晶振 ) 111: 选择 XTAL 时钟 ( 外挂 20MHz 晶振 ) ( 硬件会根据 PLL 输入时钟设置自动分频或预处理相关时钟, 软件无需再做处理 ) - bit HRC_EN bit1 R/W 内部高速时钟振荡电路控制位 1: 使能 XTAL_EN bit0 R/W 外部时钟振荡电路控制位 1: 使能 注 1: 对 SCU_SCLKEN1 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 如果配置字 CFG_XTAL 将外部 XTAL 时钟配置为 LP 模式, 则在软件设置 XTAL_EN=1 后, 再由软件设置寄存器 SCU_SCLKEN0 的位 XTAL_LP=0, 将 LP 时钟振荡器设置为低功耗模式 注 3: 因 LRC 时钟频率偏差大, 所以如果对 PLL 输出时钟频率精度要求高时, 请勿设置 PLL_REF_SEL<2:0>=010, 即不要将 PLL 输入时钟源选择为 LRC 时钟 注 4: 在时钟管脚无外接晶振或存在外部干扰的情况下, 外部时钟振荡稳定标志位 XTAL_RDY 可能会被误置 1 外设时钟控制寄存器 (SCU_PCLKEN0) 偏移地址 :48 H 复位值 : _ _ _ B AES_E WWDT_E IWDT_E 保 RTC_E ADC_E CRC_E IAP_E GPIO_E SCU_E N N N 留 N N N N N N - bit AES_EN bit 9 R/W AES 时钟使能位 1: 使能 WWDT_EN bit 8 R/W WWDT 时钟使能位 1: 使能 IWDT_EN bit 7 R/W IWDT 时钟使能位 1: 使能 - bit V1.2 50/278

51 RTC_EN bit 5 R/W ADC_EN bit 4 R/W CRC_EN bit 3 R/W IAP_EN bit 2 R/W GPIO_EN bit 1 R/W SCU_EN bit 0 R/W RTC 时钟使能位 1: 使能 ADC 时钟使能位 1: 使能 CRC 时钟使能位 1: 使能 FLASH_IAP 时钟使能位 1: 使能 GPIO 时钟使能位 1: 使能 SCU 时钟使能位 1: 使能 注 1: 对 SCU_PCLKEN 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 使能某外设时钟之前需要先使能 SCU 时钟, 即 SCU_PCLKEN0 寄存器 SCU_EN 位设置为 1 注 3:IWDT 时钟使能位 IWDT_EN=0 时, 对 IWDT 模块的寄存器读写操作被禁止, 如果 IWDT 时钟源为 PCLK, 则 IWDT 计数器也停止计数, 如果 IWDT 时钟源为 LRC, 则 IWDT 计数器仍保持工作状态, 看门狗定时器功能仍有效 注 4:WWDT 时钟使能位 WWDT_EN=0 时, 对 WWDT 模块的寄存器读写操作被禁止, 如果 WWDT 时钟源为 PCLK, 则 WWDT 计数器也停止计数, 如果 WWDT 时钟源为 LRC, 则 WWDT 计数器仍保持工作状态, 看门狗定时器功能仍有效 注 5: 外设模块时钟关闭后, 与该外设模块对应的所有特殊功能寄存器均保持时钟关闭前的状态, 并且无法进行读写操作 外设时钟控制寄存器 (SCU_PCLKEN1) 偏移地址 :4C H 复位值 : _ _ _ B I2C0 SPI0 UART5 UART4 UART3 UART2 UART1 UART0 T32N0 T16N3 T16N2 T16N1 T16N0 - bit I2C0_EN bit28 R/W I2C0 时钟使能位 1: 使能 - bit V1.2 51/278

52 SPI0_EN bit 24 R/W SPI0 时钟使能位 1: 使能 - bit UART5_EN bit 21 R/W UART5 时钟使能位 1: 使能 UART4_EN bit 20 R/W UART4 时钟使能位 1: 使能 UART3_EN bit 19 R/W UART3 时钟使能位 1: 使能 UART2_EN bit 18 R/W UART2 时钟使能位 1: 使能 UART1_EN bit 17 R/W UART1 时钟使能位 1: 使能 UART0_EN bit 16 R/W UART0 时钟使能位 1: 使能 - bit T32N0_EN bit 8 R/W T32N0 时钟使能位 1: 使能 - bit T16N3_EN bit 3 R/W T16N3 时钟使能位 1: 使能 T16N2_EN bit 2 R/W T16N2 时钟使能位 1: 使能 T16N1_EN bit 1 R/W T16N1 时钟使能位 1: 使能 T16N0_EN bit 0 R/W T16N0 时钟使能位 1: 使能 注 1: 对 SCU_PCLKEN1 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 外设模块时钟关闭后, 与该外设模块对应的所有特殊功能寄存器均保持时钟关闭前的状态, 并且无法进行读 写操作 V1.2 52/278

53 外部时钟检测控制寄存器 (SCU_CCM) 偏移地址 :2C H 复位值 : _ _ _ B FLAG IF IFS<2:0> IE EN - bit FLAG bit16 R CCM 外部时钟停振检测标志位 0: 晶振未停振 1: 晶振停振 - bit IF bit8 R/W CCM 中断标志位 0: 未发生 CCM 触发事件 1: 发生 CCM 触发事件边沿模式产生中断标志时, 可以写 1 清除标志 ; 电平模式产生中断标志时, 该标志只读, 触发电平消失后, 中断标志自动清零 IFS<2:0> bit7-5 R/W CCM 中断标志产生模式选择位 000:CCM_FLAG 上升沿产生中断, 晶振停振 001:CCM_FLAG 下降沿产生中断, 晶振恢复振荡 010:CCM_FLAG 高电平产生中断, 晶振停振 011:CCM_FLAG 低电平产生中断, 晶振恢复振荡 1xx:CCM_FLAG 变化 ( 上升或下降沿 ) 产生中断 IE bit 4 R/W 外部时钟停振中断使能位 0: 中断禁止 1: 中断使能 - bit EN bit0 R/W 外部时钟停振检测使能位 1: 使能 注 : 对 SCU_CCM 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 53/278

54 PLL 锁定中断控制寄存器 (SCU_PLLLKCON) 偏移地址 :30 H 复位值 : _ _ _ B LK_FLAG IF LK_IFS<2:0> IE - bit LK_FLAG bit16 R PLL 锁定检测标志位 0:PLL 未锁定 1:PLL 锁定, 锁频成功 - bit IF bit8 R/W PLL 中断标志位 0: 未发生 PLL 锁定标志触发事件 1: 发生 PLL 锁定标志触发事件边沿模式产生中断标志时, 可以写 1 清除标志 ; 电平模式产生中断标志时, 该标志只读, 触发电平消失后, 中断标志自动清零 - bit7 - - LK_IFS<2:0> bit6-4 R/W PLL 锁定标志产生模式选择位 000:PLL 锁定标志上升沿产生中断, 锁频成功 001:PLL 锁定标志下降沿产生中断, 锁频失败 010:PLL 锁定标志高电平产生中断, 锁频成功 011:PLL 锁定标志低电平产生中断, 锁频失败 1xx:PLL 锁定标志变化 ( 上升或下降沿 ) 产生中断 - bit IE bit0 R/W PLL 锁定中断使能位 1: 使能 注 : 对 SCU_PLLKCON 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 系统时钟应用说明 系统时钟使用方式请参考 应用笔记 V1.2 54/278

55 2. 7 中断和异常处理 中断和异常 Cortex-M0 内核支持嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller), 具体功能如下 : 支持中断嵌套支持中断向量支持中断优先级动态调整支持中断可屏蔽 对 Cortex-M0 内核来说, 打断程序正常执行流程的事件均称之为异常, 中断也是其中一种 异常 为便于理解, 本文档将内核的中断等事件称为异常, 将外设模块的中断称为中断 异常 / 中断优先级操作说明 : 操作类型抢占末尾连锁返回迟来 描述产生条件 :ISR 或线程正在执行时, 出现新的优先级更高的异常 / 中断 操作结果 : 如果当前处于线程状态, 则产生异常 / 中断挂起中断 ; 如果当前处于 ISR 状态, 则产生中断嵌套, 处理器自动保存工作状态并压栈 产生条件 : 当前 ISR 执行结束, 正在返回时, 出现新的优先级更高的异常 / 中断 操作结果 : 跳过出栈操作, 处理新的异常 / 中断 产生条件 : 当前 ISR 执行结束, 正在返回时, 没有出现新的优先级更高的异常 / 中断 操作结果 : 执行出栈操作, 并将处理器状态恢复为进入 ISR 之前的状态 产生条件 : 当前 ISR 执行开始, 正在保存时, 出现新的优先级更高的异常 / 中断 操作结果 : 处理器转去处理优先级更高的异常 / 中断 表 2-2 异常 / 中断优先级操作类型说明表 注 :ISR Interrupt Service Routine, 中断服务程序 异常 / 中断优先级 : 编号 类型 优先级 简介 0 N/A N/A 没有异常在运行 1 复位 -3( 最高 ) 复位 2 NMI -2 不可屏蔽中断 ( 来自外设 NMI 中断输入 ) 3 Hard Fault -1 所有被禁用的 Fault, 都将升级为 Hard Fault 4~10 NA - 11 SVC 可编程控制 系统服务调用 12~13 NA - 14 PendSV 可编程控制 为系统设备而设的 可悬挂请求 15 SysTick 可编程控制 系统定时计数器 16 IRQ0 可编程控制 外设中断 0 V1.2 55/278

56 编号 类型 优先级 简介 17 IRQ1 可编程控制 外设中断 1 47 IRQ31 可编程控制 外设中断 31 表 2-3 异常 / 中断优先级列表 Cortex-M0 支持如下异常 / 中断 : NMI 中断 Hard Fault 异常 SVC 异常 PendSV 异常 SysTick 异常 和 32 个外设中 断请求 IRQ0~IRQ31 其中 Hard Fault 异常 SVC 异常 PendSV 异常 SysTick 异常为 Cortex-M0 内核异常源, 只受 Cortex-M0 内核控制, 而 NMI 中断与 32 个 IRQ 可由芯片配置控制 虽然 Cortex-M0 对 NMI 不支持中断使能位, 但为了防止芯片上电初始化完成前, 误产生 NMI 中断源, 而误进中断, 芯片提供了 NMI 使能位 NMIEN, 可在 NMI 中断源配置完成后 再设置 NMIEN=1 对于 32 个 IRQ,Cortex-M0 内核提供 32 个 IRQ 使能位, 可对每个中断请求独立控制 配置 NVIC_ISER 和 NVIC_ICER 中断控制寄存器可使能或禁止 IRQ 配置 NVIC_PR0~NVIC_PR7 优先级控制寄存器, 可设置 IRQ0~IRQ31 的中断优先级 如 果同时产生多个 IRQ 请求, 则最先响应优先级最高的 IRQ; 如果同时产生多个相同最高优 先级的 IRQ 请求, 则按照中断向量分配表, 最先响应向量表编号最低的 IRQ, 即如果同时 产生中断优先级相同的 IRQ0 与 IRQ1, 则先响应 IRQ 中断和异常向量的分配 编号 类型 功能 说明 0~15 异常 Cortex-M0 内核异常, 包括 NMI 不可屏蔽中断 16 IRQ0 PINT0 外部端口中断 0 17 IRQ1 PINT1 外部端口中断 1 18 IRQ2 PINT2 外部端口中断 2 19 IRQ3 PINT3 外部端口中断 3 20 IRQ4 PINT4 外部端口中断 4 21 IRQ5 PINT5 外部端口中断 5 22 IRQ6 PINT6 外部端口中断 6 23 IRQ7 PINT7 外部端口中断 7 24 IRQ8 T16N0 中断 16 位定时器 / 计数器 0 中断 25 IRQ9 T16N1 中断 16 位定时器 / 计数器 1 中断 26 IRQ10 T16N2 中断 16 位定时器 / 计数器 2 中断 27 IRQ11 T16N3 中断 16 位定时器 / 计数器 3 中断 28 IRQ12 T32N0 中断 32 位定时器 / 计数器 0 中断 29 IRQ13 Reserved 预留 30 IRQ14 IWDT 中断 独立看门狗中断 31 IRQ15 WWDT 中断 窗口看门狗中断 V1.2 56/278

57 编号 类型 功能 说明 32 IRQ16 CCM 中断 停振检测中断 33 IRQ17 PLLLK 中断 PLL 失锁中断 34 IRQ18 LVD 中断 低电压检测中断 35 IRQ19 KINT 外部按键输入中断 36 IRQ20 RTC 中断 实时时钟中断 37 IRQ21 ADC 中断 模数转换中断 38 IRQ22 Reserved 预留 39 IRQ23 AES 中断 AES 加解密中断 40 IRQ24 UART0 中断 UART0 中断 41 IRQ25 UART1 中断 UART1 中断 42 IRQ26 UART2 中断 UART2 中断 43 IRQ27 UART3 中断 UART3 中断 44 IRQ28 UART4 中断 UART4 中断 45 IRQ29 UART5 中断 UART5 中断 46 IRQ30 SPI0 中断 SPI0 中断 47 IRQ31 I2C0 中断 I2C0 中断 表 2-4 IRQ 分配列表 中断向量表的重映射 Cortex-M0 内核本身并不支持中断向量表的重映射, 在 ES8P508x 芯片中有两个特殊功能寄存器 中断向量表重映射使能寄存器 和 中断向量表偏移寄存器, 可以支持中断向量表的重映射 具体的使用方式可参考 Flash 自编程 (IAP) 相关章节的描述 特殊功能寄存器 不可屏蔽中断控制寄存器 (SCU_NMICON) 偏移地址 :04 H 复位值 : _ _ _ B NMICS<4:0> NMIEN - bit NMICS<4:0> bit5-1 R/W NMI 不可屏蔽中断选择位 00000:IRQ :IRQ :IRQ31 NMIEN bit0 R/W NMI 不可屏蔽中断使能位 1: 使能 V1.2 57/278

58 注 : 对 SCU_NMICON 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 中断向量表重映射使能寄存器 (SCU_TBLREMAPEN) 偏移地址 :60 H 复位值 : _ _ _ B EN bit31-1 EN bit0 R/W 中断向量表重映射使能 0: 中断向量表位于 Flash Memory 的 0 地址开始的一段空间 ( 默认状态 ); 目前共支持 48 个向量, 因此, 这段空间的大小为 192 字节 ; 1: 中断向量表位于 中断向量表偏移寄存器 指定的地址开始的 192 字节空间 注 : 对 SCU_TBLREMAPEN 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 中断向量表偏移寄存器 (SCU_TBLOFF) 偏移地址 :64 H 复位值 : _ _ _ B TBLOFF<31:16> TBLOFF<15:8> TBLOFF<7:0> TBLOFF<31:0> bit31-0 R/W 中断向量表偏移地址该寄存器存放重映射后的中断向量表所在的起始地址, 中断向量表重映射使能寄存器 为 1 时有效 高 24 位 TBLOFF<31:8> 可读可写, 但低 8 位 TBLOFF<7:0> 只读, 不可写, 且读取时返回全零 注 1: 该地址为起始地址是有要求的 : 必须先求出系统中共有多少个向量, 再把这个数字向上增大到是 2 的整次幂, 而起始地址必须对齐到后者的边界上 如果一共有 32 个中断, 则共有 32+16( 系统异常 )=48 个向量, 向上增大到 2 的整次幂后值为 64, 因此地址必须能被 64 4=256 整除, 从而合法的起始地址可以是 :0x000, 0x100,0x200 等 注 2: 该寄存器只支持字写入, 不支持字节和半字写入 注 3: 对 SCU_TBLOFF 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 58/278

59 硬件错误标志寄存器 (SCU_FAULTFLAG) 偏移地址 :0C H 复位值 : _ _ _ B FLA FLA FLAG2 FLAG1 FLAG0 G4 G3 - bit FLAG4 bit4 R/W 硬件错误 4 标志位 0: 未发生配置字加载错误 1: 发生配置字加载错误 ( 硬件自动置 1, 软件写 1 清除 ) FLAG3 bit3 R/W 硬件错误 3 标志位 0: 未发生 AHB 在异常区域进行操作 1: 发生 AHB 在异常区域进行操作 ( 硬件自动置 1, 软件写 1 清除 ) FLAG2 bit2 R/W 硬件错误 2 标志位 0: 未发生在异常区域进行写入操作 1: 发生在异常区域进行写入操作 ( 硬件自动置 1, 软件写 1 清除 ) FLAG1 bit1 R/W 硬件错误 1 标志位 0: 未发生在异常区域进行取指操作 1: 发生在异常区域进行取指操作 ( 硬件自动置 1, 软件写 1 清除 ) FLAG0 bit0 R/W 硬件错误 0 标志位 0: 未发生读指令代码为空 1: 发生读指令代码为空 ( 硬件自动置 1, 软件写 1 清除 ) 注 1: 读指令代码为空表示 Cortex-M0 内核读 Flash 程序存储器的指令时, 读到的值为 FFFFFFFFH 注 2: 清除硬件错误标志位时, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 59/278

60 以下 NVIC 寄存器列表及基址参见 : 中断控制器 (NVIC) 寄存器列表 IRQ0~31 置中断请求使能寄存器 (NVIC_ISER) 偏移地址 :00 H 复位值 : _ _ _ B SETENA<31:16> SETENA<15:0> SETENA<31:0> bit31-0 R/W IRQ 使能位 0: 中断使能无效 1: 中断使能有效软件写 1 使能中断请求, 写 0 无效 注 : 对 NVIC_ISER 寄存器中的各 IRQ 使能位, 写 0 无效, 写 1 才使能中断请求 ; 读操作时, 实际是读取 IRQx 中 断使能的状态, 读取的值为 1 表示中断使能有效, 为 0 表示中断使能无效 IRQ0~31 清中断请求使能寄存器 (NVIC_ICER) 偏移地址 :80 H 复位值 : _ _ _ B CLRENA <31:16> CLRENA <15:0> CLRENA<31:0> bit31-0 R/W IRQ 禁止位 0: 中断禁止无效 1: 中断禁止有效软件写 1 禁止中断请求, 写 0 无效 注 : 对 NVIC_ICER 寄存器中的各 IRQ 禁止位, 写 0 无效, 写 1 才禁止中断请求 ; 读操作时, 实际是读取 IRQx 中断禁止的状态, 读取的值为 1 表示中断禁止有效, 为 0 表示中断禁止无效 V1.2 60/278

61 IRQ0~31 置中断挂起寄存器 (NVIC_ISPR) 偏移地址 :100 H 复位值 : _ _ _ B SETPEND <31:16> SETPEND <15:0> SETPEND<31:0> bit31-0 R/W 置 IRQ 挂起位 0: 中断未挂起 1: 中断挂起软件写 1 挂起中断, 写 0 无效 注 : 对 NVIC_ISPR 寄存器中的各 IRQx 挂起位, 写 0 无效, 写 1 才挂起中断 ; 读操作时, 实际是读取 IRQ 中断挂 起的状态, 读取的值为 1 表示中断挂起, 为 0 表示中断未挂起 IRQ0~31 清中断挂起寄存器 (NVIC_ICPR) 偏移地址 :180 H 复位值 : _ _ _ B CLRPEND <31:16> CLRPEND <15:0> CLRPEND<31:0> bit31-0 R/W 清 IRQ 挂起位 0: 中断未挂起 1: 中断挂起软件写 1 清除中断挂起, 写 0 无效 注 : 对 NVIC_ICPR 寄存器中的各 IRQx 清挂起位, 写 0 无效, 写 1 才清除中断挂起 ; 读操作时, 实际是读取 IRQx 中断挂起的状态, 读取的值为 1 表示中断挂起, 为 0 表示中断未挂起 IRQ0~3 优先级控制寄存器 (NVIC_PR0) 偏移地址 :300 H 复位值 : _ _ _ B PRI_3<1:0> PRI_2<1:0> PRI_1<1:0> PRI_0<1:0> V1.2 61/278

62 PRI_3<1:0> bit31-30 R/W IRQ3 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_2<1:0> bit23-22 R/W IRQ2 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_1<1:0> bit15-14 R/W IRQ1 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_0<1:0> bit7-6 R/W IRQ0 优先级设置位 00: 最高优先级 11: 最低优先级 - bit IRQ4~7 优先级控制寄存器 (NVIC_PR1) 偏移地址 :304 H 复位值 : _ _ _ B PRI_7<1:0> PRI_6<1:0> PRI_5<1:0> PRI_4<1:0> PRI_7<1:0> bit31-30 R/W IRQ7 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_6<1:0> bit23-22 R/W IRQ6 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_5<1:0> bit15-14 R/W IRQ5 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_4<1:0> bit7-6 R/W IRQ4 优先级设置位 00: 最高优先级 11: 最低优先级 - bit V1.2 62/278

63 IRQ8~11 优先级控制寄存器 (NVIC_PR2) 偏移地址 :308 H 复位值 : _ _ _ B PRI_11<1:0> PRI_10<1:0> PRI_9<1:0> PRI_8<1:0> PRI_11<1:0> bit31-30 R/W IRQ11 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_10<1:0> bit23-22 R/W IRQ10 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_9<1:0> bit15-14 R/W IRQ9 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_8<1:0> bit7-6 R/W IRQ8 优先级设置位 00: 最高优先级 11: 最低优先级 - bit IRQ12~15 优先级控制寄存器 (NVIC_PR3) 偏移地址 :30C H 复位值 : _ _ _ B PRI_15<1:0> PRI_14<1:0> PRI_13<1:0> PRI_12<1:0> PRI_15<1:0> bit31-30 R/W IRQ15 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_14<1:0> bit23-22 R/W IRQ14 优先级设置位 00: 最高优先级 11: 最低优先级 - bit V1.2 63/278

64 PRI_13<1:0> bit15-14 R/W IRQ13 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_12<1:0> bit7-6 R/W IRQ12 优先级设置位 00: 最高优先级 11: 最低优先级 - bit IRQ16~19 优先级控制寄存器 (NVIC_PR4) 偏移地址 :310 H 复位值 : _ _ _ B PRI_19<1:0> PRI_18<1:0> PRI_17<1:0> PRI_16<1:0> PRI_19<1:0> bit31-30 R/W IRQ19 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_18<1:0> bit23-22 R/W IRQ18 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_17<1:0> bit15-14 R/W IRQ17 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_16<1:0> bit7-6 R/W IRQ16 优先级设置位 00: 最高优先级 11: 最低优先级 - bit V1.2 64/278

65 IRQ20~23 优先级控制寄存器 (NVIC_PR5) 偏移地址 :314 H 复位值 : _ _ _ B PRI_23<1:0> PRI_22<1:0> PRI_21<1:0> PRI_20<1:0> PRI_23<1:0> bit31-30 R/W IRQ23 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_22<1:0> bit23-22 R/W IRQ22 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_21<1:0> bit15-14 R/W IRQ21 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_20<1:0> bit7-6 R/W IRQ20 优先级设置位 00: 最高优先级 11: 最低优先级 - bit IRQ24~27 优先级控制寄存器 (NVIC_PR6) 偏移地址 :318 H 复位值 : _ _ _ B PRI_27<1:0> PRI_26<1:0> PRI_25<1:0> PRI_24<1:0> PRI_27<1:0> bit31-30 R/W IRQ27 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_26<1:0> bit23-22 R/W IRQ26 优先级设置位 00: 最高优先级 11: 最低优先级 - bit V1.2 65/278

66 PRI_25<1:0> bit15-14 R/W IRQ25 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_24<1:0> bit7-6 R/W IRQ24 优先级设置位 00: 最高优先级 11: 最低优先级 - bit IRQ28~31 优先级控制寄存器 (NVIC_PR7) 偏移地址 :31C H 复位值 : _ _ _ B PRI_31<1:0> PRI_30<1:0> PRI_29<1:0> PRI_28<1:0> PRI_31<1:0> bit31-30 R/W IRQ31 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_30<1:0> bit23-22 R/W IRQ30 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_29<1:0> bit15-14 R/W IRQ29 优先级设置位 00: 最高优先级 11: 最低优先级 - bit PRI_28<1:0> bit7-6 R/W IRQ28 优先级设置位 00: 最高优先级 11: 最低优先级 - bit V1.2 66/278

67 2. 8 系统控制块 (SCB) 概述系统控制块提供芯片内核系统实现的状态信息, 并对内核系统工作进行控制 SCB 寄存器列表和基址参见 : 系统控制块 (SCB) 寄存器列表 特殊功能寄存器 SCB_CPUID 寄存器 (SCB_CPUID) 偏移地址 :00 H 复位值 : _ _ _ B IMPLEMENTER<7:0> VARIANT<3:0> CONSTANT<3:0> PARTNO<11:0> REVISION<3:0> IMPLEMENTER<7:0> bit31-24 R VARIANT<3:0> bit23-20 R CONSTANT<3:0> bit19-16 R PARTNO<11:0> bit15-4 R REVISION<3:0> bit3-0 R 处理器实现者编号 0x41,ARM 主版本号 R=0x0, 作为 rnpn 版本编号格式中的主要编号处理器构架 0xC,ARMv6-M 处理器分类号 0xC20,Cortex-M0 次版本号 P=0x0, 作为 rnpn 版本编号格式中的次要编号 中断控制和状态寄存器 (SCB_ICSR) 偏移地址 :04 H 复位值 : _ _ _ B NMIPENDSET PENDSTSET PENDSTCLR ISRPENDDING VECTPENDING<5:4> VECTPENDING<3:0> VECTACTIVE<5:0> NMIPENDSET bit31 R/W NMI 中断挂起控制位 0: 不置 NMI 中断挂起 1: 置 NMI 中断挂起 - bit PENDSTSET bit26 R/W 置 SysTick 异常挂起位 0: 无效 1: 置 SysTick 异常挂起 V1.2 67/278

68 PENDSTCLR bit25 W 清 SysTick 异常挂起位 0: 无效 1: 清除 SysTick 异常挂起 - bit ISRPENDDING bit22 R 中断挂起标志位 0: 无中断挂起 1: 有中断挂起 - bit VECTPENDING bit17-12 R 当前的挂起中, 优先级最高的异常 / 中断号 0x0: 无挂起异常 / 中断非 0: 当前被挂起的异常 / 中断中, 优先级最高的异常 / 中断号 - bit VECTACTIVE bit5-0 R 当前被处理的异常 / 中断号 0x0: 线程 (Thread) 模式非 0: 当前被处理的异常 / 中断号 应用中断和复位控制寄存器 (SCB_AIRCR) 偏移地址 :0C H 复位值 : _ _ _ B VECTKEY<15:0> SYSRESET VECTCLR 保 ENDIANNESS REQ ACTIVE 留 VECTKEY<15:0> bit31-16 W 向量关键码位只能写 0x05FA, 其它无效 ENDIANNESS bit15 R 存储器数据格式选择位 0: 小端格式 1: 大端格式 bit14-3 SYSRESETREQ bit2 W 系统复位请求位 0: 无效 1: 请求系统复位, 复位后自动清零 VECTCLRACTIVE bit1 W 异常 / 中断状态清除位该位只能写 0; 写 1 会产生 HardFault 异常 bit0 注 : 寄存器 SCB_AIRCR 只能进行字写入, 且高半字只能写入 0x05FA, 否则对该寄存器的写入操作无效 V1.2 68/278

69 系统控制寄存器 (SCB_SCR) 偏移地址 :10 H 复位值 : _ _ _ B SEVONP SLEEP SLEEP END DEEP ONEXIT bit31-5 SEVONPEND bit4 R/W 中断被挂起时, 是否作为唤醒事件的选择位 0: 中断被挂起时, 不作为唤醒事件 1: 中断被挂起时, 作为唤醒事件 bit3 SLEEPDEEP bit2 R/W 休眠模式选择位 0: 睡眠模式 1: 深度睡眠模式 SLEEPONEXIT bit1 R/W 从 ISR 中断处理程序返回到线程模式时, 是否进入休眠状态的选择位 0: 不进入休眠状态 1: 进入休眠状态 bit0 配置和控制寄存器 (SCB_CCR) 偏移地址 :14 H 复位值 : _ _ _ B STKALIGN UNALIGN_TRP bit31-10 STKALIGN bit9 R 非堆栈对齐标志位读取始终为 1, 指示异常入口 8 字节堆栈对齐 bit8-4 UNALIGN_TRP bit3 R 字或半字访问操作的非对齐故障标志位读取始终为 1, 指示非对齐访问产生硬故障 bit2-0 V1.2 69/278

70 系统处理程序优先级寄存器 2(SCB_SHPR2) 偏移地址 :1C H 复位值 : _ _ _ B PRI_11<1:0> PRI_11<1:0> bit31-30 R/W SVCall( 异常编号 11) 的优先级设置位 bit29-0 系统处理程序优先级寄存器 3(SCB_SHPR3) 偏移地址 :20 H 复位值 : _ _ _ B PRI_15<1:0> PRI_14<1:0> PRI_15<1:0> bit31-30 R/W SysTick( 异常编号 15) 的优先级设置位 bit29-24 PRI_14<1:0> bit23-22 R/W PendSV( 异常编号 14) 的优先级设置位 bit21-0 V1.2 70/278

71 2. 9 系统定时器 (SYSTICK) 概述 24 位系统递减计数器, 递减至零可自动重载计数初值可产生周期性 SysTick 异常, 用作嵌入式操作系统的多任务调度计数器 ; 或对于无嵌入式操作系统的运用, 可用于调用需周期性执行的任务 SysTick 亦可用作普通定时器, 如用于延时计数 SysTick 异常优先级可由系统处理优先级寄存器 SHPR3 的 PRI_15<1:0> 设定 SysTick 异常处理的挂起可由中断控制和状态寄存器 SCB_ICSR 的 PENDSTSET 位设置工作时钟可为系统时钟 HCLK 或其三分频 SysTick 是一个系统递减计数器, 配置 SYST_RVR 寄存器, 可设定计数初值 当 SysTick 计数为 0 时,COUNTFLAG 状态位置 1, 并重载 SYST_RVR 中的计数初值 在处理器调试停机时,SysTick 停止计数 在计数过程中, 如果将 SYST_RVR 寄存器设置为 0, 则计数器递减计数到 0 后, 停止计数 NVIC 异常 15 HCLK 三分频 位 SysTick 计数器 SYST_CSR.CLKSOURCE 图 2-10 系统定时器框图 SysTick 的当前计数值可以通过读 SYST_CVR 寄存器获得 如果写 SYST_CVR 寄存器, 则将该寄存器清零, 并且将 COUNTFLAG 位清 0, 写操作不会触发 SysTick 异常事件 访问 SysTick 寄存器时, 需使用字操作方式 配置 SysTick 计数器的步骤如下 : 1. 设置计数器重装值寄存器 SYST_RVR 2. 清除计数器当前值寄存器 SYST_CVR 3. 设置控制和状态寄存器 SYST_CSR SysTick 寄存器列表和基址参见 : 系统定时器 (SYSTICK) 寄存器列表 V1.2 71/278

72 特殊功能寄存器 SYSTICK 控制和状态寄存器 (SYST_CSR) 偏移地址 :10 H 复位值 : _ _ _ B COUNTFLAG CLKSOURCE TICKINT ENABLE bit31-17 COUNTFLAG bit16 R SYSTICK 递减计数到零的标志位 0; 未计数到 0 1: 计数到 0 该位读操作后清 0, 或写 SYST_CVR 寄存器清 0 bit15-3 CLKSOURCE bit2 R/W SYSTICK 时钟源选择位 0: 基准时钟 1: 处理器时钟 TICKINT bit1 R/W SYSTICK 异常挂起使能位 0: 计数到 0 时, 不产生异常挂起 1: 计数到 0 时, 产生异常挂起 ENABLE bit0 R/W SYSTICK 计数器使能位 1: 使能 注 1: 处理器时钟为芯片内核工作时钟 HCLK, 时钟频率与系统时钟频率相同 注 2:SYSTICK 基准时钟, 实际是处理器时钟 3 分频后的时钟, 频率为 FHCLK/3 SYSTICK 重装值寄存器 (SYST_RVR) 偏移地址 :14 H 复位值 : _ _ _ B RELOAD<23:16> RELOAD<15:0> bit31-24 RELOAD<23:0> bit23-0 R/W SYSTICK 计数器重载值计数范围 0x00_0001~0xFF_FFFF 如果为 0, SysTick 不计数 V1.2 72/278

73 SYSTICK 当前值寄存器 (SYST_CVR) 偏移地址 :18 H 复位值 : _ _ _ B CURRENT <23:16> CURRENT<15:0> bit31-24 CURRENT<23:0> bit23-0 R/W SYSTICK 计数器当前值读取时返回 SysTick 计数器的当前值 写入任何值都会将该寄存器清零, 同时还会清零 COUNTFLAG 标志位 SYSTICK 校准值寄存器 (SYST_CALIB) 偏移地址 :1C H 复位值 : _ _ _ B NOREF SKEW TENMS<23:16> TENMS<15:0> NOREF bit31 R 基准时钟标志位 0: 不提供外部基准时钟 ; 提供内部基准时钟, 其频率为 F HCLK/ 3 1: 提供外部基准时钟 SKEW bit30 R TENMS 校准值是否准确的标志位 0:TENMS 校准值准确 1:TENMS 校准值不准确 bit29-24 TENMS<23:0> bit23-0 R/W SYSTICK 校准值读取为 0 时, 表示校准值未知 注 : 本产品只提供内部基准时钟, 其频率为 F HCLK/3 V1.2 73/278

74 2. 10 配置字软件控制 在芯片配置字的 CFG_BORV<1:0> 为 11 时, 可通过软件设置寄存器 SCU_SOFTCFG 来控制 BOR 电压点, 电源电压低于 BORV<3:0> 设定的电压时, 将产生掉电复位 系统配置软件控制寄存器 (SCU_SOFTCFG) 偏移地址 :24 H 复位值 : _ _ _ B BORFLT<2:0> BORV<3:0> - bit BORFLT Bit7-5 R/W BOR 复位信号滤波长度 00x:1 个 LRC 时钟周期 010~111:2~7 个 LRC 时钟周期 BORV<3:0> bit4-1 R/W BOR 电压点选择 ( 仅在配置字 CFG_BORV=11 时有效 ) 0000:1.7V ( 默认值 ) 0001:1.7V 0010:2.1V 0011:2.2V 0100:2.3V 0101:2.4V 0110:2.5V 0111:2.6V 1000:2.8V 1001:3.0V 1010:3.1V 1011:3.3V 1100:3.6V 1101:3.7V 1110:4.0V 1111:4.3V bit0 注 1: 为防止电压瞬间跌落造成芯片工作异常, 可将 BORFLT 值适当减小, 在电压跌落时及时产生 BOR 复位 注 2: 对 SCU_SOFTCFG 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 3: 因软件设置 BOR 电压点, 需要芯片执行程序后才能设置, 如果应用系统对芯片复位可靠性要求较高, 则需避免使用 1.7V 电压点, 同时推荐通过配置字 CFG_BORV 设置 BOR 电压点 V1.2 74/278

75 2. 11 定时器 (T16N/T32N) 同步启动关停控制 概述通过 SCU_TIMEREN 和 SCU_TTIMERDIS 控制寄存器, 可以选择性同时启动或关停多个 T16N/T32N 定时器 可用于对多个 TIMER 同时启动或关停, 对于其它应用, 仍然可使用各个 TIMER 自身的 T16N_CON0 或 T32N_CON0 寄存器的 EN 控制位来使能或关停 TIMER 对各 TIMER 工作的控制,SCU_TIMEREN 和 SCU_TTIMERDIS 控制寄存器的优先级高于 T16N_CON0 和 T32N_CON0 寄存器的 EN 控制位, 并且 SCU_TIMEREN 控制寄存器的优先级高于 SCU_TTIMERDIS 特殊功能寄存器 SCU_TIMEREN 使能控制寄存器 (SCU_TIMEREN) 偏移地址 :58 H 复位值 : _ _ _ B T32N0EN T16N3EN T16N2EN T16N1EN T16N0EN - Bit T32N0EN bit8 W T32N0 使能位 0: 无动作 1: 触发使能 - bit T16N3EN bit3 W T16N3 使能位 0: 无动作 1: 触发使能 T16N2EN bit2 W T16N2 使能位 0: 无动作 1: 触发使能 T16N1EN bit1 W T16N1 使能位 0: 无动作 1: 触发使能 T16N0EN bit0 W T16N0 使能位 0: 无动作 1: 触发使能 注 1: 对 SCU_TIMEREN 寄存器的各位写 0 无效, 写 1 使能后, 硬件自动清零 注 2: 对 SCU_TIMEREN 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 75/278

76 SCU_TIMERDIS 关停控制寄存器 (SCU_TIMERDIS) 偏移地址 :5C H 复位值 : _ _ _ B T32N0DIS T16N3DIS T16N2DIS T16N1DIS T16N0DIS - bit T32N0DIS bit8 R/W T32N0 关停位 0: 无动作 1: 触发关停 - bit T16N3DIS bit3 R/W T16N3 关停位 0: 无动作 1: 触发关停 T16N2DIS bit2 R/W T16N2 关停位 0: 无动作 1: 触发关停 T16N1DIS bit1 R/W T16N1 关停位 0: 无动作 1: 触发关停 T16N0DIS bit0 R/W T16N0 关停位 0: 无动作 1: 触发关停 注 1: 对 SCU_TIMERDIS 寄存器的各位写 0 无效, 写 1 关停后, 硬件自动清零 注 2: 对 SCU_TIMERDIS 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 76/278

77 2. 12 模块调试相关配置 概述通过 SCU_DBGHALT 控制寄存器, 可以选择在调试模式下,Timer 或 WDT 是否跟随调试的状态计数或暂停 在非调试模式下或在调试模式全速运行时, 该寄存器不会影响 Timer 和 WDT 的计数状态 由于调试模式和非调试模式的不同, 可能两种模式下 Timer 或 WDT 计数快慢会稍有差异 对于计数精度要求较高的应用场景, 还是建议关闭相应模块的调试暂停使能位, 例如 Timer 用作 PWM 输出等 特殊功能寄存器 SCU_DBGHALT 调试模式模块暂停控制寄存器 (SCU_DBGHALT) 偏移地址 :18 H 复位值 :xxxxxxxx_xxxxxx00_xxxxxxx0_xxxx0000 B WWDTHT IWDTHT T32N0HT T16N3HT T16N2HT T16N1HT T16N0HT - Bit WWDTHT bit17 R/W WWDT 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) IWDTHT bit16 R/W IWDT 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) - bit T32N0HT bit8 R/W T32N0 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) - bit T16N3HT bit3 R/W T16N3 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) T16N2HT bit2 R/W T16N2 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) T16N1HT bit1 R/W T16N1 调试暂停使能位 ( 调试不影响计数 ) 1: 使能 ( 随调试运行状态计数或暂停 ) T16N0HT bit0 R/W T16N0 调试暂停使能位 ( 调试不影响计数 ) V1.2 77/278

78 1: 使能 ( 随调试运行状态计数或暂停 ) 注 : 对 SCU_ DBGHALT 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.2 78/278

79 第 3 章存储器资源 3. 1 内部存储器地址映射 芯片内部存储器包括程序存储器, 数据存储器, 外设寄存器和系统内核寄存器, 各存储器区域的地址映射关系如下图所示, 图中对系统内核寄存器区域的地址映射进行了详细描述 0xFFFF_FFFF 0xFFFF_FFFF 0xE00F_FFFF System Reserved Rom Ttable Reserved 0xE000_0000 0xDFFF_FFFF Reserved 0xA000_0000 0x9FFF_FFFF Reserved 0xFFF0_0000 0xFFEF_FFFF Reserved 0xFFE0_0000 0xFFDF_FFFF Reserved 0xFFD0_0000 0xFFCF_FFFF 0xE00F_F000 0xF00F_DFFF Reserved 0xE000_F000 0xE000_EFFF SCS System Control Space 0xE000_E000 0xE000_DFFF Reserved 0xE000_EFFF Debug Control 0xE000_ED00 NVIC 0xE000_E100 0x6000_0000 0x5FFF_FFFF Peripheral 0x4000_0000 0x3FFF_FFFF SRAM 0x2000_0000 0x1FFF_FFFF Code 0x0000_0000 0xE040_0000 0xE03F_FFFF Reserved 0xE020_0000 0xE01F_FFFF Reserved 0xE010_0000 0xE00F_FFFF Internal Private Peripheral Bus 0xE000_0000 Bank:512MB 0xE000_3000 0xE000_2FFF BP Breakpoint Unit 0xE000_2000 0xE000_1FFF DWT Data Watchpoint Unit 0xE000_1000 0xE000_0FFF Reserved 0xE000_0000 Bank:1MB 0xE000_3000 Reserved 0xE000_E020 SysTick Timer 0xE000_E010 Reserved 0xE000_E000 Bank:4KB 图 3-1 内部存储系统分配示意图 3. 2 FLASH 存储器 信息区 FLASH 芯片内部的信息区 FLASH 分为 3 个分区, 分别为 INFO0 区 INFO1 区和 INFO2 区 单个分区 256 字节, 总容量 768 字节, 地址范围为 0010_0000 H ~ 0010_02FF H INFO0 信息区仅用于存储芯片配置字 CFG_WORD - IAP 模式下支持擦除和编程 INFO1 信息区包含 96 位芯片唯一识别码 UID - 芯片唯一识别码 UID 出厂时已固定, 无法更改, 程序只读 - IAP 模式下不支持擦除和编程 INFO2 区包含全加密字 CFG_ENC_ALL - 只可通过编程工具和调试工具更改, 用户无需关心其访问地址, 下文不作说明 - IAP 模式下不支持编程, 仅支持同 FLASH 程序区一起全擦除 ( 不推荐使用 ) V1.2 79/278

80 0x0010_02FF 0x0010_0200 0x0010_01FF 0x0010_0100 0x0010_00FF 0x0010_0000 INFO 2 INFO 1 INFO 0 图 3-2 信息区地址映射图 芯片配置字芯片配置字位于 FLASH 存储器的 INFO0 信息区, 用户可在 ISP 编程时进行设置, 也可在 IAP 模式下设置 芯片的各种功能配置由芯片配置字和各功能相关寄存器共同设置完成 芯片配置字包括 Boot Flash 启动地址设置 WDT 使能控制 BOR 电压选择等 芯片配置字 (CFG_WORD) 地址 :0010_0004 H 默认值 : _ B(87B3 H) Bits31-16 Bits 15-0 取反值 CFG_DEBUG Bits SWD 调试模式使能位 0x: 禁止 10:DEBUG 使能 ( 默认 ) 11: Bits 固定为 000 CFG_START Bit 10 程序起始区域选择位 0:BootFlash 1:AppFlash( 默认 ) Bits 9-7 固定为 111 CFG_PWRTEB Bit 6 上电 140ms 延时使能位 0: 使能 ( 默认 ) 1: 禁止 CFG_BORV Bits 5-4 BOR 电压点选择 00:3.7V 01:2.5V 10:2.1V 11: 由软件控制 ( 默认 ) CFG_WWDTEN Bit 3 WWDT 硬件看门狗使能 0: 软件使能后可再关闭 ( 默认 ) 1: 软件使能后无法再关闭 CFG_IWDTEN Bit 2 IWDT 硬件看门狗使能 0: 由软件控制 ( 默认 ) 1: 硬件看门狗使能 IWDT 硬件看门狗使能后, 软件无法关闭 ;IWDT 中断强 V1.2 80/278

81 CFG_XTAL Bits 1-0 制使能, 软件无法关闭 ;IWDT 复位强制使能, 软件无法关闭 ;IWDT 时钟源固定为 LRC, 软件无法切换 外部振荡器模式选择位 00: 低速 LP 模式 (32768Hz) 01: 高速 XT 模式 (1~4MHz) 1x: 高速 HS 模式 (5~20MHz)( 默认 ) 注 1: 对配置位 CFG_PWRTEB, 推荐用户设置为上电延时使能 (CFG_PWRTEB=0), 只有在应用系统特别要求芯片上电后快速进入工作状态, 并且系统供电电源稳定可靠的条件下, 才可考虑禁止上电延时 注 2: 对上电 140ms 延时, 在芯片发生 BOR 掉电复位后, 该延时固定为使能, 与配置位 CFG_PWRTEB 无关 注 3: 在对 Flash 程序加密编程时, 必须要禁止 CFG_DEBUG 位, 否则加密无效, 编程工具将提示错误 注 4: 如果应用系统对芯片复位可靠性要求较高, 则推荐通过配置字 CFG_BORV 设置 BOR 电压点为 2.1V,2.5V 或 3.7V, 避免设置为通过软件设置 BOR 电压点 芯片唯一识别码 96 位芯片唯一识别码 UID 位于 FLASH 存储器的 INFO1 信息区, 以字为单位存放, 分为 3 个 word, 用户程序可读 UID 存放于 INFO1 区连续的 3 个地址空间中 芯片唯一识别码 (UID0~UID2) 地址 : 0010_01E0 H (UID0) ~ 0010_01E8 H (UID2) 默认值 :XXXXXXXX_XXXXXXXX_ XXXXXXXX_ XXXXXXXX B UID2 Bits95-64 芯片唯一识别码 UID2 UID1 Bits63-32 芯片唯一识别码 UID1 UID0 Bits31-0 芯片唯一识别码 UID 程序区 FLASH 芯片内部的程序存储器 FLASH 总容量最大为 128K 字节, 地址范围为 0000_0000 H ~0001_FFFF H, 共分为 128 页, 每页 1K 字节 FLASH 存储器支持至少 10 万次擦写次数,10 年以上的数据保持时间 型号 程序区 FLASH 寻址空间 页数 ES8P K Bytes 0x0001_0000~0x0001_1FFF 72 ES8P K Bytes 0x0000_0000 H ~0x0001_FFFF H 128 芯片支持通过 IAP 模块对程序存储器 FLASH 进行编程 页擦除操作, 其中字地址单元编程时间约为 20us, 页擦除时间约为 2ms 芯片支持在 SWD 调试模式下对 Flash 进行编程 擦除 读取等操作 将芯片配置字的 CFG_DEBUG 位配置为 DEBUG 使能时,SWD 端口不可被 GPIO 和其他外设所用 Boot Flash 启动地址为高 8K 字节空间的首地址 :0x0001_E000(ES8P5088) 或 0x0001_0000(ES8P5086) V1.2 81/278

82 系统启动地址可选择为主程序空间首地址 :0x0000_0000; 也可选择为 Boot Flash 空间首地址, 通过编程界面选取 复位向量的存放位置由所选择的系统启动地址决定 系统启动地址选择为 Boot Flash 空间首地址时,boot 引导结束后, 用户程序可通过配置 SCU_TBLREMAPEN 和 SCU_TBLOFF 切换回主程序空间 0x0000_0000 复位向量 0x0000_0000 复位向量 APP Flash APP Flash 0x0001_0000 复位向量 0x0001_E000 复位向量 8K Boot Flash 8K Boot Flash 0x0001_1FFF ES8P5086 0x0001_FFFF ES8P5088 图 3-3 Boot Flash 启动地址分配示意图 FLASH 加密用户可通过编程接口设置 FLASH 全加密 设置全加密后, 无法通过调试接口和编程接口读取 FLASH 自编程操作 (IAP) 芯片内部 FLASH 存储器, 支持应用中自编程操作 IAP(In-Application Programming) 写保护区使能后, 位于写保护区的 FLASH 存储器地址单元, 不支持 IAP 擦除和编程操作 可通过写保护寄存器 IAP_WPROT0~IAP_WPROT2 设定需要写保护的区域 写保护区以 2K 字节为一个基本单元, 可灵活设定 建议用户在进行 IAP 自编程操作时, 将非目标地址空间设置为写保护, 可防止因编程时突发的编程电压下降或干扰等导致系统程序被破坏 IAP 概述 支持 FLASH 数据保护, 进行 IAP 操作前需先进行解锁, 去除相关寄存器的写保护 支持程序存储器 FLASH 全擦除模式 ( 仅在 SWD 调试时有效 ) 和页擦除模式 支持字编程模式, 每个字包含 4 个字节 IAP 操作过程中可软件禁止全局中断 ; 也可使能中断, 将中断向量表和中断服务程序 (ISR) 复制到 SRAM, 通过设置中断向量表重映射使能寄存器 SCU_TBLREMAPEN 和中断向量表偏移寄存器 SCU_TBLOFF 可调用 SRAM 中的中断服务程序 (ISR) 来响应中断 IAP 操作进入擦除或编程状态后,IAP 自动上锁, 进入 FLASH 保护状态, 下次 IAP V1.2 82/278

83 操作前需重新解锁 IAP 自编程操作程序需放在芯片的 SRAM 中执行, 并在程序中对 FLASH 擦除或编程结果进行校验 支持页擦写保护功能, 上电默认写保护使能 在 IAP 操作之前需取消目标地址页的写保护, 并在完成操作后重新使能写保护, 防止误擦写 芯片内置 IAP 自编程硬件固化模块, 在 IAP 自编程操作程序中可以调用这些自编程固化模块, 以减少 SRAM 中的 IAP 操作代码量 IAP 操作流程 IAP 操作请求流程 - 首先通过 IAP 控制寄存器, 置位访问 FLASH 请求信号, 查询得到允许应答 - 再进行对应的 IAP 操作,IAP 操作是指 FLASH 全擦除, 页擦除和编程三种操作 - 操作完成后清除 FLASH 请求信号, 查询应答信号也被清零后, 结束本次 FLASH 的访问操作 - 具体流程图如下所示 : 开始 设置 IAP_UL, 对 IAP 解锁 FLASH_REQ=1 FLASH_ACK=1? N Y IAP 操作 FLASH_REQ=0 FLASH_ACK=0? N Y 结束 图 3-4 IAP 操作请求流程图 IAP 全擦除操作流程 IAP 全擦除操作只在芯片 SWD 调试模式使能时有效, 即将配置字 CFG_DEBUG 配 置为 DEBUG 使能时有效 V1.2 83/278

84 开始 设置 IAP_UL, 对 IAP 解锁 设置 IAP_TRIG 为 0x000051AE, 选择全擦除模式 BSY = 1? Y N 是否超时? N ERASE_END =1? Y 结束 N Y 出错处理 图 3-5 IAP 全擦除操作流程图 IAP 页擦除操作流程 - 页擦除目标页可通过 IAPPA 寄存器设置 完成页擦除后,IAPPA 自动 +1 - 执行页擦之前, 可将非目标页设置为写保护, 防止误擦除 开始 关闭页保护 设置 IAP_UL, 对 IAP 解锁 设置 IAPPA, 选择页地址 设置 IAP_TRIG 为 0x00005EA1, 选择页擦除模式 设置 IAP_UL 对 IAP 解锁 BSY = 1? Y N 是否超时? N Y 设置 IAP_UL, 对 IAP 解锁 ERASE_END =1? N 出错处理 Y Y N 连续擦除下一页? N 完成? Y 使能页保护 结束 图 3-6 IAP 页擦除操作流程图 V1.2 84/278

85 IAP 编程操作流程 - 编程目标单元地址可通过 IAPCA 寄存器设置 完成目标单元编程后,IAPCA 自动 +1, 对地址连续的多字编程, 无需再修改 IAPCA 寄存器 ; 由于 IAPCA 只在当前页中进行单元寻址, 跨页编程时, 必须重新填写 IAPPA, 如指定下一页首地址 - 执行编程之前, 可将非目标页设置为写保护, 防止误写 开始 关闭页保护 设置 IAP_UL, 对 IAP 解锁 设置 IAP_ADDR, 写入编程地址 设置 IAP_DATA, 写入编程数据 设置 IAP_UL IAP 解锁 设置 IAP_TRIG 为 0x00005DA2, 选择编程模式 N Y 设置 IAP_UL, 对 IAP 解锁 N 下一单元跨页? BSY = 1? N Y 超时? Y PROG_END =1? N 出错处理 N Y 连续编程下一单元? N Y 完成? Y 使能页保护 结束 图 3-7 IAP 编程操作流程图 IAP 自编程硬件固化模块芯片内置 IAP 自编程固化模块, 由硬件电路实现, 在 IAP 自编程操作程序中可以调用这些自编程固化模块, 以减少 SRAM 中的 IAP 操作代码量 IAP 自编程硬件固化模块支持单页擦除, 单字编程和多字编程, 分别由如下 IAP 操作函数来实现 : 单页擦除函数 (IAP_PageErase) - 入口地址 : 保存在 0x 单元内 - 参数输入 :R0- 擦除页的首地址 - 参数输出 :R0- 函数执行状态 (R0=1 为成功,R0=0 为失败 ) 单字编程函数 (IAP_WordProgram) - 入口地址 : 保存在 0x 单元内 V1.2 85/278

86 - 参数输入 :R0- 编程的 Flash 地址,R1- 编程数据 - 参数输出 :R0- 函数执行状态 (R0=1 为成功,R0=0 为失败 ) 多字编程函数 (IAP_WordsProgram) - 入口地址 : 保存在 0x 单元内 - 参数输入 :R0- 编程的 Flash 首地址,R1- 放在 SRAM 空间的编程数据首地址,R2- 编程数据字节长度,R3- 当编程到页首时是否先进行页擦除 (R3 非零为擦除,R3=0 为不擦除 ) - 参数输出 :R0- 函数执行状态 (R0=1 为成功,R0=0 为失败 ) 单字编程函数和多字编程函数流程图可参见 IAP 编程操作流程图 对单字编程函数忽 略图中的 连续编程下一单元 判断分支 注 : 在使用自编程硬件固化模块操作 IAP 前, 需要解锁和关闭写保护 特殊功能寄存器 IAP 解锁寄存器 (IAP_UL) 偏移地址 :10 H 复位值 : _ _ _ B UL<31:16> UL<15:0> UL<31:0> bit31-0 R/W IAP 解锁 : 写入 0x4941_5055; IAP 上锁 : 进行如下任一操作均可上锁写入其它值,IAP 上锁 ; 写 IAP 触发寄存器 IAP_TRIG,IAP 自动上锁 ; 写地址,IAP 上锁 ; IAP 软件复位后,IAP 上锁 注 1:IAP 上锁后, 处于写保护状态的寄存器为 IAP_CON,IAP_ADDR,IAP_DATA,IAP_TRIG 注 2: 写地址,IAP 上锁, 是指对 H~40000BFF H 空间中未定义的地址单元, 进行写操作时,IAP 上锁 IAP 控制寄存器 (IAP_CON) 偏移地址 :00 H 复位值 : _ _ _ B SEWE 保 留 FLASH_FAIL 保 留 FLASH_ACK FLASH_REQ RST EN - bit V1.2 86/278

87 SEWE bit9 R/W 全擦除时擦除全加密字使能位 ( 建议软件固定写 0) 1: 使能 ( 因无法对全加密字进行 IAP 编程, 所以不建议 IAP 全擦除时, 擦除全加密字 ) - bit8 -, 该位需软件固定写 0, 否则可能导致 IAP 操作异常 FLASH_FAIL bit7 R IAP 访问 FLASH 地址失败标志位 0:IAP 未访问 FLASH 写保护区 1:IAP 访问 FLASH 写保护区 bit6 FLASH_ACK bit5 R FLASH 应答信号 0: 不允许访问 1: 允许 IAP 访问 FLASH 存储器 FLASH_REQ bit4 R/W IAP 访问 FLASH 的请求信号 0: 无请求 1:IAP 请求访问 FLASH 存储器 - bit RST bit1 W IAP 软件复位 0: 读取时始终为 0 1: 复位 EN bit0 R/W IAP 使能位 1: 使能 注 1: 对 IAP_CON 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 ; 注 2:IAP 软件复位后,IAP 上锁,IAP 使能位 EN=0,IAP 访问 FLASH 请求信号 FLASH_REQ=0, 擦除全加密字使能位 SEWE=0,IAP 信息区使能位 IFREN=0,IAP 页地址 IAPPA=0,IAP 单元地址 IAPCA=0,IAP 数据寄存器 IAP_DATA=0,IAP 操作命, 令 IAP_TRIG=0,IAP 状态寄存器 IAP_STA=0 注 3: 对 IAP 使能位 EN, 可以软件写 0,IAP 软件复位清 0,IAP 操作超时硬件自动清 0 IAP 地址寄存器 (IAP_ADDR) 偏移地址 :04 H 复位值 : _ _ _ B IFREN IAPPA<6> IAPPA<5:0> IAPCA<7:0> - bit IFREN bit20 R/W IAP 信息区使能 0: 不允许 IAP 操作 FLASH_INFO 区 1: 允许 IAP 操作 FLASH_INFO 区 - bit V1.2 87/278

88 IAPPA<6:0> bit16-10 R/W IAP 页地址 ( 擦除模式 ) 1)0x00~0x7F: 共 128 页, 对应的地址范围 0x0000_0000~0x0001_FFFF 0x00~0x47: 共 72 页, 对应的地址范围 0x0000_0000~0x0001_1FFF 2) 操作 FLASH INFO 区时,IAPPA 必须为 0 IAPCA<7:0> bit9-2 R/W IAP 单元地址 1) 擦除模式下, 单元地址无效 2) 编程模式下 : 操作非 FLASH INFO 区时,IAPCA 为当前页中被编程单元的相对地址, 每页 256 个单元, 每单元 4 个字节 编程前需保证该单元已经被擦除操作 FLASH INFO 区时, 需同时设置 IFREN=1, 仅 IAPCA<5:0> 有效, 只能对 Info0 区进行编程操作 - bit 注 1: 对 IAP_ADDR 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 注 2: 完成页擦除后,IAPPA 自动 +1; 注 3: 完成单元编程后,IAPCA 自动 +1; 由于 IAPCA 只在当前页中进行单元寻址, 所以跨页编程时, 必须重新填写 IAPPA, 指定下一页地址 IAP 数据寄存器 (IAP_DATA) 偏移地址 :08 H 复位值 : _ _ _ B DATA<31:16> DATA<15:0> DATA<31:0> bit31-0 R/W IAP 单元数据 注 : 对 IAP_DATA 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 触发寄存器 (IAP_TRIG) 偏移地址 :0C H 复位值 : _ _ _ B TRIG<31:16> TRIG<15:0> TRIG<31:0> bit31-0 R/W IAP 操作命令 ( 写入该寄存器后,IAP 重新上锁 ) V1.2 88/278

89 0x0000_51AE: 全擦除 ( 仅在 SWD 调试时有效 ) 0x0000_5EA1: 页擦除 ( 擦除 INFO 区时, 只可擦除 Info0 区, 擦除其他区无效 ) 0x0000_5DA2: 编程模式 ( 编程 INFO 区时, 只可编程 Info0 区, 编程其他区无效 ) 其它 : 无操作 ( IAP 完成后,IAP 软件复位后, 或 IAP 禁止后, 硬件自动更改为无操作 ) 注 1: 对 IAP_TRIG 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 注 2: 在非 SWD 模式下, 如果相应的目标分区没有去除写保护, 则对 IAP_TRIG 寄存器的写操作无效, 保持为全 0 注 3:IAP 全擦除, 仅在 DEBUG 使能 (CFG_DEBUG=10), 并且进入 SWD 调试模式后有效, 对 FLASH 程序区全擦除, 在寄存器控制位 SEWE=1 时, 还会擦除全加密字 info2 区 ; 全擦除时不会擦除配置字 info0 区 注 4:IAP 页擦除, 对 INFO 区擦除时, 需要设置寄存器控制位 IFREN=1, 只能擦除 info0 区 IAP 状态寄存器 (IAP_STA) 偏移地址 :14 H 复位值 : _ _ _ B MERASE_EN OP_ER TIMEOUT_E PROG_EN ERASE_EN BS D R RR D D Y - bit MERASE_END bit5 R/W IAP 全擦除结束标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除,IAP 禁止时清除 1: 擦除完成 OP_ERR bit4 R/W IAP 操作错误标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除,IAP 禁止时清除 1:IAP 在保护区域擦除或编程操作导致错误 TIMEOUT_ERR bit3 R/W IAP 超时错误标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除 1:IAP 操作超时, 硬件自动置 1 PROG_END bit2 R/W IAP 编程结束标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除,IAP 禁止时清除 1: 当前单元编程完成, 硬件自动置 1 PERASE_END bit1 R/W IAP 页擦除结束标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, V1.2 89/278

90 BSY bit0 R 或 IAP 软件复位清除,IAP 禁止时清除 1: 擦除完成, 硬件自动置 1 IAP 工作状态位 0: 空闲,IAP 操作结束后清除, 或 IAP 软件复位清除,IAP 禁止时清除 1:IAP 操作正在进行中 注 :IAP_STA 寄存器的 TIMEOUT_ERR 为 1 时, 硬件自动清零 IAP_CON 寄存器的 EN 位 IAP 写保护寄存器 0(IAP_WPROT0) 偏移地址 :18 H 复位值 : _ _ _ B IAP_WPROT<31:16> IAP_WPROT<15:0> IAP_WPROT<31:0> bit31-0 R/W IAP 写保护控制寄存器 0( 第 63~0 页 ) 每位对应 2KB 空间, 如 bit0 为第 1~0 页的写保护寄存器 0: 可写 1: 禁止写 IAP 写保护寄存器 1(IAP_WPROT1) 偏移地址 :1C H 复位值 : _ _ _ B IAP_WPROT<63:48> IAP_WPROT<47:32> IAP_WPROT<63:32> bit31-0 R/W IAP 写保护控制寄存器 1( 第 127~64 页 ) 每位对应 2KB 空间, 如 bit0 为第 65~64 页的写保护寄存器 0: 可写 1: 禁止写 V1.2 90/278

91 IAP 写保护寄存器 2(IAP_WPROT2) 偏移地址 :20 H 复位值 : _ _ _ B IAP_WPROT<63:48> IAP_WPROT<47:32> bit31-1 IAP_WPROT<64> bit0 R/W IAP 写保护控制寄存器 2(Info 区 ) Info 区写保护寄存器 0: 可写 1: 禁止写 注 : 建议在 IAP 擦除或写操作前, 对 FLASH 的非目标地址页的其他页, 设置 IAP_WPROT<64:0> 中的对应位为 1, 禁止对这些页的擦除和写操作, 避免误擦和误写操作 V1.2 91/278

92 3. 3 数据存储器 (SRAM) 芯片内部集成最大 24K 字节数据存储器 SRAM, 地址范围为 2000_0000 H ~2000_5FFF H 型号 SRAM 数据存储器 地址范围 ES8P K Bytes 2000_0000 H ~2000_3FFF H ES8P K Bytes 2000_0000 H ~2000_5FFF H SRAM 地址映射 0xFFFF_FFFF 0x3FFF_FFFF 0xFFFF_FFFF 0x3FFF_FFFF System System 0xE000_0000 0xDFFF_FFFF 0xE000_0000 0xDFFF_FFFF Reserved SRAM bitband Reserved SRAM bitband 0xA000_0000 0x9FFF_FFFF 0xA000_0000 0x9FFF_FFFF Reserved 0x2200_0000 0x21FF_FFFF Reserved 0x2200_0000 0x21FF_FFFF 0x6000_0000 0x5FFF_FFFF 0x6000_0000 0x5FFF_FFFF Peripheral 0x4000_0000 0x3FFF_FFFF Reserved Peripheral 0x4000_0000 0x3FFF_FFFF Reserved SRAM SRAM 0x2000_0000 0x1FFF_FFFF FLASH 0x0000_0000 0x2000_4000 0x2000_3FFF 16K Bytes SRAM 0x2000_0000 0x2000_0000 0x1FFF_FFFF FLASH 0x0000_0000 0x2000_6000 0x2000_5FFF 24K Bytes SRAM 0x2000_0000 ES8P5086 ES8P5088 图 3-8 SRAM 映射图 SRAM 位带扩展 SRAM 支持位带扩展, 可使用普通的加载和存储指令对单比特进行读写操作 通过位带扩展, 除可在起始地址为 0x2000_0000 的空间访问 SRAM 外, 还可在起始地址为 0x2200_0000 的位带扩展区以单比特方式访问 SRAM 位带扩展区把每个比特扩展为一个 32-bit 的字, 即占用 4 个字节地址 ; 一个 byte 占用 8x4=32 个地址 通过访问这些字可达到访问原始比特的目的 对于 SRAM 的某个 bit, 如果它所在字节地址为 A, 位序号为 N(0 N 7), 则该 bit 在 SRAM 位带扩展后的地址为 : AliasAddress_A_N = 0x2200_ ( A 0x2000_0000) x 32 + N x 4 例如, 字节地址 A 为 0x2000_0001, 访问该地址的 bit1, 地址为 : AliasAddress_A_N = 0x2200_ x x 4 = 0x2200_0024 V1.2 92/278

93 3. 4 外设寄存器 外设寄存器映射 Peripheral Device 0xFFFF_FFFF 0xE000_0000 0xDFFF_FFFF 0x6000_0000 0x5FFF_FFFF 0x4000_0000 0x3FFF_FFFF 0x2000_0000 0x1FFF_FFFF 0x0000_0000 System Reserved Peripheral SRAM Code Peripheral bitband Reserved GPIO Reserved AES Reserved I2C0 Reserved SPI0 UART5 UART0 Reserved T32N0 Reserved T16N3 T16N0 IWDT WWDT RTC ADC CRC IAP Reserved SCU 图 3-9 外设存储器分配示意图 0x4200_A400~0x5FFF_FFFF 0x4002_0000~0x4002_03FF 0x4000_A000~0x4000_A3FF 0x4000_9400~0x4000_9FFF 0x4000_9000~0x4000_93FF 0x4000_8400~0x8400_8FFF 0x4000_8000~0x4000_83FF 0x4000_7400~0x4000_7FFF 0x4000_6400~0x4000_67FF 0x4000_6000~0x4000_63FF 0x4000_4400~0x4000_5FFF 0x4000_4000~0x4000_43FF 0x4000_3000~0x4000_3FFF 0x4000_2C00~0x4000_2FFF 0x4000_2400~0x4000_27FF 0x4000_2000~0x4000_23FF 0x4000_1C00~0x4000_1FFF 0x4000_1800~0x4000_1BFF 0x4000_1400~0x4000_17FF 0x4000_1000~0x4000_13FF 0x4000_0C00~0x4000_0FFF 0x4000_0800~0x4000_0BFF 0x4000_0400~0x4000_07FF 0x4000_0000~0x4000_03FF 注 :Reserved 寄存器区域为只读, 读出值为 H 外设寄存器位带扩展外设寄存器支持位带扩展, 可使用普通的加载和存储指令对单比特进行读写操作 通过位带扩展, 除可在 0x4000_0000 起始的空间访问外设外, 还可在起始地址为 0x4200_0000 的位带扩展区以单比特方式访问外设寄存器 位带扩展区把每个比特扩展为一个 32-bit 的字, 通过访问这些字可达到访问原始比特的目的 对于外设寄存器的某一位, 如果它所在字节地址为 A, 位序号为 N(0 N 7), 则该位在外设寄存器位带扩展后的地址为 : AliasAddress_A_N = 0x4200_ ( A 0x4000_0000) x 32 + N x 4 GPIO 端口寄存器 GPIO_PADATABSR,GPIO_PADATABCR,GPIO_PADATABRR, V1.2 93/278

94 GPIO_PADIRBSR, GPIO_PADIRBCR, GPIO_PADIRBRR, GPIO_PBDATABSR, GPIO_PBDATABCR,GPIO_PBDATABRR,GPIO_PBDIRBSR,GPIO_PBDIRBCR, GPIO_PBDIRBRR, 用于实现对 GPIO 端口数据寄存器和方向控制寄存器的位操作, 这些端口位操作寄存器不再支持位带扩展访问 除上述寄存器外, 其它外设寄存器均支持位带扩展访问操作 RTC 模块里的 RTC_WA RTC_DA RTC_HMS RTC_YMDW 寄存器也不支持位带扩展访问 利用外设寄存器位带访问对寄存器位置 1 和清 0 的示例如下 : LDR R0, = AliasAddress_A_N MOVS R1, #1 STR R1, [R0] ; 对该位置 1 LDR R0, = AliasAddress_A_N MOVS R1, #0 STR R1, [R0] ; 对该位清 系统控制单元 (SCU) 寄存器列表 系统控制单元 (SCU) 寄存器名称 寄存器地址 寄存器描述 SCU 基地址 :4000_0000 H SCU_PROT 0000 H 系统设置保护寄存器 SCU_NMICON 0004 H 不可屏蔽中断控制寄存器 SCU_PWRC 0008 H 复位寄存器 SCU_FAULTFLAG 000C H 硬件错误标志寄存器 SCU_WAKEUPTIME 0010 H 系统唤醒时间控制寄存器 SCU_DBGHALT 0018 H 调试模式模块暂停控制寄存器 SCU_FLASHWAIT 0020 H FLASH 访问等待时间寄存器 SCU_SOFTCFG 0024 H 系统配置软件控制寄存器 SCU_LVDCON 0028 H LVD 控制寄存器 SCU_CCM 002C H 外部时钟检测控制寄存器 SCU_PLLLKCON 0030 H PLL 锁定中断控制寄存器 SCU_SCLKEN H 系统时钟控制寄存器 0 SCU_SCLKEN H 系统时钟控制寄存器 1 SCU_PCLKEN H 外设时钟控制寄存器 0 SCU_PCLKEN1 004C H 外设时钟控制寄存器 1 SCU_PRSTEN H 外设复位控制寄存器 0 SCU_PRSTEN H 外设复位控制寄存器 1 SCU_TIMEREN 0058 H TIMER 使能控制寄存器 SCU_TIMERDIS 005C H TIMER 关停控制寄存器 SCU_TBLREMAPEN 0060 H 中断向量表重映射使能寄存器 SCU_TBLOFF 0064 H 中断向量表偏移寄存器 V1.2 94/278

95 CRC 寄存器列表 CRC 寄存器列表 寄存器名称寄存器地址寄存器描述 CRC 基地址 :4000_0C00 H CRC_UL 0000 H CRC 解锁寄存器 CRC_CON 0004 H CRC 控制寄存器 CRC_TRIG 0008 H CRC 触发寄存器 CRC_ADDR 000C H CRC FLASH 校验起始地址寄存器 CRC_SIZE 0010 H CRC FLASH 校验数据块大小寄存器 CRC_DI 0014 H CRC 用户模式输入数据寄存器 CRC_DO 0018 H CRC 校验结果寄存器 CRC_STA 001C H CRC 状态寄存器 CRC_FA 0020 H CRC 当前 FLASH 地址寄存器 GPIO 寄存器列表 GPIO 寄存器列表 寄存器名称寄存器地址寄存器描述 GPIO 基地址 :4002_0000 H GPIO_PAPORT 0000 H PA 端口状态寄存器 GPIO_PADATA 0010 H PA 端口数据寄存器 GPIO_PADATABSR 0014 H PA 输出置位寄存器 GPIO_PADATABCR 0018 H PA 输出清零寄存器 GPIO_PADATABRR 001C H PA 输出翻转寄存器 GPIO_PADIR 0020 H PA 端口方向控制寄存器 GPIO_PADIRBSR 0024 H PA 端口方向置位寄存器. GPIO_PADIRBCR 0028 H PA 端口方向清零寄存器 GPIO_PADIRBRR 002C H PA 端口方向翻转寄存器 GPIO_PAFUNC H PA[7:0] 端口复用选择寄存器 GPIO_PAFUNC H PA[15:8] 端口复用选择寄存器 GPIO_PAFUNC H PA[23:16] 端口复用选择寄存器 GPIO_PAFUNC3 003C H PA[31:24] 端口复用选择寄存器 GPIO_PAINEB 0040 H PA 端口输入控制寄存器 GPIO_PAODE 0044 H PA 端口开漏控制寄存器 GPIO_PAPUE 0048 H PA 端口弱上拉使能寄存器 GPIO_PAPDE 004C H PA 端口弱下拉使能寄存器 GPIO_PADS 0050 H PA 端口驱动电流控制寄存器 GPIO_PBPORT 0080 H PB 端口状态寄存器 GPIO_PBDATA 0090 H PB 端口数据寄存器 GPIO_PBDATABSR 0094 H PB 端口输出置位寄存器 GPIO_PBDATABCR 0098 H PB 端口输出清零寄存器 GPIO_PBDATABRR 009C H PB 端口输出翻转寄存器 GPIO_PBDIR 00A0 H PB 端口方向控制寄存器 V1.2 95/278

96 GPIO 寄存器列表寄存器名称 寄存器地址 寄存器描述 GPIO_PBDIRBSR 00A4 H PB 端口方向置位寄存器 GPIO_PBDIRBCR 00A8 H PB 端口方向清零寄存器 GPIO_PBDIRBRR 00AC H PB 端口方向翻转寄存器 GPIO_PBFUNC0 00B0 H PB[7:0] 端口复用选择寄存器 GPIO_PBFUNC1 00B4 H PB[13:8] 端口复用选择寄存器 GPIO_PBINEB 00C0 H PB 端口输入控制寄存器 GPIO_PBODE 00C4 H PB 端口开漏控制寄存器 GPIO_PBPUE 00C8 H PB 端口弱上拉使能寄存器 GPIO_PBPDE 00CC H PB 端口弱下拉使能寄存器 GPIO_PBDS 00D0 H PB 端口驱动电流控制寄存器 GPIO_PINTIE 0300 H PINT 中断使能寄存器 GPIO_PINTIF 0304 H PINT 中断标志寄存器 GPIO_PINTSEL 0308 H PINT 中断源选择寄存器 GPIO_PINTCFG 030C H PINT 中断配置寄存器 GPIO_KINTIE 0310 H KINT 中断使能寄存器 GPIO_KINTIF 0314 H KINT 中断标志寄存器 GPIO_KINTSEL 0318 H KINT 中断源选择寄存器 GPIO_KINTCFG 031C H KINT 中断配置寄存器 GPIO_IOINTFLTS 0330 H 端口中断 20ns 滤波器分配控制寄存器 GPIO_TMRFLTSEL 0340 H TMR 输入端口 20ns 滤波器分配控制寄存器 GPIO_TXPWM 0380 H 脉宽调制寄存器 GPIO_BUZC 0390 H 蜂鸣器计数控制寄存器 IAP 寄存器列表 IAP 寄存器列表 寄存器名称寄存器地址寄存器描述 IAP 基地址 :4000_0800 H IAP_CON 0000 H IAP 控制寄存器 IAP_ADDR 0004 H IAP 地址寄存器 IAP_DATA 0008 H IAP 数据寄存器 IAP_TRIG 000C H IAP 触发寄存器 IAP_UL 0010 H IAP 解锁寄存器 IAP_STA 0014 H IAP 状态寄存器 IAP_WPROT H IAP 写保护寄存器 0 IAP_WPROT1 001C H IAP 写保护寄存器 1 IAP_WPROT H IAP 写保护寄存器 2 V1.2 96/278

97 ADC 寄存器列表 ADC 寄存器列表 寄存器名称寄存器地址寄存器描述 ADC 基地址 :4000_1000 H ADC_DR 0000 H ADC 转换值寄存器 ADC_CON H ADC 控制寄存器 0 ADC_CON H ADC 控制寄存器 1 ADC_CHS 000C H ADC 通道选择寄存器 ADC_IE 0010 H ADC 中断使能寄存器 ADC_IF 0014 H ADC 中断标志寄存器 ADC_ACPC 0028 H ADC 自动转换比较控制寄存器 ADC_ACPCMP 0030 H ADC 自动转换比较阈值寄存器 ADC_ACPMEAN 0034 H ADC 自动转换均值数据寄存器 ADC_VREFCON 0040 H ADC 参考控制寄存器 RTC 寄存器列表 RTC 寄存器列表 寄存器名称寄存器地址寄存器描述 RTC 基地址 :4000_1400 H RTC_CON 0000 H RTC 控制寄存器 RTC_CAL 0004 H RTC 调校寄存器 RTC_WA 0008 H RTC 周闹钟寄存器 RTC_DA 000C H RTC 日闹钟寄存器 RTC_HMS 0010 H RTC 时分秒寄存器 RTC_YMDW 0014 H RTC 年月日周寄存器 RTC_IE 0018 H RTC 中断使能寄存器 RTC_IF 001C H RTC 中断标志寄存器 RTC_WP 0020 H RTC 写保护寄存器 IWDT 寄存器列表 IWDT 寄存器列表 寄存器名称寄存器地址寄存器描述 IWDT 基地址 :4000_1C00 H IWDT_LOAD 0000 H IWDT 计数器装载值寄存器 IWDT_VALUE 0004 H IWDT 计数器当前值寄存器 IWDT_CON 0008 H IWDT 控制寄存器 IWDT_INTCLR 000C H IWDT 中断标志清除寄存器 IWDT_RIS 0010 H IWDT 中断标志寄存器 IWDT_LOCK 0100 H IWDT 锁定寄存器 V1.2 97/278

98 WWDT 寄存器列表 WWDT 寄存器列表 寄存器名称寄存器地址寄存器描述 WWDT 基地址 :4000_1800 H WWDT_LOAD 0000 H WWDT 计数器装载值寄存器 WWDT_VALUE 0004 H WWDT 计数器当前值寄存器 WWDT_CON 0008 H WWDT 控制寄存器 WWDT_INTCLR 000C H WWDT 中断标志清除寄存器 WWDT_RIS 0010 H WWDT 中断标志寄存器 WWDT_LOCK 0100 H WWDT 锁定寄存器 T16N0/T16N1/T16N2/T16N3 寄存器列表 T16N 寄存器列表 寄存器名称寄存器地址寄存器描述 T16N0 基地址 :4000_2000 H T16N1 基地址 :4000_2400 H T16N2 基地址 :4000_2800 H T16N3 基地址 :4000_2C00 H T16N_CNT 0000 H T16N 计数值寄存器 T16N_PRECNT 0008 H T16N 预分频器计数值寄存器 T16N_PREMAT 000C H T16N 预分频器计数匹配寄存器 T16N_CON H T16N 控制寄存器 0 T16N_CON H T16N 控制寄存器 1 T16N_CON H T16N 控制寄存器 2 T16N_IE 0020 H T16N 中断使能寄存器 T16N_IF 0024 H T16N 中断标志寄存器 T16N_TRG 0028 H T16N 触发寄存器 T16N_MAT H T16N 计数匹配寄存器 0 T16N_MAT H T16N 计数匹配寄存器 1 T16N_MAT H T16N 计数匹配寄存器 2 T16N_MAT3 003C H T16N 计数匹配寄存器 T32N0 寄存器列表 T32N 寄存器列表 寄存器名称寄存器地址寄存器描述 T32N0 基地址 :4000_4000 H T32N_CNT 0000 H T32N 计数值寄存器 T32N_PRECNT 0008 H T32N 预分频器计数值寄存器 T32N_PREMAT 000C H T32N 预分频器计数匹配寄存器 T32N_CON H T32N 控制寄存器 0 T32N_CON H T32N 控制寄存器 1 T32N_CON H T32N 控制寄存器 2 T32N_IE 0020 H T32N 中断使能寄存器 V1.2 98/278

99 T32N 寄存器列表寄存器名称 寄存器地址 寄存器描述 T32N_IF 0024 H T32N 中断标志寄存器 T32N_TRG 0028 H T32N 触发寄存器 T32N_MAT H T32N 计数匹配寄存器 0 T32N_MAT H T32N 计数匹配寄存器 1 T32N_MAT H T32N 计数匹配寄存器 2 T32N_MAT3 003C H T32N 计数匹配寄存器 UART0/UART1/UART2/UART3/UART4/UART5 寄存器列表 UART 寄存器列表 寄存器名称寄存器地址寄存器描述 UART0 基地址 :4000_6000 H UART1 基地址 :4000_6400 H UART2 基地址 :4000_6800 H UART3 基地址 :4000_6C00 H UART4 基地址 :4000_7000 H UART5 基地址 :4000_7400 H UART_CON 0000 H UART 控制寄存器 UART_BRR 0004 H UART 波特率寄存器 UART_TBW 0008 H UART 发送数据写入寄存器 UART_RBR 000C H UART 接收数据读取寄存器 UART_TB H UART 发送缓冲 0/1 寄存器 UART_TB H UART 发送缓冲 2/3 寄存器 UART_RB H UART 接收缓冲 0/1 寄存器 UART_RB23 001C H UART 接收缓冲 2/3 寄存器 UART_IE 0020 H UART 中断使能寄存器 UART_IF 0024 H UART 中断标志寄存器 SPI0 寄存器列表 SPI 寄存器列表 寄存器名称寄存器地址寄存器描述 SPI0 基地址 :4000_8000 H SPI_CON 0000 H SPI 控制寄存器 SPI_TBW 0008 H SPI 发送数据写入寄存器 SPI_RBR 000C H SPI 接收数据读取寄存器 SPI_IE 0010 H SPI 中断使能寄存器 SPI_IF 0014 H SPI 中断标志寄存器 SPI_TB 0018 H SPI 发送缓冲寄存器 SPI_RB 001C H SPI 接收缓冲寄存器 SPI_STA 0020 H SPI 状态寄存器 SPI_CKS 0024 H SPI 波特率设置寄存器 V1.2 99/278

100 I2C0 寄存器列表 I2C 寄存器列表 寄存器名称寄存器地址寄存器描述 I2C0 基地址 :4000_9000 H I2C_CON 0000 H I2C 控制寄存器 I2C_MOD 0004 H I2C 工作模式寄存器 I2C_IE 0008 H I2C 中断使能寄存器 I2C_IF 000C H I2C 中断标志寄存器 I2C_TBW 0010 H I2C 发送数据写入寄存器 I2C_RBR 0014 H I2C 接收数据读取寄存器 I2C_TB 0018 H I2C 发送缓冲寄存器 I2C_RB 001C H I2C 接收缓冲寄存器 I2C_STA 0020 H I2C 状态寄存器 AES 寄存器列表 AES 寄存器列表 寄存器名称寄存器地址寄存器描述 AES 基地址 :4000_A000 H AES_DATA H AES 数据寄存器 0 AES_DATA H AES 数据寄存器 1 AES_DATA H AES 数据寄存器 2 AES_DATA3 000C H AES 数据寄存器 3 AES_KEY H AES 密钥寄存器 0 AES_KEY H AES 密钥寄存器 1 AES_KEY H AES 密钥寄存器 2 AES_KEY3 001C H AES 密钥寄存器 3 AES_CON 0020 H AES 控制寄存器 3. 5 内核寄存器 系统定时器 (SYSTICK) 寄存器列表 系统定时器 (SYSTICK) 寄存器名称寄存器地址寄存器描述 SYSTICK 基地址 :E000_E000 H SYST_CSR 0010 H SYSTICK 控制和状态寄存器 SYST_RVR 0014 H SYSTICK 重装值寄存器 SYST_CVR 0018 H SYSTICK 当前值寄存器 SYST_CALIB 001C H SYSTICK 校准值寄存器 V /278

101 中断控制器 (NVIC) 寄存器列表 中断控制器 (NVIC) 寄存器名称寄存器地址寄存器描述 NVIC 基地址 :E000_E100 H NVIC_ISER 0000 H IRQ0~31 置中断请求使能寄存器 NVIC_ICER 0080 H IRQ0~31 清中断请求使能寄存器 NVIC_ISPR 0100 H IRQ0~31 置中断挂起寄存器 NVIC_ICPR 0180 H IRQ0~31 清中断挂起寄存器 NVIC_PR H IRQ0~3 优先级控制寄存器 NVIC_PR H IRQ4~7 优先级控制寄存器 NVIC_PR H IRQ8~11 优先级控制寄存器 NVIC_PR3 030C H IRQ12~15 优先级控制寄存器 NVIC_PR H IRQ16~19 优先级控制寄存器 NVIC_PR H IRQ20~23 优先级控制寄存器 NVIC_PR H IRQ24~27 优先级控制寄存器 NVIC_PR7 031C H IRQ28~31 优先级控制寄存器 系统控制块 (SCB) 寄存器列表 系统控制块 (SCB) 寄存器名称寄存器地址寄存器描述 SCB 基地址 :E000_ED00 H SCB_CPUID 0000 H SCB_CPUID 寄存器 SCB_ICSR 0004 H 中断控制和状态寄存器 SCB_AIRCR 000C H 应用中断和复位控制寄存器 SCB_SCR 0010 H 系统控制寄存器 SCB_CCR 0014 H 配置和控制寄存器 SCB_SHPR2 001C H 系统处理程序优先级寄存器 2 SCB_SHPR H 系统处理程序优先级寄存器 3 V /278

102 第 4 章输入输出端口 (GPIO) 4. 1 概述 本芯片支持两组 GPIO 端口, 最多支持共 45 个 I/O 管脚 所有 I/O 端口都是 CMOS 施密特输入和 CMOS 输出驱动 ( 可配置为开漏输出 ), 每个 I/O 端口的复用功能和工作模式由端口复用选择寄存器 GPIO_PAFUNC/GPIO_PBFUNC 配置 当 I/O 端口配置为通用数字 I/O 功能时, 其输出状态由端口方向控制寄存器 GPIO_PADIR/ GPIO_PBDIR 配置, 输入状态由相应的端口输入控制寄存器 GPIO_PAINEB/ GPIO_PBINEB 配置 当 I/O 端口处于输出状态时, 其电平由端口数据寄存器 GPIO_PADATA/ GPIO_PBDATA 决定,1 为高电平,0 为低电平 ; 当 I/O 端口处于输入状态时, 其电平状态可通过读取端口状态寄存器 GPIO_PAPORT/GPIO_PBPORT 获得 端口输出电平支持位操作 将 GPIO 输出置位寄存器 GPIO_PADATABSR/ GPIO_PBDATABSR 相应位写 1, 可将相应位的 GPIO 端口设置为高电平 ; 将 GPIO 端口输出清零寄存器 GPIO_PADATABCR / GPIO_PBDATABCR 相应位写 1, 可将相应位的 GPIO 端口设置为低电平 ; 将 GPIO 端口输出翻转寄存器 GPIO_PADATABRR/ GPIO_PBDATABRR 相应位写 1, 可将相应位的 GPIO 端口电平取反 端口方向控制支持位操作 将 GPIO 端口方向置位寄存器 GPIO_PADIRBSR/ GPIO_PBDIRBSR 相应位写 1, 可将相应位的 GPIO 端口设置为输入 ; 将 GPIO 端口方向清零寄存器 GPIO_PADIRBCR/ GPIO_PBDIRBCR 相应位写 1, 可将相应位的 GPIO 端口设置为输出 ; 将 GPIO 端口输出翻转寄存器 GPIO_PADIRBRR/GPIO_PBDIRBRR 相应位写 1, 可将相应位的 GPIO 端口方向取反 当 I/O 端口配置为复用功能时, 作为芯片外设功能模块的复用端口, 其输出状态仍需通过端口方向控制寄存器 GPIO_PADIR/GPIO_PBDIR 进行配置, 输入状态仍需通过相应的端口输入控制寄存器 GPIO_PAINEB/GPIO_PBINEB 进行配置 每个 I/O 端口均支持开漏输出, 由相应的端口开漏输出使能寄存器 GPIO_PAODE/ GPIO_PBODE 控制开漏输出是否使能 每个 I/O 端口均支持弱上拉或弱下拉, 由相应的端口弱上拉使能寄存器 GPIO_PAPUE/ GPIO_PBPUE 控制其弱上拉功能是否使能, 由相应的端口弱下拉使能寄存器 GPIO_PAPDE/ GPIO_PBPDE 控制其弱下拉功能是否使能 每个 I/O 端口均支持电流驱动能力可配置, 由相应的端口驱动电流控制寄存器 GPIO_PADS/ GPIO_PBDS 选择 I/O 端口的输出驱动能力, 可选择为强电流驱动 I/O 端口, 或者普通驱动 I/O 端口 其中 PA6~PA13 端口具有比其它 I/O 端口更强的驱动能力, 具体参见 附录 2 电气特性 章节的描述 GPIO 端口的特殊功能寄存器可通过 AHB 总线访问, 通过软件方式操作 I/O 端口输出脉冲信号时, 能够得到的最快脉冲频率为外设时钟 PCLK 频率的 4 分频 注 : 因 GPIO 默认状态时输入悬空, 在实际应用中, 建议程序对不使用的 GPIO 设置为输出 0, 并关闭内部上下拉 电阻 V /278

103 4. 2 结构框图 GPIO 中断 系统时钟地址总线 读数据总线 写数据总线 控制总线 IO 逻辑 IO 输出 IO 控制 IO 输入其他控制 VDD VDD VDD GPIO 外设使能外设输出外设输入 IOMUX 数模选择模拟输入模拟输出 图 4-1 IO 端口电流结构图 4. 3 外部端口中断 支持全部 IO 口外部端口中断, 分成 8 组, 每组对应一个 IRQ, 并可通过 GPIO_PINTCFG 寄存器的 PINT7CFG~PINT0CFG 位配置各外部中断触发方式 触发方式配置为高电平或低电平时, 中断标志只有在触发电平翻转后, 才可通过对 GPIO_PINTIF 寄存器的相应位写 1 来清除 GPIO_PINTIE 寄存器的输入屏蔽使能位 PMASK, 可对外部端口中断输入源进行屏蔽, 屏蔽位使能时, 对应的中断输入源就被屏蔽了, 不会产生中断和标志位 GPIO_PINTIE 寄存器的外部端口中断使能位 PINTIE, 可对每个外部端口中断标志 PINTIF 是否触发外部端口中断请求, 进行配置 PINT0SEL PINT0CFG PINT0_IN0 PINTIE0 PINT0_IN1 PINT0_IN2 PINT0_IN3 PINT0_IN4 PINT0_IN5 中断 PORT 选择 PINT0_IN PINT0 中断产生电路 PINTIF0 IRQ_PINT0 PMASK0 图 4-2 外部端口中断 PINT0 电路结构示意图 上图以外部端口中断 PINT0 电路结构示意图为例, 可见其有 6 个可选外部中断源, 分别来自 PA0 PA8 PA16 PA24 PB0 和 PB8 PINT0 ~PINT7 的外部中断源参见下表 : V /278

104 PINTx SEL0 SEL1 SEL2 SLE3 SEL4 SEL5 PINT0 PA0 PA8 PA16 PA24 PB0 PB8 PINT1 PA1 PA9 PA17 PA25 PB1 PB9 PINT2 PA2 PA10 PA18 PA26 PB2 PB10 PINT3 PA3 PA11 PA19 PA27 PB3 PB11 PINT4 PA4 PA12 PA20 PA28 PB4 PB12 PINT5 PA5 PA13 PA21 PA29 PB5 PB13 PINT6 PA6 PA14 PA22 PA30 PB6 - PINT7 PA7 PA15 PA23 PA31 PB7 - 表 4-1 PINT 选择对应列表 4. 4 外部按键中断 支持 1 个 8 输入外部按键中断 (KINT), 8 个按键输入为 KINT0~KINT7, 其中任意一个按键输入都可以触发按键中断, 每个按键输入可以从 6 个 I/O 端口中选择一个作为其输入源 输入屏蔽使能位 KMASK, 可对相应的每个输入源 KINT 进行屏蔽 屏蔽使能时, 不论 KINT_IN 输入如何变化, 中断标志 KINTIF 均保持不变 ; 屏蔽使能时, 可通过端口中断配置寄存器 GPIO_KINTCFG, 对各个按键输入 KINT 进行配置, 选择中断的有效触发边沿或电平 每个按键中断使能位 KINTIE, 可对相应的按键标志 KINTIF 是否触发按键中断请求, 进行配置 GPIO_KINTCFG 寄存器的按键中断配置位 KINT7CFG~KINT0CFG, 可对每个输入源的触发方式进行配置, 根据端口电平变化的不同状态, 触发中断 切换输入源触发方式时, 需先屏蔽输入源, 避免误产生中断 ; 或先禁止按键中断, 并在切换完成后, 对中断标志进行清零, 然后再使能按键中断 KINT0SEL KINT0CFG KINTIE0 KINT0_IN0 KINT0_IN1 KINT0_IN2 KINT0_IN3 KINT0_IN4 KINT0_IN5 按键中断 PORT 选择 KINT0_IN KMASK0 KINT0 按键中断产生电路 KINTIF0 IRQ_KINT0 图 4-3 外部按键中断 KINT0 电路结构示意图 上图以外部按键中断 KINT0 电路结构示意图为例, 可见其有 6 个可选外部中断源, 分别来自 PA0 PA8 PA16 PA24 PB0 和 PB8 KINT0 ~KINT7 的外部中断源如下表所示 : V /278

105 KINTx SEL0 SEL1 SEL2 SLE3 SEL4 SEL5 KINT0 PA0 PA8 PA16 PA24 PB0 PB8 KINT1 PA1 PA9 PA17 PA25 PB1 PB9 KINT2 PA2 PA10 PA18 PA26 PB2 PB10 KINT3 PA3 PA11 PA19 PA27 PB3 PB11 KINT4 PA4 PA12 PA20 PA28 PB4 PB12 KINT5 PA5 PA13 PA21 PA29 PB5 PB13 KINT6 PA6 PA14 PA22 PA30 PB6 - KINT7 PA7 PA15 PA23 PA31 PB7 - 表 4-2 KINT 选择对应列表 4. 5 Buzz 输出 Buzz 输出可用于驱动蜂鸣器等音频发声器件 GPIO_BUZC 控制寄存器用于使能 Buzz 和设定其输出信号的频率 Buzz 信号频率为 : FBUZ Fpclk = 2 ( BUZ _ LOAD + 1) 由 GPIO_PAFUNC 和 GPIO_PBFUNC 寄存器来设定 Buzz 信号直接输出至某个 GPIO 端口, 具体参见管脚对照表一节 GPIO_TXPWM 寄存器的 TX0PS 控制位设置为 11 时,Buzz 的固定频率输出信号还可被 UART0/1/2/3 的输出信号 TXD0/1/2/3 调制为 TXPWM0/1/2/3 信号, 并送至 GPIO_TXPWM 寄存器的 TX0_S~TX3_S 位选择的相应输出端口上 可通过 GPIO_TXPWM 寄存器的 TX0PLV 控制位设定为高电平调制还是低电平调制 TXD0/1/2/3 Buzz 信号 TXPWM0/1/2/3 图 4-4 Buzz 高电平调制输出波形图 V /278

106 TXD0/1/2/3 Buzz 信号 TXPWM0/1/2/3 图 4-5 Buzz 低电平调制输出波形图 4. 6 特殊功能寄存器 PA 端口状态寄存器 (GPIO_PAPORT) 偏移地址 :00 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B PORT<31:16> PORT<15:0> PORT<31:0> bit 31-0 R PA 端口电平状态 0: 低电平 1: 高电平 PA 端口数据寄存器 (GPIO_PADATA) 偏移地址 :10 H 复位值 : _ _ _ B DATA<31:16> DATA<15:0> DATA<31:0> bit 31-0 R/W PA 端口输出寄存器 0: 输出低电平 1: 输出高电平 V /278

107 PA 输出置位寄存器 (GPIO_PADATABSR) 偏移地址 :14 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABSR<31:16> DATABSR<15:0> DATABSR<31:0> bit 31-0 W PA 输出置位选择 0: 不改变输出电平 1: 相应端口输出高电平 注 : GPIO_PADATABSR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PA 端口输出清零寄存器 (GPIO_PADATABCR) 偏移地址 : 18 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABCR <31:16> DATABCR <15:0> DATABCR<31:0> bit 31-0 W PA 输出清零选择 0: 不改变输出电平 1: 相应端口输出低电平 注 : GPIO_PADATABCR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PA 端口输出翻转寄存器 (GPIO_PADATABRR) 偏移地址 : 1C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABRR <31:16> DATABRR <15:0> DATABRR<31:0> bit 31-0 W PA 输出翻转选择 0: 不改变输出电平 1: 相应端口输出翻转 注 : GPIO_PADATABRR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 V /278

108 PA 端口方向控制寄存器 (GPIO_PADIR) 偏移地址 :20 H 复位值 : _ _ _ B DIR <31:16> DIR <15:0> DIR<31:0> bit 31-0 R/W PA 端口方向控制位 0: 输出 1: 非输出 ( 若 GPIO_PAINEB 对应位为 0, 则可作为数字输入端口使用 若需使能模拟通道功能, GPIO_PAINEB 和 GPIO_PADIR 对应位都应设置为 1, 关闭数字输入和输出功能 ) PA 端口方向置位寄存器 (GPIO_PADIRBSR) 偏移地址 : 24 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBSR<31:16> DIRBSR<15:0> DIRBSR<31:0> bit 31-0 W PA 端口方向置位选择 0: 不改变 GPIO_PADIR 值 1: 对应 GPIO_PADIR 位设置为 1 注 : GPIO_PADIRBSR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PA 端口方向清零寄存器 (GPIO_PADIRBCR) 偏移地址 : 28 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBCR<31:16> DIRBCR<15:0> DIRBCR<31:0> bit 31-0 W PA 端口方向清零选择 0: 不改变 GPIO_PADIR 的值 1: 对应 GPIO_PADIR 位设置为 0 V /278

109 注 : GPIO_PADIRBCR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PA 端口方向翻转寄存器 (GPIO_PADIRBRR) 偏移地址 : 2C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBRR<31:16> DIRBRR<15:0> DIRBRR<31:0> bit 31-0 W PA 端口方向翻转选择 0: 不改变 GPIO_PADIR 的值 1: 对应 GPIO_PADIR 位值翻转 注 : GPIO_PADIRBRR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PA[7:0] 端口复用选择寄存器 (GPIO_PAFUNC0) 偏移地址 :30 H 复位值 : _ _ _ B PA7<1:0> PA6<1:0> PA5<1:0> PA4<1:0> PA3<1:0> PA2<1:0> PA1<1:0> PA0<1:0> bit31-30 PA7<1:0> bit29-28 R/W PA7 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit27-26 PA6<1:0> bit25-24 R/W PA6 复用选择位 00~11:FUN0~FUN3 bit23-22 PA5<1:0> bit21-20 R/W PA5 复用选择位 00~11:FUN0~FUN3 bit19-18 PA4<1:0> bit17-16 R/W PA4 复用选择位 00~11:FUN0~FUN3 V /278

110 bit15-14 PA3<1:0> bit13-12 R/W PA3 复用选择位 00~11:FUN0~FUN3 bit11-10 PA2<1:0> bit9-8 R/W PA2 复用选择位 00~11:FUN0~FUN3 bit7-6 PA1<1:0> bit5-4 R/W PA1 复用选择位 00~11:FUN0~FUN3 bit3-2 PA0<1:0> bit1-0 R/W PA0 复用选择位 00~11:FUN0~FUN3 PA[15:8] 端口复用选择寄存器 (GPIO_PAFUNC1) 偏移地址 :34 H 复位值 : _ _ _ B PA15<1:0> PA14<1:0> PA13<1:0> PA12<1:0> PA11<1:0> PA10<1:0> PA9<1:0> PA8<1:0> bit31-30 PA15<1:0> bit29-28 R/W PA15 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit27-26 PA14<1:0> bit25-24 R/W PA14 复用选择位 00~11:FUN0~FUN3 bit23-22 PA13<1:0> bit21-20 R/W PA13 复用选择位 00~11:FUN0~FUN3 bit19-18 PA12<1:0> bit17-16 R/W PA12 复用选择位 00~11:FUN0~FUN3 bit15-14 PA11<1:0> bit13-12 R/W PA11 复用选择位 00~11:FUN0~FUN3 bit11-10 PA10<1:0> bit9-8 R/W PA10 复用选择位 V /278

111 00~11:FUN0~FUN3 bit7-6 PA9<1:0> bit5-4 R/W PA9 复用选择位 00~11:FUN0~FUN3 bit3-2 PA8<1:0> bit1-0 R/W PA8 复用选择位 00~11:FUN0~FUN3 PA[23:16] 端口复用选择寄存器 (GPIO_PAFUNC2) 偏移地址 :38 H 复位值 : _ _ _ B PA23<1:0> PA22<1:0> PA21<1:0> PA20<1:0> PA19<1:0> PA18<1:0> PA17<1:0> PA16<1:0> bit31-30 PA23<1:0> bit29-28 R/W PA23 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit27-26 PA22<1:0> bit25-24 R/W PA22 复用选择位 00~11:FUN0~FUN3 bit23-22 PA21<1:0> bit21-20 R/W PA21 复用选择位 00~11:FUN0~FUN3 bit19-18 PA20<1:0> bit17-16 R/W PA20 复用选择位 00~11:FUN0~FUN3 bit15-14 PA19<1:0> bit13-12 R/W PA19 复用选择位 00~11:FUN0~FUN3 bit11-10 PA18<1:0> bit9-8 R/W PA18 复用选择位 00~11:FUN0~FUN3 bit7-6 PA17<1:0> bit5-4 R/W PA17 复用选择位 00~11:FUN0~FUN3 bit3-2 V /278

112 PA16<1:0> bit1-0 R/W PA16 复用选择位 00~11:FUN0~FUN3 PA[31:24] 端口复用选择寄存器 (GPIO_PAFUNC3) 偏移地址 :3C H 复位值 : _ _ _ B PA31<1:0> PA30<1:0> PA29<1:0> PA28<1:0> PA27<1:0> PA26<1:0> PA25<1:0> PA24<1:0> bit31-30 PA31<1:0> bit29-28 R/W PA31 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit27-26 PA30<1:0> bit25-24 R/W PA30 复用选择位 00~11:FUN0~FUN3 bit23-22 PA29<1:0> bit21-20 R/W PA29 复用选择位 00~11:FUN0~FUN3 bit19-18 PA28<1:0> bit17-16 R/W PA28 复用选择位 00~11:FUN0~FUN3 bit15-14 PA27<1:0> bit13-12 R/W PA27 复用选择位 00~11:FUN0~FUN3 bit11-10 PA26<1:0> bit9-8 R/W PA26 复用选择位 00~11:FUN0~FUN3 bit7-6 PA25<1:0> bit5-4 R/W PA25 复用选择位 00~11:FUN0~FUN3 bit3-2 PA24<1:0> bit1-0 R/W PA24 复用选择位 00~11:FUN0~FUN3 注 :GPIO_PAFUNC 寄存器仅用于端口的数字输入输出功能选择 使用端口的模拟功能时, 需要设置 GPIO_PADIR 和 GPIO_PAINEB 寄存器的对应位为 1, 关闭端口的数字输入和输出功能 V /278

113 PA 端口输入控制寄存器 (GPIO_PAINEB) 偏移地址 :40 H 复位值 : _ _ _ B INEB<31:16> INEB<15:0> INEB<31:0> bit31-0 R/W 端口数字输入功能使能位 0: 开启 1: 关断 PA 端口开漏控制寄存器 (GPIO_PAODE) 偏移地址 :44 H 复位值 : _ _ _ B ODE<31:16> ODE<15:0> ODE<31:0> bit31-0 R/W 端口输出开漏使能位, 端口为推挽输出 1: 使能, 端口为开漏输出 PA 端口弱上拉使能寄存器 (GPIO_PAPUE) 偏移地址 :48 H 复位值 : _ _ _ B PUE <31:16> PUE <15:0> PUE<31:0> bit31-0 R/W 端口弱上拉使能位 1: 使能 V /278

114 PA 端口弱下拉使能寄存器 (GPIO_PAPDE) 偏移地址 :4C H 复位值 : _ _ _ B PDE <31:16> PDE <15:0> PDE<31:0> bit31-0 R/W 端口弱下拉使能位 1: 使能 PA 端口驱动电流控制寄存器 (GPIO_PADS) 偏移地址 :50 H 复位值 : _ _ _ B DS <31:16> DS <15:0> DS<31:0> bit31-0 R/W 端口输出驱动能力选择位 0: 普通电流驱动 1: 强电流驱动 PB 端口状态寄存器 (GPIO_PBPORT) 偏移地址 :80 H 复位值 : _ _00xxxxxx _xxxxxxxx B PORT<13:0> - bit PORT<13:0> bit13-0 R PB 端口电平状态 0: 低电平 1: 高电平 V /278

115 PB 端口数据寄存器 (GPIO_PBDATA) 偏移地址 :90 H 复位值 : _ _ _ B DATA<13:0> - bit DATA<13:0> bit13-0 R/W PB 端口输出电平 0: 输出低电平 1: 输出高电平 PB 端口输出置位寄存器 (GPIO_PBDATABSR) 偏移地址 :94 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABSR<13:0> - bit DATABSR<13:0> bit13-0 W PB 输出置位选择 0: 不改变输出电平 1: 相应端口输出高电平 注 : GPIO_PBDATABSR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB 端口输出清零寄存器 (GPIO_PBDATABCR) 偏移地址 :98 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABCR<13:0> - bit DATABCR<13:0> bit13-0 W PB 输出清零选择 0: 不改变输出电平 1: 相应端口输出低电平 V /278

116 注 : GPIO_PBDATABCR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB 端口输出翻转寄存器 (GPIO_PBDATABRR) 偏移地址 :9C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABRR<13:0> - bit DATABRR<13:0> bit13-0 W PB 输出翻转选择 0: 不改变输出电平 1: 相应端口输出翻转 注 : GPIO_PBDATABRR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB 端口方向控制寄存器 (GPIO_PBDIR) 偏移地址 :A0 H 复位值 : _ _ _ B DIR<13:0> - bit DIR<13:0> bit13-0 R/W PB 端口方向控制位 0: 输出 1: 输入 ( 若 GPIO_PBINEB 对应位为 0, 则可作为数字输入端口使用 若需使能模拟通道功能, GPIO_PBINEB 和 GPIO_PBDIR 对应位都应设置为 1, 关闭数字输入和输出功能 ) V /278

117 PB 端口方向置位寄存器 (GPIO_PBDIRBSR) 偏移地址 :A4 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBSR<13:0> - bit DIRBSR<13:0> bit13-0 W PB 端口方向置位选择 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位设置为 1 注 : GPIO_PBDIRBSR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB 端口方向清零寄存器 (GPIO_PBDIRBCR) 偏移地址 :A8 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBCR<13:0> - bit DIRBCR<13:0> bit13-0 W PB 端口方向清零选择 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位设置为 0 注 : GPIO_PBDIRBCR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB 端口方向翻转寄存器 (GPIO_PBDIRBRR) 偏移地址 :AC H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBRR<13:0> - bit DIRBRR<13:0> bit13-0 W PB 端口方向翻转选择 V /278

118 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位值翻转 注 : GPIO_PBDIRBRR 寄存器仅支持 Word 写入的方式, 读出为 0, 对其进行 Bitband 操作无效 PB[7:0] 端口复用选择寄存器 (GPIO_PBFUNC0) 偏移地址 :B0 H 复位值 : _ _ _ B PB7<1:0> PB6<1:0> PB5<1:0> PB4<1:0> PB3<1:0> PB2<1:0> PB <1:0> PB0<1:0> bit31-30 PB7<1:0> bit29-28 R/W PB7 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit27-26 PB6<1:0> bit25-24 R/W PB6 复用选择位 00~11:FUN0~FUN3 bit23-22 PB5<1:0> bit21-20 R/W PB5 复用选择位 00~11:FUN0~FUN3 bit19-18 PB4<1:0> bit17-16 R/W PB4 复用选择位 00~11:FUN0~FUN3 bit15-14 PB3<1:0> bit13-12 R/W PB3 复用选择位 00~11:FUN0~FUN3 bit11-10 PB2<1:0> bit9-8 R/W PB2 复用选择位 00~11:FUN0~FUN3 bit7-6 PB1<1:0> bit5-4 R/W PB1 复用选择位 00~11:FUN0~FUN3 bit3-2 PB0<1:0> bit1-0 R/W PB0 复用选择位 00~11:FUN0~FUN3 V /278

119 PB[13:8] 端口复用选择寄存器 (GPIO_PBFUNC1) 偏移地址 :B4 H 复位值 : _ _ _ B PB13<1:0> PB12<1:0> PB11<1:0> PB10<1:0> PB9<1:0> PB8<1:0> bit31-22 PB13<1:0> bit21-20 R/W PB13 复用选择位 00:FUN0 01:FUN1 10:FUN2 11:FUN3 bit19-18 PB12<1:0> bit17-16 R/W PB12 复用选择位 00~11:FUN0~FUN3 bit15-14 PB11<1:0> bit13-12 R/W PB11 复用选择位 00~11:FUN0~FUN3 bit11-10 PB10<1:0> bit9-8 R/W PB10 复用选择位 00~11:FUN0~FUN3 bit7-6 PB9<1:0> bit5-4 R/W PB9 复用选择位 00~11:FUN0~FUN3 bit3-2 PB8<1:0> bit1-0 R/W PB8 复用选择位 00~11:FUN0~FUN3 注 :GPIO_PBFUNC 仅用于端口的数字输入输出功能选择 使用 PB 端口的模拟功能时, 需要设置 GPIO_PBDIR 和 GPIO_PBINEB 寄存器的对应位为 1, 关闭端口的数字输入和输出功能 PB 端口输入控制寄存器 (GPIO_PBINEB) 偏移地址 :C0 H 复位值 : _ _ _ B INEB<13:0> - bit V /278

120 INEB<13:0> bit13-0 R/W 端口数字输入功能使能位 0: 使能 1: 禁止 PB 端口开漏控制寄存器 (GPIO_PBODE) 偏移地址 :C4 H 复位值 : _ _ _ B ODE<13:0> - bit ODE<13:0> bit13-0 R/W 端口输出开漏使能位, 端口为推挽输出 1: 使能, 端口为开漏输出 PB 端口弱上拉使能寄存器 (GPIO_PBPUE) 偏移地址 :C8 H 复位值 : _ _ _ B PUEN<13:0> - bit PUEN<13:0> bit13-0 R/W 端口弱上拉使能位 1: 使能 PB 端口弱下拉使能寄存器 (GPIO_PBPDE) 偏移地址 :CC H 复位值 : _ _ _ B PDEN<13:0> - bit V /278

121 PDEN<13:0> bit13-0 R/W 端口弱下拉使能位 1: 使能 PB 端口驱动电流控制寄存器 (GPIO_PBDS) 偏移地址 :D0 H 复位值 : _ _ _ B DS<13:0> - bit DS<13:0> bit13-0 R/W 端口输出驱动能力选择位 0: 普通电流驱动 1: 强电流驱动 PINT 中断使能寄存器 (GPIO_PINTIE) 偏移地址 :300 H 复位值 : _ _ _ B PMASK<7:0> PINTIE<7:0> bit31-16 PMASK<7:0> bit15-8 R/W PINT 中断源屏蔽控制位 0: 不屏蔽 1: 屏蔽 PINTIE<7:0> bit7-0 R/W PINT 使能位 1: 使能 PINT 中断标志寄存器 (GPIO_PINTIF) 偏移地址 :304 H 复位值 : _ _ _ B PINTIF<7:0> V /278

122 - bit PINTIF<7:0> bit7-0 R/W GPIO 外部中断标志位 0: 无中断 1: 有中断软件写 1 清除中断标志位, 写 0 无效 注 : 对 GPIO_PINTIF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示 有中断发生 PINT0~7 中断源选择寄存器 (GPIO_PINTSEL) 偏移地址 :308 H 复位值 : _ _ _ B PINT7<2:0> PINT6<2:0> PINT5<2:0> PINT4<2:0> PINT3<2:0> PINT2<2:0> PINT1<2:0> PINT0<2:0> bit31 PINT7SEL<2:0> bit30-28 R/W PINT7 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit27 PINT6SEL<2:0> bit26-24 R/W PINT6 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit23 PINT5SEL<2:0> bit22-20 R/W PINT5 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit19 PINT4SEL<2:0> bit18-16 R/W PINT4 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit15 PINT3SEL<2:0> bit14-12 R/W PINT3 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit11 PINT2SEL<2:0> bit10-8 R/W PINT2 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 V /278

123 bit7 PINT1SEL<2:0> bit6-4 R/W PINT1 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit3 PINT0SEL<2:0> bit2-0 R/W PINT0 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 PINT 中断配置寄存器 (GPIO_PINTCFG) 偏移地址 :30C H 复位值 : _ _ _ B PINT7<2:0> PINT6<2:0> PINT5<2:0> PINT4<2:0> PINT3<2:0> PINT2<2:0> PINT1<2:0> PINT0<2:0> bit31 PINT7CFG<2:0> bit30-28 R/W PINT7 配置位参见 GPIO_PINTCFG 详情 bit27 PINT6CFG<2:0> bit26-24 R/W PINT6 配置位参见 GPIO_PINTCFG 详情 bit23 PINT5CFG<2:0> bit22-20 R/W PINT5 配置位参见 GPIO_PINTCFG 详情 bit19 PINT4CFG<2:0> bit18-16 R/W PINT4 配置位参见 GPIO_PINTCFG 详情 bit15 PINT3CFG<2:0> bit14-12 R/W PINT3 配置位参见 GPIO_PINTCFG 详情 bit11 PINT2CFG<2:0> bit10-8 R/W PINT2 配置位参见 GPIO_PINTCFG 详情 bit7 PINT1CFG<2:0> bit6-4 R/W PINT1 配置位参见 GPIO_PINTCFG 详情 bit3 PINT0CFG<2:0> bit2-0 R/W PINT0 配置位参见 GPIO_PINTCFG 详情 V /278

124 寄存器名称 PINTCFG<2:0> bit 2-0 R/W GPIO_PINTCFG 详情 GPIO_PINTCFG 配置位 000: 上升沿触发中断 001: 下降沿触发中断 010: 高电平触发中断 011: 低电平触发中断 1xx: 上升沿和下降沿均触发中断 KINT 中断使能寄存器 (GPIO_KINTIE) 偏移地址 :310 H 复位值 : _ _ _ B KMASK<7:0> KINTIE<7:0> bit31-16 KMASK<7:0> bit15-8 R/W KIN 按键输入屏蔽控制位 0: 不屏蔽 1: 屏蔽 KINTIE<7:0> bit7-0 R/W KINT 中断使能位 1: 使能 KINT 中断标志寄存器 (GPIO_KINTIF) 偏移地址 :314 H 复位值 : _ _ _ B KINTIF<7:0> - bit KINTIF<7:0> bit7-0 R/W GPIO 按键中断标志位 0: 无中断 1: 有中断软件写 1 清除中断标志位, 写 0 无效 注 : 对 GPIO_KINTIF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 V /278

125 KINT0~7 中断源选择寄存器 (GPIO_KINTSEL) 偏移地址 :318 H 复位值 : _ _ _ B KINT7<2:0> KINT6<2:0> KINT5<2:0> KINT4<2:0> KINT3<2:0> KINT2<2:0> KINT1<2:0> KINT0<2:0> bit31 KINT7SEL<2:0> bit30-28 R/W KINT7 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit27 KINT6SEL<2:0> bit26-24 R/W KINT6 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit23 KINT5SEL<2:0> bit22-20 R/W KINT5 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit19 KINT4SEL<2:0> bit18-16 R/W KINT4 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit15 KINT3SEL<2:0> bit14-12 R/W KINT3 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit11 KINT2SEL<2:0> bit10-8 R/W KINT2 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit7 KINT1SEL<2:0> bit6-4 R/W KINT1 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 bit3 KINT0SEL<2:0> bit2-0 R/W KINT0 输入选择位 000~101:SEL0~SEL5 其余 : SEL0 V /278

126 KINT 中断配置寄存器 (GPIO_KINTCFG) 偏移地址 :31C H 复位值 : _ _ _ B KINT7<2:0> KINT6<2:0> KINT5<2:0> KINT4<2:0> KINT3<2:0> KINT2<2:0> KINT1<2:0> KINT0<2:0> bit31 KINT7CFG<2:0> bit30-28 R/W KINT7 配置位参见 GPIO_KINTCFG 详情 bit27 KINT6CFG<2:0> bit26-24 R/W KINT6 配置位参见 GPIO_KINTCFG 详情 bit23 KINT5CFG<2:0> bit22-20 R/W KINT5 配置位参见 GPIO_KINTCFG 详情 bit19 KINT4CFG<2:0> bit18-16 R/W KINT4 配置位参见 GPIO_KINTCFG 详情 bit15 KINT3CFG<2:0> bit14-12 R/W KINT3 配置位参见 GPIO_KINTCFG 详情 bit11 KINT2CFG<2:0> bit10-8 R/W KINT2 配置位参见 GPIO_KINTCFG 详情 bit7 KINT1CFG<2:0> bit6-4 R/W KINT1 配置位参见 GPIO_KINTCFG 详情 bit3 KINT0CFG<2:0> bit2-0 R/W KINT0 配置位参见 GPIO_KINTCFG 详情 寄存器名称 GPIO_KINTCFG bit 2-0 R/W GPIO_KINTCFG 详情 GPIO_KINTCFG 配置位 000: 上升沿触发中断 001: 下降沿触发中断 010: 高电平触发中断 011: 低电平触发中断 1xx: 上升沿和下降沿均触发中断 V /278

127 端口中断 20ns 滤波器分配控制寄存器 (GPIO_IOINTFLTS) 偏移地址 :330 H 复位值 : _ _ _ B FLT_S<7:0> - bit FLT_S<7:0> bit7-0 R/W 端口中断 20ns 滤波器分配控制位 0: 用于 PINT 中断信号源的滤波 1: 用于 KINT 中断信号源的滤波 TMR 输入端口 20ns 滤波器分配控制寄存器 (GPIO_TMRFLTSEL) 偏移地址 :340 H 复位值 : _ _ _ B FLT3_SEL<3:0> FLT2_SEL<3:0> FLT1_SEL<3:0> FLT0_SEL<3:0> - bit FLT3_SEL<3:0> bit15-12 R/W TMR FLT3 滤波器控制位 4 h0:t16n0_0 使用 TMR_FLT3 4 h1:t16n0_1 使用 TMR_FLT3 4 h2:t16n1_0 使用 TMR_FLT3 4 h3:t16n1_1 使用 TMR_FLT3 4 h4:t16n2_0 使用 TMR_FLT3 4 h5:t16n2_1 使用 TMR_FLT3 4 h6:t16n3_0 使用 TMR_FLT3 4 h7:t16n3_1 使用 TMR_FLT3 4 h8:t32n0_0 使用 TMR_FLT3 4 h9:t32n0_1 使用 TMR_FLT3 其它 : 预留 FLT2_SEL<3:0> bit11-8 R/W TMR FLT2 滤波器控制位 4 h0:t16n0_0 使用 TMR_FLT2 4 h1:t16n0_1 使用 TMR_FLT2 4 h2:t16n1_0 使用 TMR_FLT2 4 h3:t16n1_1 使用 TMR_FLT2 4 h4:t16n2_0 使用 TMR_FLT2 4 h5:t16n2_1 使用 TMR_FLT2 4 h6:t16n3_0 使用 TMR_FLT2 4 h7:t16n3_1 使用 TMR_FLT2 V /278

128 FLT1_SEL<3:0> bit7-4 R/W FLT0_SEL<3:0> bit3-0 R/W 4 h8:t32n0_0 使用 TMR_FLT2 4 h9:t32n0_1 使用 TMR_FLT2 其它 : 预留 TMR FLT1 滤波器控制位 4 h0:t16n0_0 使用 TMR_FLT1 4 h1:t16n0_1 使用 TMR_FLT1 4 h2:t16n1_0 使用 TMR_FLT1 4 h3:t16n1_1 使用 TMR_FLT1 4 h4:t16n2_0 使用 TMR_FLT1 4 h5:t16n2_1 使用 TMR_FLT1 4 h6:t16n3_0 使用 TMR_FLT1 4 h7:t16n3_1 使用 TMR_FLT1 4 h8:t32n0_0 使用 TMR_FLT1 4 h9:t32n0_1 使用 TMR_FLT1 其它 : 预留 TMR FLT0 滤波器控制位 4 h0:t16n0_0 使用 TMR_FLT0 4 h1:t16n0_1 使用 TMR_FLT0 4 h2:t16n1_0 使用 TMR_FLT0 4 h3:t16n1_1 使用 TMR_FLT0 4 h4:t16n2_0 使用 TMR_FLT0 4 h5:t16n2_1 使用 TMR_FLT0 4 h6:t16n3_0 使用 TMR_FLT0 4 h7:t16n3_1 使用 TMR_FLT0 4 h8:t32n0_0 使用 TMR_FLT0 4 h9:t32n0_1 使用 TMR_FLT0 其它 : 预留 脉宽调制寄存器 (GPIO_TXPWM) 偏移地址 :380 H 复位值 : _ _ _ B TX3_S<1:0> TX3PLV TX3PS<1:0> TX2_S<1:0> TX2PLV TX2PS<1:0> TX1_S<1:0> TX1PLV TX1PS<1:0> TX0_S<1:0> TX0PLV TX0PS<1:0> - bit TX3_S<1:0> bit30-29 R/W TXPWM3 调制输出选择 00:TXD3 管脚为 TXPWM3 输出 01:BUZ 管脚为 TXPWM3 输出 10:T16N3OUT0 管脚为 TXPWM3 输出 11:T16N3OUT1 管脚为 TXPWM3 输出 TX3PLV bit28 R/W TXPWM3 调制方式选择位 V /278

129 0: 低电平调制 (TXD3 与 TX3PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (TXD3 与 TX3PS 所选取的脉冲信号进行硬件与操作 ) - bit TX3PS<1:0> bit25-24 R/W TXPWM3 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N3OUT0 进行调制 10: 与 T16N3OUT1 进行调制 11: 与 BUZ 进行调制 - bit TX2_S<1:0> bit22-21 R/W TXPWM2 调制输出选择 00:TXD2 管脚为 TXPWM2 输出 01:BUZ 管脚为 TXPWM2 输出 10:T16N2OUT0 管脚为 TXPWM2 输出 11:T16N2OUT1 管脚为 TXPWM2 输出 TX2PLV bit20 R/W TXPWM2 调制方式选择位 0: 低电平调制 (TXD2 与 TX2PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (TXD2 与 TX2PS 所选取的脉冲信号进行硬件与操作 ) - bit TX2PS<1:0> bit17-16 R/W TXPWM2 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N2OUT0 进行调制 10: 与 T16N2OUT1 进行调制 11: 与 BUZ 进行调制 - bit TX1_S<1:0> bit14-13 R/W TXPWM1 调制输出选择 00:TXD1 管脚为 TXPWM1 输出 01:BUZ 管脚为 TXPWM1 输出 10:T16N1OUT0 管脚为 TXPWM1 输出 11:T16N1OUT1 管脚为 TXPWM1 输出 TX1PLV bit12 R/W TXPWM1 调制方式选择位 0: 低电平调制 (TXD1 与 TX1PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (TXD1 与 TX1PS 所选取的脉冲信号进行硬件与操作 ) - bit TX1PS<1:0> bit9-8 R/W TXPWM1 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N1OUT0 进行调制 10: 与 T16N1OUT1 进行调制 V /278

130 11: 与 BUZ 进行调制 - bit7 - - TX0_S<1:0> bit6-5 R/W TXPWM0 调制输出选择 00:TXD0 管脚为 TXPWM0 输出 01:BUZ 管脚为 TXPWM0 输出 10:T16N0OUT0 管脚为 TXPWM0 输出 11:T16N0OUT1 管脚为 TXPWM0 输出 TX0PLV bit4 R/W TXPWM0 调制方式选择位 0: 低电平调制 (TXD0 与 TX0PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (TXD0 与 TX0PS 所选取的脉冲信号进行硬件与操作 ) - bit TX0PS<1:0> bit1-0 R/W TXPWM0 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N0OUT0 进行调制 10: 与 T16N0OUT1 进行调制 11: 与 BUZ 进行调制 注 1:TXPWM0/1/2/3 输出至 BUZ 管脚的优先级依次为 :TXPWM0 > TXPWM1 > TXPWM2 > TXPWM3; 注 2: 调制输出信号 TXPWM 是 UART 的发送信号 TXD 被 BUZ T16NxOUT0 T16NxOUT1 调制后的信号 以 TXPWM0 为例,UART0 的 TXD0 可通过 TX0PS 来选择被 BUZ T16N0OUT 或 T16N1OUT 调制, 调制后的 TXPWM0 输出可通过 TX0_S 来选择输出至 TXD0 管脚 BUZ 管脚 T16N0OUT 管脚或 T16N0OUT1 管脚 要在 TX0_S 选择的管脚上观察到 TXPWM0 输出 : 必须使能 UART0 TXD 发送数据 ;TX0PS 为非零值, 其所选取的 BUZ T16N0OUT0 或 T16N0OUT1 必须有输出波形 BUZ 控制寄存器 (GPIO_BUZC) 偏移地址 :390 H 复位值 : _ _ _ B BUZ_LOAD<19:8> BUZ_LOAD<7:0> BUZEN - bit BUZ_LOAD<19:0> bit27-8 R/W BUZ 计数装载值寄存器 BUZ 信号频率的计算公式为 : FPCLK / (2*(BUZ_LOAD+1)) - bit BUZEN bit0 R/W BUZ 使能位 1: 使能 V /278

131 第 5 章外设 5. 1 定时器 / 计数器 位定时器 / 计数器 T16N 以 T16N0 为例,T16N1/T16N2/T16N3 同 T16N 概述 1 个 8 位可配置预分频器, 分频时钟作为 T16N_CNT 的定时 / 计数时钟 预分频时钟源可选 :PCLK 或 T16N0CK0/T16N0CK1 预分频计数器可由 T16N_PRECNT 寄存器设定预设值 分频比由寄存器 T16N_PREMAT 设定 1 个 16 位可配置定时 / 计数寄存器 T16N_CNT 支持定时 / 计数工作模式 支持 4 组 16 位计数匹配寄存器 T16N_MAT0/T16N_MAT1/T16N_MAT2/ T16N_MAT3, 计数匹配后支持下列操作 : - 产生中断 - 支持 T16N_CNT 计数寄存器三种操作 : 保持, 清 0 或继续计数 - 支持 T16N0OUT0/T16N0OUT1 端口四种操作 : 保持, 清 0, 置 1 或取反支持输入捕捉工作模式 捕捉边沿可配置 捕捉次数可配置 支持调制工作模式 通过对匹配寄存器进行配置, 同时设置匹配后端口输出特性, 可得到相应的 PWM 输出 支持刹车控制 - 刹车信号源可选择为 PINT0~7 中任意一个 - 刹车信号电平极性可配置 - 刹车信号可滤除毛刺 - 刹车后端口输出电平可配置支持计数中触发功能 匹配 0 匹配 1 匹配 2 匹配 3 与 T16N_CNT 计数值匹配触发或 T16N_CNT 计 数值溢出可触发 ADC 转换 V /278

132 结构框图 T16N_MAT0 ADC T16N_TOP0 数值比较器 T16N0OUT0 PCLK T16N0CK0 M U X T16N_PREMAT T16N_CNT T16N0IN0 捕捉选择 T16N_MAT0 图 5-1 T16N0 电路结构框图 T16N 定时 / 计数功能设置 T16N_CON0 寄存器的 MOD<1:0>=00 或 01, 使 T16N 工作在定时 / 计数模式 设置 T16N_CON0 寄存器的 EN=1, 使能 T16N, 计数值寄存器 T16N_CNT 从预设值开始累加计数 设置 T16N_CON0 寄存器的 CS, 选择计数时钟源 时钟源为内部时钟 PCLK 时, 为定时模式 ; 时钟源为外部时钟 T16N0CK0/T16N0CK1 端口输入时, 为计数模式 设置 T16N_CON0 寄存器的 SYNC, 选择外部时钟 T16N0CK0/T16N0CK1 是否被内部时钟 PCLK 同步 当选择外部时钟被同步时, 为同步计数模式, 否则为异步计数模式 同步计数模式时,T16N0CK0/T16N0CK1 端口输入的高 / 低电平脉宽均必须大于 2 个 PCLK 时钟周期 设置 T16N_CON0 寄存器的 EDGE, 选择外部时钟计数方式 : 上升沿计数, 下降沿计数, 或上升 / 下降沿均计数, 其中上升 / 下降沿均计数只适用于同步计数模式 设置 T16N_CON0 寄存器的 MAT0S/MAT1S/MAT2S/MAT3S<1:0>, 选择计数匹配后 T16N_CNT 计数值寄存器的工作状态 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=00 : 当 T16N_CNT 计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 继续累加计数, 不产生中断, 当计数到 0xFFFF 后, 下一次累加计数溢出,T16N_CNT 的值为 0x0000, 并产生中断, 重新开始累加计数 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=01: 当 T16N_CNT 计数值匹配 T16N_MAT0/ T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 计数值将保持, 即在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时,T16N_CNT 不再累加计数, 只产生中断 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=10: 当 T16N_CNT 计数值匹配 T16N_MAT0/ T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 计数值在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时被清 0, 并产生中断, 重新开始累加计数 V /278

133 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=11: 当 T16N_CNT 计数值匹配 T16N_MAT0/ T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 继续累加计数, 并在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时, 产生中断, 当计数到 0xFFFF, 下一次累加计数溢出, T16N_CNT 的值为 0x0000, 并产生中断, 重新开始累加计数 对设置的多个不同匹配值 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3, 当计数值匹配到每一个匹配值时, 会产生相应的中断 由于中断产生后,T16N 继续累加计数, 若未及时读取匹配中断标志位, 则有可能后续的匹配中断也已产生, 从而会同时读到多个有效的匹配中断标志 举例说明 :T16N_CNT 计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2 后的工作方式 T16N_MAT0<15:0>=0x0002,T16N_CON0 寄存器的 MAT0S<1:0>=00, 继续计数, 不产生中断 T16N_MAT1<15:0>=0x0004,T16N_CON0 寄存器的 MAT1S<1:0>=11, 继续计数, 产生中断 ; T16N_MAT2<15:0>=0x0006,T16N_CON0 寄存器的 MAT2S<1:0>=10, 清 0, 产生中断, 重新计数 预分频设置为 1:1, 采用内部 PCLK 时钟源 计数匹配功能示意图如下所示 : MAT1IF MAT2IF PCLK T16N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0000 0x0001 图 5-2 T16N 计数匹配功能示意图 T16N 输入捕捉功能设置 T16N_CON0 寄存器的 MOD<1:0>=10, 使 T16N 工作在捕捉模式 在捕捉工作模式下, 需设置 T16N_CON0 寄存器的 CS<1:0>=00, 使 T16N_CNT 采用内部 PCLK 时钟源计数 ; 并且设置 T16N_CON0 寄存器的 MAT0S/MAT1S/MAT2S/ MAT3S<1:0>=00, 计数匹配不影响 T16N_CNT 的工作 在捕捉工作模式下, 对端口 T16N0IN0 和 T16N0IN1 的状态进行检测 当 T16N0IN0 端口的状态变化符合所设定的捕捉事件时, 将 T16N_CNT 和 T16N_PRECNT 的当前值分别装载到 T16N_MAT0 和 T16N_MAT2 寄存器中, 产生 T16N 的 CAP0IF 中断 通过使能 T16N_CON1 寄存器的 CAPL0 可在 CAP0IF 中断时将 T16N_CNT 和 T16N_PRECNT 清零 ; 若 CAPL0 为零, 则计数器继续累加 当 T16N0IN1 端口的状态变化符合所设定的捕捉事件时, 将 T16N_CNT 和 T16N_PRECNT 的当前值分别装载到 T16N_MAT1 和 T16N_MAT3 寄存器中, 产生 T16N 的 CAP1IF 中断 通过使能 T16N_CON1 寄存器的 CAPL1 可在 CAP1IF 中断时将 V /278

134 T16N_CNT 和 T16N_PRECNT 清零 ; 若 CAPL1 为零, 则计数器继续累加 当 T16N_CNT 计数直到溢出时, 仍未检测到设定的捕捉事件,T16N_CNT 的值被清零, 并重新开始累加计数, 且产生溢出中断 设置 T16N_CON1 寄存器的 CAPPE 和 CAPNE, 可选择 T16N0IN0 和 T16N0IN1 端口信号的捕捉事件 选择捕捉上升沿 : 只设置 CAPPE 为 1; 选择捕捉下将沿 : 只设置 CAPNE 为 1; 选择捕捉上升沿 / 下降沿 : 设置 CAPPE 为 1,TCAPNE 为 1 设置 T16N_CON1 寄存器的 CAPIS0, 选择 T16N0IN0 是否作为捕捉输入端口 ; 设置 CAPIS1, 选择 T16N0IN1 是否作为捕捉输入端口 ; 可同时选择两个端口作为捕捉输入端口 设置 T16N_CON1 寄存器的 TCAPT, 可选择捕捉事件发生的次数 举例说明 : 捕捉 T16N0IN0 端口上升沿 / 下降沿, 捕捉 8 次 ; 预分频设置为 1:1 T16N_CON0 寄存器的 MOD<1:0>=10,CS<1:0>=00,MAT0S<1:0>=00, T16N_CON1 寄存器的 CAPPE=1,CAPNE=1,CAPIS=1,CAPT<3:0>=0111 CAP0IF CAP0IF T16N0IN0 PCLK 0x0000 0x0000 0x0000 T16N_CNT T16N_MAT0 0x0000 Load Event Load Event 0x0000 0x0000 0x0000 T16N_PRECNT T16N_MAT2 0x0000 Load Event Load Event 图 5-3 T16N0 捕捉功能示意图在捕捉工作模式下, 修改 T16N 预分频器计数匹配寄存器 T16N_PREMAT 时, 预分频器计数不会被清零 因此, 首次捕捉可以从一个非零预分频器计数开始 当捕捉事件匹配发生时, 产生的中断标志位必须通过软件清除, 并及时读取捕捉到 T16N_MAT0/ T16N_MAT1/T16N_MAT2/T16N_MAT3 寄存器的值, 在下一次捕捉事件发生时, T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 寄存器会装载为新的计数值 V /278

135 T16N 输出调制功能设置 T16N_CON0 寄存器的 MOD<1:0>=11, 使 T16N 工作在调制模式 在调制工作模式下, 需设置 T16N_CON0 寄存器的 CS<1:0>=00, 使 T16N_CNT 采用内部 PCLK 时钟源计数 设置 T16N_CON2 寄存器的 MOE0, 选择 T16N0OUT0 是否使能为匹配输出端口, 使能时启用 T16N_MAT0/1 匹配寄存器和 T16N_CNT 进行匹配 ; 设置设置 T16N_CON2 寄存器的 MOE1, 选择 T16N0OUT1 是否使能为匹配输出端口, 使能时启用 T16N_MAT2/3 匹配寄存器和 T16N_CNT 进行匹配 设置 T16N_CON2 寄存器的 MOM0/MOM1/MOM2/MOM3, 选择计数匹配发生时, 对 T16N0OUT0/1 端口的影响 : 保持, 清 0, 置 1, 取反 设置 T16N_CON2 寄存器的 POL0/1, 选择 T16N0OUT0/1 端口输出的极性 举例说明 : 同步模式, 在 T16N0OUT0 和 T16N0OUT1 端口, 产生双边 PWM 波形 T16N_CON2 寄存器中 : MOE0=1,MOE1=1;T16N0OUT0 和 T16N0OUT1 匹配输出端口使能 ; MOM0<1:0>=10;T16N_MAT0 匹配,T16N0OUT0 输出高电平 ; MOM1<1:0>=01;T16N_MAT1 匹配,T16N0OUT0 输出低电平 ; MOM2<1:0>=10;T16N_MAT2 匹配,T16N0OUT1 输出高电平 ; MOM3<1:0>=01;T16N_MAT3 匹配,T16N0OUT1 输出低电平 ; T16N_MAT0 = 0x0002;T16N_MAT1 = 0x0004; T16N_MAT2 = 0x0006;T16N_MAT3 = 0x0008; T16N_CON0 寄存器中 : MOD<1:0>=11;T16N 设置为调制输出 MAT0S<1:0>=11;T16N_CNT 继续计数, 并产生中断 MAT1S<1:0>=11;T16N_CNT 继续计数, 并产生中断 MAT2S<1:0>=11;T16N_CNT 继续计数, 并产生中断 MAT3S<1:0>=10;T16N_CNT 清 0, 并产生中断 V /278

136 MAT0IF MAT1IF MAT2IF MAT3IF PCLK T16N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0000 T16N0OUT0 T16N0OUT1 图 5-4 T16N 输出调制功能示意图 设置 T16N_CON2 寄存器的 PBKEN, 选择是否使能刹车功能 设置 T16N_CON2 寄存器的 PBKPS, 选择刹车信号的极性 设置 T16N_CON2 寄存器的 PBKS, 选择刹车信号输入源 设置 T16N_CON2 寄存器的 PBKL0/1, 选择刹车事件发生后 T16N0OUT0/1 端口输出的电平 当外部有效刹车信号满足一定时间宽度后, 即发生刹车事件, 此时 T16N_CON2 寄存器的 PBKF 置 1,T16N_CNT 停止计数, 同时 T16N0OUT0/1 端口输出 T16N_CON2 寄存器的 PBKL0/1 所设置的电平 当外部刹车信号撤销后, 通过对 PBKF 写入 1 清除该标志, 并恢复正常的调制输出功能 特殊功能寄存器 T16N 计数值寄存器 (T16N_CNT) 偏移地址 :00 H 复位值 : _ _ _ B CNT<15:0> - bit CNT<15:0> bit 15-0 R/W T16N_CNT 计数值 T16N 预分频器计数值寄存器 (T16N_PRECNT) 偏移地址 :08 H 复位值 : _ _ _ B PRECNT<7:0> - bit PRECNT<7:0> bit7-0 R/W T16N 预分频器计数值 V /278

137 T16N 预分频器计数匹配寄存器 (T16N_PREMAT) 偏移地址 :0C H 复位值 : _ _ _ B PREMAT<7:0> - bit PREMAT<7:0> bit7-0 R/W 预分频比例设置位 00: 预分频 1:1 01: 预分频 1:2 02: 预分频 1:3 FE: 预分频 1:255 FF: 预分频 1:256 T16N 控制寄存器 0(T16N_CON0) 偏移地址 :10 H 复位值 : _ _ _ B ASYWEN MAT3S<1:0> MAT2S<1:0> MAT1S<1:0> MAT0S<1:0> MOD<1:0> EDGE<1:0> SYNC CS<1:0> EN bit 31~17 ASYWEN bit 16 R/W 外部时钟异步计数模式下, 对计数器的写使能位 写 T16N_CNT 和 T16N_PRECNT, 如果强制写, 有可能写操作不成功 ( 为避免对计数器的写操作错误, 不建议用户对该位写 0) 1: 使能写 T16N_CNT 和 T16N_PRECNT MAT3S<1:0> bit 15~14 R/W T16N_CNT 匹配 T16N_MAT3 后的工作模式选择位 00:T16N_CNT 继续计数, 不产生中断 01:T16N_CNT 保持, 产生中断 10:T16N_CNT 清 0 并重新计数, 产生中断 11:T16N_CNT 继续计数, 产生中断 MAT2S<1:0> bit 13~12 R/W T16N_CNT 匹配 T16N_MAT2 后的工作模式选择位 00:T16N_CNT 继续计数, 不产生中断 01:T16N_CNT 保持, 产生中断 10:T16N_CNT 清 0 并重新计数, 产生中断 11:T16N_CNT 继续计数, 产生中断 V /278

138 MAT1S<1:0> bit 11~10 R/W MAT0S<1:0> bit 9~8 R/W MOD<1:0> bit 7~6 R/W EDGE<1:0> bit 5~4 R/W SYNC bit 3 R/W CS<1:0> bit 2~1 R/W EN bit 0 R/W T16N_CNT 匹配 T16N_MAT1 后的工作模式选择位 00:T16N_CNT 继续计数, 不产生中断 01:T16N_CNT 保持, 产生中断 10:T16N_CNT 清 0 并重新计数, 产生中断 11:T16N_CNT 继续计数, 产生中断 T16N_CNT 匹配 T16N_MAT0 后的工作模式选择位 00:T16N_CNT 继续计数, 不产生中断 01:T16N_CNT 保持, 产生中断 10:T16N_CNT 清 0 并重新计数, 产生中断 11:T16N_CNT 继续计数, 产生中断工作模式选择位 00: 定时 / 计数模式 01: 定时 / 计数模式 10: 捕捉模式 11: 调制模式外部时钟计数边沿选择位 00: 上升沿计数 01: 下降沿计数 10: 上升沿 / 下降沿均计数 ( 仅同步计数模式 ) 11: 上升沿 / 下降沿均计数 ( 仅同步计数模式 ) 外部时钟同步使能位 0: 不同步外部时钟 T16N0CK0/T16N0CK1, 为异步计数模式 1: 通过 PCLK 对外部时钟 T16N0CK0/T16N0CK1 同步, 为同步计数模式, 外部时钟的高 / 低电平均至少保持 2 个 PCLK 时钟周期 T16N 计数时钟源选择位 00: 内部时钟 PCLK 01: 外部时钟 T16N0CK0 10: 外部时钟 T16N0CK1 11: 内部时钟 PCLK T16N 使能位 1: 使能 注 :PCLK 为芯片内部外设模块时钟源, 时钟频率与芯片系统时钟频率相同 V /278

139 T16N 控制寄存器 1(T16N_CON1) 偏移地址 :14 H 复位值 : _ _ _ B 停留 停留 CAPL1 CAPL0 CAPT<3:0> CAPIS1 CAPIS0 CAPNE CAPPE - bit CAPL1 bit9 R/W 捕捉 1 重载计数器使能位 1: 使能 CAPL0 bit8 R/W 捕捉 0 重载计数器使能位 1: 使能 CAPT<3:0> bit7-4 R/W 捕捉次数控制位 0: 捕捉 1 次后, 产生装载动作 1: 捕捉 2 次后, 产生装载动作 2: 捕捉 3 次后, 产生装载动作 F: 捕捉 16 次后, 产生装载动作 CAPIS1 bit3 R/W 捕捉输入端口 T16N0IN1 使能位 1: 使能 CAPIS0 bit2 R/W 捕捉输入端口 T16N0IN0 使能位 1: 使能 CAPNE bit1 R/W 下降沿捕捉使能位 1: 使能 CAPPE bit0 R/W 上升沿捕捉使能位 1: 使能 T16N 控制寄存器 2(T16N_CON2) 偏移地址 :18 H 复位值 : _ _ _ B PBKL1 PBKL0 PBKS<2:0> 保 留 PB KF PB KP S PB KE N MOM3<1: 0> MOM2<1:0> MOM1<1:0> MOM0<1:0> POL1 POL0 MOE1 MOE0 V /278

140 - bit PBKL1 bit21 R/W PWM 通道 1 刹车输出电平选择位 0: 输出低电平 1: 输出高电平 PBKL0 bit20 R/W PWM 通道 0 刹车输出电平选择位 0: 输出低电平 1: 输出高电平 bit19 PBKS<2:0> bit18-16 R/W PWM 刹车信号源选择位 000:PINT0 001:PINT1 010:PINT2 011:PINT3 100:PINT4 101:PINT5 110:PINT6 111:PINT7 bit15 PBKF bit14 R/W PWM 刹车事件标志位 0: 未发生刹车事件 1: 发生刹车事件,PWM 端口输出刹车电平 ; 软件写 1 清零, 清零后 PWM 端口输出恢复正常 PBKPS bit13 R/W PWM 刹车信号极性选择位 0: 高电平刹车 1: 低电平刹车 PBKEN bit12 R/W PWM 刹车使能位 1: 使能 MOM3<1:0> bit11-10 R/W T16N_MAT3 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 MOM2<1:0> bit9-8 R/W T16N_MAT2 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 MOM1<1:0> bit7-6 R/W T16N_MAT1 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 V /278

141 MOM0<1:0> bit5-4 R/W POL1 bit3 R/W POL0 bit2 R/W MOE1 bit1 R/W MOE0 bit0 R/W T16N_MAT0 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 T16N0OUT1 输出极性选择位 0: 正极性 1: 反极性 T16N0OUT0 输出极性选择位 0: 正极性 1: 反极性输出端口 1 使能位 1: 使能输出端口 0 使能位 1: 使能 T16N 中断使能寄存器 (T16N_IE) 偏移地址 :20 H 复位值 : _ _ _ B PBKIE CAP1IE CAP0IE OVIE MAT3IE MAT2IE MAT1IE MAT0IE - bit PBKIE bit7 R/W PWM 刹车中断使能位 1: 使能 CAP1IE Bit6 R/W 输入端口 T16N0IN1 捕捉中断使能位 1: 使能 CAP0IE bit5 R/W 输入端口 T16N0IN0 捕捉中断使能位 1: 使能 OVIE bit4 R/W T16N_CNT 计数溢出中断使能位 1: 使能 MAT3IE bit3 R/W 匹配 3 中断使能位 1: 使能 V /278

142 MAT2IE bit2 R/W MAT1IE bit1 R/W MAT0IE bit0 R/W 匹配 2 中断使能位 1: 使能匹配 1 中断使能位 1: 使能匹配 0 中断使能位 1: 使能 T16N 中断标志寄存器 (T16N_IF) 偏移地址 :24 H 复位值 : _ _ _ B PBKIF CAP1IF CAP0IF OVIF MAT3IF MAT2IF MAT1IF MAT0IF - bit PBKIF bit7 R/W PWM 刹车中断标志位 0: 无刹车中断 1: 刹车事件产生 CAP1IF bit6 R/W 输入端口 1 捕捉成功中断标志位 0: 输入端口 1 捕捉未成功 1: 输入端口 1 捕捉成功 CAP0IF bit5 R/W 输入端口 0 捕捉成功中断标志位 0: 输入端口 0 捕捉未成功 1: 输入端口 0 捕捉成功 OVIF bit4 R/W T16N_CNT 计数溢出中断标志位 0: 未溢出 1: 溢出 MAT3IF bit3 R/W 匹配 3 中断标志位 0: 计数器值与匹配寄存器 3 不相等 1: 计数器值与匹配寄存器 3 相等 MAT2IF bit2 R/W 匹配 2 中断标志位 0: 计数器值与匹配寄存器 2 不相等 1: 计数器值与匹配寄存器 2 相等 MAT1IF bit1 R/W 匹配 1 中断标志位 0: 计数器值与匹配寄存器 1 不相等 1: 计数器值与匹配寄存器 1 相等 MAT0IF bit0 R/W 匹配 0 中断标志位 0: 计数器值与匹配寄存器 0 不相等 V /278

143 1: 计数器值与匹配寄存器 0 相等 注 1: 在定时 / 计数, 捕捉, 调制模式下, 均可对计数器 T16N_CNT 值与匹配寄存器 T16N_MAT0/1/2/3 值比较是否相等 注 2:T16N 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 3: 对 T16N_IF 寄存器的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 注 4: 刹车使能时即 PBKEN 置 1,T16N_IF 寄存器中 PBKIF 在刹车事件产生时才被置 1 T16N 触发寄存器 (T16N_TRG) 偏移地址 :28 H 复位值 : _ _ _ B OVT AR MAT3TAR MAT2TA R MAT1TAR MAT0T AR - bit OVTAR bit4 R/W T16N_CNT 计数溢出触发 ADC 使能位 1: 使能 MAT3TAR bit3 R/W 匹配 3 触发 ADC 使能位 1: 使能 MAT2TAR bit2 R/W 匹配 2 触发 ADC 使能位 1: 使能 MAT1TAR bit1 R/W 匹配 1 触发 ADC 使能位 1: 使能 MAT0TAR bit0 R/W 匹配 0 触发 ADC 使能位 1: 使能 T16N 计数匹配寄存器 0(T16N_MAT0) 偏移地址 :30 H 复位值 : _ _ _ B MAT0<15:0> V /278

144 - bit MAT0<15:0> bit15-0 R/W T16N 计数匹配值 0 T16N 计数匹配寄存器 1(T16N_MAT1) 偏移地址 :34 H 复位值 : _ _ _ B MAT1<15:0> - bit MAT1<15:0> bit15-0 R/W T16N 计数匹配值 1 T16N 计数匹配寄存器 2(T16N_MAT2) 偏移地址 :38 H 复位值 : _ _ _ B MAT2<15:0> - bit MAT2<15:0> bit15-0 R/W T16N 计数匹配值 2 T16N 计数匹配寄存器 3(T16N_MAT3) 偏移地址 :3C H 复位值 : _ _ _ B MAT3<15:0> - bit MAT3<15:0> bit15-0 R/W T16N 计数匹配值 T16N 应用说明 芯片支持 4 个 16 位定时器 / 计数器, 分别为 T16N0,T16N1,T16N2 和 T16N3 V /278

145 位定时器 / 计数器 T32N(T32N0) 概述 1 个 8 位可配置预分频计数器, 所产生分频时钟作为 T32N_CNT 计数器的定时或计数时 钟 预分频时钟源可选 :PCLK 或 T32N0CK0/T32N0CK1 预分频计数器可由 T32N_PRECNT 寄存器设定计数初值 分频比由 T32N_PREMAT 寄存器设定 1 个 32 位可配置定时 / 计数寄存器 T32N_CNT 可配置定时 / 计数工作模式 支持 4 组 32 位计数匹配寄存器 T32N_MAT0/T32N_MAT1/T32N_MAT2/ T32N_MAT3, 计数匹配后支持下列操作 : - 产生中断 - 支持 T32N_CNT 计数寄存器三种操作 : 保持, 清 0, 或继续计数 - 支持 T32N0OUT0/T32N0OUT1 端口四种操作 : 保持, 清 0, 置 1, 或取反支持输入捕捉功能 支持捕捉边沿可配置 支持捕捉次数可配置 支持输出调制功能 PWM 结构框图 T32N_MAT0 数值比较器 T32N0OUT0 PCLK T32N0CK0 M U X 预分频 T32N_CNT T32N0IN0 捕捉选择 T32N_MAT0 图 5-5 T32N 电路结构框图 T32N 定时 / 计数功能设置 T32N_CON0 寄存器的 MOD<1:0> =00 或 01, 使 T32N 工作在定时 / 计数模式 设置 T32N_CON0 寄存器的 EN=1, 使能 T32N, 计数值寄存器 T32N_CNT 从预设值开始累加计数 设置 T32N_CON0 寄存器的 CS, 选择择计数时钟源 时钟源为内部时钟 PCLK 时, 为定时模式 ; 时钟源为外部时钟 T32N0CK0/T32N0CK1 端口输入时, 为计数模式 V /278

146 设置 T32N_CON0 寄存器的 SYNC, 选择外部时钟 T32N0CK0/T32N0CK1 是否被内部时钟 PCLK 同步 当选择外部时钟被同步时, 为同步计数模式, 否则为异步计数模式 同步计数模式时,T32N0CK0/T32N0CK1 端口输入的高 / 低电平脉宽均必须大于 2 个 PCLK 时钟周期 设置 T32N_CON0 寄存器的 EDGE, 选择外部时钟计数方式 : 上升沿计数, 下降沿计数, 或上升 / 下降沿均计数, 其中上升 / 下降沿均计数只适用于同步计数模式 设置 T32N_CON0 寄存器的 MAT0S/MAT1S/MAT2S/MAT3S, 选择计数匹配后 T32N_CNT 计数值寄存器的工作状态 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=00: 当 T32N_CNT 计数值匹配 T32N_MAT0/ T32N_MAT1/T32N_MAT2/T32N_MAT3 时, 继续累加计数, 不产生中断, 当计数到 0xFFFFFFFF 后, 下一次累加计数溢出,T32N_CNT 的值为 0x , 并产生中断, 重新开始累加计数 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=01: 当 T32N_CNT 计数值匹配 T32N_MAT0/ T32N_MAT1/T32N_MAT2/T32N_MAT3 时, 计数值将保持, 即在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时,T32N_CNT 不再累加计数, 只产生中断 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=10: 当 T32N_CNT 计数值匹配 T32N_MAT0/ T32N_MAT1/T32N_MAT2/T32N_MAT3 时, 计数值在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时被清 0, 并产生中断, 重新开始累加计数 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=11: 当 T32N_CNT 计数值匹配 T32N_MAT0/ T32N_MAT1/T32N_MAT2/T32N_MAT3 时, 继续累加计数, 并在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时, 产生中断, 当计数到 0xFFFFFFFF 后, 下一次累加计数溢出,T32N_CNT 的值为 0x , 并产生中断, 重新开始累加计数 对设置的多个不同匹配值 T32N_MAT0/T32N_MAT1/T32N_MAT2/T32N_MAT3, 当计数值匹配到每一个匹配值时, 会产生相应的中断 由于中断产生后,T32N 继续累加计数, 若未及时读取匹配中断标志位, 则有可能后续的匹配中断也已产生, 从而会同时读到多个有效的匹配中断标志 当 MOE0=1 时, 如果 T32N_CNT 的计数值匹配 T32N_MAT0/ T32N_MAT1/T32N_MAT2/ T32N_MAT3,T32N0OUT0 端口输出翻转 举例说明 :T32N_CNT 计数值匹配 T32N_MAT0/T32N_MAT1/T32N_MAT2 后的工作方式 T32N_CON0 寄存器中 MAT0<31:0>=0x ,MAT0S<1:0>=00, 继续计数, 不产生中断 ; MAT1<31:0>=0x ,MAT1S<1:0>=11, 继续计数, 产生中断 ; MAT2<31:0>=0x ,MAT2S<1:0>=10, 清 0, 产生中断, 重新计数 预分频设置为 1:1, 采用内部 PCLK 时钟源 计数匹配功能示意图如下所示 : V /278

147 MAT1IF MAT2IF PCLK T32N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0000 0x0001 图 5-6 T32N 计数匹配功能示意图 T32N 输入捕捉功能设置 T32N_CON0 寄存器的 MOD<1:0>=10, 使 T32N 工作在捕捉模式 在捕捉工作模式下, 需设置 T32N_CON0 寄存器的 CS<1:0>=00, 使 T32N_CNT 采用内部 PCLK 时钟源计数 ; 并且设置 T32N_CON0 寄存器的 MAT0S/MAT1S/MAT2S/ MAT3S <1:0>=00, 计数匹配不影响 T32N_CNT 的工作 在捕捉工作模式下, 对端口 T32N0IN0 和 T32N0IN1 的状态进行检测 当 T32N0IN0 端口的状态变化符合所设定的捕捉事件时, 将 T32N_CNT 和 T32N_PRECNT 的当前值分别装载到 T32N_MAT0 和 T32N_MAT2 寄存器中, 产生 T32N_IF 的 CAP0IF 中断, 通过使能 T32N_CON1 寄存器的 CAPL0, 可将 T32N_CNT 和 T32N_PRECNT 清零, 或者禁止 CAPL0 继续计数 当 T32N0IN1 端口的状态变化符合所设定的捕捉事件时, 将 T32N_CNT 和 T32N_PRECNT 的当前值分别装载到 T32N_MAT1 和 T32N_MAT3 寄存器中, 产生 T32N_IF 的 CAP1IF 中断, 通过使能 T32N_CON1 寄存器的 CAPL1, 可将 T32N_CNT 和 T32N_PRECNT 清零, 或者禁止 CAPL1 继续计数 当 T32N_CNT 计数直到溢出时, 仍未检测到设定的捕捉事件,T32N_CNT 的值被清零, 并重新开始累加计数, 且产生溢出中断 设置 T32N_CON1 寄存器的 CAPPE 和 CAPNE, 可选择 T32N0IN0 和 T32N0IN1 端口信号的捕捉事件 : 捕捉上升沿, 捕捉下降沿, 捕捉上升沿 / 下降沿 设置 T32N_CON1 寄存器的 CAPIS0, 选择 T32N0IN0 是否作为捕捉输入端口 ; 设置 CAPIS1, 选择 T32N0IN1 是否作为捕捉输入端口 ; 可同时选择两个端口作为捕捉输入端口 T32N_CON1 寄存器中设置 CAPT, 可选择捕捉事件发生的次数 当 MOE0=1 时, 如果 T32N0IN0 端口捕捉事件发生,T32N0OUT0 端口输出翻转 ; 当 MOE1=1 时, 如果 T32N0IN1 端口捕捉事件发生,T32N0OUT1 端口输出翻转 举例说明 : 当捕捉 T32N0IN0 端口上升沿 / 下降沿, 捕捉 8 次 ; 预分频设置为 1:1 T32N_CON0 寄存器中 MOD<1:0>=10,CS<1:0>=00,MAT0S<1:0>=00, T32N_CON0 寄存器中 V /278

148 CAPPE=1;CAPNE=1,CAPIS=1,CAPT<3:0>=0111 CAPIF CAPIF T32N0IN1 PCLK 0x0000_0000 0x0000_0000 0x0000_0000 T32N_CNT T32N_MAT0 0x0000 Load Event Load Event 图 5-7 T32N 捕捉功能示意图 在捕捉工作模式时, 修改 T32N 预分频器计数匹配寄存器 T32N_PREMAT 时, 预分频器计数不会被清零 因此, 首次捕捉可以从一个非零预分频器计数开始 当捕捉事件匹配发生时, 产生的中断标志位必须通过软件清除, 并及时读取捕捉到的 T32N_MAT0/T32N_MAT1/T32N_MAT2/T32N_MAT3 寄存器的值, 在下一次捕捉事件发生时,T32N_MAT0/T32N_MAT1/T32N_MAT2/T32N_MAT3 寄存器会装载为新的计数值 T32N 输出调制功能 T32N_CON0 寄存器中设置 MOD<1:0>=11, 使 T32N 工作在调制模式 在调制工作模式下, 需设置 T32N_CON0 寄存器中 CS<1:0>=00, 使 T32N_CNT 采用内部 PCLK 时钟源计数 T32N_CON1 寄存器中设置 MOE0, 选择 T32N0OUT0 是否使能为匹配输出端口, 使能时启用 T32N_MAT0/T32N_MAT1 匹配寄存器和 T32N_CNT 进行匹配 ; 设置 MOE1, 选择 T32N0OUT1 是否使能为匹配输出端口, 使能时启用 T32N_MAT2/T32N_MAT3 匹配寄存器和 T32N_CNT 进行匹配 设置 MOM0/MOM1/MOM2/MOM3, 选择计数匹配发生时, 对 T32N0OUT 端口的影响 : 保持, 清 0, 置 1, 取反 举例说明 : 在 T32N0OUT0 和 T32N0OUT1 端口, 产生双边 PWM 波形 MOE0=1, MOE1=1;T32N0OUT0 和 T32N0OUT1 匹配输出端口使能 ; MOM0<1:0>=10;T32N_MAT0 匹配,T32N0OUT0 输出高电平 ; MOM1<1:0>=01;T32N_MAT1 匹配,T32N0OUT0 输出低电平 ; MOM2<1:0>=10;T32N_MAT2 匹配,T32N0OUT1 输出高电平 ; MOM3<1:0>=01;T32N_MAT3 匹配,T32N0OUT1 输出低电平 ; MAT0 = 0x ;T32N_MAT1 = 0x ; V /278

149 MAT2 = 0x ;T32N_MAT3 = 0x ; MOD<1:0>=11;T32N 设置为调制输出 MAT0S<1:0>=11;T32N_CNT 继续计数, 并产生中断 MAT1S<1:0>=11;T32N_CNT 继续计数, 并产生中断 MAT2S<1:0>=11;T32N_CNT 继续计数, 并产生中断 MAT3S<1:0>=10;T32N_CNT 清 0, 并产生中断 MAT0IF MAT1IF MAT2IF MAT3IF PCLK T32N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0000 T32N0OUT0 T32N0OUT1 图 5-8 T32N 输出调制功能示意图 注 : 若 T32N_MAT0 和 T32N_MAT1 设置了相同的值, 因 T32N_MAT0 匹配优先级高于 T32N_MAT1,T32N0OUT0 的输出电平取决于 MOM0 的设定 若 T32N_MAT2 和 T32N_MAT3 设置了相同的值, 因 T32N_MAT2 匹配优先 级高于 T32N_MAT3,T32N0OUT1 的输出电平取决于 MOM2 的设定 特殊功能寄存器 T32N 计数值寄存器 (T32N_CNT) 偏移地址 :00 H 复位值 : _ _ _ B CNT<31:16> CNT<15:0> CNT<31:0> bit 31-0 R/W T32N 计数值 V /278

150 T32N 预分频器计数值寄存器 (T32N_PRECNT) 偏移地址 :08 H 复位值 : _ _ _ B PRECNT<7:0> - bit PRECNT<7:0> bit7-0 R/W T32N 预分频器计数值 T32N 预分频器计数匹配寄存器 (T32N_PREMAT) 偏移地址 :0C H 复位值 : _ _ _ B PREMAT<7:0> - bit PREMAT<7:0> bit7-0 R/W 预分频比例设置 00: 预分频 1:1 01: 预分频 1:2 02: 预分频 1:3 FE: 预分频 1:255 FF: 预分频 1:256 T32N 控制寄存器 0(T32N_CON0) 偏移地址 :10 H 复位值 : _ _ _ B ASYNCWREN MAT3S<1:0> MAT2S<1:0> MAT1S<1:0> MAT0S<1:0> MOD<1:0> EDGE<1:0> SYNC CS<1:0> EN - bit ASYNC_WREN bit16 R/W 外部时钟异步计数模式下, 对计数器的写使能位 写 T32N_CNT 和 T32N_PRECNT, 如果强制写, 有可能写操作不成功 ( 为避免对计数器的写操作错误, 不建议用户对该位写 0) 1: 使能写 T32N_CNT 和 T32N_PRECNT V /278

151 MAT3S<1:0> bit15-14 R/W MAT2S<1:0> bit13-12 R/W MAT1S<1:0> bit11-10 R/W MAT0S<1:0> bit9-8 R/W MOD<1:0> bit7-6 R/W EDGE<1:0> bit5-4 R/W SYNC bit3 R/W CS<1:0> bit2-1 R/W EN bit0 R/W T32N_CNT 匹配 T32N_MAT3 后的工作模式选择位 00:T32N_CNT 继续计数, 不产生中断 01:T32N_CNT 保持, 产生中断 10:T32N_CNT 清 0 并重新计数, 产生中断 11:T32N_CNT 继续计数, 产生中断 T32N_CNT 匹配 T32N_MAT2 后的工作模式选择位 00:T32N_CNT 继续计数, 不产生中断 01:T32N_CNT 保持, 产生中断 10:T32N_CNT 清 0 并重新计数, 产生中断 11:T32N_CNT 继续计数, 产生中断 T32N_CNT 匹配 T32N_MAT1 后的工作模式选择位 00:T32N_CNT 继续计数, 不产生中断 01:T32N_CNT 保持, 产生中断 10:T32N_CNT 清 0 并重新计数, 产生中断 11:T32N_CNT 继续计数, 产生中断 T32N 匹配 T32N_MAT0 后的工作模式选择位 00:T32N_CNT 继续计数, 不产生中断 01:T32N_CNT 保持, 产生中断 10:T32N_CNT 清 0 并重新计数, 产生中断 11:T32N_CNT 继续计数, 产生中断工作模式选择位 00: 定时 / 计数模式 01: 定时 / 计数模式 10: 捕捉模式 11: 调制模式外部时钟计数边沿选择位 00: 上升沿计数 01: 下降沿计数 10: 上升沿 / 下降沿均计数 ( 仅同步计数模式 ) 11: 上升沿 / 下降沿均计数 ( 仅同步计数模式 ) 外部时钟同步使能位 0: 不同步外部时钟 T32N0CK0/T32N0CK1, 为异步计数模式 1: 通过 PCLK 对外部时钟 T32N0CK0/T32N0CK1 同步, 为同步计数模式, 外部时钟的高 / 低电平均至少保持 2 个 PCLK 时钟周期 T32N 计数时钟源选择位 00: 内部时钟 PCLK 01: 外部时钟 T32N0CK0 时钟输入 10: 外部时钟 T32N0CK1 时钟输入 11: 内部时钟 PCLK T32N 使能位 1: 使能 V /278

152 T32N 控制寄存器 1(T32N_CON1) 偏移地址 :14 H 复位值 : _ _ _ B CAPL1 CAPL0 CAPT<3:0> CAPIS1 CAPIS0 CAPNE CAPPE - bit CAPL1 bit9 R/W 捕捉 1 重载计数器使能位 1: 使能 CAPL0 bit8 R/W 捕捉 0 重载计数器使能位 1: 使能 CAPT<3:0> bit7-4 R/W 捕捉次数控制位 0: 捕捉 1 次后, 产生装载动作 1: 捕捉 2 次后, 产生装载动作 2: 捕捉 3 次后, 产生装载动作 F: 捕捉 16 次后, 产生装载动作 CAPIS1 bit3 R/W 捕捉输入端口 1 使能位 1: 使能 CAPIS0 bit2 R/W 捕捉输入端口 0 使能位 1: 使能 CAPNE bit1 R/W 下降沿捕捉使能位 1: 使能 CAPPE bit0 R/W 上升沿捕捉使能位 1: 使能 T32N 控制寄存器 2(T32N_CON2) 偏移地址 :18 H 复位值 : _ _ _ B MOM3<1: 0> MOM2<1:0> MOM1<1:0> MOM0<1:0> POL1 POL0 MOE1 MOE0 V /278

153 - bit MOM3<1:0> bit11-10 R/W T32N_MAT3 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 MOM2<1:0> bit9-8 R/W T32N_MAT2 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 MOM1<1:0> bit7-6 R/W T32N_MAT1 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 MOM0<1:0> bit5-4 R/W T32N_MAT0 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清 0 10: 匹配端口置 1 11: 匹配端口取反 POL1 bit3 R/W T32N0OUT1 输出极性选择位 0: 正极性 1: 反极性 POL0 bit2 R/W T32N0OUT0 输出极性选择位 0: 正极性 1: 反极性 MOE1 bit1 R/W 输出端口 1 使能位 1: 使能 MOE0 bit0 R/W 输出端口 0 使能位 1: 使能 T32N 中断使能寄存器 (T32N_IE) 偏移地址 :20 H 复位值 : _ _ _ B CAP1IE CAP0IE OVIE MAT3IE MAT2IE MAT1IE MAT0IE V /278

154 - bit CAP1IE bit6 R/W 输入端口 1 捕捉中断使能位 1: 使能 CAP0IE bit5 R/W 输入端口 0 捕捉中断使能位 1: 使能 OVIE bit4 R/W 计数溢出中断使能位 1: 使能 MAT3IE bit3 R/W 匹配 3 中断使能位 1: 使能 MAT2IE bit2 R/W 匹配 2 中断使能位 1: 使能 MAT1IE bit1 R/W 匹配 1 中断使能位 1: 使能 MAT0IE bit0 R/W 匹配 0 中断使能位 1: 使能 T32N 中断标志寄存器 (T32N_IF) 偏移地址 :24 H 复位值 : _ _ _ B CAP1IF CAP0IF OVIF MAT3IF MAT2IF MAT1IF MAT0IF - bit CAP1IF bit6 R/W 输入端口 1 捕捉成功中断标志位 0: 输入端口 1 捕捉未成功 1: 输入端口 1 捕捉成功 CAP0IF bit5 R/W 输入端口 0 捕捉成功中断标志位 0: 输入端口 0 捕捉未成功 1: 输入端口 0 捕捉成功 OVIF bit4 R/W 计数溢出中断标志位 0: 计数器值未溢出 1: 计数器值溢出 MAT3IF bit3 R/W 匹配 3 中断标志位 0: 计数器值与匹配寄存器 3 不相等 V /278

155 MAT2IF bit2 R/W MAT1IF bit1 R/W MAT0IF bit0 R/W 1: 计数器值与匹配寄存器 3 相等匹配 2 中断标志位 0: 计数器值与匹配寄存器 2 不相等 1: 计数器值与匹配寄存器 2 相等匹配 1 中断标志位 0: 计数器值与匹配寄存器 1 不相等 1: 计数器值与匹配寄存器 1 相等匹配 0 中断标志位 0: 计数器值与匹配寄存器 0 不相等 1: 计数器值与匹配寄存器 0 相等 注 1: 在定时 / 计数, 捕捉, 调制模式下, 均可对计数器 T32N_CNT 值与匹配寄存器 T32N_MAT0/T32N_MAT1/ T32N_MAT2/T32N_MAT3 值比较是否相等 注 2:T32N 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 3: 对 T32N_IF 寄存器的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 T32N 触发寄存器 (T32N_TRG) 偏移地址 :28 H 复位值 : _ _ _ B OVT AR MAT3TA R MAT2TAR MAT1TAR MAT0T AR - bit OVTAR bit4 R/W T32N_CNT 计数溢出触发 ADC 使能位 1: 使能 MAT3TAR bit3 R/W 匹配 3 触发 ADC 使能位 1: 使能 MAT2TAR bit2 R/W 匹配 2 触发 ADC 使能位 1: 使能 MAT1TAR bit1 R/W 匹配 1 触发 ADC 使能位 1: 使能 MAT0TAR bit0 R/W 匹配 0 触发 ADC 使能位 1: 使能 V /278

156 T32N 计数匹配寄存器 0(T32N_MAT0) 偏移地址 :30 H 复位值 : _ _ _ B MAT0<31:16> MAT0<15:0> MAT0<31:0> bit31-0 R/W T32N 计数匹配值 0 T32N 计数匹配寄存器 1(T32N_MAT1) 偏移地址 :34 H 复位值 : _ _ _ B MAT1<31:16> MAT1<15:0> MAT1<31:0> bit31-0 R/W T32N 计数匹配值 1 T32N 计数匹配寄存器 2(T32N_MAT2) 偏移地址 :38 H 复位值 : _ _ _ B MAT2<31:16> MAT2<15:0> MAT2<31:0> bit31-0 R/W T32N 计数匹配值 2 T32N 计数匹配寄存器 3(T32N_MAT3) 偏移地址 :3C H 复位值 : _ _ _ B MAT3<31:16> MAT3<15:0> MAT3<31:0> bit31-0 R/W T32N 计数匹配值 T32N 应用说明 芯片支持 1 个 32 位定时器 / 计数器 T32N0 V /278

157 5. 2 通用异步接收 / 发送器 以 UART0 为例,UART1/UART2/UART3/UART4/UART5 参考 UART 概述 支持异步接收和异步发送支持内置波特率发生器, 支持 11 位整数波特率兼容 RS-232/RS-442/RS-485 的通讯接口支持全 / 半双工通讯模式异步接收器 - 支持独立的接收移位寄存器 - 支持 4 级接收缓冲器 - 支持 7/8/9 位数据格式可配, 支持奇偶校验功能可配 - 支持硬件自动奇偶校验位判断 - 支持接收缓冲中断, 字节满中断 半字满中断 字满中断 - 支持 3 类接收错误中断, 接收缓冲溢出错误 奇偶校验错误 帧结束错误 异步发送器 - 支持独立的发送移位寄存器 - 支持 4 级发送缓冲器 - 支持 7/8/9 位数据格式可配, 支持奇偶校验功能可配 - 支持 1/2 位结束位可配 - 支持硬件自动产生发送奇偶校验位 - 支持发送缓冲中断, 字节空中断 半字空中断 字空中断 支持 PWM 调制输出, 且 PWM 占空比线性可调 支持 UART 输入输出通讯端口极性可配置 UART 接收端口支持红外唤醒功能 支持单线半双工异步通信模式 - 单线模式下只使用 RXD 端口, 通过 GPIO_PAFUNC/GPIO_PBFUNC 端口复用选择寄存器选择 RXD 功能 - 单线模式下, 需先将端口设置为开漏输出并使能内部弱上拉 ( 若有外部上拉, 亦可选择不使能 ) - 单线接收和发送状态由用户软件协议决定 V /278

158 结构框图 发送器 TXD APB_UART 波特率时钟 接收器 RXD 图 5-9 UART 电路结构图 UART 数据格式 UART 通讯每帧数据由 1 位起始位,7/8/9 位数据位 可配置奇偶校验位和停止位组成 配置 TXMOD 和 RXMOD 选择发送和接收的数据格式 配置 TXFS 选择发送 1 位或 2 位停止位 接收数据时, 只判断第 1 位停止位, 若不为高电平则产生 帧错误 中断标志 在没有数据传输时, 通讯端口处于高电平状态 帧数据格式如下图所示 : 帧 D0 D1 D2 D3 D4 D5 D6 P SP SP 起始位 数据码 校验位 停止位 图 5-10 UART 7 位数据格式 帧 D0 D1 D2 D3 D4 D5 D6 D7 P SP SP 起始位 数据码 校验位 停止位 图 5-11 UART 8 位数据格式 帧 D0 D1 D2 D3 D4 D5 D6 D7 D8 SP SP 起始位 数据码 停止位 图 5-12 UART 9 位数据格式 数据发送和接收时, 均是低位在前, 高位在后, 即先发送或接收数据的 LSB 通过发送数 据寄存器 UART_TBW 写入发送的数据, 通过接收数据寄存器 UART_RBR 读取接收的数 V /278

159 据 UART 异步发送器发送数据时, 起始位 START 和停止位 STOP 由芯片硬件电路自动产生, 用户只需要配置相应的 I/O 端口复用功能 ; 配置 BRR 和 BCS, 设定传输波特率 ; 配置 TXMOD, 选择发送的数据格式 ; 配置 TXFS, 选择发送的停止位数 ; 配置 TXEN, 使能数据发送 ; 将要发送的数据写入发送数据寄存器 UART_TBW, 就可以开始数据的异步发送 如果数据格式支持奇偶校验位, 硬件电路会根据相应的数据位产生校验位, 在数据位后自动发送校验位 配置 TXP, 可选择发送端口极性 选择为正极性时, 发送端口的数据与被发送数据一致 ; 选择为负极性时, 发送端口的数据与被发送数据相反, 即被发送数据位为 1 时, 发送端口的数据位为 0 支持 4 级发送缓冲器 TB0,TB1,TB2,TB3 和 1 级发送移位寄存器, 可进行数据的连续发送, 直到发送缓冲器和移位寄存器全空, 最多可连续写入和发送 5 帧数据, 配置 TXFS 可选择相邻两帧数据发送的时间间隔 发送缓冲器 TB0~TB3 为只读寄存器, 只能通过发送数据寄存器 UART_TBW 写入 发送数据寄存器 UART_TBW 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 写该寄存器地址单元时, 实际上是将发送数据写入到发送缓冲器 TB0~TB3 中, 再传输到发送移位寄存器, 通过发送端口 TX0 进行数据发送 发送数据寄存器 UART_TBW 支持 3 种写入方式 : 字节写入, 半字写入和字写入 当发送数据为 7 位和 8 位数据格式时 : 字节方式写入 UART_TBW 时, 发送数据被写入到发送缓冲器 TB0; 半字方式写入 UART_TBW 时, 发送数据被同时写入到发送缓冲器 TB0 和 TB1, 其中低字节存放在 TB1 中 ; 字方式写入 UART_TBW 时, 发送数据被同时写入到发送缓冲器 TB0,TB1,TB2 和 TB3, 其中低字节存放在 TB3 中 当发送数据为 9 位数据格式时 : 只能以半字或字方式写入 UART_TBW, 且发送数据均被写入到发送缓冲器 TB0 发送数据从写入到发送到端口的数据流示意图如下所示 : UART_TBW TB0 TB1 TB2 TB3 发送移位寄存器 TX0 端口 图 5-13 UART 发送数据流示意图 发送缓冲器 TB0~TB3 的数据移到下一级缓冲器或发送移位寄存器后, 会置起发送空标志 TBFF0~TBFF3 当缓冲器 TB0 的发送空标志 TBEF0 为 0 时, 表示 4 级发送缓冲器和发送移位寄存器均满, 此时如果仍继续写入 UART_TBW, 则会置起发送数据错误中断标志 TBWEIF, 同时新写入的数据无效, 缓冲器数据仍保持 当 4 级发送缓冲器和发送移位寄存器均空时, 会置起发送空闲标志 TIDIF, 表示当前的数据发送进程结束 支持发送缓冲器空中断, 配置 TBIM, 可选择中断模式 TBIM<1:0>=00, 为字节空产生中断, 即发送缓冲器 TB0 为空时, 会置起中断标志 TBIF; V /278

160 TBIM<1:0>=01, 为半字空产生中断, 即发送缓冲器 TB0 和 TB1 均为空时, 会置起中断标志 TBIF; TBIM<1:0>=10 或 11, 为字空产生中断, 即发送缓冲器 TB0,TB1,TB2 和 TB3 均为空时, 会置起中断标志 TBIF 配置 TRST, 可将异步发送器软件复位, 复位后 : 禁止数据发送 TXEN=0; 禁止发送相关中断 TBIE=0,TBWEIE=0; 复位相关中断标志为默认值 TBIF=1,TBWEIF=0; 置起发送空闲标志 TIDIF=1; 置起各发送缓冲器空标志 TBFF0~TBFF3=1 发送数据的操作流程图示例如下 : 开始 配置 I/O 端口复用功能 配置异步发送器 : BCS,BRR,TXMOD, TXFS,TBIM 使能 TXEN 写 UART_TBW TIDIF=1 或 TBIF=1? N Y N 发送完成 Y 禁止 TXEN 结束 图 5-14 UART 发送数据操作流程图示例 UART 异步接收器接收数据时, 配置相应的 I/O 端口复用功能 ; 配置 BRR 和 BCS, 设定传输波特率 ; 配置 RXMOD, 选择接收的数据格式 ; 配置 RXEN, 使能数据接收, 就可以开始数据的异步接收 如果数据格式支持奇偶校验位, 硬件电路会自动判断奇偶校验位是否正确, 若不正确则会置起奇偶校验错误中断标志 PEIF 如果接收到的第 1 位停止位不为高电平, 则会置 V /278

161 起帧错误中断标志 FEIF 配置 RXP, 可选择接收端口极性 选择为正极性时, 接收端口的数据即作为接收数据 ; 选择为负极性时, 接收端口的数据取反后, 作为接收数据, 即接收端口的数据位为 1 时, 接收的数据位为 0 支持 4 级接收缓冲器 RB0,RB1,RB2,RB3 和 1 级接收移位寄存器, 可进行数据的连续接收, 直到接收缓冲器和移位寄存器全满, 最多可连续接收 5 帧数据, 再执行数据读取操作 读取接收数据寄存器 UART_RBR, 可得到接收的数据, 对应的接收缓冲器清除满标志 RBFF0~RBFF3; 也可以读取接收缓冲器 RB0~RB3 得到接收的数据, 但不会清除满标志 RBFF0~RBFF3 接收数据寄存器 UART_RBR 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 读该寄存器地址单元时, 实际上是读取接收缓冲器 RB0~RB3 中的数据 接收数据寄存器 UART_RBR 支持 3 种读取方式 : 字节读取, 半字读取和字读取 当接收数据为 7 位和 8 位数据格式时 : 字节方式读取 UART_RBR 时, 实际是读取接收缓冲器 RB0 的数据 ; 半字方式读取 UART_RBR 时, 实际是同时读取接收缓冲器 RB0 和 RB1 的数据, 其中 RB0 中的数据为低字节 ; 字方式读取 UART_RBR 时, 实际是同时读取接收缓冲器 RB0,RB1,RB2 和 RB3, 其中 RB0 中的数据为低字节 当接收数据为 9 位数据格式时 : 只能以半字或字方式读取 UART_RBR, 且均是读取接收缓冲器 RB0 的数据 接收数据从接收端口到各级缓冲器的数据流示意图如下所示 : UART_RBR RB0 RB1 RB2 RB3 接收移位寄存器 RX0 端口 图 5-15 UART 接收数据流示意图 接收缓冲器 RB0~RB3 的数据移到下一级缓冲器后, 会清除其接收满标志 RBFF0~RBFF3 当 4 级接收缓冲器和 1 级接收移位寄存器均满时, 如果再次接收到数据起始位, 会置起接收数据溢出中断标志 ROIF, 同时不会接收新数据, 缓冲器数据仍保持 当 4 级接收缓冲器和接收移位寄存器均空时, 会置起接收空闲标志 RIDIF, 表示当前无数据接收 支持接收缓冲器满中断, 配置 RBIM, 可选择中断模式 RBIM<1:0>=00, 为字节满产生中断, 即接收缓冲器 RB0 为满时, 会置起中断标志 RBIF; RBIM<1:0>=01, 为半字满产生中断, 即接收缓冲器 RB0 和 RB1 均为满时, 会置起中断标志 RBIF; RBIM<1:0>=10 或 11, 为字满产生中断, 即接收缓冲器 RB0,RB1,RB2 和 RB3 均为满时, 会置起中断标志 RBIF 配置 RRST, 可将异步接收器软件复位, 复位后 : 禁止数据接收 RXEN=0; 禁止接收相关中断 RBIE=0,ROIE=0,FEIE=0,PEIE=0; 复位相关中断标志为默认值 RBIF=0,ROIF=0, FEIF=0, PEIF=0 ; 置起接收空闲标志 RIDIF=1 ; 清除各接收缓冲器满标志 V /278

162 RBFF0~RBFF3=0; 清除各接收缓冲器错误标志 FE0~FE3=0,PE0~ PE3=0 接收数据的操作流程图示例如下 : 开始 配置 I/O 端口复用功能 配置异步接收器 : BCS,BRR,RXMOD, RBIM 使能 RXEN RBIF=1? N Y 读取 UART_RBR N 接收完成 Y 禁止 RXEN 结束 图 5-16 UART 接收数据操作流程图示例 UART 发送调制功能发送调制模式是将 UART 传输到发送端口的信号电平, 由 T16N 产生的 PWM 信号源或 BUZ 信号进行调制后, 再从发送端口 TX0 输出 配置 TX0PS, 可配置 UART 调制模式 配置 GPIO_TXPWM 寄存器的 TX0PLV, 选择发送端口 TX0 被调制的信号电平 配置 TX0_S<1:0>, 使能调制信号输出到端口 UART 调制功能使用的 PWM 信号源, 由 T16N 或 BUZ 提供 配置 TX0PS, 可选择与 TX0 输出端口进行调制的 PWM 信号源 V /278

163 TX0 原始信号 T16N0 PWM 信号 TX0 端口调制输出 图 5-17 高电平调制输出波形图 TX0 原始信号 T16N0 PWM 信号 TX0 端口调制输出 图 5-18 低电平调制输出波形图 UART 红外唤醒功能芯片支持 UART 接收端口的红外唤醒功能, 需要通过软件控制实现 使能 UART 接收复用端口 RX0 的外部端口中断 PINT 功能, 通过端口的 PINT 中断实现芯片的红外唤醒功能 对中断和唤醒的具体控制操作, 可参考外部端口中断和睡眠模式, 唤醒模式的相关章节描述 UART 端口极性配置 UART_CON0 寄存器 TXP 和 RXP, 可分别选择发送端口 TX0 和接收端口 RX0 的正负极性 选择为正极性时,UART 端口数据与传输的数据一致 ; 选择为负极性时,UART 端口数据与传输的数据相反 UART 单线半双工通信 UART 支持单线半双工模式 配置 RX 端口为输出开漏模式, 即使能 UART 单线半双工模式, 该模式下 TX 和 RX 端口极性必须设置为正极性 用户可使能 RX 端口的弱上拉电阻使能或在芯片管脚外挂上拉电阻 V /278

164 特殊功能寄存器 UART 控制寄存器 (UART_CON) 偏移地址 :00 H 复位值 : _ _ _ B BCS<2:0> RXP RXMOD<2:0> RRS RXE TXP TXMOD<2: TXFS TRST TXEN T N 0> bit31 BCS<2:0> bit30-28 R/W 传输波特率发生器时钟选择位 00, 波特率发生器停止工作 001:PCLK 010:PCLK/2 011:PCLK/4 1xx:PCLK/8 bit27-16 RXP bit15 R/W 接收端口极性选择位 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) RXMOD<2:0> bit14-12 R/W 接收数据格式选择位 000:7 位数据 001:8 位数据 01x:9 位数据 100:7 位数据 + 奇校验位 101:7 位数据 + 偶校验位 110:8 位数据 + 奇校验位 111:8 位数据 + 偶校验位 bit11-10 RRST bit9 W 接收器软件复位 0: 读取时始终为 0 1: 软件复位 RXEN bit8 R/W 接收使能位 1: 使能 TXP bit7 R/W 发送端口极性选择位 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) TXMOD<2:0> bit6-4 R/W 发送数据格式选择位 000:7 位数据 001:8 位数据 01x:9 位数据 V /278

165 100:7 位数据 + 奇校验位 101:7 位数据 + 偶校验位 110:8 位数据 + 奇校验位 111:8 位数据 + 偶校验位 bit3 TXFS bit2 R/W 发送帧停止位选择位 0:1 位停止位 1:2 位停止位 TRST bit1 W 发送器软件复位 0: 读取时始终为 0 1: 软件复位 TXEN bit0 R/W 发送使能位 1: 使能 UART 波特率寄存器 (UART_BRR) 偏移地址 :04 H 复位值 : _ _ _ B BRR<10:0> bit31-11 BRR bit10-0 R/W 传输波特率 注 :UART 传输波特率计算公式如下 : BCS<1:0>=001 时 :FPCLK/((BRR+1)*16); BCS<1:0>=010 时 :FPCLK/((BRR+1)*32); BCS<1:0>=011 时 :FPCLK/((BRR+1)*64); BCS<1:0>=1xx 时 :FPCLK/((BRR+1)*128) UART 发送数据写入寄存器 (UART_TBW) 偏移地址 :08 H 复位值 :XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX B TBW<31:16> TBW<15:0> V /278

166 TBW<31:0> bit31-0 W 写入的发送数据字节写入时 : 仅允许对 UART_TBW<7:0> 写入半字写入时 : 仅允许对 UART_TBW<15:0> 写入字写入时 : 对 UART_TBW<31:0> 写入 UART 接收数据读取寄存器 (UART_RBR) 偏移地址 :0C H 复位值 : _ _ _ B RBR<31:16> RBR<15:0> RBR<31:0> bit31-0 R 读取的接收数据字节读取时 : 仅允许对 UART_RBR<7:0> 读取半字读取时 : 仅允许对 UART_RBR<15:0> 读取字读取时 : 对 UART_RBR<31:0> 读取 UART 发送缓冲 0/1 寄存器 (UART_TB01) 偏移地址 :10 H 复位值 : _ _ _ B TBEF1 TP1 TB1<8:0> TBEF0 TP0 TB0<8:0> bit31-30 TBEF1 bit29 R 发送缓冲器 1 空标志位 0: 满 1: 空 TP1 bit28 R 发送的奇偶校验位发送缓冲器 1 对应的奇偶校验位 bit27-25 TB1<8:0> bit24-16 R 发送缓冲器 1 数据 bit15-14 TBEF0 bit13 R 发送缓冲器 0 空标志位 0: 满 1: 空 TP0 bit12 R 发送的奇偶校验位发送缓冲器 0 对应的奇偶校验位 bit11-9 V /278

167 TB0<8:0> bit8-0 R 发送缓冲器 0 数据 UART 发送缓冲 2/3 寄存器 (UART_TB23) 偏移地址 :14 H 复位值 : _ _ _ B TBEF3 TP3 TB3<8:0> TBEF2 TP2 TB2<8:0> bit31-30 TBEF3 bit29 R 发送缓冲器 3 空标志位 0: 满 1: 空 TP3 bit28 R 发送的奇偶校验位发送缓冲器 3 对应的奇偶校验位 bit27-25 TB3<8:0> bit24-16 R 发送缓冲器 3 数据 bit15-14 TBEF2 bit13 R 发送缓冲器 2 空标志位 0: 满 1: 空 TP2 bit12 R 发送的奇偶校验位发送缓冲器 2 对应的奇偶校验位 bit11-9 TB2<8:0> bit8-0 R 发送缓冲器 2 数据 UART 接收缓冲 0/1 寄存器 (UART_RB01) 偏移地址 :18 H 复位值 : _ _ _ B PE1 FE1 RBFF1 RP1 RB1<8:0> PE0 FE0 RBFF0 RP0 RB0<8:0> PE1 bit31 R FE1 bit30 R 接收缓冲器 1 数据校验错误标志位 0: 正确 1: 错误接收缓冲器 1 数据帧错误标志位 0: 正确 V /278

168 1: 错误 RBFF1 bit29 R 接收缓冲器 1 空满标志位 0: 空 1: 满 RP1 bit28 R 接收的奇偶校验位接收缓冲器 1 对应的奇偶校验位 bit27-25 RB1<8:0> bit24-16 R 接收缓冲器 1 数据 PE0 bit15 R 接收缓冲器 0 数据校验错误标志位 0: 正确 1: 错误 FE0 bit14 R 接收缓冲器 0 数据帧错误标志位 0: 正确 1: 错误 RBFF0 bit13 R 接收缓冲器 0 空满标志位 0: 空 1: 满 RP0 bit12 R 接收的奇偶校验位接收缓冲器 0 对应的奇偶校验位 bit11-9 RB0<8:0> bit8-0 R 接收缓冲器 0 数据 UART 接收缓冲 2/3 寄存器 (UART_RB23) 偏移地址 :1C H 复位值 : _ _ _ B PE3 FE3 RBFF3 RP3 RB3<8:0> PE2 FE2 RBFF2 RP2 RB2<8:0> PE3 bit31 R 接收缓冲器 3 数据校验错误标志位 0: 正确 1: 错误 FE3 bit30 R 接收缓冲器 3 数据帧错误标志位 0: 正确 1: 错误 RBFF3 bit29 R 接收缓冲器 3 空满标志位 0: 空 1: 满 RP3 bit28 R 接收的奇偶校验位接收缓冲器 3 对应的奇偶校验位 bit27-25 V /278

169 RB3<8:0> bit24-16 R 接收缓冲器 3 数据 PE2 bit15 R 接收缓冲器 2 数据校验错误标志位 0: 正确 1: 错误 FE2 bit14 R 接收缓冲器 2 数据帧错误标志位 0: 正确 1: 错误 RBFF2 bit13 R 接收缓冲器 2 空满标志位 0: 空 1: 满 RP2 bit12 R 接收的奇偶校验位接收缓冲器 2 对应的奇偶校验位 bit11-9 RB2<8:0> bit8-0 R 接收缓冲器 2 数据 UART 中断使能寄存器 (UART_IE) 偏移地址 :20 H 复位值 : _ _ _ B RIDIE TIDIE RBIM<1:0> TBIM<1:0> TBEIE PEIE FEIE ROIE RBIE TBIE bit31-14 RIDIE bit13 R/W 接收空闲标志中断使能位 1: 使能 TIDIE bit12 R/W 发送空闲标志中断使能位 1: 使能 RBIM<1:0> bit11-10 R/W 接收缓冲器满中断模式选择位 00: 字节满产生中断 01: 半字满产生中断 1x: 字满产生中断 TBIM<1:0> bit9-8 R/W 发送缓冲器空中断模式选择位 00: 字节空产生中断 01: 半字空产生中断 1x: 字空产生中断 bit7-6 TBEIE bit5 R/W 发送缓冲错误中断使能位 V /278

170 PEIE bit4 R/W FEIE bit3 R/W ROIE bit2 R/W RBIE bit1 R/W TBIE bit0 R/W 1: 使能接收校验错误中断使能位 1: 使能接收帧错误中断使能位 1: 使能接收数据溢出中断使能位 1: 使能接收缓冲器满中断使能位 1: 使能发送缓冲器空中断使能位 1: 使能 UART 中断标志寄存器 (UART_IF) 偏移地址 :24 H 复位值 : _ _XX110000_ B RIDIF TIDIF TBEIF PEIF FEIF ROIF RBIF TBIF bit31-14 RIDIF bit13 R/W 接收空闲标志中断标志位 0: 忙碌 1: 接收空闲初始复位为 1, 软件写 1 清除标志位, 写 0 无效 TIDIF bit12 R/W 发送空闲标志中断标志位 0: 忙碌 1: 发送空闲初始复位为 1, 软件写 1 清除标志位, 写 0 无效 bit11-6 TBEIF bit5 R/W PEIF bit4 R/W 发送缓冲错误中断标志位 0: 发送缓冲未错误 1: 发送缓冲错误软件写 1 清除标志位, 写 0 无效接收校验错误中断标志位 0: 接收校验正常 V /278

171 1: 接收校验错误 软件写 1 清除标志位, 写 0 无效 FEIF bit3 R/W ROIF bit2 R/W RBIF bit1 R TBIF bit0 R 接收帧错误中断标志位 0: 接收帧正常 1: 接收帧错误软件写 1 清除标志位, 写 0 无效接收数据溢出中断标志位 0: 未溢出 1: 溢出软件写 1 清除标志位, 写 0 无效接收缓冲器满中断标志位 0: 非满 1: 满 ( 满足 RBIM 所选择的条件 ) 发送缓冲器空中断标志位 0: 非空 1: 空 ( 满足 TBIM 所选择的条件 ) 注 1:UART 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 2: 对 UART_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中 断发生 UART 应用说明 芯片支持 6 个通用异步接收 / 发送器为 UART0,UART1,UART2,UART3,UART4,UART5 V /278

172 5. 3 SPI 同步串口通讯控制器 (SPI0) 概述 支持主控模式 从动模式支持 4 种数据传输格式支持主控模式通讯时钟速率可配置支持 1 到 8 位帧位宽选择支持 4 级发送缓冲器和 4 级接收缓冲器支持发送和接收缓冲器空 / 满中断支持接收数据溢出中断 发送数据写错误中断 从动模式的发送数据错误中断支持从动模式的片选变化中断 主控模式的空闲状态中断支持主控模式延迟接收支持主控模式发送间隔 结构框图 APB_SPI 传输时钟产生电路 数据传输电路 MUX SCK0 MISO0 MOSI0 NSS0 图 5-19 SPI 电路结构框图 SPI 通讯模式 SPI 支持主控和从动两种通讯模式, 配置 SPI_CON 寄存器的 MS 位, 可选择通讯模式 通讯时钟端口为 SCK0, 从动模式下的片选信号端口为 NSS0, 数据输出端口 MISO0, 数 据输入端口 MOSI0, 主控模式下可使用普通 I/O 端口作为片外从设备的片选信号端口, 数 据输出端口 MOSI0, 数据输入端口 MISO0 具体见下表所示: SPI 通讯端口 SPI 主控模式 SPI 从动模式 SCK0 支持 支持 MOSI0 支持 支持 MISO0 支持 支持 NSS0 支持 SPI 数据格式 配置 SPI_CON 寄存器的 DFS, 可选择 SPI 通讯数据格式, 数据发送和接收时, 均是高位 在前, 低位在后 如果是发送数据在先, 接收数据在后, 输出端口 MOSI0( 或 MISO0) 会 在第一个 SCK0 时钟边沿, 输出数据的 MSB 位 ; 反之输出端口 MOSI0( 或 MISO0) 在 第一个 SCK0 时钟边沿之前, 输出数据的 MSB 位 V /278

173 以下以 SPI 从动通讯模式为例, 对数据通讯时序进行说明 SPI_CON 寄存器中 DFS<1:0> = 00, 上升沿发送 ( 先 ), 下降沿接收 ( 后 ): NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-20 SPI 时钟上升沿发送, 下降沿接收波形示意图 DFS<1:0> = 01, 下降沿发送 ( 先 ), 上升沿接收 ( 后 ): NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-21 SPI 时钟下降沿发送, 上升沿接收波形示意图 DFS<1:0> = 10, 上升沿接收 ( 先 ), 下降沿发送 ( 后 ): NSS0 SCK MOSI MSB MSB-1 LSB+1 LSB MISO MSB MSB-1 LSB+1 LSB MOSI0 数据接收点 图 5-22 SPI 时钟上升沿接收, 下降沿发送波形示意图 DFS<1:0> = 11, 下降沿接收 ( 先 ), 上升沿发送 ( 后 ): V /278

174 NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-23 SPI 时钟下降沿接收, 上升沿发送波形示意图 SPI 帧位宽 SPI 传输帧位宽可变, 配置 SPI_CON 寄存器的 DW<2:0>, 可以设置传输帧位宽为 1~8 位 SPI 模块支持同步发送器与同步接收器, 容量均为 4 个字节, 采用以下对齐方式 : SPI 帧位宽 1~8 时, 发送 / 接收缓冲器采用字节对齐, 每一级缓冲器中存储一帧数据,SPI 同步发送器或者同步接收器中最多可缓冲 4+1 帧数据 ; 以上对齐方式均采用低位对齐, 以上 +1 帧数据为移位寄存器中存储的一帧数据, 下文中将做详细介绍 SPI 同步发送器支持 4 级发送缓冲器 TB0,TB1,TB2,TB3 和 1 级发送移位寄存器, 可进行数据的连续发送, 直到发送缓冲器和移位寄存器全空, 最多可连续写入和发送 5 帧数据 发送缓冲器 TB0~TB3 为只读寄存器, 只能通过发送数据寄存器 SPI_TBW 写入 发送数据寄存器 SPI_TBW 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 写该寄存器地址单元时, 实际上是将发送数据写入到发送缓冲器 TB0~TB3 中, 再传输到发送移位寄存器, 通过发送数据端口 MOSI0( 或 MISO0) 进行数据发送 发送数据寄存器 SPI_TBW 支持 3 种写入方式 : 字节写入, 半字写入和字写入 字节方式写入 SPI_TBW 时, 发送数据被写入到发送缓冲器 TB0; 半字方式写入 SPI_TBW 时, 发送数据被同时写入到发送缓冲器 TB0 和 TB1, 其中低字节存放在 TB1 中 ; 字方式写入 SPI_TBW 时, 发送数据被同时写入到发送缓冲器 TB0,TB1,TB2 和 TB3, 其中低字节存放在 TB3 中 发送数据从写入到发送到端口的数据流示意图如下所示 ( 以主控模式为例 ): SPI_TBW TB0 TB1 TB2 TB3 发送移位寄存器 MOSI0 端口 图 5-24 SPI 发送数据流示意图 支持发送缓冲器空中断, 配置 SPI_IE 寄存器的 TBIM, 可选择中断模式 TBIM<1:0>=00, 为字节空产生中断, 即发送缓冲器 TB0 为空时,SPI_IF 寄存器会置起中 V /278

175 断标志 TBIF; TBIM<1:0>=01, 为半字空产生中断, 即发送缓冲器 TB0 和 TB1 均为空时,SPI_IF 寄存器会置起中断标志 TBIF; TBIM<1:0>=10, 为字空产生中断, 即发送缓冲器 TB0,TB1,TB2 和 TB3 均为空时,SPI_IF 寄存器会置起中断标志 TBIF 支持发送数据寄存器 SPI_TBW 误写中断, 当对 SPI_TBW 的写入方式, 与发送缓冲器 TB0/ TB1/TB2/TB3 的空闲状态冲突时, 或写入操作访问错误时,SPI_IF 寄存器会置起误写中断标志 TBWEIF SPI 同步接收器支持 4 级接收缓冲器 RB0,RB1,RB2,RB3 和 1 级接收移位寄存器, 可进行数据的连续接收, 直到接收缓冲器和移位寄存器全满, 最多可连续接收 5 帧数据, 再执行数据读取操作 读取接收数据寄存器 SPI_RBR, 可得到接收的数据,SPI_STA 寄存器中对应的接收缓冲器清除满标志 RBFF0~RBFF3; 也可以读取接收缓冲器 RB0~RB3 得到接收的数据, 但不会清除满标志 RBFF0~RBFF3 接收数据寄存器 SPI_RBR 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 读该寄存器地址单元时, 实际上是读取接收缓冲器 RB0~RB3 中的数据 接收数据寄存器 SPI_RBR 支持 3 种读取方式 : 字节读取, 半字读取和字读取 字节方式读取 SPI_RBR 时, 实际是读取接收缓冲器 RB0 的数据 ; 半字方式读取 SPI_RBR 时, 实际是同时读取接收缓冲器 RB0 和 RB1 的数据, 其中 RB0 中的数据为低字节 ; 字方式读取 SPI_RBR 时, 实际是同时读取接收缓冲器 RB0,RB1,RB2 和 RB3, 其中 RB0 中的数据为低字节 接收数据从接收端口到各级缓冲器的数据流示意图如下所示 ( 以主控模式为例 ): SPI_RBR RB0 RB1 RB2 RB3 接收移位寄存器 MISO0 端口 图 5-25 SPI 接收数据流示意图 同步接收器的接收顺序如下 : 当同步接收器全空时, 接收移位寄存器的数据自动移入 RB0; 仅 RB1~ RB3 空时, 接收移位寄存器的数据自动移入 RB1; 仅 RB2~ RB3 空时, 接收移位寄存器的数据自动移入 RB2; 仅 RB2~ RB3 空时, 接收移位寄存器的数据自动移入 RB3 接收缓冲器 RB0~RB3 的数据移到下一级缓冲器后, 会清除其接收满标志 RBFF0~RBFF3 当 4 级接收缓冲器和 1 级接收移位寄存器均满时, 如果再次接收到数据位,SPI_IF 寄存器中会置起接收数据溢出中断标志 ROIF, 同时不会接收新数据, 缓冲器数据仍保持 支持接收缓冲器满中断, 配置 SPI_IE 寄存器的 RBIM, 可选择中断模式 V /278

176 RBIM<1:0>=00, 为字节满产生中断, 即接收缓冲器 RB0 为满时,SPI_IF 寄存器中会置起中断标志 RBIF; RBIM<1:0>=01, 为半字满产生中断, 即接收缓冲器 RB0 和 RB1 均为满时,SPI_IF 寄存器中会置起中断标志 RBIF; RBIM<1:0>=10, 为字满产生中断, 即接收缓冲器 RB0,RB1,RB2 和 RB3 均为满时, SPI_IF 寄存器中会置起中断标志 RBIF SPI 通讯控制配置 SPI 通讯模式, 数据格式 ; 对主控制模式, 还需配置 SPI_CKS, 设定传输时钟速率, 并选择是否使能接收延迟和发送间隔, 对从动模式, 传输时钟由主机方提供 ;SPI_CON 寄存器中配置 EN 和 REN, 使能数据发送和接收 ; 将要发送的数据写入发送数据寄存器 SPI_TBW, 就可以开始数据的发送, 读取接收数据寄存器 SPI_RBR, 可以获得接收到的数据 SPI 主控模式下, 发送缓冲器和发送移位寄存器中的数据发送完毕后, 进入空闲状态, SPI_STA 寄存器中会置起空闲标志 IDLE, 并且 SPI_IF 寄存器中产生空闲中断标志 IDIF SPI 从动模式下, 如果发送缓冲器 TB0~TB3 和发送移位寄存器均为空时, 又收到主机提供的通讯时钟, 则 SPI_IF 寄存器中会置起发送错误中断标志 TEIF SPI 从动模式, 支持片选信号变化中断, 配置 SPI_IE 寄存器的 NSSIE, 可使能该中断 配置 SPI_CON 寄存器的 RST 位, 可将 SPI 通讯模块软件复位, 复位后 : 禁止数据通讯 EN=0;SPI_IE 寄存器中禁止相关中断 TBIE=0,TBWEIE=0,RBIE=0,TEIE=0,ROIE=0, IDIE=0,NSSIE=0;SPI_IF 寄存器中复位相关中断标志为默认值 TBIF=1,TBWEIF=0, RBIF=0,TEIF=0,ROIF=0,IDIF=0,NSSIF=0;SPI_STA 寄存器中置起空闲标志 IDLE=1; 置起各发送缓冲器空标志 TBEF0~TBEF3=1 ; 清除各接收缓冲器满标志 RBFF0~RBFF3= SPI 延迟接收功能 SPI 通讯时, 是利用时钟的上升 / 下降沿分别对数据的发送和接收进行同步 正常通讯时, 对主机接收数据来说, 从机送出的数据应在半个时钟周期内, 到达主机接收端口, 否则会造成主机接收数据的丢失 SPI 主控模式支持延迟接收功能, 配置 SPI_CON 寄存器的 DRE, 可使能该功能, 主机会再延迟半个时钟周期, 在下一个发送时钟边沿处, 进行数据的接收采集 所以延迟接收功能使能后, 从机发送端口和主机接收端口之间的线路延时, 最大可接近 1 个通讯时钟周期 举例说明 SPI 延迟接收功能 :SPI_CON 寄存器中 DFS<1:0>=00, 上升沿发送 ( 先 ), 下降沿接收 ( 后 ) V /278

177 NSS0 SCK MISO0 MSB MSB-1 LSB+1 ( 理想波形 ) MOSI0 MSB MSB-1 LSB+1 MISO0 数据接收点 线路延时 MISO0 MSB LSB+2 LSB+1 LSB ( 实际波形 ) LSB LSB 图 5-26 SPI 延迟接收功能波形示意图 SPI 数据帧发送间隔功能 SPI 主控模式支持数据帧发送间隔功能, 配置 SPI_CON 寄存器的 TME, 可使能该功能, 配置 TMP, 可设定发送间隔周期 当使能 SPI 数据帧发送间隔功能时, 每帧数据发送完成后, 会等待预先设定的发送间隔时间, 再发送下一帧数据 特殊功能寄存器 SPI 控制寄存器 (SPI_CON) 偏移地址 :00 H 复位值 : _ _ _ B RXCLR TXCLR DW<2:0> TMP<5:0> TMS TME DFS<1:0> DRE REN MS RST EN RXCLR bit31 W SPI 接收缓冲器清空控制位 0: 无效 ; 1: 清空接收缓冲器 TXCLR bit30 W SPI 发送缓冲器清空控制位 0: 无效 ; 1: 清空发送缓冲器 bit29-27 DW<2:0> bit26-24 R/W SPI 发送帧位宽 (1~8 位 ) 一帧数据位宽为 SPIDW+1 位 TMP<5:0> bit23-18 R/W SPI 帧发送间隔周期设置位 ( 仅主控模式支持 ) 详细说明见备注 TMS bit17 R SPI 帧发送间隔状态标志位 ( 仅主控模式支持 ) 0: 非发送间隔状态 1: 发送间隔状态 V /278

178 TME bit16 R/W SPI 帧发送间隔使能位 ( 仅主控模式支持 ) 1: 使能 bit15-8 DFS<1:0> bit7-6 R/W SPI 通讯数据格式 00: 上升沿发送 ( 先 ), 下降沿接收 ( 后 ) 01: 下降沿发送 ( 先 ), 上升沿接收 ( 后 ) 10: 上升沿接收 ( 先 ), 下降沿发送 ( 后 ) 11: 下降沿接收 ( 先 ), 上升沿发送 ( 后 ) DRE bit5 R/W SPI 延迟接收使能位 ( 仅主控模式支持 ) 1: 使能 bit4 REN bit3 R/W SPI 接收使能位 1: 使能 ( 需 EN 同时使能 ) MS bit2 R/W SPI 通讯模式选择位 0: 主控模式 1: 从动模式 RST bit1 W SPI 软件复位 0: 读取时始终为 0 1: 软件复位, 自动清零 EN bit0 R/W SPI 通讯使能位 1: 使能 (SPI 通讯使能, 但仅使能数据发送 ) 注 1:SPI 帧发送间隔周期计算公式如下 : TSCK0 * (1 + TMP), 即时间间隔为 1~64 个通讯时钟周期 TSCK0 注 2: 由于不同的通讯数据格式对端口的初始电平要求是不同的 ( 参见上面各通讯波形示意图 ), 因此若无法确定使能 SPI 之前的 SPI 端口的初始值, 必须先配置通讯数据格式控制位, 对 SPI 端口初始电平进行自动设置 ; 然后再通过对 SPI_CON 寄存器的 EN 和 REN 置 1 来使能 SPI 发送和接收 即 SPI_CON 寄存器需要分两次写入, 否则易产生通信错误 SPI 发送数据写入寄存器 (SPI_TBW) 偏移地址 :08 H 复位值 : _ _ _ B TBW<31:16> TBW<15:0> TBW<31:0> bit31-0 W 写入的发送数据 V /278

179 字节写入时 : 仅允许对 TBW<7:0> 写入 半字写入时 : 仅允许对 TBW<15:0> 写入 字写入时 : 对 TBW<31:0> 写入 SPI 接收数据读取寄存器 (SPI_RBR) 偏移地址 :0C H 复位值 : _ _ _ B RBR<31:16> RBR<15:0> RBR<31:0> bit31-0 R 读取的接收数据字节读取时 : 仅允许对 RBR<7:0> 读取半字读取时 : 仅允许对 RBR<15:0> 读取字读取时 : 对 RBR<31:0> 读取 SPI 中断使能寄存器 (SPI_IE) 偏移地址 :10 H 复位值 : _ _ _ B RBIM<1:0> TBIM<1:0> TBWEIE NSSIE IDIE ROIE TEIE RBIE TBIE bit31-12 RBIM<1:0> bit11-10 R/W SPI 接收缓冲器满中断模式选择位 00:RB0 满产生中断 01:RB0 与 RB1 满产生中断 10:RB0~ RB3 全满产生中断 11: TBIM<1:0> bit9-8 R/W SPI 发送缓冲器空中断模式选择位 00:TB0 空产生中断 01:TB0 与 TB1 空产生中断 10:TB0~TB3 全空产生中断 11: bit7 TBWEIE bit6 R/W SPI 发送数据写错误中断使能位 1: 使能 NSSIE bit5 R/W SPI 片选变化中断使能位 ( 仅从动模式支持 ) V /278

180 IDIE bit4 R/W ROIE bit3 R/W TEIE bit2 R/W RBIE bit1 R/W TBIE bit0 R/W 1: 使能 SPI 空闲状态中断使能位 ( 仅主控模式支持 ) 1: 使能 SPI 接收数据溢出中断使能位 1: 使能 SPI 发送数据错误中断使能位 ( 仅从动模式支持 ) 1: 使能 SPI 接收缓冲器满中断使能位 1: 使能 SPI 发送缓冲器空中断使能位 1: 使能 SPI 中断标志寄存器 (SPI_IF) 偏移地址 :14 H 复位值 : _ _ _ B TBWEIF NSSIF IDIF ROIF TEIF RBIF TBIF bit31-7 TBWEIF bit6 R/W SPI 发送数据写错误中断标志位 0: 未发生写错误 1: 发生写错误, 可能会出现下列错误 : 对 SPI_TBW 字写入时,TB0~TB3 未全空 ; 对 SPI_TBW 半字写入时,TB0~TB3 未半空 ; 对 SPI_TBW 字节写入时,TB0~TB3 全满 ; 对 SPI_TBW<31:16> 进行半字写入 ; 对 SPI_TBW<31:8> 进行字节写入 软件写 1 清除标志位, 写 0 无效 NSSIF bit5 R/W SPI 片选变化中断标志位 ( 仅从动模式支持 ) 0: 片选信号未发生变化 1: 片选信号发生变化软件写 1 清除标志位, 写 0 无效 IDIF bit4 R/W SPI 空闲中断标志位 ( 仅主控模式支持 ) 0: 未进入空闲状态 V /278

181 ROIF bit3 R/W TEIF bit2 R/W RBIF bit1 R TBIF bit0 R 1: 进入空闲状态软件写 1 清除标志位, 写 0 无效 ; 或软件写寄存器 SPI_TBW 清除标志位 SPI 接收数据溢出中断标志位 0: 未溢出 1: 溢出软件写 1 清除标志位, 写 0 无效 SPI 发送错误中断标志位 ( 仅从动模式支持 ) 0: 未发生发送错误 1: 发生发送错误 : 发送缓冲器和发送移位寄存器全空时, 又收到主控方提供的通讯时钟软件写 1 清除标志位, 写 0 无效 SPI 接收缓冲器满中断标志位读 SPI_RBR 可清除中断标志 SPI 发送缓冲器空中断标志位写 SPI_TBW 可清除中断标志 注 1:SPI 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 2: 对 SPI_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断 发生 SPI 发送缓冲寄存器 (SPI_TB) 偏移地址 :18 H 复位值 : _ _ _ B TB3<7:0> TB2<7:0> TB1<7:0> TB0<7:0> TB3<7:0> bit31-24 R 发送数据缓冲器 3 TB2<7:0> bit23-16 R 发送数据缓冲器 2 TB1<7:0> bit15-8 R 发送数据缓冲器 1 TB0<7:0> bit7-0 R 发送数据缓冲器 0 SPI 接收缓冲寄存器 (SPI_RB) 偏移地址 :1C H 复位值 : _ _ _ B RB3<7:0> RB2<7:0> RB1<7:0> RB0<7:0> V /278

182 RB3 bit31-24 R 接收数据缓冲器 3 RB2 bit23-16 R 接收数据缓冲器 2 RB1 bit15-8 R 接收数据缓冲器 1 RB0 bit7-0 R 接收数据缓冲器 0 SPI 状态寄存器 (SPI_STA) 偏移地址 :20 H 复位值 : _ _ _ B IDLE RBFF3 RBFF2 RBFF1 RBFF0 TBEF3 TBEF2 TBEF1 TBEF0 NSS bit31-17 IDLE bit16 R SPI 空闲标志位 ( 仅主控模式支持 ) 0: 非空闲状态 1: 空闲状态 RBFF3 bit15 R RB3 满标志位 0: 空 1: 满 RBFF2 bit14 R RB2 满标志位 0: 空 1: 满 RBFF1 bit13 R RB1 满标志位 0: 空 1: 满 RBFF0 bit12 R RB0 满标志位 0: 空 1: 满 TBEF3 bit11 R TB3 空标志位 0: 满 1: 空 TBEF2 bit10 R TB2 空标志位 0: 满 1: 空 TBEF1 bit9 R TB1 空标志位 0: 满 1: 空 TBEF0 bit8 R TB0 空标志位 0: 满 1: 空 NSS bit7 R SPI 片选标志位 ( 仅从动模式支持 ) V /278

183 bit6-0 0: 选中 1: 未选中 SPI 波特率设置寄存器 (SPI_CKS) 偏移地址 :24 H 复位值 : _ _ _ CKS<7:0> CKS<7:0> bit7-0 R/W SPI 通讯时钟设置位 ( 仅主控模式支持 ) SPI 通讯波特特率计算公式如下 : CKS<7:0>=0x00 时 :FPCLK; CKS<7:0>=0x01~0xFF 时 :FPCLK/(CKS * 2) bit31-8 注 :SPI 通讯时钟特率计算公式如下,SPI_CKS 寄存器中 : CKS<7:0>=0x00 时 :FPCLK; CKS<7:0>=0x01~0xFF 时 :FPCLK/(CKS * 2) SPI 应用说明为保证 SPI 的正常通信,SPI 的配置需遵循如下要求 : 1. 选择 SPI 使用 20ns 滤波器时,SPI 的通讯时钟频率必须小于 20Mz, 为确保通讯稳定性, 建议在 SPI 通讯过程中, 使能 SPI 通讯端口滤波器 2. SPI 的帧位宽与 SPI_CKS 寄存器 CKS 的配置存在以下关系 : 当 SPI 帧位宽选择 5~8 位时,CKS >= 0; 当 SPI 帧位宽选择 2~4 位时,CKS >= 1; 当 SPI 帧位宽选择 1 位时,CKS > 2 3. 由于不同的通讯数据格式对端口的初始电平要求是不同的 ( 参见上面各通讯波形示意图 ), 因此若无法确定使能 SPI 之前的 SPI 端口的初始值, 必须先配置通讯数据格式控制位, 对 SPI 端口初始电平进行自动设置 ; 然后再通过对 SPI_CON 寄存器的 EN 和 REN 置 1 来使能 SPI, 即对 SPI_CON 寄存器分两步写入 V /278

184 5. 4 I2C 总线串口通讯控制器 (I2C0) 概述 支持单主控模式 支持自动重复寻呼功能 支持自动发送 停止位 功能 支持数据应答延迟功能 支持数据帧传输间隔功能 支持软件触发 起始位 支持软件触发 停止位 支持软件触发数据接收, 接收模式可配 支持从动模式 支持 7 位从机地址可配 支持从机地址匹配中断标志 支持接收 停止位 中断标志 支持时钟线自动下拉等待请求功能 支持自动发送 未应答 功能 支持 4 级发送缓冲器和 4 级接收缓冲器 通讯端口 SCL0 和 SDA0, 均支持输出模式可配置 : 推挽输出或开漏输出 通讯端口 SCL0 和 SDA0 支持 16 倍速采样器可配置 支持发送和接收缓冲器空 / 满中断 支持起始位中断 停止位中断 支持接收数据溢出中断 发送数据写错误中断 结构框图 传输状态控制电路 16 倍速采样器 SCL0 APB_I2C 数据传输电路 16 倍速采样器 SDA0 通讯端口主从选择 图 5-27 I2C 电路结构框图 I2C 总线基本原理 I2C 通讯协议 I2C 总线通讯协议, 读写操作示意图如下所示 : V /278

185 启动信号 启动信号 寻呼从机地址 + 写操作 寻呼从机地址 + 读操作 应答信号 应答信号 主控器 数据字节 1 应答信号 从动器 主控器 数据字节 1 应答信号 从动器 数据字节 2 数据字节 2 应答信号 应答信号 停止信号 停止信号 图 5-28 I2C 总线通讯协议示意图 I2C 通讯由主控器发起, 发送启动信号 S 控制总线, 发送停止信号 P 释放总线 I2C 总线上可以同时有多个主控器 ( 前提是每个主控器都支持多主机仲裁机制 ), 并至少需要一个从动器, 且每一个从动器都必须有一个独立且唯一的寻呼地址 主控器在发送启动信号后, 紧接着发送寻呼从机地址和读写控制位 读写控制位 R/ W, 用于通知从动器数据传送的方向, 0 表示由主控器向从动器 写 数据, 1 表示由主控器向从动器 读 数据 I2C 通讯协议支持应答机制, 即发送方每传送一个字节的数据 ( 包括寻呼地址 ), 接收方必须反馈一个应答信号 (ACK 或 NACK), 发送方再根据应答信号进行下一步的操作 如果主控器和从动器的时钟端口 (SCL) 都使用输出开漏设计, 且主控器支持时钟线等待请求操作, 那么从动器可以在时钟线为低电平时下拉时钟线, 使主控器等待从动器, 直到从动器释放时钟线 I2C 通讯时, 每个数据字节在传输时都是高位在前, 低位在后 I2C 通讯时, 数据线 SDA 的数据信号电平, 只在时钟线 SCL 的低电平期间变化, 在 SCL 高电平期间应保持稳定 如果 SDA 电平在 SCL 高电平期间变化, 则会触发起始位或停止位, 由高到低变化触发起始位, 由低到高变化触发停止位 I2C 数据传输格式 I2C 通讯时, 根据从动器的具体设计规格, 确定实际的数据传输格式 以下只介绍一种常用的 I2C 通讯数据传输格式 : V /278

186 S Slave Address W ACK Memory Address ACK DATA0 ACK 7 位寻呼从动器地址 片内访问单元地址 写入数据 0 DATA1 ACK DATAn ACK (NACK) P 主控器接收 主控器发送 写入数据 1 写入数据 n 图 5-29 I2C 主控器写入从动器数据示意图 S Slave Address W ACK Memory Address ACK 7 位寻呼从动器地址 片内访问单元地址 R-S Slave Address R ACK DATA0 ACK 7 位寻呼从动器地址 读取数据 0 DATA1 ACK DATAn NACK P 读取数据 1 读取数据 n 主控器接收 主控器发送 图 5-30 I2C 主控器读取从动器数据示意图 I2C 通讯端口配置 I2C 通讯端口 SCL0 和 SDA0, 均支持推挽输出和开漏输出两种模式, 配置 I2C_CON 寄存器的 SCKOD 和 SDAOD, 可分别进行选择 推挽输出是 I/O 端口的标准输出, 输出数据 0 和 1 时,I/O 端口电平也分别为 0 和 1 对推挽输出模式, 存在端口电平冲突的风险 例如 : 当主控器输出 0, 而从动器输出 1 时, 会发生端口信号电平冲突, 导致端口状态不确定 开漏输出是 I2C 总线协议中的标准模式, 可以避免端口电平冲突问题 开漏输出端口的示意图如下所示 : V /278

187 VDD SDA 数据线 SCL 时钟线 SCL1_OUT SDA1_OUT SCL2_OUT SDA2_OUT SCL_IN SDA_IN SCL_IN SDA_IN 主控器 从动器 图 5-31 开漏输出端口示意图 开漏输出端口的高电平由 I2C 总线的上拉电阻提供, 而低电平由主控器与从动器共同决定 任何一方都可以将总线电平下拉到 0, 但只有当双方都释放总线后, 总线电平才能被上拉 到 I2C 时基定时器与 16 倍速采样器 通讯端口 SCL0 和 SDA0 支持 16 倍采样器, 配置 I2C_CON 寄存器的 SCKSE,SDASE 可 使能两个端口的采样器 I2C 时基定时器的计数周期, 作为 16 倍速采样器的采样周期 在 I2C 主控模式下,I2C 时基定时器还用于提供通讯传输波特率 如果需要使用 16 倍速采样器, 或使用 I2C 主控模式, 均必须使能 I2C 时基定时器 配置 I2C_CON 寄存器的 TJE, 可使能该时基定时器, 配 TJP, 可设定时基定时周期 I2C 主控模式下, 总线端口信号的时序参数如下 : 参数名称 参数符号 使能 16 倍速采样器 禁止 16 速倍采样器 启动 / 重启动位建立时间 TSU:S > Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 启动 / 重启动位保持时间 THD:S > Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 停止位建立时间 TSU:P > Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 停止位保持时间 THD:P > Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 数据 / 应答位建立时间 TSU:DA > Tosc x (TJP+1) x 4 Tosc x (TJP+1) x 4 数据 / 应答位保持时间 THD:DA > Tosc x (TJP+1) x 8 Tosc x (TJP+1) x 4 通讯时钟高电平脉宽 THIGH Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 通讯时钟低电平脉宽 TLOW Tosc x (TJP+1) x 12 Tosc x (TJP+1) x 8 表 5-1 I2C 总线端口信号的时序参数列表 V /278

188 TSU:S TSU:DA THD:P SDA0 THD:DA SCL0 THD:S THIGH TLOW TSU:P 图 5-32 I2C 总线端口信号的波形示意图使能 16 倍速采样器后, 采样器对 I2C 总线进行采样, 而 I2C 总线由于上拉电阻的作用, 开始时的电平是不稳定的, 当 I2C 总线电平稳定后, 采样器的输出才能稳定 因此, 这段不稳定的时间将造成 I2C 传输波特率的下降, 下降程度取决于总线电平上升边沿的时间 I2C 主控模式下, 传输波特率计算公式如下 (Fosc 为系统时钟频率 ): 使能通讯端口的 16 倍速采样器时 :FSCL=Fosc / ((TJP+1) x 24); 禁止通讯端口的 16 倍速采样器时 :FSCL=Fosc / ((TJP+1) x 16) I2C 通讯发送器支持 4 级发送缓冲器 TB0,TB1,TB2,TB3 和 1 级发送移位寄存器, 可进行数据的连续发送, 直到发送缓冲器和移位寄存器全空, 最多可连续写入和发送 5 帧数据 发送缓冲器 TBy 为只读寄存器, 只能通过发送数据寄存器 I2C_TBW 写入 发送数据寄存器 I2C_TBW 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 写该寄存器地址单元时, 实际上是将发送数据写入到发送缓冲器 TB0~TB3 中, 再传输到发送移位寄存器, 通过数据端口 SDA0 进行数据发送 发送数据寄存器 I2C_TBW 支持 3 种写入方式 : 字节写入, 半字写入和字写入 字节方式写入 I2C_TBW 时, 发送数据被写入到发送缓冲器 TB0; 半字方式写入 I2C_TBW 时, 发送数据被同时写入到发送缓冲器 TB0 和 TB1, 其中低字节存放在 TB1 中 ; 字方式写入 I2C_TBW 时, 发送数据被同时写入到发送缓冲器 TB0,TB1,TB2 和 TB3, 其中低字节存放在 TB3 中 发送数据从写入到发送到端口的数据流示意图如下所示 : I2C_TBW TB0 TB1 TB2 TB3 发送移位寄存器 SDA0 端口 图 5-33 I2C 发送数据流示意图 支持发送缓冲器空中断, 配置 I2C_IE 寄存器的 TBIM, 可选择中断模式 TBIM<1:0>=00, 为字节空产生中断, 即发送缓冲器 TB0 为空时, 会置起 I2C_IF 寄存器的中断标志 TBIF; TBIM<1:0>=01, 为半字空产生中断, 即发送缓冲器 TB0 和 TB1 均为空时, 会置起 I2C_IF 寄存器的中断标志 TBIF; TBIM<1:0>=10, 为字空产生中断, 即发送缓冲器 TB0,TB1,TB2 和 TB3 均为空时, 会 V /278

189 置起 I2C_IF 寄存器的中断标志 TBIF 支持发送数据寄存器 I2C_TBW 误写中断, 当对 I2C_TBW 的写入方式, 与发送缓冲器 TB0~TB3 的空闲状态冲突时, 或写入操作访问错误时, 会置起 I2C_IF 寄存器误写中断标志 TBWEIF I2C 通讯接收器支持 4 级接收缓冲器 RB0,RB1,RB2,RB3 和 1 级接收移位寄存器, 可进行数据的连续接收, 直到接收缓冲器和移位寄存器全满, 最多可连续接收 5 帧数据, 再执行数据读取操作 读取接收数据寄存器 I2C_RBR, 可得到接收的数据,I2C_STA 寄存器中对应的接收缓冲器清除满标志 RBFF0~RBFF3; 也可以读取接收缓冲器 RB0~RB3 得到接收的数据, 但不会清除满标志 RBFF0~RBFF3 接收数据寄存器 I2C_RBR 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 读该寄存器地址单元时, 实际上是读取接收缓冲器 RB0~RB3 中的数据 接收数据寄存器 I2C_RBR 支持 3 种读取方式 : 字节读取, 半字读取和字读取 字节方式读取 I2C_RBR 时, 实际是读取接收缓冲器 RB0 的数据 ; 半字方式读取 I2C_RBR 时, 实际是同时读取接收缓冲器 RB0 和 RB1 的数据, 其中 RB0 中的数据为低字节 ; 字方式读取 I2C_RBR 时, 实际是同时读取接收缓冲器 RB0,RB1,RB2 和 RB3, 其中 RB0 中的数据为低字节 接收数据从数据端口到各级缓冲器的数据流示意图如下所示 : I2C_RBR RB0 RB1 RB2 RB3 接收移位寄存器 SDA0 端口 图 C 接收数据流示意图 接收缓冲器 RB0~RB3 的数据移到下一级缓冲器后, 会清除其接收满标志 RBFF0~RBFF3 当 4 级接收缓冲器和 1 级接收移位寄存器均满时, 会立即置起接收数据溢出中断标志 I2C_IF 寄存器中 ROIF, 同时不会接收新数据 支持接收缓冲器满中断,I2C_IE 寄存器种配置 RBIM, 可选择中断模式 RBIM<1:0>=00, 为字节满产生中断, 即接收缓冲器 RB0 为满时, 会置起 I2C_IF 寄存器的中断标志 RBIF; RBIM<1:0>=01, 为半字满产生中断, 即接收缓冲器 RB0 和 RB1 均为满时, 会置起 I2C_IF 寄存器的中断标 RBIF; RBIM<1:0>=10, 为字满产生中断, 即接收缓冲器 RB0,RB1,RB2 和 RB3 均为满时, 会置起 I2C_IF 寄存器的中断标志 RBIF I2C 通讯控制配置 I2C_CON 寄存器的 RST, 可将 I2C 通讯模块软件复位, 复位后 : 禁止数据通讯 EN=0; I2C_IE 寄存器中禁止相关中断 SRIE=0,SPIE=0,TBIE=0,TBWEIE=0,RBIE=0,TEIE=0, ROIE=0,NAIE=0;I2C_IF 寄存器中复位相关中断标志为默认值 SRIF=0,SPIF=0, TBIF=1,TBWEIF=0,RBIF=0,TEIF=0,ROIF=0,NAIF=0; 置起空闲标志 IDLE=1; V /278

190 置起各发送缓冲器空标志 TBEF0~TBEF3=1; 清除各接收缓冲器满标志 RBFF0~RBFF3 = I2C 起始位配置 SRT, 可触发 I2C 发送起始位, 启动或重启动一次传输操作, 发送寻呼从动器地址 起始位波形图如下 : SDA0 SCL0 S START ADRRESS R/W ACK 图 5-35 I2C 起始位波形图 I2C 主控模式, 支持自动寻呼功能 配置 I2C_MOD 寄存器的 SRAE, 可使能自动寻呼功能,I2C 主控器会自动判断 地址应答 位, 若该 地址应答 位为未应答 NACK, 则自动发送起始位, 重启动本次地址寻呼操作, 并且直到接收到应答 ACK 才停止继续重启动 在芯片应用时, 使能 I2C 自动寻呼功能前, 需确保被寻呼的地址是真实存在的, 否则会造成主控器芯片持续重启动地址寻呼 举例说明自动寻呼功能 : 芯片通过 I2C 向 EEPROM 器件写入数据时, 存在写等待时间 在 EEPROM 存储器本身写数据期间, 主控器芯片寻呼该器件时, 将收到未应答 NACK 可有两种方法解决 EEPROM 写数据期间的地址寻呼问题 : 一种是主控器芯片设定寻呼间隔, 在 EEPROM 数据写操作完成后, 再寻呼该器件 ; 另一种是主控器芯片启动自动寻呼功能, 持续寻呼该器件, 直到收到应答 ACK 为止 SDA0 SCL0 S S START ADRRESS R/W ACK START ADRRESS R/W ACK 图 5-36 I2C 自动寻呼波形图 I2C 停止位 配置 I2C_MOD 寄存器的 SPT, 可触发 I2C 发送停止位, 结束本次传输操作 停止位波 形图如下 : V /278

191 SDA0 SCL START ADRRESS R/W ACK P STOP 图 5-37 I2C 停止位波形图 I2C 主控模式, 支持自动结束功能 配置 I2C_MOD 寄存器的 SPAE, 可使能自动结束功能, 在发送 NACK 或接收 NACK 后, 自动发送停止位, 结束本次不成功的传输操作 自动结束功能的优先级小于自动寻呼功能 I2C 应答延迟功能 I2C 的主控模式, 支持应答延迟功能, 配置 I2C_MOD 寄存器的 ADE, 可使能该功能, 配置 ADLY, 可设定应答延迟的时间 应答延迟功能使能后,I2C 主控器将延迟发送通讯时钟 SCL0 的应答位脉冲 当从动器不能按照正常数据的通讯速率, 对应答位进行接收和发送时, 主控器可使能应答延迟功能, 并根据从动器的具体设计规格, 设定应答延迟时间 举例说明 I2C 应答延迟功能 :I2C_MOD 寄存器中 ADLY<2:0>=001, 延迟时间为 1 个 TSCL0, 通讯波形示意图如下 : SDA0 SCL *TSCL *TSCL DATA ACK DATA ACK 图 5-38 I2C 应答延迟功能波形示意图 I2C 数据帧传输间隔功能 I2C 主控模式, 支持数据帧传输间隔功能, 配置 I2C_MOD 寄存器的 TIS, 可使能该功能, 并设定间隔的时间 数据帧传输间隔时间设定后, 在当前数据帧的应答位脉冲之后,I2C 主控器将延迟一段设定的时间, 再发送下一个数据帧的通讯脉冲 当从动器不能及时读取接收到的数据, 或准备好发送的数据时, 主控器可根据从动器的具体设计规格, 设定数据帧的传输间隔 举例说明 I2C 数据帧传输间隔功能 :I2C_MOD 寄存器中 TIS<3:0>=0001, 间隔时间为 1 个 TSCL0, 通讯波形示意图如下 : V /278

192 SDA0 SCL *TSCL *TSCL DATA ACK DATA ACK 图 5-39 I2C 数据帧传输间隔功能波形示意图 I2C 时钟线自动下拉等待请求功能 I2C 从动模式, 支持时钟线自动下拉等待请求功能, 配置 I2C_MOD 寄存器的 CSE, 可使能该功能 为实现 I2C 时钟线的下拉等待请求功能, 还需配置 I2C_CON 寄存器的 SCKOD, 将通讯端口 SCL0 选择为开漏输出模式, 通过上拉电阻提供高电平, 使从动器可对时钟线下拉控制, 使主控器等待 在通常情况下, 从动器处于释放时钟线的状态, 时钟线 SCL0 完全由主控器控制 但当从动器出现异常情况, 短时间内无法继续进行数据传输时, 从动器可以在时钟线 SCL0 为低电平时输出 0( 不可以在高电平时输出 0, 否则会破坏数据传输过程 ), 强行使 SCL0 保持低电平, 使主控器进入通讯等待状态, 直到从动器释放时钟线 时钟线下拉等待请求波形示意图如下 : 主控器 从动器 主控器释放时钟线 从动器下拉时钟线 从动器释放时钟线 SCL0 图 5-40 I2C 时钟线下拉等待波形示意图 I2C 从动模式下, 时钟自动下拉等待请求功能使能后, 当接收到本芯片寻呼地址和读操作位时, 如果 I2C 的发送缓冲器和发送移位寄存器全空, 且自动发送未应答使能位 ANAE=0, 则会自动将时钟线下拉 ; 当接收到本芯片寻呼地址和写操作位时, 如果 I2C 的接收缓冲器和接收移位寄存器全满, 则会自动将时钟线下拉 I2C 自动发送未应答功能 I2C 从动模式, 支持自动发送未应答 NACK 功能, 配置 I2C_MOD 寄存器的 ANAE, 可使能该功能 从动器使能自动发送未应答功能时, 不会强制控制时钟线 ( 即使时钟线自动下拉使能位 CSE=1), 适用于通讯端口 SCL0 选择为推挽输出或开漏输出模式两种情况 I2C 从动模式下, 自动发送未应答 NACK 功能使能后, 当接收到本芯片寻呼地址和读操作位时, 如果 I2C 的发送缓冲器和发送移位寄存器全空, 则会自动发送未应答 NACK; 当接收到本芯片寻呼地址和写操作位时, 如果 I2C 的接收缓冲器和接收移位寄存器全满, V /278

193 则会自动发送未应答 NACK, 通知主控器重新通讯 特殊功能寄存器 I2C 控制寄存器 (I2C_CON) 偏移地址 :00 H 复位值 : _ _ _ B SA<6:0> RW TJP<7:0> TJE SDASE SCKSE SDAOD SCKOD RST EN bit31-24 SA<6:0> bit23-17 R/W 从机地址位主控模式 : 触发 启动 / 重启动 操作时, 自动发送从动模式 : 接收到 启动 / 重启动 后用于匹配比较 I2C 读写控制位 0: 写操作 1: 读操作 bit16 RW R/W 主控模式 : 该位可读可写, 触发 启动 / 重启动 操 作时, 自动发送该位 从动模式 : 该位只可读, 从机地址匹配后, 硬件自动 根据接收到的控制位值, 更新该位 TJP<7:0> bit15-8 R/W I2C 时基定时周期设置位 00~FF: 分别为 1~256 个 TPCLK TJE bit7 R/W I2C 时基定时器使能位 1: 使能 bit6 SDASE bit5 R/W SDA0 端口 16 倍速采样使能位 1: 使能 SCKSE bit4 R/W SCL0 端口 16 倍速采样使能位 1: 使能 SDAOD bit3 R/W SDA0 端口输出模式选择位 0: 推挽输出 1: 开漏输出 SCKOD bit2 R/W SCL0 端口输出模式选择位 0: 推挽输出 1: 开漏输出 RST bit1 W I2C 软件复位 0: 读取时始终为 0 1: 软件复位, 自动清零 V /278

194 EN bit0 R/W I2C 通讯使能位 1: 使能 I2C 工作模式寄存器 (I2C_MOD) 偏移地址 :04 H 复位值 : _ _ _ B TAS BLD RDT SPT SRT TIS<3:0> ADE ADLY<2:0> SPAE SRAE ANAE CSE RDM<2:0> MS bit31-25 TAS bit24 R/W I2C 发送应答设置位 ( 仅从动模式支持 ) 0: 发送 ACK 1: 发送 NACK bit23-20 BLD bit19 R/W I2C 总线释放功能控制位 ( 仅主控模式支持 ) 0: 无效 1:SDA0 端口为高电平,SCL0 端口发送 8 个时钟 该功能需配合 I2C 起始位和停止位使用, 达到释放时钟线和数据线的目的 RDT bit18 R/W I2C 接收数据触发位 ( 仅主控模式支持 ) 0: 无效 1: 开始发送通讯时钟, 接收数据, 由 RDM<2:0> 配置接收数据模式 SPT bit17 R/W I2C 停止位触发位 ( 仅主控模式支持 ) 0: 无效 1: 触发停止位 SRT bit16 R/W I2C 起始位触发位 ( 仅主控模式支持 ) 0: 无效 1: 触发起始位, 产生起始位发送完成中断标志 TIS<3:0> bit15-12 R/W I2C 数据帧传输间隔设置位 ( 仅主控模式支持 ) ~1111: 分别为 1~15 个 I2C 通讯时钟周期 ADE bit11 R/W I2C 应答延迟使能位 ( 仅主控模式支持 ) 1: 使能 ADLY<2:0> bit10-8 R/W I2C 应答延迟时间设置位 ( 仅主控模式支持 ) 000:0.5 个 I2C 通讯时钟周期 001:1 个 I2C 通讯时钟周期 V /278

195 SPAE bit7 R/W SRAE bit6 R/W ANAE bit5 R/W CSE bit4 R/W RDM<2:0> bit3-1 R/W MS bit0 R/W 010:1.5 个 I2C 通讯时钟周期 011:2 个 I2C 通讯时钟周期 100:2.5 个 I2C 通讯时钟周期 101:3 个 I2C 通讯时钟周期 110:3.5 个 I2C 通讯时钟周期 111:4 个 I2C 通讯时钟周期 I2C 自动结束使能位 ( 仅主控模式支持 ) 1: 使能 ( 当发送或接收 NACK 后, 自动发送停止位, 优先级小于 SRAE) I2C 自动寻呼使能位 ( 仅主控模式支持 ) 1: 使能 ( 若寻呼地址的应答位为 NACK, 则自动重启动本次寻呼操作 ) I2C 自动发送未应答使能位 ( 仅从动模式支持 ) 1: 使能 I2C 时钟线自动下拉等待请求使能位 ( 仅从动模式支持 ) 1: 使能 I2C 接收模式选择位 ( 仅主控模式支持 ) 000: 接收 1 字节, 发送 ACK 001: 接收 1 字节, 发送 NACK 010: 连续接收 2 字节, 每个字节发送 ACK 011: 连续接收 2 字节, 前 1 字节发送 ACK, 后 1 字节, 发送 NACK 100: 连续接收 4 字节, 每个字节发送 ACK 101: 连续接收 4 字节, 前 3 字节发送 ACK, 后 1 字节, 发送 NACK 110: 连续接收, 每个字节发送 ACK 111: 完成该字节接收, 发送 NACK I2C 通讯模式选择位 0: 主控模式 1: 从动模式 注 : 如果 ANAE 与 CSE 同时为 1, 则 ANAE 优先级高, 即发送未应答位后, 不会将 I2C 时钟线自动下拉 V /278

196 I2C 中断使能寄存器 (I2C_IE) 偏移地址 :08 H 复位值 : _ _ _ B TIDLEIE RBIM<1:0> TBIM<1:0> TBWEIE NAIE ROIE TEIE RBIE TBIE SPIE SRIE bit31-13 TIDLEIE bit12 R/W I2C 发送空闲中断使能位 1: 使能 RBIM<1:0> bit11-10 R/W I2C 接收缓冲器满中断模式选择位 00: 字节满产生中断 01: 半字满产生中断 10: 字满产生中断 11: TBIM<1:0> bit9-8 R/W I2C 发送缓冲器空中断模式选择位 00: 字节空产生中断 01: 半字空产生中断 10: 字空产生中断 11: TBWEIE bit7 R/W I2C 发送数据写错误中断使能位 1: 使能 NAIE bit6 R/W I2C 未应答 NACK 中断使能位 1: 使能 ROIE bit5 R/W I2C 接收数据溢出中断使能位 1: 使能 TEIE bit4 R/W I2C 发送数据错误中断使能位 1: 使能 RBIE bit3 R/W I2C 接收缓冲器满中断使能位 1: 使能 TBIE bit2 R/W I2C 发送缓冲器空中断使能位 1: 使能 SPIE bit1 R/W I2C 停止位中断使能位 1: 使能 V /278

197 SRIE bit0 R/W I2C 起始位中断使能位 1: 使能 I2C 中断标志寄存器 (I2C_IF) 偏移地址 :0C H 复位值 : _ _ _ B TIDLEIF TBWEIF NAIF ROIF TEIF RBIF TBIF SPIF SRIF bit31-13 TIDLEIF bit12 R/W I2C 发送空闲中断标志位 0: 未产生空闲中断 1: 空闲中断标志软件写 1 清除标志位, 写 0 无效 bit11-8 TBWEIF bit7 R/W I2C 发送数据写错误中断标志位 0: 未发生写错误 1: 发生写错误, 可能会出现下列错误 : 对 I2C_TBW 字写入时,TB0~TB3 未全空 ; 对 I2C_TBW 半字写入时,TB0~TB3 未半空 ; 对 I2C_TBW 字节写入时,TB0~TB3 全满 ; 对 I2C_TBW<31:16> 进行半字写入 ; 对 I2C_TBW<31:8> 进行字节写入 软件写 1 清除标志位, 写 0 无效 NAIF bit6 R/W I2C 未应答中断标志位 0: 未产生未应答 NACK 1: 产生未应答 NACK I2C 接收或发送 NACK 位后, 产生中断标志软件写 1 清除标志位, 写 0 无效 ROIF bit5 R/W I2C 接收数据溢出中断标志位 0: 未溢出 1: 溢出软件写 1 清除标志位, 写 0 无效 TEIF bit4 R/W I2C 发送错误中断标志位 0: 未发生发送错误 1: 发生发送错误 : 发送缓冲器和发送移位寄存器全空时, 又收到主控方提供的通讯时钟软件写 1 清除标志位, 写 0 无效 RBIF bit3 R I2C 接收缓冲器满中断标志位 V /278

198 TBIF bit2 R SPIF bit1 R/W SRIF bit0 R/W 0: 非满 1: 满 I2C 发送缓冲器空中断标志位 0: 非空 1: 空 I2C 停止位中断标志位 0: 未产生停止位 1: 产生停止位主控模式 : 发送停止位后产生中断标志 从动模式 : 接收停止位后产生中断标志 软件写 1 清除标志位, 写 0 无效 I2C 起始位中断标志位 0: 未产生起始位 1: 产生起始位主控模式 : 如果禁止自动寻呼, 发送完 起始位 + 地址 + 接收应答位后 产生中断标志 如果使能自动寻呼, 发送完 起始位 + 地址 + 接受应答位, 并且应答位为 ACK 时, 产生中断标志 从动模式 : 接收到 起始位 + 地址位 + 读写控制位, 且地址匹配时, 在发送应答位或未应答位之前, 产生中断标志 软件写 1 清除标志位, 写 0 无效 注 : 对 I2C_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断 发生 I2C 发送数据写入寄存器 (I2C_TBW) 偏移地址 :10 H 复位值 : _ _ _ B TBW<31:16> TBW<15:0> TBW<31:0> bit31-0 W 写入的发送数据字节写入时 : 仅允许对 I2C_TBW<7:0> 写入半字写入时 : 仅允许对 I2C_TBW<15:0> 写入字写入时 : 对 I2C_TBW<31:0> 写入 V /278

199 I2C 接收数据读取寄存器 (I2C_RBR) 偏移地址 :14 H 复位值 : _ _ _ B RBR<31:16> RBR<15:0> RBR<31:0> bit31-0 R 读取的接收数据字节读取时 : 仅允许对 I2C_RBR<7:0> 读取半字读取时 : 仅允许对 I2C_RBR<15:0> 读取字读取时 : 对 I2C_RBR<31:0> 读取 I2C 发送缓冲寄存器 (I2C_TB) 偏移地址 :18 H 复位值 : _ _ _ B TB3<7:0> TB2<7:0> TB1<7:0> TB0<7:0> TB3<7:0> bit31-24 R 发送数据缓冲器 3 TB2<7:0> bit23-16 R 发送数据缓冲器 2 TB1<7:0> bit15-8 R 发送数据缓冲器 1 TB0<7:0> bit7-0 R 发送数据缓冲器 0 I2C 接收缓冲寄存器 (I2C_RB) 偏移地址 :1C H 复位值 : _ _ _ B RB3<7:0> RB2<7:0> RB1<7:0> RB0<7:0> RB3<7:0> bit31-24 R 接收数据缓冲器 3 RB2<7:0> bit23-16 R 接收数据缓冲器 2 RB1<7:0> bit15-8 R 接收数据缓冲器 1 RB0<7:0> bit7-0 R 接收数据缓冲器 0 V /278

200 I2C 状态寄存器 (I2C_STA) 偏移地址 :20 H 复位值 : _ _ _ B IDLE ACK RBFF3 RBFF2 RBFF1 RBFF0 TBEF3 TBEF2 TBEF1 TBEF0 bit31-18 IDLE bit17 R I2C 空闲标志位 0: 非空闲状态 1: 空闲状态 ACK bit16 R I2C 应答位 0: 应答 ACK 1: 未应答 NACK RBFF3 bit15 R RB3 满标志位 0: 空 1: 满 RBFF2 bit14 R RB2 满标志位 0: 空 1: 满 RBFF1 bit13 R RB1 满标志位 0: 空 1: 满 RBFF0 bit12 R RB0 满标志位 0: 空 1: 满 TBEF3 bit11 R TB3 空标志位 0: 满 1: 空 TBEF2 bit10 R TB2 空标志位 0: 满 1: 空 TBEF1 bit9 R TB1 空标志位 0: 满 1: 空 TBEF0 bit8 R TB0 空标志位 0: 满 1: 空 bit7-0 V /278

201 I2C 应用说明芯片支持 1 个 I2C 总线串口通讯控制器 I2C0 I2C 总线在连续发送数据的应用中, 利用发送空闲标志 (TIDLEIF) 进入中断的方式进行数据发送时, 要注意以下 2 点 : 1. 主控模式下, 在主程序中设置 Memory Address 之后, 发送空闲标志 (TIDLEIF) 置 1 并触发中断, 在中断服务程序中, 将数据写入 I2C_TBW 中, 并开始发送数据 ; 2. 从动模式下, 必须在主程序中等待 I2C_STA 寄存器的 IDLE 置 1 之后, 将以 Memory Address 为起始地址的第一个数据写入 I2C_TBW 中 当主机发送读命令后, 发送空闲标志 (TIDLEIF) 置 1 并触发中断, 在中断服务程序中发送数据 在主机读完数据后, 必须发送 STOP 位, 否则, 若要直接再次 START 读操作, 可能导致数据发送错误 I2C_IE 寄存器的 TBIM( 发送缓冲器中断模式选择位 ) 会影响 TIDLEIF, 因此, 对于字节发送或半字发送, 在 I2C 开始发送数据时最好使用字空产生中断模式 (TBIM=2 b10), 否则会连续产生多个字节空中断, 容易导致发送数据出错 如果使用字节空 (TBIM=2 b00) 或者半字空 (TBIM=2 b01) 中断模式, 则发送开始时, 必须向 I2C_TBW 写满四个待发送的数据字节, 否则也会连续产生多个字节空或半字空中断 使用发送空闲标志 (ITIDLEIF) 的好处在于, 在 I2C 发送空闲中断使能位 (TIDLEIE) 有效的情况下, 只需清除发送空闲标志位 (TIDLEIF), 即可达到连续发送数据的目的 V /278

202 5. 5 模数转换器 (ADC) 概述 支持 12 位转换结果, 有效精度为 11 位 采样速率最高支持 500ksps (kilo-samples per second) 支持最多 15 个模拟输入端 支持 8/10/12 位转换结果 支持 ADC 中断, 可唤醒睡眠模式 ( 仅在时钟源为 LRC 时唤醒 ) 支持正负向参考电压可配置 支持转换时钟可配置 支持自动转换比较功能 结构框图 ADVREFP ADVREFN APB_ADC ADC_DR 转换时钟选择器 模数转换器 通道选择 AIN0 AIN1 AIN7 AIN8 AIN14 AIN15 VDET ADC 控制寄存器 图 5-41 ADC 内部结构图 ADC 基本配置将端口配置为 ADC 模拟输入通道的方式如下 : 配置 GPIO_PAINEB/GPIO_PBINEB 寄存器, 关断该端口的数字输入 ; 配置 GPIO_PADIR/ GPIO_PBDIR 寄存器, 关断该端口的数字输出 配置 ADC_CHS 寄存器的 CHS<4:0>, 选择相应的 ADC 模拟通道 ADC 正常工作时必须使能的控制位 :ADC_VREFCON 寄存器的 VREF_EN 和 IREF_EN, ADC_CON0 寄存器的 EN,ADC_CON1 寄存器的 VCMBUF_EN ADC 数据转换配置 ADC_CHS 寄存器的 CHS<4:0>, 可选择 ADC 模拟通道 ; 配置 ADC_CON1 寄存器的 CLKS, 可选择工作时钟源 ; 配置 CLKDIV<2:0>, 可选择时钟源预分频 ; 配置 VREFP<1:0>, 可选择正向参考电压, 配置 VREFN, 可选择负向参考电压, 当 VREFP<1:0> 为 01 时, 必须开启 VRBUF_EN; 配置 ADC_CON0 寄存器的 EN, 使能 ADC; 最后配置 TRIG, 启动 A/D 转换, 转换完成后, 硬件电路自动将 TRIG 清零 ADC 在每次转换完成后, 会产生 ADC_IF 寄存器的中断标志 IF, 需软件清零 ; 启动下一 V /278

203 次 A/D 转换时, 需重新配置 TRIG AD 采样时间可选择硬件或软件控制, 默认为硬件自动控制 转换时间为 12 个 ADC 时钟 ADC 最快采样速率为 500Ksps, 通过配置 ADC_CON1 寄存器的 CLKS 和 CLKDIV 寄存器来产生合适的 ADC 时钟, 避免超出 ADC 所支持的最高采样速率 500ksps ADCLK SMPS EN Tog* 12Tadclk SMPON IF 采样时间 转换时间 软件清零 ADC_DR 原数据 新数据 图 5-42 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=0, 软件控制采样 ) ADCLK SMPS EN Tog* 12Tadclk TRIG 采样时间 转换时间 IF 软件清零 ADC_DR 原数据 新数据 图 5-43 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=1, 硬件控制采样 ) 注 1:Tog > 40us; 注 2:AD 转换时钟周期 Tadclk, 可通过 ADC_CON1 寄存器的 CLKS 和 CLKDIV<2:0> 配置不同的频率 注 3: 实际应用中还需要考虑 ADC 自身工作的建立 ( 参见寄存器 ADC_CON0 后面的备注描述内容 ) 自动转换比较功能芯片提供自动转换比较功能, 可自动完成多次 AD 转换并计算出平均值, 并根据所设定的阈值进行比较产生相应的中断, 均值和每次转换出的结果均可读 配置 ADC_CON0 寄存器的 ACP_EN 为 1 时, 对 TRIG 写 1 则启动连续自动转换比较功能, 并固定为硬件控制采样时间, 对 SMPS 写 0 无效 启动此功能前必须提前完成下面配置 : V /278

204 配置 ADC_CON1 寄存器的 ST 可设置采样时间, 建议采样时间大于 1us 配置 ADC_ACPC 寄存器的 TIMES, 可设置单次溢出时间内的采样转换次数 配置 OVFL_TIMES, 可设置自动转换比较溢出时间, 每次计数溢出后自动计算 ADC 转换的平均值, 保存在自动转换数据寄存器 ADC_ACPMEAN 中, 如果 ADC_CON0 寄存器的 EN 关闭, 则硬件自动将溢出计数和自动转换数据寄存器清零 若溢出时间已到, 但采样转换次数 ( 由 TIMES<1:0> 设定的次数 ) 未满, 则直到完成所有 ADC 转换次数后, 才启动下一个溢出时间计算 配置 ADC_ACPC 寄存器的 CLKS 可选择溢出计数的工作时钟源, 为 PCLK 或者 LRC (32KHz) 的 256 分频 如果需要在芯片浅睡眠或深睡眠模式下, 自动转换比较模块仍保持工作, 则在进入睡眠模式之前, 需要将工作时钟设置为 LRC 的 256 分频, 并配置 ADC_CON1 寄存器的 CLKS 选择 A/D 时钟源为 LRC, 否则进入睡眠模式后 ADC 模块不能正常工作 配置 ADC_ACPCMP 寄存器的 CMP_MIN, 设置自动比较的低阈值, 如果 ADC_ACPMEAN 寄存器的 MEAN_DATA 小于等于此阈值, 则中断标志 ACPMINIF 置 1 配置 ADC_ACPCMP 寄存器的 CMP_MAX, 设置自动比较的高阈值, 如果 ADC_ACPMEAN 寄存器的 MEAN_DATA 大于等于此阈值, 则中断标志 ACPMAXIF 置 特殊功能寄存器 ADC 转换值寄存器 (ADC_DR) 偏移地址 :00 H 复位值 : _ _ _ B DR<11:0> bit31-12 DR<11:0> bit11-0 R A/D 转换结果 ADC 控制寄存器 0(ADC_CON0) 偏移地址 :04 H 复位值 : _ _ _ B ACP_EN TRIG EN bit31-6 V /278

205 BIT_SEL<1:0> bit5-4 R/W A/D 分辨率选择位 00/11:12 位分辨率 01:8 位分辨率 10:10 位分辨率 bit3 ACP_EN bit2 R/W A/D 自动转换比较功能使能位 0: 关闭 1: 启动 TRIG bit1 R/W A/D 转换状态位 0:A/D 未进行转换, 或 A/D 转换已完成 ( 硬件清 0, 且硬件清 0 优先 ) 1:A/D 转换正在进行, 该位置 1 启动 A/D 转换 SMPS 为 0 时,TRIG 的写操作失效 ( 由硬件根据 SMPON 软件采样和 ADC 转换过程进行控制 ), 且不能将其读出作为 ADC 转换完成的标志 EN bit0 R/W A/D 转换使能位 (ACP_EN 为 1 时, 该位无效 ) 1: 使能 注 1:TRIG 软件只能写 1, 且写 1 后硬件自动清零 注 2: 关闭 SMPON 时,TRIG 与 ADC_IF 寄存器的 IF 位均可作为转换完成标志 而开启 SMPON 时, 仅 ADC_IF 寄存器的 IF 位可作为转换完成标志 建议无论 SMPON 是否开启, 均通过 ADC_IF 寄存器的 IF 位来判断 ADC 是否转换完成 注 3: 在 IREF_EN,VREF_EN,A/D 转换使能位 EN 使能后,ADC 需要先完成自身工作建立, 才能得到正确的转换结果 ADC 电路工作建立方式为, 上述 3 个使能控制信号使能后, 延时 40us 以上, 启动第一次 ADC 转换 (TRIG=1), 转换结束后, 再延时 50us 以上,ADC 工作建立完成, 后续启动 ADC 转换, 即可得到正确的转换结果 对应用程序来说, 在上述 3 个使能控制信号使能后, 第一次 ADC 转换前和转换后, 分别添加至少 40us 和 50us 延时, 同时因 ADC 建立过程中得到的转换结果与理论值偏差极大且不可预知, 所以在应用程序中需要丢弃 IREF_EN,VREF_EN,A/D 转换使能位 EN 使能后的第一次转换结果 注 4: 因每次 IREF_EN,VREF_EN,A/D 转换使能位 EN 重新使能后, 均需要执行上述 ADC 工作建立过程, 所以应用中, 在芯片正常运行时不建议关闭上述 3 个使能控制信号, 保持为 1, 只在进入深睡眠模式前, 可以关闭 ADC ADC 控制寄存器 1(ADC_CON1) 偏移地址 :08 H 复位值 : _ _ _ B VCMBUF_HS VCMBUF_EN ST<4:0> 保 留 HSE N SMPON SMPS VRBUF_EN VREFN VREFP<1:0> CLKS<1: 0> CLKDIV<2:0> V /278

206 bit31-26 R/W VCMBUF_HS bit25 R/W ADC 共模电压 VCM BUF 高速模式使能控制位 0:, 仅作测试使用 1: 使能 VCMBUF_EN bit24 R/W ADC 共模电压 VCM BUF 使能控制位 1: 使能 bit23-21 ST<4:0> bit20-16 R/W A/D 采样时间选择位 ( 硬件控制有效 ) 采样时间 :ST*2+1 个 Tadclk bit15 HSEN bit14 R/W AD 转换速度控制位 0:, 仅作测试使用 1: 高速 SMPON bit13 R/W A/D 采样软件控制位 (ACP_EN 为 1 时, 该位无效 ) 0: 关闭 AD 采样 1: 启动 AD 采样 SMPS bit12 R/W A/D 采样模式选择位 (ACP_EN 为 1 时, 固定为 1) 0: 软件控制 1: 硬件控制 VRBUF_EN bit11 R/W VREF BUF 使能位 1: 使能 VREFN bit10 R/W A/D 负向参考电压选择位 0: 内部地参考电压 ( 不同于芯片 VSS) 1: 外部参考电压 AVREFN VREFP<1:0> bit9-8 R/W A/D 正向参考电压选择位 00: 选择芯片工作电压 VDD 01/10: 11: 外部参考电压 AVREFP, 该电压不能高于 AD 的工作电压, 不能低于 1.3V@VDD=3.3V,1.8V@VDD=5.0V bit7-6 CLKS<1:0> bit5-4 R/W A/D 时钟源选择位 00:PCLK 时钟 01:PLL 时钟 10/11:LRC(32KHz) 时钟 bit3 CLKDIV<2:0> bit2-0 R/W A/D 时钟源预分频选择位 V /278

207 000 = 1:1 001 = 1:2 010 = 1:4 011 = 1:8 100 = 1: = 1: = 1: = 1:256 注 1:ADC 工作时 VCMBUF_HS,VCMBUF_EN,HSEN 必须置 1; 注 2:ADC 使用 VDD(VREFP=2 b00), 或外部参考电压 (VREFP=2 b11), 作为参考电压时, 最大转换时钟频率为 2MHz, 使用内部参考电压作为参考电压时 (VREFP=2 b01 或 2 b10), 最大转换时钟频率为 1MHz; 注 3: 当使用外部参考电压时, 参考电压不能低于 1.3V@VDD=3.3V,1.8V@VDD=5.0V, 否则会导致 ADC 工作异常 注 4:ES8P5086FJLK/ ES8P5088FLLK LQFP32 封装的 PA9 端口在封装内部已经接地, 建议用户程序将 ADC 负参考电压设置为外部参考电压 AVREFN( 即 PA9 配置成模拟口, 并关闭其内部弱上下拉 ) ADC 通道选择寄存器 (ADC_CHS) 偏移地址 :0C H 复位值 : _ _ _ B VDD5_FLAG_EN CHS<4:0> bit31-9 VDD5_FLAG_EN bit8 R/W VDD 检测控制 1: 使能 VDD 检测 ( 仅用于内部测试, 禁止在芯片应用时设置为 1) 0: 屏蔽 VDD 检测 ( 在芯片应用时需软件固定设置为 0) bit7-5 CHS<4:0> bit4-0 R/W A/D 模拟通道选择位 00000: 通道 0(AIN0) 00001: 通道 1(AIN1) 00010: 通道 2(AIN2) 00011: 通道 3(AIN3) 00100: 通道 4(AIN4) 00101: 通道 5(AIN5) 00110: 通道 6(AIN6) 00111: 通道 7(VDET) 01000: 通道 8(AIN8) 01001: 通道 9(AIN9) V /278

208 01010: 通道 10(AIN10) 01011: 通道 11(AIN11) 01100: 通道 12(AIN12) 01101: 通道 13(AIN13) 01110: 通道 14(AIN14) 01111: 通道 15(AIN15) 其它 : 通道关闭 注 :VDET 为 1/4 VDD 或 1/3 VDD, 由 ADC_VREFCON 寄存器的 VDET_SEL 位选取 ADC 中断使能寄存器 (ADC_IE) 偏移地址 :10 H 复位值 : _ _ _ B ACPOVIE ACPMAXIE ACPMINIE IE bit31-4 ACPOVIE bit3 R/W ADC 自动转换溢出中断使能位 1: 使能 ACPMAXIE bit2 R/W ADC 自动转换高阈值超出中断使能位 1: 使能 ACPMINIE bit1 R/W ADC 自动转换低阈值超出中断使能位 1: 使能 IE bit0 R/W ADC 中断使能位 1: 使能 ADC 中断标志寄存器 (ADC_IF) 偏移地址 :14 H 复位值 : _ _ _ B ACPOVIF ACPMAXIF ACPMINIF IF V /278

209 bit31-4 ACPOVIF bit3 R/W ADC 自动转换溢出中断标志位 0: 自动转换的溢出时间未到 1: 自动转换的溢出时间已到 ( 由硬件置 1, 软件清除 ) 软件写 1 清除标志位, 写 0 无效 ACPMAXIF bit2 R/W ADC 自动转换高阈值超出中断标志位 0: 均值结果到达高阈值 1: 均值结果大于或等于高阈值 ( 由硬件置 1, 软件清除 ) 软件写 1 清除标志位, 写 0 无效 ACPMINIF bit1 R/W ADC 自动转换低阈值超出中断标志位 0: 均值结果没有到达最低阈值 1: 均值结果小于或等于低阈值 ( 由硬件置 1, 软件清除 ) 软件写 1 清除标志位, 写 0 无效 IF bit0 R/W ADC 中断标志位 0: 正在进行转换 1:A/D 转换完成 ( 由硬件置 1, 软件清除 ) 软件写 1 清除标志位, 写 0 无效 注 1:ADC 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 2: 对 ADC_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中 断发生 ADC 自动转换比较控制寄存器 (ADC_ACPC) 偏移地址 :28 H 复位值 : _ _ _ B CLKS TIMES<1:0> OVFL_TIME<11:0> bit31-21 CLKS bit20 R/W ACP 溢出时钟的时钟源选择位 0:FPCLK/256(PCLK 的 256 分频 ) 1:FLRC/256(LRC 时钟的 256 分频 ) bit19-18 TIMES<1:0> bit17-16 R/W 自动转换比较次数选择位 ( 基于由 OVFL_TIME 设定的时间段内 ) 0:1 次 1:2 次 V /278

210 2:4 次 3:8 次 bit15-12 OVFL_TIME<11:0> bit11-0 R/W 每次自动转换比较的溢出时间, 可配置范围为 0~9C3 H, 计数时钟周期为 Tacp, 分别对应如下溢出时间 : 0:1 xtacp 1:2 x Tacp 2:3 x Tacp 9C3 H :2500xTacp Tacp 为由 CLKS 选择的 ACP 溢出计数的时钟源周期 注 : 配置 OVFL_TIME 的值必须大于一次 A/D 采样与转换时间 ADC 自动转换比较阈值寄存器 (ADC_ACPCMP) 偏移地址 :30 H 复位值 : _ _ _ B CMP_MAX<11:0> CMP_MIN<11:0> bit31-28 CMP_MAX<11:0> bit R/W 自动比较高阈值 bit15-12 CMP_MIN<11:0> bit 11-0 R/W 自动比较低阈值 ADC 自动转换均值数据寄存器 (ADC_ACPMEAN) 偏移地址 :34 H 复位值 : _ _ _ B MEAN_DATA <11:0> bit31-12 MEAN_DATA<11:0> bit 11-0 R 自动转换结果的均值 V /278

211 ADC 参考控制寄存器 (ADC_VREFCON) 偏移地址 :40 H 复位值 : _ _ _ B VDET VDET VREF_ IREF_EN VREF_EN _SEL _EN SEL bit31-6 VDET_SEL bit5 R/W VDET 电压选择控制位 0:1/4 VDD 1:1/3 VDD VDET_EN bit4 R/W VDET 使能控制位 1: 使能 bit3 IREF_EN bit2 R/W IREF 使能控制位 1: 使能 bit1 VREF_EN bit0 R/W VREFP 使能控制位 1: 使能 注 :ADC 正常工作时, 无论正向参考电压选择为 VDD 或外部 AVREFP, 均必须开启 VREF_EN 与 IREF_EN, 否则会导致 ADC 工作异常 V /278

212 5. 6 实时时钟 (RTC) 概述 仅 POR 上电复位有效, 支持程序写保护, 有效避免系统干扰对时钟造成的影响采用外部 KHz 晶体振荡器作为 RTC 精确计时的时钟源 ; 如果应用系统对 RTC 计时精度要求不高, 还可选用内部 LRC 作为时钟源 ; 如果应用系统将 RTC 作为普通计数器使用, 还可选用 PCLK 或 PCLK 的 256 分频作为时钟源可进行高精度数字校正, 提供高精度计时时钟调校提供两种时间精度, 调校范围为 ±384ppm( 或 ±128ppm), 可实现最大时间精度为 ±1.5 ppm( 或 ±0.5ppm) 时间计数 ( 实现小时 分钟和秒 ) 和日历计数 ( 实现年 月 日和星期 ), BCD 格式提供 5 个可编程定时中断提供 2 个可编程日历闹钟提供一路可配置时钟输出自动闰年识别, 有效期到 2099 年 12 小时和 24 小时模式设置可选低功耗设计 : 工作电压为 3.6V 时模块工作电流典型值为 1.5μA ( 最大值为 3μA) RTC 写保护为避免程序的异常运行对 RTC 模块的误操作,RTC 写保护寄存器 RTC_WP 用于阻止程序对 RTC 模块其它寄存器的误写 ( 不包括 RTC_WP 寄存器本身 ) RTC_WP 寄存器为虚拟寄存器 要对 RTC 模块其它寄存器进行写操作时, 需先对 RTC_WP 寄存器写 0x55AAAA55, 之后可对 RTC 模块其它寄存器进行连续写操作 对 RTC_WP 寄存器写入其他值重新进入写保护状态, 写保护状态下对其他寄存器进行的写操作将被忽略 可通过读 RTC_WP 寄存器确认 RTC 模块是否处于写保护状态, 读出值为 0x55AAAA55, 表示当前可对 RTC 模块其它寄存器进行写操作 ; 读出值为 0x 表示 RTC 模块处于写保护状态 除 0x55AAAA55 和 0x 以外,RTC_WP 寄存器无其它读出值 时间日期设置由于 APB 总线时钟与 RTC 时间计数器时钟异步, 因此 RTC 时间计数器不能直接读写, 只能通过缓冲器进行读写 RTC 时分秒寄存器 RTC_HMS 和 RTC 年月日周寄存器 RTC_YMDW 用于 RTC 时间计数器的写入和读取 这两个寄存器只是读写缓冲器, 而不是时间计数器本身 读时间计数器的操作步骤如下 : 1. 配置读写选择位 TMWR=0, 选择时间计数器读操作 ; 2. 配置读写触发位 TMUP=1, 触发读操作 ; 3. 读操作完成后, 时间计数器的值被分别读出到 RTC_HMS 和 RTC_YMDW, 并且 TMUP 位自动清零 V /278

213 写时间计数器的操作步骤如下 ( 复位或上一次时间计数器读 / 写操作完成后 ): 1. 配置 12/24 小时模式选择位 HSWI; 2. 写入设置值到 RTC_HMS 和 / 或 RTC_YMDW 寄存器 ; 3. 配置读写选择位 TMWR=1, 选择时间计数器写操作 ; 4. 配置读写触发位 TMUP=1, 触发写操作 ; 5. 写操作完成后,RTC_HMS 和 RTC_YMDW 寄存器更新过的设置值被写入时间计数 器, 并且 TMUP 位自动清零 注 1: 写时间计数器操作是将从复位或上一次读操作完成后, 更新过的 RTC_HMS 和 / 或 RTC_YMDW 寄存器的内 容写入相应时间计数器, 而对应于未更新字段的时间计数器不受写入影响 注 2: 当 TMUP 位为 1 时, 可通过将 TMWR 清零提前中止当前的写操作 被中止的写操作结果不确定 时间和日期寄存器数据格式采用 BCD 编码 秒计数范围从 00 到 59, 进位到分钟后从 59 变为 00 分钟计数范围从 00 到 59, 进位到小时后从 59 变为 00 小时计数范围根据控制 位 RTCHSWI 的设置选择 12/24 小时模式, 进位后从 PM11 到 AM12 或 AM11 到 PM12, 或 23 到 00 星期计数器为循环移位寄存器, 设置时对相应星期位写 1, 其它位均写 0 日计数按照每月最后一天加 1 进位到下月, 日计数范围按月分为 : 1. 一 三 五 七 八 十 十二月从 1 到 31; 2. 四 六 九 十一月从 1 到 30; 3. 二月 ( 普通年份 ) 从 1 到 28; 4. 二月 ( 闰年 ) 从 1 到 29; 5. 月计数范围从 1 到 12, 进位到年后从 12 变为 1 年计数范围从 00 到 99(00,04,08,,92,96 为闰年 ),99 后不再进位到 00 12/24 小时模式对照表如下 : 24 小时模式 12 小时模式 24 小时模式 12 小时模式 (AM12) 01(AM1) 02(AM2) 03(AM3) 04(AM4) 05(AM5) 06(AM6) 07(AM7) 08(AM8) 09(AM9) 10(AM10) 11(AM11) (PM12) 21(PM1) 22(PM2) 23(PM3) 24(PM4) 25(PM5) 26(PM6) 27(PM7) 28(PM8) 29(PM9) 30(PM10) 31(PM11) 表 /24 小时模式对照表 V /278

214 RTC 中断源 RTC 模块共有 7 个中断源, 即 : 周闹钟中断 WAFG 日闹钟中断 DAFG 5 个周期中断月 日 时 分 秒中断 每个中断源都有独立的使能位, 使能位影响该中断是否产生 IRQ 中断请求, 而不影响中断功能 即关闭相应中断使能, 标志位仍可用于相应功能查询 当有多个中断使能时, 各中断经过 或 逻辑产生 IRQ 中断请求 即任何一个被使能的中断产生中断事件时, 均产生 IRQ 中断请求, 且只有将所有的产生中断事件的中断标志清零后,IRQ 中断请求才解除 特殊功能寄存器 RTC 写保护寄存器 (RTC_WP) 偏移地址 :20 H 复位值 : _ _ _ B WP<31:16> WP<15:0> WP<31:0> bit31-0 R/W 0x0000_0000:RTC 模块写保护 0x55AA_AA55:RTC 模块可进行写操作 ( 该寄存器 写入其他值可恢复到写保护状态 ) 注 :RTC_WP 保护的寄存器为 RTC_CON,RTC_CAL,RTC_WA,RTC_DA,RTC_HMS,RTC_YMDW,RTC_IE, RTC_IF RTC 控制寄存器 (RTC_CON) 偏移地址 :00 H 复位值 : _ _ _ B PON XST CLKS<1:0> HSWI TMWR TMUP - bit PON bit7 R/W RTC 上电复位标志位 ( 软件只能将该位清 0) 0: 实时时钟正常工作 1: 监测到 RTC 上电复位 ( 必须软件清 0 后,RTC 才能开始工作 ) XST bit6 R 振荡器停振监测标志位 V /278

215 0: 振荡器持续工作正常 1: 振荡器有停振现象发生 CLKS<1:0> bit5-4 R/W RTC 时钟源选择位 ( 必须在写时间数据前设置 ) 00: KHz 振荡器时钟源 (RTC 精确计时 ) 01:LRC 时钟源 (RTC 非精确计时 ) 10:PCLK/256(RTC 用作普通计数器 ) 11:PCLK(RTC 用作普通计数器 ) - bit3 - - HSWI bit2 R/W 12/24 小时模式选择位 ( 必须在写时间数据前设置 ) 0:12 小时模式 1:24 小时模式 TMWR bit1 R/W 时间计数器读写选择位 0: 时间计数器读出操作 1: 时间计数器写入操作 TMUP bit0 R/W 时间计数器读写触发位 ( 程序只能写 1, 读写完成后自动清零 ) 0: 时间计数器读写操作已完成 1: 时间计数器正在进行读写操作 注 1:RTC 模块上电复位后一直处于复位状态, 只有将 PON 位清零后,RTC 才进入工作状态 注 2: 为保证精度, 建议 CLKS 值设置为 00, 即选用外部 KHz 晶振 ; 对于低精度要求的运用, 可选用 LRC 时钟源 只有将 RTC 用作普通的 Timer 时, 可将 RTCCLKS 设置为 10 或 11 时 RTC 调校寄存器 (RTC_CAL) 偏移地址 :04 H 复位值 : _ _ _ B CLKC COCR<2:0> DEV CALF<7:0> - bit CLKC bit12 R/W RTC 输出脉冲端口使能位 1: 使能 ( 端口需复用为 RTCO, 输出脉冲 ) COCR<2:0> bit11-9 R/W RTC 输出脉冲频率选择位 000:32KHz 001:1024Hz 010:32Hz 011:1Hz 100: 校正后 1Hz 时钟输出 V /278

216 101~111: DEV bit8 R/W 调校模式选择位 0: 每 20 秒调校一次 ( 秒数字分别为 时 ) 1: 每 60 秒调校一次 ( 秒数字为 00 时 ) CALF<7:0> bit7-0 R/W RTC 调校值 注 1: 如果 CALF<6:1>=000000, 则调校增 / 减量为 0; 如果 CALF<7>=0, 则递增调校, 增量为 ((CALF<6:0>) - 1) x 2; 如果 CALF<7>=1, 则递减调校, 减量为 ((~CALF<6:0>) + 1) x 2 注 2: 如果 RTCDEV=0, 则调校时间步长为 3.051ppm, 调校范围为 -384ppm~384ppm, 最高时间精度为 ±1.5ppm; 如果 RTCDEV=1, 则调校时间步长为 1.017ppm, 调校范围为 -128ppm~128ppm, 最高时间精度为 ±0.5ppm RTC 周闹钟寄存器 (RTC_WA) 偏移地址 :08 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B WW<6:0> WH<5:0> WM<6:0> bit31-23 WW<6:0> bit22~16 R/W 周闹钟位 WW<6>: 周六闹钟位 WW<5>: 周五闹钟位 WW<4>: 周四闹钟位 WW<3>: 周三闹钟位 WW<2>: 周二闹钟位 WW<1>: 周一闹钟位 WW<0>: 周日闹钟位 bit15-14 WH<5:0> bit13~8 R/W 小时 (BCD 码 ) 位 WH<5>:24 小时模式 :20 小时位 12 小时模式 :1 代表 pm;0 代表 am WH<4>:10 小时位 WH<3>:8 小时位 WH<2>:4 小时位 WH<1>:2 小时位 WH<0>:1 小时位 bit7 WM<6:0> bit6~0 R/W 分钟 (BCD 码 ) 位 WM<6>:40 分钟位 V /278

217 WM<5>:20 分钟位 WM<4>:10 分钟位 WM<3>:8 分钟位 WM<2>:4 分钟位 WM<1>:2 分钟位 WM<0>:1 分钟位 注 : 寄存器 RTC_WA 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 RTC 日闹钟寄存器 (RTC_DA) 偏移地址 :0C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DH<5:0> DM<6:0> bit31-14 DH<5:0> bit13~8 R/W 小时 (BCD 码 ) 位 DH<5>:24 小时模式 :20 小时位 12 小时模式 :1 代表 pm;0 代表 am DH<4>:10 小时位 DH<3>:8 小时位 DH<2>:4 小时位 DH<1>:2 小时位 DH<0>:1 小时位 bit7 DM<6:0> bit6~0 R/W 分钟 (BCD 码 ) 位 DM<6>:40 分钟位 DM<5>:20 分钟位 DM<4>:10 分钟位 DM<3>:8 分钟位 DM<2>:4 分钟位 DM<1>:2 分钟位 DM<0>:1 分钟位 注 : 寄存器 RTC_DA 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 V /278

218 RTC 时分秒寄存器 (RTC_HMS) 偏移地址 :10 H 复位值 : _xxxxxxxx_xxxxxxxx _xxxxxxxx B HOUR<5:0> MIN<6:0> SEC<6:0> - bit HOUR<5:0> bit21~16 R/W 小时 (BCD 码 ) 位 HOUR<5>:24 小时模式 :20 小时位 12 小时模式 :1 代表 pm;0 代表 am HOUR<4>:10 小时位 HOUR<3>:8 小时位 HOUR<2>:4 小时位 HOUR<1>:2 小时位 HOUR<0>:1 小时位 - bit MIN<6:0> bit14~8 R/W 分钟 (BCD 码 ) 位 MIN<6>:40 分钟位 MIN<5>:20 分钟位 MIN<4>:10 分钟位 MIN<3>:8 分钟位 MIN<2>:4 分钟位 MIN<1>:2 分钟位 MIN<0>:1 分钟位 - bit7 - - SEC<6:0> bit6~0 R/W 秒 (BCD 码 ) 位 SEC<6>:40 秒位 SEC<5>:20 秒位 SEC<4>:10 秒位 SEC<3>:8 秒位 SEC<2>:4 秒位 SEC<1>:2 秒位 SEC<0>:1 秒位 注 : 寄存器 RTC_HMS 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 V /278

219 RTC 年月日周寄存器 (RTC_YMDW) 偏移地址 :14 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B YEAR<7:0> MON<4:0> DAY<5:0> WEEK<6:0> YEAR<7:0> bit31~24 R/W 年 (BCD 码 ) 位 YEAR<7>:80 年位 YEAR<6>:40 年位 YEAR<5>:20 年位 YEAR<4>:10 年位 YEAR<3>:8 年位 YEAR<2>:4 年位 YEAR<1>:2 年位 YEAR<0>:1 年位 - bit MON<4:0> bit20~16 R/W 月 (BCD 码 ) 位 MON<4>:10 月位 MON<3>:8 月位 MON<2>:4 月位 MON<1>:2 月位 MON<0>:1 月位 - bit DAY<5:0> bit13~8 R/W 日 (BCD 码 ) 位 DAY<5>:20 日位 DAY<4>:10 日位 DAY<3>:8 日位 DAY<2>:4 日位 DAY<1>:2 日位 DAY<0>:1 日位 - bit7 - - WEEK<6:0> bit6~0 R/W 星期位 WEEK<6>: 星期六位 WEEK<5>: 星期五位 WEEK<4>: 星期四位 WEEK<3>: 星期三位 WEEK<2>: 星期二位 WEEK<1>: 星期一位 WEEK<0>: 星期日位 注 : 寄存器 RTC_YMDW 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 V /278

220 RTC 中断使能寄存器 (RTC_IE) 偏移地址 :18 H 复位值 : _ _ _ B WALE DALE MONIE DAYIE HORIE MINIE SCDIE bit31-10 WALE bit9 R/W 周闹钟使能位 1: 使能 DALE bit8 R/W 日闹钟使能位 1: 使能 bit7-5 MONIE bit4 R/W 月中断使能位 1: 使能 DAYIE bit3 R/W 日中断使能位 1: 使能 HORIE bit2 R/W 时中断使能位 1: 使能 MINIE bit1 R/W 分中断使能位 1: 使能 SCDIE bit0 R/W 秒中断使能位 1: 使能 RTC 中断标志寄存器 (RTC_IF) 偏移地址 :1C H 复位值 : _ _ _ B WAFG DAFG MONIF DAYIF HORIF MINIF SCDIF bit31-10 V /278

221 WAFG bit9 R/W 周闹钟标志位 0: 闹钟事件不匹配 1: 闹钟事件匹配软件写 1 清除标志位, 写 0 无效 DAFG bit8 R/W 日闹钟标志位 0: 闹钟事件不匹配 1: 闹钟事件匹配软件写 1 清除标志位, 写 0 无效 bit7-5 MONIF bit4 R/W 月中断标志位 ( 中断周期为每月第一天 00 小时 00 分钟 00 秒 ) 0: 未产生月中断 1: 产生月中断软件写 1 清除标志位, 写 0 无效 DAYIF bit3 R/W 日中断标志位 ( 中断周期为每天 ) 0: 未产生日中断 1: 产生日中断软件写 1 清除标志位, 写 0 无效 HORIF bit2 R/W 时中断标志位 ( 中断周期为每小时 ) 0: 未产生小时中断 1: 产生小时中断软件写 1 清除标志位, 写 0 无效 MINIF bit1 R/W 分中断标志位 ( 中断周期为每分钟 ) 0: 未产生分钟中断 1: 产生分钟中断软件写 1 清除标志位, 写 0 无效 SCDIF bit0 R/W 秒中断标志位 ( 中断周期为每秒 对此位写 1 会将 CTFG 清 0, 写 0 无影响, 对于分 时 月中断也一样 ) 0: 未产生秒中断 1: 产生秒中断软件写 1 清除标志位, 写 0 无效 注 : 对 RTC_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断 发生 RTC 应用说明 暂无特别说明 V /278

222 5. 7 硬件独立看门狗 (IWDT) 概述 支持硬件使能和关闭看门狗 - 芯片配置位 CFG_IWDTEN 位配置为 1 或 0 来使能或关闭 IWDT - 硬件使能后不可通过软件关停 - 硬件使能时 IWDT 时钟强制为 32KHz LRC 时钟 IWDT 中断可唤醒深度睡眠 IWDT 溢出时间可设定 - 写入 IWDT_LOAD 寄存器将重新加载看门狗 - 溢出时产生 IWDT 复位 IWDT 看门狗可用于检测软件和硬件异常 可由 CFG_IWDTEN 配置位硬件强制使能, 提高系统可靠性 硬件使能时, 时钟强制为独立的 32KHz LRC 时钟, 保证即使系统时钟失效,IWDT 仍然工作 当配置字 CFG_WORD 配置为 硬件看门狗使能 时, 即 CFG_IWDTEN 位配置为 1, 上电复位后看门狗立即启动 ( 时钟固定为 32KHz LRC 时钟 ),IWDT 载入 IWDT_LOAD 值 ( 默认值为 0x0008_0000, 约 16s), 并进行递减计数, 计数到 0 时,IWDT 产生中断标志, 并在下一计数时钟到来时, 计数器再次载入 IWDT_LOAD 参数对应的计数初值, 并继续递减计数 当计数器再次计数到 0 时, 如果 IWDT 中断标志仍没有被软件清零, 则 IWDT 模块将产生复位信号 软件只能读写 IWDT_LOCK 写 IWDT_INTCLR, 其他 IWDT 相关特殊功能寄存器不再可写, 只能读取, 读 IWDT_CON 将返回 0x0000_000F 当配置字 CFG_WORD 配置为 硬件看门狗由软件控制 时, 即 CFG_IWDTEN 位配置为 0, 上电看门狗不启动, 但软件可配置看门狗使能, 且软件可配置 IWDT_LOAD 寄存器 当配置为 软件看门狗使能 时, 即软件配置 IWDT_CON 寄存器的 EN 为 1,IWDT 计数器载入 IWDT_LOAD 寄存器值, 开始递减计数, 当计数到 0 时,IWDT 产生中断标志, 并在下一个计数时钟到来时, 计数器再次载入 IWDT_LOAD 寄存器值, 并继续递减计数 当计数器再次计数到 0 时, 如果 IWDT 中断标志仍没有被软件清零, 则 IWDT 模块将产生复位信号 配置 CLKS, 可以选择计数时钟源 ; 配置 IWDT_LOAD 寄存器, 可设置计数初值 ; 读取 IWDT_VALUE, 可得到 IWDT 当前计数值 写入装载值寄存器 IWDT_LOAD 时, 计数器当前值寄存器将被载入 IWDT_LOAD 寄存器值 V /278

223 IWDT 计数值 IWDTRL 或 IWDT_LOAD 0 喂狗窗口 喂狗窗口 时间 IWDTINT IWDT_RST 图 5-44 看门狗时序图写 IWDT_INTCLR, 则 IWDT 重新载入计数初值, 并重新进行递减计数 IWDT 模块支持寄存器写保护, 配置寄存器 IWDT_LOCK=0x1ACCE551, 可去除 IWDT 寄存器的写保护状态, 此后可进行被保护的 IWDT 寄存器的写操作, 否则无法写 IWDT 寄存器 特殊功能寄存器 IWDT 计数器装载值寄存器 (IWDT_LOAD) 偏移地址 :00 H 复位值 : _ _ _ B LOAD<31:16> LOAD<15:0> LOAD<31:0> bit31-0 W IWDT 计数器重载值 计数范围 0x0000_0001~0xFFFF_FFFF 如果为 0,IWDT 不计 数 IWDT 计数器当前值寄存器 (IWDT_VALUE) 偏移地址 :04 H 复位值 : _ _ _ B VALUE<31:16> VALUE<15:0> VALUE<31:0 > bit31-0 R IWDT 计数器当前值读取时返回 IWDT 计数器的当前计数值 V /278

224 IWDT 控制寄存器 (IWDT_CON) 偏移地址 :08 H 复位值 : _ _ _ B CLKS RSTEN IE EN bit31-4 CLKS bit3 R/W IWDT 计数时钟选择位 0:PCLK 1:LRC 时钟 ( 约 32KHz) RSTEN bit2 R/W IWDT 复位使能位 1: 使能,IWDT 计数到 0 时, 产生复位信号, 将芯片复位 IE bit1 R/W IWDT 中断使能位 1: 使能,IWDT 计数到 0 时, 产生中断标志 EN bit0 R/W IWDT 模块使能位 1: 使能 注 :IWDT_CON 寄存器中的各个控制位, 仅在配置字 CFG_WORD 的配置位 CFG_IWDTEN=0 时才有效 IWDT 中断标志清除寄存器 (IWDT_INTCLR) 偏移地址 :0C H 复位值 : _ _ _ B INTCLR<31:16> INTCLR<15:0> INTCLR<31:0> bit31-0 W IWDT 中断标志清 0 位对 IWDT_INTCLR 寄存器进行任意写操作,IWDT 中断标志位均被清零, 计数器重载 IWDT_LOAD 寄存器值, 继续递减计数 V /278

225 IWDT 中断标志寄存器 (IWDT_RIS) 偏移地址 :10 H 复位值 : _ _ _ B IWDTIF bit31-1 IWDTIF bit0 R IWDT 中断标志位 0: 未产生中断 1:IWDT 计数器计数到 0, 产生中断写寄存器 IWDT_INTCLR, 可清除 IWDT 中断标志位 IWDT 锁定寄存器 (IWDT_LOCK) 偏移地址 :100 H 复位值 : _ _ _ B LOCK bit31-1 W LOCK bit0 R 对 IWDT_LOCK<31:0> 写 0x1ACCE551 时, 位 LOCK 为 0; 写其它值时位 LOCK 为 1 IWDT 寄存器保护状态位 0:IWDT 寄存器处于未保护状态 1:IWDT 寄存器处于保护状态对 IWDT_LOCK 寄存器写入 0x1ACCE551, 被保护的寄存器处于未保护状态 ; 写入其它值, 处于保护状态 注 1:IWDT_LOCK 寄存器为只写 32 位寄存器, 其中仅 LOCK 位可读, 该寄存器必须使用字操作访问方式 注 2:IWDT_LOCK 保护的寄存器为 IWDT_LOAD,IWDT_CON,IWDT_INTCLR V /278

226 5. 8 窗口看门狗 (WWDT) 概述 支持设定喂狗禁止区 通过寄存器位 WWDTWIN 设置喂狗禁止区 - 寄存器位 WWDTWIN 设定为 11 时, 任何时刻喂狗都不产生复位, 也不产生中断 在喂狗禁止区内喂狗, 产生 WWDT 复位 在喂狗禁止区外喂狗, 产生 WWDT 中断 - WWDT 中断可用作喂狗请求 安全可靠 当配置字控制位 CFG_WWDTEN 为 1 时, 一旦 WWDT 模块软件使能位 (EN) 使 能, 则只能通过复位关闭 WWDT WWDT 溢出长度可设定 可通过 WWDT_LOAD 寄存器设定 溢出时产生 WWDT 复位 对于 WWDT 看门狗, 过早或过晚喂狗都将产生 WWDT 复位, 可用于检测软件的过晚或过早行为, 防止程序跑至不可控状态 例如发生中断异常, 程序不断进入一个带喂狗指令的子程序的情况, 可通过 WWDT 复位使程序执行恢复正常 用户可根据程序正常执行的时间设定喂狗窗口, 可检测程序未按正常次序执行, 跳过某些程序段的异常情况 当选用 PCLK 作为 WWDT 时钟时, 可精确地检测异常情况 上电复位后, 窗口看门狗不启动, 需通过软件设置使能窗口看门狗 软件配置 WWDT_CON 寄存器的 EN 为 1 使能窗口看门狗后,WWDT 计数器载入 WWDT_LOAD 寄存器值的 1/4, 开始递减计数, 当计数到 0 时, 窗口计数器加 1, 并在下一个计数时钟到来时, 计数器再次载入 WWDT_LOAD 寄存器值的 1/4, 并继续递减计数 若 WWDTWIN 设置为 25%, 则窗口计数器为 1 时,WWDT 产生中断标志 ; 若 WWDTWIN 设置为 50%, 则窗口计数器为 2 时,WWDT 产生中断标志 ; 若 WWDTWIN 设置为 75%, 则窗口计数器为 3 时, WWDT 产生中断标志 WWDT 产生中断后, 直至窗口计数器计数到 4( 即 WWDT 累计计数等于 WWDT_LOAD) 之前, 没有在相应的喂狗窗口期进行喂狗动作, 则 WWDT 模块将产生复位信号, 如下图所示 配置 WWDT_CON 寄存器的 CLKS, 可以选择计数时钟源 ; 配置 WWDT_LOAD 寄存器, 可设置计数初值 ; 读取 WWDT_VALUE, 可得到 WWDT 当前计数值 写入装载值寄存器 WWDT_LOAD 时, 计数器当前值寄存器将被载入 WWDT_LOAD 寄存器值的 1/4( 前提条件是看门狗要使能 ) 若配置字 CFG_WORD 的 CFG_WWDTEN 位配置为 1, 则软件使能窗口看门狗之后, 不可再通过软件关闭窗口看门狗, 只能通过芯片复位关闭窗口看门狗 V /278

227 WWDT 计数值 WWDT_LOAD ¾ WWDT_LOAD ½ WWDT_LOAD ¼ WWDT_LOAD 0 喂狗禁止区 喂狗窗口 时间 WWDTINT WWDT_RST 图 5-45 窗口看门狗中断和溢出复位产生时序图 (WWDTWIN 设定为 25%) 在喂狗窗口期写寄存器 WWDT_INTCLR,WWDT 将重新载入计数初值, 并重新进行递减计数 在喂狗窗口期外 ( 如时序图中的喂狗禁止区 ), 写寄存器 WWDT_INTCLR 会导致产生 WWDT 复位, 如下图所示 喂狗窗口期的定义参考寄存器 WWDT_CON 的 WWDTWIN 控制位 WWDT 计数值 WWDT_LOAD ¾ WWDT_LOAD 0 喂狗禁止区 喂狗窗口 时间 WR_WWDT_INTCLR WWDT_RST 图 5-46 错误的喂狗时序图 (WWDTWIN 设定为 25%) WWDT 模块支持寄存器写保护, 设置寄存器 WWDT_LOCK=0x1ACCE551, 可去除 WWDT 寄存器的写保护状态, 进行被保护寄存器的写操作, 否则无法对被保护寄存器写入 V /278

228 特殊功能寄存器 WWDT 计数器装载值寄存器 (WWDT_LOAD) 偏移地址 :00 H 复位值 : _ _ _ B LOAD<31:16> LOAD<15:0> LOAD<31:0> bit31-0 W WWDT 计数器重载值 计数范围 0x0000_0001~0xFFFF_FFFF 如果为 0,WWDT 不 计数 WWDT 计数器当前值寄存器 (WWDT_VALUE) 偏移地址 :04 H 复位值 : _ _ _ B VALUE<31:16> VALUE<15:0> VALUE<31:0 > bit31-0 R WWDT 计数器当前值读取时返回 WWDT 计数器的当前计数值, 其中高两位为窗口计数器当前值 WWDT 控制寄存器 (WWDT_CON) 偏移地址 :08 H 复位值 : _ _ _ B WWDTWIN<1:0> CLKS RSTEN IE EN bit31-6 WWDT 禁止喂狗窗口选择位 00:25% 窗口内禁止喂狗, 窗口内喂狗产生复位 WWDTWIN< bit5-4 R/W 01:50% 窗口内禁止喂狗, 窗口内喂狗产生复位 1:0> 10:75% 窗口内禁止喂狗, 窗口内喂狗产生复位 11: 不禁止喂狗, 喂狗将使看门狗计数器重载 CLKS bit3 R/W WWDT 计数时钟选择位 V /278

229 RSTEN bit2 R/W IE bit1 R/W EN bit0 R/W 0:PCLK 1:LRC 时钟 ( 约 32KHz) WWDT 复位使能位 1: 使能,WWDT 计数到 0 时, 产生复位信号, 将芯片复位 WWDT 中断使能位 1: 使能,WWDT 计数到 0 时, 产生中断标志 WWDT 模块使能位 1: 使能 WWDT 中断标志清除寄存器 (WWDT_INTCLR) 偏移地址 :0C H 复位值 : _ _ _ B INTCLR<31:16> INTCLR<15:0> INTCLR<31:0> bit31-0 W WWDT 中断标志清 0 位对 WWDT_INTCLR 寄存器进行任意写操作,WWDT 中断标志位均被清零, 计数器重载 WWDT_LOAD 寄存器值, 继续递减计数 WWDT 中断标志寄存器 (WWDT_RIS) 偏移地址 :10 H 复位值 : _ _ _ B WWDTIF bit31-1 WWDTIF bit0 R WWDT 中断标志位 0: 未产生中断 1:WWDT 计数器计数到 0, 产生中断写寄存器 WWDT_INTCLR, 可清除 WWDT 中断标志位 V /278

230 WWDT 锁定寄存器 (WWDT_LOCK) 偏移地址 :100 H 复位值 : _ _ _ B LOCK bit31-1 W LOCK bit0 R 对 WWDT_LOCK<31:0> 写 0x1ACCE551 时, 位 LOCK 为 0; 写其它值时位 LOCK 为 1 WWDT 寄存器保护状态位 0:WWDT 寄存器处于未保护状态 1:WWDT 寄存器处于保护状态对 WWDT_LOCK 寄存器写入 0x1ACCE551, 被保护的寄存器处于未保护状态 ; 写入其它值, 处于保护状态 注 1:WWDT_LOCK 寄存器为只写 32 位寄存器, 其中仅 LOCK 位可读, 该寄存器必须使用字操作访问方式 注 2:WWDT_LOCK 保护的寄存器为 WWDT_LOAD,WWDT_CON,WWDT_INTCLR V /278

231 5. 9 循环冗余校验 (CRC) 概述 支持 CRC-16 和 CRC-32 - CRC-16:X 16 + X 15 + X CRC-16-CCITT:X 16 + X 12 + X CRC-32:X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 支持 8/16/32 位宽数据 - 通过 CRC_CON 寄存器的 BYTE<1:0> 选择位宽 - 单系统时钟周期完成一个字节 CRC 计算, 只需 4 个系统时钟 支持对 Flash 数据块的 CRC 校验 - 以起始地址开始, 按设定的块大小, 自动对数据块进行 CRC 校验 - 可用于 IAP 编程数据校验 - 支持已加密空间的 CRC 校验 可作为通用 CRC 模块 - 用户可将数据写入 CRC_DI, 计算结果从 CRC_DO 读取 运用说明 FLASH 查空或编程校验步骤 : 1. 设置起始地址和数据块大小, 若大小设置小于 8, 则硬件自动固定为 8, 防止在 Flash 加密时被破解 2. 设置好初始数据格式 (DS) 数据输入顺序(REFIN) 数据输出顺序(REFOUT) 数据输出取反 (XOROUT) 3. 触发 CRC 计算后,BUSY 变为 1, 完成后,BUSY 变为 0, 用户可根据 BUSY 位判断操作是否完成 ( 对用户定义的数据进行 CRC 校验, 立即就会完成, 无需判断 ) 因 FLASH 被 CRC 模块占用, 对 CRC 操作的查空由 ROM table 中的 CRC 函数完成, 用户亦可将 CRC 状态查询程序复制到 SRAM 中执行 4. 校验时, 若单次校验的数据为半字或字格式, 则先校验的是低字节 5. 当执行 FLash 查空时, 若发生查空错误, 则 BUSY 变为 0, 并且置起 EMPTY_ERR 标志位, 软件可通过读取 CRC_FA 寄存器来查询查空错误的地址 CRC 硬件固化模块芯片内置 CRC 固化模块, 由硬件电路实现, 在 CRC 校验或查空操作程序中可以调用这些固化模块, 以减少 SRAM 中的 CRC 操作代码量 CRC 硬件固化模块支持 Flash 查空,Flash 校验 用户校验和复位标志查询, 分别由如下 CRC 操作函数来实现 : 查空函数 (CRC_EmptyCheck) - 入口地址 : 保存在 0x 单元内 V /278

232 - 参数输入 :R0- 查空区域首地址,R1- 查空区域字节长度 ( 当长度小于 32 字节时, 硬件固定为 32) - 参数输出 :R0- 函数执行状态 (R0=1 为成功,R0=0 为失败 ) Flash 校验函数 (CRC_FlashVerify) - 入口地址 : 保存在 0x 单元内 - 参数输入 :R0- 校验区域首地址,R1- 校验区域字节长度 ( 当长度小于 32 字节时, 硬件固定为 32), R2- 校验方式配置 ( 对应于寄存器 CRC_CON 的设置 ) - 参数输出 :R0-CRC 校验码 用户数据校验函数 (CRC_UserCal) - 入口地址 : 保存在 0x 单元内 - 参数输入 :R0- 放在 SRAM 空间的用户校验数据首地址,R1- 校验数据字节长度, R3- 校验方式配置 ( 对应于寄存器 CRC_CON 的设置 ) - 参数输出 :R0-CRC 校验码 CRC 复位查询函数 (CRC_CheckReset) - 入口地址 : 保存在 0x C 单元内 - 参数输入 : 无 - 参数输出 :R0-CRC 复位标志 (R0=0x1 表示 CRC 用户数据校验时有复位发生, R0=0 表示无复位发生 ) 特殊功能寄存器 CRC 解锁寄存器 (CRC_UL) 偏移地址 :00 H 复位值 : _ _ _ B UL<31:16> UL<15:0> UL<31:0> bit31-0 R/W CRC 解锁 : 写入 0x4352_4355,CRC 解锁 ; CRC 上锁 : 进行如下任一操作均可上锁写入其它值,CRC 上锁 ; CRC 软件复位后,CRC 上锁 注 :CRC 上锁后, 处于写保护状态的寄存器为 CRC_CON,CRC_TRIG,CRC_ADDR,CRC_SIZE,CRC_DI, CRC_DO,CRC_STA V /278

233 CRC 控制寄存器 (CRC_CON) 偏移地址 :04 H 复位值 : _ _ _ B XO RO UT REF OU T REF IN BYTE MOD<1:0> ACK RE Q DS HS RST EN bit31-15 XOROUT bit14 R/W 数据输出取反选择位 0: 不取反 1: 取反 REFOUT bit13 R/W 数据输出顺序选择位 0: 正序 1: 倒序 REFIN bit12 R/W 数据输入顺序选择位 0: 正序 1: 倒序 BYTE<1:0> bit11-10 R/W CRC 位宽选择位 00: 字节 01: 半字 1x: 字 MOD<1:0> bit9-8 R/W CRC 模式选择位 0x:CRC32 10:CRC16 11:CRC16-CCITT bit7-6 ACK bit5 R CRC 访问 FLASH 应答位 0: 不允许操作 Flash 1: 允许操作 Flash REQ bit4 R/W CRC 访问 FLASH 请求位 0: 无操作 1: 发起请求操作 Flash( 仅在 IAP 访问 FLASH 请求信号 FLASH_REQ=0 时有效 ) DS bit3 R/W CRC 初始数据格式选择 0: 初始为全 0 1: 初始为全 1 HS bit2 R/W CRC 高速模式使能位 1: 使能 RST bit1 W CRC 复位 V /278

234 EN bit0 R/W 0: 无任何操作 1: 复位 CRC 使能位 1: 使能 注 1: 当 CRC 时钟小于 24MHz 时,CRCHS 才可使能, 该模式下读 FLASH 等待一个时钟周期, 否则等待两个时钟周期 注 2: 在对 FLASH 进行 CRC 访问操作前, 必须先清除 IAP 访问 FLASH 请求信号 FLASH_REQ=0, 然后置位 CRC 访问 FLASH 请求位 REQ=1, 查询 CRC 访问 FLASH 应答位 ACK=1 后, 再开始 CRC 操作 CRC 触发寄存器 (CRC_TRIG) 偏移地址 :08 H 复位值 : _ _ _ B TRIG<31:16> TRIG<15:0> TRIG<31:0> bit31-0 R/W CRC 工作模式选择 0x00006E91:Flash 校验 0x00006D92:Flash 查空 0x00006C93: 用户校验其他 : 未用 CRC FLASH 校验起始地址寄存器 (CRC_ADDR) 偏移地址 :0C H 复位值 : _ _ _ B IFRE N ADD R<1 6> ADDR<15:0> bit31-21 IFREN bit20 R/W Flash 区域选择位 0: 选择 Code 区 1: 选择 Info 区 bit19-17 ADDR<16:0> bit16-0 R/W CRC 起始地址 ( 字节地址 ) 最低 2 位必须为 0 V /278

235 注 : 寄存器 CRC_ADDR 用于设定 FLASH 编程校验或擦除查空校验的起始地址 CRC FLASH 校验数据块大小寄存器 (CRC_SIZE) 偏移地址 :10 H 复位值 : _ _ _ B CRC_SIZE<14:0> bit31-15 CRC_SIZE<14:0> bit14-0 R/W CRC 数据块长度 ( 以字为单位 ) CRC 数据块长度为 CRC_SIZE + 1, 当小于 8 个字时, 固定为 8 注 : 寄存器 CRC_SIZE 用于设定 FLASH 编程校验或擦除查空校验的数据块的大小, 以 WORD 为单位 CRC 用户模式输入数据寄存器 (CRC_DI) 偏移地址 :14 H 复位值 : _ _ _ B DI<31:16> DI<15:0> DI<31:0> bit31-0 R/W CRC 用户数据 CRC_TRIG 寄存器设置为用户模式时, 该寄存器为用户写入的需进行 CRC 校验计算的数据 CRC 校验结果寄存器 (CRC_DO) 偏移地址 :18 H 复位值 : _ _ _ B DO<31:16> DO<15:0> DO<31:0> bit31-0 R CRC 校验结果 V /278

236 CRC 状态寄存器 (CRC_STA) 偏移地址 :1C H 复位值 : _ _ _ B EMP TY_ ERR RST F BUS Y bit31-3 EMPTY_ERR bit2 R/W 查空错误标志位 0: 无错误 1: 错误 ( 写 1 或再次触发清除 ) RSTF bit1 R/W CRC 复位标志位 0: 未发生复位 1: 发生复位 ( 写 1 清除 ) BUSY bit0 R CRC 工作状态位 0: 已完成 1: 正在进行 CRC 当前 Flash 地址寄存器 (CRC_FA) 偏移地址 :20 H 复位值 : _ _ _ B IFR EN FADR<14:0> bit31-21 IFREN bit20 R CRC 对应的当前 Flash 区域 0:Code 区 1:Info 区 bit19-15 FADR<16:0> bit14-0 R CRC 对应的当前 Flash 地址 ( 字节对齐 ) V /278

237 5. 10 数据加密 / 解密 (AES) 概述 AES(Advanced Encryption Standard) 是 1997 年美国 ANSI 向全球发起征集加密算法作为数据加密标准, 最后 Rijindael 算法入选 加密 / 解密流程 128 位 AES 加密 / 解密的程序执行过程一致, 参考下图 将需要加密的数据明文, 写入 AES_DATA0/1/2/3 寄存器 将密钥写入 AES_KEY0/1/2/3 寄存器 根据加密 / 解密 密钥长度 启动加密 / 解密的位信息, 以字节形式写 AES_CON 寄存器 读 AES_DATA0/1/2/3 寄存器, 获取加密密文 / 解密明文 图 5-47 加密 / 解密流程示意图 特殊功能寄存器 AES 数据寄存器 0(AES_DATA0) 偏移地址 :00 H 复位值 : _ _ _ B AES_DATA0<31:16> AES_DATA0 <15:0> AES_DATA0 <31:0> bit31-0 R/W AES 128 位数据寄存器值 bit<31:0> AES 数据寄存器共 4 个字 (16 个字节 ); 加密前, 写入明文数据 ; 解密后, 读取明文数据 V /278

238 AES 数据寄存器 1(AES_DATA1) 偏移地址 :04 H 复位值 : _ _ _ B AES_DATA1<31:16> AES_DATA1 <15:0> AES_DATA1 <31:0> bit31-0 R/W AES 128 位数据寄存器值 bit<63:32> AES 数据寄存器共 4 个字 (16 个字节 ); 加密前, 写入明文数据 ; 解密后, 读取明文数据 AES 数据寄存器 2(AES_DATA2) 偏移地址 :08 H 复位值 : _ _ _ B AES_DATA2<31:16> AES_DATA2 <15:0> AES_DATA2 <31:0> bit31-0 R/W AES 128 位数据寄存器值 bit<95:64> AES 数据寄存器共 4 个字 (16 个字节 ); 加密前, 写入明文数据 ; 解密后, 读取明文数据 AES 数据寄存器 3(AES_DATA3) 偏移地址 :0C H 复位值 : _ _ _ B AES_DATA3<31:16> AES_DATA3 <15:0> AES_DATA3 <31:0> bit31-0 R/W AES 128 位数据寄存器值 bit<127:96> AES 数据寄存器共 4 个字 (16 个字节 ); 加密前, 写入明文数据 ; 解密后, 读取明文数据 V /278

239 AES 密钥寄存器 0(AES_KEY0) 偏移地址 :10 H 复位值 : _ _ _ B AES_KEY0<31:16> AES_KEY0 <15:0> AES_KEY0< 31:0> bit31-0 R/W 128-bit AES 密钥寄存器值 bit<31:0> AES 密钥寄存器共 4 个字 (16 个字节 ) AES 密钥寄存器 1(AES_KEY1) 偏移地址 :14 H 复位值 : _ _ _ B AES_KEY1<31:16> AES_KEY1 <15:0> AES_KEY1< 31:0> bit31-0 R/W 128-bit AES 密钥寄存器值 bit<63:32> AES 密钥寄存器共 4 个字 (16 个字节 ) AES 密钥寄存器 2(AES_KEY2) 偏移地址 :18 H 复位值 : _ _ _ B AES_KEY2<31:16> AES_KEY2<15:0> AES_KEY2< 31:0> bit31-0 R/W 128-bit AES 密钥寄存器值 bit<95:64> AES 密钥寄存器共 4 个字 (16 个字节 ) V /278

240 AES 密钥寄存器 3(AES_KEY3) 偏移地址 :1C H 复位值 : _ _ _ B AES_KEY3<31:16> AES_KEY3<15:0> AES_KEY3< 31:0> bit31-0 R/W 128-bit AES 密钥寄存器值 bit<127:96> AES 密钥寄存器共 4 个字 (16 个字节 ) AES 控制寄存器 (AES_CON) 偏移地址 :20 H 复位值 : _ _ _ B IF IE ENCRYPT GO_DONE bit31-8 IF bit7 R/W AES 中断标志位 0: 未产生 AES 中断 1: 产生 AES 中断 IE bit6 R/W AES 中断使能位 1: 使能 - bit ENCRYPT bit1 R/W AES 加密 / 解密模式选择位 0: 解密 1: 加密 GO_DONE bit0 R/W AES 加密 / 解密控制位 1: 启动加密 / 解密 ( 软件置 1 启动, 完成后硬件自动清 0) 0: 加密 / 解密模块关闭 ( 软件写 0 对内部状态机清 0) V /278

241 第 6 章芯片封装外观尺寸图 pin 封装外观尺寸图 LQFP48 D 48 D E1 E c1 A2 A θ A L L b e 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A c D D E E b e L L θ V /278

242 pin 封装外观尺寸图 LQFP44 D 44 D E1 E θ A1 c A2 A L L b e 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A c D D E E b e 0.80BSC 0.032BSC L L1 1.00BSC 0.039BSC θ 0º - 7º 0º - 7º V /278

243 pin 封装外观尺寸图 QFN32 D D1 1 A1 A3 E1 E k A e b L 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A REF REF. D E D E k 0.300REF REF. b e 0.500BSC BSC. L V /278

244 LQFP32 24 D D E1 E c1 A2 A 32 9 θ A1 1 8 b e L L1 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A c D D E E b e 0.80 BSC L L REF REF θ V /278

245 SOP32 E1 E L θ b D A2 A e A1 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A D E E b e L θ - 4º - - 4º - V /278

246 附录 1 Cortex-M0 内核描述附录 1. 1 Cortex-M0 指令集 Cortex-M0 指令集, 基本指令共 56 条, 其中 50 条指令为 16 位,6 条指令为 32 位, 并由多 条指令可以进行助记符扩展, 完成不同功能, 如指令运行结果是否影响条件标志位等 32 位指令是 :BL,DSB,DMB,ISB,MRS 和 MSR 指令中的符号说明 : 1) 方括号 < >, 表示括号内的任一种格式的操作数, 均可作为指令操作数 如 <Rm #imm> 表示操作数可以是寄存器 Rm, 或者立即数 #imm 2) 大括号 { }, 表示括号内的操作数或符号可选 如 :MOV{S}, 表示指令助记符可以是 MOV 或 MOVS, 区分该指令是否影响条件标志位 {Rd,}, 表示指令中的目标操作数 Rd 可有可没有, 没有时根据不同指令直接确定 助记符 操作数 描述 影响标志位 ADR Rd,Label 取 Label 地址到寄存器 - LDR Rt,Label 按字读 memory 到 Rt, 立即数寻址 - LDR Rt,[Rn,<Rm #imm>] 按字读 memory 到 Rt, 带地址偏移寻址 - LDRB Rt,[Rn,<Rm #imm>] 按字节读 memory 到 Rt,0 扩展为 32 位 - LDRH Rt,[Rn,<Rm #imm>] 按半字读 memory 到 Rt,0 扩展为 32 位 - LDRSB Rt,[Rn,Rm] 按字节读 memory 到 Rt, 符号位扩展 - LDRSH Rt,[Rn,Rm] 按半字读 memory 到 Rt, 符号位扩展 - LDM Rn{!},reglist 批量读 memory 到 reglist,rn 递增 - STR Rt,[Rn,<Rm #imm>] 按字写 memory, 带地址偏移寻址 - STRB Rt,[Rn,<Rm #imm>] 按字节写 memory,0 扩展为 32 位 - STRH Rt,[Rn,<Rm #imm>] 按半字写 memory,0 扩展为 32 位 - STM Rn!,reglist 批量写 memory,rn 递增 - PUSH Reglist 寄存器压栈 - POP Reglist 寄存器出栈 - MOV{S} Rd, <Rm #imm> 数据传送 Rd= <Rm #imm> N,Z 或 - MVNS Rd,Rm Rm 按位求反之后传送到 Rd N,Z MRS Rd,spec_reg 读特殊功能寄存器,Rd=spec_reg - MSR Spec_reg,Rm 写特殊功能寄存器,spec_reg=Rm N,Z,C,V 或 - ADCS {Rd,}Rn,Rm 带进位加法 N,Z,C,V ADD{S} {Rd,}Rn,<Rm #imm> 加法 N,Z,C,V 或 - RSBS {Rd,}Rn,#0 算术取反,Rd = 0 Rn N,Z,C,V SBCS {Rd,}Rn,Rm 带借位减法,Rd = Rn Rm C N,Z,C,V SUB{S} {Rt,}Rn,<Rm #imm> 不带借位减法 N,Z,C,V 或 - ANDS {Rd,}Rn,Rm 按位逻辑与,Rd = Rn&Rm N,Z ORRS {Rd,}Rn,Rm 按位逻辑或,Rd = Rn Rm N,Z V /278

247 助记符 操作数 描述 影响标志位 EORS {Rd,}Rn,Rm 按位逻辑异或,Rd = Rn^Rm N,Z BICS {Rd,}Rn,Rm 位清除,Rm 为掩码 N,Z ASRS {Rd,}Rn,<Rm #imm> 算术右移 N,Z,C LSLS {Rd,}Rn,<Rm #imm> 逻辑左移 N,Z,C LSRS {Rd,}Rn,<Rm #imm> 逻辑右移 N,Z,C RORS {Rd,}Rn,Rm 循环右移 N,Z,C CMP {Rn,}<Rm #imm> 比较 N,Z,C,V CMN Rn,Rm 负比较, 先将 Rm 取反, 再比较 N,Z,C,V MULS Rd,Rn,Rm 乘法, 结果为 32 位 N,Z REV Rd,Rm 按字节反转 (32 位大小端数据转换 ) - REV16 Rd,Rm 按半字反转 (2 个 16 位大小端数据转换 ) - REVSH Rd,Rm 低半字反转, 按有符号数扩展为 32 位 - SXTB Rd,Rm 低字节, 按有符号数扩展到 32 位 - SXTH Rd,Rm 低半字, 按有符号数扩展到 32 位 - UXTB Rd,Rm 低字节, 零扩展到 32 位 - UXTH Rd,Rm 低半字, 零扩展到 32 位 - TST Rd,Rm 位测试 N,Z B{cond} Label ( 条件 ) 分支短跳转到 Label 所指处 - BL Label 带链接的分支跳转, 跳转到 Label 所指处 - BX Rm 分支长跳转 - BLX Rm 带链接分支长跳转, 跳转到 Rm 所指处 - CPSID i 屏蔽中断响应,PRIMASK.PM=1 - CPSIE i 允许中断响应,PRIMASK.PM=0 - SVC #imm 管理调用, 产生 SVC 异常 - DMB - 数据存储器访问隔离 - DSB - 数据同步隔离 - ISB - 指令同步隔离 - SEV - 触发事件 - WFE - 等待事件 - WFI - 等待中断 - BKPT #imm 断点 - NOP - 空操作 - 注 : 指令 CPSID 和 CPSIE, 分别用于禁止和允许中断请求, 指令操作码相同, 只是操作数不同, 实际为一条指令 V /278

248 附录 1. 2 Cortex-M0 内核寄存器 Cortex-M0 内核寄存器如下图所示 : 图 6-1 内核寄存器 附录 通用寄存器 R0~R12 R0~R12 为 32 位通用寄存器, 用于数据操作 附录 堆栈指针寄存器 SP(R13) Cortex-M0 内核有两个堆栈指针 MSP 和 PSP, 但两者不能同时使用, 具体使用的堆栈指针与进程模式有关 在线程模式下, 配置 CONTROL 寄存器的 SPSEL 位, 可选择当前使用的堆栈指针 编写指令时, 两个堆栈指针均可通过 R13 或 SP 调用, 访问当前正在使用的堆栈指针, 也可通过 MRS/MSR 指令访问指定的堆栈指针 主堆栈指针 (MSP): 或写作 SP_main, 主要由操作系统内核, 异常 / 中断服务程序, 以及其它被授权访问的应用程序来使用, 芯片复位后缺省使用主堆栈指针 进程堆栈指针 (PSP): 或写作 SP_process, 在线程模式下, 用户可选用进程堆栈指针 ; 但在异常 / 中断服务程序中不能选用进程堆栈指针 堆栈指针的最低两位始终是 0, 即堆栈总是字 (4 个字节 ) 对齐的 对应用程序, 通常只需使用主堆栈指针 MSP, 并且 PUSH 和 POP 指令也默认使用 MSP 堆栈由一块地址连续的存储器空间, 和一个栈顶指针组成, 实现 先进后出 操作的缓冲区, 常用于在异常 / 中断处理前后, 保存和恢复一些关键寄存器的值 堆栈操作示意图如下 : V /278

249 寄存器当前值 压栈保护操作 PUSH 退栈恢复操作 POP 寄存器的值被恢复 SP 数据处理 ( 寄存器的值被破坏 ) 堆栈存储器 堆栈存储器 图 6-2 堆栈操作示意图 附录 链接寄存器 LR(R14) 链接寄存器 LR, 也称为寄存器 R14, 用于在调用子程序时存储返回地址 例如, 当执行 BL 指令时, 硬件电路会自动将下一条指令的地址保存到寄存器 LR 附录 程序计数器 PC(R15) 程序计数器 PC, 也称为寄存器 R15 Cortex-M0 内核使用了指令流水线, 所以读 PC 时, 得到的值是当前指令的地址加 4 如果对 PC 进行写操作, 会产生程序跳转 ( 但不更新 LR 寄存器 ), 新写入的值即为程序跳转目的地址 Cortex-M0 中的指令至少是半字对齐的, 所以 PC 的 LSB 位始终读取为 0 但无论是直接写 PC 还是使用跳转指令, 都必须保证加载到 PC 的值 LSB 位为 1, 用于表示这是在 Thumb 模式下执行指令, 否则会被视为企图转入 ARM 模式,Cortex-M0 内核将产生一个 Fault 异常 附录 程序状态寄存器 xpsr 程序状态寄存器 xpsr, 根据其各个状态位的功能, 又划分为三个子状态寄存器 : 应用程序状态寄存器 APSR, 中断服务程序状态寄存器 IPSR, 执行程序状态寄存器 EPSR 通过 MRS/MSR 指令, 可对 3 个子状态寄存器进行单独访问, 也可以同时访问其中 2 个或 3 个子状态寄存器 寄存器名称 IAP_STAR 表示同时访问 IPSR 和 APSR; 寄存器名称 EAPSR 表示同时访问 EPSR 和 APSR; 寄存器名称 IEPSR 表示同时访问 IPSR 和 EPSR; 寄存器名称 XPSR 表示同时访问 3 个子状态寄存器 程序状态寄存器 xpsr 及其 3 个子状态寄存器的状态位划分如下表所示 : : :6 5:0 xpsr N Z C V Reserved T Reserved Exception Number APSR N Z C V Reserved IPSR Reserved Exception Number EPSR Reserved T Reserved V /278

250 应用程序状态寄存器 APSR 中的各个状态位, 用于说明指令执行结果, 各状态位描述如下 : N: 负数标志 指令执行结果为负数时, 标志位 N=1, 否则 N=0 Z: 零标志 指令执行结果为零时, 标志位 Z=1, 否则 Z=0 对比较指令, 如果被比较的两个数相等, 则 Z=1 C: 进位或借位标志 对加法指令, 如果执行结果有进位 ( 结果 232), 则 C=1, 否则 C=0; 对减法指令, 如果执行结果无借位 ( 结果 0), 则 C=1, 否则 C=0; 对移位循环指令, 取决于移位到 C 标志的数据位 V: 溢出标志 两个负数相加, 结果为正数 (bit<31>=0) 时溢出, 则 V=1, 否则 V=0; 两个正数相加, 结果为负数 (bit<31>=1) 时溢出, 则 V=1, 否则 V=0; 负数减去正数, 结果为正数 (bit<31>=0) 时溢出, 则 V=1, 否则 V=0; 正数减去负数, 结果为负数 (bit<31>=1) 时溢出, 则 V=1, 否则 V=0 中断服务程序状态寄存器 IPSR 中的状态位, 用于表示正在处理的异常 / 中断号, 目前正在执行异常 / 中断服务程序 ; 如果 IPSR<5:0>=0, 则表示目前是线程模式, 未进行异常 / 中断处理 执行程序状态寄存器 ESPR 中的 T 状态位, 用于表示处理器是否处于 Thumb 模式 由于 Cortex-M0 处理器只支持 Thumb 模式,T 状态位应该始终为 1, 如果将 T 位写为 0, 会产生 HardFault 异常 使用 MRS 指令读取寄存器 EPSR 时, 返回值为 0; 如果使用 MSR 指令向 EPSR 写数据, 写操作会被忽略 附录 异常 / 中断屏蔽寄存器 PRIMASK 异常 / 中断屏蔽寄存器 PRIMASK, 可用于处理器屏蔽所有的异常 / 中断处理 31:1 0 PRIMASK Reserved PM 当屏蔽位 PM=1 时, 禁止处理器响应所有可屏蔽异常 / 中断, 不可屏蔽中断 NMI 除外 当 PM=0 时, 不影响处理器对异常 / 中断的正常响应 可以使用 MRS 和 MSR 指令访问 PRIMASK 寄存器, 还可以使用专用的 CPSID 和 CPSIE 指令来设置寄存器中的 PM 位 附录 控制寄存器 CONTROL 控制寄存器 CONTROL, 可用于在线程模式下, 选择所使用的堆栈指针 31:2 1 0 CONTROL Reserved SPSEL Reserved V /278

251 当堆栈指针选择位 SPSEL=0 时, 选择 MSP(SP_main) 作为当前堆栈指针 ; 当 SPSEL=1 时, 选择 PSP(SP_process) 作为当前堆栈指针 在异常 / 中断处理模式下, 总是使用 MSP 作为堆栈指针,SPSEL=0, 且只读, 不可写 ; 处理器硬件电路会在异常 / 中断处理程序入口和返回时, 对 SPSEL 位进行更新, 确保进入异常 / 中断处理程序后, 使用 MSP 作为堆栈指针, 并在返回时恢复线程模式下的选择 在线程模式下, 可配置 SPSEL, 选择当前使用的堆栈指针 通过 MRS/MSR 指令可访问两个的堆栈指针 在修改 SPSEL 位的指令后, 需立即执行 ISB ( 指令同步隔离 ) 指令, 确保在 SPSEL 位修改完成, 新的堆栈指针生效后, 才会执行后续其它指令 V /278

252 附录 2 电气特性 附录 2. 1 参数特性表 附录 芯片工作条件 最大标称值 参数 符号 条件 标称值 单位 电源电压 VDD VSS=0V -0.3 ~ 7.5 V 管脚输入电压 V IN VSS=0V -0.3 ~ VDD V 管脚输出电压 V OUT VSS=0V -0.3 ~ VDD V VDD 管脚最大输入电流 I MAXVDD VDD=5.0V, ma VSS 管脚最大输出电流 I MAXVSS VDD=5.0V, ma 芯片存储温度 T STG ~ 125 注 1: 上述最大标称值参数为芯片工作条件的极限参数范围, 超出该范围, 可能会导致芯片永久性物理损坏 ; 注 2: 芯片需在正常工作条件下, 才能保证持续稳定运行, 对芯片的正常工作条件, 参见下面的表格所述 芯片工作条件表 参数 符号 工作条件 最小值 最大值 单位 芯片工作温度 T OPR 芯片工作电压 VDD V AHB 总线频率 F HCLK 48 MHz APB 总线频率 F PCLK 48 MHz 芯片功能模块工作电压范围表 参数符号工作条件 VDD 电压备注 ADC 工作电压 V ADC -40 ~ ~5.5V 正向参考电压为 VDD 附录 芯片特性参数测量方法 芯片功耗参数测量方法 A VDD + - V VSS ES8P508x DC 电源 V /278

253 图 6-3 芯片功耗测量连接示意图 芯片 IO 端口参数测量方法 I I A IO 端口 ( 输出低电平 ) + - A IO 端口 ( 输出高电平 ) - + DC 电源 + - V ES8P508x DC 电源 + - V ES8P508x 测量 V OL /I OL 测量 V OH /I OH 图 6-4 芯片 IO 端口输出特性参数测量连接示意图 附录 芯片功耗特性 芯片功耗特性参数表 参数 符号 最小值 典型值 最大值 单位 工作条件 芯片供电电压 VDD V -40 ~ 85 芯片静态电流 I DD μa 25, 上电复位,VDD = 5V, 所有的 I/O 端口输入低电平,MRSTN=0 25,VDD = 5V,WDT 深度睡眠模式不使能,RTC 不使能, 所 I PD1-5 - μa 下芯片电流有 I/O 端口输出固定电平, 无负载 25,VDD = 5V,WDT 不使能,RTC 不使能, 所 I PD ma 有 I/O 端口输出固定电平, 无负载 ; 系统主时钟为内 浅睡眠模式下芯片电流 部 20MHz RC 时钟 25,VDD = 5V,WDT I PD ma 不使能,RTC 不使能, 所有 I/O 端口输出固定电平, 无负载 ; 系统主时钟为外部 20MHz HS 时钟 25,VDD = 5V,WDT 使能, 外设模块均工作, 所有 I/O 端口输出固定电 I OP ma 平, 无负载,ADC 使用外正常运行模式部 VDD 作为参考电压 ; 系芯片电流统主时钟为内部 20MHz RC 时钟 I OP ma 25,VDD = 5V,WDT 使能, 外设模块均工作, V /278

254 参数 符号 最小值 典型值 最大值 单位 工作条件所有 I/O 端口输出固定电平, 无负载,ADC 使用外部 VDD 作为参考电压 ; 系统主时钟为外部 20MHz HS 时钟 芯片功能模块功耗特性参数表 参数符号最小值典型值最大值单位工作条件 外部振荡器 XTAL 20MHz 电流内部高速时钟 HRC 电流 I XTAL ma 25,VDD = 5V I HRC ma 25,VDD = 5V BOR 模块电流 I BOR μa 25,VDD = 5V LVD 模块电流 I LVD μa 25,VDD = 5V IWDT 模块电流 I WDT μa 25,VDD = 5V WWDT 模块电流 I WWDT μa 25,VDD = 5V ADC 模块电流 I ADC μa I ADC μa 25,VDD = 5V,ADC 转换时钟频率为 500KHz, 外部 VDD 作为正向参考电压 25,VDD = 5V,ADC 转换时钟频率为 500KHz, VDD 作为正向参考电压 VREFP 模块电流 I VREFP μa 25,VDD = 5V RTC 模块电流 I RTC μa T16N 模块电流 I T16N μa T32N 模块电流 I T32N μa UART 模块电流 I UART μa SPI 模块电流 I SPIX μa 25,VDD = 5V,RTC 时钟源为外部 KHz 振荡器, 精确计时模式 25,VDD = 5V, 定时器模式, 计数时钟为 20MHz 25,VDD = 5V, 定时器模式, 计数时钟为 20MHz 25,VDD = 5V, 通讯波特率为 9600bps 25,VDD = 5V, 主控模式, 通讯速率为 1MHz, 数据帧发送间隔为 32 个通讯时钟周期 V /278

255 I2C 模块电流 I I2C μa 25,VDD = 5V, 主控模式, 通讯速率为 400KHz, 数据帧传输间隔为 15 个通讯时钟周期 CRC 模块电流 I CRC μa 25,VDD = 5V AES 模块电流 I AES μa 25,VDD = 5V FLASH 编程电流 I PROG ma FLASH 擦除电流 I ERAS ma -40~85,VDD = 5V 附录 芯片 IO 端口特性 芯片输入端口特性表 芯片工作温度范围 :-40 ~ 85 参数 符号 最小值 典型值 最大值 单位 测试条件 I/O 端口输入高电平 V IH1 0.8VDD - VDD V I/O 端口输入低电平 V IL1 VSS - 0.2VDD V 2.2V VDD 5.5V 主复位信号, 输入高电平 V IH 0.8VDD - VDD V 主复位信号, 输入低电平 V IL VSS - 0.2VDD V IO 端口施密特迟滞窗口 V HYST V VDD = 5.0V I/O 端口输入漏电流 I IL μa VDD = 5.0V ( 端口高阻状态 ) IO 端口弱上拉电阻 R WPU kω VDD = 5.0V Vpin = VSS IO 端口弱下拉电阻 R WPD kω VDD = 5.0V Vpin = VDD 芯片输出端口 (PA0~PA5,PA14~PA31,PB0~PB13) 特性表 芯片工作温度范围 :-40 ~ 85 参数符号最小值典型值最大值单位测试条件 I/O 端口 ( 普通驱动 ) 输出 I OH 高电平, 拉电流 VDD = 5.0V ma I/O 端口 ( 增强驱动 ) 输出 V OH = 4.6V I OH 高电平, 拉电流 I/O 端口 ( 普通驱动 ) 输出 I OL 低电平, 灌电流 VDD = 5.0V ma I/O 端口 ( 增强驱动 ) 输出 V OL = 0.4V I OL 低电平, 灌电流 V /278

256 芯片输出端口 (PA6~PA13) 特性表 芯片工作温度范围 :-40 ~ 85 参数 符号 最小值 典型值 最大值 单位 测试条件 I/O 端口 ( 普通驱动 ) 输出 I OH 高电平, 拉电流 VDD = 5.0V ma I/O 端口 ( 增强驱动 ) 输出 V OH = 4.6V I OH 高电平, 拉电流 I/O 端口 ( 普通驱动 ) 输出 I OL 低电平, 灌电流 VDD = 5.0V ma I/O 端口 ( 增强驱动 ) 输出 V OL = 0.4V I OL 低电平, 灌电流 附录 芯片系统时钟特性 系统时钟规格表 参数 符号 最小值 典型值 最大值 单位 测试条件 系统时钟频率 F OSC M Hz 系统时钟周期 T OSC ns 机器周期 T inst - T OSC *1 - ns -40 ~ 85 外部时钟高电平和低电平时间 T OSL,T OSH ns 2.2V VDD 5.5V 外部时钟边沿上升和下降时间 T OSR,T OSF ns 附录 芯片功能模块特性 ADC 模块特性表 参数名称 符号 最小值 典型值 最大值 单位 测试条件 分辨率 RES bit 参考电压范围 V ADVREF VDD V 模拟电压输入范围 V IN VSS - V ADVREF V 输入电容 C IN pf 模拟通道推荐输入电阻 R IN k Ω 见备注 AD 转换时钟周期 T AD μs AD 转换时间 ( 不包括采样时间 ) T CONV T AD 差分线性度 DNL - ±1 ±2 LSB 失调误差 V OFFSET - ±2 ±4 LSB -40 ~85 注 1: 该参数均为设计规格, 设计条件为 -40 ~85 注 2:T AD 为 ADC 使用 VDD 电压或外部 AVREFP 作为参考电压时的 AD 转换时钟周期 V /278

257 ADC 转换时钟源选择表 系统时钟工作频率 A/D 时钟源 (VREFP=2 b00 或 2 b11, 使用 VDD, 或外部 AVREFP 作为正向参考电压 ) 选择 48MHz 32MHz 20MHz 10MHz FPCLK 不推荐使用 不推荐使用 不推荐使用 不推荐使用 FPCLK /2 不推荐使用 不推荐使用 不推荐使用 不推荐使用 FPCLK /4 不推荐使用 不推荐使用 不推荐使用 T ADCLK = 0.4us FPCLK /8 不推荐使用 不推荐使用 T ADCLK = 0.4us T ADCLK = 0.8us FPCLK /16 不推荐使用 T ADCLK = 0.5us T ADCLK = 0.8us T ADCLK = 1.6us FPCLK /32 T ADCLK = 0.67us T ADCLK = 1us T ADCLK = 1.6us T ADCLK = 3.2us FPCLK /64 T ADCLK = 1.3us T ADCLK = 2us T ADCLK = 3.2us T ADCLK = 6.4us FPCLK /256 T ADCLK = 5.3us T ADCLK = 8us T ADCLK = 12.8us T ADCLK = 25.6us FLRC T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us 内部时钟源特性表参数符号最小值典型值最大值单位测试条件 HRC 时钟频率 F HRC MHz 25, VDD=2.2V~5.5V MHz -40 ~85, VDD=2.2V~5.5V HRC 起振时间 T HRC us 见备注 LRC 时钟频率 F LRC KHz 25, VDD=2.2V~5.5V KHz -40 ~85, VDD=2.2V~5.5V LRC 起振时间 T LRC us 见备注 注 :T HRC 和 T LRC 均为设计规格, 设计条件为 -40 ~85 时钟源选择为 32KHz 时钟源选择为 4MHz PLL 锁相环特性表参数 符号 最小值 典型值 最大值 单位 测试条件 PLL 输入时钟频率 F PLLI KHz PLL 倍频输出时钟频率 F PLLO ~85 MHz F PLLO PLL 锁频时间 T LOCK us 见备注 PLL 输入时钟频率 F PLLI MHz F PLLO ~85 PLL 倍频输出时钟频率 MHz F PLLO PLL 锁频时间 T LOCK ms 见备注 注 :PLL 的锁频时间 T LOCK1 和 T LOCK2 均为设计规格, 设计条件为 -40~85 V /278

258 BOR 模块特性表 1(BOR 档位由配置字控制位 CFG_BORV(CFG_WORD<5:4>) 设置 ) CFG_BORV[1:0] 最小值典型值最大值单位测试条件 V V V V -40~85 BOR 模块特性表 2(BOR 档位由寄存器控制位 BORV(SCU_SOFTCFG<3:0>) 设置 ) BORV<3:0> 最小值 典型值 最大值 单位 测试条件 V V V V V V V V V V V V V V V V -40~85 LVD 模块特性表 LVD_VS[3:0] 最小值典型值最大值单位测试条件 V V VDD 下降, LVDO 低电压状态标志置 V V V V V V -40~85 V /278

259 V V V LVD 电压检测迟滞窗口 mv -40~85 V /278

260 附录 2. 2 参数特性图 本节中所列图示均为抽样测试, 仅作为设计参考之用 其中部分图示中所列的数据已超出指定的操作范围, 此类信息也仅供参考, 芯片只保证在指定的范围内正常工作 附录 芯片功耗特性 芯片深度睡眠模式电流随电压 - 温度变化特性图 (WDT,RTC 不使能, 所有 I/O 端口输出固定电平, 无负载 ) 芯片浅睡眠模式电流随电压 - 温度变化特性图 (WDT,RTC 不使能, 所有 I/O 端口输出固定电平, 无负载 ; 系统主时钟为内部 LRC 32KHz 时钟 ) V /278

261 芯片运行模式电流随电压 - 温度变化特性图 (WDT 使能, 外设模块均工作, 所有 I/O 端口 输出固定电平, 无负载,ADC 使用外部 VDD 作为正向参考电压 ; 系统主时钟为内部 HRC 20MHz 时钟 ) 芯片运行模式电流随系统电压 - 系统频率变化特性图 (WDT, 外设模块均工作, 所有 I/O 端口输出固定电平, 无负载,ADC 使用外部 VDD 作为正向参考电压 ; 室温 25 ) 注 : 系统时钟为 PLL 48MHz 时,PLL 的输入时钟源为内部 HRC 时钟 V /278

262 附录 芯片 IO 端口输入特性 I/O 端口信号输入特性图 ( 室温 25 ) 4.00 IO 端口输入施密特窗口特性 Vi(V) 输入高电平 施密特窗口 VIHth 输入低电平 VILth Vdd(V) 注 1:VIHth 为施密特窗口的上阈值电平, 大于该阈值的输入电平为高 ; 注 2:VILth 为施密特窗口的下阈值电平, 小于该阈值的输入电平为低 ; 注 3:VIHth 和 VILth 之间为施密特窗口, 在窗口内的输入电平不确定, 可能为高或低 I/O 端口最大输入低电平随电压 - 温度变化特性图 注 : 测量 VILmax 时,IO 端口输入电平由 0V 开始上升, 直到端口输入采样到逻辑值 1; V /278

263 I/O 端口最小输入高电平随电压 - 温度变化特性图 注 : 测量 VIHmin 时,IO 端口输入电平由 VDD 开始下降, 直到端口输入采样到逻辑值 0; I/O 端口弱上拉电阻随电压 - 温度变化特性图 I/O 端口弱下拉电阻随电压 - 温度变化特性图 V /278

264 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口除外 ) V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V OH vs I 普通驱动端口 ) V /278

265 V OL vs I 普通驱动端口 ) V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V /278

266 V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V /278

267 附录 芯片 IO 端口输出特性 ( 增强驱动,PA6~PA13 端口除外 ) V OH vs I 增强驱动端口 ) V OL vs I 增强驱动端口 ) V /278

268 V OH vs I 增强驱动端口 ) V OL vs I 增强驱动端口 ) V OH vs I 增强驱动端口 ) V /278

269 V OL vs I 增强驱动端口 ) V OH vs I 增强驱动端口 ) V OL vs I 增强驱动端口 ) V /278

270 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口 ) V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V /278

271 V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V OH vs I 普通驱动端口 ) V /278

272 V OL vs I 普通驱动端口 ) V OH vs I 普通驱动端口 ) V OL vs I 普通驱动端口 ) V /278

产品订购信息 Part NO. 工作电压 FLASH SRAM I/O Timer RTC UART SPI I2C ADC 封装类型 16-bit HW2181FHNQ 2.2V ~3.6V 36KB 8KB 35 4, 32-bit bit 15ch QFN48 1 地址

产品订购信息 Part NO. 工作电压 FLASH SRAM I/O Timer RTC UART SPI I2C ADC 封装类型 16-bit HW2181FHNQ 2.2V ~3.6V 36KB 8KB 35 4, 32-bit bit 15ch QFN48 1 地址 2.4G SOC HW2181 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2018 年 10 月 10 日 V1.0 1/308 产品订购信息 Part NO. 工作电压 FLASH SRAM I/O Timer RTC UART SPI I2C ADC 封装类型 16-bit HW2181FHNQ 2.2V ~3.6V 36KB 8KB 35 4, 32-bit 1 2

More information

东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压

东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压 32 位 MCU HR8P506 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2018 年 9 月 11 日 V1.8 1/317 东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU

More information

32位MCU

32位MCU 32 位 MCU HR8P506 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2016 年 1 月 27 日 V1.0 1/309 东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电 东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU

More information

东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压

东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU 芯片下电 若操作顺序相反则可能导致芯片内部元件过压 32 位 MCU HR8P506 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2016 年 10 月 8 日 V1.1 1/305 东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电, 再对 MCU

More information

基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V 5.5V P

基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V 5.5V P 32 位 MCU ES32F0654 ES32F0653 产品简介 产品简介 数据手册 参考手册 上海东软载波微电子有限公司 2018-11-20 V1.0 1/22 基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM

More information

产品订购信息 Part NO. 工作电压 FLASH SRAM I/O ADC Timer 封装类型 HW2181FHNQ 2.2V~3.6V 36KB 8KB bit X 15ch 8-bit X 5 QFN48 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮

产品订购信息 Part NO. 工作电压 FLASH SRAM I/O ADC Timer 封装类型 HW2181FHNQ 2.2V~3.6V 36KB 8KB bit X 15ch 8-bit X 5 QFN48 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮 2.4G SOC HW2181 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2016 年 2 月 3 日 V0.9 1/280 产品订购信息 Part NO. 工作电压 FLASH SRAM I/O ADC Timer 封装类型 HW2181FHNQ 2.2V~3.6V 36KB 8KB 35 12-bit X 15ch 8-bit X 5 QFN48 地址 : 中国上海市龙漕路

More information

基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V VDD 5.

基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V VDD 5. 32 位 MCU ES32F0334 产品简介 产品简介 数据手册 参考手册 上海东软载波微电子有限公司 2018-11-20 V1.0 1/18 基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位

More information

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input 06 6 6 HR7PPSC HR7PPSD SOP SOP6 +input 06 6 +input 06 6 6 6 HR7PERB SSOP0 7+input 06 6 6 HR7PESC

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

上海海尔集成电路有限公司

上海海尔集成电路有限公司 32 位 MCU HR8P287 数据手册 ARM Cortex TM -M0 内核 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2016 年 1 月 15 日 V1.0 1/218 使用注意事项 关于芯片的上 / 下电本公司系列芯片具有独立电源管脚 当芯片应用在多电源供电系统时, 应保证芯片与所连系统其它部件同步上电, 或先对芯片上电, 再对所连系统其它部件上电 ; 反之, 下电时,

More information

修订历史 版本修订日期修改概要 V 初版 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮编 : 电话 : 传真 : 网址 :

修订历史 版本修订日期修改概要 V 初版 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮编 : 电话 : 传真 : 网址 : 文档编号 :AN1005 上海东软载波微电子有限公司 应用笔记 2.4GHz Antenna Reference Design V1.0 1/15 修订历史 版本修订日期修改概要 V1.0 2018-10-8 初版 地址 : 中国上海市龙漕路 299 号天华信息科技园 2A 楼 5 层邮编 :200235 E-mail:support@essemi.com 电话 :+86-21-60910333 传真

More information

上海东软载波微电子有限公司 SMART

上海东软载波微电子有限公司 SMART 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P/ES7P OTPMCU A/D I/O OTP ROM RAM ES7P7x ES7P7PSD SOP +input 0 ES7P7PSF SOP0 7+input 0 ES7P7PRF SSOP0 7+input 0 EEPROM MHz 0 ~.V ~.V MHz, KHz MHz 0 ~.V

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

USB解决方案.ppt

USB解决方案.ppt USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX

More information

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax) 2018 9 29 龙芯 版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) 010-62546668 (Fax) 010-62600826 阅读指南 龙芯 1C101 处理器数据手册 龙芯 1C101 修订历史 序号 更新日期 版本号

More information

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

Cerris IROS

Cerris IROS 上海海栎创微电子有限公司 CSM212/216/224 数据手册 具有专用电容检测模块的 8 位单片机 Rev: V1.2 www.hynitron.com CSM212/216/224 是一款具有高性能精简指令集且集成电容触控功能的 EERPOM 型 8051 单片机 此单 片机集成有硬件触控 CDC 模块, 可多次编程的 EEPROM 存储器和常用通讯接口, 为各种触摸按键的应用 提供了一种简单而又有效的实现方法

More information

128K Flash EPROM 的程序?\(Bank=64K\) 切?

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

DESCRIPTION

DESCRIPTION 集成 12-BIT ADC 的 8 位 MCU 特点 电源和复位 上电复位电路 (POR) 输入 / 输出 4 级可选的欠压复位电路 (BOR) 18 个 I/O 端口, 其中 P2.2 只能开漏输出 8 级可选低压检测 (LVD) 外围设备 LDO 给内核供电, 支持低功耗掉电模式 7 路键盘输入, 可唤醒 PD 模式 看门狗定时器 (WDT) 4 路外部中断输入, 可唤醒 PD 模式 CPU 12

More information

Microsoft Word - ha0283s_HT32F125x_ClockMonitor&Frequency

Microsoft Word - ha0283s_HT32F125x_ClockMonitor&Frequency HT32F125x 时钟监控和时钟变频 文件编码 :HA0283S 概述 简介本手册介绍了有关 HT32F125x 单片机的时钟故障检测和系统变频 HT32F125x 系列正是支持这些功能的单片机 时钟监控电路可以用来检测外部高速晶振 HSE 的时钟故障 如果 HSE 时钟出现故障, 它将被除能, 内部高速 RC 振荡器 HSI 将自动切换为系统时钟源 更多细节请参考章节 "HSE 时钟故障检测 "

More information

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D 控制器 thert thert thert 接下一个电机驱动模块 () 接下一个电机驱动模块 () 电机驱动模块 电机驱动模块 电源模块 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () X 0 X 0 4 /RK /RK 注 注 制动电阻阻值 Ω Φ 80: 适用电机驱动模块型号 8-M-XXXX--XX Φ : 适用电机驱动模块型号

More information

設計目標規格書

設計目標規格書 ARM Cortex -M0 32 位微控制器 NuMicro M051 DN/DE 系列 产品简介 The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced without

More information

<4D F736F F D20C9EEDBDACAD0B6ABB3CFD0C5B5E7D7D3BFC6BCBCD3D0CFDEB9ABCBBEBDE9C9DCBCB0BFE2B4E6>

<4D F736F F D20C9EEDBDACAD0B6ABB3CFD0C5B5E7D7D3BFC6BCBCD3D0CFDEB9ABCBBEBDE9C9DCBCB0BFE2B4E6> 台湾合泰 HOLTEK 型号品牌封装说明 HT7022A-1#-SOT89 HOLTEK SOT89 2.2V N 沟开漏电压监测器 HT7022A-1-TO92 HOLTEK TO92 2.2V N 沟开漏电压监测器 HT7024A-1#-SOT89 HOLTEK SOT89 2.4V N 沟开漏电压监测器 HT7024A-1-TO92 HOLTEK TO92 2.4V N 沟开漏电压监测器 HT7027A-1#-SOT89

More information

DS_MM32P021_Ver1.9.0

DS_MM32P021_Ver1.9.0 产品手册 Datasheet MM32P021 32 位基于 ARM Cortex M0 核心的微控制器 版本 :1.9.0 保留不通知的情况下, 更改相关资料的权利 目录 1. 总介... 5 1.1 概述... 5 1.2 产品特性... 5 2. 规格说明... 6 2.1 器件对比... 6 2.2 功能简述... 6 3. 引脚定义... 7 3.1 引脚配置... 7 3.2 引脚描述...

More information

SN32F240

SN32F240 SN32F240B 系列 用户参考手册 SN32F248B/247B/246B/2451B SONiX 32 位 Cortex-M0 单片机 SONiX 公司保留对以下所有产品在可靠性, 功能和设计方面的改进作进一步说明的权利 SONiX 不承担由本手册所涉及的产品或电路的运用和使用所引起的任何责任,SONiX 的产品不是专门设计来应用于外科植入 生命维持和任何 SONiX 产品的故障会对个体造成伤害甚至死亡的领域

More information

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B 直流稳压电源 第 4 章 4.1 整流电路及其应用 学习目标 1. 熟悉单相整流电路的组成, 了解整流电路的工作原理. 掌握单相整流电路的输出电压和电流的计算方法, 并能通过示波器观察整流电路输出电压的波形 3. 能从实际电路中识读整流电路, 通过估算, 能合理选用整流元器件 4.1.1 认识整流电路 1. 图解单相半波整流电路 ( 图 4-1-1) 电路名称电路原理图波形图 4-1-1. 图解单相全波整流电路

More information

33023A.book(31026A_cn.fm)

33023A.book(31026A_cn.fm) 26 第 26 章看门狗定时器与休眠模式 目录 看门狗定时器与休眠模式 本章包括下面一些主要内容 : 26.1 简介... 26-2 26.2 控制寄存器... 26-3 26.3 看门狗定时器 (WDT) 的操作... 26-4 26.4 休眠省电模式... 26-7 26.5 初始化... 26-9 26.6 设计技巧... 26-10 26.7 相关应用笔记... 26-11 26.8 版本历史...

More information

SPMC75F2413A_EVM_使用说明_V1.2.doc

SPMC75F2413A_EVM_使用说明_V1.2.doc SPMCFA EVM V. - Jan 0, 00 http://www.sunplusmcu.com ................ SPMCFA........... EEPROM.... I/O............ LED.... LED.... RS-........0............ EVM................ 0.....0..... SPMCFA EVM SPMCFA

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

DK 通道带自校正功能的容性触摸感应器 概述 DK712 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 DK712 有更强的抗干扰性和更好的一致性 特点 带自校正功能的 12 通道感应芯片 可以通过

DK 通道带自校正功能的容性触摸感应器 概述 DK712 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 DK712 有更强的抗干扰性和更好的一致性 特点 带自校正功能的 12 通道感应芯片 可以通过 概述 DK712 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 DK712 有更强的抗干扰性和更好的一致性 特点 带自校正功能的 12 通道感应芯片 可以通过任何非导电介质感应 按键触摸 通过一个外部电容调整灵敏度 感应按键的 PCB 走线长度不同不会导致灵敏度不同 四位 BCD 码输出 I2C 接口 工作电压范围

More information

FM3318产品手册

FM3318产品手册 FM3316/3313/3312 低功耗 MCU 芯片 简单 2017. 09 FM3316/3313/3312 低功耗 MCU 芯片 1 本资料是为了让用户根据用途选择合适的上海复旦微电子集团股份有限公司 ( 以下简称复旦微电子 ) 的产品而提供的参考资料, 不转让属于复旦微电子或者第三者所有的知识产权以及其他权利的许可 在使用本资料所记载的信息最终做出有关信息和产品是否适用的判断前, 请您务必将所有信息作为一个整体系统来进行评价

More information

Application Note Transient Voltage Suppressors (TVS) for 表 1 VISHAY 的 SM6T 系列的电特性 25 C 型号 击穿电压 器件标识码 V BR AT I T I T 测试电流 (ma) 关态电压 V RM 漏电流 I RM AT V

Application Note Transient Voltage Suppressors (TVS) for 表 1 VISHAY 的 SM6T 系列的电特性 25 C 型号 击穿电压 器件标识码 V BR AT I T I T 测试电流 (ma) 关态电压 V RM 漏电流 I RM AT V VISHAY GE NERAL SEMICONDUCTOR 瞬态电压抑制器 应用笔记 用于汽车电子保护的瞬态电压抑制器 (TVS) Soo Man (Sweetman) Kim, Vishay I) TVS 的重要参数 TVS 功率等级 TVS Vishay TVS 10 μs/1000 μs (Bellcore 1089) 1 TVS ESD 8 μs/20 μs 2 1 10 µs 10 µs/1000

More information

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请 加热器用固态继电器 单相 CSM_-Single-phase_DS_C 带纤细型散热器的一体式小型 SSR 备有无过零触发型号, 用途广泛 符合 RoHS 标准 包含无过零触发型号, 产品线齐全 输出回路的抗浪涌电压性能进一步提高 根据本公司的试验条件 小型 纤细形状 除了 DIN 导轨安装, 还可进行螺钉安装 获取 UL CSA EN 标准 TÜV 认证 请参见 共通注意事项 种类 关于标准认证机型的最新信息,

More information

ETA104 数据采集模块数据手册

ETA104 数据采集模块数据手册 Emtronix ETA104 数据采集模块数据手册 1. 概述 1.1 ETA104 介绍 ETA104 模拟数据采集模块 ( 下文简称 :ETA104 模块 ) 是基于英创公司 SBC840 工控应用底板 符合 DM5028 标准应用扩展模块 ETA104 模块上的模数转换功能, 采用 ADS7871 模拟信号转换芯片, 占用 ESMARC 工控主板的 SPI 总线进行通讯, 最高可实现 48K

More information

, , STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC12C5A08AD-35C-LQFP44,RMB 7.5 , STC12C5201AD-SOP16,RMB 2.49 STC12C5202AD-LQFP32,RMB 3.99 0.1uF 0.1uF 0.1uF STC 89 E 2 PROM Data Flash

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

Applications

Applications 概述 FM1905 是 24 点 内存映象和多功能的 LCD 驱动器,FM1905 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 FM1905 的管脚只有 3 条,FM1905 还有一个节电命令用于降 低系统功耗 特点 工作电压 3.0 ~5.0V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

More information

16位A/D转换器

16位A/D转换器 16 位 A/D 转换器 anyh 是双竞公司新推出的 16 位 A/D 转换器, 具有两个全差分输入通道, 可用于测量低频模拟信号 这种器件带有增益可编程放大器, 可通过软件编程来直接测量传感器输出的各种微小信号 具有分辨率高 动态范围广 自校准等特点, 因而非常适合于工业控制 仪表测量等领域 16 位 A/D 转换器 1. 概述 是双竞公司新推出的 16 位 A/D 转换器, 具有两个全差分输入通道,

More information

STEP-MXO2 V2硬件手册

STEP-MXO2 V2硬件手册 小脚丫 STEP FPGA STEP 2016/8/28 目录 1. 概述... 2 2.STEP-MXO2 V2 硬件简介 :... 3 2.1 STEP-MXO2 V2 开发板... 3 2.2 FT232 编程器... 3 2.3 FPGA... 3 2.4 供电... 4 2.5 时钟... 4 2.6 七段数码管... 4 2.7 三色 LED... 4 2.8 拨码开关... 4 2.9

More information

, STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99

, STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC12C5A08AD-35C-LQFP44,RMB 7.5 , STC12C5201AD-SOP16,RMB 2.49 STC12C5202AD-LQFP32,RMB 3.99 , , 0.1uF STC 89LE58 RD+ 32K 1280 16K+ 0.1uF

More information

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica CP Chip Power ARM Cortex-M3 (STM32F) ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplication and hardware

More information

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

More information

untitled

untitled 计 IC 规 书 2015/09/23 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2015/09/23 2 13 1.0 TCP310 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP310A1.30 ± 0.05V TCP310B1.25

More information

修订历史 版本修改日期更改概要 V 初版 V1.0 2/42

修订历史 版本修改日期更改概要 V 初版 V1.0 2/42 32 位 MCU ES32F0271 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2019-1-10 V1.0 1/42 修订历史 版本修改日期更改概要 V1.0 2019-1-10 初版 V1.0 2/42 基于 ARM Cortex-M0 的 ES32F0271 系列 MCU 功能 内核 ARM 32-bit Cortex -M0 从 32 khz 最大到 48 MHz

More information

DATASHEET SEARCH SITE ==

DATASHEET SEARCH SITE == , STC 89 1280 8/16/32/64k IAP SRAM ISP P0 8 P1 8051 E 2 PROM + P2 IAP STC Data Flash P4.0P4.3 P3 MAX810 I/O P4 A/D UART A / D 3 STC 89 P I I E 2 P 4 S A ROM EMI P P STC 89C51 RC 4K 512 2K STC 89C52 RC

More information

33023A.book(31031A_cn.fm)

33023A.book(31031A_cn.fm) 31 第 31 章器件特性 器件特性 目录 本章包括以下一些主要内容 : 31.1 简介... 31-2 31.2 特性和电气规范... 31-2 31.3 DC 和 AC 特性图表... 31-2 31.4 版本历史... 31-22 24 Microchip Technology Inc. DS3131A_CN 第 31-1 页 PICmicro 中档单片机系列 31.1 简介 Microchip

More information

adsd

adsd HS8108 电脑开关电源控制器 概述 : HS8108 是 PWM 开关电源控制器, 主要用于台式 PC( 个人电脑 ) 的开关电源部分 HS8108 能够提供开关电源所有的控制和保护功能 : PWM 脉宽调制及推挽输出, 具有过压 欠压 过流 过功耗 远程控制 AC 掉电保护等功能, 两个内嵌的精密 431 调节器用作稳定 5V 辅助电源和 33V 输出电压, 内嵌的精密振荡器可以保证各种延时的精确性

More information

設計目標規格書

設計目標規格書 ARM Cortex -M0 32 位 微 控 制 器 NuMicro M051 系 列 技 术 参 考 手 册 - 1 - 版 本 V2.0 目 录 1 概 述 11 2 特 征 12 3 框 图 16 4 选 型 表 17 5 管 脚 配 置 18 5.1 QFN 33 pin 18 5.2 LQFP 48 pin 19 5.3 管 脚 描 述 20 6 功 能 描 述 23 6.1 ARM Cortex

More information

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P HT46R/47R/48R/49R 系列 选型指南 HT46R22 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 19 位双向输入 / 输出口 1 个与输入 / 输出口线共用的外部输入 16 位具有 7 级预分频带溢出中断的可编程定时 / 计数器 内置石英晶体或 RC 振荡器 2048 14 位的程序存储器 PROM 64 8 位的数据存储器 RAM 支持发声的

More information

untitled

untitled 计 IC 规 书 2017/06/19 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2017/06/19 2 13 1.0 TCP316 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP316A1.30 ± 0.05V TCP316B1.25

More information

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA 1K 4 SH6610C 4 OTP ROM 1K X 16 RAM 88 X 4-24 - 64 2.4V-5.5V - fosc = 30kHz - 4MHz, = 2.4V - 5.5V - fosc = 4MHz - 8MHz, = 4.5V - 5.5V 11 CMOS I/O 4 ( ) 8 / - 0 PORTA.0 ( / / ) - 0 - PORTB ( ) ( ) - 32.768kHz,

More information

概述 ST08B 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 ST08B 和 ST08 相比有更强的抗干扰性和更好的一致性 这个芯片可以工作在低功耗的环境下, 当电源为 5v 时, 工作电流为 220ua,

概述 ST08B 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 ST08B 和 ST08 相比有更强的抗干扰性和更好的一致性 这个芯片可以工作在低功耗的环境下, 当电源为 5v 时, 工作电流为 220ua, Dec 2009 ST08B 8 通道带自校正功能的容性触摸感应器 ( 改进版 ) WWW.ICMAN.CN 2009.12 ST08B Spec 1.7 1 概述 ST08B 触摸感应器可以用平均电容值作为基准检测感应点的电容变化 它可以通过任何非导电介质来感应电容变化 这样感应模块就可以很好的跟水和灰尘隔离 ST08B 和 ST08 相比有更强的抗干扰性和更好的一致性 这个芯片可以工作在低功耗的环境下,

More information

MPW 项目简介

MPW 项目简介 概述 TM1621 是内存映象和多功能的 LCD 驱动器,TM1621 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 TM1621 的管脚只有 4 或 5 条,TM1621 还有一个节电命令用于降低系统功耗 功能特性 工作电压 2.4~ 5.2V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

More information

<463A5C CC9E4C6B55CB7A2C9E45CCBB5C3F7CAE95C D E3029CBB5C3F7CAE92E777073>

<463A5C CC9E4C6B55CB7A2C9E45CCBB5C3F7CAE95C D E3029CBB5C3F7CAE92E777073> 1. 概述 HS2303-PT 产品说明书 Ver 1.0 HS2303-PT 是一款低成本 高速度 高抗干扰, 带射频传输的 8 位 CMOS 制造的单片机 工作电压在 2.0~3.6V 之间, 电池供电时, 能保证绝大多数电池在电量完全耗尽前仍能正常使用 ; 正常工作温度范围在 -20 ~70 之间 单片机基于 RISC 架构, 仅有 35 条指令 除程序跳转需要两个周期外, 其余所有的指令都是单周期指令

More information

STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3 ARM Cortex-M3 ARM ARM

STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3 ARM Cortex-M3 ARM ARM STM32 ARM Cortex -M3 32 www.st.com/mcu www.stmicroelectronics.com.cn/mcu STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU 32 1632 Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500007-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 外部中断 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 22 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 / 或规格说明, 联系富士通销售代表或富士通授权分销商

More information

PowerPoint Presentation

PowerPoint Presentation DALI 介绍 Digital Addressable Lighting Interface Mar 2017 DALI DALI: 数字地址化照明接口 (Digital Addressable Lighting Interface) 2 System structure example 3 DALI 2 the Standard IEC-62386 命令 DALI 协议定义双字节指令集, 指令分为标准指令和专用指令两大类

More information

AVS7516 声音事件检测芯片硬件数据手册修正记录 版本 发布日期 内容描述 首次发布版本 修订电路参考图等细节 修订部分错误, 更新部分电路参考图 第 2 页共 16 页

AVS7516 声音事件检测芯片硬件数据手册修正记录 版本 发布日期 内容描述 首次发布版本 修订电路参考图等细节 修订部分错误, 更新部分电路参考图 第 2 页共 16 页 AVS7516 声音事件检测芯片 硬件数据手册 深圳声联网科技有限公司 0755-33349168 0755-33349798 www.avsnest.com 声联网官方订阅号 第 1 页共 16 页 AVS7516 声音事件检测芯片硬件数据手册修正记录 版本 发布日期 内容描述 1.0 2017-04-27 首次发布版本 1.1 2017-08-02 修订电路参考图等细节 1.2 2018-07-09

More information

Microsoft Word - TM1621.doc

Microsoft Word - TM1621.doc 概述 TM1621 是 128 点 内存映象和多功能的 LCD 驱动器,TM1621 的软件配置特性使它适用于多种 LCD 应用场合, 包括 :LCD 模块和显示子系统 用于连接主控制器和 TM1621 的管脚只有 4 或 5 条,TM1621 还有一个节电命令用于降低系统功耗 特性 工作电压 2.4~ 5.2V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入

More information

FM3318产品手册

FM3318产品手册 FM33A0xx 低功耗 MCU 芯片 简单 2017. 10 FM33A0xx 低功耗 MCU 芯片 版本 3.1 1 本资料是为了让用户根据用途选择合适的上海复旦微电子集团股份有限公司 ( 以下简称复旦微电子 ) 的产品而提供的参考资料, 不转让属于复旦微电子或者第三者所有的知识产权以及其他权利的许可 在使用本资料所记载的信息最终做出有关信息和产品是否适用的判断前, 请您务必将所有信息作为一个整体系统来进行评价

More information

TONE RINGER

TONE RINGER 带有 USB,SD 卡接口的 MP3 解码器 描述 SC95880 是集成 MP3 解码的 SOC 电路, 可直接解析存储在 USB 盘和 SD 卡的文件系统, 自动识别和解码相应介质上的文件并且播放 通过内置 MCU, 对用户开发提供了完善的支持 主要特点 集成 MP3 解码器, 支持 ISO/IEC 11172-3/13818-3 L1/2/3 和 MPEG-2.5 解码功能, 支持 VBR,

More information

单片机应用编程技巧(专家:邓宏杰)

单片机应用编程技巧(专家:邓宏杰) 编 者 注 : 本 文 件 为 电 子 工 程 专 辑 网 站 编 辑 部 原 创, 电 子 工 程 专 辑 享 有 本 文 章 完 全 著 作 权, 如 需 转 载 该 文 章, 必 须 经 过 电 子 工 程 专 辑 网 站 编 辑 部 同 意 联 系 电 子 工 程 专 辑 网 站 编 辑 部, 请 发 信 至 eetcol@globalsources.com 单 片 机 应 用 编 程 技

More information

Microsoft Word - FM17522_ps_chs - new.doc

Microsoft Word - FM17522_ps_chs - new.doc FM17522 通用 非接触读写器芯片 2016.10 FM17522 非接触读写器芯片 版本 1.4 1 本资料是为了让用户根据用途选择合适的上海复旦微电子集团股份有限公司 ( 以下简称复旦微电子 ) 的产品而提供的参考资料, 不转让属于复旦微电子或者第三者所有的知识产权以及其他权利的许可 在使用本资料所记载的信息最终做出有关信息和产品是否适用的判断前, 请您务必将所有信息作为一个整体系统来进行评价

More information

Microsoft Word - ET6621.doc

Microsoft Word - ET6621.doc Etek Microelectronics ET6621 LCD 控制驱动电路 概述 ET6621 是用来对 MCU 的 I/O 口进行扩展的外围设备 显示矩阵为 32 4, 是一个 128 点阵式存储器映射多功能 LCD 驱动电路 ET6621 的软件特性使它很适合应用于 LCD 显示, 包括 LCD 模块和显示子系统 在主控制器和 ET6621 之间的接口应用只需要 3 或 4 个端口 Power

More information

ESP32-WROOM URL Wi-Fi Wi-Fi Bluetooth SIG 2018

ESP32-WROOM URL Wi-Fi Wi-Fi Bluetooth SIG 2018 ESP32-WROOM-32 2.6 2018 www.espressif.com ESP32-WROOM-32 www.espressif.com/zh-hans/subscribe www.espressif.com/zh-hans/certificates URL Wi-Fi Wi-Fi Bluetooth SIG 2018 1 1 2 3 2.1 3 2.2 3 2.3 Strapping

More information

ESP32-WROOM-32D ESP32-WROOM-32U URL Wi-Fi Wi-Fi Bluetooth SIG 208

ESP32-WROOM-32D ESP32-WROOM-32U     URL Wi-Fi Wi-Fi Bluetooth SIG 208 ESP32-WROOM-32D & ESP32-WROOM-32U.7 208 www.espressif.com ESP32-WROOM-32D ESP32-WROOM-32U www.espressif.com/zh-hans/subscribe www.espressif.com/zh-hans/certificates URL Wi-Fi Wi-Fi Bluetooth SIG 208 2

More information

管脚配置 底板插口配置 芯片大小 (mil) 2-2 -

管脚配置 底板插口配置 芯片大小 (mil) 2-2 - HOLTEK HT1621 LCD 驱动器 特性 * 工作电压 2.4 5.2V * 内嵌 256KHz RC 振荡器 * 可外接 32KHz 晶片或 256KHz 频率源输入 * 可选 1/2 或 1/3 偏压和 1/2 1/3 或 1/4 的占空比 * 片内时基频率源 * 蜂鸣器可选择两种频率 * 节电命令可用于减少功耗 * 内嵌时基发生器和看门狗定时器 WDT * 时基或看门狗定时器溢出输出

More information

深圳明和科技

深圳明和科技 500mA 同步降压 DC/DC 转化器 ME3101 系列 描述 : ME3101 是一款同步整流降压型 DC/DC 内置 0.6ΩPMOS 驱动管和 0.7ΩNMOS 开关管 兼容陶瓷电容, 外部只需一只电感和两只电容, 可高效率的输出 500mA 内置振荡器电路, 振荡频率可达 1.2MHZ ME3101 为 PFM/PWM 型自动开关控制模式, 在满载时也能快速响应, 达到纹波小, 效率高的效果

More information

ESP3-WROVER URL Wi-Fi Wi-Fi Bluetooth SIG 08

ESP3-WROVER     URL Wi-Fi Wi-Fi Bluetooth SIG 08 ESP3-WROVER.0 08 www.espressif.com ESP3-WROVER www.espressif.com/zh-hans/subscribe www.espressif.com/zh-hans/certificates URL Wi-Fi Wi-Fi Bluetooth SIG 08 3. 3. 4.3 Strapping 5 3 7 3. CPU 7 3. Flash SRAM

More information

LED 显示屏驱动 IC2011V1.1 SM16125 概述 SM16125 是专为 LED 显示屏设计的驱动芯片, 内建 CMOS 位移寄存器与锁存功能, 可以将串行的输入数据转换成并行输出数据格式 SM16125 提供 16 个电流源, 可以在每个输出端口提供 3 45mA 的恒定电流, 大小

LED 显示屏驱动 IC2011V1.1 SM16125 概述 SM16125 是专为 LED 显示屏设计的驱动芯片, 内建 CMOS 位移寄存器与锁存功能, 可以将串行的输入数据转换成并行输出数据格式 SM16125 提供 16 个电流源, 可以在每个输出端口提供 3 45mA 的恒定电流, 大小 SM16125 概述 SM16125 是专为 LED 显示屏设计的驱动芯片, 内建 CMOS 位移寄存器与锁存功能, 可以将串行的输入数据转换成并行输出数据格式 SM16125 提供 16 个电流源, 可以在每个输出端口提供 3 45mA 的恒定电流, 大小由外接电阻来调整 封装图 SSOP24L-0.635-D1.40 (mm) ( SM16125ES ) 特点 16 通道恒流源输出 电流输出大小不因输出端负载电压变化而变化

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

Microsoft Word - FM320X简介

Microsoft Word - FM320X简介 FM320X 低压电力线载波通信芯片 2013. 12 FM3203 低压电力线载波通信芯片 版本 1.0 1 本资料是为了让用户根据用途选择合适的上海复旦微电子集团股份有限公司 ( 以下简称复旦微电子 ) 的产品而提供的参考资料, 不转让属于复旦微电子或者第三者所有的知识产权以及其他权利的许可 在使用本资料所记载的信息最终做出有关信息和产品是否适用的判断前, 请您务必将所有信息作为一个整体系统来进行评价

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

SB 系列 / C-Link 产品特点 引用标准 : IEC 结构 : 金属化聚丙烯膜结构 封装 : 塑料外壳 ( UL94 V-0), 树脂填充 电气特性 工作温度 : - 40 至 C 范围 : 1.0 至 150μF 额定电压 : 700 至 1100 VC 偏差 :

SB 系列 / C-Link 产品特点 引用标准 : IEC 结构 : 金属化聚丙烯膜结构 封装 : 塑料外壳 ( UL94 V-0), 树脂填充 电气特性 工作温度 : - 40 至 C 范围 : 1.0 至 150μF 额定电压 : 700 至 1100 VC 偏差 : SA 系列 / C-Link 产品特点 引用标准 : IEC 61071 结构 : 金属化聚丙烯膜结构 封装 : 聚酯胶带, 树脂填充 电气特性 工作温度 : - 40 至 + 85 C 范围 : 15 至 500μF 额定电压 : 500 至 1100 VC 偏差 : ± 5%, ± 10% 损耗因素 : 2 10-3 @100z 20±5 C 预期寿命 : 100,000 小时 @Un, 70

More information

F²MC-8L/16LX/FR FAMILY

F²MC-8L/16LX/FR FAMILY 富士通半导体 ( 上海 ) 有限公司应用笔记 MCU-AN-500074-Z-13 F²MC-8FX 家族 8 位微型控制器 全系列 低功耗策略 应用笔记 修改记录 修改记录 版本日期作者修改记录 1.0 2009-12-07 Edison, Zhang 初稿 1.1 2009-01-08 Jacky, Zhou 增加细节描述 1.2 2009-01-12 Jacky, Zhou 增加 3.3.4

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

目 录

目      录 61 61 61 61 2004-2-23 Sunplus University Program http://www.unsp.com.cn E-mail:unsp@sunplus.com.cn 1 61 1... 5 1.1... 5 1.2 61... 5 2... 8 2.1... 8 2.2... 8 2.2.1... 8 2.2.2... 10 2.3... 10 2.3.1... 10

More information

STM32 for sensorless vector control

STM32 for sensorless vector control STM32 PMSM FOC Shanghai, March,2008 Agenda STM32 FOC Clark Parke Circle limitation Mar 08 1 Agenda / Hall PMSM PLL MC_State_observer_param.h Mar 08 2 Agenda MC_Control_param.h / PI Mar 08 3 Plan STM32

More information

Kinetis KL1x – 通用超低功耗MCU

Kinetis KL1x – 通用超低功耗MCU Freescale Semiconductor Document Number: KL1XPB 产品简介 Rev 0, 03/2015 Kinetis KL1x 通用超低功耗 MCU 最高 256 KB Flash 和 32 KB SRAM 1 Kinetis L 系列简介 Kinetis L 系列微控制器 (MCU) 的低功耗性能出类拔萃, 既具有新型 ARM Cortex -M0+ 处理器的卓越能效和易用性,

More information

FM17520非接触读写器芯片

FM17520非接触读写器芯片 FM17522 通用 非接触读写器芯片 2014. 07 FM17522 非接触读写器芯片 版本 1.1 1 本资料是为了让用户根据用途选择合适的上海复旦微电子集团股份有限公司 ( 以下简称复旦微电子 ) 的产品而提供的参考资料, 不转让属于复旦微电子或者第三者所有的知识产权以及其他权利的许可 在使用本资料所记载的信息最终做出有关信息和产品是否适用的判断前, 请您务必将所有信息作为一个整体系统来进行评价

More information

Tel: , Fax: STR-15 STR bps 2400bps 4800bps 9600bps STR : 500mW 2.ISM 433

Tel: , Fax: STR-15 STR bps 2400bps 4800bps 9600bps STR : 500mW 2.ISM 433 Tel:086-21-50807785, 50273226 Fax:086-21-50807785-807 http://www.sendbow.com TEL +86-021-50273226 50807785 13816690692 FAX:+86-021-50807785-807 167 E-mail:mailto:technology@sendbow.com web:http://www.sendbow.com

More information

CM ZT1

CM ZT1 Spansion 模拟和微控制器产品 本文档包含有关 Spansion 模拟和微控制器产品的信息 尽管本文档内有原来开发该产品规格的公司名称 富士通 或 Fujitsu, 该产品将由 Spansion 提供给现有客户和新客户 规格的延续本文档内容并不因产品供应商的改变而有任何修改 文档内容的其他更新, 均为改善文档而进行, 并已记录在文档更改摘要 日后如有需要更改文档, 其更改内容也将记录在文档更改摘要

More information

設計目標規格書

設計目標規格書 ARM Cortex -M0 32 位 微 控 制 器 NuMicro M051 BN 系 列 M052/M054 系 列 规 格 书 - 1 - 版 本 V1.01 目 录 1 概 述 7 2 特 征 8 3 方 块 图 12 4 选 型 表 13 5 管 脚 配 置 14 5.1 QFN 33 pin 14 5.2 LQFP 48 pin 15 5.3 管 脚 描 述 16 6 功 能 描 述

More information

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

More information

Microsoft PowerPoint - SMPS Solutions with On-Bright Power IC [兼容模式]

Microsoft PowerPoint - SMPS Solutions with On-Bright Power IC  [兼容模式] SMPS Solutions with On-Bright Power IC Energy Star and CEC for EPS EPS: Single Voltage External AC-DC and AC-AC Power Supplies Energy Star 比 CEC 和 The Federal Standard 要严格 能效标准 : AC input 115/230V, 25%

More information

Microsoft Word - DW01

Microsoft Word - DW01 用途 / Purpose: 用于锂离子 / 锂聚合物可充电电池组 For lithium ion / lithium polymer rechargeable battery pack 特点 / Features: (1) 高电压检测电路 / Precision voltage detection circuit 过充检测电压 Overcharge detection voltage 4.3 过充恢复电压

More information

展 望 与 述 评 2 广 电 设 备 与 技 术 2013.2

展 望 与 述 评 2 广 电 设 备 与 技 术 2013.2 展 望 与 述 评 2013.2 广 电 设 备 与 技 术 1 展 望 与 述 评 2 广 电 设 备 与 技 术 2013.2 展 望 与 述 评 2013.2 广 电 设 备 与 技 术 3 展 望 与 述 评 4 广 电 设 备 与 技 术 2013.2 展 望 与 述 评 2013.2 广 电 设 备 与 技 术 5 展 望 与 述 评 骆 萧 萧 卜 筱 皛 本 文 讨 论 了 在 非

More information

Low-Cost, µP Supervisory Circuits

Low-Cost, µP Supervisory Circuits I 2 C 实时时钟 H YM1302 / 日历芯片钟 特点 可计时基于 32.768kHz 晶体的秒, 分, 小时, 星期, 天, 月和年 带有世纪标志 宽工作电压范围 :2.0~5.5V 低休眠电流 : 典型值为 0.25μA(V DD =3.0V, T A =25 ) I 2 C 总线从地址 : 读,0A3H; 写,0A2H 应用 便携仪器 移动电话 门禁 可编程时钟输出频率为 :32.768kHz,1024Hz,

More information

Microsoft Word - EM78P156K Product Spec v1[1].3 _ _.doc

Microsoft Word - EM78P156K Product Spec v1[1].3 _ _.doc EM78P156K 8 位 OTP 微控制器 产品规格书 版本 1.3 义隆电子股份有限公司 2012.07 本文内容是由英文规格书翻译而目的是为了您的阅读更加方便 它无法跟随原稿的更新, 文中可能存在翻译上的错误, 请您参考英文规格书以获得更准确的信息 商标告知 : IBM 为一个注册商标,PS/2 是 IBM 的商标之ㄧ. Windows 是微软公司的商标 ELAN 和 ELAN 标志是义隆电子股份有限公司的商标

More information

NiOS II SOPC 嵌入式系统基础教程

NiOS II SOPC   嵌入式系统基础教程 第 4 章 Nios II 外围设备 主要内容 本章介绍了 Nios II 处理器常用外围设备 (Peripherals) 内核的特点 配置以及软件编程, 以便使用这些外设定制 Nios II 系统时查阅 这些外设都是以 IP 核的形式提供给用户的, 用户可以根据实际需要把这些 IP 核集成到 Nios II 系统中去 主要介绍 : 硬件结构 ; 内核的特性核接口 ; SOPC Builder 中各内核的配置选项

More information

設計目標規格書

設計目標規格書 SERIES DATASHEET ARM Cortex -M 32- 位微控制器 NuMicro 家族 系列规格书 The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced

More information

MSP430F KB+256B flash 10KB RAM 64 Quad Flat Pack QFP MSP430x1xx SLAU049 MSP430 MSP RISC CPU 16 DCO 6 MSP430x15x/16x/161x A/D 12 D/A

MSP430F KB+256B flash 10KB RAM 64 Quad Flat Pack QFP MSP430x1xx SLAU049 MSP430 MSP RISC CPU 16 DCO 6 MSP430x15x/16x/161x A/D 12 D/A MSP430x15x, MSP430x16x MSP430x161x 1.8V 3.6V 1MHz 2.2V 280 A 1.6 A RAM 0.1 A 6 S 16 125 DMA 12 A/D 12 D/A / 16 A / 16 B USART1 UART SPI USART0 UART SPI I 2 C / Bootstrap Loader MSP430F155: 16KB+256B flash

More information