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

Size: px
Start display at page:

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

Transcription

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

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.8 2/317

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

4 修订历史 版本修改日期更改概要 V 初版发布 V 增强内容描述 V V V V V V V 修改 SCU_PWRC SCU_SCLKEN0 和 SCU_SCLKEN1 等寄存器描述 1. 修改 NVIC_ICER,NVIC_ISER 等寄存器描述 ; 2. 产品订购信息表更新 ; 节, 增加了设定死区时间后的 PWM 互补输出举例 1. 增加芯片唯一识别码小节 ; 2. 增加睡眠模式的唤醒时间描述 ; 3. 更新时钟滤波 CLKFLT 描述 ; 4. 更新寄存器 T16N_CON0 中关于 ASYWEN 位说明和 T16N_CON2 中 PWMBKL0/1 位的定义和 PWMBKF 位的使用注意事项 ; 5. 更新 RTC_WA RTC_DA RTC_HMS RTC_YMDW 中的 bit 定义 ; 6. 添加外部时钟振荡器低速 LP 模式设置注意事项 ; 7. 更新 SPI 波特率设置寄存器 SPI_CKS 位宽定义 1. 更新 VDD 检测控制位 VDD5_FLAG_EN 的定义 ; 2. 添加编程 / 调试接口使用注意事项 ; 3. 更新 ADC 内部参考电压 VREF 参数范围 ; 4. 更新 BOR 和 LVD 模块特性表 ; 5. 更新内部 HRC 时钟频率精度范围 ; 6. 新增 PA6 管脚的使用要求增强描述 ; 7. 更新参数表中 PLL 锁频稳定的时间参数 1. 删除 LVD_IN 相关内容 ; 2. 更新复位时序图章节内容 ; 3. 添加 GPIO 软件操作方式, 能够得到的最快脉冲信号频率 ; 4. 更新 ADC 模块特性表, 添加模拟小信号 ADC offse 特性表 1. 更新 睡眠模式的唤醒时间 章节 ; 2. 添加 PLL 模块功耗的相关参数 ; 3. 添加 ADC 工作建立的相关内容, 更新 ADC 章节其它相关内容 ; 4. 更新 BOR 相关内容 ; 5. 更新 I2C 章节部分内容 1. 更新 PLL 时钟频率的相关内容 ; 2. 添加在 PWM 独立模式下, 不要使用 MAT2IF 和 MAT3IF 的说明 ; 3. 更新复位章节时序图 ; 4. 更新 ADC 外部参考电压的范围, 不能低于 V1.8 4/317

5 5. 芯片时钟特性图 章节, 添加 LRC 时钟随电压 - 温度变化曲线 ; 6. 更新 ADC 模块的描述,ADC 数据转换时序示意图的备注 Tog > 100us, 在参考例程中添加约 100us 的延时说明 ; 7. 删除外部复位参考电路图 2 的备注关于外接电阻的描述 V1.8 5/317

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

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

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

9 T32N 输入捕捉功能 T32N 输出调制功能 特殊功能寄存器 T32N 应用说明 通用异步接收 / 发送器 (UART0/ UART1) 概述 结构框图 UART 数据格式 UART 异步发送器 UART 异步接收器 UART 发送调制功能 UART 红外唤醒功能 UART 端口极性 UART 自动波特率检测 UART 空闲帧检测 UART 发送暂停和接收暂停 特殊功能寄存器 UART 应用说明 增强型通用异步接收 / 发送器 (EUART0) 概述 结构框图 EUART 端口复用 普通 UART 通讯模式 通讯模式的异步接收器和发送器 通讯模式的数据格式 通讯模式的自动重发功能 通讯模式的自动重收功能 特殊功能寄存器 EUART 应用说明 SPI 同步串口通讯控制器 (SPI0 /SPI1) 概述 结构框图 SPI 通讯模式 SPI 数据格式 SPI 帧位宽 SPI 同步发送器 SPI 同步接收器 SPI 通讯控制 SPI 延迟接收功能 SPI 数据帧发送间隔功能 特殊功能寄存器 SPI 应用说明 I2C 总线串口通讯控制器 (I2C0) 概述 V1.8 9/317

10 结构框图 I2C 总线基本原理 I2C 通讯协议 I2C 数据传输格式 I2C 通讯端口配置 I2C 时基定时器与 16 倍速采样器 I2C 通讯发送器 I2C 通讯接收器 I2C 通讯控制 I2C 起始位 I2C 停止位 I2C 应答延迟功能 I2C 数据帧传输间隔功能 I2C 时钟线自动下拉等待请求功能 I2C 自动发送未应答功能 特殊功能寄存器 I2C 应用说明 模数转换器 (ADC) 概述 结构框图 ADC 基本配置 ADC 高精度参考电压 ADC 数据转换 自动转换比较功能 特殊功能寄存器 实时时钟 (RTC) 概述 RTC 写保护 时间日期设置 RTC 中断源 RTC 计时功能 特殊功能寄存器 液晶显示控制器 (LCDC) 概述 结构框图 LCDC 基本设置 LCDC 偏置电压选择 LCDC 像素对照表 LCDC 工作时钟源 LCD 显示帧频率 LCD 闪烁功能 LCD 低功耗模式 特殊功能寄存器 数码管显示控制器 (LEDC) V1.8 10/317

11 概述 结构框图 LEDC 基本设置 LEDC 像素对照表 LEDC 工作时钟源 LED 工作示意图 特殊功能寄存器 看门狗定时器 (WDT) 概述 特殊功能寄存器 第 6 章 芯片封装外观尺寸图 LQFP 48-pin 封装外观尺寸图 LQFP 44-pin 封装外观尺寸图 LQFP 32-pin 封装外观尺寸图 QFN 32-pin 封装外观尺寸图 SOP 28-pin 封装外观尺寸图 附录 1 Cortex-M0 内核描述 附录 1. 1 Cortex-M0 指令集 附录 1. 2 Cortex-M0 内核寄存器 附录 通用寄存器 R0~R 附录 堆栈指针寄存器 SP(R13) 附录 链接寄存器 LR(R14) 附录 程序计数器 PC(R15) 附录 程序状态寄存器 xpsr 附录 异常 / 中断屏蔽寄存器 PRIMASK 附录 控制寄存器 CONTROL 附录 2 电气特性 附录 2. 1 参数特性表 附录 芯片工作条件 附录 芯片特性参数测量方法 附录 芯片功耗特性 附录 芯片 IO 端口特性 附录 芯片系统时钟特性 附录 芯片功能模块特性 附录 2. 2 参数特性图 附录 芯片功耗特性 附录 芯片时钟特性 附录 芯片 IO 端口输入特性 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口除外 ) 附录 芯片 IO 端口输出特性 ( 大电流驱动,PA6~PA13 端口除外 ) 附录 芯片 IO 端口输出特性 ( 普通驱动,PA6~PA13 端口 ) 附录 芯片 IO 端口输出特性 ( 大电流驱动,PA6~PA13 端口 ) 附录 3 编程调试接口 附录 3. 1 概述 V1.8 11/317

12 附录 3. 2 ISP 编程接口 附录 通信协议 附录 操作流程 附录 3. 3 SWD 调试接口 附录 概述 附录 SWD 特性 附录 4 LCD 驱动波形 附录 4. 1 概述 附录 4. 2 驱动波形图 V1.8 12/317

13 图目录图 1-1 HR8P506 结构框图 图 1-2 LQFP48 封装顶视图 图 1-3 LQFP44 封装顶视图 图 1-4 LQFP32 封装顶视图 图 1-5 QFN32 封装顶视图 图 1-6 SOP28 封装顶视图 图 2-1 系统电源结构框图 图 2-2 系统复位电路结构框图 图 2-4 掉电复位时序示意图 图 2-6 MRSTN 复位参考电路图 图 2-7 MRSTN 复位参考电路图 图 2-8 系统时钟电路结构框图 图 2-9 XTAL 振荡器电路结构示意图 图 2-10 系统定时器框图 图 3-1 内部存储系统分配示意图 图 3-2 IAP 操作请求流程图 图 3-3 IAP 全擦除操作流程图 图 3-4 IAP 页擦除操作流程图 图 3-5 IAP 编程操作流程图 图 3-6 SRAM 映射图 图 3-7 外设存储器分配示意图 图 4-1 IO 端口电路结构图 图 4-2 外部端口中断 PINT0 电路结构示意图 图 4-3 外部按键中断 KINT0 电路结构示意图 图 4-4 Buzz 高电平调制输出波形图 图 4-5 Buzz 低电平调制输出波形图 图 5-1 T16N0 电路结构框图 图 5-2 T16N0 计数匹配功能示意图 图 5-3 T16N0 捕捉功能示意图 图 5-4 T16N0 PWM 独立模式输出调制功能示意图 图 5-5 T16N0 互补输出功能示意图 图 5-6 带死区的 T16N0 互补输出功能示意图 图 5-7 T32N0 电路结构框图 图 5-8 T32N0 计数匹配功能示意图 图 5-9 T32N0 捕捉功能示意图 图 5-10 T32N0 输出调制功能示意图 图 5-11 UART 电路结构图 图 5-12 UART 7 位数据格式 图 5-13 UART 8 位数据格式 图 5-14 UART 9 位数据格式 图 5-15 UART0 发送数据流示意图 图 5-16 UART0 发送数据操作流程图示例 图 5-17 UART0 接收数据流示意图 V1.8 13/317

14 图 5-18 UART0 接收数据操作流程图示例 图 5-19 TX0 高电平调制输出波形图 图 5-20 TX0 低电平调制输出波形图 图 5-21 自动波特率检测时序示意图 图 5-22 自动波特率检测错误时序示意图 图 5-23 空闲帧检测时序示意图 图 5-24 EUART0 电路结构框图 图 通讯模式发送数据流示意图 图 通讯模式接收数据流示意图 图 5-27 SPI0 电路结构框图 图 5-28 SPI0 时钟上升沿发送, 下降沿接收波形示意图 图 5-29 SPI0 时钟下降沿发送, 上升沿接收波形示意图 图 5-30 SPI0 时钟上升沿接收, 下降沿发送波形示意图 图 5-31 SPI0 时钟下降沿接收, 上升沿发送波形示意图 图 5-32 SPI 发送数据流示意图 图 5-33 SPI0 接收数据流示意图 图 5-34 SPI 延迟接收功能波形示意图 图 5-35 I2C 电路结构框图 图 5-36 I2C 总线通讯协议示意图 图 5-37 I2C 主控器写入从动器数据示意图 图 5-38 I2C 主控器读取从动器数据示意图 图 5-39 开漏输出端口示意图 图 5-40 I2C 总线端口信号的波形示意图 图 5-41 I2C 发送数据流示意图 图 5-42 I2C 接收数据流示意图 图 5-43 I2C 起始位波形图 图 5-44 I2C 自动寻呼波形图 图 5-45 I2C 停止位波形图 图 5-46 I2C 应答延迟功能波形示意图 图 5-47 I2C 数据帧传输间隔功能波形示意图 图 5-48 I2C 时钟线下拉等待波形示意图 图 5-49 ADC 内部结构图 图 5-50 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=0, 软件控制采样 ) 图 5-51 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=1, 硬件控制采样 ) 图 5-52 LCDC 驱动模块框图 图 /4 VDD 外部偏置电压参考电路 图 5-54 快速充放电示意图 图 5-55 LEDC 驱动模块框图 图 5-56 LEDC 工作示意图 V1.8 14/317

15 表目录表 1-1 管脚说明 表 1-2 管脚对照表 表 2-1 低功耗模式时钟状态表 表 2-2 异常 / 中断优先级操作类型说明说明表 表 2-3 异常 / 中断优先级列表 表 2-4 IRQ 分配列表 表 4-1 PINT 选择对应列表 表 4-2 KINT 选择对应列表 表 5-1 I2C 总线端口信号的时序参数列表 表 5-2 ADC 精度与转换速率的对应关系列表 表 /24 小时模式对照表 表 5-4 LCDC 外部偏置电压输入配置表 表 5-5 LCDC 像素对照列表 表 5-6 LCDC 复用类型列表 表 5-7 LED 像素对照列表 V1.8 15/317

16 第 1 章 芯片简介 1. 1 概述 该产品是一款高集成度的通用 MCU 芯片, 内部集成 32 位 ARM Cortex-M0 CPU 内核 集成多个 16 位和 32 位定时器 / 计数器, 带红外发送调制功能的 UART 模块, 兼容 7816 协议的通信接口,SPI 和 I2C 通信模块, 带实时时钟模块 RTC, 支持停显及闪烁功能的 LCD 驱动模块, 12 位 ADC, 以及用于系统电源监测的 LVD 模块等外设 工作条件 工作电压范围 :2.2V ~ 5.5V 工作温度范围 :-40 ~ 85 ( 工业级 ) 工作主时钟频率 :32KHz~48MHz 工作电流 :Ivdd = 3.5mA(@ 内部 HRC 16MHz, 典型值 ) 待机电流 :Ivdd = 5uA( 常温, 典型值 ) 封装 LQFP48 封装 ( 支持 46 个 I/O 端口 ) LQFP44 封装 ( 支持 42 个 I/O 端口 ) LQFP32/QFN32 封装 ( 支持 30 个 I/O 端口 ) SOP28 封装 ( 支持 26 个 I/O 端口 ) 电源 系统电源输入 VDD, 支持工作电压为 5V 或 3.3V 的应用系统 低功耗 LVD 用于监测系统电源掉电和上电, 可选择产生掉电或上电中断 复位 内嵌上电复位电路 POR 内嵌掉电复位电路 BOR 支持外部复位 时钟 外部晶体振荡器可配置, 支持低速振荡器 32KHz 和高速振荡器 1~20MHz, 可配置 为系统时钟源 内部 16MHz RC 振荡器 (HRC) 可配置为系统时钟源, 出厂前已校准 ( 全温度, 全电压范围内 16MHz 频率精度为 ±2%) 内部 32KHz RC 振荡器 (LRC) 作为 WDT 时钟源, 可配置为系统时钟源 支持 PLL 倍频, 时钟源可选择, 最大可倍频至 48MHz, 可配置为系统时钟源 内核 ARM Cortex-M0 32 位嵌入式处理器内核 支持 SWD 串行调试接口, 支持 2 个监视点 (watchpoint) 和 4 个断点 (breakpoint) 支持两组 SWD 调试接口可选择, 通过配置位 DEBUG_S 进行选择 V1.8 16/317

17 内嵌向量中断控制器 NVIC 支持唤醒中断控制器 WIC NVIC 包含一个不可屏蔽中断 NMI 内置 1 个 SysTick 系统定时器支持单周期 32 位乘法器 硬件看门狗 时钟源可选择 支持低功耗模式下唤醒 超时计数溢出可选择触发中断或复位 存储器 36K 字节 FLASH 存储器 - 支持 ISP 在线串行编程 - 支持两组 ISP 编程接口可选择, 硬件自动识别有效的 ISP 编程接口 - 支持 IAP 在应用中编程, 可选取部分区域作为数据存储使用 - 支持 FLASH 编程代码加密保护 8K 字节 SRAM 存储器 - SRAM 存储空间及外设寄存器地址空间支持位带 (Bit band) 扩展 I/O 端口 支持最多 46 个双向 I/O 端口 - PA 端口 (PA0~PA31) - PB 端口 (PB0~PB13) 支持 8 路外部中断输入, 触发方式可配置, 每个 I/O 端口均可作为外部中断输入源 支持 1 路按键中断输入, 触发方式可配置, 每个 I/O 端口均可作为按键中断输入源 定时器 / 计数器 T16N0:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N1:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N2:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T16N3:16 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 T32N0:32 位定时器 / 计数器, 带预分频器, 扩展输入捕捉 / 输出调制功能 RTC : 一路 RTC 实时时钟 UART 通信接口 支持二路 UART 通信接口 UART0,UART1 支持全 / 半双工异步通信模式支持传输波特率可配置支持 8 级发送 / 接收缓冲器支持 7/8/9 位数据格式可配支持奇偶校验功能可配, 支持硬件自动奇偶校验位判断 V1.8 17/317

18 支持空闲帧检测支持接收帧错误标志 溢出标志 奇偶校验错误标志支持数据接收和发送中断支持 PWM 调制输出, 且 PWM 占空比线性可调支持接收端口红外唤醒功能支持 UART 输入输出通讯端口极性可配置 EUART 通信接口 支持一路 EUART 通信接口 EUART0 兼容 UART 通信接口, 可配置为普通 UART 模式 扩展支持异步半双工接收 / 发送 (7816 模式 ) 扩展支持 8 位数据位和 1 位奇偶校验位 (7816 模式 ) 扩展支持自动重发重收模式 (7816 模式 ) 扩展支持可配置内部时钟输出 (7816 模式 ) 扩展支持双通道通讯可配置 (7816 模式 ) I2C 通信接口 支持一路通信接口 I2C0 支持主控和从动模式支持标准 I2C 总线协议, 最高传输速率 400K bit/s 支持 7 位寻址方式约定数据从最高位开始接收 / 发送支持数据接收和发送中断 SCL/SDA 端口支持推挽 / 开漏模式, 开漏时必须使能内部弱上拉或使用外部上拉电阻 SCL 端口支持时钟线自动下拉等待请求功能 SPI 通信接口 支持二路通信接口 SPI0,SPI1 支持主控模式和从动模式支持 4 种通信数据格式支持 4 级接收 / 发送缓冲器支持数据接收和发送中断 ADC 模拟数字转换器 支持 12 位转换结果, 有效精度为 11 位支持 16 通道模拟输入端支持参考电压源可选择支持中断产生支持转换结果自动比较 V1.8 18/317

19 支持定时触发 ADC 转换 LCDC 液晶显示控制器 支持最大 8 COM x 28SEG 支持时钟源可配置 :LRC 的 4 分频,LOSC 的 4 分频或 PCLK 的 4096 分频支持灰度调节功能支持显示闪烁功能, 闪烁频率可调支持两种不同的 LCD 驱动波形支持内部偏置电压可调 LEDC 数码管显示控制器 支持 1~8 个 8 段式共阴极数码管 支持时钟源可配置 :LRC 的 4 分频,LOSC 的 4 分频或 PCLK 的 4096 分频 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.8 19/317

20 1. 3 结构框图 Clock Reset Interrupt SCU GPIO X 46 WDT X 1 36K Bytes FLASH CORTEX-M0 8K Bytes SRAM APB RTC X 1 LCDC/LEDC 8x28 AHB AHB-APB Bridge 12Bit ADC X 16ch APB SPI X 2 16Bit Timer X 4 32Bit Timer X 1 UART X 2 EUART X 1 I2C X 1 图 1-1 HR8P506 结构框图 V1.8 20/317

21 1. 4 管脚分配图 LQFP48 封装图 PA22/RXD0/SEG8 PA23/TXD0/SEG9 PA24/MOSI1/RXD0/T16N1_0/SEG10 PA25/MISO1/TXD0/T16N1_1/SEG11 PA26/SCK1/RXD0/T16N_BK2/SEG12 PA27/NSS1/TXD0/T16N_BK3/SEG13 PA28/NSS1/T16N2_0/SEG14 PA29/SCK1/T16N2_1/SEG15 PA30/MISO1/RXD1/SEG16 PA31/MOSI1/TXD1/SEG17 PB0/T32N0_0/RXD1/T16N3_0/SEG18 PB1/T32N0_1/TXD1/T16N3_1/SEG PA9/TXD1/T16N1_1/AN15/CLKO0/COM4 PA8/RXD1/T16N1_0/AN14/COM5 PA7/T16N0_1/AN13/COM6 PA6/T16N0_0/AN12/COM7 PA5/SDA0/MOSI1/AN11 PA4/SCL0/MISO1/AN10 PA3/T32N0_1/SCK1/AN9/T16N_BK1 PA2/T32N0_0/NSS1/AN8/T16N_BK0 PA1/BUZ/AVREFP/AN7/ISDA0 PA0/T16N1_1/AVREFN/BUZ/AN6/ISCK0 VDD PB13/T16N1_0/BUZ/AN5 PB2/T16N0_0/NSS0/SCL0/SEG20 PB3/T16N0_1/SCK0/SDA0/SEG21 PB4/E0RX0/E0IO0/MISO0/SEG22 PB5/E0TX0/E0CK0/MOSI0/AN0/SEG23 PB6/E0RX1/E0IO1/AN1/SEG24 PB7/E0TX1/E0CK1/AN2/SEG25 PB8/T32N0_0/OSC2I/AN3/SEG26 PB9/T32N0_1/OSC2O/AN4/SEG27 OSC1O/PB11 VSS OSC1I/PB10 MRSTN/PB12 PA21/RTCO/T16N0_1/SEG7 PA20/CLKO1/T16N0_0/SEG6 PA19/T16N3_1/SDA0/SEG5 PA18/T16N3_0/SCL0/SEG4 PA17/MOSI0/SEG3 PA16/MISO0/SEG2 PA15/SCK0/T16N2_1/SEG1/ISDA1 PA14/NSS0/T16N2_0/SEG0/ISCK1 PA13/E0TX0/E0CK0/MOSI0/COM0 PA12/E0RX0/E0IO0/MISO0/COM1 PA11/T16N2_1/T16N3_1/SCK0/COM2 PA10/T16N2_0/T16N3_0/NSS0/COM3 HR8P506FHLQ 图 1-2 LQFP48 封装顶视图 V1.8 21/317

22 LQFP44 封装图 OSC1O/PB PA1/BUZ/AVREFP/AN7/ISDA0 PA0/T16N1_1/AVREFN/BUZ/AN6/ISCK0 VDD PB9/T32N0_1/OSC2O/AN4/SEG PA21/RTCO/T16N0_1/SEG7 PA22/RXD0/SEG8 PA23/TXD0/SEG9 PA24/MOSI1/RXD0/T16N1_0/SEG10 PA25/MISO1/TXD0/T16N1_1/SEG11 PA26/SCK1/RXD0/T16N_BK2/SEG12 PA27/NSS1/TXD0/T16N_BK3/SEG13 PA28/NSS1/T16N2_0/SEG PA29/SCK1/T16N2_1/SEG15 PA30/MISO1/RXD1/SEG16 PA31/MOSI1/TXD1/SEG17 PB0/T32N0_0/RXD1/T16N3_0/SEG18 PB1/T32N0_1/TXD1/T16N3_1/SEG19 PB2/T16N0_0/NSS0/SCL0/SEG20 PB3/T16N0_1/SCK0/SDA0/SEG21 VSS OSC1I/PB10 MRSTN/PB12 PB13/T16N1_0/BUZ/AN PA20/CLKO1/T16N0_0/SEG6 PA19/T16N3_1/SDA0/SEG5 PA18/T16N3_0/SCL0/SEG4 PA17/MOSI0/SEG3 PA16/MISO0/SEG2 PA15/SCK0/T16N2_1/SEG1/ISDA1 PA14/NSS0/T16N2_0/SEG0/ISCK1 PA13/E0TX0/E0CK0/MOSI0/COM0 PA12/E0RX0/E0IO0/MISO0/COM1 PA11/T16N2_1/T16N3_1/SCK0/COM2 PA10/T16N2_0/T16N3_0/NSS0/COM3 HR8P506FHLP PA9/TXD1/T16N1_1/AN15/CLKO0/COM4 PA8/RXD1/T16N1_0/AN14/COM5 PA7/T16N0_1/AN13/COM6 PA6/T16N0_0/AN12/COM7 PA5/SDA0/MOSI1/AN11 PA4/SCL0/MISO1/AN10 PA3/T32N0_1/SCK1/AN9/T16N_BK1 PA2/T32N0_0/NSS1/AN8/T16N_BK0 PB8/T32N0_0/OSC2I/AN3/SEG26 图 1-3 LQFP44 封装顶视图 V1.8 22/317

23 LQFP32 封装图 PA22/RXD0/SEG8 PA23/TXD0/SEG9 PA24/MOSI1/RXD0/T16N1_0/SEG10 PA25/MISO1/TXD0/T16N1_1/SEG11 PA27/NSS1/TXD0/T16N_BK3/SEG13 PA28/NSS1/T16N2_0/SEG14 PB0/T32N0_0/RXD1/T16N3_0/SEG18 PB1/T32N0_1/TXD1/T16N3_1/SEG19 PB9/T32N0_1/OSC2O/AN4/SEG27 VSS OSC1I/PB10 OSC1O/PB11 MRSTN/PB12 PB13/T16N1_0/BUZ/AN5 VDD PA16/MISO0/SEG2 PA15/SCK0/T16N2_1/SEG1/ISDA PA14/NSS0/T16N2_0/SEG0/ISCK1 PA13/E0TX0/E0CK0/MOSI0/COM0 PA12/E0RX0/E0IO0/MISO0/COM1 PA11/T16N2_1/T16N3_1/SCK0/COM2 PA10/T16N2_0/T16N3_0/NSS0/COM3 PA9/TXD1/T16N1_1/AN15/CLKO0/COM4 PA8/RXD1/T16N1_0/AN14/COM5 PA7/T16N0_1/AN13/COM6 PA6/T16N0_0/AN12/COM7 PA5/SDA0/MOSI1/AN11 PA4/SCL0/MISO1/AN10 PA3/T32N0_1/SCK1/AN9/T16N_BK1 PA2/T32N0_0/NSS1/AN8/T16N_BK0 PA1/BUZ/AVREFP/AN7/ISDA0 PB8/T32N0_0/OSC2I/AN3/SEG HR8P506FHLK 图 1-4 LQFP32 封装顶视图 V1.8 23/317

24 QFN32 封装图 PA22/RXD0/SEG8 PA23/TXD0/SEG9 PA24/MOSI1/RXD0/T16N1_0/SEG10 PA25/MISO1/TXD0/T16N1_1/SEG11 PA27/NSS1/TXD0/T16N_BK3/SEG13 PA28/NSS1/T16N2_0/SEG14 PB0/T32N0_0/RXD1/T16N3_0/SEG18 PB1/T32N0_1/TXD1/T16N3_1/SEG PB9/T32N0_1/OSC2O/AN4/SEG27 VSS OSC1I/PB OSC1O/PB MRSTN/PB12 PB13/T16N1_0/BUZ/AN5 VDD PA16/MISO0/SEG2 PA15/SCK0/T16N2_1/SEG1/ISDA1 PA14/NSS0/T16N2_0/SEG0/ISCK1 24 PA13/E0TX0/E0CK0/MOSI0/COM0 PA12/E0RX0/E0IO0/MISO0/COM1 PA11/T16N2_1/T16N3_1/SCK0/COM2 PA10/T16N2_0/T16N3_0/NSS0/COM3 PA9/TXD1/T16N1_1/AN15/CLKO0/COM4 HR8P506FHNK PA8/RXD1/T16N1_0/AN14/COM5 PA7/T16N0_1/AN13/COM6 PA6/T16N0_0/AN12/COM7 PA5/SDA0/MOSI1/AN11 PA4/SCL0/MISO1/AN10 PA3/T32N0_1/SCK1/AN9/T16N_BK1 PA2/T32N0_0/NSS1/AN8/T16N_BK0 PA1/BUZ/AVREFP/AN7/ISDA0 PB8/T32N0_0/OSC2I/AN3/SEG26 图 1-5 QFN32 封装顶视图 注 :QFN32 封装底部接地 如图虚线框内为接地 VSS V1.8 24/317

25 SOP28 封装图 PA23/TXD0/SEG PA19/T16N3_1/SDA0/SEG5 PB1/T32N0_1/TXD1/T16N3_1/SEG PA18/T16N3_0/SCL0/SEG4 PB8/T32N0_0/OSC2I/AN3/SEG PA17/MOSI0/SEG3 PB9/T32N0_1/OSC2O/AN4/SEG27 VSS OSC1I/PB10 OSC1O/PB11 MRSTN/PB12 VDD PA1/BUZ/AVREFP/AN7/ISDA HR8P506FHSH PA16/MISO0/SEG2 PA15/SCK0/T16N2_1/SEG1/ISDA1 PA14/NSS0/T16N2_0/SEG0/ISCK1 PA13/E0TX0/E0CK0/MOSI0/COM0 PA12/E0RX0/E0IO0/MISO0/COM1 PA11/T16N2_1/T16N3_1/SCK0/COM2 PA10/T16N2_0/T16N3_0/NSS0/COM3 PA2/T32N0_0/NSS1/AN8/T16N_BK PA9/TXD1/T16N1_1/AN15/CLKO0/COM4 PA3/T32N0_1/SCK1/AN9/T16N_BK PA8/RXD1/T16N1_0/AN14/COM5 PA4/SCL0/MISO1/AN PA7/T16N0_1/AN13/COM6 PA5/SDA0/MOSI1/AN PA6/T16N0_0/AN12/COM7 图 1-6 SOP28 封装顶视图 注 1: 编程 / 调试接口共用 5 线接口配置, 即电源线 VDD 地线 VSS 复位线 MRSTN 时钟线 ISCK 和数据线 ISDA 芯片出厂时 MRSTN 管脚默认为外部复位功能, 必需使用 5 线接口进行编程 / 调试 ; 当 MRSTN 管脚复用配置为 GPIO 功能后, 调试时复位线 MRSTN 需断开连接 ; 注 2: 建议 PA6 端口在使用过程中设置为输出, 且端口电压不能高于 VDD 或者低于 VSS, 否则可能会导致芯片工作异常 1. 5 管脚说明 管脚说明 管脚名称 输入类型 输出类型 A/D 管脚说明 PA0~PA31 CMOS CMOS D 通用 I/O 端口 PB0~PB13 CMOS CMOS D 通用 I/O 端口 ISCK0/1 CMOS D 编程 / 调试串行时钟端口 ISDA0/1 CMOS CMOS D 编程 / 调试串行数据端口 AIN0~AIN15 A ADC 模拟通道 0~15 TX0~TX1 CMOS D UART0~UART1 发送输出端口 RX0~RX1 CMOS D UART0~UART1 接收输入端口 E0TX0/1 CMOS D EUART0 发送输出端口 V1.8 25/317

26 管脚名称 输入类型 输出类型 A/D 管脚说明 E0RX0/1 CMOS D EUART0 接收输入端口 E0CK0/1 CMOS D EUART0 内部时钟输出端口 E0IO0/1 CMOS CMOS D EUART0 数据输入 / 输出端口 SCK0~SCK1 CMOS CMOS D SPI0~SPI1 时钟输入 / 输出端口 NSS0~NSS1 CMOS D SPI0~SPI1 片选端口 MISO0~MISO1 CMOS CMOS D SPI0~SPI1 主控输入 / 从机输出端口 MOSI0~MOSI1 CMOS CMOS D SPI0~SPI1 主控输出 / 从机输入端口 SCL0 CMOS CMOS D I2C 时钟输入 / 输出端口 SDA0 CMOS CMOS D I2C 数据输入 / 输出端口 SEG0~SEG27 A LCD Segment 端口 COM0~COM7 A LCD Common 端口 LCD_V1~LCDV4 A LCD 外部偏置电压输入端口 T16N0_0, T16N0_1 T16N1_0, T16N1_1 T16N0/T16N1/T16N2/T16N3 外部时钟输 CMOS CMOS D T16N2_0, T16N2_1 入 / 捕捉输入 / 调制输出端口 T16N3_0, T16N3_1 T32N0 外部时钟输入 / 捕捉输入 / 调制输出 T32N0_0, T32N0_1 CMOS CMOS D 端口 T16N_BK0 T16N_BK1 T16N0/T16N1/T16N2/T16N3 刹车输入端 CMOS D T16N_BK2 口 ( 只能设置一个有效 ) T16N_BK3 AVREFP - - A ADC 外部正向参考电压 AVREFN - - A ADC 外部负向参考电压 MRSTN CMOS - D 芯片主复位, 低电平有效 OSC1I - - A OSC1O - - A 外部晶体振荡器端口 1 OSC2I - - A OSC2O - - A 外部晶体振荡器端口 2 VDD - - P 系统主电源 VSS - - P 系统地 表 1-1 管脚说明 注 1:A = 模拟端口,D = 数字端口,P = 电源 / 地 ; 注 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 都指其对应的三个复用输入或输出信号 V1.8 26/317

27 管脚对照表 PIN NAME (FUN0(D)) FUN1(D) FUN2(D) FUN3(D) FUN4(A) FUN5(A) PB0 T32N0_0 RXD1 T16N3_0 - SEG18 PB1 T32N0_1 TXD1 T16N3_1 - SEG19 PB2 T16N0_0 NSS0 SCL0 - SEG20 PB3 T16N0_1 SCK0 SDA0 - SEG21 PB4 E0RX0/E0IO0 MISO0 - - SEG22 PB5 E0TX0/E0CK0 MOSI0 - AIN0 SEG23 PB6 E0RX1/E0IO1 - - AIN1 SEG24 PB7 E0TX1/E0CK1 - - AIN2 SEG25 PB8/OSC2I - - T32N0_0 AIN3 SEG26 PB9/OSC2O - - T32N0_1 AIN4 SEG27 PB10/OSC1I PB11/ OSC1O PB12/MRSTN PB13 T16N1_0 BUZ - AIN5 - PA0 T16N1_1 - BUZ AVREFN/ AIN6 - PA1 BUZ - - AVREFP/ AIN7 - PA2 T16N_BK0 T32N0_0 NSS1 AIN8 LCD_V1 PA3 T16N_BK1 T32N0_1 SCK1 AIN9 LCD_V2 PA4 SCL0 - MISO1 AIN10 LCD_V3 PA5 SDA0 - MOSI1 AIN11 LCD_V4 PA6 - T16N0_0 - AIN12 COM7 PA7 - T16N0_1 - AIN13 COM6 PA8 RXD1 T16N1_0 - AIN14 COM5 PA9 TXD1 T16N1_1 CLKO0 AIN15 COM4 PA10 T16N2_0 T16N3_0 NSS0 - COM3 PA11 T16N2_1 T16N3_1 SCK0 - COM2 PA12 - E0RX0/E0IO0 MISO0 - COM1 PA13 - E0TX0/E0CK0 MOSI0 - COM0 PA14 NSS0 T16N2_0 - - SEG0 PA15 SCK0 T16N2_1 - - SEG1 PA16 MISO SEG2 PA17 MOSI SEG3 PA18 T16N3_0 SCL0 - - SEG4 V1.8 27/317

28 PIN NAME (FUN0(D)) FUN1(D) FUN2(D) FUN3(D) FUN4(A) FUN5(A) PA19 T16N3_1 SDA0 - - SEG5 PA20 - CLKO1 T16N0_0 - SEG6 PA21 - RTCO T16N0_1 - SEG7 PA22 RXD SEG8 PA23 TXD SEG9 PA24 MOSI1 RXD0 T16N1_0 - SEG10 PA25 MISO1 TXD0 T16N1_1 - SEG11 PA26 SCK1 T16N_BK2_B RXD0 - SEG12 PA27 NSS1 T16N_BK3_B TXD0 - SEG13 PA28 - NSS1 T16N2_0 - SEG14 PA29 - SCK1 T16N2_1 - SEG15 PA30 - MISO1 RXD1 - SEG16 PA31 - MOSI1 TXD1 - SEG17 表 1-2 管脚对照表 注 1:FUN0(D)/FUN1(D)/ FUN2(D)/FUN3(D) 表示数字端口 ;FUN4(A)/ FUN5(A) 表示模拟端口 注 2: 表中的 FUN4(A)/ FUN5(A) 为模拟端口功能, 不通过 GPIO_PAFUNC/GPIO_PBFUNC 控制寄存器选取 注 3: 支持两组编程 / 调试接口, 分别为 ISCK0(PA0), ISDA0(PA1) 和 ISCK1(PA14), ISDA1(PA15) 注 4: 对通信功能模块 UART,SPI 和 I2C, 每个通信管脚支持多个 IO 端口可复用, 并可独立设置, 例如 PA26 端口复用为 RXD0 时, 可以设置 PA27,PA25 和 PA23 端口中的任意一个复用为 TXD0, 作为 UART0 模块的通信管脚 V1.8 28/317

29 第 2 章 系统控制及操作特性 2. 1 系统控制保护 概述由于系统控制寄存器的访问操作会影响整个芯片的运行状态, 为避免误操作导致芯片运行不正常, 芯片提供系统设置保护寄存器 修改系统控制单元前, 必须先关闭写保护, 操作完成后应当重新使能写保护, 使芯片安全运行 寄存器列表和基址参见 : 系统控制单元 (SCU) 寄存器列表 特殊功能寄存器 系统设置保护寄存器 (SCU_PROT) 偏移地址 :00 H 复位值 : _ _ _ B PROT - bit31-1 W PROT bit0 R/W 对 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_FLASHWAIT, SCU_SOFTCFG,SCU_LVDCON,SCU_CCM,SCU_PLLLKCON,SCU_TIMEREN,SCU_TIMERDIS, SCU_SCLKEN0,SCU_SCLKEN1,SCU_PCLKEN,SCU_WAKEUPTIME,SCU_TBLREMAPEN 2. 2 系统电源 结构框图 ADC VDD 2.2V~5.5V LCD Driver VSS LDO Logic & Memory 图 2-1 系统电源结构框图 V1.8 29/317

30 芯片供电电源芯片供电电源为 VDD, 与其对应的是芯片的参考地 VSS VDD 给 GPIO 端口 ADC 以及 LCDC 供电, 内部 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 上电延时定时器, 在 MRSTN 管脚复用为 GPIO 功能时, 或当芯片发生 BOR 掉电复位后, 该延时固定为使能, 与配置位 CFG_PWRTEB 无关 注 2: 芯片上电稳定后, 在工作过程中, 如果发生外部复位,WDT 计数溢出复位, 或软件复位, 则在复位条件撤除后, 芯片会立即退出复位状态, 恢复正常运行状态, 与上图中的各定时器无关 复位时序图 以下分别对芯片上电复位 POR, 掉电复位 BOR, 外部复位时序进行说明, 时序图中的 RESET 信号, 为芯片内部产生的复位信号, 高电平有效 V1.8 30/317

31 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 T flt 工作电压低电压检测阈值 0V RESET Tdly Tclk 注 1:T flt 为电压跌落的滤波时间, 约 250us, 用户不可配置 ; 注 2:Tdly 为上电等待定时时间, 约 140ms, 用户不可配置 ; 注 3:Tclk 为系统时钟稳定时间, 约 1024 个系统主时钟周期, 用户不可配置 图 2-4 掉电复位时序示意图 工作电压 VDD 0V MRSTN RESET Tflt 注 1:Tflt 为外部复位信号滤波时间, 约 250us, 用户不可配置 ; 注 2: 为确保芯片外部复位有效, 推荐 MRSTN 复位电平时间大于 500us 图 2-5 外部复位时序示意图 V1.8 31/317

32 外部复位 MRSTN 参考 VDD D1 DIODE R1 R2 MRSTN 管脚 C1 图 2-6 MRSTN 复位参考电路图 1 注 1: 采用 RC 复位, 其中 47KΩ R1 100KΩ, 电容 C1=(0.1μF),R2 为限流电阻,0.1KΩ R2 1KΩ 注 2: 当 MRSTN 用作外部复位管脚时, 芯片内部固定集成了约 45K 欧姆的上拉电阻, 可以省去上图中的电阻 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_PWRC) 偏移地址 :08H 复位值 : _ _ _xxxxxxxx B CFG_ RST POR_L OST SOFT_ RSTF MR STF WDTR STF BOR F PORRST F POR RCF POR F - bit V1.8 32/317

33 CFG_RST bit8 R/W POR_LOST bit7 R/W SOFT_RSTF bit6 R/W MRSTF bit5 R/W WDTRSTF bit4 R/W BORF bit3 R/W PORRSTF bit2 R/W PORRCF bit1 R/W PORF bit0 R/W 配置字读取标志位 ( 内部测试用, 用户无需关心此位 ) 0: 无读取配置字发生 1: 读取配置字发生 POR 丢失标志位 ( 内部测试用, 使用注意事项参见注 2) 0: 无 POR 丢失 1: 有 POR 丢失软件复位标志位 0: 无软件复位 1: 有软件复位 MRSTN 复位标志位 0: 无 MRSTN 复位 1: 有 MRSTN 复位 WDT 复位标志位 0: 无 WDT 复位 1: 有 WDT 复位 BOR 掉电复位标志位 0: 无 BOR 复位 1: 有 BOR 复位 PORRST 上电复位标志位 ( 内部测试用, 使用注意事项参见注 2) 0: 无 PORRST 复位 1: 有 PORRST 复位 PORRC 复位标志位 0: 无 PORRC 复位 1: 有 PORRC 复位 POR 复位标志位 ( 内部测试用, 用户无需关心此位 ) 0: 无 POR 复位 1: 有 POR 复位 注 1: 电源供电异常时,PORRCF 标志可能会失效 注 2: 上电后用户必须先对 PORRSTF 作清零操作, 否则即使发生 bit3~bit6 对应的复位事件, 也无法置起 bit3~bit6 标志位 注 3: 对 SCU_PWRC 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 V1.8 33/317

34 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 0101:2.8V V1.8 34/317

35 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.8 35/317

36 2. 5 系统低功耗操作模式 概述 配置外设时钟控制寄存器 SCU_PCLKEN, 可分别关闭芯片各个外设功能模块电路的时钟, 使该部分电路功耗降到最低 通过 WFI 指令, 可使芯片进入休眠状态, 配置 SCB_SCR 寄存器的 SLEEPDEEP 位, 可 选择休眠状态为浅睡眠模式或深度睡眠模式 芯片进入休眠状态后, 所有 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 作为时钟源的外设功能模块可正常工作 深度睡眠模式下不访问存储器系统, 相关控制器和内部总线 V1.8 36/317

37 在深度睡眠模式下, 内核处理器的状态和寄存器, 外设寄存器和内部 SRAM 的值都会保持, 端口的逻辑电平也会保持深度睡眠前的状态 在进入深度睡眠模式前, 通过系统唤醒时间控制寄存器 (SCU_WAKEUPTIME) 的深度睡眠模式时钟控制位 (MOSC_EN) 来选择主晶振 XTAL PLL HRC 和时钟滤波器 CLKFLT 等时钟模块是否关闭 选择时钟模块关闭时 ( 即 MOSC_EN=0), 可降低深度睡眠模式下系统的功耗, 但同时也增大了唤醒时所需要的时间 睡眠模式的唤醒芯片可通过以下事件从睡眠状态唤醒, 并执行下一条指令或进入中断处理程序 如果是中断唤醒且该中断已使能, 则唤醒后立即进入中断处理程序 浅睡眠模式唤醒 : - 所有中断均可以唤醒浅睡眠模式 - 芯片复位唤醒浅睡眠模式 深度睡眠模式唤醒 : - 外部端口中断 PINT 可以唤醒深度睡眠模式 - 外部端口中断 KINT 可以唤醒深度睡眠模式 - RTC 中断可以唤醒深度睡眠模式 - LVD 中断可以唤醒深度睡眠模式 - WDT 中断可以唤醒深度睡眠模式 ( 工作于 LRC 时钟源 ) - ADC 中断可以唤醒深度睡眠模式 ( 工作于 LRC 时钟源 ) - 芯片复位唤醒深度睡眠模式 睡眠模式的唤醒时间芯片深度睡眠模式的唤醒时间, 包括系统时钟稳定时间和内部 LDO 电压稳定时间, 具体的唤醒时间, 与系统时钟源和深度睡眠模式下是否使能系统时钟有关 内部 HRC 时钟的起振稳定时间约为 40us, 外部时钟 XTAL 16MHz 振荡器的起振稳定时间约为 5ms, 外部 XTAL 32KHz 的起振稳定时间约为 1.2 秒 内部 HRC 时钟的稳定时间可软件设置 :Tpclk*WAKEUPTIME( 其中 Tpclk 为系统时钟周期,WAKEUPTIME 为唤醒时间控制位 WAKEUPTIME<11:0>), 推荐 HRC 时钟的稳定时间需设置为大于 40us, 否则芯片唤醒后有可能工作异常 内部 LDO 电压稳定时间约为 15us, 为提高深度睡眠模式唤醒后, 芯片运行的可靠性, 在进入深度睡眠模式前, 需将系统时钟切换到内部 HRC 时钟, 并将系统时钟后分频比设置为 1:16 以上, 在深度睡眠模式唤醒后, 再通过软件重新切换回原系统时钟和后分频比设置 例如使用内部 HRC 时钟作为系统时钟时 : 时钟控制位 MOSC_EN=0 时, 深度睡眠模式的唤醒时间最短约为 15us+40us=55us; 时钟控制位 MOSC_EN=1 时, 深度睡眠模式的唤醒时间最短约为 15us( 睡眠前系统时钟后分频为 1:64) 浅睡眠模式无唤醒时间, 与 MOSC_EN 和 WAKEUPTIME 的设置无关, 有唤醒事件时, 芯片立即被唤醒并开始执行程序 V1.8 37/317

38 FLASH 存储器等待功能 FLASH 存储器的访问频率对芯片功耗影响较大, 降低其访问频率, 可降低芯片功耗 可以通过降低系统时钟频率来降低 FLASH 存储器的访问频率, 但这同时也会降低芯片外设模块的工作速率 芯片支持增加 FLASH 存储器等待时间的设置, 在不降低系统时钟频率的前提下, 降低 FLASH 存储器取指令或数据的频率, 从而降低芯片整体功耗 同时 FLASH 存储器支持最高 24MHz 的访问频率, 如果系统时钟的频率超过 24MHz, 则也需要设置 FLASH 存储器等待时间, 否则会导致 FLASH 访问错误 配置 SCU_FLASHWAIT 寄存器的 ACCT<3:0>, 可设定 FLASH 访问的等待时间 FLASH 访问的等待时间, 与芯片支持的系统时钟最高频率的对应关系描述如下 : ACCT<3:0>=0 时, 芯片系统时钟频率最高可为 24MHz; ACCT<3:0>=1 时, 芯片系统时钟频率最高可为 40MHz; 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 访问等待时间寄存器 (SCU_FLASHWAIT) 偏移地址 :20 H 复位值 : _ _ _ B ACCT<3:0> - bit FLASH 读取访问等待时间设置位 0:1TCLK 完成 FLASH 读取 ACCT<3:0> bit3-0 R/W 1:2TCLK 2:3TCLK... F:16TCLK 注 1: 对 SCU_FLASHWAIT 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2:TCLK 时钟周期与芯片系统时钟周期相同 V1.8 38/317

39 2. 6 系统时钟 概述 芯片系统有四个可选时钟源 外部时钟源支持两种模式, 即高速模式 HS 和 XT( 又称为 HOSC,1~20MHz) 和低速模式 LP( 又称为 LOSC,32KHz) 支持 2 组外部晶振管脚可选择 内部高频 RC 时钟源 HRC, 支持 16MHz 时钟频率 内部低频 RC 时钟源 LRC, 支持约 32KHz 时钟频率 内部集成锁相环电路 PLL, 其时钟源输入频率支持 32KHz 或 4MHz( 输入时钟源为 HRC 时, 芯片自动 4 分频获取 4MHz),PLL 输出时钟频率支持 32MHz 或 48MHz 系统时钟支持 1~128 分频 支持 2 组 IO 端口可输出系统时钟频率 外部时钟停振检测, 支持停振后自动切换至 LRC 时钟并产生中断 PLL 失锁检测, 支持 PLL 失锁后自动切换至使用 PLL 前的时钟源并产生中断 支持系统时钟滤波, 提高系统工作稳定性 芯片系统时钟源的选择方式, 见如下描述 : 1) 系统时钟为外部时钟源 XTAL: 在编程界面中设置配置字, 选择晶振管脚, 选择高速 HS/XT 模式或低速 LP 模式 ; 在程序软件中设置 SCU_SCLKEN0 寄存器的 CLK_SEL=2, 设置 SCU_SCLKEN1 寄存器的 XTAL_EN=1, 选择并使能外部振荡器时钟 ; 设置 SCU_SCLKEN1 寄存器的 PLL_EN=0 2) 系统时钟为内部时钟源 HRC 16MHz: 在编程界面中设置配置字, 选择内部时钟 16MHz; 在程序软件中设置 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 V1.8 39/317

40 结构框图 CFG_OSCMD[7:0] CFG_OSC_PIN OSC1I OSC2I OSC1O OSC2O CFG_OSC_PIN 32KHz, 1~20MHz 外部振荡电路 XTAL 16MHz 内部振荡器 HRC CCM PLL 32/48 MHz PLL_MUX 分频器 SYSCLK_DIV<2:0> 2 分频 4 分频 8 分频 SYS_CLK 16 分频 32 分频 64 分频 128 分频 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/UART1 增强型串口 EUART0 模数转换器 ADC LCD 显示驱动模块 异步时钟 异步时钟 OSC_CLK LRC_32K OSC_CLK OSC_CLK LRC_32K LRC_32K OSC_CLK OSC_CLK CLKFLT_BY clkflt PLL_EN 图 2-8 系统时钟电路结构框图 功能说明 外部时钟 XTAL 外部振荡器可通过 PB8 PB9 或 PB10 PB11 其中一组端口串接晶振工作, 可在编程界面中设置芯片配置字进行选择 只要外部振荡器模块使能后 (XTAL_EN=1), 对应的 IO 端口即被用作模拟端口, 禁止其数字输入输出功能 外部时钟源支持两种模式, 即高速模式 HS/XT( 又称为 HOSC, 频率范围为 1~20MHz) 和低速模式 LP( 又称为 LOSC, 频率约为 32KHz) 可在编程界面中设置芯片配置字进行选择, 工作在低速模式时, 建议使用 KHz 晶振, 工作在高速模式 HS 时, 建议使用 5~20MHz 晶振, 工作在高速模式 XT 时, 建议使用 1~4MHz 晶振 当使用外部振荡器时, 需外接匹配电容 XTAL 振荡器电路示意图如下 : V1.8 40/317

41 C1 OSC1I/ OSC2I XCLK_IN C2 RS OSC1O/ OSC2O 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), 否则系统时钟会自动切换至内部低速 LRC 时钟 可通过寄存器位 XTAL_LP, 选择外部时钟振荡器的功耗模式, 该选择位仅在外部时钟处于低速 LP 模式时有效, 在软件检测到外部振荡器稳定后 (XTAL_RDY=1), 可以将振荡器设置为低功耗模式, 降低芯片振荡器电路功耗 当外部时钟为高速 HS 模式时, 振荡器电路会一直保持高功耗模式, 无法设置为低功耗模式 内部高速时钟 HRC 内部高速时钟 HRC 16MHz 频率 全温度范围内 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 LCDC LEDC RTC 等模块使用 对于时钟频率精度要求高的模块不建议使用 LRC 作为时钟源 锁相环 PLL PLL 时钟输入可选择 XTAL(32.768KHz 4MHz 8MHz 16MHz), HRC(16MHz), LRC (32KHz) V1.8 41/317

42 PLL 模块工作时, 通过寄存器位 PLL_REF_SEL<2:0> 选择其输入时钟源, 同时需对所选用的 HRC,LRC 或 XTAL 时钟振荡器进行对应的正确设置 ; 通过寄存器位 PLL_48M_SEL 选择 PLL 模块的倍频系数, 得到对应的时钟输出频率, 具体见下面的详细描述 : 当 PLL_REF_SEL=0/1 时 : 禁止设置 当 PLL_REF_SEL=2 时 :HRC 必须配置为 16MHz( 通过芯片配置字进行配置 ),PLL 输入时钟源为 HRC 16MHz 的 4 分频 当 PLL_48M_SEL=0 时,PLL 倍频系数为 8 倍, PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=3 时 :PLL 输入时钟源为 LRC 32KHz 当 PLL_48M_SEL=0 时,PLL 倍频系数为 1024 倍,PLL 输出时钟为 MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 1536 倍,PLL 输出时钟为 MHz 当 PLL_REF_SEL=4 时 :XTAL 必须配置为 XT 模式, 外接 4MHz 振荡器, PLL 输入时钟源为 XTAL 4MHz 时钟 当 PLL_48M_SEL=0 时,PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=5 时 :XTAL 必须配置为 HS 模式, 外接 8MHz 振荡器, PLL 输入时钟源为 XTAL 8MHz 时钟的 2 分频 当 PLL_48M_SEL=0 时,PLL 倍频系数为 8 倍,PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=6 时 :XTAL 必须配置为 HS 模式, 外接 16MHz 振荡器, PLL 输入时钟源为 XTAL 16MHz 时钟的 4 分频 当 PLL_48M_SEL=0 时,PLL 倍频系数为 8 倍, PLL 输出时钟为 32MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 12 倍,PLL 输出时钟为 48MHz 当 PLL_REF_SEL=7 时 :XTAL 必须配置为 LP 模式, 外接 KHz 振荡器,PLL 输入时钟源为 XTAL KHz 时钟 当 PLL_48M_SEL=0 时,PLL 倍频系数为 1024 倍, PLL 输出时钟为 MHz 当 PLL_48M_SEL=1 时,PLL 倍频系数为 1536 倍,PLL 输出时钟为 MHz 对 PLL 模块, 必须等其所选择的输入时钟源稳定后, 才可以使能 PLL 工作 ( PLL_EN=1), 详情可参考 PLL 操作例程 在 PLL_EN=1 的情况下, 当 MOSC_EN=0, 芯片进入深度睡眠模式时,PLL 会自动关闭, 被唤醒后,PLL 会自动打开 ; 当 MOSC_EN=1, 芯片进入深度睡眠模式时,PLL 不会关闭 PLL 模块支持锁频或失锁中断, 可通过寄存器位 LK_IFS<2:0> 进行选择, 当 LK_IFS=0 或 2 时,PLL 锁频成功时产生中断, 当 LK_IFS=1 或 3 时,PLL 锁频失败时产生中断, 当 LK_IFS=4,5,6 或 7 时,PLL 锁频成功或失败时都可以产生中断 PLL 模块工作时, 建议不旁路 PLL 锁频信号 (PLL_BYLOCK=0), 当 PLL 时钟失锁后, 系统会自动切换至非 PLL 的原始时钟源 ( 由 CLK_SEL 决定 ) 如果旁路 PLL 锁频信号 (PLL_BYLOCK=1), 当 PLL 时钟失锁后, 系统仍使用 PLL 时钟, 可能会导致芯片工作异常 V1.8 42/317

43 芯片支持 2 路 IO 端口输出时钟信号 其中 CLKO0 端口支持高频时钟直接输出,CLKO1 端口支持高频时钟 512 分频后输出 使用时需配置相应的端口复用选择寄存器 GPIO_PAFUNC/GPIO_PBFUNC, 使能管脚的时钟输出功能 当使用高频时钟直接输出时, 需使能管脚大电流驱动模式, 以免输出时钟波形严重失真 注 : 当 PLL 输入时钟源选择为内部 LRC 时钟或外部 32KHz 时钟时, 如果 PLL_48M_SEL=1, 则 PLL 输出时钟频 率高于 48MHz, 略超过芯片主系统时钟频率范围上限, 所以建议此时设置 PLL_48M_SEL=0, 或系统时钟后分 频设置为 1:2 以上 外部时钟停振检测 CCM 外部时钟停振检测模块使能必须同时满足以下条件 : 1. SCU_CCM 寄存器的外部时钟停振检测软件使能位 EN=1 缺省为使能 2. 时钟源必须选择为外部时钟, 即 SCU_SCLKEN0 寄存器的 CLK_SEL=2 例如 : 当 PLL 时钟源输入使用的是外部时钟, 但是以上 2 个条件有任何一个不满足时, 外部时钟停振检测模块不工作 外部时钟停振检测开始工作后, 当检测到外部时钟停振时, 系统时钟会自动切换至 LRC 时钟, 同时会置起中断标志位 但需注意, 当 MOSC_EN=0 时, 因芯片进入深度睡眠模式关闭外部时钟源导致外部时钟停振的情况不会产生时钟停振中断标志位 当芯片进入停振中断后, 需立即操作 CLK_SEL 把系统时钟切换至 LRC 或 HRC, 同时关闭外部时钟振荡器 (XTAL_EN=0); 如果使用 PLL, 则还需要关闭 PLL 模块 (PLL_MUX=0, PLL_EN=0) 当外部时钟停振问题解决后, 必须再次通过软件配置使能外部时钟 详情参见以下外部时钟停振检测中断服务例程 外部时钟停振检测中断服务例程 INT_CCM PROC PUSH {LR} LDR R0,=SCU_SCLKEN0 LDR R1,[R0] LDR R2, = 0XFFFFFFFD ; 系统时钟切换至 LRC ADDS R1,R1,R2 LDR R0,=SCU_SCLKEN1 LDR R1,[R0] LDR R2, = 0XFFFFFFFE ; 关闭外部时钟振荡器 ADDS R1,R1,R 时钟滤波 CLKFLT 芯片支持系统时钟分频前滤波 系统时钟滤波使能操作时, 必须先设置 SCU_WAKEUPTIME 寄存器的 CLKFLT_EN 位为 1 以使能系统时钟滤波器, 然后设置 SCU_SCLKEN0 寄存器的 CLKFLT_BY 0x55 以选用经滤波的系统时钟 当需要关闭时钟滤波时, 必须先旁路 CLKFLT, 即设置 CLKFLT_BY=0x55, 然后再设置 V1.8 43/317

44 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 或其分频时钟作为时钟源的全部停止工作 ( 异步唤醒功能正常工作 ) 特殊功能寄存器 系统时钟控制寄存器 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> - bit CLKOUT1_SEL<1:0> bit27-26 R/W CLKO1 管脚输出选择位 0时钟输出 01: 系统时钟输出 (512 分频 ) 10:LRC 时钟输出 V1.8 44/317

45 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 - 外部 LP 时钟振荡器功耗模式选择位 0: 低功耗 ( 需软件固定设置为 0) 1: 高功耗 ( 仅供测试使用 ) CLK_SEL<1:0> bit1-0 R/W 原始时钟源选择位 00:HRC 时钟 16MHz 01:LRC 时钟 32KHz 10:XTAL 时钟 ( 由配置位 CFG_OSCMD 设置为 HS,XT 或 LP 模式 ) 11:HRC 时钟 16MHz 注 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 使能后, 方可写入 V1.8 45/317

46 注 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 输入时钟源选择位 00设置 001: 禁止设置 010: 内部 HRC 时钟 ( 约 16MHz) 011: 内部 LRC 时钟 ( 约 32KHz) 100: 外部 4MHz 时钟 101: 外部 8MHz 时钟 110: 外部 16MHz 时钟 V1.8 46/317

47 111: 外部 32KHz 时钟 - bit HRC_EN bit1 R/W 内部高速时钟振荡电路使能位 1: 使能 XTAL_EN bit0 R/W 外部时钟振荡电路使能位 1: 使能 注 1: 对 SCU_SCLKEN1 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 如果配置字 CFG_OSCMD 将外部 XTAL 时钟配置为 LP 模式, 则在软件设置 XTAL_EN=1 后, 再由软件设置寄存器 SCU_SCLKEN0 的位 XTAL_LP=0, 将 LP 时钟振荡器设置为低功耗模式 注 3: 在时钟管脚无外接晶振或存在外部干扰的情况下, 外部时钟振荡稳定标志位 XTAL_RDY 可能会被误置 1 注 4: 当 PLL 输入时钟源选择为内部 LRC 时钟或外部 32KHz 时钟时, 如果 PLL_48M_SEL=1, 则 PLL 倍频系数为 1536 倍, 其输出时钟频率高于 48MHz, 略超过芯片主系统时钟频率范围上限, 所以建议此时设置 PLL_48M_SEL=0, 或系统时钟后分频设置为 1:2 以上 外设时钟控制寄存器 (SCU_PCLKEN) 偏移地址 :48 H 复位值 : _ _ _ B I2C0_ EN SPI1_EN SPI0_EN EUART0 _EN UART1_ EN UART0_ EN T32N 0_EN T16N3_ EN T16N2 _EN T16N1_E N T16N0_E N WDT_E N LCD_E N RTC_E N ADC_E N IAP_E N GPIO_EN SCU_EN - bit I2C0_EN bit28 R/W I2C0 时钟使能位 1: 使能 - bit SPI1_EN bit 25 R/W SPI1 时钟使能位 1: 使能 SPI0_EN bit 24 R/W SPI0 时钟使能位 1: 使能 - bit EUART0_EN bit 20 R/W EUART0 时钟使能位 1: 使能 - bit V1.8 47/317

48 UART1_EN bit 17 R/W UART1 时钟使能位 1: 使能 UART0_EN bit 16 R/W UART0 时钟使能位 1: 使能 - bit T32N0_EN bit 12 R/W T32N0 时钟使能位 1: 使能 T16N3_EN bit 11 R/W T16N3 时钟使能位 1: 使能 T16N2_EN bit 10 R/W T16N2 时钟使能位 1: 使能 T16N1_EN bit 9 R/W T16N1 时钟使能位 1: 使能 T16N0_EN bit 8 R/W T16N0 时钟使能位 1: 使能 WDT_EN bit 7 R/W WDT 时钟使能位 1: 使能 LCD_EN bit 6 R/W LCDC 时钟使能位 1: 使能 RTC_EN bit 5 R/W RTC 时钟使能位 1: 使能 ADC_EN bit 4 R/W ADC 时钟使能位 1: 使能 - bit IAP_EN bit 2 R/W FLASH_IAP 时钟使能位 1: 使能 GPIO_EN bit 1 R/W GPIO 时钟使能位 1: 使能 SCU_EN bit 0 R/W SCU 时钟使能位 V1.8 48/317

49 1: 使能 注 1: 对 SCU_PCLKEN 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 使能某外设时钟之前需要先使能 SCU 时钟, 即 SCU_PCLKEN 寄存器 SCU_EN 位设置为 1 以 WDT 时钟配置为例 : LDR R0, =SCU_PCLKEN LDR R1, =0X STR R1, [R0] ; 首先使能 SCU 时钟 LDR R1, =0X STR R1, [R0] ; 使能 SCU 和 WDT 时钟注 3:WDT 时钟使能位 WDT_EN=0 时, 对 WDT 模块的寄存器读写操作被禁止, 但 WDT 计数器仍保持工作状态, 看门狗定时器功能仍有效 注 4: 外设模块时钟关闭后, 与该外设模块对应的所有特殊功能寄存器均保持时钟关闭前的状态, 并且无法进行读写操作 系统唤醒时间控制寄存器 (SCU_WAKEUPTIME) 偏移地址 :4C H 复位值 : _ _ _ B LDOLP_VOSEL<2:0> - FLASHPW_PD CLKFLT_EN MOSC_EN WAKEUPTIME<11:0> - bit LDOLP_VOSEL<2:0> bit18-16 W/R 在深度睡眠模式下,LDO 电压输出选择位 000:1.5V 100:1.4V( 推荐使用该档位 ) 其它 : 仅供测试使用, 请勿设置 - bit FLASHPW_PD bit14 W/R 睡眠模式下 FLASH 电源控制位 0: 开启 1: 关断 ( 仅供测试使用, 实际应用时禁止关断 FLASH 电源 ) CLKFLT_EN bit13 R/W CLKFLT 系统时钟滤波器使能位 1: 使能 CLKFLT 为系统时钟滤波器, 为保证系统稳定性, 在芯片正常工作时, 需保持使能, 在深度睡眠模式下, 可禁止 CLKFLT, 降低芯片功耗 MOSC_EN bit12 R/W 深度睡眠模式时钟控制位 0: 深度睡眠模式下, 自动关闭 HRC PLL XTAL 和时钟滤波器 CLKFLT V1.8 49/317

50 WAKEUPTIME<11:0> bit11-0 R/W 1: 深度睡眠模式下, 使能 HRC PLL XTAL 和时钟滤波器 CLKFLT 唤醒时间控制位 T PCLK * WAKEUPTIME 注 1: 对 SCU_WAKEUPTIME 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2: 对 LDOLP_VOSEL<2:0> 寄存器位, 需软件在芯片初始化时固定设置为 100, 以降低深度睡眠模式下的芯片功耗 注 3: 对 FLASHPW_PD 寄存器位, 需软件固定设置为 0, 禁止写 1, 否则可能会导致芯片工作异常 注 4: 深度睡眠模式下, 当 MOSC_EN 为 1 时,HRC PLL XTAL 和时钟滤波器还必须各自的控制位 HRC_EN PLL_EN XTAL_EN 和 CLKFLT_EN 为 1 时, 才实际被使能 注 5: 唤醒时间控制位 WAKEUPTIME<11:0>, 用于设定在深度睡眠模式下, 被关闭的 HRC PLL 和 XTAL 时钟模块, 在芯片被唤醒后, 能够恢复稳定工作的等待时间, 通常保持为默认时间值, 具体根据芯片在应用系统中的实际工作状况进行调整 ; 如果在深度睡眠模式下, 上述各时钟模块仍保持使能, 则唤醒时间可以设置为 0 外部时钟检测控制寄存器 (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 外部时钟停振中断使能位 V1.8 50/317

51 1: 使能 - bit EN bit0 R/W 外部时钟停振检测使能位 1: 使能 注 : 对 SCU_CCM 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 PLL 锁定中断控制寄存器 (SCU_PLLLKCON) 偏移地址 :30 H 复位值 : _ _ _ B LK_FLAG IF LK_IFS<2:0> IE - bit PLL 锁定检测标志位 R LK_FLAG bit16 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: 使能 注 1: 对 SCU_PLLLKCON 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 注 2:SCU_PLLLKCON 寄存器中的标志位 LK_FLAG=1 或 SCU_SCLKEN1 寄存器中的标志位 PLL_RDY=1 时, 均表示 PLL 锁频成功并稳定 V1.8 51/317

52 系统时钟应用说明 以下操作都已关闭系统保护寄存器 SCU_PROT, 且使能了 SCU_PCLKEN 寄存器的 SCU 时钟使能位 SCU_EN 外部时钟 XTAL 使用外部时钟 XTAL: SWITCH_XTAL PROC PUSH {LR} LDR R0, =SCU_SCLKEN1 LDR R1, [R0] LDR R2, =0X01 ORRS R1, R1, R2 STR R1, [R0] ; 使能 XTAL_EN WAIT_XTAL_FLAG LDR R0, =SCU_SCLKEN1 LDR R1, [R0] LDR R2, =0X TST R1, R2 BEQ WAIT_XTAL_FLAG ; 等待 XTAL_RDY ; 如果系统时钟为外部 LP 低速时钟, 并工作在低功耗模式, 则设置如下 : LDR R0, =SCU_SCLKEN0 LDR R1, =0X02 STRB R1, [R0] ; 设置 LP 低速时钟为低功耗模式 POP ALIGN LTORG ENDP {PC} 内部高速时钟 HRC 使用内部高速时钟 HRC: SWITCH_HRC PROC PUSH {LR} LDR R0, =SCU_SCLKEN1 LDR R1, [R0] LDR R2, =0X02 ORRS R1, R1, R2 STR R1, [R0] ; 使能 HRC_EN WAIT_HRC_FLAG LDR R0, =SCU_SCLKEN1 LDR R1, [R0] V1.8 52/317

53 LDR R2, =0X TST R1, R2 BEQ WAIT_HRC_FLAG ; 等待 HRC_RDY LDR R0,=SCU_SCLKEN0 LDRB R1,[R0] LDR R2, =0XFC ANDS R1, R1, R2 STRB R1, [R0] ; 系统时钟选用 HRC POP {PC} ALIGN LTORG ENDP 内部低速时钟 LRC 使用内部低速时钟 LRC: SWITCH_LRC PROC PUSH {LR} LDR R0,=SCU_SCLKEN0 LDRB R1,[R0] LDR R2, =0XFC ANDS R1, R1, R2 LDR R2,=0X01 ORRS R1,R1,R2 STRB R1, [R0] ; 系统时钟选用 LRC POP {PC} ALIGN LTORG ENDP 锁相环 PLL 使用 PLL 前必须先使能 PLL 输入源时钟使能位, 且等待输入时钟源稳定 以 PLL 输入时钟选择为外部 16MHz 时钟, 输出时钟为 48MHz 为例 : SWITCH_XTAL16M_PLL48M PROC PUSH {LR} LDR R0, =SCU_SCLKEN1 LDR R1, [R0] LDR R2, =0X01 ORRS R1, R1, R2 STR R1, [R0] ; 使能 XTAL_EN, 注意外接振荡器必须是 16MHz WAIT_XTAL_FLAG LDR R0, =SCU_SCLKEN1 LDR R1, [R0] V1.8 53/317

54 LDR R2, =0X TST R1, R2 BEQ WAIT_XTAL_FLAG ; 等待 XTAL_RDY LDR R0,=SCU_SCLKEN1 LDR R1,=0X1E ; 配置 PLL 输入时钟选择 STRB R1,[R0,#0X01] ;PLL 锁频信号不旁路, 使能 PLL 模块 WAIT_PLL_FLAG LDR R0, =SCU_SCLKEN1 LDR R1, [R0] LDR R2, =0X TST R1, R2 BEQ WAIT_PLL_FLAG ; 等待 PLL_RDY LDR R0, =SCU_SCLKEN0 LDR R1, [R0] LDR R2, =0X0100 ORRS R1, R1, R2 STR R1, [R0] ; 系统时钟选用 PLL 倍频时钟 POP {PC} ALIGN LTORG ENDP 关闭 PLL: POWER_OFF_PLL PROC PUSH {LR} LDR R0, =SCU_SCLKEN0 LDRB R1, [R0, #0X01] LDR R2, =0XFE ANDS R1, R1, R2 STRB R1, [R0, #0X01] ; 系统时钟选用原始时钟 LDR R0, =SCU_SCLKEN1 LDRB R1, [R0, #0X01] LDR R2, =0X0F ANDS R1, R1, R2 STRB R1, [R0, #0X01] ; 关断 PLL 模块 POP {PC} ALIGN LTORG ENDP 时钟滤波 CLKFLT 使用 CLKFLT: POWER_ON_CFT PROC PUSH {LR} V1.8 54/317

55 LDR R0, =SCU_WAKEUPTIME LDRB R1, [R0, #0X01] LDR R2, =0X02 ORRS R1, R1, R2 STRB R1, [R0, #0X01] ; 使能 CLKFLT_EN LDR R0, =SCU_SCLKEN0 LDRB R1, =0X55 STRB R1, [R0, #0X02] ; 系统时钟选用滤波后时钟 POP {PC} ALIGN LTORG ENDP 关闭 CLKFLT: POWER_OFF_CFT PROC PUSH {LR} LDR R0, =SCU_SCLKEN0 LDRB R1, =0X00 STRB R1, [R0, #0X02] ; 系统时钟选用滤波前时钟 LDR R0, =SCU_WAKEUPTIME LDRB R1, [R0, #0X01] LDR R2, =0XFD ANDS R1, R1, R2 STRB R1, [R0, #0X01] ; 关闭 CLKFLT_EN POP {PC} ALIGN LTORG ENDP V1.8 55/317

56 2. 7 中断和异常处理 中断和异常 Cortex-M0 内核支持嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller), 具体功能如下 : 支持中断嵌套支持中断向量支持中断优先级动态调整支持中断可屏蔽 对 Cortex-M0 内核来说, 打断程序正常执行流程的事件均称之为异常, 中断也是其中一种 异常 为便于理解, 本文档将内核的中断等事件称为异常, 将外设模块的中断称为中断 异常 / 中断优先级操作说明 : 操作类型抢占末尾连锁返回迟来 描述产生条件 :ISR 或线程正在执行时, 出现新的优先级更高的异常 / 中断 操作结果 : 如果当前处于线程状态, 则产生异常 / 中断挂起中断 ; 如果当前处于 ISR 状态, 则产生中断嵌套, 处理器自动保存工作状态并压栈 产生条件 : 当前 ISR 执行结束, 正在返回时, 出现新的优先级更高的异常 / 中断 操作结果 : 跳过出栈操作, 处理新的异常 / 中断 产生条件 : 当前 ISR 执行结束, 正在返回时, 没有出现新的优先级更高的异常 / 中断 操作结果 : 执行出栈操作, 并将处理器状态恢复为进入 ISR 之前的状态 产生条件 : 当前 ISR 执行开始, 正在保存时, 出现新的优先级更高的异常 / 中断 操作结果 : 处理器转去处理优先级更高的异常 / 中断 表 2-2 异常 / 中断优先级操作类型说明说明表 注 1: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.8 56/317

57 编号 类型 优先级 简介 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 Reserved 预留 31 IRQ15 Reserved 预留 V1.8 57/317

58 编号 类型 功能 说明 32 IRQ16 WDT 中断 看门狗中断 33 IRQ17 RTC 中断 实时时钟中断 34 IRQ18 KINT 中断 外部按键输入中断 35 IRQ19 ADC 中断 模数转换中断 36 IRQ20 Reserved 预留 37 IRQ21 LVD 中断 低电压检测中断 38 IRQ22 PLLLK 中断 PLL 失锁中断 39 IRQ23 UART0 中断 UART0 中断 40 IRQ24 UART1 中断 UART1 中断 41 IRQ25 EUART0 中断 EUART0 中断 42 IRQ26 Reserved 预留 43 IRQ27 SPI0 中断 SPI0 中断 44 IRQ28 SPI1 中断 SPI1 中断 45 IRQ29 I2C0 中断 I2C0 中断 46 IRQ30 Reserved 预留 47 IRQ31 CCM 中断 外部振荡器停振检测中断 表 2-4 IRQ 分配列表 中断向量表的重映射 Cortex-M0 内核本身并不支持中断向量表的重映射, 在 HR8P506 芯片中有两个特殊功能寄存器 中断向量表重映射使能寄存器 和 中断向量表偏移寄存器, 可以支持中断向量表的重映射 具体的使用方式可参考 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 不可屏蔽中断使能位 V1.8 58/317

59 1: 使能 注 1: 对 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> 只读, 不可写, 且读取时返回全零 注 : 该地址为起始地址是有要求的 : 必须先求出系统中共有多少个向量, 再把这个数字向上增大到是 2 的整次幂, 而起始地址必须对齐到后者的边界上 如果一共有 32 个中断, 则共有 32+16( 系统异常 )=48 个向量, 向上增大到 2 的整次幂后值为 64, 因此地址值必须能被 64 4=256 整除, 从而合法的起始地址可以是 :0x000, 0x100,0x200 等 V1.8 59/317

60 硬件错误标志寄存器 (SCU_FAULTFLAG) 偏移地址 :0C H 复位值 : _ _ _ B FLAG2 FLAG1 FLAG0 - bit 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 程序存储器的指令时, 读到的值为 FFFFFFFF H 注 2: 清除硬件错误标志位时, 需要设置 SCU_PROT 寄存器, 关闭写保护 以下 NVIC 寄存器列表及基址参见 : 中断控制器 (NVIC) 寄存器列表 IRQ0~31 置中断请求使能寄存器 (NVIC_ISER) 偏移地址 :00 H 复位值 : _ _ _ B SETENA<31:16> SETENA<15:0> SETENA<31:0> bit31-0 R/W IRQx 使能位 0: 中断使能无效 1: 中断使能有效软件写 1 使能中断请求, 写 0 无效 注 : 对 NVIC_ISER 寄存器中的各 IRQx 使能位, 写 0 无效, 写 1 才使能中断请求 ; 读操作时, 实际是读取 IRQx 中断使能的状态, 读取的值为 1 表示中断使能有效, 为 0 表示中断使能无效 V1.8 60/317

61 IRQ0~31 清中断请求使能寄存器 (NVIC_ICER) 偏移地址 :80 H 复位值 : _ _ _ B CLRENA <31:16> CLRENA <15:0> CLRENA<31:0> bit31-0 R/W IRQx 禁止位 0: 中断禁止无效 1: 中断禁止有效软件写 1 禁止中断请求, 写 0 无效 注 : 对 NVIC_ICER 寄存器中的各 IRQx 禁止位, 写 0 无效, 写 1 才禁止中断请求 ; 读操作时, 实际是读取 IRQx 中 断禁止的状态, 读取的值为 1 表示中断禁止有效, 为 0 表示中断禁止无效 IRQ0~31 置中断挂起寄存器 (NVIC_ISPR) 偏移地址 :100 H 复位值 : _ _ _ B SETPEND <31:16> SETPEND <15:0> SETPEND<31:0> bit31-0 R/W 置 IRQx 挂起位 0: 中断未挂起 1: 中断挂起软件写 1 挂起中断, 写 0 无效 注 : 对 NVIC_ISPR 寄存器中的各 IRQx 挂起位, 写 0 无效, 写 1 才挂起中断 ; 读操作时, 实际是读取 IRQx 中断挂起的状态, 读取的值为 1 表示中断挂起, 为 0 表示中断未挂起 V1.8 61/317

62 IRQ0~31 清中断挂起寄存器 (NVIC_ICPR) 偏移地址 :180 H 复位值 : _ _ _ B CLRPEND <31:16> CLRPEND <15:0> CLRPEND<31:0> bit31-0 R/W 清 IRQx 挂起位 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> 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 V1.8 62/317

63 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 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 优先级设置位 V1.8 63/317

64 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 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> V1.8 64/317

65 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 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 V1.8 65/317

66 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 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 V1.8 66/317

67 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.8 67/317

68 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: 无效 V1.8 68/317

69 1: 置 SysTick 异常挂起 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> ENDIANNESS SYSRESET REQ VECTCLR 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.8 69/317

70 系统控制寄存器 (SCB_SCR) 偏移地址 :10 H 复位值 : _ _ _ B SEVONP END SLEEP DEEP SLEEP 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.8 70/317

71 系统处理程序优先级寄存器 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.8 71/317

72 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 位清零, 写操作不会触发 SysTick 异常事件 访问 SysTick 寄存器时, 需使用字操作方式 配置 SysTick 计数器的步骤如下 : 1) 设置计数器重装值寄存器 SYST_RVR 2) 清除计数器当前值寄存器 SYST_CVR 3) 设置控制和状态寄存器 SYST_CSR SysTick 寄存器列表和基址参见 : 系统定时器 (SYSTICK) 寄存器列表 V1.8 72/317

73 特殊功能寄存器 SYSTICK 控制和状态寄存器 (SYST_CSR) 偏移地址 :10 H 复位值 : _ _ _ B COUNTFLAG CLKSOURCE TICKINT ENABLE bit31-17 COUNTFLAG bit16 R SYSTICK 递减计数到零的标志位 0; 未计数到 0 1: 计数到 0 该位读操作后清零, 或写 SYST_CVR 寄存器清零 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 分频后的时钟, 频率为 F HCLK/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.8 73/317

74 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.8 74/317

75 2. 10 配置字软件控制 在芯片配置字的 CFG_BORV<1:0> 为 11 时, 可通过软件设置寄存器 SCU_SOFTCFG 来控制 BOR 电压点, 电源电压低于 BORV<3:0> 设定的电压时, 将产生掉电复位 系统配置软件控制寄存器 (SCU_SOFTCFG) 偏移地址 :24 H 复位值 : _ _ _ B BORV<3:0> - bit BORV<3:0> bit3-0 R/W BOR 电压点选择 ( 仅在配置字 CFG_BORV=11 时有效 ) 0000:1.7V 0001:2.0V 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 注 1: 对 SCU_SOFTCFG 寄存器进行写操作前, 需要设置 SCU_PROT 寄存器, 关闭写保护 ; 注 2: 因软件设置 BOR 电压点, 需要芯片执行程序后才能设置, 如果应用系统对芯片复位可靠性要求较高, 则需避 免使用 1.7V 电压点, 同时推荐通过配置字 CFG_BORV 设置 BOR 电压点 V1.8 75/317

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

77 SCU_TIMERDIS 使能控制寄存器 (SCU_TIMERDIS) 偏移地址 :38 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.8 77/317

78 第 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 分为两个分区 :INFO0 区和 INFO1 区 INFO0 信息区用于存储芯片配置字 CFG_WORD0,CFG_WORD1,CFG_WORD2 - 支持编程器可读写 INFO1 信息区包含 96 位芯片唯一识别码 UID - 芯片唯一识别码 UID 出厂时已固定, 无法更改, 程序只读 芯片配置字芯片配置字位于 FLASH 存储器的 INFO0 信息区, 用户可在 ISP 编程时进行设置 芯片的各种功能配置由芯片配置字和各功能相关寄存器共同设置完成 芯片配置字包括外部 XTAL 振荡器工作模式的选择 WDT 使能控制 BOR 电压选择等 V1.8 78/317

79 配置字名称 CFG_WORD0 地址 H - bit4-0 - CFG_OSC_PIN bit5 XTAL 晶振管脚选择位 0: 分布在 PB8,PB9 1: 分布在 PB10,PB11( 默认 ) INTOSC_SEL bit6 内部 HRC 时钟频率选择位 0:16MHz( 默认,HRC 时钟频率为 16MHz) 1: 其它 ( 内部测试使用, 禁止设置为 1) CFG_PWRTEB bit7 上电 140ms 延时使能位 0: 使能 ( 默认 ) 1: 禁止仅在将 MRSTN 管脚作为外部复位 (CFG_MRSTN 00) 时, 该配置位才有效, 推荐设置为使能 CFG_BORV bit 9-8 掉电复位电压选择位 00:3.7V 01:2.5V 10:2.1V 11:1.7V( 默认, 可通过寄存器 SCU_SOFTCFG, 进行软件设置掉电复位电压 ) - bit10 - CFG_MRSTN bit MRSTN 管脚复用配置位 00:GPIO 功能其它 :MRSTN 功能 ( 默认 ) DEBUG_S bit13 SWD 调试管脚选择位 0:PA14 和 PA15 端口作为调试管脚 1:PA0 和 PA1 端口作为调试管脚 ( 默认 ) CFG_DEBUG bit SWD 调试模式使能位 0x: 禁止 10: 使能 ( 默认 ) 由 DEBUG_S 配置位所选定的 IO 管脚被强制作为 SWD 调试端口, 用户程序对该 IO 管脚的控制无效 11: 禁止 注 1: 对配置位 CFG_PWRTEB, 仅在将 MRSTN 管脚作为外部复位 (CFG_MRSTN 00) 时, 该配置位才有效, 推荐用户设置为上电延时使能 (CFG_PWRTEB=0), 只有在应用系统特别要求芯片上电后快速进入工作状态, 并且系统供电电源稳定可靠的条件下, 才可考虑禁止上电延时 注 2: 当 MRSTN 管脚用作外部复位管脚时, 芯片内部固定集成了约 45K 欧姆的弱上拉电阻 注 3: 对上电 140ms 延时, 在 MRSTN 管脚复用为 GPIO 功能时, 或当芯片发生 BOR 掉电复位后, 该延时固定为使能, 与配置位 CFG_PWRTEB 无关 注 4: 在对 Flash 程序加密编程时, 必须要禁止 CFG_DEBUG 位, 否则加密无效, 编程工具将提示错误 注 5: 如果应用系统对芯片复位可靠性要求较高, 则推荐通过配置字 CFG_BORV 设置 BOR 电压点为 2.1V,2.5V 或 3.7V, 避免设置为 1.7V 及通过软件设置 BOR 电压点 V1.8 79/317

80 配置字名称 CFG_WORD1 地址 C H - bit 0 - CFG_WDTEN bit1 WDT 硬件看门狗使能位 ( 默认 ) 1: 使能 (WDT 计数时钟源固定为内部 LRC 时钟 ) WDTINTEN bit 2 WDT 硬件看门狗中断使能位 ( 仅在 CFG_WDTEN=1 时有效 ) ( 默认 ) 1: 使能 - bit WDTRL bit7-5 上电复位 WDT 重载值选择位 ( 仅在 CFG_WDTEN=1 时有效 ) 000:0x0000_0200(WDT 计数溢出时间约 16ms) 001:0x0000_0400(WDT 计数溢出时间约 32ms) 010:0x0000_1000(WDT 计数溢出时间约 128ms) 011:0x0000_4000(WDT 计数溢出时间约 512ms) 100:0x0000_8000(WDT 计数溢出时间约 1s) 101:0x0001_0000(WDT 计数溢出时间约 2s) 110:0x0002_0000(WDT 计数溢出时间约 4s) 111:0x0004_0000(WDT 计数溢出时间约 8s)( 默认 ) FWPS bit12-8 FLASH 地址单元写保护控制位 00000: 地址单元 (0000_0000 H ~0000_07FF H ) 写保护 00001: 地址单元 (0000_0000 H ~0000_0FFF H ) 写保护 00010: 地址单元 (0000_0000 H ~0000_17FF H ) 写保护 00011: 地址单元 (0000_0000 H ~0000_1FFF H ) 写保护 10000: 地址单元 (0000_0000 H ~0000_87FF H ) 写保护 1xxx1: 地址单元 (0000_0000 H ~0000_8FFF H ) 写保护 ( 默认 ) FWPEB bit13 FLASH 自编程操作 (IAP) 写保护区使能位 0: 使能 1: 禁止 ( 默认 ) - bit 注 1: 写保护区使能后, 位于写保护区的地址单元, 不支持 IAP 擦除和编程操作 注 2: 在 SWD 调试模式下, 需要禁止 WDT, 否则在调试过程中,WDT 会始终保持工作, 可能会产生计数溢出复 位, 导致芯片调试异常 配置字名称 CFG_WORD2 地址 H - bit7-0 - CFG_OSCMD bit15-8 XTAL 振荡器工作模式选择位 0x2C: 高速 HS 模式 (5~20MHz)( 默认 ) 0x48: 高速 XT 模式 (1~4MHz) V1.8 80/317

81 0xF0: 低速 LP 模式 (32KHz) 注 : 若应用系统中需使用 LP 模式晶振, 在芯片配置字已设置低速 LP 模式后, 还需依次进行软件设置 XTAL_EN=1 和 XTAL_LP=0, 使晶振工作在低功耗模式下, 否则外部 LP 晶振可能起振异常 芯片唯一识别码 96 位芯片唯一识别码 UID 位于 FLASH 存储器的 INFO1 信息区, 以 byte 为单位存放, 分为 12 个 bytes, 用户程序可读 UID11~UID0 各字节描述如下 地址 芯片唯一识别码 (UID11~UID0) D7 H (UID11) ~ D0 H (UID4), C6 H (UID3), C4 H (UID2) ~ C2 H (UID0) UID11 Bits 95~88 芯片唯一识别码 UID11, 字节单元地址 D7 H UID10 Bits 87~80 芯片唯一识别码 UID10, 字节单元地址 D6 H UID9 Bits 79~72 芯片唯一识别码 UID9, 字节单元地址 D5 H UID8 Bits 71~64 芯片唯一识别码 UID8, 字节单元地址 D4 H UID7 Bits 63~56 芯片唯一识别码 UID7, 字节单元地址 D3 H UID6 Bits 55~48 芯片唯一识别码 UID6, 字节单元地址 D2 H UID5 Bits 47~40 芯片唯一识别码 UID5, 字节单元地址 D1 H UID4 Bits 39~32 芯片唯一识别码 UID4, 字节单元地址 D0 H UID3 Bits 31~24 芯片唯一识别码 UID3, 字节单元地址 C6 H UID2 Bits 23~16 芯片唯一识别码 UID2, 字节单元地址 C4 H UID1 Bits 15~8 芯片唯一识别码 UID1, 字节单元地址 C3 H UID0 Bits 7~0 芯片唯一识别码 UID0, 字节单元地址 C2 H 程序区 FLASH 芯片内部的程序存储器 FLASH 总容量为 36K 字节, 地址范围为 0000_0000 H ~0000_8FFF H, 共分 36 页, 每页 1K 字节 FLASH 存储器支持至少 10 万次擦写次数,10 年以上的数据保持时间 芯片支持通过 IAP 模块对程序存储器 FLASH 进行编程 页擦除操作, 其中字地址单元编程时间约为 20us, 页擦除时间约为 2ms 芯片支持在 SWD 调试模式下对 Flash 进行编程 擦除 读取等操作, 对 SWD 调试模式, 需在 ISP 编程时通过配置字 CFG_DEBUG 和 DEBUG_S 使能并选择调试端口 自编程操作 (IAP) 芯片内部 FLASH 存储器, 支持应用中自编程操作 IAP(In-Application Programming) 写保护区使能后, 位于写保护区的 FLASH 存储器地址单元, 不支持 IAP 擦除和编程操作 可通过配置字 FWPEB 使能 FLASH 写保护区, 通过配置字 FWPS 选择写保护区地址范围 IAP 概述 支持 FLASH 数据保护, 进行 IAP 操作前需先进行解锁, 去除相关寄存器的写保护 V1.8 81/317

82 支持程序存储器 FLASH 全擦除模式 ( 仅在 SWD 调试时有效 ) 和页擦除模式 支持字编程模式, 每个字包含 4 个字节 IAP 操作过程中可软件禁止全局中断 ; 也可使能中断, 将中断向量表和中断服务程序 (ISR) 复制到 SRAM, 通过设置中断向量表重映射使能寄存器 SCU_TBLREMAPEN 和中断向量表偏移寄存器 SCU_TBLOFF 可调用 SRAM 中的中断服务程序 (ISR) 来响应中断 IAP 操作进入擦除或编程状态后,IAP 自动上锁, 进入 FLASH 保护状态, 下次 IAP 操作前需重新解锁 IAP 自编程操作程序需放在芯片的 SRAM 中执行, 并在程序中对 FLASH 擦除或编程结果进行校验 芯片内置 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-2 IAP 操作请求流程图 IAP 全擦除操作流程 IAP 全擦除操作只在芯片 SWD 调试模式使能时有效, 即将配置字 CFG_DEBUG 配 V1.8 82/317

83 置为 DEBUG 使能时有效 开始 设置 IAP_UL, 对 IAP 解锁 设置 IAP_TRIG 为 0x000051AE, 选择全擦除模式 BSY = 1? Y N 是否超时? N ERASE_END =1? Y 结束 N Y 出错处理 图 3-3 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-4 IAP 页擦除操作流程图 IAP 编程操作流程 编程目标单元地址可通过 IAPCA 寄存器设置 完成目标单元编程后,IAPCA 自动 +1, 对地址连续的多字编程, 无需再修改 IAPCA 寄存器 ; 由于 IAPCA 只在当前页中进行单 元寻址, 跨页编程时, 必须重新填写 IAPPA, 如指定下一页首地址 V1.8 83/317

84 开始 设置 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 出错处理 Y Y N 连续编程下一单元? N 完成? Y 结束 图 3-5 IAP 编程操作流程图 IAP 自编程硬件固化模块芯片内置 IAP 自编程固化模块, 由硬件电路实现, 在 IAP 自编程操作程序中可以调用这些自编程固化模块, 以减少 SRAM 中的 IAP 操作代码量 IAP 自编程硬件固化模块支持单页擦除, 单字编程和多字编程, 分别由如下 IAP 操作函数来实现 : 单页擦除函数 (IAP_PageErase) - 入口地址 : 保存在 0x 单元内 - 参数输入 :R0- 擦除页的首地址 - 参数输出 :R0- 函数执行状态 (R0=1 为成功,R0=0 为失败 ) 单字编程函数 (IAP_WordProgram) - 入口地址 : 保存在 0x 单元内 - 参数输入 :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 为失败 ) 单字编程函数和多字编程函数流程图可参见图 3-5 IAP 编程操作流程图 对单字编程函数忽略图中的 连续编程下一单元 判断分支 V1.8 84/317

85 特殊功能寄存器 IAP 解锁寄存器 (IAP_UL) 偏移地址 :10 H 复位值 : _ _ _ B UL<31:16> UL<15:0> UL<31:0> bit31-0 R/W IAP 解锁 : 写入 0x0000_00A5; 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 FLASH_FAIL FLASH_ACK FLASH_REQ RST EN - bit FLASH_FAIL bit7 R IAP 访问 FLASH 地址失败标志位 0:IAP 未访问 FLASH 地址保护区 1:IAP 访问 FLASH 地址保护区, 访问失败 - bit6 R/W - 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: 复位 V1.8 85/317

86 EN bit0 R/W IAP 使能位 1: 使能 注 : 对 IAP_CON 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 IAP 地址寄存器 (IAP_ADDR) 偏移地址 :04 H 复位值 : _ _ _ B IFREN IAPPA<5:0> IAPCA<7:0> - bit IFREN bit20 R/W IAP 信息区使能 0: 不允许 IAP 操作 FLASH_INFO 区 1: 允许 IAP 操作 FLASH_INFO 区 - bit IAPPA<5:0> bit15-10 R/W IAP 页地址 ( 擦除模式 ) 1)0x00~0x23: 共 36 页, 对应的地址范围 0x0000_0000~0x0000_8FFF 2) 操作 FLASH INFO 区时,IAPPA 无效 IAPCA<7:0> bit9-2 R/W IAP 单元地址 1) 擦除模式下, 单元地址无效 2) 编程模式下 : 操作非 FLASH INFO 区时,IAPCA 为当前页中被编程单元的相对地址, 每页 256 个单元, 每单元 4 个字节 编程前需保证该单元已经被擦除操作 FLASH INFO 区时, 仅 IAPCA[5:0] 有效,INFO 区共包括 64 个单元, 每单元 4 个字节 - bit 注 1: 对 IAP_ADDR 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 注 2: 完成页擦除后,IAPPA 自动 +1; 注 3: 完成单元编程后,IAPCA 自动 +1; 由于 IAPCA 只在当前页中进行单元寻址, 所以跨页编程时, 必须重新填写 IAPPA, 指定下一页地址 V1.8 86/317

87 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 重新上锁 ) 0x0000_51AE: 全擦除 ( 仅在 SWD 调试时有效 ) 0x0000_5EA1: 页擦除 ( 擦除 INFO 区时, 必须先执行全擦除操作, 否则无效 ) 0x0000_5DA2: 编程模式其它 : 无操作 ( IAP 完成后, 硬件自动更改为无操作 ) 注 : 对 IAP_TRIG 寄存器进行写操作前, 需要先设置 IAP_UL 寄存器, 对 IAP 解锁, 去除写保护 IAP 状态寄存器 (IAP_STA) 偏移地址 :14 H 复位值 : _ _ _ B TIMEOUT_ERR PROG_END ERASE_END BSY - bit TIMEOUT_ERR bit3 R/W IAP 超时错误标志位 V1.8 87/317

88 PROG_END bit2 R/W ERASE_END bit1 R/W BSY bit0 R 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除 1:IAP 操作超时, 硬件自动置 1 IAP 编程结束标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除 1: 当前单元编程完成, 硬件自动置 1 IAP 页擦除结束标志位 0: 写 0 清除, 触发 IAP_TRIG 自动清除, 或 IAP 软件复位清除 1: 当前页擦除完成, 硬件自动置 1 IAP 工作状态位 0: 空闲,IAP 软件复位可将该位清零 1:IAP 操作正在进行中 注 :IAP_STA 寄存器的 TIMEOUT_ERR 为 1 时, 硬件自动清零 IAP_CON 寄存器的 EN 位 V1.8 88/317

89 3. 3 数据存储器 (SRAM) 芯片内部集成 8K 字节数据存储器 SRAM, 地址范围为 2000_0000 H ~2000_1FFF H SRAM 地址映射 0xFFFF_FFFF System 0x3FFF_FFFF 0xE000_0000 0xDFFF_FFFF Reserved SRAM bitband 0xA000_0000 0x9FFF_FFFF Reserved 0x2200_0000 0x21FF_FFFF 0x6000_0000 0x5FFF_FFFF Peripheral 0x4000_0000 0x3FFF_FFFF SRAM 0x2000_0000 0x1FFF_FFFF FLASH 0x0000_0000 Reserved 0x2000_2000 0x2000_1FFF 8K Bytes SRAM 0x2000_0000 图 3-6 SRAM 映射图 SRAM 位带扩展 SRAM 支持位带扩展, 可使用普通的加载和存储指令对单比特进行读写操作 通过位带扩展, 除可在起始地址为 0x2000_0000 的空间访问 SRAM 外, 还可在起始地址为 0x2200_0000 的位带扩展区以单比特方式访问 SRAM 位带扩展区把每个比特扩展为一个 32-bit 的字, 通过访问该区域的字可达到访问原始比特的目的 对于 SRAM 的某个 bit, 如果它所在字节地址为 A, 位序号为 N(0 N 7), 则该 bit 在 SRAM 位带扩展后的地址为 : AliasAddress_A_N = 0x2200_ ( A 0x2000_0000) x 32 + N x 4 V1.8 89/317

90 3. 4 外设寄存器 外设寄存器映射 Peripheral Device Peripheral bitband 0x4200_0000~0x5FFF_FFFF 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 Reserved I2C0 Reserved SPI1 SPI0 Reserved EUART0 UART1 UART0 Reserved T32N0 Reserved T16N3 T16N2 T16N1 T16N0 WDT LCD/LED RTC ADC0 Reserved Flash Interface GPIO SCU 图 3-7 外设存储器分配示意图 0x4000_9400~0x41FF_FFFF 0x4000_9000~0x4000_93FF 0x4000_8C00~0x4000_8FFF 0x4000_8400~0x8400_8BFF 0x4000_8000~0x4000_83FF 0x4000_7400~0x4000_7FFF 0x4000_7000~0x4000_73FF 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_2800~0x4000_2BFF 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 寄存器区域为只读, 读出值为 0000_0000 H 外设寄存器位带扩展外设寄存器支持位带扩展, 可使用普通的加载和存储指令对单比特进行读写操作 通过位带扩展, 除可在 0x4000_0000 起始的空间访问外设外, 还可在起始地址为 0x4200_0000 的位带扩展区以单比特方式访问外设寄存器 位带扩展区把每个比特扩展为一个 32-bit 的字, 通过访问这些字可达到访问原始比特的目的 对于外设寄存器的某一位, 如果它所在字节地址为 A, 位序号为 N(0 N 7), 则该位在外设寄存器位带扩展后的地址为 : V1.8 90/317

91 AliasAddress_A_N = 0x4200_ ( A 0x4000_0000) x 32 + N x 4 GPIO 端口寄存器 GPIO_PADATABSR,GPIO_PADATABCR,GPIO_PADATABRR, 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 寄存器也不支持位带扩 展访问 系统控制单元 (SCU) 寄存器列表 系统控制单元 (SCU) 寄存器名称 寄存器偏移地址 寄存器描述 SCU 基地址 :4000_0000 H SCU_PROT 0000 H 系统设置保护寄存器 SCU_NMICON 0004 H 不可屏蔽中断控制寄存器 SCU_PWRC 0008 H 复位寄存器 SCU_FAULTFLAG 000C 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_TIMEREN 0034 H TIMER 使能控制寄存器 SCU_TIMERDIS 0038 H TIMER 关停控制寄存器 SCU_SCLKEN H 系统时钟控制寄存器 0 SCU_SCLKEN H 系统时钟控制寄存器 1 SCU_PCLKEN 0048 H 外设时钟控制寄存器 SCU_WAKEUPTIME 004C H 系统唤醒时间控制寄存器 SCU_TBLREMAPEN 0060 H 中断向量表重映射使能寄存器 SCU_TBLOFF 0064 H 中断向量表偏移寄存器 GPIO 寄存器列表 GPIO 寄存器列表寄存器名称 寄存器偏移地址 寄存器描述 GPIO 基地址 :4000_0400 H GPIO_PAPORT 0000 H PA 端口状态寄存器 GPIO_PADATA 0004 H PA 端口数据寄存器 GPIO_PADATABSR 0008 H PA 输出置位寄存器 GPIO_PADATABCR 000C H PA 端口输出清零寄存器 GPIO_PADATABRR 0010 H PA 端口输出翻转寄存器 V1.8 91/317

92 GPIO 寄存器列表寄存器名称 寄存器偏移地址 寄存器描述 GPIO_PADIR 0014 H PA 端口方向控制寄存器 GPIO_PADIRBSR 0018 H PA 端口方向置位寄存器. GPIO_PADIRBCR 001C H PA 端口方向清零寄存器 GPIO_PADIRBRR 0020 H PA 端口方向翻转寄存器 GPIO_PAFUNC H PA[7:0] 端口复用选择寄存器 GPIO_PAFUNC H PA[15:8] 端口复用选择寄存器 GPIO_PAFUNC2 002C H PA[23:16] 端口复用选择寄存器 GPIO_PAFUNC H PA[31:24] 端口复用选择寄存器 GPIO_PAINEB 0034 H PA 端口输入控制寄存器 GPIO_PAODE 0038 H PA 端口开漏控制寄存器 GPIO_PAPUE 003C H PA 端口弱上拉使能寄存器 GPIO_PAPDE 0040 H PA 端口弱下拉使能寄存器 GPIO_PADS 0044 H PA 端口驱动电流控制寄存器 GPIO_PBPORT 0080 H PB 端口状态寄存器 GPIO_PBDATA 0084 H PB 端口数据寄存器 GPIO_PBDATABSR 0088 H PB 端口输出置位寄存器 GPIO_PBDATABCR 008C H PB 端口输出清零寄存器 GPIO_PBDATABRR 0090 H PB 端口输出翻转寄存器 GPIO_PBDIR 0094 H PB 端口方向控制寄存器 GPIO_PBDIRBSR 0098 H PB 端口方向置位寄存器 GPIO_PBDIRBCR 009C H PB 端口方向清零寄存器 GPIO_PBDIRBRR 00A0 H PB 端口方向翻转寄存器 GPIO_PBFUNC0 00A4 H PB[7:0] 端口复用选择寄存器 GPIO_PBFUNC1 00A8 H PB[13:8] 端口复用选择寄存器 GPIO_PBINEB 00B4 H PB 端口输入控制寄存器 GPIO_PBODE 00B8 H PB 端口开漏控制寄存器 GPIO_PBPUE 00BC H PB 端口弱上拉使能寄存器 GPIO_PBPDE 00C0 H PB 端口弱下拉使能寄存器 GPIO_PBDS 00C4 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_SPIFLTSEL 0344 H SPI 输入端口 20ns 滤波器分配控制寄 V1.8 92/317

93 GPIO 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 存器 GPIO_TXPWM 0380 H 脉宽调制寄存器 GPIO_BUZC 0384 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 状态寄存器 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 年月日周寄存器 V1.8 93/317

94 RTC 寄存器列表寄存器名称 寄存器偏移地址 寄存器描述 RTC_IE 0018 H RTC 中断使能寄存器 RTC_IF 001C H RTC 中断标志寄存器 RTC_WP 0020 H RTC 写保护寄存器 注 : 寄存器 RTC_HMS 和 RTC_YMDW 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 LCDC 寄存器列表 LCD 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 LCD:4000_1800 H LCD_CON H LCD 控制寄存器 0 LCD_TWI 0004 H LCD 闪烁时间寄存器 LCD_SEL 0008 H LCD 段使能寄存器 <27:0> LCD_CON H LCD 控制寄存器 1 LCD_D H LCD 像素寄存器 0 LCD_D H LCD 像素寄存器 1 LCD_D H LCD 像素寄存器 2 LCD_D3 002C H LCD 像素寄存器 3 LCD_D H LCD 像素寄存器 4 LCD_D H LCD 像素寄存器 5 LCD_D H LCD 像素寄存器 6 注 :LCD/LED 模块中寄存器 LCD_CON0 和 LED_CON0,LCD_SEL 和 LED_SEL,LCD_CON1 和 LED_CON1, LCD_D0 和 LED_D0,LCD D1 和 LED_D1 地址共用 LEDC 寄存器列表 LED 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 LED 基地址 :4000_1800 H LED_CON H LED 控制寄存器 0 LED_SEL 0008 H LED 段使能寄存器 <27:0> LED_CON H LED 控制寄存器 1 LED_D H LED 像素寄存器 0 LED_D H LED 像素寄存器 1 注 :LCDC/LEDC 模块中寄存器 LCD_CON0 和 LED_CON0,LCD_SEL 和 LED_SEL,LCD_CON1 和 LED_CON1, LCD_D0 和 LED_D0,LCD_D1 和 LED_D1 地址共用 V1.8 94/317

95 WDT 寄存器列表 WDT 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 WDT 基地址 :4000_1C00 H WDT_LOAD 0000 H WDT 计数器装载值寄存器 WDT_VALUE 0004 H WDT 计数器当前值寄存器 WDT_CON 0008 H WDT 控制寄存器 WDT_INTCLR 000C H WDT 中断标志清除寄存器 WDT_RIS 0010 H WDT 中断标志寄存器 WDT_LOCK 0100 H WDT 访问使能寄存器 WDT_ITCR 0300 H WDT 测试寄存器, 仅供测试使用 WDT_ITOP 0304 H WDT 测试寄存器, 仅供测试使用 注 :WDT_ITCR 和 WDT_ITOP 寄存器仅供测试使用, 禁止用户对其进行写操作, 否则可能会导致芯片工作异常 T16N0/T16N1/T16N2/T16N3 寄存器列表 T16N 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 T16N0 基地址 :4000_2000 H T16N1 基地址 :4000_2400 H T16N2 基地址 :4000_2800 H T16N3 基地址 :4000_2C00 H T16N_CNT H T16N 计数值寄存器 0 T16N_CNT H T16N 计数值寄存器 1 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_PDZ 0028 H T16N 调制模式死区宽度寄存器 T16N_PTR 002C H T16N 调制模式 ADC 触发寄存器 T16N_MAT H T16N 计数匹配寄存器 0 T16N_MAT H T16N 计数匹配寄存器 1 T16N_MAT H T16N 计数匹配寄存器 2 T16N_MAT3 003C H T16N 计数匹配寄存器 3 T16N_TOP H T16NCNT0 计数峰值寄存器 0 T16N_TOP H T16NCNT1 计数峰值寄存器 1 V1.8 95/317

96 T32N0 寄存器列表 T32N 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 T32N0 基地址 :4000_4000 H T32N_CNT 0000 H T32N 计数值寄存器 T32N_CON H T32N 控制寄存器 0 T32N_CON H T32N 控制寄存器 1 T32N_PRECNT 0010 H T32N 预分频器计数值寄存器 T32N_PREMAT 0014 H T32N 预分频器计数匹配寄存器 T32N_IE 0018 H T32N 中断使能寄存器 T32N_IF 001C H T32N 中断标志寄存器 T32N_MAT H T32N 计数匹配寄存器 0 T32N_MAT H T32N 计数匹配寄存器 1 T32N_MAT H T32N 计数匹配寄存器 2 T32N_MAT3 002C H T32N 计数匹配寄存器 UART0/UART1 寄存器列表 UART 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 UART0 基地址 :4000_6000 H UART1 基地址 :4000_6400 H UART_CON H UART 控制寄存器 0 UART_CON H UART 控制寄存器 1 UART_BRR 0010 H UART 波特率寄存器 UART_STA 0014 H UART 状态寄存器 UART_IE 0018 H UART 中断使能寄存器 UART_IF 001C H UART 中断标志寄存器 UART_TBW 0020 H UART 发送数据写入寄存器 UART_RBR 0024 H UART 接收数据读取寄存器 UART_TB H UART 发送缓冲寄存器 0 UART_TB H UART 发送缓冲寄存器 1 UART_TB H UART 发送缓冲寄存器 2 UART_TB3 004C H UART 发送缓冲寄存器 3 UART_TB H UART 发送缓冲寄存器 4 UART_TB H UART 发送缓冲寄存器 5 UART_TB H UART 发送缓冲寄存器 6 UART_TB7 005C H UART 发送缓冲寄存器 7 UART_RB H UART 接收缓冲寄存器 0 UART_RB H UART 接收缓冲寄存器 1 UART_RB H UART 接收缓冲寄存器 2 UART_RB3 006C H UART 接收缓冲寄存器 3 UART_RB H UART 接收缓冲寄存器 4 V1.8 96/317

97 UART 寄存器列表寄存器名称 寄存器偏移地址 寄存器描述 UART_RB H UART 接收缓冲寄存器 5 UART_RB H UART 接收缓冲寄存器 6 UART_RB7 007C H UART 接收缓冲寄存器 EUART0 寄存器列表 EUART 寄存器列表寄存器名称 寄存器偏移地址 寄存器描述 EUART0 基地址 :4000_7000 H EUART_CON H EUART 控制寄存器 0 EUART_CON H EUART 控制寄存器 1 EUART_CON H EUART 控制寄存器 2 EUART_BRR 0010 H EUART 波特率寄存器 EUART_IE 0018 H EUART 中断使能寄存器 EUART_IF 001C H EUART 中断标志寄存器 EUART_TBW 0020 H EUART 发送数据写入寄存器 EUART_RBR 0024 H EUART 接收数据读取寄存器 EUART_TB H EUART 发送缓冲寄存器 0/1 EUART_TB H EUART 发送缓冲寄存器 2/3 EUART_RB H EUART 接收缓冲寄存器 0/1 EUART_RB23 004C H EUART 接收缓冲寄存器 2/ SPI0/ SPI1 寄存器列表 SPI 寄存器列表 寄存器名称寄存器偏移地址寄存器描述 SPI0 基地址 :4000_8000 H SPI1 基地址 :4000_8400 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.8 97/317

98 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 状态寄存器 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 校准值寄存器 中断控制器 (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 优先级控制寄存器 V1.8 98/317

99 系统控制块 (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 V1.8 99/317

100 第 4 章 输入输出端口 (GPIO) 4. 1 概述 本芯片支持两组 GPIO 端口, 最多支持共 46 个 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 端口可复用为 LCDC/LEDC 模块的 COM7~COM0 端口, 当其设置为强电流驱动 I/O 端口时, 具有比其它 I/O 端口更强的驱动能力, 具体参见 附录 2 电气特性 章节的描述 GPIO 端口的特殊功能寄存器需通过 APB 总线访问, 通过软件方式操作 I/O 端口输出脉冲信号时, 能够得到的最快脉冲频率为外设时钟 PCLK 频率的 22 分频 V /317

101 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 PINT 中断产生电路 PINTIF0 IRQ_PINT0 PMASK0 图 4-2 外部端口中断 PINT0 电路结构示意图 上图以外部端口中断 PINT0 电路结构示意图为例, 可见其有 6 个可选外部中断源, 分别来自 PA0 PA8 PA16 PA24 PB0 和 PB8 PINT0 ~PINT7 的外部中断源如下表所示 : V /317

102 PINT 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 KMASK KINT 按键中断产生电路 KINTIF0 IRQ_KINT0 图 4-3 外部按键中断 KINT0 电路结构示意图 上图以外部按键中断 KINT0 电路结构示意图为例, 可见其有 6 个可选外部中断源, 分别来自 PA0 PA8 PA16 PA24 PB0 和 PB8 KINT0 ~KINT7 的外部中断源如下表所示 : V /317

103 KINT 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_PAFUNC0 和 GPIO_PBFUNC1 寄存器来设定 Buzz 信号直接输出至 PA0 PA1 或 PB13 Buzz 的固定频率输出信号还可被 UART0 的输出信号 TXD0 调制为 TXPWM0 信号或被 EUART0 的输出信号 E0TX0 调制为 TXPWM1 信号, 并送至相应输出端口上 可通过 TX0PLV 和 TX1PLV 控制位设定为高电平调制还是低电平调制 当 GPIO_TXPWM 寄存器的 TX0PS 控制位为 2 b11 时,TXPWM0 调制信号可输出至 TXD0 T16N0OUT0 T16N0OUT1 或 BUZ 管脚 ( 由 GPIO_TXPWM 寄存器的 TX0_S3~TX0_S0 选取 ) 当 GPIO_TXPWM 寄存器的 TX1PS 控制位为 2 b11 时,TXPWM1 调制信号可输出至 E0TX0 T16N1OUT0 T16N1OUT1 或 BUZ 管脚 ( 由 GPIO_TXPWM 寄存器的 TX1_S3~ TX1_S1 选取 ) E0TX0 或 TXD0 Buzz 信号 TXPWM0 或 TXPWM1 图 4-4 Buzz 高电平调制输出波形图 V /317

104 E0TX0 或 TXD0 Buzz 信号 TXPWM0 或 TXPWM1 图 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) 偏移地址 :04 H 复位值 : _ _ _ B DATA<31:16> DATA<15:0> DATA<31:0> bit 31-0 R/W PA 端口输出寄存器 0: 输出低电平 1: 输出高电平 V /317

105 PA 输出置位寄存器 (GPIO_PADATABSR) 偏移地址 :08 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABSR<31:16> DATABSR<15:0> DATABSR<31:0> bit 31-0 W PA 输出置位选择 0: 不改变输出电平 1: 相应端口输出高电平 PA 端口输出清零寄存器 (GPIO_PADATABCR) 偏移地址 : 0C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABCR <31:16> DATABCR <15:0> DATABCR<31:0> bit 31-0 W PA 输出清零选择 0: 不改变输出电平 1: 相应端口输出低电平 PA 端口输出翻转寄存器 (GPIO_PADATABRR) 偏移地址 : 10 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABRR <31:16> DATABRR <15:0> DATABRR<31:0> bit 31-0 W PA 输出翻转选择 0: 不改变输出电平 1: 相应端口输出翻转 V /317

106 PA 端口方向控制寄存器 (GPIO_PADIR) 偏移地址 : 14 H 复位值 : _ _ _ B DIR <31:16> DIR <15:0> DIR<31:0> bit R/W PA 端口方向控制位 0: 输出 1: 非输出 ( 若 GPIO_PAINEB 对应位为 0, 则可作为数字输入端口使用 若需使能模拟通道功能, GPIO_PAINEB 和 GPIO_PADIR 的对应位都应设置为 1, 关闭数字输入和输出功能 ) PA 端口方向置位寄存器 (GPIO_PADIRBSR) 偏移地址 : 18 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 PA 端口方向清零寄存器 (GPIO_PADIRBCR) 偏移地址 : 1C 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 /317

107 PA 端口方向翻转寄存器 (GPIO_PADIRBRR) 偏移地址 : 20 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 位值翻转 PA[7:0] 端口复用选择寄存器 (GPIO_PAFUNC0) 偏移地址 :24 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 bit15-14 PA3<1:0> bit13-12 R/W PA3 复用选择位 00~11:FUN0~FUN3 bit11-10 PA2<1:0> bit9-8 R/W PA2 复用选择位 V /317

108 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) 偏移地址 :28 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 复用选择位 00~11:FUN0~FUN3 bit7-6 PA9<1:0> bit5-4 R/W PA9 复用选择位 00~11:FUN0~FUN3 bit3-2 V /317

109 PA8<1:0> bit1-0 R/W PA8 复用选择位 00~11:FUN0~FUN3 PA[23:16] 端口复用选择寄存器 (GPIO_PAFUNC2) 偏移地址 :2C 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 PA16<1:0> bit1-0 R/W PA16 复用选择位 00~11:FUN0~FUN3 V /317

110 PA[31:24] 端口复用选择寄存器 (GPIO_PAFUNC3) 偏移地址 :30 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 注 1:PA2/PA3/PA27/PA26 中只能有一个可配置为 PWM 输出的刹车控制信号, 优级为 :PA2>PA3>PA27>PA26, 例如一旦 PA3 设置为 PWM 输出刹车控制信号, 则 PA27 和 PA26 不可再配置为 PWM 输出刹车控制信号 注 2:GPIO_PAFUNC 寄存器仅用于端口的数字输入输出功能选择 使用端口的模拟功能时, 需要设置 GPIO_PADIR 和 GPIO_PAINEB 寄存器的对应位为 1, 关闭端口的数字输入和输出功能 V /317

111 PA 端口输入控制寄存器 GPIO_PAINEB 偏移地址 :34 H 复位值 : _ _ _ B INEB<31:16> INEB<15:0> INEB<31:0> bit31-0 R/W 端口数字输入功能使能位 0: 使能 1: 禁止 PA 端口开漏控制寄存器 GPIO_PAODE 偏移地址 :38 H 复位值 : _ _ _ B ODE<31:16> ODE<15:0> ODE<31:0> bit31-0 R/W 端口输出开漏使能位, 端口为推挽输出 1: 使能, 端口为开漏输出 PA 端口弱上拉使能寄存器 (GPIO_PAPUE) 偏移地址 :3C H 复位值 : _ _ _ B PUE <31:16> PUE <15:0> PUE<31:0> bit31-0 R/W 端口弱上拉使能位 1: 使能 V /317

112 PA 端口弱下拉使能寄存器 (GPIO_PAPDE) 偏移地址 :40 H 复位值 : _ _ _ B PDE <31:16> PDE <15:0> PDE<31:0> bit31-0 R/W 端口弱下拉使能位 1: 使能 PA 端口驱动电流控制寄存器 (GPIO_PADS) 偏移地址 :44 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 /317

113 PB 端口数据寄存器 (GPIO_PBDATA) 偏移地址 :84 H 复位值 : _ _ _ B DATA<13:0> - bit DATA<13:0> bit13-0 R/W PB 端口输出电平 0: 输出低电平 1: 输出高电平 PB 端口输出置位寄存器 (GPIO_PBDATABSR) 偏移地址 :88 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABSR<13:0> - bit DATABSR<13:0> bit13-0 W PB 输出置位选择 0: 不改变输出电平 1: 相应端口输出高电平 PB 端口输出清零寄存器 (GPIO_PBDATABCR) 偏移地址 :8C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABCR<13:0> - bit DATABCR<13:0> bit13-0 W PB 输出清零选择 0: 不改变输出电平 1: 相应端口输出低电平 V /317

114 PB 端口输出翻转寄存器 (GPIO_PBDATABRR) 偏移地址 :90 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DATABRR<13:0> - bit DATABRR<13:0> bit13-0 W PB 输出翻转选择 0: 不改变输出电平 1: 相应端口输出翻转 PB 端口方向控制寄存器 (GPIO_PBDIR) 偏移地址 :94 H 复位值 : _ _ _ B DIR<13:0> - bit DIR<13:0> bit13-0 R/W PB 端口方向控制位 0: 输出 1: 输入 ( 若 GPIO_PBINEB 对应位为 0, 则可作为数字输入端口使用 若需使能模拟通道功能, GPIO_PBINEB 和 GPIO_PBDIR 的对应位都应设置为 1, 关闭数字输入和输出功能 ) PB 端口方向置位寄存器 (GPIO_PBDIRBSR) 偏移地址 :98 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBSR<13:0> - bit DIRBSR<13:0> bit13-0 W PB 端口方向置位选择 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位设置为 1 V /317

115 PB 端口方向清零寄存器 (GPIO_PBDIRBCR) 偏移地址 :9C H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBCR<13:0> - bit DIRBCR<13:0> bit13-0 W PB 端口方向清零选择 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位设置为 0 PB 端口方向翻转寄存器 (GPIO_PBDIRBRR) 偏移地址 :A0 H 复位值 :xxxxxxxx_xxxxxxxx_xxxxxxxx _xxxxxxxx B DIRBRR<13:0> - bit DIRBRR<13:0> bit13-0 W PB 端口方向翻转选择 0: 不改变 GPIO_PBDIR 的值 1: 对应的 GPIO_PBDIR 位值翻转 PB[7:0] 端口复用选择寄存器 (GPIO_PBFUNC0) 偏移地址 :A4 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 V /317

116 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 PB[15:8] 端口复用选择寄存器 (GPIO_PBFUNC1) 偏移地址 :A8 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 V /317

117 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) 偏移地址 :B4 H 复位值 : _ _ _ B INEB<13:0> - bit INEB<13:0> bit13-0 R/W 端口数字输入功能使能位 0: 使能 1: 禁止 PB 端口开漏控制寄存器 (GPIO_PBODE) 偏移地址 :B8 H 复位值 : _ _ _ B ODE<13:0> - bit ODE<13:0> bit13-0 R/W 端口输出开漏使能位, 端口为推挽输出 1: 使能, 端口为开漏输出 V /317

118 PB 端口弱上拉使能寄存器 (GPIO_PBPUE) 偏移地址 :BC H 复位值 : _ _ _ B PUEN<13:0> - bit PUEN<13:0> bit13-0 R/W 端口弱上拉使能位 1: 使能 注 : 当 MRSTN 管脚用作外部复位管脚时, 芯片内部固定集成了约 45K 欧姆的弱上拉电阻, 不受端口弱上拉使能寄 存器的控制 PB 端口弱下拉使能寄存器 (GPIO_PBPDE) 偏移地址 :C0 H 复位值 : _ _ _ B PDEN<13:0> - bit PDEN<13:0> bit13-0 R/W 端口弱下拉使能位 1: 使能 PB 端口驱动电流控制寄存器 (GPIO_PBDS) 偏移地址 :C4 H 复位值 : _ _ _ B DS<13:0> - bit DS<13:0> bit13-0 R/W 端口输出驱动能力选择位 V /317

119 0: 普通电流驱动 1: 强电流驱动 PINT 中断使能寄存器 (GPIO_PINTIE) 偏移地址 :00 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) 偏移地址 :04 H 复位值 : _ _ _ B PINTIF<7:0> - bit PINTIF<7:0> bit7-0 R/W GPIO 外部中断标志位 0: 无中断 1: 有中断软件写 1 清除中断标志位, 写 0 无效 注 : 对 GPIO_PINTIF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 V /317

120 PINT0~7 中断源选择寄存器 (GPIO_PINTSEL) 偏移地址 :08 H 复位值 : _ _ _ B PINT7SEL<2:0> PINT6SEL<2:0> PINT5SEL<2:0> PINT4SEL<2:0> PINT3SEL<2:0> PINT2SEL<2:0> PINT1SEL<2:0> PINT0SEL<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 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 V /317

121 PINT 中断配置寄存器 (GPIO_PINTCFG) 偏移地址 :0C H 复位值 : _ _ _ B PINT7CFG<2:0> PINT6CFG<2:0> PINT5CFG<2:0> PINT4CFG<2:0> PINT3CFG<2:0> PINT2CFG<2:0> PINT1CFG<2:0> PINT0CFG<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 详情 寄存器名称 PINTCFG<2:0> bit 2-0 R/W GPIO_PINTCFG 详情 GPIO_PINTCFG 配置位 000: 上升沿触发中断 001: 下降沿触发中断 010: 高电平触发中断 011: 低电平触发中断 1xx: 上升沿和下降沿均触发中断 V /317

122 KINT 中断使能寄存器 (GPIO_KINTIE) 偏移地址 :10 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) 偏移地址 :14 H 复位值 : _ _ _ B KINTIF<7:0> - bit KINTIF<7:0> bit7-0 R/W GPIO 按键中断标志位 0: 无中断 1: 有中断软件写 1 清除中断标志位, 写 0 无效 注 : 对 GPIO_KINTIF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示 有中断发生 V /317

123 KINT0~7 中断源选择寄存器 (GPIO_KINTSEL) 偏移地址 :18 H 复位值 : _ _ _ B KINT7SEL<2:0> KINT6SEL<2:0> KINT5SEL<2:0> KINT4SEL<2:0> KINT3SEL<2:0> KINT2SEL<2:0> KINT1SEL<2:0> KINT0SEL<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 /317

124 KINT 中断配置寄存器 (GPIO_KINTCFG) 偏移地址 :1C H 复位值 : _ _ _ B KINT7CFG<2:0> KINT6CFG<2:0> KINT5CFG<2:0> KINT4CFG<2:0> KINT3CFG<2:0> KINT2CFG<2:0> KINT1CFG<2:0> KINT0CFG<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 /317

125 端口中断 20ns 滤波器分配控制寄存器 (GPIO_IOINTFLTS) 偏移地址 :30 H 复位值 : _ _ _ B FLT_S<7:0> - bit FLT_S<7:0> bit7-0 R/W 端口中断 20ns 滤波器分配控制位 0: 用于 PINT 中断信号源的滤波 1: 用于 KINT 中断信号源的滤波 TMR 输入端口 20ns 滤波器分配控制寄存器 (GPIO_TMRFLTSEL) 偏移地址 :40 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 V /317

126 FLT1_SEL<3:0> bit7-4 R/W FLT0_SEL<3:0> bit3-0 R/W 4 h5:t16n2_1 使用 TMR_FLT2 4 h6:t16n3_0 使用 TMR_FLT2 4 h7:t16n3_1 使用 TMR_FLT2 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 其它 : 预留 SPI 输入端口 20ns 滤波器分配控制寄存器 (GPIO_SPIFLTSEL) 偏移地址 :44 H 复位值 : _ _ _ B FLT_SEL<3:0> - bit FLT_SEL<3:0> bit3-0 R/W SPI FLT 滤波器控制位 1:SPI1 使用该滤波器 0:SPI0 使用该滤波器 V /317

127 脉宽调制寄存器 (GPIO_TXPWM) 偏移地址 :80 H 复位值 : _ _ _ B TX1 _S3 TX1 _S2 TX1 _S1 TX1 _S0 保 留 TX1 PLV TX1PS< 1:0> TX0 _S3 TX0 _S2 TX0 _S1 TX0_ S0 TX0PL V TX0PS<1:0> - bit TX1_S3 bit15 R/W TXPWM1 调制输出使能端 ( 仅在 TX0_S3=0 时, 即未使能 TXPWM0 调制输出至 BUZ 管脚时有效 ) 0:BUZ 管脚正常输出 1:BUZ 管脚为 TXPWM1 输出 TX1_S2 bit14 R/W TXPWM1 调制输出使能端 0:T16N1OUT1 管脚正常输出 1:T16N1OUT1 管脚为 TXPWM1 输出 TX1_S1 bit13 R/W TXPWM1 调制输出使能端 0:T16N1OUT0 管脚正常输出 1:T16N1OUT0 管脚为 TXPWM1 输出 TX1_S0 bit12 R/W TXPWM1 调制输出使能端 0:E0TX0 管脚正常输出 1:E0TX0 管脚为 TXPWM1 输出 - bit TX1PLV bit10 R/W TXPWM1 调制电平选择位 0: 低电平调制 (E0TX0 与 TX1PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (E0TX0 与 TX1PS 所选取的脉冲信号进行硬件与操作 ) TX1PS<1:0> bit9-8 R/W TXPWM1 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N1OUT0 进行调制 10: 与 T16N1OUT1 进行调制 11: 与 BUZ 进行调制 TX0_S3 bit7 R/W TXPWM0 调制输出使能端 0:BUZ 管脚正常输出 1:BUZ 管脚为 TXPWM0 输出 TX0_S2 bit6 R/W TXPWM0 调制输出使能端 0:T16N0OUT1 管脚正常输出 1:T16N0OUT1 管脚为 TXPWM0 输出 TX0_S1 bit5 R/W TXPWM0 调制输出使能端 0:T16N0OUT0 管脚正常输出 V /317

128 1:T16N0OUT0 管脚为 TXPWM0 输出 TX0_S0 bit4 R/W TXPWM0 调制输出使能端 0:TXD0 管脚正常输出 1:TXD0 管脚为 TXPWM0 输出 - bit3 - - TX0PLV bit2 R/W TXPWM0 调制电平选择位 0: 低电平调制 (TXD0 与 TX0PS 所选取的脉冲信号进行硬件或操作 ) 1: 高电平调制 (TXD0 与 TX0PS 所选取的脉冲信号进行硬件与操作 ) TX0PS<1:0> bit1-0 R/W TXPWM0 调制 PWM 脉冲选择位 00: 调制禁止 01: 与 T16N0OUT0 进行调制 10: 与 T16N0OUT1 进行调制 11: 与 BUZ 进行调制 BUZ 控制寄存器 (GPIO_BUZC) 偏移地址 :84 H 复位值 : _ _ _ B BUZ_LOAD<19:8> BUZ_LOAD<7:0> BUZEN - bit BUZ_LOAD<19:0> bit27-8 R/W BUZ 计数装载值寄存器 BUZ 信号频率的计算公式为 : FBUZ Fpclk = 2 ( BUZ _ LOAD + 1) - bit BUZEN bit0 R/W BUZ 使能位 1: 使能 V /317

129 第 5 章 外设 5. 1 定时器 / 计数器 位定时器 / 计数器 T16N 以 T16N0 为例,T16N1/T16N2/T16N3 同 T16N 概述 1 个 8 位可配置预分频器, 分频时钟作为 T16N_CNT0/1 的定时 / 计数时钟 预分频时钟源可选 :PCLK 或 T16N0CK0/T16N0CK1 预分频计数器可由 T16N_PRECNT 寄存器设定计数初值 分频比由寄存器 T16N_PREMAT 设定 2 个 16 位可配置定时 / 计数寄存器 T16N_CNT0/T16N_CNT1 T16N_CNT1 仅在独立调制工作模式或 T16N_CNT1 峰值触发 ADC 转换被使能时 可用 2 个 16 位峰值寄存器 T16N_TOP0/T16N_TOP1 T16N_CNT0/ T16N_CNT1 计数值达到峰值时被清零 在调制工作模式下, 若使能 ADC 触发功能,T16N_CNT0/ T16N_CNT1 计数值达 到峰值时可分别产生 ADC 转换触发信号 支持定时 / 计数工作模式 支持 4 组 16 位计数匹配寄存器 T16N_MAT0/T16N_MAT1/T16N_MAT2/ T16N_MAT3, 计数匹配后支持下列操作 : - 产生中断 - 支持 T16N_CNT0 计数寄存器三种操作 : 保持, 清零或继续计数 - 支持 T16N0OUT0/T16N0OUT1 端口四种操作 : 保持, 清零, 置 1 或取反支持输入捕捉工作模式 捕捉边沿可配置 捕捉次数可配置 支持调制工作模式 通过对匹配寄存器进行配置, 同时设置匹配后端口输出特性, 可得到相应的 PWM 输出 支持调制过程触发 ADC 转换 - 匹配 0 匹配 1 匹配 2 匹配 3 及峰值 0 与 T16N_CNT0 计数值匹配触发 - 峰值 1 与 T16N_CNT1 计数值匹配触发 两路 PWM 可配置为独立 / 同步 / 互补等三种模式 - 独立模式,T16N0OUT0/T16N0OUT1 输出不同的 PWM 波形 - 同步模式,T16N0OUT0/T16N0OUT1 输出相同 PWM 波形 - 互补模式,T16N0OUT0/T16N0OUT1 输出互补 PWM 波形, 互补模式下死区时间宽度可配置 V /317

130 支持刹车控制 - 可通过 GPIO_PAFUNC 寄存器来选取 PA2(T16N_BK0),PA3(T16N_BK1),PA26 (T16N_BK2) 或 PA27(T16N_BK3), 其中任意一个作为外部刹车信号, 有效刹车极性可配置 - 刹车输出电平可配置 结构框图 T16N_MAT0 ADC T16N_TOP0 数值比较器 T16N0OUT0 PCLK T16N0CK0 M U X T16N_PREMAT T16N_CNT0 T16N0IN0 捕捉选择 T16N_MAT0 图 5-1 T16N0 电路结构框图 T16N 定时 / 计数功能设置 T16N_CON0 寄存器的 MOD<1:0>=00 或 01, 使 T16N 工作在定时 / 计数模式 设置 T16N_CON0 寄存器的 EN=1, 使能 T16N, 计数值寄存器 T16N_CNT0/T16N_CNT1 从预设值开始累加计数 设置 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_CNT0/T16N_CNT1 计数值寄存器的工作状态 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=00: 当 T16N_CNT0/T16N_CNT1 计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 继续累加计数, 不产生中断, 当计数到 0xFFFF 后, 下一次累加计数溢出,T16N_CNT0/T16N_CNT1 的值为 0x0000, 并产生中断, 重新开始累加计数 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=01: 当 T16N_CNT0/T16N_CNT1 计数值匹配 V /317

131 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 计数值将保持, 即在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时,T16N_CNT0/T16N_CNT1 不再累加计数, 只产生中断 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=10: 当 T16N_CNT0/T16N_CNT1 计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 计数值在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时被清零, 并产生中断, 重新开始累加计数 MAT0S/MAT1S/MAT2S/MAT3S<1:0>=11: 当 T16N_CNT0/T16N_CNT1 计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3 时, 继续累加计数, 并在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时, 产生中断, 当计数到 0xFFFF H, 下一次累加计数溢出,T16N_CNT0/T16N_CNT1 的值为 0x0000, 并产生中断, 重新开始累加计数 对设置的多个不同匹配值 T16N_MAT0/T16N_MAT1/T16N_MAT2/T16N_MAT3, 当计数值匹配到每一个匹配值时, 会产生相应的中断 由于中断产生后,T16N 继续累加计数, 若未及时读取匹配中断标志位, 则有可能后续的匹配中断也已产生, 从而会同时读到多个有效的匹配中断标志 如果 T16N_CNT0/T16N_CNT1 的计数值匹配 T16N_MAT0/T16N_MAT1/T16N_MAT2/ T16N_MAT3, 当 T16N_CON2 寄存器的 MOE0=1 时,T16N0OUT0 端口输出翻转 ; 当 MOE1=1 时,T16N0OUT1 端口输出翻转 可选择 T16N0OUT0/T16N0OUT1 端口同时输出 举例说明 :T16N_CNT0 计数值匹配 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, 清零, 产生中断, 重新计数 预分频设置为 1:1, 采用内部 PCLK 时钟源 计数匹配功能示意图如下所示 : MAT1IF MAT2IF PCLK T16N_CNT0 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0000 0x0001 图 5-2 T16N0 计数匹配功能示意图 注 :T16N_CNT0 可使用所有的 T16N 的 T16N_MAT 寄存器, 但在计数器被设置为捕捉模式, 即 T16N_CON0 寄存器中 MOD=0x2 时,T16N_CNT0 只能使用 T16N_MAT0/T16N_MAT1; 而 T16N_CNT1 任何情况下仅可使用 T16N_MAT2/T16N_MAT3 V /317

132 T16N 输入捕捉功能设置 T16N_CON0 寄存器的 MOD<1:0>=10, 使 T16N 工作在捕捉模式 在捕捉模式下 T16N_CNT1 不可使用 在捕捉工作模式下, 需设置 T16N_CON0 寄存器的 CS<1:0>=00, 使 T16N_CNT0 采用内部 PCLK 时钟源计数 ; 并且设置 T16N_CON0 寄存器的 MAT0S/MAT1S/MAT2S/MAT3S <1:0>=00, 计数匹配不影响 T16N_CNT0 的工作 在捕捉工作模式下, 对端口 T16N0IN0 和 T16N0IN1 的状态进行检测 当 T16N0IN0 端口的状态变化符合所设定的捕捉事件时, 将 T16N_CNT0 和 T16N_PRECNT 的当前值分别装载到 T16N_MAT0 和 T16N_MAT2 寄存器中, 产生 T16N 的 CAP0IF 中断 通过使能 T16N_CON1 寄存器的 CAPL0, 可在 CAP0IF 中断时将 T16N_CNT0 和 T16N_PRECNT 清零 ; 若 CAPL0 为零, 则计数器继续累加 当 T16N0IN1 端口的状态变化符合所设定的捕捉事件时, 将 T16N_CNT0 和 T16N_PRECNT 的当前值分别装载到 T16N_MAT1 和 T16N_MAT3 寄存器中, 产生 T16N 的 CAP1IF 中断 通过使能 T16N_CON1 寄存器的 CAPL1, 可在 CAP1IF 中断时将 T16N_CNT0 和 T16N_PRECNT 清零 ; 若 CAPL1 为零, 则计数器继续累加 当 T16N_CNT0 计数直到溢出时, 仍未检测到设定的捕捉事件,T16N_CNT0 的值被清零, 并重新开始累加计数 设置 T16N_CON1 寄存器的 CAPPE 和 CAPNE, 可选择 T16N0IN0 和 T16N0IN1 端口信号的捕捉事件 选择捕捉上升沿 : 只设置 CAPPE 为 1; 选择捕捉下将沿 : 只设置 CAPNE 为 1; 选择捕捉上升沿 / 下降沿 : 设置 CAPPE 为 1,CAPNE 为 1 设置 T16N_CON1 寄存器的 CAPIS0, 选择 T16N0IN0 是否作为捕捉输入端口 ; 设置 CAPIS1, 选择 T16N0IN1 是否作为捕捉输入端口 ; 可同时选择两个端口作为捕捉输入端口 设置 T16N_CON1 寄存器的 CAPT, 可选择捕捉事件发生的次数 举例说明 : 捕捉 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 V /317

133 CAP0IF CAP0IF T16N0IN0 PCLK 0x0000 0x0000 0x0000 T16N_CNT0 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 寄存器会装载为新的计数值 T16N 输出调制功能设置 T16N_CON0 寄存器的 MOD<1:0>=11, 使 T16N 工作在调制模式 在调制工作模式下, 需设置 T16N_CON0 寄存器的 CS<1:0>=00, 使 T16N_CNT0/ T16N_CNT1 采用内部 PCLK 时钟源计数 设置 T16N_CON2 寄存器的 MOE0, 选择 T16N0OUT0 是否使能为匹配输出端口, 使能时启用 T16N_MAT0/T16N_MAT1 匹配寄存器和 T16N_CNT0 进行匹配 ; 设置 T16N_CON2 寄存器的 MOE1, 选择 T16N0OUT1 是否使能为匹配输出端口, 使能时启用 T16N_MAT2/T16N_MAT3 匹配寄存器和 T16N_CNT0 或 T16N_CNT1(PWM 独立工作模式 ) 进行匹配 设置 T16N_CON2 寄存器的 MOM0/MOM1/MOM2/MOM3, 选择计数匹配发生时, 对 T16N0OUT0/T16N0OUT1 端口的影响 : 保持, 清零, 置 1, 取反 设置 T16N_CON2 寄存器的 PWMMOD<1:0>, 两路 PWM 可配置为独立 / 同步 / 互补等三种模式 : 独立模式,T16N0OUT0/T16N0OUT1 输出不同的 PWM 波形 其中 T16N_CNT0 匹配 T16N_MAT0/T16N_MAT1, 控制 T16N0OUT0 输出 ; 而 T16N_CNT1 匹配 T16N_MAT2/ T16N_MAT3, 控制 T16N0OUT1 输出 同步模式,T16N0OUT0/T16N0OUT1 输出相同 PWM 波形 T16N_CNT0 匹配 T16N_MAT0/T16N_MAT1, 控制 T16N0OUT0/T16N0OUT1 输出 无需设置 V /317

134 T16N_CNT1 互补模式,T16N0OUT0/T16N0OUT1 输出为互补 PWM 波形 互补模式下死区时间宽度可配置 互补模式下 T16N_CNT0 匹配 T16N_MAT0/T16N_MAT1, 控制 T16N0OUT0/ T16N0OUT1 输出 ;PWM 周期由 T16N_TOP0 设定, 为 T16N _TOP0+1 无需设置 T16N_CNT1 调制工作模式下支持匹配 0 匹配 1 匹配 2 匹配 3 峰值 0 及峰值 1 触发 ADC: 匹配 0 匹配 1 匹配 2 匹配 3 峰值 0 与 T16N_CNT0 计数值匹配, 匹配时产生 ADC 触发信号 ; 峰值 1 与 T16N_CNT1 计数值匹配, 匹配时产生 ADC 触发信号 举例说明 : 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 输出低电平 ; PWMMOD<1:0>=00; 独立模式 T16N_CON0 寄存器中 : MOD<1:0>=11;T16N 设置为调制输出 ; MAT0S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 ; MAT1S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 ; MAT2S<1:0>=11;T16N_CNT1 继续计数, 并产生中断 ; MAT3S<1:0>=10;T16N_CNT1 清零, 并产生中断 设置其它寄存器 : T16N_MAT0 = 0x0002;T16N_MAT1 = 0x0004; T16N_MAT2 = 0x0006;T16N_MAT3 = 0x0008; 设置合适的 T16N_TOP0/T16N_TOP1 值 MAT0IF MAT1IF PCLK T16N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 T16N0OUT0 T16N0OUT1 图 5-4 T16N0 PWM 独立模式输出调制功能示意图 V /317

135 注 1: 若 T16N_MAT0 和 T16N_MAT1 设置了相同的值, 因 T16N_MAT0 匹配优先级高于 T16N_MAT1,T16N0OUT0 的输出电平取决于 MOM0 的设定 若 T16N_MAT2 和 T16N_MAT3 设置了相同的值, 因 T16N_MAT2 匹配优先级高于 T16N_MAT3,T16N0OUT1 的输出电平取决于 MOM2 的设定 注 2: 在 PWM 独立模式下, 通过 T16N_CNT1 匹配 T16N_MAT2/ T16N_MAT3, 控制 T16N0OUT1 输出, 但匹配中断标志 MAT2IF 和 MAT3IF 的产生, 仍与 T16N_CNT0 计数寄存器有关, 使得这两个匹配中断与 T16N0OUT1 的 PWM 波形对应不一致, 所以在 PWM 独立模式下, 建议不要使用中断标志 MAT2IF 和 MAT3IF 2) 互补模式,PCLK=48MHz, 在 T16N0OUT0 和 T16N0OUT1 端口, 产生 24MHz 互补 PWM 波形 T16N_CON2 寄存器中 : MOE0=1,MOE1=1, 即 T16N0OUT0 和 T16N0OUT1 匹配输出端口使能 ; MOM0<1:0>=10, 即 T16N_MAT0 匹配,T16N0OUT0 输出高电平,T16N0OUT1 输出低电平 ; MOM1<1:0>=01, 即 T16N_MAT1 匹配,T16N0OUT0 输出低电平,T16N0OUT1 输出高电平 ; PWMMOD<1:0>=11, 即互补 PWM 模式 ;PWMDZE=0, 禁止死区时间 T16N_CON0 寄存器中 : MOD<1:0>=11;T16N 设置为调制输出 MAT0S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 ; MAT1S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 设置其它寄存器 : T16N_MAT0 = 0x0000;T16N_MAT1 = 0x0001;T16N_TOP0=0x0001; T16N_PREMAT=0, 即不预分频 PCLK T16N_CNT 0x0000 0x0001 0x0000 0x0001 0x0000 0x0001 0x0000 0x0001 0x0000 0x0001 T16N0OUT0 T16N0OUT1 图 5-5 T16N0 互补输出功能示意图 3) 带死区的互补模式,PCLK=48MHz, 在 T16N0OUT0 和 T16N0OUT1 端口, 产生带死区的互补 PWM 波形 T16N_CON2 寄存器中 : MOE0=1,MOE1=1, 即 T16N0OUT0 和 T16N0OUT1 匹配输出端口使能 ; MOM0<1:0>=10, 即 T16N_MAT0 匹配,T16N0OUT0 输出高电平,T16N0OUT1 输出低电平 ; MOM1<1:0>=01, 即 T16N_MAT1 匹配,T16N0OUT0 输出低电平,T16N0OUT1 输出高电平 ; V /317

136 PWMMOD<1:0>=11, 即互补 PWM 模式 ;PWMDZE=1, 使能死区时间 T16N_CON0 寄存器中 : MOD<1:0>=11;T16N 设置为调制输出 MAT0S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 ; MAT1S<1:0>=11;T16N_CNT0 继续计数, 并产生中断 设置其它寄存器 : T16N_MAT0,T16N_MAT1 和 T16N_TOP0 寄存器设定合适的值以设定 PWM 周期, 占空比等 ;T16N_PREMAT 可设定为较小值, 如 0 值, 即不预分频, 使得死区时间和 PWM 占空比都有较高的精度 如下图, 作为对比, 分别给出了无死区时间和带死区时间的 PWM 互补输出波形 需要注意的是, 死区时间会对 T16N0OUT0 和 T16N0OUT1 的高电平宽度作等量压缩 死区 T16N0OUT0 T16N0OUT1 T16N0OUT0( 带死区 ) T16N0OUT1( 带死区 ) 死区 图 5-6 带死区的 T16N0 互补输出功能示意图 特殊功能寄存器 T16N 计数值寄存器 (T16N_CNT0) 偏移地址 :00 H 复位值 : _ _ _ B CNT0<15:0> - bit CNT0<15:0> bit 15-0 R/W T16N_CNT0 计数值 注 :T16N_CNT0 可使用所有的 T16N 的 T16N_MAT 寄存器, 但在计数器被设置为捕捉模式, 即 T16N_CON0 寄 存器中 MOD=0x2 时,T16N_CNT0 只能使用 T16N_MAT0/T16N_MAT1; 而 T16N_CNT1 任何情况下仅可使 用 T16N_MAT2/T16N_MAT3 V /317

137 T16N 计数值寄存器 (T16N_CNT1) 偏移地址 :04 H 复位值 : _ _ _ B CNT1<15:0> - bit CNT1<15:0> bit 15-0 R/W T16N_CNT1 计数值 T16N 预分频器计数值寄存器 (T16N_PRECNT) 偏移地址 :08 H 复位值 : _ _ _ B PRECNT<7:0> - bit PRECNT<7:0> bit7-0 R/W T16N 预分频器计数值 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 V /317

138 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 计数器写使能位 0: 使能写 T16N_CNT1; 在同步计数模式, 定时模式, 和调制模式下, 使能写 T16N_CNT0 和 T16N_PRECNT ( 在异步计数模式下, 不要在 ASYWEN=0 时, 写 T16N_CNT0 和 T16N_PRECNT, 否则有可能写操作失败 ) 1: 禁止写 T16N_CNT1; 在同步计数模式, 定时模式, 和调制模式下, 禁止写 T16N_CNT0 和 T16N_PRECNT, 在异步计数模式下, 使能写 T16N_CNT0 和 T16N_PRECNT MAT3S<1:0> bit 15~14 R/W MAT2S<1:0> bit 13~12 R/W MAT1S<1:0> bit 11~10 R/W MAT0S<1:0> bit 9~8 R/W T16N_CNT1 匹配 T16N_MAT3 后的工作模式选择位 00:T16N_CNT1 继续计数, 不产生中断 01:T16N_CNT1 保持, 产生中断 10:T16N_CNT1 清零并重新计数, 产生中断 11:T16N_CNT1 继续计数, 产生中断 T16N_CNT1 匹配 T16N_MAT2 后的工作模式选择位 00:T16N_CNT1 继续计数, 不产生中断 01:T16N_CNT1 保持, 产生中断 10:T16N_CNT1 清零并重新计数, 产生中断 11:T16N_CNT1 继续计数, 产生中断 T16N_CNT0 匹配 T16N_MAT1 后的工作模式选择位 00:T16N_CNT0 继续计数, 不产生中断 01:T16N_CNT0 保持, 产生中断 10:T16N_CNT0 清零并重新计数, 产生中断 11:T16N_CNT0 继续计数, 产生中断 T16N_CNT0 匹配 T16N_MAT0 后的工作模式选择位 00:T16N_CNT0 继续计数, 不产生中断 01:T16N_CNT0 保持, 产生中断 10:T16N_CNT0 清零并重新计数, 产生中断 11:T16N_CNT0 继续计数, 产生中断 V /317

139 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 工作模式选择位 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 为芯片内部外设模块时钟源, 时钟频率与芯片系统时钟频率相同 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: 使能 V /317

140 CAPT<3:0> bit7-4 R/W CAPIS1 bit3 R/W CAPIS0 bit2 R/W CAPNE bit1 R/W CAPPE bit0 R/W 捕捉次数控制位 0: 捕捉 1 次后, 产生装载动作 1: 捕捉 2 次后, 产生装载动作 2: 捕捉 3 次后, 产生装载动作 F: 捕捉 16 次后, 产生装载动作捕捉输入端口 T16N0IN1 使能位 1: 使能捕捉输入端口 T16N0IN0 使能位 1: 使能下降沿捕捉使能位 1: 使能上升沿捕捉使能位 1: 使能 T16N 控制寄存器 2(T16N_CON2) 偏移地址 :18 H 复位值 : _ _ _ B PWMBK F PWMB KP1 PWMB KP0 PWMBK L1 PWMBK L0 PWMBK E1 PWMBK E0 MOM3<1: 0> MOM2<1: 0> MOM1<1: 0> MOM0<1:0> PWMD ZE PWMMOD<1:0> POL1 POL0 MOE1 MOE PWMBKF bit24 R/W PWM 刹车事件标志位 0: 未发生刹车事件 1: 发生刹车事件,PWM 端口输出刹车电平 ; 软件写 1 清零, 清零后 PWM 端口输出恢复正常 PWMBKP1 bit23 R/W PWM 通道 1 刹车信号极性选择位 0: 高电平刹车 1: 低电平刹车 PWMBKP0 bit22 R/W PWM 通道 0 刹车信号极性选择位 0: 高电平刹车 1: 低电平刹车 bit PWMBKL1 bit19 R/W PWM 通道 1 刹车输出电平选择位 V /317

141 POL1=0 时 : 0: 输出低电平 1: 输出高电平 POL1=1 时 : 0: 输出高电平 1: 输出低电平 PWMBKL0 bit18 R/W PWM 通道 0 刹车输出电平选择位 POL0=0 时 : 0: 输出低电平 1: 输出高电平 POL0=1 时 : 0: 输出高电平 1: 输出低电平 PWMBKE1 bit17 R/W PWM 通道 1 刹车使能位 1: 使能 PWMBKE0 bit16 R/W PWM 通道 0 刹车使能位 1: 使能 MOM3<1:0> bit15-14 R/W T16N_MAT3 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM2<1:0> bit13-12 R/W T16N_MAT2 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM1<1:0> bit11-10 R/W T16N_MAT1 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM0<1:0> bit9-8 R/W T16N_MAT0 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 - bit7 - - PWMDZE bit6 R/W PWM 互补模式死区使能位 1: 使能 PWMMOD<1:0> bit5-4 R/W PWM 模式选择位 V /317

142 POL1 bit3 R/W POL0 bit2 R/W MOE1 bit1 R/W MOE0 bit0 R/W 0x: 独立 10: 同步 11: 互补 T16N0OUT1 输出极性选择位 0: 正极性 1: 反极性 T16N0OUT0 输出极性选择位 0: 正极性 1: 反极性输出端口 1 使能位 1: 使能输出端口 0 使能位 1: 使能 注 1: 刹车信号可通过 GPIO_PAFUNC 寄存器配置为 PA2/PA3/PA27/PA26 中的其中一个, 而且只能选一个 注 2: 在刹车使能的情况下,PWMBKF 标志位置 1 时, 会硬件自动清零对应的输出端口使能位 MOE, 该标志位清零后, 还需软件重新设置使能位 MOE 为 1,PWM 端口输出才会恢复正常 T16N 中断使能寄存器 (T16N_IE) 偏移地址 :20 H 复位值 : _ _ _ B PBK1IE PBK0IE CAP1IE CAP0IE TOP1IE TOP0IE MAT3IE MAT2IE MAT1IE MAT0IE - bit PBK1IE bit9 R/W PWM 通道 1 刹车中断使能位 1: 使能 PBK0IE bit8 R/W PWM 通道 0 刹车中断使能位 1: 使能 CAP1IE bit7 R/W 输入端口 T16N0IN1 捕捉中断使能位 1: 使能 CAP0IE bit6 R/W 输入端口 T16N0IN0 捕捉中断使能位 1: 使能 TOP1IE bit5 R/W T16N_CNT1 匹配计数峰值中断使能位 V /317

143 TOP0IE bit4 R/W MAT3IE bit3 R/W MAT2IE bit2 R/W MAT1IE bit1 R/W MAT0IE bit0 R/W 1: 使能 T16N_CNT0 匹配计数峰值中断使能位 1: 使能匹配 3 中断使能位 1: 使能匹配 2 中断使能位 1: 使能匹配 1 中断使能位 1: 使能匹配 0 中断使能位 1: 使能 T16N 中断标志寄存器 (T16N_IF) 偏移地址 :24 H 复位值 : _ _ _ B PBK1IF PBK0IF CAP1IF CAP0IF TOP1IF TOP0IF MAT3IF MAT2IF MAT1IF MAT0IF - bit PBK1IF bit9 R/W PWM 通道 1 刹车中断标志位 0: 无刹车中断 1: 通道 1 刹车事件产生软件写 1 清除标志位, 写 0 无效 PBK0IF bit8 R/W PWM 通道 0 刹车中断标志位 0: 无刹车中断 1: 通道 0 刹车事件产生软件写 1 清除标志位, 写 0 无效 CAP1IF bit7 R/W 输入端口 1 捕捉成功中断标志位 0: 输入端口 1 捕捉未成功 1: 输入端口 1 捕捉成功软件写 1 清除标志位, 写 0 无效 CAP0IF bit6 R/W 输入端口 0 捕捉成功中断标志位 0: 输入端口 0 捕捉未成功 1: 输入端口 0 捕捉成功 V /317

144 TOP1IF bit5 R/W TOP0IF bit4 R/W MAT3IF bit3 R/W MAT2IF bit2 R/W MAT1IF bit1 R/W MAT0IF bit0 R/W 软件写 1 清除标志位, 写 0 无效 T16N_CNT1 匹配计数峰值中断标志位 0: 未匹配 1: 匹配峰值软件写 1 清除标志位, 写 0 无效 T16N_CNT0 匹配计数峰值中断标志位 0: 未匹配 1: 匹配峰值软件写 1 清除标志位, 写 0 无效匹配 3 中断标志位 0: 计数器值与匹配寄存器 3 不相等 1: 计数器值与匹配寄存器 3 相等软件写 1 清除标志位, 写 0 无效匹配 2 中断标志位 0: 计数器值与匹配寄存器 2 不相等 1: 计数器值与匹配寄存器 2 相等软件写 1 清除标志位, 写 0 无效匹配 1 中断标志位 0: 计数器值与匹配寄存器 1 不相等 1: 计数器值与匹配寄存器 1 相等软件写 1 清除标志位, 写 0 无效匹配 0 中断标志位 0: 计数器值与匹配寄存器 0 不相等 1: 计数器值与匹配寄存器 0 相等软件写 1 清除标志位, 写 0 无效 注 1: 在定时 / 计数 捕捉 调制模式下, 均可对计数器 T16N_CNT0 值与匹配寄存器 T16N_MAT0/T16N_MAT1/ T16N_MAT2/T16N_MAT3 值比较是否相等 但在 PWM 调制模式下若设置为独立模式, 即 PWMMOD=2 b0x, 则计数器 T16N_CNT0 值与 T16N_MAT0 和 T16N_MAT1 比较 ; 计数器 T16N_CNT1 值与 T16N_MAT2 和 T16N_MAT3 比较 注 2:T16N 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 3: 对 T16N_IF 寄存器的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 注 4: 刹车使能时, 即 PWMBKE0 或 PWMBKE1 置 1,T16N_IF 寄存器中的 PBK0IF 或 PBK1IF 中断标志位在刹车事件产生时才被置 1 V /317

145 PWM 调制模式死区宽度寄存器 (T16N_PDZ) 偏移地址 :28 H 复位值 : _ _ _ B PDZ<7:0> - bit PDZ<7:0> bit7-0 R/W PWM 调制模式死区宽度寄存器 0x00: 死区为 1 个计数周期 0x01: 死区为 2 个计数周期 0xFF: 死区为 256 个计数周期 PWM 调制模式 ADC 触发寄存器 (T16N_PTR) 偏移地址 :2C H 复位值 : _ _ _ B P1TOP1 TRE P1MAT3T RE P1MAT2 TRE P0TOP0T RE P0MAT1TRE P0MAT0TR E - bit P1TOP1TRE bit7 R/W PWM 通道 1 峰值 1 触发使能 1: 使能触发 ADC 转换 P1MAT3TRE bit6 R/W PWM 通道 1 匹配 3 触发使能 1: 使能触发 ADC 转换 P1MAT2TRE bit5 R/W PWM 通道 1 匹配 2 触发使能 1: 使能触发 ADC 转换 - bit4 - - P0TOP0TRE bit3 R/W PWM 通道 0 峰值 0 触发使能 1: 使能触发 ADC 转换 P0MAT1TRE bit2 R/W PWM 通道 0 匹配 1 触发使能 1: 使能触发 ADC 转换 V /317

146 P0MAT0TRE bit1 R/W PWM 通道 0 匹配 0 触发使能 1: 使能触发 ADC 转换 - bit0 - - T16N 计数匹配寄存器 0(T16N_MAT0) 偏移地址 :30 H 复位值 : _ _ _ B MAT0<15:0> - 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 V /317

147 T16N 计数匹配寄存器 3(T16N_MAT3) 偏移地址 :3C H 复位值 : _ _ _ B MAT3<15:0> - bit MAT3<15:0> bit15-0 R/W T16N 计数匹配值 3 T16N_CNT0 计数峰值寄存器 0(T16N_TOP0) 偏移地址 :40 H 复位值 : _ _ _ B TOP0<15:0> - bit TOP0<15:0> bit15-0 R/W T16N_CNT0 计数峰值寄存器 0 T16N_CNT1 计数峰值寄存器 1(T16N_TOP1) 偏移地址 :44 H 复位值 : _ _ _ B TOP1<15:0> - bit TOP1<15:0> bit15-0 R/W T16N_CNT1 计数峰值寄存器 T16N 应用说明 芯片支持 4 个 16 位定时器 / 计数器, 分别为 T16N0,T16N1,T16N2 和 T16N3 V /317

148 位定时器 / 计数器 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 计数寄存器三种操作 : 保持, 清零, 或继续计数 - 支持 T32N0OUT0/T32N0OUT1 端口四种操作 : 保持, 清零, 置 1, 或取反支持输入捕捉功能 支持捕捉边沿可配置 支持捕捉次数可配置 支持输出调制功能 PWM 结构框图 T32N_MAT0 数值比较器 T32N0OUT0 PCLK T32N0CK0 M U X 预分频 T32N_CNT T32N0IN0 捕捉选择 T32N_MAT0 图 5-7 T32N0 电路结构框图 T32N 定时 / 计数功能设置 T32N_CON0 寄存器的 MOD<1:0> =00 或 01,T32N 工作在定时 / 计数模式 设置 T32N_CON0 寄存器的 EN=1, 使能 T32N, 计数值寄存器 T32N_CNT 从预设值开始累加计数 设置 T32N_CON0 寄存器的 CS, 选择择计数时钟源 时钟源为内部时钟 PCLK 时, 为定时模式 ; 时钟源为外部时钟 T32N0CK0/T32N0CK1 端口输入时, 为计数模式 V /317

149 设置 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 时, 计数值在下一个计数时钟 ( 经过预分频之后的时钟 ) 到来时被清零, 并产生中断, 重新开始累加计数 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_MAT3 后的工作方式 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, 清零, 产生中断, 重新计数 预分频设置为 1:1, 采用内部 PCLK 时钟源 计数匹配功能示意图如下所示 : V /317

150 MAT1IF MAT2IF PCLK T32N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0000 0x0001 图 5-8 T32N0 计数匹配功能示意图 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, 可在 CAP0IF 中断时将 T32N_CNT 和 T32N_PRECNT 清零 ; 若 CAPL0 为零, 则计数器继续累加计数 当 T32N0IN1 端口的状态变化符合所设定的捕捉事件时, 将 T32N_CNT 和 T32N_PRECNT 的当前值分别装载到 T32N_MAT1 和 T32N_MAT3 寄存器中, 产生 T32N_IF 的 CAP1IF 中断, 通过使能 T32N_CON1 寄存器的 CAPL1, 可在 CAP1IF 中断时将 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; V /317

151 T32N_CON1 寄存器中 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-9 T32N0 捕捉功能示意图在捕捉工作模式时, 修改 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 端口的影响 : 保持, 清零, 置 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 ; MAT2 = 0x ;T32N_MAT3 = 0x ; MOD<1:0>=11;T32N 设置为调制输出 MAT0S<1:0>=11;T32N_CNT 继续计数, 并产生中断 V /317

152 MAT1S<1:0>=11;T32N_CNT 继续计数, 并产生中断 MAT2S<1:0>=11;T32N_CNT 继续计数, 并产生中断 MAT3S<1:0>=10;T32N_CNT 清零, 并产生中断 MAT0IF MAT1IF MAT2IF MAT3IF PCLK T32N_CNT 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 T32N0OUT0 T32N0OUT1 图 5-10 T32N0 输出调制功能示意图 注 1: 若 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 计数值 T32N 控制寄存器 0(T32N_CON0) 偏移地址 :04 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, 如果强制写, 有可能写操作不成功 ( 为避免对计数器的 V /317

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

154 1: 使能 T32N 控制寄存器 1(T32N_CON1) 偏移地址 :08 H 复位值 : _ _ _ B MOM3<1:0> MOM2<1:0> MOM1<1:0> MOM0<1:0> MOE1 MOE0 CAPL1 CAPL0 CAPT<3:0> CAPIS1 CAPIS0 CAPNE CAPPE MOM3<1:0> bit31-30 R/W T32N_MAT3 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM2<1:0> bit29-28 R/W T32N_MAT2 匹配后的端口 1 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM1<1:0> bit27-26 R/W T32N_MAT1 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 MOM0<1:0> bit25-24 R/W T32N_MAT0 匹配后的端口 0 工作模式选择位 00: 匹配端口保持 01: 匹配端口清零 10: 匹配端口置 1 11: 匹配端口取反 - bit MOE1 bit17 R/W 输出端口 1 使能位 1: 使能 MOE0 bit16 R/W 输出端口 0 使能位 1: 使能 - bit CAPL1 bit9 W 捕捉 1 重载计数器使能位 1: 使能 V /317

155 CAPL0 bit8 W CAPT<3:0> bit7-4 R/W CAPIS1 bit3 R/W CAPIS0 bit2 R/W CAPNE bit1 R/W CAPPE bit0 R/W 捕捉 0 重载计数器使能位 1: 使能捕捉次数控制位 0: 捕捉 1 次后, 产生装载动作 1: 捕捉 2 次后, 产生装载动作 2: 捕捉 3 次后, 产生装载动作 F: 捕捉 16 次后, 产生装载动作捕捉输入端口 1 使能位 1: 使能捕捉输入端口 0 使能位 1: 使能下降沿捕捉使能位 1: 使能上升沿捕捉使能位 1: 使能 T32N 预分频器计数值寄存器 (T32N_PRECNT) 偏移地址 :10 H 复位值 : _ _ _ B PRECNT<7:0> - bit PRECNT<7:0> bit7-0 R/W T32N 预分频器计数值 T32N 预分频器计数匹配寄存器 (T32N_PREMAT) 偏移地址 :14 H 复位值 : _ _ _ B PREMAT<7:0> V /317

156 - bit PREMAT<7:0> bit7-0 R/W 预分频比例设置 00: 预分频 1:1 01: 预分频 1:2 02: 预分频 1:3 FE: 预分频 1:255 FF: 预分频 1:256 T32N 中断使能寄存器 (T32N_IE) 偏移地址 :18 H 复位值 : _ _ _ B CAP1IE CAP0IE IE MAT3IE MAT2IE MAT1IE MAT0IE - bit CAP1IE bit6 R/W 输入端口 1 捕捉中断使能位 1: 使能 CAP0IE bit5 R/W 输入端口 0 捕捉中断使能位 1: 使能 IE bit4 R/W 匹配 0xFFFFFFFF 中断使能位 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: 使能 V /317

157 T32N 中断标志寄存器 (T32N_IF) 偏移地址 :1C H 复位值 : _ _ _ B CAP1IF CAP0IF IF MAT3IF MAT2IF MAT1IF MAT0IF - bit CAP1IF bit6 R/W 输入端口 1 捕捉成功中断标志位 0: 输入端口 1 捕捉未成功 1: 输入端口 1 捕捉成功软件写 1 清除标志位, 写 0 无效 CAP0IF bit5 R/W 输入端口 0 捕捉成功中断标志位 0: 输入端口 0 捕捉未成功 1: 输入端口 0 捕捉成功软件写 1 清除标志位, 写 0 无效 IF bit4 R/W 匹配 0xFFFFFFFF 中断标志位 0: 计数器值不等于 0xFFFFFFFF 1: 计数器值等于 0xFFFFFFFF 软件写 1 清除标志位, 写 0 无效 MAT3IF bit3 R/W 匹配 3 中断标志位 0: 计数器值与匹配寄存器 3 不相等 1: 计数器值与匹配寄存器 3 相等软件写 1 清除标志位, 写 0 无效 MAT2IF bit2 R/W 匹配 2 中断标志位 0: 计数器值与匹配寄存器 2 不相等 1: 计数器值与匹配寄存器 2 相等软件写 1 清除标志位, 写 0 无效 MAT1IF bit1 R/W 匹配 1 中断标志位 0: 计数器值与匹配寄存器 1 不相等 1: 计数器值与匹配寄存器 1 相等软件写 1 清除标志位, 写 0 无效 MAT0IF bit0 R/W 匹配 0 中断标志位 0: 计数器值与匹配寄存器 0 不相等 1: 计数器值与匹配寄存器 0 相等软件写 1 清除标志位, 写 0 无效 注 1: 在定时 / 计数, 捕捉, 调制模式下, 均可对计数器 T32N_CNT 值与匹配寄存器 T32N_MAT0/T32N_MAT1/ T32N_MAT2/T32N_MAT3 值比较是否相等 注 2:T32N 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 3: 对 T32N_IF 寄存器的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断发生 V /317

158 T32N 计数匹配寄存器 0(T32N_MAT0) 偏移地址 :20 H 复位值 : _ _ _ B MAT0<31:16> MAT0<15:0> MAT0<31:0> bit31-0 R/W T32N 计数匹配值 0 T32N 计数匹配寄存器 1(T32N_MAT1) 偏移地址 :24 H 复位值 : _ _ _ B MAT1<31:16> MAT1<15:0> MAT1<31:0> bit31-0 R/W T32N 计数匹配值 1 T32N 计数匹配寄存器 2(T32N_MAT2) 偏移地址 :28 H 复位值 : _ _ _ B MAT2<31:16> MAT2<15:0> MAT2<31:0> bit31-0 R/W T32N 计数匹配值 2 T32N 计数匹配寄存器 3(T32N_MAT3) 偏移地址 :2C H 复位值 : _ _ _ B MAT3<31:16> MAT3<15:0> MAT3<31:0> bit31-0 R/W T32N 计数匹配值 3 V /317

159 T32N 应用说明 芯片支持 1 个 32 位定时器 / 计数器 T32N 通用异步接收 / 发送器 (UART0/ UART1) 以 UART0 为例,UART1 参考 UART 概述 支持异步接收和异步发送支持内置波特率发生器, 支持 4 位小数波特率和 12 位整数波特率兼容 RS-232/RS-442/RS-485 的通讯接口支持全 / 半双工通讯模式异步接收器 - 支持独立的接收移位寄存器 - 支持硬件自动波特率检测 - 支持 8 级接收缓冲器 - 支持 7/8/9 位数据格式可配, 支持奇偶校验功能可配 - 支持硬件自动奇偶校验位判断 - 支持空闲帧检测 - 支持接收 FIFO 中断 : 字节满中断 半字满中断 字满中断 全满中断 - 支持 3 类接收错误中断 : 接收 FIFO 溢出错误 奇偶校验错误 帧结束错误 异步发送器 - 支持独立的发送移位寄存器 - 支持 8 级发送 FIFO - 支持 7/8/9 位数据格式可配, 支持奇偶校验功能可配 - 支持 1/2 位停止位可配 - 支持硬件自动产生发送奇偶校验位 - 支持发送 FIFO 中断 : 字节空中断 半字空中断 字空中断 全空中断 - 支持发送 FIFO 写入错误中断 支持 PWM 调制输出, 且 PWM 占空比线性可调 支持 UART 输入输出通讯端口极性可配置 UART 接收端口支持红外唤醒功能 V /317

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

161 据寄存器 UART_TBW 写入发送的数据, 通过接收数据寄存器 UART_RBR 读取接收的数据 UART 异步发送器发送数据时, 起始位 START 和停止位 STOP 由芯片硬件电路自动产生, 用户只需要配置相应的 I/O 端口复用功能 ; 配置 UART_BRR 和 UART_CON0 寄存器的 BCS, 设定传输波特率 ;UART_CON0 寄存器中配置 TXMOD, 选择发送的数据格式 ; 配置 TXFS, 选择发送的停止位数 ; 配置 TXEN, 使能数据发送 ; 将要发送的数据写入发送数据寄存器 UART_TBW, 就可以开始数据的异步发送 如果数据格式支持奇偶校验位, 硬件电路会根据相应的数据位产生校验位, 在数据位后自动发送校验位 配置 UART_CON0 寄存器的 TXP, 可选择发送端口极性 选择为正极性时, 发送端口的数据与被发送数据一致 ; 选择为负极性时, 发送端口的数据与被发送数据相反, 即被发送数据位为 1 时, 发送端口的数据位为 0 支持 8 级发送缓冲器 TB0~TB7 和 1 级发送移位寄存器, 可进行数据的连续发送, 直到发送缓冲器和移位寄存器全空, 最多可连续写入和发送 9 帧数据, 配置 UART_CON0 寄存器的 TXFS 可选择相邻两帧数据发送的时间间隔 发送缓冲器 TB0~TB7 为只读寄存器, 只能通过发送数据寄存器 UART_TBW 写入 发送数据寄存器 UART_TBW 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 写该寄存器地址单元时, 实际上是将发送数据写入到发送缓冲器 TB0~TB7 中, 再传输到发送移位寄存器, 通过发送端口 TX0 进行数据发送 发送数据寄存器 UART_TBW 支持 3 种写入方式 : 字节写入, 半字写入和字写入 当发送数据为 7 位和 8 位数据格式时 : 字节方式写入 UART_TBW 时, 发送数据被写入到发送缓冲器 TB7; 半字方式写入 UART_TBW 时, 发送数据被同时写入到发送缓冲器 TB7 和 TB6, 其中低字节存放在 TB6 中 ; 字方式写入 UART_TBW 时, 发送数据被同时写入到发送缓冲器 TB7,TB6,TB5 和 TB4, 其中低字节存放在 TB4 中 当发送数据为 9 位数据格式时 : 只能以半字或字方式写入 UART_TBW, 且发送数据均被写入到发送缓冲器 TB7 发送数据从写入到发送到端口的数据流示意图如下所示 : UART_TBW TB7 TB6 TB1 TB0 发送移位寄存器 TX0 端口 图 5-15 UART0 发送数据流示意图 当发送缓冲器 TB0~TB7 被写入数据时, 硬件自动置起 UART_TB0~UART_TB7 寄存器的空满标志 TBFF0~TBFF7=1, 当发送缓冲器 TB0~TB7 的数据移到下一级缓冲器或发送移位寄存器后, 硬件自动清除空满标志 TBFF0~TBFF7 当缓冲器 TB7 的发送空满标志 TBFF7 为 1 时, 表示 8 级发送缓冲器和发送移位寄存器均满, 此时如果仍继续写入 UART_TBW, 则会置起写发送缓冲溢出中断标志 TBWOIF, 同时新写入的数据无效, 缓冲器数据仍保持 当字节写操作地址非最低字节, 或半字写操作地址非低半字时, 则会置起写发送缓冲错误中断标志 TBWEIF, 同时新写入的数据无效, 缓冲器数据仍保持 当发送端口正在发送数据时, 会置起发送状态位 TXBUSY=1, 当 8 级发送缓冲器和发送 V /317

162 移位寄存器均空时, 会置起 UART_IF 寄存器的发送完成中断标志 TCIF, 并清除发送状态位 TXBUSY=0, 表示当前的数据发送进程结束 支持发送缓冲器空中断, 配置 UART_CON1 寄存器中 TBIM, 可选择中断模式 TBIM<1:0>=00, 为字节空产生中断, 即发送缓冲器 TB7 为空时, 会置起 UART_IF 寄存器的发送缓冲器空中断标志 TBIF; TBIM<1:0>=01, 为半字空产生中断, 即发送缓冲器 TB7 和 TB6 均为空时, 会置起 UART_IF 寄存器的发送缓冲器空中断标志 TBIF; TBIM<1:0>=10, 为字空产生中断, 即发送缓冲器 TB7~TB4 均为空时, 会置起 UART_IF 寄存器的发送缓冲器空中断标志 TBIF; TBIM<1:0>= 11, 为全空产生中断, 即发送缓冲器 TB7~TB0 均为空时, 会置起 UART_IF 寄存器的发送缓冲器空中断标志 TBIF 配置 UART_CON0 寄存器中 TBCLR, 可将写入发送缓冲器的全部数据清空, 同时清除 UART_TB0~UART_TB7 寄存器的各发送缓冲器 TB0~TB7 的空满标志 TBFF0~TBFF7=0 被清空的发送缓冲器中的数据将不会被发送, 但移位寄存器中的数据仍将会被发送 UART_CON0 寄存器中配置 TRST, 可将异步发送器软件复位, 复位后 : 禁止数据发送 TXEN=0; 禁止 UART_IE 寄存器中发送相关中断 TBIE=0,TBWEIE=0; 复位 UART_IF 寄存器的相关中断标志为默认值 TBIF=1,TBWEIF=0; 清除发送忙标志 TXBUSY=0; 清除各发送缓冲器空满标志 TBFF0~TBFF7=0 发送数据的操作流程图示例如下 : V /317

163 开始 配置 I/O 端口复用功能 配置异步发送器 : BCS,UART_BRR, TXMOD,TXFS,TBIM 使能 TXEN 写 UART_TBW TXBUSY=0 或 TBIF=1? N Y N 发送完成 Y 禁止 TXEN 结束 图 5-16 UART0 发送数据操作流程图示例 UART 异步接收器接收数据时, 配置相应的 I/O 端口复用功能 ; 配置 UART_BRR 寄存器和 UART_CON1 寄存器的 BCS, 设定传输波特率 ; 配置 RXMOD, 选择接收的数据格式 ; 配置 RXEN, 使能数据接收, 就可以开始数据的异步接收 如果数据格式支持奇偶校验位, 硬件电路会自动判断奇偶校验位是否正确, 若不正确则会置起 UART_IF 寄存器的奇偶校验错误中断标志 PEIF 如果接收到的第 1 位停止位不为高电平, 则会置起 UART_IF 寄存器的帧错误中断标志 FEIF UART_CON0 寄存器中配置 RXP, 可选择接收端口极性 选择为正极性时, 接收端口的数据即作为接收数据 ; 选择为负极性时, 接收端口的数据取反后, 作为接收数据, 即接收端口的数据位为 1 时, 接收的数据位为 0 支持 8 级接收缓冲器 RB0~RB7 和 1 级接收移位寄存器, 可进行数据的连续接收, 直到接收缓冲器和移位寄存器全满, 最多可连续接收 9 帧数据, 再执行数据读取操作 读取接收数据寄存器 UART_RBR, 可得到接收的数据, 对应的接收缓冲器清除 UART_RB0~ UART_RB7 寄存器的满标志 RBFF0~RBFF7; 也可以读取接收缓冲器 RB0~RB7 得到接收的数据, 但不会清除满标志 RBFF0~RBFF7 接收数据寄存器 UART_RBR 为一个虚拟地址单元, 物理上不存在实际的寄存器电路, 读 V /317

164 该寄存器地址单元时, 实际上是读取接收缓冲器 RB0~RB7 中的数据 接收数据寄存器 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 RB6 RB7 接收移位寄存器 RX0 端口 图 5-17 UART0 接收数据流示意图 接收缓冲器 RB0~RB7 的数据移到下一级缓冲器后, 会清除其接收满标志 RBFF0~RBFF7 当 8 级接收缓冲器和 1 级接收移位寄存器均满时, 如果再次接收到数据起始位, 会置起接收数据溢出中断标志 ROIF, 同时不会接收新数据, 缓冲器数据仍保持 当 8 级接收缓冲器和接收移位寄存器均空时, 会清除接收忙标志 RXBUSY, 表示当前无数据接收 支持接收缓冲器满中断, 配置 UART_CON1 寄存器的 RBIM, 可选择中断模式 RBIM<1:0>=00, 为字节满产生中断, 即接收缓冲器 RB0 为满时, 会置起 UART_IF 寄存器的中断标志 RBIF; RBIM<1:0>=01, 为半字满产生中断, 即接收缓冲器 RB0 和 RB1 均为满时, 会置起 UART_IF 寄存器的中断标志 RBIF; RBIM<1:0>=10, 为字满产生中断, 即接收缓冲器 RB0~RB3 均为满时, 会置起 UART_IF 寄存器的中断标志 RBIF; RBIM<1:0>= 11, 为全满产生中断, 即接收缓冲器 RB0~RB7 均为满时, 会置起 UART_IF 寄存器的中断标志 RBIF 配置 UART_CON0 寄存器 RBCLR, 可将接收缓冲器接收到的全部数据清空, 同时清除各接收缓冲器满标志 RBFF0~RBFF7=0, 已经在接收过程中的数据将不受影响 配置 UART_CON0 寄存器 RRST, 可将异步接收器软件复位, 复位后 : 禁止数据接收 RXEN=0;UART_IE 寄存器中禁止接收相关中断 RBIE=0,ROIE=0,FEIE=0,PEIE=0; UART_IF 寄存器中复位相关中断标志为默认值 RBIF=0,ROIF=0,FEIF=0,PEIF=0; 清除接收忙标志 RXBUSY=0; 清除各接收缓冲器满标志 RBFF0~RBFF7=0; 清除各接收缓冲器错误标志 FE0~FE7=0,PE0~ PE7=0 接收数据的操作流程图示例如下 : V /317

165 开始 配置 I/O 端口复用功能 配置异步接收器 : BCS,UART_BRR, RXMOD,RBIM 使能 RXEN RBIF=1? N Y 读取 UART_RBR N 接收完成 Y 禁止 RXEN 结束 图 5-18 UART0 接收数据操作流程图示例 UART 发送调制功能发送调制模式是将 UART 传输到发送端口的信号电平, 由 T16N 产生的 PWM 信号源或 BUZ 信号进行调制后, 再从发送端口 TX0 输出 配置 TX0PS, 可配置 UART 调制模式 配置 GPIO_TXPWM 寄存器的 TX0PLV, 选择发送端口 TX0 被调制的信号电平 配置 TX0_S0 TX0_S1 TX0_S2 和 TX0_S3, 使能调制信号输出到端口 UART 调制功能使用的 PWM 信号源, 由 T16N 或 BUZ 提供 配置 TX0PS, 可选择与 TX0 输出端口进行调制的 PWM 信号源 TX0 原始信号 T16N0 PWM 信号 TX0 端口调制输出 图 5-19 TX0 高电平调制输出波形图 V /317

166 TX0 原始信号 T16N0 PWM 信号 TX0 端口调制输出 图 5-20 TX0 低电平调制输出波形图 UART 红外唤醒功能芯片支持 UART 接收端口的红外唤醒功能, 需要通过软件控制实现 使能 UART 接收复用端口 RX0 的外部端口中断 PINT 功能, 通过端口的 PINT 中断实现芯片的红外唤醒功能 对中断和唤醒的具体控制操作, 可参考外部端口中断和浅睡眠模式, 唤醒模式的相关章节描述 UART 端口极性配置 UART_CON0 寄存器 TXP 和 RXP, 可分别选择发送端口 TX0 和接收端口 RX0 的正负极性 选择为正极性时,UART 端口数据与传输的数据一致 ; 选择为负极性时,UART 端口数据与传输的数据相反 UART 自动波特率检测接收数据时, 配置 UART_CON0 寄存器的 BDEN 可使能自动波特率检测功能, 配置 UART_CON1 寄存器的 BDM 可选择自动波特率检测的模式 UART_CON1 寄存器中 BDM<1:0>=00, 选择模式 1, 接收数据流需以二进制 1 开始 ( 即接收数据的最低位为 1B), UART 检测起始位波特率 ; BDM<1:0>=01, 选择模式 2, 接收数据流需以二进制 10 开始 ( 即接收数据的最低两位为 01B), UART 检测起始位和数据第一位波特率 ; BDM<1:0>=10, 选择模式 3, 接收数据流需以二进制 1111_1110 开始 ( 即接收第一帧数据为 7F H ), UART 检测起始位及前 7 个数据位波特率 ; BDM<1:0>=11, 选择模式 4, 接收数据流需以二进制 1010_1010 开始 ( 即接收第一帧数据为 55 H ), UART 检测起始位及前 7 个数据位波特率 检测完成后, 硬件自动清除 BDEN 关闭自动波特率检测功能 若检测成功将更新波特率寄存器 UART_BRR, 并将这一帧数据写入接收缓冲器中, 用户可从接收缓冲器中读取该数据 ; 若检测超时, 将置起 UART_IF 寄存器的波特率检测错误中断标志 BDEIF=1, 但波特率寄存器将不会被更新, 接收缓冲器不会写入新的数据 若接收的数据格式为 7 位数据或者 7 位数据之后的校验位不固定为 0 时, 模式 3 和模式 4 将不适用, 必须选择模式 1 和模式 2 其它接收的数据格式只要满足各模式起始字符, 即可任意配置 自动波特率检测不受初始配置的波特率值影响, 但需要根据应用条件, 配置合适的波特率时钟预分频选择位 BCS V /317

167 RX RXEN BDEN BDM 0x3 UART_BRR XX A B BDCNT 0x00 A B B+1 RBFF0 软件读取 UART_RBR RB0 XX 0x55 图 5-21 自动波特率检测时序示意图 RX RXEN BDEN BDM 0x3 UART_BRR XX A BDCNT 0x00 A 0xFFFF 0x00 BDEIF 软件清零 图 5-22 自动波特率检测错误时序示意图 UART 空闲帧检测接收数据时, 配置 UART_CON0 寄存器的 IDEN 可使能空闲帧检测功能, 配置 UART_CON1 寄存器的 IDM 可选择空闲帧检测的模式 IDM<1:0>=00, 将检测连续 10 个比特位空闲 ; IDM<1:0>=01, 将检测连续 11 个比特位空闲 ; IDM<1:0>=10, 将检测连续 12 个比特位空闲 ; IDM<1:0>=11, 将检测连续 13 个比特位空闲 当检测到空闲帧后, 将置起 UART_IF 寄存器的接收空闲帧中断标志位 IDIF=1 硬件在接收到数据之后才会触发空闲帧检测, 使能空闲帧检测功能后若接收数据线始终为空闲, 则不会影响接收空闲帧中断标志位 V /317

168 10 bits 10 bits 10 bits RX IDEN RXEN IDM XX 0x0 IDIF 软件清零 RB0 XX 图 5-23 空闲帧检测时序示意图 0x UART 发送暂停和接收暂停配置 TXI 可暂停发送数据,TX0 端口将相应为空闲电平, 发送缓冲器中的数据将保持不变 若此时正在发送数据, 则待当前帧数据发送完成后才会被暂停 配置 RXI 可暂停接收数据, 接收缓冲器中的数据将保持不变 若此时正在接收数据, 则该一帧数据将被丢弃, 不会写入接收缓冲器中 接收被暂停后, 不会影响接收数据的校验位判断和接收空闲帧检测 特殊功能寄存器 UART 控制寄存器 0(UART_CON0) 偏移地址 :00 H 复位值 : _ _ _ B RXP RXMOD<3:0> IDEN BDEN RXI RBCLR RRST RXEN TXFS TXP TXMOD<3:0> TXI TBCLR TRST TXEN bit31-29 RXP bit28 R/W 接收端口极性选择位 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) RXMOD<3:0> bit27-24 R/W 接收数据格式选择位 0000:8 位数据 0010:9 位数据 0100:7 位数据 1000:8 位数据 + 偶校验位 1001:8 位数据 + 奇校验位 1010:8 位数据 + 固定 :8 位数据 + 固定 :7 位数据 + 偶校验位 1101:7 位数据 + 奇校验位 1110:7 位数据 + 固定 0 V /317

169 1111:7 位数据 + 固定 1 其他 : 未用 bit23-22 IDEN bit21 R/W 空闲帧检测使能位 1: 使能 BDEN bit20 R/W 自动波特率检测使能位 1: 使能 RXI bit19 R/W 接收暂停功能使能位 1: 使能 RBCLR bit18 W 接收缓冲器清除 0: 读取时始终为 0 1: 清除接收缓冲器 RRST bit17 W 接收器软件复位 0: 读取时始终为 0 1: 软件复位 RXEN bit16 R/W 接收使能位 1: 使能 bit15-14 TXFS bit13 R/W 发送帧停止位选择位 0:1 位停止位 1:2 位停止位 TXP bit12 R/W 发送端口极性选择位 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) TXMOD<3:0> bit11-8 R/W 发送数据格式选择位 0000:8 位数据 0010:9 位数据 0100:7 位数据 1000:8 位数据 + 偶校验位 1001:8 位数据 + 奇校验位 1010:8 位数据 + 固定 :8 位数据 + 固定 :7 位数据 + 偶校验位 1101:7 位数据 + 奇校验位 1110:7 位数据 + 固定 :7 位数据 + 固定 1 其他 : 未用 bit7-4 TXI bit3 R/W 发送暂停功能使能位 V /317

170 TBCLR bit2 W TRST bit1 W TXEN bit0 R/W 1: 使能发送缓冲器清除 0: 读取时始终为 0 1: 清除发送缓冲器发送器软件复位 0: 读取时始终为 0 1: 软件复位发送使能位 1: 使能 UART 控制寄存器 1(UART_CON1) 偏移地址 :04 H 复位值 : _ _ _ B IDM<1:0> BDM<1:0> BCS<2:0> RBIM<1:0> TBIM<1:0> bit31-18 IDM<1:0> bit17-16 R/W 空闲帧检测模式选择位 00: 连续 10 个比特空闲 01: 连续 11 个比特空闲 10: 连续 12 个比特空闲 11: 连续 13 个比特空闲 bit15-14 BDM<1:0> bit13-12 R/W 自动波特率模式选择位 00: 模式 1 01: 模式 2 10: 模式 3 11: 模式 4 bit11 BCS<2:0> bit10-8 R/W 波特率时钟预分频选择位 000: 波特率时钟关闭 001:PCLK 010:PCLK/2 011:PCLK/4 1xx:PCLK/8 bit7-6 RBIM<1:0> bit5-4 R/W 接收缓冲满中断模式选择位 00: 字节满产生中断 ( 缓冲器数据多于 1 个字节 ) V /317

171 01: 半字满产生中断 ( 缓冲器数据多于 2 个字节 ) 10: 字满产生中断 ( 缓冲器数据多于 4 个字节 ) 11: 全满产生中断 ( 缓冲器数据满 ) bit3-2 TBIM<1:0> bit1-0 R/W 发送缓冲空中断模式选择位 00: 字节空产生中断 ( 缓冲器 1 个字节以上为空 ) 01: 半字空产生中断 ( 缓冲器 2 个字节以上为空 ) 10: 字空产生中断 ( 缓冲器 4 个字节以上为空 ) 11: 全空产生中断 ( 缓冲器全部为空 ) 注 1:UART_CON1 寄存器中 BDM 模式操作方式如下 : 模式 1: 数据流以二进制 1 开始 ( 即接收数据的最低位为 1B), 检测起始位波特率 ; 模式 2: 数据流以二进制 10 开始 ( 即接收数据的最低两位为 01B), 检测起始位及数据第一位波特率 ; 模式 3: 数据流以二进制 1111_1110 开始 ( 即接收数据 7F H), 检测起始位及前 7 个数据位 ; 模式 4: 数据流以二进制 1010_1010 开始 ( 即接收数据 55 H), 检测起始位及前 7 个数据位 注 2: 若接收的数据的格式为 7 位数据或者 7 位数据之后的校验位不固定为 0 时, 模式 3 和模式 4 将不适用, 必须选择模式 1 和模式 2 其他接收数据格式只要满足各模式起始字符, 可任意配置 UART 波特率寄存器 (UART_BRR) 偏移地址 :10 H 复位值 : _ _ _ B BRINT<11:0> BRFRA<3:0> bit31-16 BRINT<11:0> bit15-4 R/W 传输波特率整数位 BRFRA<3:0> bit3-0 R/W 传输波特率小数位 注 1: 当 UART_BRR 表示为 16 位无符号数, 其中 4 位小数位,12 位整数位, 其数值表示的是 UART 波特率分频数 例如 :0x0104( 十进制为 260) 则表示为分频数 BRRDIV=260/16=16.25;0x0156( 十进制为 342) 则表示为分频数 BRRDIV=342/16= 注 2: 当 UART_BRR 表示的波特率分频数小于 1.0 时, 则硬件固定为 BRRDIV=1.0 注 3:UART 传输波特率计算公式如下 : Fpclk BAUD = 16 n BRRDIV 其中 Fpclk 为系统时钟频率,n 为波特率时钟预分频数, 由 UART_CON1 寄存器中 BCS<2:0> 决定 BCS<2:0>=001 时 :n = 1; BCS<2:0>=010 时 :n = 2; BCS<2:0>=011 时 :n = 4; BCS<2:0>=1xx 时 :n = 8 V /317

172 UART 状态寄存器 (UART_STA) 偏移地址 :14 H 复位值 : _ _ _ B PER3 FER3 PER2 FER2 PER1 FER1 PER0 FER0 RXBUSY RBOV RBPTR<3:0> TXBUSY TBOV TBPTR<3:0> bit31-24 PER3 bit23 R 当前读取的 BYTE3 校验错误位 0: 正确 1: 错误 FER3 bit22 R 当前读取的 BYTE3 帧格式错误位 0: 正确 1: 错误 PER2 bit21 R 当前读取的 BYTE2 校验错误位 0: 正确 1: 错误 FER2 bit20 R 当前读取的 BYTE2 帧格式错误位 0: 正确 1: 错误 PER1 bit19 R 当前读取的 BYTE1 校验错误位 0: 正确 1: 错误 FER1 bit18 R 当前读取的 BYTE1 帧格式错误位 0: 正确 1: 错误 PER0 bit17 R 当前读取的 BYTE0 校验错误位 0: 正确 1: 错误 FER0 bit16 R 当前读取的 BYTE0 帧格式错误位 0: 正确 1: 错误 bit15-14 RXBUSY bit13 R 接收状态位 0: 接收空闲 1: 正在接收 RBOV bit12 R 接收缓冲器溢出状态位 0: 未溢出 1: 溢出 RBPTR<3:0> bit11-8 R 接收缓冲器中数据字节数 0000:0 字节 V /317

173 1000:8 字节 bit7-6 TXBUSY bit5 R 发送状态位 0: 发送空闲 1: 正在发送 TBOV bit4 R 发送缓冲器溢出状态位 0: 未溢出 1: 溢出 TBPTR<3:0> bit3-0 R 发送缓冲器中数据字节数 0000:0 字节 1000:8 字节 UART 中断使能寄存器 (UART_IE) 偏移地址 :18 H 复位值 : _ _ _ B RBROIE RBREIE BDEIE PEIE FEIE ROIE IDIE RBIE TBWOIE TBWEIE TCIE TBIE bit31-30 RBROIE bit29 R/W 读接收缓冲溢出中断使能位 1: 使能 RBREIE bit28 R/W 读接收缓冲错误中断使能位 1: 使能 BDEIE bit27 R/W 波特率检测错误中断使能位 1: 使能 PEIE bit26 R/W 接收校验错误中断使能位 1: 使能 FEIE bit25 R/W 接收帧错误中断使能位 1: 使能 ROIE bit24 R/W 接收数据溢出中断使能位 1: 使能 bit23-18 IDIE bit17 R/W 接收空闲帧中断使能位 V /317

174 1: 使能 RBIE bit16 R/W 接收缓冲器满中断使能位 1: 使能 bit15-10 TBWOIE bit9 R/W 写发送缓冲溢出中断使能位 1: 使能 TBWEIE bit8 R/W 写发送缓冲错误中断使能位 1: 使能 bit7-2 TCIE bit1 R/W 发送完成中断使能位 1: 使能 TBIE bit0 R/W 发送缓冲器空中断使能位 1: 使能 UART 中断标志寄存器 (UART_IF) 偏移地址 :1C H 复位值 : _ _ _ B RBROIF RBREIF BDEIF PEIF FEIF ROIF IDIF RBIF TBWOIF TBWEIF TCIF TBIF bit31-30 RBROIF bit29 R/W 读接收缓冲溢出中断标志位 0: 读接收缓冲未溢出 1: 读接收缓冲溢出软件写 1 清除标志位, 写 0 无效 RBREIF bit28 R/W 读接收缓冲错误中断标志位 0: 读接收缓冲未错误 1: 读接收缓冲错误软件写 1 清除标志位, 写 0 无效 BDEIF bit27 R/W PEIF bit26 R/W 波特率检测错误中断标志位 0: 波特率检测未错误 1: 波特率检测错误软件写 1 清除标志位, 写 0 无效接收校验错误中断标志位 0: 接收校验正常 V /317

175 1: 接收校验错误 软件写 1 清除标志位, 写 0 无效 FEIF bit25 R/W 接收帧错误中断标志位 0: 接收帧正常 1: 接收帧错误软件写 1 清除标志位, 写 0 无效 ROIF bit24 R/W 接收数据溢出中断标志位 0: 未溢出 1: 溢出软件写 1 清除标志位, 写 0 无效 bit23-18 IDIF bit17 R/W 接收空闲帧中断标志位 0: 未接收到空闲帧 1: 接收到空闲帧软件写 1 清除标志位, 写 0 无效 RBIF bit16 R 接收缓冲器满中断标志位 0: 非满 1: 满 ( 满足 RBIM 所选择的条件 ) 读 UART_RBR 寄存器可清除标志位 bit15-10 TBWOIF bit9 R/W 写发送缓冲溢出中断标志位 0: 写发送缓冲未溢出 1: 写发送缓冲溢出软件写 1 清除标志位, 写 0 无效 TBWEIF bit8 R/W 写发送缓冲错误中断标志位 0: 写发送缓冲未错误 1: 写发送缓冲错误软件写 1 清除标志位, 写 0 无效 bit7-2 TCIF bit1 R/W TBIF bit0 R 发送完成中断标志位 0: 发送未完成 1: 发送已完成软件写 1 清除标志位, 写 0 无效发送缓冲器空中断标志位 0: 非空 1: 空 ( 满足 TBIM 所选择的条件 ) 写 UART_TBW 寄存器可清除标志位 注 1:UART 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 2: 对 UART_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中 断发生 V /317

176 UART 发送数据写入寄存器 (UART_TBW) 偏移地址 :20 H 复位值 :XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX B TBW<31:16> TBW<15:0> TBW<31:0> bit31-0 W 写入的发送数据字节写入时 : 仅允许对 UART_TBW<7:0> 写入半字写入时 : 仅允许对 UART_TBW<15:0> 写入字写入时 : 对 UART_TBW<31:0> 写入 UART 接收数据读取寄存器 (UART_RBR) 偏移地址 :24 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(UART_TB0) 偏移地址 :40 H 复位值 : _ _ _ B TBFF0 TP0 TB0<8:0> bit31-14 TBFF0 bit13 R 发送缓冲器 0 空满标志位 0: 空 1: 满 TP0 bit12 R 发送的奇偶校验位发送缓冲器 0 对应的奇偶校验位 V /317

177 bit11-9 TB0<8:0> bit8-0 R 发送缓冲器 0 数据 UART 发送缓冲寄存器 1(UART_TB1) 偏移地址 :44 H 复位值 : _ _ _ B TBFF1 TP1 TB1<8:0> bit31-14 TBFF1 bit13 R 发送缓冲器 1 空满标志位 0: 空 1: 满 TP1 bit12 R 发送的奇偶校验位发送缓冲器 1 对应的奇偶校验位 bit11-9 TB1<8:0> bit8-0 R 发送缓冲器 1 数据 UART 发送缓冲寄存器 2(UART_TB2) 偏移地址 :48 H 复位值 : _ _ _ B TBFF2 TP2 TB2<8:0> bit31-14 TBFF2 bit13 R 发送缓冲器 2 空满标志位 0: 空 1: 满 TP2 bit12 R 发送的奇偶校验位发送缓冲器 2 对应的奇偶校验位 bit11-9 TB2<8:0> bit8-0 R 发送缓冲器 2 数据 V /317

178 UART 发送缓冲寄存器 3(UART_TB3) 偏移地址 :4C H 复位值 : _ _ _ B TBFF3 TP3 TB3<8:0> bit31-14 TBFF3 bit13 R 发送缓冲器 3 空满标志位 0: 空 1: 满 TP3 bit12 R 发送的奇偶校验位发送缓冲器 3 对应的奇偶校验位 bit11-9 TB3<8:0> bit8-0 R 发送缓冲器 3 数据 UART 发送缓冲寄存器 4(UART_TB4) 偏移地址 :50 H 复位值 : _ _ _ B TBFF4 TP4 TB4<8:0> bit31-14 TBFF4 bit13 R 发送缓冲器 4 空满标志位 0: 空 1: 满 TP4 bit12 R 发送的奇偶校验位发送缓冲器 4 对应的奇偶校验位 bit11-9 TB4<8:0> bit8-0 R 发送缓冲器 4 数据 UART 发送缓冲寄存器 5(UART_TB5) 偏移地址 :54 H 复位值 : _ _ _ B TBFF5 TP5 TB5<8:0> V /317

179 bit31-14 TBFF5 bit13 R 发送缓冲器 5 空满标志位 0: 空 1: 满 TP5 bit12 R 发送的奇偶校验位发送缓冲器 5 对应的奇偶校验位 bit11-9 TB5<8:0> bit8-0 R 发送缓冲器 5 数据 UART 发送缓冲寄存器 6(UART_TB6) 偏移地址 :58 H 复位值 : _ _ _ B TBFF6 TP6 TB6<8:0> bit31-14 TBFF6 bit13 R 发送缓冲器 6 空满标志位 0: 空 1: 满 TP6 bit12 R 发送的奇偶校验位发送缓冲器 6 对应的奇偶校验位 bit11-9 TB6<8:0> bit8-0 R 发送缓冲器 6 数据 UART 发送缓冲寄存器 7(UART_TB7) 偏移地址 :5C H 复位值 : _ _ _ B TBFF7 TP7 TB7<8:0> bit31-14 TBFF7 bit13 R 发送缓冲器 7 空满标志位 0: 空 1: 满 TP7 bit12 R 发送的奇偶校验位发送缓冲器 7 对应的奇偶校验位 V /317

180 bit11-9 TB7<8:0> bit8-0 R 发送缓冲器 7 数据 UART 接收缓冲寄存器 0(UART_RB0) 偏移地址 :60 H 复位值 : _ _ _ B PE0 FE0 RBFF0 RP0 RB0<8:0> bit31-16 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 接收缓冲寄存器 1(UART_RB1) 偏移地址 :64 H 复位值 : _ _ _ B PE1 FE1 RBFF1 RP1 RB1<8:0> bit31-16 PE1 bit15 R 接收缓冲器 1 数据校验错误标志位 0: 正确 1: 错误 FE1 bit14 R 接收缓冲器 1 数据帧错误标志位 0: 正确 V /317

181 1: 错误 RBFF1 bit13 R 接收缓冲器 1 空满标志位 0: 空 1: 满 RP1 bit12 R 接收的奇偶校验位接收缓冲器 1 对应的奇偶校验位 bit11-9 RB1<8:0> bit8-0 R 接收缓冲器 1 数据 UART 接收缓冲寄存器 2(UART_RB2) 偏移地址 :68 H 复位值 : _ _ _ B PE2 FE2 RBFF2 RP2 RB2<8:0> bit31-16 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 接收缓冲寄存器 3(UART_RB3) 偏移地址 :6C H 复位值 : _ _ _ B PE3 FE3 RBFF3 RP3 RB3<8:0> V /317

182 bit31-16 PE3 bit15 R 接收缓冲器 3 数据校验错误标志位 0: 正确 1: 错误 FE3 bit14 R 接收缓冲器 3 数据帧错误标志位 0: 正确 1: 错误 RBFF3 bit13 R 接收缓冲器 3 空满标志位 0: 空 1: 满 RP3 bit12 R 接收的奇偶校验位接收缓冲器 3 对应的奇偶校验位 bit11-9 RB3<8:0> bit8-0 R 接收缓冲器 3 数据 UART 接收缓冲寄存器 4(UART_RB4) 偏移地址 :70 H 复位值 : _ _ _ B PE4 FE4 RBFF4 RP4 RB4<8:0> bit31-16 PE4 bit15 R 接收缓冲器 4 数据校验错误标志位 0: 正确 1: 错误 FE4 bit14 R 接收缓冲器 4 数据帧错误标志位 0: 正确 1: 错误 RBFF4 bit13 R 接收缓冲器 4 空满标志位 0: 空 1: 满 RP4 bit12 R 接收的奇偶校验位接收缓冲器 4 对应的奇偶校验位 bit11-9 RB4<8:0> bit8-0 R 接收缓冲器 4 数据 V /317

183 UART 接收缓冲寄存器 5(UART_RB5) 偏移地址 :74 H 复位值 : _ _ _ B PE5 FE5 RBFF5 RP5 RB5<8:0> bit31-16 PE5 bit15 R 接收缓冲器 5 数据校验错误标志位 0: 正确 1: 错误 FE5 bit14 R 接收缓冲器 5 数据帧错误标志位 0: 正确 1: 错误 RBFF5 bit13 R 接收缓冲器 5 空满标志位 0: 空 1: 满 RP5 bit12 R 接收的奇偶校验位接收缓冲器 5 对应的奇偶校验位 bit11-9 RB5<8:0> bit8-0 R 接收缓冲器 5 数据 UART 接收缓冲寄存器 6(UART_RB6) 偏移地址 :78 H 复位值 : _ _ _ B PE6 FE6 RBFF6 RP6 RB6<8:0> bit31-16 PE6 bit15 R 接收缓冲器 6 数据校验错误标志位 0: 正确 1: 错误 FE6 bit14 R 接收缓冲器 6 数据帧错误标志位 0: 正确 1: 错误 RBFF6 bit13 R 接收缓冲器 6 空满标志位 0: 空 1: 满 V /317

184 RP6 bit12 R 接收的奇偶校验位接收缓冲器 6 对应的奇偶校验位 bit11-9 RB6<8:0> bit8-0 R 接收缓冲器 6 数据 UART 接收缓冲寄存器 7(UART_RB7) 偏移地址 :7C H 复位值 : _ _ _ B PE7 FE7 RBFF7 RP7 RB7<8:0> bit31-16 PE7 bit15 R 接收缓冲器 7 数据校验错误标志位 0: 正确 1: 错误 FE7 bit14 R 接收缓冲器 7 数据帧错误标志位 0: 正确 1: 错误 RBFF7 bit13 R 接收缓冲器 7 空满标志位 0: 空 1: 满 RP7 bit12 R 接收的奇偶校验位接收缓冲器 7 对应的奇偶校验位 bit11-9 RB7<8:0> bit8-0 R 接收缓冲器 7 数据 UART 应用说明芯片支持 2 个通用异步接收 / 发送器为 UART0,UART1 UART 的发送脉宽调制模式, 使用 T16N 或 BUZ 产生的 PWM 脉冲进行调制, 然后通过 TX0/TX1 端口输出调制后的信号, 与 PWM 脉冲本身是否通过 T16N 输出端口 0 和 T16N 输出端口 1 或 BUZ 端口输出无关, 所以对 T16N 或 BUZ 的输出调制模式, 即使芯片不支持其 I/O 端口复用功能, 仍可以在正确配置后, 产生 PWM 脉冲分别对 TX0,TX1 输出端口的信号进行调制 V /317

185 5. 3 增强型通用异步接收 / 发送器 (EUART0) 概述 配置为普通 UART 模式, 与 UART 功能完全兼容 配置为 7816 模式, 支持 7816 通讯协议 支持异步接收器 / 发送器 支持半双工通讯模式 支持 8 位数据位和 1 位奇偶校验位数据传输格式 支持自动重发重收功能 支持可配置内部时钟输出 支持双通道通讯可配置 结构框图 APB_EUART EUART 发送器 EUART 接收器 MUX E0TX0/E0CK0 E0TX1/E0CK1 E0RX0/E0IO0 E0RX1/E0IO1 波特率时钟电路 图 5-24 EUART0 电路结构框图 EUART 端口复用 EUART 复用端口 普通 UART 模式 7816 模式 E0TX0/E0CK0 E0TX1/E0CK1 E0TX0 E0TX1 E0CK0 E0CK1 E0RX0/E0IO0 E0RX1/E0IO1 E0RX0 E0RX1 E0IO0 E0IO1 配置相应 I/O 端口的复用功能为 EUART 通讯端口复用功能 EUART_CON2 寄存器中配置 MOD=0, 选择普通 UART 模式, 通讯端口的复用功能为 E0TX0/E0TX1 和 E0RX0/E0RX1 配置 MOD=1, 选择 7816 模式, 通讯端口的复用功能为 E0CK0/E0CK1 和 E0IO0/E0IO1 EUART 模块支持两个独立的内部时钟输出端口 (E0CK0 和 E0CK1) 配置 CK0E/CK1E, 可使能 E0CK0/E0CK1 时钟端口, 输出芯片内部时钟, 配置 CKS<1:0>, 可选择输出的时钟源 EUART 模块支持两个数据端口 (E0IO0 和 E0IO1), 这两个数据端口可分时复用, 构成通 V /317

186 讯双通道 配置 CHS, 可选择通讯时使用的 E0IO0/E0IO1 数据端口 普通 UART 通讯模式 EUART 模块配置为普通 UART 通讯模式后, 除不支持发送脉宽调制外, 其它功能与 UART 模块一致, 可参考与前面章节的相关内容, 此处不再描述 通讯模式的异步接收器和发送器 7816 模式为半双工通讯方式, 该模式下 EUART_CON0 寄存器中 RXEN 与 TXEN 使能位无效, 由 EUART_CON2 寄存器的 IOC 端口方向控制位交替使能接收器和发送器, 并发送或接收 ACK 应答信号, 同时控制 E0IO0/E0IO1 端口的输入输出状态 配置 IOC=1,EUART 发送数据, 接收 ACK 应答信号 发送数据时, 依次发送起始位 (1bit), 数据位 (8bit, 先发低位, 后发高位 ), 校验位 (1bit); 然后接收 ACK 应答信号 当对连续两帧数据进行背靠背发送时, 两帧数据间的间隔必须大于一定的时间, 该时间称为保护时间, 由通讯双方事先约定 配置 EUART_CON2 寄存器的 ETUS<7:0>, 可选择保护时间 每帧数据发送完成后,EUART 均会接收应答信号 EUART_CON2 寄存器中读取 RNACK, 可判断是否接收到 ACK 应答信号, 其中 1 为 ACK,0 为 NACK 如果在保护时间内未接收到应答信号, 还会置起 NACK 中断标志 RNAIF 配置 IOC=0,EUART 接收数据, 发送 ACK 应答信号 接收数据时, 先等待起始位, 再依次接收数据位 (8bit, 先收低位, 后收高位 ), 校验位 (1bit); 然后判断校验位是否正确, 正确则发送 ACK 应答, 否则发送 NACK, 其中 ACK=1,NACK=0 配置 TNAS<1:0>, 可选择 NACK 电平的宽度 配置 PS, 可选择数据的奇偶校验方式 发送时, 硬件电路自动计算发送数据的奇偶校验位并发送 接收时, 硬件电路自动对接收的数据进行奇偶校验, 如果校验错误, 会置起 EUART_IF 寄存器的奇偶校验错误中断标志 PEIF 支持 4 级发送缓冲器 TB0,TB1,TB2,TB3 和 1 级发送移位寄存器 发送缓冲器 TB0~TB4 为只读寄存器, 只能通过发送数据寄存器 EUART_TBW 写入 对异步发送器, 数据从写入到发送到端口的数据流示意图如下所示 : EUART_TBW TB0 TB1 TB2 TB3 发送移位寄存器 E0IO0/E0IO1 端口 图 通讯模式发送数据流示意图 支持 4 级接收缓冲器 RB0,RB1,RB2,RB3 和 1 级接收移位寄存器 可通过读取接收数据寄存器 EUART_RBR, 得到接收的数据 对异步接收器, 数据从接收端口到各级缓冲器的数据流示意图如下所示 : EUART_RBR RB0 RB1 RB2 RB3 接收移位寄存器 E0IO0/E0IO1 端口 图 通讯模式接收数据流示意图 配置 EUART_CON2 寄存器的 ERST, 可将 7816 通讯模块软件复位, 复位后 : 禁止数据传输 EUART_CON0 寄存器中 TXEN=0, RXEN=0;EUART_IE 寄存器中禁止各中断 TBIE=0, TBWEIE=0,RBIE=0,ROIE=0,FEIE=0,PEIE=0,RNAIE=0;EUART_IF V /317

187 寄存器中复位相关中断标志为默认值 TBIF=1,BWEIF=0,RBIF=0,ROIF=0,FEIF=0, PEIF=0,RNAIF=0; 清除发送状态标志 TXBUSY=0, 清除接收状态标志 RXBUSY=0; 置起各发送缓冲器空标志 TBEF0~TBEF3=1; 清除各接收缓冲器满标志 RBFF0~RBFF3=0; 清除各接收缓冲器错误标志 FE0~FE3=0,PE0~PE3= 通讯模式的数据格式 7816 模式通讯数据帧为 8 位数据位和 1 位奇偶校验位, 支持两种数据传输格式, 正向约定数据格式和反向约定数据格式 配置 EUART_CON2 寄存器的 DAS=0, 选择正向约定数据格式 实际发送的数据与写入到寄存器 EUART_TBW 的数据一致 举例说明正向约定数据格式 : 以字节方式向 EUART_TBW 写入数据 0x50, 传输到发送移位寄存器的值为 0x50, 并对 0x50 计算奇偶校验位,E0IO0/E0IO1 端口发送的数据序列依次为 0( 起始位 ) 校验位 同理, 如果 E0IO0/E0IO1 端口收到的数据是 0x50, 则读取寄存器 EUART_RBR, 得到的数据为 0x50 配置 EUART_CON2 寄存器的 DAS=1, 选择反向约定数据格式 实际发送的数据, 是将写入到寄存器 EUART_TBW 的数据, 先高低位互换再取反后的数据 举例说明反向约定数据格式 : 以字节方式向 EUART_TBW 写入数据 0x50, 二进制格式为 , 高低位互换后为 , 再取反后为 , 所以传输到发送移位寄存器的值为 0xF5, 并对 0xF5 计算奇偶校验位,E0IO0/E0IO1 端口发送的数据序列依次为 0( 起始位 ) 校验位 同理, 如果 E0IO0/E0IO1 端口收到的数据是 0xF5 时, 则读取寄存器 EUART_RBR, 得到的数据为 0x 通讯模式的自动重发功能 7816 模式支持数据自动重发功能 配置 EUART_CON2 寄存器的 ARTE=0, 禁止自动重发, 当收到 NACK( 即应答信号电平为 0) 时, 置起 NACK 中断标志 RNAIF, 且 RNACK=1, 然后继续发送下一个数据帧, 并在发送完成后, 根据 ACK 的状态更新 RNACK 位, 但中断标志 RNAIF 始终保持为 1, 直到 EUART 软件复位或通过软件将该标志清零 举例说明禁止自动重发时的数据传输过程 : 发送移位寄存器中的数据为 0x55, 发送缓冲器 TB3 中的数据为 0xAA 如果数据 0x55 发送成功, 收到 ACK 应答, 则 NACK 中断标志 RNAIF=0, 且 RNACK=0, 然后继续发送数据 0xAA, 并根据发送结果更新 RNAIF 和 RNACK; 如果数据 0x55 发送失败, 未收到 ACK 应答, 则 NACK 中断标志 RNAIF=1, 且 RNACK=1, 然后继续发送数据 0xAA, 并根据发送结果更新 RNACK, 但无论数据 0xAA 发送成功与否, 中断标志 RNAIF 均保持为 1 配置 EUART_CON2 寄存器的 ARTE=1, 使能自动重发, 当收到 NACK( 即应答信号电平为 0) 时, 自动重发前一帧数据, 每次重发均会影响 RNACK, 但不会影响 NACK 中断标志 RNAIF, 配置 ARTS<1:0>, 可选择重发的次数 在数据重发过程中, 若某次重发后, 收到 ACK( 即应答信号电平为 1), 则停止重发 若重发次数达到设置的上限后, 数据发送依然失败, 则停止重发, 同时后续未发送的数据也被终止, 置起自动重发失败中断标志 ARTEIF, 清除发送状态标志 TXBUSY V /317

188 举例说明使能自动重发时的数据传输过程 : 发送移位寄存器中的数据为 0x55, 发送缓冲器 TB3 中的数据为 0xAA, 重发次数为 2 次 如果数据 0x55 发送失败, 则发送移位寄存器中的数据依然是 0x55, 发送缓冲器 TB3 中的数据依然是 0xAA,NACK 中断标志 RNAIF=1, 且 RNACK=1,ARTEIF=0,TXBUSY=1 然后重发第 1 次, 如果收到 ACK 应答, 则 RNACK=0, RNAIF 仍保持为 1,ARTEIF=0,TXBUSY=1, 并继续发送数据 0xAA; 如果收到 NACK, 则 RNACK=1,RNAIF 保持为 1,ARTEIF=0,TXBUSY=1, 并重发第 2 次 如果第 2 次重发依然失败, 则停止重发,RNACK=1,RNAIF 保持为 1,ARTEIF=1, TXBUSY=0, 并不再继续发送数据 0xAA 通讯模式的自动重收功能 7816 模式支持数据自动重收功能 EUART_CON2 寄存器中配置 ARRE=0, 禁止自动重收, 无论接收数据的奇偶校验值是否与校验位相符, 均会在保护时间内发送 ACK( 即应答信号电平为 1) 配置 ARRE=1, 使能自动重收, 当接收数据的奇偶校验值与校验位不符时, 会在保护时间内发送 NACK( 即应答信号电平为 0) 如果发送方支持重发功能, 在收到 NACK 后会重发前一帧数据 特殊功能寄存器 EUART 控制寄存器 0(EUART_CON0) 偏移地址 :00 H 复位值 : _ _ _ B RXP RXMOD<3:0> RBCLR RRST RXEN TXFS TXP TXMOD<3:0> TBCLR TRST TXEN bit31-29 RXP bit28 R/W 接收端口极性选择 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) RXMOD<3:0> bit27-24 R/W 接收数据格式选择位 0000:8 位数据 0010:9 位数据 0100:7 位数据 1000:8 位数据 + 偶校验位 1001:8 位数据 + 奇校验位 1010:8 位数据 + 固定 :8 位数据 + 固定 :7 位数据 + 偶校验位 1101:7 位数据 + 奇校验位 1110:7 位数据 + 固定 :7 位数据 + 固定 1 V /317

189 其他 : 未用 bit23-19 RBCLR bit18 W 接收缓冲器清除 0: 读取时始终为 0 1: 清除接收缓冲器 RRST bit17 W 接收器软件复位 0: 读取时始终为 0 1: 软件复位 RXEN bit16 R/W 接收使能位 1: 使能 bit15-14 TXFS bit13 R/W 发送帧停止位选择 0:1 位停止位 1:2 位停止位 TXP bit12 R/W 发送端口极性选择 0: 正极性 ( 标准 UART 极性 ) 1: 负极性 ( 反向 UART 极性 ) TXMOD<3:0> bit11-8 R/W 发送数据格式选择位 0000:8 位数据 0010:9 位数据 0100:7 位数据 1000:8 位数据 + 偶校验位 1001:8 位数据 + 奇校验位 1010:8 位数据 + 固定 :8 位数据 + 固定 :7 位数据 + 偶校验位 1101:7 位数据 + 奇校验位 1110:7 位数据 + 固定 :7 位数据 + 固定 1 其他 : 未用 bit7-3 TBCLR bit2 W 发送缓冲器清除 0: 读取时始终为 0 1: 清除发送缓冲器 TRST bit1 W 发送器软件复位 0: 读取时始终为 0 1: 软件复位 TXEN bit0 R/W 发送使能位 1: 使能 V /317

190 EUART 控制寄存器 1(EUART_CON1) 偏移地址 :04 H 复位值 : _ _ _ B RXBUSY TXBUSY BCS<2:0> RBIM <1:0> TBIM<1:0> bit31-18 RXBUSY bit17 R 接收状态位 0: 接收空闲 1: 正在接收 TXBUSY bit16 R 发送状态位 0: 发送空闲 1: 正在发送 bit15-11 BCS<2:0> bit10-8 R/W 波特率时钟预分频选择位 000: 波特率时钟关闭 001:PCLK 010:PCLK/2 011:PCLK/4 1xx:PCLK/8 bit7-6 RBIM <1:0> bit5-4 R/W 接收缓冲满中断模式选择位 00: 字节满产生中断 ( 缓冲器数据多于 1 个字节 ) 01: 半字满产生中断 ( 缓冲器数据多于 2 个字节 ) 1x: 全满产生中断 ( 缓冲器数据 4 字节全满 ) bit3-2 TBIM<1:0> bit1-0 R/W 发送缓冲空中断模式选择位 00: 字节空产生中断 ( 缓冲器 1 个字节以上为空 ) 01: 半字空产生中断 ( 缓冲器 2 个字节以上为空 ) 1x: 全空产生中断 ( 缓冲器 4 字节全部为空 ) EUART 控制寄存器 2(EUART_CON2) 偏移地址 :08 H 复位值 : _ _ _ B TXFEND RNACK BGTE ETUS<7:0> CKS<1:0> ARTS<1:0> TNAS<1:0> ARRE ARTE PS DAS IOC CHS CK1E CK0E ERST MOD V /317

191 bit31-30 TXFEND bit29 R 发送停止位完成标志位 0: 未完成 1: 发送完成 RNACK bit28 R 接收 NACK 状态位 0: 未收到 1: 接收到 Bit27-25 BGTE bit24 R/W 数据块保护时间使能位 (22ETU) 1: 使能 ETUS<7:0> bit23-16 R/W ETU 保护时间选择位 0:2 个 ETU 时间 1:3 个 ETU 时间 255:257 个 ETU 时间 CKS<1:0> bit15-14 R/W ECK 输出时钟源选择位 00:UBC 01:UBC/2 10:UBC/4 11:UBC/8 ARTS<1:0> bit13-12 R/W 自动重发次数选择位 00: 重发 1 次 01: 最多重发 2 次 10: 最多重发 3 次 11: 连续重发, 直到数据发送正确为止 TNAS<1:0> bit11-10 R/W 发送 NACK 信号宽度的选择位 00:1 个 ETU 01:1.5 个 ETU 1x:2 个 ETU ARRE bit9 R/W 自动重收使能位 1: 使能 ARTE bit8 R/W 自动重发使能位 1: 使能 PS bit7 R/W 奇偶校验选择位 0: 奇校验 1: 偶校验 DAS bit6 R/W 数据格式选择位 0: 正向约定 1: 反向约定 IOC bit5 R/W EIO 端口方向控制位 V /317

192 CHS bit4 R/W CK1E bit3 R/W CK0E bit2 R/W ERST bit1 W MOD bit0 R/W 0: 接收数据, 发送应答 1: 发送数据, 接收应答 EIO 通讯通道选择位 0:E0IO0 端口 1:E0IO1 端口 ECK1 端口使能位 1: 使能 ECK0 端口使能位 1: 使能 7816 通讯模块软件复位 0: 读取时始终为 0 1: 软件复位 7816 通讯模式选择 0: 普通 UART 模式 1:7816 模式 注 :UBC 为波特率预分频时钟, 由 BCS[2:0] 进行选择 EUART 波特率寄存器 (EUART_BRR) 偏移地址 :10 H 复位值 : _ _ _ B BRR<10:0> bit31-11 BRR<10:0> bit10-0 R/W 传输波特率设置位,7816 通讯模式同样需要设置波特率 注 :EUART 传输波特率计算公式如下 : BCS<2:0>=001 时 :Fpclk/(( BRR+1)*16); BCS<2:0>=010 时 :Fpclk/(( BRR+1)*32); BCS<2:0>=011 时 :Fpclk/(( BRR+1)*64); BCS<2:0>=1xx 时 :Fpclk/(( BRR+1)*128) V /317

193 EUART 中断使能寄存器 (EUART_IE) 偏移地址 :18 H 复位值 : _ _ _ B RBREIE PEIE FEIE ROIE RBIE RNAIE ARTEIE TBWEIE TCIE TBIE bit31-29 RBREIE bit28 R/W 读接收缓冲错误中断使能位 1: 使能 bit27 PEIE bit26 R/W 接收校验错误中断使能位 1: 使能 FEIE bit25 R/W 接收帧错误中断使能位 1: 使能 ROIE bit24 R/W 接收数据溢出中断使能位 1: 使能 bit23-17 RBIE bit16 R/W 接收缓冲器满中断使能位 1: 使能 bit15-14 RNAIE bit13 R/W 接收到错误信号中断使能位 1: 使能 ARTEIE bit12 R/W 自动重发失败中断使能位 1: 使能 bit11-9 TBWEIE bit8 R/W 写发送缓冲错误中断使能位 1: 使能 bit7-2 TCIE bit1 R/W 发送完成中断使能位 1: 使能 TBIE bit0 R/W 发送缓冲器空中断使能位 V /317

194 1: 使能 EUART 中断标志寄存器 (EUART_IF) 偏移地址 :1C H 复位值 : _ _ _ B RBREIF PEIF FEIF ROIF RBIF RNAIF ARTEIF TBWEIF TCIF TBIF bit31-29 RBREIF bit28 R/W 读接收缓冲错误中断标志位 0: 读接收缓冲未错误 1: 读接收缓冲错误软件写 1 清除标志位, 写 0 无效 bit27 PEIF bit26 R/W FEIF bit25 R/W 接收校验错误中断标志位 0: 接收校验正常 1: 接收校验错误软件写 1 清除标志位, 写 0 无效接收帧错误中断标志位 0: 接收帧正常 1: 接收帧错误软件写 1 清除标志位, 写 0 无效 ROIF bit24 R/W 接收数据溢出中断标志位 0: 未溢出 1: 溢出软件写 1 清除标志位, 写 0 无效 bit23-17 RBIF bit16 R 接收缓冲器满中断标志位 0: 非满 1: 满 ( 满足 RBIM 所选择的条件 ) 读 EUART_RBR 寄存器可清除标志位 bit15-14 RNAIF bit13 R/W 接收到错误信号中断标志位 0: 未接收到空闲帧 1: 接收到空闲帧软件写 1 清除标志位, 写 0 无效 ARTEIF bit12 R/W 自动重发失败中断标志位 0: 自动重发未失败 1: 自动重发失败 V /317

195 软件写 1 清除标志位, 写 0 无效 bit11-9 TBWEIF bit8 R/W 写发送缓冲错误中断标志位 0: 写发送缓冲未错误 1: 写发送缓冲错误软件写 1 清除标志位, 写 0 无效 bit7-2 TCIF bit1 R/W TBIF bit0 R 发送完成中断标志位 0: 发送未完成 1: 发送已完成软件写 1 清除标志位, 写 0 无效发送缓冲器空中断标志位 0: 非空 1: 空 ( 满足 TBIM 所选择的条件 ) 写 EUART_TBW 寄存器可清除标志位 注 1:EUART 中断禁止时, 如果满足条件仍会置起对应的中断标志位, 只是不会产生中断请求 注 2: 对 EUART_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有 中断发生 EUART 发送数据写入寄存器 (EUART_TBW) 偏移地址 :20 H 复位值 : _ _ _ B TBW<31:16> TBW<15:0> TBW<31:0> bit31-0 W 写入的发送数据字节写入时 : 仅允许对 TBW<7:0> 写入半字写入时, 仅允许对 TBW<15:0> 写入字写入时 : 对 TBW<31:0> 写入 EUART 接收数据读取寄存器 (EUART_RBR) 偏移地址 :24 H 复位值 : _ _ _ B RBR<31:16> RBR<15:0> V /317

196 RBR<31:0> bit31-0 R 读取的接收数据字节读取时 : 仅允许对 RBR<7:0> 读取半字读取时 : 仅允许对 RBR<15:0> 读取字读取时 : 对 RBR<31:0> 读取 EUART 发送缓冲寄存器 0/1(EUART_TB01) 偏移地址 :40 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 TB0<8:0> bit8-0 R 发送缓冲器 0 EUART 发送缓冲寄存器 2/3(EUART_TB23) 偏移地址 :44 H 复位值 : _ _ _ B TBEF3 TP3 TB3<8:0> TBEF2 TP2 TB2<8:0> bit31-30 TBEF3 bit29 R 发送缓冲器 3 空标志位 0: 满 1: 空 V /317

197 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 EUART 接收缓冲寄存器 0/1(EUART_RB01) 偏移地址 :48 H 复位值 : _ _ _ B PE1 FE1 RBFF1 RP1 RB1<8:0> PE0 FE0 RBFF0 RP0 RB0<8:0> PE1 bit31 R 接收缓冲器 1 数据校验错误标志位 0: 正确 1: 错误 FE1 bit30 R 接收缓冲器 1 数据帧错误标志位 0: 正确 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: 满 V /317

198 RP0 bit12 R 接收的奇偶校验位接收缓冲器 0 对应的奇偶校验位 bit11-9 RB0<8:0> bit8-0 R 接收缓冲器 0 EUART 接收缓冲寄存器 2/3(EUART_RB23) 偏移地址 :4C 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 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 接收缓冲器 EUART 应用说明 芯片支持 1 个增强型通用异步接收 / 发送器 EUART0 V /317

199 5. 4 SPI 同步串口通讯控制器 (SPI0 /SPI1) 以 SPI0 为例,SPI1 同 SPI 概述 支持主控模式 从动模式支持 4 种数据传输格式支持主控模式通讯时钟速率可配置支持 1 到 8 位帧位宽选择支持 4 级发送缓冲器和 4 级接收缓冲器支持发送和接收缓冲器空 / 满中断支持接收数据溢出中断 发送数据写错误中断 从动模式的发送数据错误中断支持从动模式的片选变化中断 主控模式的空闲状态中断支持主控模式延迟接收支持主控模式发送间隔 结构框图 APB_SPI 传输时钟产生电路 数据传输电路 MUX SCK0 MISO0 MOSI0 NSS0 图 5-27 SPI0 电路结构框图 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) 会 V /317

200 在第一个 SCK0 时钟边沿, 输出数据的 MSB 位 ; 反之输出端口 MOSI0( 或 MISO0) 在第一个 SCK0 时钟边沿之前, 输出数据的 MSB 位 以下以 SPI 从动通讯模式为例, 对数据通讯时序进行说明 SPI_CON 寄存器中 DFS<1:0> = 00, 上升沿发送 ( 先 ), 下降沿接收 ( 后 ): NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-28 SPI0 时钟上升沿发送, 下降沿接收波形示意图 DFS<1:0> = 01, 下降沿发送 ( 先 ), 上升沿接收 ( 后 ): NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-29 SPI0 时钟下降沿发送, 上升沿接收波形示意图 DFS<1:0> = 10, 上升沿接收 ( 先 ), 下降沿发送 ( 后 ): NSS0 SCK MOSI MSB MSB-1 LSB+1 LSB MISO MSB MSB-1 LSB+1 LSB MOSI0 数据接收点 图 5-30 SPI0 时钟上升沿接收, 下降沿发送波形示意图 V /317

201 DFS<1:0> = 11, 下降沿接收 ( 先 ), 上升沿发送 ( 后 ): NSS0 SCK MOSI0 MSB MSB-1 LSB MISO0 MSB MSB-1 LSB+1 LSB LSB MOSI0 数据接收点 图 5-31 SPI0 时钟下降沿接收, 上升沿发送波形示意图 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~TB3, 其中低字节存放在 TB3 中 发送数据从写入到发送到端口的数据流示意图如下所示 ( 以主控模式为例 ): SPI_TBW TB0 TB1 TB2 TB3 发送移位寄存器 MOSI0 端口 图 5-32 SPI 发送数据流示意图 支持发送缓冲器空中断, 配置 SPI_IE 寄存器的 TBIM, 可选择中断模式 V /317

202 TBIM<1:0>=00, 为字节空产生中断, 即发送缓冲器 TB0 为空时,SPI_IF 寄存器会置起中断标志 TBIF; TBIM<1:0>=01, 为半字空产生中断, 即发送缓冲器 TB0 和 TB1 均为空时,SPI_IF 寄存器会置起中断标志 TBIF; TBIM<1:0>=10, 为字空产生中断, 即发送缓冲器 TB0~TB3 均为空时,SPI_IF 寄存器会置起中断标志 TBIF 支持发送数据寄存器 SPI_TBW 误写中断, 当对 SPI_TBW 的写入方式, 与发送缓冲器 TB0~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~RB3, 其中 RB0 中的数据为低字节 接收数据从接收端口到各级缓冲器的数据流示意图如下所示 ( 以主控模式为例 ): SPI_RBR RB0 RB1 RB2 RB3 接收移位寄存器 MISO0 端口 图 5-33 SPI0 接收数据流示意图 同步接收器的接收顺序如下 : 当同步接收器全空时, 接收移位寄存器的数据自动移入 RB0; 仅 RB1~ RB3 空时, 接收移位寄存器的数据自动移入 RB1; 仅 RB2~ RB3 空时, 接收移位寄存器的数据自动移入 RB2; 仅 RB3 空时, 接收移位寄存器的数据自动移入 RB3 接收缓冲器 RB0~RB3 的数据移到下一级缓冲器后, 会清除其接收满标志 RBFF0~RBFF3 当 4 级接收缓冲器和 1 级接收移位寄存器均满时, 如果再次接收到数据位,SPI_IF 寄存器中会置起接收数据溢出中断标志 ROIF, 同时不会接收新数据, 缓冲器数据仍保持 支持接收缓冲器满中断, 配置 SPI_IE 寄存器的 RBIM, 可选择中断模式 V /317

203 RBIM<1:0>=00, 为字节满产生中断, 即接收缓冲器 RB0 为满时,SPI_IF 寄存器中会置起中断标志 RBIF; RBIM<1:0>=01, 为半字满产生中断, 即接收缓冲器 RB0 和 RB1 均为满时,SPI_IF 寄存器中会置起中断标志 RBIF; RBIM<1:0>=10, 为字满产生中断, 即接收缓冲器 RB0~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 /317

204 NSS0 SCK MISO0 MSB MSB-1 LSB+1 ( 理想波形 ) MOSI0 MSB MSB-1 LSB+1 MISO0 数据接收点 线路延时 MISO0 MSB LSB+2 LSB+1 LSB ( 实际波形 ) 图 5-34 SPI 延迟接收功能波形示意图 SPI 数据帧发送间隔功能 SPI 主控模式支持数据帧发送间隔功能, 配置 SPI_CON 寄存器的 TME, 可使能该功能, 配置 TMP, 可设定发送间隔周期 当使能 SPI 数据帧发送间隔功能时, 每帧数据发送完成后, 会等待预先设定的发送间隔时间, 再发送下一帧数据 特殊功能寄存器 SPI 控制寄存器 (SPI_CON) LSB LSB 偏移地址 :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 位 ) 一帧数据位宽为 DW<2:0>+1 位 TMP<5:0> bit23-18 R/W SPI 帧发送间隔周期设置位 ( 仅主控模式支持 ) 详细说明见备注 TMS bit17 R SPI 帧发送间隔状态标志位 ( 仅主控模式支持 ) 0: 非发送间隔状态 1: 发送间隔状态 TME bit16 R/W SPI 帧发送间隔使能位 ( 仅主控模式支持 ) V /317

205 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 帧发送间隔周期计算公式如下 : T SCK * (1 + TMP), 即时间间隔为 1~64 个通讯时钟周期 T SCK 注 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 写入的发送数据字节写入时 : 仅允许对 TBW<7:0> 写入半字写入时 : 仅允许对 TBW<15:0> 写入 V /317

206 字写入时 : 对 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 /317

207 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: 未进入空闲状态 1: 进入空闲状态 V /317

208 ROIF bit3 R/W TEIF bit2 R/W RBIF bit1 R TBIF bit0 R 软件写 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 /317

209 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: 空 V /317

210 NSS bit7 R SPI 片选标志位 ( 仅从动模式支持 ) 0: 选中 1: 未选中 bit6-0 SPI 波特率设置寄存器 (SPI_CKS) 偏移地址 :24 H 复位值 : _ _ _ CKS<7:0> bit31-8 CKS<7:0> bit7-0 R/W SPI 通讯波特率设置位 ( 仅主控模式支持 ) SPI 通讯波特率计算公式如下 : CKS<7:0>=0x00 时 :F PCLK ; CKS<7:0>=0x01~0xFF 时 :F PCLK /(CKS * 2) 注 1:SPI 通讯波特率计算公式如下,SPI_CKS 寄存器中 : CKS<7:0>=0x00 时 :FPCLK; CKS<7:0>=0x01~0xFF 时 :FPCLK/(CKS * 2) SPI 应用说明芯片支持 2 个 SPI 同步串口通讯控制器, 为 SPI0 与 SPI1 为保证 SPI 的正常通信,SPI 的配置需遵循如下要求 : 1) 选择 SPI 通讯端口使用滤波器时,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 /317

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

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

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

214 VDD SDA 数据线 SCL 时钟线 SCL1_OUT SDA1_OUT SCL2_OUT SDA2_OUT SCL_IN SDA_IN SCL_IN SDA_IN 主控器 从动器 图 5-39 开漏输出端口示意图 开漏输出端口的高电平由 I2C 总线的上拉电阻提供, 而低电平由主控器与从动器共同决定 任何一方都可以将总线电平下拉到 0, 但只有当双方都释放总线后, 总线电平才能被上拉 到 I2C 时基定时器与 16 倍速采样器 通讯端口 SCL0 和 SDA0 支持 16 倍采样器, 配置 I2C_CON 寄存器的 SCLSE,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 /317

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

216 支持发送数据寄存器 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~RB3, 其中 RB0 中的数据为低字节 接收数据从数据端口到各级缓冲器的数据流示意图如下所示 : I2C_RBR RB0 RB1 RB2 RB3 接收移位寄存器 SDA0 端口 图 5-42 I2C 接收数据流示意图 接收缓冲器 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; 置起各发送缓冲器空标志 TBEF0~TBEF3=1; 清除各接收缓冲器满标志 RBFF0~RBFF3 =0 V /317

217 I2C 起始位 配置 SRT, 可触发 I2C 发送起始位, 启动或重启动一次传输操作, 发送寻呼从动器地址 起始位波形图如下 : SDA0 SCL0 S START ADRRESS R/W ACK 图 5-43 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-44 I2C 自动寻呼波形图 I2C 停止位 配置 I2C_MOD 寄存器的 SPT, 可触发 I2C 发送停止位, 结束本次传输操作 停止位波 形图如下 : SDA0 SCL START ADRRESS R/W ACK 图 5-45 I2C 停止位波形图 P STOP V /317

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

219 为实现 I2C 时钟线的下拉等待请求功能, 还需配置 I2C_CON 寄存器的 SCLOD, 将通讯端口 SCL0 选择为开漏输出模式, 通过上拉电阻提供高电平, 使从动器可对时钟线下拉控制, 使主控器等待 在通常情况下, 从动器处于释放时钟线的状态, 时钟线 SCL0 完全由主控器控制 但当从动器出现异常情况, 短时间内无法继续进行数据传输时, 从动器可以在时钟线 SCL0 为低电平时输出 0( 不可以在高电平时输出 0, 否则会破坏数据传输过程 ), 强行使 SCL0 保持低电平, 使主控器进入通讯等待状态, 直到从动器释放时钟线 时钟线下拉等待请求波形示意图如下 : 主控器 从动器 主控器释放时钟线 从动器下拉时钟线 从动器释放时钟线 SCL0 图 5-48 I2C 时钟线下拉等待波形示意图 I2C 从动模式下, 时钟自动下拉等待请求功能使能后, 当接收到本芯片寻呼地址和读操作位时, 如果 I2C 的发送缓冲器和发送移位寄存器全空, 且自动发送未应答使能位 ANAE=0, 则会自动将时钟线下拉 ; 当接收到本芯片寻呼地址和写操作位时, 如果 I2C 的接收缓冲器和接收移位寄存器全满, 则会自动将时钟线下拉 I2C 自动发送未应答功能 I2C 从动模式, 支持自动发送未应答 NACK 功能, 配置 I2C_MOD 寄存器的 ANAE, 可使能该功能 从动器使能自动发送未应答功能时, 不会强制控制时钟线 ( 即使时钟线自动下拉使能位 CSE=1), 适用于通讯端口 SCL0 选择为推挽输出或开漏输出模式两种情况 I2C 从动模式下, 自动发送未应答 NACK 功能使能后, 当接收到本芯片寻呼地址和读操作位时, 如果 I2C 的发送缓冲器和发送移位寄存器全空, 则会自动发送未应答 NACK; 当接收到本芯片寻呼地址和写操作位时, 如果 I2C 的接收缓冲器和接收移位寄存器全满, 则会自动发送未应答 NACK, 通知主控器重新通讯 特殊功能寄存器 I2C 控制寄存器 (I2C_CON) 偏移地址 :00 H 复位值 : _ _ _ B SA<6:0> RW TJP<7:0> TJE SDASE SCLSE SDAOD SCLOD RST EN V /317

220 bit31-24 SA<6:0> bit23-17 R/W 从机地址位主控模式 : 触发 启动 / 重启动 操作时, 自动发送从动模式 : 接收到 启动 / 重启动 后用于匹配比较 I2C 读写控制位 0: 写操作 RW bit16 1: 读操作 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 SDA 端口 16 倍速采样使能位 1: 使能 SCLSE bit4 R/W SCL 端口 16 倍速采样使能位 1: 使能 SDAOD bit3 R/W SDA 端口输出模式选择位 0: 推挽输出 1: 开漏输出 SCLOD bit2 R/W SCL 端口输出模式选择位 0: 推挽输出 1: 开漏输出 RST bit1 W I2C 软件复位 0: 读取时始终为 0 1: 软件复位, 硬件自动清零 EN bit0 R/W I2C 通讯使能位 1: 使能 V /317

221 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:SDA 端口为高电平,SCL 端口发送 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 通讯时钟周期 010:1.5 个 I2C 通讯时钟周期 011:2 个 I2C 通讯时钟周期 100:2.5 个 I2C 通讯时钟周期 101:3 个 I2C 通讯时钟周期 110:3.5 个 I2C 通讯时钟周期 V /317

222 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 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 时钟线自动下拉 I2C 中断使能寄存器 (I2C_IE) 偏移地址 :08 H 复位值 : _ _ _ B TIDLEIE RBIM<1:0> TBIM<1:0> TBWEIE NAIE ROIE TEIE RBIE TBIE SPIE SRIE bit31-13 V /317

223 TIDLEIE bit12 R/W RBIM<1:0> bit11-10 R/W TBIM<1:0> bit9-8 R/W TBWEIE bit7 R/W NAIE bit6 R/W ROIE bit5 R/W TEIE bit4 R/W RBIE bit3 R/W TBIE bit2 R/W SPIE bit1 R/W SRIE bit0 R/W I2C 发送空闲中断使能位 1: 使能 I2C 接收缓冲器满中断模式选择位 00: 字节满产生中断 01: 半字满产生中断 10: 字满产生中断 11: I2C 发送缓冲器空中断模式选择位 00: 字节空产生中断 01: 半字空产生中断 10: 字空产生中断 11: I2C 发送数据写错误中断使能位 1: 使能 I2C 未应答 NACK 中断使能位 1: 使能 I2C 接收数据溢出中断使能位 1: 使能 I2C 发送数据错误中断使能位 1: 使能 I2C 接收缓冲器满中断使能位 1: 使能 I2C 发送缓冲器空中断使能位 1: 使能 I2C 停止位中断使能位 1: 使能 I2C 起始位中断使能位 1: 使能 V /317

224 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 接收缓冲器满中断标志位 0: 非满 1: 满读 I2C_RBR 寄存器可清除中断标志位 TBIF bit2 R I2C 发送缓冲器空中断标志位 0: 非空 V /317

225 SPIF bit1 R/W SRIF bit0 R/W 1: 空写 I2C_TBW 寄存器可清除中断标志位 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 写入的发送数据字节写入时 : 仅允许对 TBW<7:0> 写入半字写入时 : 仅允许对 TBW<15:0> 写入字写入时 : 对 TBW<31:0> 写入 V /317

226 I2C 接收数据读取寄存器 (I2C_RBR) 偏移地址 :14 H 复位值 : _ _ _ B RBR<31:16> RBR<15:0> RBR<31:0> bit31-0 R 读取的接收数据字节读取时 : 仅允许对 RBR<7:0> 读取半字读取时 : 仅允许对 RBR<15:0> 读取字读取时 : 对 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 /317

227 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 /317

228 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 位, 否则, 若要直接再次启动读操作, 可能导致读取命令发送错误 I2C_IE 寄存器的 TBIM( 发送缓冲器中断模式选择位 ) 会影响 TIDLEIF, 因此, 对于字节发送或半字发送, 在 I2C 开始发送数据时最好使用字空产生中断模式 (TBIM=2 b10), 否则会连续产生多个字节空中断, 容易导致发送数据出错 如果使用字节空 (TBIM=2 b00) 或者半字空 (TBIM=2 b01) 中断模式, 则发送开始时, 必须向 I2C_TBW 写满四个待发送的数据字节, 否则也会连续产生多个字节空或半字空中断 使用发送空闲标志 (TIDLEIF) 的好处在于, 在 I2C 发送空闲中断使能位 (TIDLEIE) 有效的情况下, 只需清除发送空闲标志位 (TIDLEIF), 即可达到连续发送数据的目的 V /317

229 5. 6 模数转换器 (ADC) 概述 支持 12 位转换结果, 有效精度为 11 位 采样速率最高支持 125ksps (kilo-samples per second) 支持 16 个模拟输入通道 支持 ADC 中断, 可唤醒睡眠模式 ( 仅在时钟源为 LRC 时唤醒 ) 支持正负向参考电压可配置 支持转换时钟可配置 支持自动转换比较功能 结构框图 ADVREFP ADVREFN APB_ADC ADC_DR 转换时钟选择器 模数转换器 通道选择 AIN0 AIN1 AIN2 AIN3 AIN12 AIN13 AIN14 AIN15 ADC 控制寄存器 图 5-49 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 提供一个高精度内部 1.8V 或者 2.6V 的参考源, 用作 ADC 的参考电压 ADC 正常工作时必须使能 VREF_EN 与 IREF_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; 最后配置 V /317

230 TRIG, 启动 A/D 转换, 转换完成后, 硬件电路自动将 TRIG 清零 ADC 在每次转换完成后, 会产生 ADC_IF 寄存器的中断标志 IF, 需软件清零 ; 启动下一次 A/D 转换时, 需重新配置 TRIG AD 采样支持硬件或软件控制, 可通过 ADC_CON1 寄存器的 SMPS 位进行选择, 默认为硬件控制, 通过配置 ADC_CON0 寄存器的 TRIG 位, 启动 A/D 采样和转换, 采样时间最快为 1 个 ADC 时钟 ( 取决于芯片的实际应用条件和 ADC 时钟源频率 ), 转换时间为 14 个 ADC 时钟 AD 采样选择为软件控制时, 通过配置 ADC_CON1 寄存器的 SMPON 位, 启动 A/D 采样和转换 在使用 VDD 作参考电压,ADC 精度为 11 位时, 最快采样速率为 125Ksps, 即每秒可输出 125K 个高精度 ADC 转换值 通过配置 ADC_CON1 寄存器的 CLKS 和 CLKDIV 寄存器来产生合适的 ADC 时钟 ADC 时钟源选取系统时钟, 采用内部参考电压 VREFP 时的建议配置如下表所示 系统时钟 ADC 时钟分频比 ADC 精度转换速率 48MHz 位 93.75Ksps 32MHz 8 9 位 250Ksps 32MHz 位 62.5Ksps 表 5-2 ADC 精度与转换速率的对应关系列表 ADCLK SMPS EN Tog* 14Tadclk SMPON IF 采样时间 转换时间 软件清零 ADC_DR 原数据 新数据 图 5-50 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=0, 软件控制采样 ) V /317

231 ADCLK SMPS EN Tog* 14Tadclk TRIG 采样时间 转换时间 IF 软件清零 ADC_DR 原数据 新数据 图 5-51 ADC 数据转换时序示意图 (ADC_CON1 寄存器的 SMPS=1, 硬件控制采样 ) 注 1:Tog > 100us; 注 2:AD 转换时钟周期 Tadclk, 可通过 ADC_CON1 寄存器的 CLKS 和 CLKDIV<2:0> 配置不同的频率 注 3: 实际应用中还需要考虑 ADC 自身工作的建立 ( 参见寄存器 ADC_CON0 后面的备注描述内容 ) 启动一次 A/D 转换例程 LDR R0, = ADC_VREFCON ; 使能 VREF_EN 与 IREF_EN, 选择 2.6V LDR R1, =0X07 STR R1, [R0] LDR R0, =ADC_CON1 ; A/D 时钟源选择 PCLK 的 32 分频, 选择内部 ; 参考电压 VREF 2.6V 为正向参考电压, ;VREF BUF 使能, 选择硬件控制采样时间, ;VCM BUF 使能且为高速模式,AD 转换高速 ; 使能 LDR R1, =0X STR R1, [R0] LDR R0, =ADC_CHS ; 选择 AIN3 LDR R1, =0X03 STR R1, [R0] LDR R0, =ADC_CON0 ; 使能 ADC LDR R1, =0X01 STR R1, [R0] ; 延时约 100us LDR R0, =ADC_CON0 ; A/D 转换 LDR R1, =0X03 STR R1, [R0] WAIT4IF LDR R0, =ADC_IF ; 等待 ADC 中断 LDR R1, =0X01 TST R0, R1 BEQ WAIT4IF STR R1, [R0] ; 清零 ADC 中断 V /317

232 ] 自动转换比较功能 芯片提供自动转换比较功能, 可自动完成多次 AD 转换并计算出平均值, 并根据所设定的 阈值进行比较产生相应的中断, 平均值和每次转换的结果均可读 配置 ADC_CON0 寄存器的 ACP_EN 为 1 时, 对 TRIG 写 1 则启动连续自动转换比较功 能, 并固定为硬件控制采样时间, 对 SMPS 写 0 无效 启动此功能前必须先完成下面的配 置 : 配置 ADC_CON1 寄存器的 ST 可设置采样时间, 建议采样时间大于 1us 配置 ADC_ACPC 寄存器的 TIMES, 可设置每个溢出时间周期内的 ADC 采样转换次数 配置 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_ACPCMP 寄存器的 CMP_MIN, 设置自动比较的低阈值, 如果 ADC_ACPMEAN 寄存器的 MEAN_DATA 小于等于此阈值, 则中断标志 ACPMINIF 置 1 配置 ADC_ACPCMP 寄存器的 CMP_MAX, 设置自动比较的高阈值, 如果 ADC_ACPMEAN 寄存器的 MEAN_DATA 大于等于此阈值, 则中断标志 ACPMAXIF 置 1 启动一次 A/D 自动转换例程 LDR R0, = ADC_VREFCON ; 使能 VREF_EN 与 IREF_EN, 选择 2.6V LDR R1, =0X07 STR R1, [R0] LDR R0, =ADC_CON1 ; A/D 时钟源选择 PCLK 的 32 分频, 选择内部 ; 参考电压 VREF 2.6V 为正向参考电压, ;VREF BUF 使能, 选择硬件控制采样,VCM ;BUF 使能且为高速模式,AD 转换高速使能 LDR R1, =0X STR R1, [R0] LDR R0, =ADC_CHS ; 选择 AIN3 LDR R1, =0X03 STR R1, [R0] LDR ADC_IE, =0X07 LDR ADC_ACPCMP, =0X ; 设置自动比较的高 / 低阈值 LDR ADC_ACPC, =0x F ;ACP 模块工作时钟为 LRC, 每次溢出 ; 时间内自动转换 8 次, 溢出时间为 32x Tacp V /317

233 LDR R0, =ADC_CON0 ; 使能 ADC 与自动转换比较功能 LDR R1, =0X05 STR R1, [R0] ; 延时约 100us LDR R0, =ADC_CON0 ; 启动 A/D 转换 LDR R1, =0X07 STR R1, [R0] 特殊功能寄存器 ADC 参考控制寄存器 (ADC_VREFCON) 偏移地址 :40 H 复位值 : _ _ _ B IREF_EN VREF_SEL VREF_EN bit31-3 IREF_EN bit2 R/W IREF 使能控制位 1: 使能 VREF_SEL bit1 R/W 内部 VREFP 电压选择控制位 0:1.8V 1:2.6V VREF_EN bit0 R/W 内部 VREFP 使能控制位 1: 使能 注 1:ADC 正常工作时, 无论正向参考电压选择为 VDD, 内部 VREFP 或外部 AVREFP, 均必须开启 VREF_EN 与 IREF_EN, 否则会导致 ADC 工作异常 注 2: 寄存器 ADC_VREFCON 的 bit31-3 为测试位, 用户需固定写 0, 否则可能会导致 ADC 工作异常 ADC 转换值寄存器 (ADC_DR) 偏移地址 :00 H 复位值 : _ _ _ B DR<11:0> bit31-12 DR<11:0> bit11-0 R A/D 转换结果 V /317

234 ADC 控制寄存器 0(ADC_CON0) 偏移地址 :04 H 复位值 : _ _ _ B ACP_EN TRIG EN bit31-3 ACP_EN bit2 R/W A/D 自动转换比较功能使能位 0: 关闭 1: 启动 TRIG bit1 R/W A/D 转换状态位 0:A/D 未进行转换, 或 A/D 转换已完成 ( 硬件清零, 且硬件清零优先 ) 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 个使能控制信号使能后, 延时 100us 以上 ( 如果无该延时,ADC 使用 VDD 或外部 AVREFP 做参考电压时, 还有可能在 VDD 电压低于 3.0V 时, 导致芯片工作不稳定 ), 启动第一次 ADC 转换 (TRIG=1), 转换结束后, 再延时 50us 以上,ADC 工作建立完成, 后续启动 ADC 转换, 即可得到正确的转换结果 对应用程序来说, 在上述 3 个使能控制信号使能后, 第一次 ADC 转换前和转换后, 分别添加至少 100us 和 50us 延时, 同时因 ADC 建立过程中得到的转换结果与理论值偏差极大且不可预知, 所以在应用程序中需要丢弃 IREF_EN,VREF_EN,A/D 转换使能位 EN 使能后的第一次转换结果 注 4: 因每次 IREF_EN,VREF_EN,A/D 转换使能位 EN 重新使能后, 均需要执行上述 ADC 工作建立过程, 所以应用中, 在芯片正常运行时不建议关闭上述 3 个使能控制信号, 保持为 1, 只在进入深睡眠模式前, 可以关闭 ADC V /317

235 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 CLKDIV<2:0> bit31-26 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: 选择内部参考电压 VREFP( 2.6V 或 1.8V), AVREFP 端口复用作普通 I/O 端口 V /317

236 10: 选择内部参考电压 VREFP( 2.6V 或 1.8V), AVREFP 端口输出内部参考电压 VREF 11: 外部参考电压 AVREFP, 该电压不能高于 VDD, 不能低于 SWD 调试模式下 AVREFP 不可用 bit7-4 CLKS bit3 R/W A/D 时钟源选择位 0:PCLK 1:LRC(32KHz) CLKDIV<2:0> bit2-0 R/W A/D 时钟源预分频选择位 000 = 1:1 001 = 1:2 010 = 1:4 011 = 1:8 100 = 1: = 1: = 1: = 1:256 注 1: 选择内部参考电压 VREF 2.6V 或 1.8V 作为 ADC 正向参考电压时,VRBUF_EN 必须置 1; 注 2:ADC 工作时 VCMBUF_HS,VCMBUF_EN,HSEN 均必须置 1; 注 3:ADC 使用 VDD(VREFP=2 b00), 或外部参考电压 (VREFP=2 b11), 作为参考电压时, 最大转换时钟频率为 2MHz, 使用内部参考电压作为参考电压时 (VREFP=2 b01 或 2 b10), 最大转换时钟频率为 1MHz; 注 4: 当使用外部参考电压时, 参考电压不能低于 1.3V, 否则会导致 ADC 工作异常 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) V /317

237 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(AIN7) 01000: 通道 8(AIN8) 01001: 通道 9(AIN9) 01010: 通道 10(AIN10) 01011: 通道 11(AIN11) 01100: 通道 12(AIN12) 01101: 通道 13(AIN13) 01110: 通道 14(AIN14) 01111: 通道 15(AIN15) 其它 : 通道关闭 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: 使能 V /317

238 ADC 中断标志寄存器 (ADC_IF) 偏移地址 :14 H 复位值 : _ _ _ B ACPOVIF ACPMAXIF ACPMINIF IF 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> V /317

239 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 设定的时间段内 ) 00:1 次 01:2 次 10:4 次 11: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 :2500 x Tacp 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 自动比较低阈值 V /317

240 ADC 自动转均值换数据寄存器 (ADC_ACPMEAN) 偏移地址 :34 H 复位值 : _ _ _ B MEAN_DATA <11:0> bit31-12 MEAN_DATA<11:0> bit 11-0 R 自动转换结果的均值 V /317

241 5. 7 实时时钟 (RTC) 概述 仅 POR 上电复位有效, 支持程序写保护, 有效避免系统干扰对时钟造成的影响采用外部 KHz 晶体振荡器作为 RTC 精确计时的时钟源 ; 如果应用系统对 RTC 计时精度要求不高, 还可选用内部 LRC 作为时钟源 ; 如果应用系统将 RTC 作为普通计数器使用, 还可选用 PCLK 或 PCLK 的 256 分频作为时钟源可进行高精度数字校正, 提供高精度计时时钟调校提供两种时间精度, 调校范围为 ±384ppm( 或 ±128ppm), 可实现最大时间精度为 ±1.5 ppm( 或 ±0.5ppm) 时间计数 ( 实现小时 分钟和秒 ) 和日历计数 ( 实现年 月 日和星期 ),BCD 格式提供 5 个可编程定时中断提供 2 个可编程日历闹钟提供一路可配置时钟输出自动闰年识别, 有效期到 2099 年 12 小时和 24 小时模式设置可选低功耗设计 : 工作电压 VDD=5.0V 时模块工作电流典型值为 0.5μ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 /317

242 写时间计数器的操作步骤如下 ( 复位或上一次时间计数器读 / 写操作完成后 ): 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 到 31; 四 六 九 十一月从 1 到 30; 二月 ( 普通年份 ) 从 1 到 28; 二月 ( 闰年 ) 从 1 到 29; 月计数范围从 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 /317

243 RTC 中断源 RTC 模块共有 7 个中断源, 即 : 周闹钟中断 WAFG 日闹钟中断 DAFG 5 个周期中断月 日 时 分 秒中断 每个中断源都有独立的使能位, 使能位影响该中断是否产生 IRQ 中断请求, 而不影响中断功能 即关闭相应中断使能, 标志位仍可用于相应功能查询 当有多个中断使能时, 各中断经过 或 逻辑产生 IRQ 中断请求 即任何一个被使能的中断产生中断事件时, 均产生 IRQ 中断请求, 且只有将所有的产生中断事件的中断标志清零后,IRQ 中断请求才解除 RTC 计时功能如果应用系统要求 RTC 精确计时, 则需要采用外部 KHz 晶体振荡器作为 RTC 计时的时钟源 此时外部时钟管脚 (OSCxI,OSCxO) 外接 KHz 晶体振荡器, 并对配置字和控制寄存器进行如下设置 : 1) 通过配置字 CFG_OSCMD 设置 XTAL 振荡器为低速振荡器 ; 2) 通过软件由寄存器 SCU_SCLKEN0 的 CLK_SEL<1:0> 位来选择系统时钟源 ; 3) 设置寄存器 SCU_SCLKEN1 的控制位 XTAL_EN=1, 使能外部时钟振荡器 4) 设置寄存器 RTC_CON 的 CLKS<1:0>=00, 将 RTC 时钟源选择为外部 KHz 振荡器时钟源 在芯片深度睡眠模式下, 如果需要 RTC 仍使用外部 KHz 晶体振荡器计时工作, 则需要设置寄存器 SCU_WAKEUPTIME 的 MOSC_EN=1, 使 XTAL 时钟在芯片深度睡眠模式下保持工作 如果应用系统对 RTC 计时精度要求不高, 则还可选用内部 LRC( 频率约 32KHz) 作为时钟源 特殊功能寄存器 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 模块可进行写操作 ( 该寄存器写入其他值可恢复到写保护状态 ) 注 1:RTC_WP 保护的寄存器为 RTC_CON,RTC_CAL,RTC_WA,RTC_DA,RTC_HMS,RTC_YMDW,RTC_IE, RTC_IF V /317

244 RTC 控制寄存器 (RTC_CON) 偏移地址 :00 H 复位值 : _ _ _ B PON XST CLKS<1:0> HSWI TMWR TMUP - bit PON bit7 R/W RTC 上电复位标志位 ( 软件只能将该位清零 ) 0: 实时时钟正常工作 1: 监测到 RTC 上电复位 ( 必须软件清零后,RTC 才能开始工作 ) XST bit6 R 振荡器停振监测标志位 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 才进入工作状态, 才能对 RTC 控制寄存器进行写操作 注 2: 为保证精度, 建议 CLKS 值设置为 00, 即选用外部 KHz 晶振 ; 对于低精度要求的运用, 可选用 LRC 时钟源 只有在 RTC 用作普通的 Timer 时, 可将 CLKS 设置为 10 或 11 V /317

245 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 时钟输出 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: 如果 DEV=0, 则调校时间步长为 3.051ppm, 调校范围为 -384ppm~384ppm, 最高时间精度为 ±1.5ppm; 如果 DEV=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 周闹钟位 V /317

246 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 分钟位 WM<5>:20 分钟位 WM<4>:10 分钟位 WM<3>:8 分钟位 WM<2>:4 分钟位 WM<1>:2 分钟位 WM<0>:1 分钟位 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 小时位 V /317

247 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 时分秒寄存器 (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 秒位 V /317

248 SEC<4>:10 秒位 SEC<3>:8 秒位 SEC<2>:4 秒位 SEC<1>:2 秒位 SEC<0>:1 秒位 注 : 寄存器 RTC_HMS 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 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 - - V /317

249 WEEK<6:0> bit6~0 R/W 星期位 WEEK<6>: 星期六位 WEEK<5>: 星期五位 WEEK<4>: 星期四位 WEEK<3>: 星期三位 WEEK<2>: 星期二位 WEEK<1>: 星期一位 WEEK<0>: 星期日位 注 : 寄存器 RTC_YMDW 在进行写操作时, 只支持字写入方式, 不支持字节和半字写入方式 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: 使能 V /317

250 RTC 中断标志寄存器 (RTC_IF) 偏移地址 :1C H 复位值 : _ _ _ B WAFG DAFG MONIF DAYIF HORIF MINIF SCDIF bit31-10 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 秒中断标志位 ( 中断周期为每秒 ) 0: 未产生秒中断 1: 产生秒中断软件写 1 清除标志位, 写 0 无效 注 : 对 RTC_IF 寄存器中的各中断标志位, 写 0 无效, 写 1 才能清除标志位 ; 读操作时, 读取的值为 1 表示有中断 发生 V /317

251 5. 8 液晶显示控制器 (LCDC) 概述 支持 8COM x 28SEG 支持灰度调节功能支持显示闪烁功能, 闪烁频率可调支持内部偏压电阻可调功能支持 3 种时钟源选择 结构框图 LCD_D0 APB_LCDC LCD_D1 LCD_D6 LCD 控制器 MUX L C D 接口 SEG<27:0> COM<7:0> LCD 时钟源 LCD 预分频器 图 5-52 LCDC 驱动模块框图 LCDC 基本设置配置 LCDC 驱动模块的操作步骤如下 : 1) 设置 LCD_CON1 寄存器的 SEL, 选择 LCD 驱动器 2) 设置 LCDC 工作时钟 3) 设置 LCDC 驱动端口 : 配置 LCD_CON0 寄存器的 COMS<2:0> 和 LCD_SEL 寄存器的 SEG<27:0> 使能端口的公共端和段功能, 及选择偏置模式 设置 GPIO_PAINEB/ GPIO_PBINEB 寄存器, 关闭相应端口的数字输入 ; 设置 GPIO_PADIR/GPIO_PBDIR 寄存器, 关闭相应端口的数字输出 4) 初始化 LCDC 像素数据寄存器 LCD_D0~LCD_D6 5) 使能 LCDC 驱动模块 LCDC 偏置电压选择 LCDC 支持内部偏置电压和外部偏置电压可选 LCD_CON0 寄存器的 VLCDEN=0 时,LCDC 使用内部偏置电压, 内部偏置电压参考源为电源电压 VDD, 可进行如下选择 : 1/2 偏置 (3 种电压等级 :VSS 1/2VBIAS 和 VBIAS) 1/3 偏置 (4 种电压等级 :VSS 1/3 VBIAS 2/3 VBIAS 和 VBIAS) V /317

252 1/4 偏置 (5 种电压等级 :VSS 1/4 VBIAS 2/4 VBIAS 3/4 VBIAS 和 VBIAS) 用户只需设置所需的偏置类型, 无需进行各个偏置电压的设置, 偏置电压由内部电路自动 产生 LCD_CON0 寄存器的 VLCDEN=1 时,LCDC 使用外部偏置电压, 外部偏置电压从管脚 PA2~PA5 输入, 这 4 个管脚需配置为模拟管脚 外部偏置电压电阻网络必须与 LCD_CON0 控制寄存器的 BIAS<1:0> 位的偏压类型相匹配 对应于各种偏置电压,PA2~PA5 上的 VLCD1~4 偏置电压输入如下表所示 1/2 bias 1/3 bias 1/4 bias VLCD1(PA2) 1/2 VDD 1/3 VDD 1/4 VDD VLCD2(PA3) 1/2 VDD 2/3 VDD 2/4 VDD VLCD3(PA4) VDD VDD 3/4 VDD VLCD4(PA5) VDD 表 5-4 LCDC 外部偏置电压输入配置表 VDD VLCD4 VLCD3 VLCD2 VLCD1 图 /4 VDD 外部偏置电压参考电路 LCDC 像素对照表 LCDC 像素寄存器的各个数值位, 与公共端 - 段的像素点对应关系如下表所示 : COM7 COM6 COM5 COM4 COM3 COM2 COM1 COM0 D6[31] D6[30] D6[29] D6[28] D6[27] D6[26] D6[25] D6[24] SEG27 D6[23] D6[22] D6[21] D6[20] D6[19] D6[18] D6[17] D6[16] SEG26 D6[15] D6[14] D6[13] D6[12] D6[11] D6[10] D6[9] D6[8] SEG25 D6[7] D6[6] D6[5] D6[4] D6[3] D6[2] D6[1] D6[0] SEG24 D5[31] D5[30] D5[29] D5[28] D5[27] D5[26] D5[25] D5[24] SEG23 D5[23] D5[22] D5[21] D5[20] D5[19] D5[18] D5[17] D5[16] SEG22 D5[15] D5[14] D5[13] D5[12] D5[11] D5[10] D5[9] D5[8] SEG21 D5[7] D5[6] D5[5] D5[4] D5[3] D5[2] D5[1] D5[0] SEG20 D4[31] D4[30] D4[29] D4[28] D4[27] D4[26] D4[25] D4[24] SEG19 V /317

253 COM7 COM6 COM5 COM4 COM3 COM2 COM1 COM0 D4[23] D4[22] D4[21] D4[20] D4[19] D4[18] D4[17] D4[16] SEG18 D4[15] D4[14] D4[13] D4[12] D4[11] D4[10] D4[9] D4[8] SEG17 D4[7] D4[6] D4[5] D4[4] D4[3] D4[2] D4[1] D4[0] SEG16 D3[31] D3[30] D3[29] D3[28] D3[27] D3[26] D3[25] D3[24] SEG15 D3[23] D3[22] D3[21] D3[20] D3[19] D3[18] D3[17] D3[16] SEG14 D3[15] D3[14] D3[13] D3[12] D3[11] D3[10] D3[9] D3[8] SEG13 D3[7] D3[6] D3[5] D3[4] D3[3] D3[2] D3[1] D3[0] SEG12 D2[31] D2[30] D2[29] D2[28] D2[27] D2[26] D2[25] D2[24] SEG11 D2[23] D2[22] D2[21] D2[20] D2[19] D2[18] D2[17] D2[16] SEG10 D2[15] D2[14] D2[13] D2[12] D2[11] D2[10] D2[9] D2[8] SEG9 D2[7] D2[6] D2[5] D2[4] D2[3] D2[2] D2[1] D2[0] SEG8 D1[31] D1[30] D1[29] D1[28] D1[27] D1[26] D1[25] D1[24] SEG7 D1[23] D1[22] D1[21] D1[20] D1[19] D1[18] D1[17] D1[16] SEG6 D1[15] D1[14] D1[13] D1[12] D1[11] D1[10] D1[9] D1[8] SEG5 D1[7] D1[6] D1[5] D1[4] D1[3] D1[2] D1[1] D1[0] SEG4 D0[31] D0[30] D0[29] D0[28] D0[27] D0[26] D0[25] D0[24] SEG3 D0[23] D0[22] D0[21] D0[20] D0[19] D0[18] D0[17] D0[16] SEG2 D0[15] D0[14] D0[13] D0[12] D0[11] D0[10] D0[9] D0[8] SEG1 D0[7] D0[6] D0[5] D0[4] D0[3] D0[2] D0[1] D0[0] SEG0 表 5-5 LCDC 像素对照列表 LCDC 工作时钟源 LCDC 模块有 3 种工作时钟源可选择 : LRC 时钟的 4 分频 : 支持浅睡眠和深睡眠模式下工作 LOSC 时钟的 4 分频 : 支持浅睡眠和深睡眠模式下工作 PCLK 时钟的 4096 分频 : 不支持浅睡眠和深睡眠模式下工作 通过配置 LCD_CON0 寄存器的 PRS<5:0>, 设置 LCD 工作时钟的预分频比 LCD 显示帧频率 LCD 的显示帧频率, 与 COM 端口复用模式, 工作时钟源频率及其预分频比有关, 描述如下 : COMS<2:0> = 001: 帧频率 = 时钟源频率 /(1 4 (PRS<5:0>+1)) COMS<2:0> = 010: 帧频率 = 时钟源频率 /(1 6 (PRS<5:0>+1)) COMS<2:0> = 011: 帧频率 = 时钟源频率 /(1 8 (PRS<5:0>+1)) COMS<2:0> = 10x: 帧频率 = 时钟源频率 /(2 2 (PRS<5:0>+1)) COMS<2:0> = 11x: 帧频率 = 时钟源频率 /(1 3 (PRS<5:0>+1)) LCD 闪烁功能配置 LCD_CON0 寄存器的 FLIK 位, 可使能 LCD 显示闪烁功能 配置闪烁时间寄存器 LCD_TWI, 可设置 LCD 闪烁时的点亮时间和熄灭时间 在使能闪烁功能之前, 应先设置 V /317

254 LCD_TWI 寄存器 LCD 低功耗模式配置 LCD_CON0 寄存器的 RS<2:0>, 可控制 LCD 内部偏压电阻 偏压电阻越小, 显示效果越好但功耗越大 为了降低功耗同时保证显示效果, 提供了 LCD 内部偏压电阻自动切换功能, 用户可以根据实际 LCD 显示效果选择合适的偏压电阻 配置 LCD_CON0 寄存器的 RT<2:0>, 控制电阻切换时间 只当 LCD 配置为偏压电阻自动切换模式时,RT 控制位才有效 配置 LCD_CON0 寄存器的 BVS<3:0>, 可控制 LCD 显示灰度, 灰度电压越高, 显示效果越好, 但功耗越大 用户可根据实际的 LCD 显示效果和功耗需求, 设置合适的显示灰度 LCD 时钟源 32KHZ LCD 工作频率 8KHZ 1 帧 SEL_COM COM0 COM1 COM2 COM... COM0 COM1 COM2 COM... A WAVE COM0 COM1 COMx fc_en B WAVE COM0 COM1 COMx fc_en 注 : 理论上 fc_en 正脉宽 = 占空比 *T lcd 工作时钟 ( 占空比由 RT<2:0> 决定,LCD 工作时钟为时钟源分频后时钟 ) 但由于 fc_en 正脉宽 =T 时钟源 *N (N=1,2,3...), 所以当 N 不满足整数时, 舍去小数取整,N 最小值为 1 图 5-54 快速充放电示意图 V /317

255 特殊功能寄存器 LCD 控制寄存器 0(LCD_CON0) 偏移地址 :00 H 复位值 : _ _ _ B BVS<3:0> PRS<5:0> RT<2:0> RS<2:0> BIAS<1:0> CLK_SEL<1:0> WFS FLIK VLCDEN COMS<2:0> BVS<3:0> bit31-28 R/W LCD 显示灰度控制位 ( 基于 VDD) 0000:V BIAS = VDD/2 0001:V BIAS = VDD (16/30) 0010:V BIAS = VDD (17/30) 0011:V BIAS = VDD (18/30) 0100:V BIAS = VDD (19/30) 0101:V BIAS = VDD (20/30) 0110:V BIAS = VDD (21/30) 0111:V BIAS = VDD (22/30) 1000:V BIAS = VDD (23/30) 1001:V BIAS = VDD (24/30) 1010:V BIAS = VDD (25/30) 1011:V BIAS = VDD (26/30) 1100:V BIAS = VDD (27/30) 1101:V BIAS = VDD (28/30) 1110:V BIAS = VDD (29/30) 1111:V BIAS = VDD bit27-22 PRS<5:0> bit21-16 R/W LCDC 时钟源预分频比选择位 = 1: = 1: = 1: = 1:64 RT<2:0> bit15-13 R/W LCDC 60k 电阻保持时间选择位 000:1/4 COM 周期 001:1/8 COM 周期 010:1/16 COM 周期 011:1/32 COM 周期 100:1/64 COM 周期其它 : RS<2:0> bit12-10 R/W LCDC 内部偏压电阻总和选择位 000:225K 欧姆 (1/3 和 1/4 BIAS), 150K 欧姆 (1/2 BIAS) 001:900K 欧姆 (1/3 和 1/4 BIAS), 600K 欧姆 (1/2 BIAS) V /317

256 BIAS<1:0> bit9-8 R/W CLK_SEL<1:0> bit7-6 R/W WFS bit5 R/W FLIK bit4 R/W VLCDEN bit3 R/W 01x:60K 欧姆 (1/3 和 1/4 BIAS), 40K 欧姆 (1/2 BIAS) 100:60K 与 225K 欧姆自动切换 (1/3 和 1/4 BIAS), 40K 与 150K 欧姆自动切换 (1/2 BIAS) 101:60K 与 900K 欧姆自动切换 (1/3 和 1/4 BIAS), 40K 与 600K 欧姆自动切换 (1/2 BIAS) 其它 : LCDC 偏置选择位 00:1/2 BIAS 01:1/3 BIAS 10: 11:1/4 BIAS LCDC 时钟源选择位 00:LRC 时钟的 4 分频 ( 内部时钟 32KHz) 01:LOSC 时钟的 4 分频 ( 外部时钟 32KHz) 10:PCLK 时钟的 4096 分频 11: LCD 驱动波形类型选择位 0:A 型波形 ( 在每一公共端类型内改变相位 ) 1:B 型波形 ( 在每一帧边界改变相位 ) LCD 显示闪烁使能位 1: 使能外部偏置电压使能位 1: 使能 COMS<2:0> bit2-0 R/W 公共端选择位 ( 参考下表 ) COMS<2:0> COM 端口复用 最大像素数 11X 1/3 (COM2~COM0) 84 10X 1/2 (COM1~COM0) /8 (COM7~COM0) /6 (COM5~COM0) /4 (COM3~COM0) 表 5-6 LCDC 复用类型列表 V /317

257 LCD 闪烁时间寄存器 (LCD_TWI) 偏移地址 :04 H 复位值 : _ _ _ B TOFF<7:0> TON<7:0> bit31-16 TOFF<7:0> bit15-8 R/W LCD 熄灭时间 LCD 闪烁熄灭时间 =(TOFF+1)x 0.25 秒 TON<7:0> bit7-0 R/W LCD 点亮时间 LCD 闪烁点亮时间 =(TON+1)x 0.25 秒 ; LCD 段使能寄存器 (LCD_SEL) 偏移地址 :08 H 复位值 : _ _ _ B SEG<27:16> SEG<15:0> bit31-28 SEG<27:0> bit27-0 R/W LCD 段驱动端口使能位 1: 使能 LCD 控制寄存器 1(LCD_CON1) 偏移地址 :10 H 复位值 : _ _ _ B RST SEL EN bit31-5 RST bit4 W LCDC 驱动模块软件复位 0: 读取时始终为 0 1: 软件复位 bit3-2 V /317

258 SEL bit1 R/W EN bit0 R/W LCDC,LEDC 驱动器选择控制位 0: 选择 LCDC 驱动器 ( 禁止 LEDC 驱动器 ) 1: 禁止 LCDC 驱动器 ( 选择 LEDC 驱动器 ) LCDC 驱动模块使能位 1: 使能 注 :LCDC 驱动模块软件复位后, LCDC 模块禁止,LCD_CON1 寄存器的 EN=0; LCD 像素寄存器 0(LCD_D0) 偏移地址 :20 H 复位值 : _ _ _ B D0<31:16> D0<15:0> D0<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) LCD 像素寄存器 1(LCD_D1) 偏移地址 :24 H 复位值 : _ _ _ B D1<31:16> D1<15:0> D1<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) V /317

259 LCD 像素寄存器 2(LCD_D2) 偏移地址 :28 H 复位值 : _ _ _ B D2<31:16> D2<15:0> D2<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) LCD 像素寄存器 3(LCD_D3) 偏移地址 :2C H 复位值 : _ _ _ B D3<31:16> D3<15:0> D3<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) LCD 像素寄存器 4(LCD_D4) 偏移地址 :30 H 复位值 : _ _ _ B D4<31:16> D4<15:0> D4<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) V /317

260 LCD 像素寄存器 5(LCD_D5) 偏移地址 :34 H 复位值 : _ _ _ B D5<31:16> D5<15:0> D5<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) LCD 像素寄存器 6(LCD_D6) 偏移地址 :38 H 复位值 : _ _ _ B D6<31:16> D6<15:0> D6<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) V /317

261 5. 9 数码管显示控制器 (LEDC) 概述 支持 1~8 个 8 段式共阴极数码管 支持 3 种时钟源选择 结构框图 APB_LEDC LED_D0 LED_D1 LED 控制器 MUX L E D 接口 SEG<7:0> COM<7:0> LED 时钟源 LED 预分频器 图 5-55 LEDC 驱动模块框图 LEDC 基本设置 配置 LEDC 驱动模块的操作步骤如下 : 1) 设置 LED_CON1 寄存器的 SEL, 选择 LED 驱动器 2) 设置 LEDC 工作时钟 3) 配置 LED_CON0 寄存器的 MUX, 选择 LEDC 一帧刷新的 COM 数 4) 配置 GPIO_PAFUNC/GPIO_PBFUNC 为普通 IO, 设置 LED 端口为输出端口 ; 设置 COM 端口为大电流驱动 ; 配置 LED_SEL 寄存器的 COM<7:0> 和 SEG<7:0>, 使能 端口的公共端和段功能 5) 初始化 LEDC 像素数据寄存器 LED_D0~LED_D1 6) 使能 LEDC 驱动模块 LEDC 像素对照表 LEDC 像素寄存器的各个数值位, 与公共端 - 段的像素点对应关系如下表所示 : SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 D1 [31] D1 [30] D1 [29] D1 [28] D1 [27] D1 [26] D1 [25] D1 [24] COM7 D1 [23] D1 [22] D1 [21] D1 [20] D1 [19] D1 [18] D1 [17] D1 [16] COM6 D1 [15] D1 [14] D1 [13] D1 [12] D1 [11] D1 [10] D1 [9] D1 [8] COM5 D1 [7] D1 [6] D1 [5] D1 [4] D1 [3] D1 [2] D1 [1] D1 [0] COM4 D0 [31] D0 [30] D0 [29] D0 [28] D0 [27] D0 [26] D0 [25] D0 [24] COM3 D0 [23] D0 [22] D0 [21] D0 [20] D0 [19] D0 [18] D0 [17] D0 [16] COM2 D0 [15] D0 [14] D0 [13] D0 [12] D0 [11] D0 [10] D0 [9] D0 [8] COM1 D0 [7] D0 [6] D0 [5] D0 [4] D0 [3] D0 [2] D0[1] D0[0] COM0 表 5-7 LED 像素对照列表 V /317

262 LEDC 工作时钟源 LEDC 模块有 3 种模式工作时钟源 LRC 时钟的 4 分频 : 支持睡眠模式下工作 LOSC 时钟的 4 分频 : 支持睡眠模式下工作 PCLK 时钟的 4096 分频 : 不支持睡眠模式下工作 通过配置 LED_CON0 寄存器的 PRS<5:0>, 设置 LED 工作时钟的预分频比 LED 工作示意图 LED 时钟源 32KHZ LED 工作频率 8KHZ 1 帧 SEG 0 COM0 0 COM1 0 COM2 0 COM3 0 COM0 0 COM1 0 COM2 0 COM3 T1 COM0 COM1 COMx 注 :T1 为一个 32kHZ 时钟周期 图 5-56 LEDC 工作示意图 特殊功能寄存器 LED 控制寄存器 0(LED_CON0) 偏移地址 :00 H 复位值 : _ _ _ B PRS<5:0> CLK_SEL<1:0> MUX<2:0> bit31-22 PRS<5:0> bit21-16 R/W LEDC 时钟源预分频比选择位 = 1: = 1: = 1: = 1:64 V /317

263 bit15-8 CLK_SEL<1:0> bit7-6 R/W LEDC 时钟源选择位 00:LRC 时钟的 4 分频 ( 内部时钟 32KHz) 01:LOSC 时钟的 4 分频 ( 外部时钟 32KHz) 10:PCLK 时钟的 4096 分频 11: bit5-3 MUX<2:0> bit2-0 R/W COM 复用选择位 000: COM0 复用 001: COM0~COM1 复用 010: COM0~COM2 复用 011: COM0~COM3 复用 100: COM0~COM4 复用 101: COM0~COM5 复用 110: COM0~COM6 复用 111: COM0~COM7 复用 LED 段使能寄存器 (LED_SEL) 偏移地址 :08 H 复位值 : _ _ _ B SEG<15:8> COM<7:0> bit31-16 SEG<7:0> bit15-8 R/W LED SEG 段驱动端口使能位 1: 使能 COM<7:0> bit7-0 R/W LED COM 端驱动端口使能位 1: 使能 LED 控制寄存器 1(LED_CON1) 偏移地址 :10 H 复位值 : _ _ _ B RST SEL EN V /317

264 bit31-5 RST bit4 W LEDC 驱动模块软件复位 0: 读取时始终为 0 1: 软件复位 bit3-2 SEL bit1 R/W LEDC,LCDC 驱动器选择控制位 LEDC 驱动器 ( 选择 LCDC 驱动器 ) 1: 选择 LEDC 驱动器 ( 禁止 LCDC 驱动器 ) EN bit0 R/W LEDC 驱动模块使能位 1: 使能 LED 像素寄存器 0(LED_D0) 偏移地址 :20 H 复位值 : _ _ _ B D0<31:16> D0<15:0> D0<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) LED 像素寄存器 1(LED_D1) 偏移地址 :24 H 复位值 : _ _ _ B D1<31:16> D1<15:0> D1<31:0> bit31-0 R/W 像素点亮位 0: 不点亮象素 ( 透明 ) 1: 点亮像素 ( 不透明 ) V /317

265 5. 10 看门狗定时器 (WDT) 概述当配置字 CFG_WORD1 配置为 硬件看门狗使能 时, 即 CFG_WDTEN 位配置为 1, 软件不可配置 WDT_LOAD 寄存器 上电复位后看门狗立即启动 (WDT 使用 32KHz LRC 时钟计数 ),WDT 载入 CFG_WORD1 配置字中 WDTRL 参数对应的计数初值的 1/4, 并进行递减计数, 计数到 0 时, 窗口计数器加 1, 并在下一计数时钟到来时, 计数器再次载入 WDTRL 参数对应的计数初值的 1/4, 并继续递减计数 当窗口计数器计数到 2 时 ( WDT 累计计数为 WDTRL 的一半 ),WDT 产生中断标志 当窗口计数器计数到 4(WDT 累计计数等于 WDTRL) 之前, 没有在相应的喂狗窗口期进行喂狗动作,WDT 模块将产生复位信号 软件只能读写 WDT_LOCK 写 WDT_INTCLR, 其它 WDT 相关特殊功能寄存器不再可写, 只能读取, 读 WDT_LOAD 得到的值为 WDTRL 参数对应的计数初值, 读 WDT_CON 将返回 0x0000_000F 当配置字 CFG_WORD1 配置为 硬件看门狗禁止 时, 即 CFG_WDTEN 位配置为 0, 上电看门狗不启动, 但软件可配置看门狗使能, 且软件可配置 WDT_LOAD 寄存器 当配置为 软件看门狗使能 时, 即软件配置 WDT_CON 寄存器的 EN 为 1,WDT 计数器载入 WDT_LOAD 寄存器值的 1/4, 开始递减计数, 当计数到 0 时, 窗口计数器加 1, 并在下一个计数时钟到来时, 计数器再次载入 WDT_LOAD 寄存器值的 1/4, 并继续递减计数 当窗口计数器计数到 2 时 (WDT 累计计数为 WDT_LOAD 的一半 ),WDT 产生中断标志 当窗口计数器计数到 4(WDT 累计计数等于 WDT_LOAD) 之前, 没有在相应的喂狗窗口期进行喂狗动作, 则 WDT 模块将产生复位信号 配置 CLKS, 可以选择计数时钟源 ; 配置 WDT_LOAD 寄存器, 可设置计数初值 ; 读取 WDT_VALUE, 可得到 WDT 当前计数值 写入装载值寄存器 WDT_LOAD 时, 计数器当前值寄存器将被载入 WDT_LOAD 寄存器值的 1/4( 前提条件是看门狗要使能 ) WDT 模块支持寄存器写保护, 配置寄存器 WDT_LOCK=0x1ACCE551, 可去除 WDT 寄存器的写保护状态, 进行被保护寄存器的写操作, 否则无法对被保护寄存器写入 注 1: 在 SWD 调试模式下, 需要禁止 WDT, 否则在调试过程中,WDT 会始终保持工作, 可能会产生计数溢出复位, 导致芯片调试异常 注 2: 若使能了 WDT, 进入深睡眠模式后,WDT 复位无法唤醒系统, 因此必须使能 WDT 中断, 通过 WDT 中断唤醒系统 V /317

266 特殊功能寄存器 WDT 计数器装载值寄存器 (WDT_LOAD) 偏移地址 :00 H 复位值 : _ _ _ B LOAD<31:16> LOAD<15:0> LOAD<31:0> bit31-0 W WDT 计数器重载值 计数范围 0x0000_0001~0xFFFF_FFFF 如果为 0,WDT 不计 数 WDT 计数器当前值寄存器 (WDT_VALUE) 偏移地址 :04 H 复位值 : _ _ _ B VALUE<31:16> VALUE<15:0> VALUE<31:0> bit31-0 R WDT 计数器当前值 读取时返回 WDT 计数器的当前计数值 WDT 控制寄存器 (WDT_CON) 偏移地址 :08 H 复位值 : _ _ _ B CLKS RSTEN IE EN bit31-4 CLKS bit3 R/W WDT 计数时钟选择位 0:PCLK 1:LRC 时钟 ( 约 32KHz) RSTEN bit2 R/W WDT 复位使能位 V /317

267 IE bit1 R/W EN bit0 R/W 1: 使能,WDT 计数到 0 时, 产生复位信号, 将芯片复位 WDT 中断使能位 1: 使能,WDT 计数到 0 时, 产生中断标志 WDT 模块使能位 1: 使能 注 :WDT_CON 寄存器中的各个控制位, 仅在配置字 CFG_WORD1 的配置位 CFG_WDTEN=0 时才有效 WDT 中断标志清除寄存器 (WDT_INTCLR) 偏移地址 :0C H 复位值 : _ _ _ B INTCLR<31:16> INTCLR<15:0> INTCLR<31:0> bit31-0 W WDT 中断标志清零位对 WDT_INTCLR 寄存器进行任意写操作,WDT 中断标志位均被清零, 计数器重载 WDT_LOAD 寄存器值, 继续递减计数 WDT 中断标志寄存器 (WDT_RIS) 偏移地址 :10 H 复位值 : _ _ _ B WDTIF bit31-1 WDTIF bit0 R WDT 中断标志位 0: 未产生中断 1:WDT 计数器计数到 0, 产生中断写寄存器 WDT_INTCLR, 可清除 WDT 中断标志位 V /317

268 WDT 访问使能寄存器 (WDT_LOCK) 偏移地址 :00 H 复位值 : _ _ _ B LOCK bit31-1 W LOCK bit0 R/W 对 WDT_LOCK<31:0> 写 0x1ACCE551 时, 位 LOCK 为 0; 写其它值时位 LOCK 为 1 WDT 寄存器保护状态位 0:WDT 寄存器处于未保护状态 1:WDT 寄存器处于保护状态对 WDT_LOCK 寄存器写入 0x1ACCE551, 被保护的寄存器处于未保护状态 ; 写入其它值, 处于保护状态 注 1:WDT_LOCK 寄存器为只写 32 位寄存器, 其中仅 LOCK 位可读, 该寄存器必须使用字操作访问方式 注 2:WDT_LOCK 保护的寄存器为 WDT_LOAD,WDT_CON,WDT_INTCLR V /317

269 第 6 章 芯片封装外观尺寸图 6. 1 LQFP 48-pin 封装外观尺寸图 D 48 D E1 E A3 c1 A2 A Gauge plane Seating plane L2 θ 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 L BSC BSC θ V /317

270 6. 2 LQFP 44-pin 封装外观尺寸图 D 44 D E1 E A3 c1 A2 A Gauge plane Seating plane L2 θ A1 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 /317

271 6. 3 LQFP 32-pin 封装外观尺寸图 24 D D E1 E A3 c1 A2 A 32 9 Gauge plane Seating plane L2 θ A1 1 8 b e L L1 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A A c D D E E b e 0.80 BSC L L REF REF L BSC BSC θ V /317

272 6. 4 QFN 32-pin 封装外观尺寸图 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.200MIN MIN. b e 0.500TYP TYP. L V /317

273 6. 5 SOP 28-pin 封装外观尺寸图 E1 E L θ c b D A2 A e A1 标号 公制 (mm) 英制 (inch) MIN NOM MAX MIN NOM MAX A A A D E E b e L θ 0º 8º 0º 8º V /317

274 附录 1. 1 Cortex-M0 指令集 附录 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 /317

275 助记符 操作数 描述 影响标志位 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 /317

276 附录 1. 2 Cortex-M0 内核寄存器 Cortex-M0 内核寄存器如下图所示 : 附录 通用寄存器 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 /317

277 寄存器当前值 压栈保护操作 PUSH 退栈恢复操作 POP 寄存器的值被恢复 SP 数据处理 ( 寄存器的值被破坏 ) 堆栈存储器 堆栈存储器 附录 链接寄存器 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 个子状态寄存器 寄存器名称 IAPSR 表示同时访问 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 应用程序状态寄存器 APSR 中的各个状态位, 用于说明指令执行结果, 各状态位描述如下 : V /317

278 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 当堆栈指针选择位 SPSEL=0 时, 选择 MSP(SP_main) 作为当前堆栈指针 ; 当 SPSEL=1 时, 选择 PSP(SP_process) 作为当前堆栈指针 在异常 / 中断处理模式下, 总是使用 MSP 作为堆栈指针,SPSEL=0, 且只读, 不可写 ; 处 V /317

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

280 附录 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 MHz APB 总线频率 F PCLK MHz 芯片功能模块工作电压范围表 参数符号工作温度 VDD 电压备注正向参考电压为 VDD 或内部 2.2~5.5V VREFP 1.8V ADC 工作电压 V ADC -40 ~ 85 正向参考电压为内部 VREFP 2.8~5.5V 2.6V LCD 工作电压 V LCD -40 ~ ~5.5V - V /317

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

282 参数 符号 最小值 典型值 最大值 单位 工作条件出固定电平, 无负载 ; 系统主时钟为外部 16MHz HS 时钟 正常运行模式 I OP ma 25,VDD = 5V,BOR 使能,WDT 使能, 外设模块均工作, 所有 I/O 端口输出固定电平, 无负载, 7816 通讯时钟管脚, 作为普通 I/O, 无时钟输出, ADC 使用内部 VREFP 作为参考电压 ; 系统主时钟为内部 16MHz RC 时钟 芯片电流 I OP ma 25,VDD = 5V,BOR 使能,WDT 使能, 外设模块均工作, 所有 I/O 端口输出固定电平, 无负载, 7816 通讯时钟管脚, 作为普通 I/O, 无时钟输出, ADC 使用内部 VREFP 作为参考电压 ; 系统主时钟为外部 16MHz HS 时钟 芯片功能模块功耗特性参数表 参数符号最小值典型值最大值单位工作条件 外部振荡器 XTAL 16MHz 电流内部高速时钟 HRC 电流 I XTAL ma 25,VDD = 5V I HRC ma 25,VDD = 5V 倍频时钟 PLL 电流 I PLL ma I PLL ma 25,VDD = 5V, 输出时钟频率为 32MHz 25,VDD = 5V, 输出时钟频率为 48MHz BOR 模块电流 I BOR μa 25,VDD = 5V LVD 模块电流 I LVD μa 25,VDD = 5V WDT 模块电流 I WDT μa 25,VDD = 5V ADC 模块电流 I ADC μa 25,VDD = 5V,ADC 转换时钟频率为 500KHz, 内部 VREFP 作为正向参考电 V /317

283 参数符号最小值典型值最大值单位工作条件 压 I ADC μa 25,VDD = 5V,ADC 转 换时钟频率为 500KHz, VDD 作为正向参考电压 VREFP 模块电流 I VREFP μa 25,VDD = 5V LCDC 模块电流 I LCDC μa RTC 模块电流 I RTC μa T16N 模块电流 I T16N μa T32N 模块电流 I T32N μa UART 模块电流 I UART μa EUART 模块电流 I EUART μa SPI 模块电流 I SPI μa I2C 模块电流 I I2C μa FLASH 编程电流 I PROG ma FLASH 擦除电流 I ERAS ma 25,VDD = 5V,1/4 偏置, 帧频率 64Hz, 内部偏压电阻为 60K 与 900K 欧姆自动切换,60K 欧姆电阻保持时间为 1/4COM 周期, 无外接 LCD 屏 25,VDD = 5V,RTC 时钟源为外部 KHz 振荡器, 精确计时模式 25,VDD = 5V, 定时器模式, 计数时钟为 16MHz 25,VDD = 5V, 定时器模式, 计数时钟为 16MHz 25,VDD = 5V, 通讯波特率为 9600bps 25,VDD = 5V, 通讯波特率为 9600bps 25,VDD = 5V, 主控模式, 通讯速率为 1MHz, 数据帧发送间隔为 32 个通讯时钟周期 25,VDD = 5V, 主控模式, 通讯速率为 400KHz, 数据帧传输间隔为 15 个通讯时钟周期 -40~85,VDD = 5V V /317

284 附录 芯片 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 出低电平 芯片输出端口 (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 出低电平 V /317

285 附录 芯片系统时钟特性 系统时钟规格表 参数符号最小值典型值最大值单位测试条件 系统时钟频率 F OSC M Hz 系统时钟周期 T OSC ns 机器周期 T inst - T OSC *1 - ns 外部时钟高电平和低电平时间 T OSL,T OSH ns 外部时钟边沿上升和下降时间 T OSR,T OSF ns -40 ~ V VDD 5.5V 附录 芯片功能模块特性 ADC 模块特性表 参数名称 符号 最小值 典型值 最大值 单位 测试条件 分辨率 RES bit 参考电压范围 V ADVREF VDD V 模拟电压输入范围 V IN VSS - V ADVREF V 输入电容 C IN pf 模拟通道推荐输入电阻 R IN k Ω 见备注 1 AD 转换时钟周期 T AD μs T AD μs AD 转换时间 ( 不包括采样时间 ) T CONV T AD 差分线性度失调误差 DNL V OFFSET - - ±1 ±2 ±2 ±4 LSB LSB -40 ~85, 负参考电压为外部 VREFN, ADC 时钟频率为 1MHz 注 1:T AD1 为 ADC 使用内部 VREFP 作为参考电压时的 AD 转换时钟周期 ; T AD2 为 ADC 使用 VDD 电压或外部 AVREFP 作为参考电压时的 AD 转换时钟周期 注 2: 当 ADC 负参考为 VSS 时, 失调误差 V OFFSET 与 VDD 电源电压和正参考电压相关, 详见后面的 模拟小信号 ADC offset 特性表 的描述 V /317

286 模拟小信号 ADC offset 特性表 1) 正参考电压为内部 VREF 1.8V, 负参考电压为 VSS, 采样时间为 9Tad 时, 不同电源电压 VDD 不同 ADC 时钟频率 对应于相同模拟输入 Vain 电压小信号的 ADC offset 典型值如下 : 参数 ADC offset 典型值 -5LSB -4LSB -4LSB -4LSB -4LSB -7LSB -7LSB -7LSB -7LSB -8LSB 测试条件 模拟输入电压 Vain 参考电压 ADC 时钟频率 电源电压 VDD 2MHz 1MHz 500KHz 5.0V 250KHz 4mV 正参考电压为内部 LRC(32KHz) VREF 1.8V, 负参考电 2MHz 压为 VSS 1MHz 500KHz 3.0V 250KHz LRC(32KHz) 2)ADC 时钟频率为 1MHz 采样时间为 9Tad 时, 不同 ADC 参考电压, 不同 VDD, 对应于相同模拟输入 Vain 电压小信号的 ADC offset 典型值如下 : 参数 ADC offset 测试条件 典型值模拟输入电压 ADC 参考电压 Vain 时钟频率 电源电压 VDD -8LSB 正参考为外部 AVREFP 1.8V, 5.0V -8LSB 负参考为 VSS 3.0V -3LSB 正参考为外部 AVREFP 1.8V, 5.0V -3LSB 负参考为外部 VREFN 3.0V -3LSB 正参考为 VDD, 5.0V -4LSB 负参考为 VSS 3.0V -1LSB 正参考为 VDD, 5.0V -2LSB 负参考为外部 VREFN 3.0V 5mV 1MHz -4LSB 正参考为内部 VREFP 1.8V, 5.0V -7LSB 负参考为 VSS 3.0V 0LSB 正参考为内部 VREFP 1.8V, 5.0V -3LSB 负参考为外部 VREFN 3.0V -2LSB 正参考为内部 VREFP 2.6V, 5.0V -4LSB 负参考为 VSS 3.0V +0LSB 正参考为内部 VREFP 2.6V, 5.0V -2LSB 负参考为外部 VREFN 3.0V 注 : 如果应用系统对 ADC offset 有较高要求, 则推荐 ADC 负参考使用外部 VREFN V /317

287 ADC 转换时钟源选择表 系统时钟工作频率 (Hz) A/D 时钟源 (VREFP=2 b01 或 2 b10, 使用内部 VREFP 作为正向参考电压 ) 选择 48M 32M 16M 4M FPCLK 不推荐使用 不推荐使用 不推荐使用 不推荐使用 FPCLK /2 不推荐使用 不推荐使用 不推荐使用 不推荐使用 FPCLK /4 不推荐使用 不推荐使用 不推荐使用 T ADCLK = 1us FPCLK /8 不推荐使用 不推荐使用 不推荐使用 T ADCLK = 2us FPCLK /16 不推荐使用 不推荐使用 T ADCLK = 1us T ADCLK = 4us FPCLK /32 不推荐使用 T ADCLK = 1us T ADCLK = 2us T ADCLK = 8us FPCLK /64 T ADCLK = 1.3us T ADCLK = 2us T ADCLK = 4us T ADCLK = 16us FPCLK /256 T ADCLK = 5.3us T ADCLK = 8us T ADCLK = 16us T ADCLK = 64us FLRC T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us 系统时钟工作频率 (Hz) A/D 时钟源 (VREFP=2 b00 或 2 b11, 使用 VDD, 或外部 AVREFP 作为正向参考电压 ) 选择 48M 32M 16M 4M FPCLK 不推荐使用 不推荐使用 不推荐使用 不推荐使用 FPCLK /2 不推荐使用 不推荐使用 不推荐使用 T ADCLK = 0.5us FPCLK /4 不推荐使用 不推荐使用 不推荐使用 T ADCLK = 1us FPCLK /8 不推荐使用 不推荐使用 T ADCLK = 0.5us T ADCLK = 2us FPCLK /16 不推荐使用 T ADCLK = 0.5us T ADCLK = 1us T ADCLK = 4us FPCLK /32 T ADCLK = 0.67us T ADCLK = 1us T ADCLK = 2us T ADCLK = 8us FPCLK /64 T ADCLK = 1.3us T ADCLK = 2us T ADCLK = 4us T ADCLK = 16us FPCLK /256 T ADCLK = 5.3us T ADCLK = 8us T ADCLK = 16us T ADCLK = 64us FLRC T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us T ADCLK = 31us ADC 内部参考电压特性表 参数符号最小值典型值最大值单位测试条件 ADC 内部参考电压 VREF V REF V REF V 25,VDD=5V 内部时钟源特性表 参数符号最小值典型值最大值单位测试条件 HRC 时钟频率 F HRC MHz 25, VDD=2.2V~5.5V MHz -40 ~85, VDD=2.2V~5.5V V /317

288 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 PLL 锁相环特性表 参数符号最小值典型值最大值单位测试条件 时钟源选择为 32KHz 时钟源选择为 4MHz PLL 输入时钟频率 F PLLI KHz PLL 倍频输出时钟频率 F PLLO F PLLO MHz PLL 锁频时间 T LOCK us PLL 输入时钟频率 F PLLI MHz PLL 倍频输出时钟频率 F PLLO F PLLO MHz PLL 锁频时间 T LOCK us -40~85-40~85 BOR 模块特性表 1(BOR 档位由配置字控制位 CFG_BORV(CFG_WORD0<9:8>) 设置 ) CFG_BORV<1:0> 最小值典型值最大值单位测试条件 V V V V -40~85 注 : 当 CFG_BORV<1:0>=11 时,BOR 电压点由寄存器 SCU_SOFTCFG 的 BORV<3:0> 进行设置, 具体见该寄存器的描述 BOR 模块特性表 2(BOR 档位由寄存器控制位 BORV(SCU_SOFTCFG<3:0>) 设置 ) BORV<3:0> 最小值 典型值 最大值 单位 测试条件 V V V V V V -40~85 V /317

289 BORV<3:0> 最小值 典型值 最大值 单位 测试条件 V V V V V V V V V V LVD 模块特性表 LVD_VS<3:0> 最小值 典型值 最大值 单位 测试条件 V V V V VDD 下降, V LVDO 低电压 V -40~85 状态标志置 V V V V V LVD 电压检测迟滞窗口 mv -40~85 V /317

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

291 芯片运行模式电流随电压 - 温度变化特性图 (WDT,BOR 使能, 外设模块均工作, 所有 I/O 端口输出固定电平, 无负载,7816 通讯时钟管脚作为普通 I/O, 无时钟输出,ADC 使用 内部 VREFP 作为正向参考电压 ; 系统主时钟为内部 HRC 16MHz 时钟 ) Iop1(mA) V 3.5V 5.0V 5.5V VDD(V) 芯片运行模式电流随电压 - 系统时钟频率变化特性图 (WDT,BOR 使能, 外设模块均工作, 所有 I/O 端口输出固定电平, 无负载,7816 通讯时钟管脚作为普通 I/O, 无时钟输出,ADC 使用内部 VREFP 作为正向参考电压 ; 室温 25 ) Iop2(mA) PLL 48MHz HRC 16MHz HRC 8MHz HRC 4MHz HRC 2MHz HRC 1MHz HRC 125KHz LRC 32KHz V 3.5V 5.0V 5.5V VDD(V) 注 : 系统时钟为 PLL 48MHz 时,PLL 的输入时钟源为内部 HRC 时钟 V /317

292 附录 芯片时钟特性 内部 LRC 时钟频率随电压 - 温度变化特性图 ( 芯片为正常运行模式 ) 内部 LRC 时钟频率随电压 - 温度变化特性图 ( 芯片为深睡眠模式 ) 附录 芯片 IO 端口输入特性 I/O 端口信号输入特性图 ( 室温 25 ) V /317

东软载波 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

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 ES8P5086/ES8P5088 数据手册 产品简介 数据手册 产品规格 上海东软载波微电子有限公司 2018 年 9 月 11 日 V1.2 1/278 东软载波 MCU 芯片使用注意事项 关于芯片的上 / 下电东软载波 MCU 芯片具有独立电源管脚 当 MCU 芯片应用在多电源供电系统时, 应先对 MCU 芯片上电, 再对系统其他部件上电 ; 反之, 下电时, 先对系统其他部件下电,

More information

产品订购信息 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

产品订购信息 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

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

基于 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

基于 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

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

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

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

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

修订历史 版本修订日期修改概要 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

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

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

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

,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

版权声明 龙芯 免责声明 据 龙芯 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

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

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

Microsoft Word - ha0283s_HT32F125x_ClockMonitor&Frequency

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

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

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

<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

图 内部结构图 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

Cerris IROS

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

More information

SN32F240

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

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

設計目標規格書

設計目標規格書 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

FM3318产品手册

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

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

ETA104 数据采集模块数据手册

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

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

目 录

目 录 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

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

控制器 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

adsd

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

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

额定规格 / 性能 单相 标准认证 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

16位A/D转换器

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

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

<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

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

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

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

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

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

MPW 项目简介

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

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

<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

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

概述 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

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

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

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

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

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

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

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

FM3318产品手册

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

More information

四位微控制器ML64168_ _.doc

四位微控制器ML64168_ _.doc SSSC /4168P 2005 8 4 4, (ADC), LCD Driver, (Buzzer), 1 3 CPU17 CPU 26 33 42 45 48 73 79 85 89 A/D 92 111 125 128 131 SSU4168P 133 143 A: / 153 B: 156 C: 158 D: 160 E: 161 F: 163 G: PAD 167 2 ,, 11 4 CMOS

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

《手机维修原理及维修实例详解》目录

《手机维修原理及维修实例详解》目录 1 IC MP3 MP4 2 CPU MP3 MP4 13M 1 LCD 2 13MHz 3 CONTACT SERVICE T SIM MP3 MP4 2 4 FLASH ROM EEPROM RAM SIM CPU CPU RST CPU FLASH Flash CE CS Flash DE WE RST Flash Flash FLASH EEPROM Phone Locked CON-TACTSERVICE

More information

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1.

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1. http://www.unsp.com.cn 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1... 11 4.2... 12 5... 13 5.1...

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 - 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

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x 115 AVR W.V. Awdrey ATMEL AVR PIC AVR PIC AVR RISC AVR PIC AVR AVR AVR AVR AVR ATtiny15 AVR AVR AVR RAM ROM 121 116 122 ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r31 3 16 X Y Z 6-1 118 7 0

More information

untitled

untitled XZL024 http://item.taobao.com/item.htm?id=6321822194 1 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 USBee Suite 3.1 3.2 3.3 3.4 4 RS232 RS485 RS422 CAN http://item.taobao.com/item.htm?id=6321822194 2 1 XZL024 PC

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

Microsoft Word - FM17522_ps_chs - new.doc

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

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

PROTEUS VSM

PROTEUS  VSM Proteus VSM-- 1/1 PROTEUS VSM Proteus VSM ISIS Prospice VSM Proteus PROSPICE ARM7 PIC AVR HC11 8051 CPU LCD RS232 LED IAR Keil Hitech C make 6000 SPICE SPICE DLL SPICE3F5 14 FM PROTEUS PCB LED/LCD / 300

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

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

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

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

深圳明和科技

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

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

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

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

More information

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

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

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

第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

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

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

FM17520非接触读写器芯片

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

More information

燃烧器电子控制系统 目录 2

燃烧器电子控制系统 目录 2 聚焦 REC27 燃烧器电子控制系统 燃烧器电子控制系统 目录 2 REC27 燃烧器电子控制系统 2 概述 燃烧器电子控制系统 2 2 2 2 2 A B1 B2 C D E 22 2 2 系统图示 2 2 2 2 2 2 主要特征及优点 燃烧器电子控制系统 2 2 集成控制 2 2 节能 安全运行 运行模式 远程锁定复位 可根据需求提供特殊机型 无接合间隙及机械迟滞 简单的试运行及燃烧器设定 2

More information

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

70046d_cn.book(70055c_cn.fm)

70046d_cn.book(70055c_cn.fm) 第 8 章复位 目录 本章包括下列主题 : 8.1 简介...8-2 8.2 复位时的时钟源选择... 8-5 8.3 POR: 上电复位... 8-5 8.4 外部复位 (EXTR)... 8-7 8.5 软件复位指令 (SWR)... 8-7 8.6 看门狗超时复位 (WDTR)... 8-7 8.7 欠压复位 (BOR)... 8-8 8.8 使用 RCON 状态位... 8-10 8.9 器件复位时间...

More information

目录 1 产品概要 产品特性 芯片模式 订购信息 引脚排列 端口说明 电气特性 极限参数 直流电气特性 交流电气特性 CPU 及

目录 1 产品概要 产品特性 芯片模式 订购信息 引脚排列 端口说明 电气特性 极限参数 直流电气特性 交流电气特性 CPU 及 SinoMCU 8 位单片机 MC30P6070 用户手册 V1.4 上海晟矽微电子股份有限公司 Shanghai SinoMCU Microelectronics Co., Ltd. 本公司保留对产品在可靠性 功能和设计方面的改进作进一步说明的权利 本文档的更改, 恕不另行通知 目录 1 产品概要... 4 1.1 产品特性... 4 1.2 芯片模式... 5 1.3 订购信息... 5 1.4

More information

Microsoft Word - FM320X简介

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

More information

HMI COM1 RS SIEMENSE S7-200 RS485

HMI COM1 RS SIEMENSE S7-200 RS485 目录 第一部分维控人机界面串口引脚定义...2 1 LEVI777T COM1 引脚定义原理图...2 2 LEVI777T COM2 引脚定义原理图...2 3 LEVI908T COM1 引脚定义原理图...2 4 LEVI908T COM2/COM3 引脚定义原理图...3 第二部分通信针头...4 1 通信针头...4 第三部分各 PLC 与 LEVI 通信线接法...5 1 西门子 S7-200

More information