KEA128 子系列参考手册 支持:S9KEAZ64AMLK(R)、S9KEAZ128AMLK(R)、 S9KEAZ64AVLK(R)、S9KEAZ128AVLK(R)、S9KEAZ64ACLK(R)、 S9KEAZ128ACLK(R)、S9KEAZ64AMLH(R)、S9KEAZ128AMLH(R)、 S9KEAZ64AVLH(R)、S9KEAZ128AVLH(R)、S9KEAZ64ACLH(R)和 S9KEAZ128ACLH(R) Document Number: S9KEA128Z80M48SF0RM Rev 2, July 2014 KEA128 子系列参考手册, Rev. 2, July 2014 2 Freescale Semiconductor, Inc. 内容 小节编号 标题 页 第1章 关于本文档 1.1 1.2 概述.................................................................................................................................................................................37 1.1.1 目的..................................................................................................................................................................37 1.1.2 受众..................................................................................................................................................................37 惯例.................................................................................................................................................................................37 1.2.1 编码系统..........................................................................................................................................................37 1.2.2 印刷符号..........................................................................................................................................................38 1.2.3 特殊术语..........................................................................................................................................................38 第2章 简介 2.1 概述.................................................................................................................................................................................39 2.2 模块功能类别.................................................................................................................................................................39 2.2.1 ARM Cortex-M0+内核模块............................................................................................................................40 2.2.2 系统模块..........................................................................................................................................................41 2.2.3 存储器和存储器接口......................................................................................................................................41 2.2.4 时钟..................................................................................................................................................................42 2.2.5 安全性和完整性模块......................................................................................................................................42 2.2.6 模拟模块..........................................................................................................................................................42 2.2.7 定时器模块......................................................................................................................................................43 2.2.8 通信接口..........................................................................................................................................................43 2.2.9 人机接口..........................................................................................................................................................44 2.2.10 可订购部件编号..............................................................................................................................................44 第3章 芯片配置 3.1 简介.................................................................................................................................................................................45 3.2 模块间互连.....................................................................................................................................................................45 3.2.1 互连概述..........................................................................................................................................................45 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 3 小节编号 3.3 标题 3.2.2 模拟基准选项..................................................................................................................................................49 3.2.3 ACMP 输出捕捉............................................................................................................................................. 49 3.2.4 UART0_TX 调制............................................................................................................................................ 50 3.2.5 UART0/1/2_RX 捕捉...................................................................................................................................... 50 3.2.6 UART0_RX 滤波器........................................................................................................................................ 51 3.2.7 RTC 捕捉......................................................................................................................................................... 51 3.2.8 FTM2 软件同步.............................................................................................................................................. 51 3.2.9 ADC 硬件触发................................................................................................................................................ 52 内核模块.........................................................................................................................................................................52 3.3.1 3.3.2 3.3.3 ARM Cortex-M0+内核配置............................................................................................................................52 3.3.1.1 ARM Cortex M0+内核 ...............................................................................................................53 3.3.1.2 总线、互连和接口......................................................................................................................54 3.3.1.3 系统节拍定时器..........................................................................................................................54 3.3.1.4 内核特权级别..............................................................................................................................54 3.3.1.5 缓存器..........................................................................................................................................55 可嵌套向量的中断控制器(NVIC)配置......................................................................................................... 55 3.3.2.1 中断优先级..................................................................................................................................55 3.3.2.2 不可屏蔽中断..............................................................................................................................55 3.3.2.3 中断通道分配..............................................................................................................................56 异步唤醒中断控制器(AWIC)配置................................................................................................................ 58 3.3.3.1 3.4 页 唤醒源..........................................................................................................................................58 系统模块.........................................................................................................................................................................59 3.4.1 SIM 配置..........................................................................................................................................................59 3.4.2 PMC 配置........................................................................................................................................................ 60 3.4.3 MCM 配置....................................................................................................................................................... 61 3.4.4 简化交叉开关配置..........................................................................................................................................61 3.4.4.1 简化交叉开关主机分配..............................................................................................................62 3.4.4.2 交叉开关从机分配......................................................................................................................62 KEA128 子系列参考手册, Rev. 2, July 2014 4 Freescale Semiconductor, Inc. 小节编号 3.4.5 3.5 3.6 标题 外设桥配置......................................................................................................................................................63 3.4.5.1 外设桥的数量..............................................................................................................................63 3.4.5.2 存储器映像..................................................................................................................................63 系统安全性.....................................................................................................................................................................64 3.5.1 CRC 配置.........................................................................................................................................................64 3.5.2 WDOG 配置.................................................................................................................................................... 64 3.5.2.1 WDOG 时钟................................................................................................................................ 65 3.5.2.2 WDOG 操作................................................................................................................................ 65 时钟模块.........................................................................................................................................................................66 3.6.1 ICS 配置.......................................................................................................................................................... 66 3.6.1.1 3.6.2 3.7 时钟门控......................................................................................................................................67 OSC 配置......................................................................................................................................................... 67 存储器和存储器接口.....................................................................................................................................................68 3.7.1 3.8 页 Flash 存储器配置............................................................................................................................................ 68 3.7.1.1 Flash 存储器大小........................................................................................................................ 68 3.7.1.2 Flash 存储器映像........................................................................................................................ 69 3.7.1.3 备用非易失性 IRC 用户微调说明............................................................................................. 69 3.7.1.4 Flash 加密.................................................................................................................................... 70 3.7.1.5 擦除所有 Flash 内容................................................................................................................... 70 3.7.2 Flash 存储器控制器配置................................................................................................................................ 70 3.7.3 SRAM 配置..................................................................................................................................................... 71 3.7.3.1 SRAM 大小................................................................................................................................. 71 3.7.3.2 SRAM 范围................................................................................................................................. 72 3.7.3.3 SRAM 位操作............................................................................................................................. 73 模拟.................................................................................................................................................................................74 3.8.1 12 位模数转换器(ADC)配置..........................................................................................................................74 3.8.1.1 ADC 实例化信息........................................................................................................................ 74 3.8.1.2 ADC0 连接/通道分配................................................................................................................. 75 3.8.1.3 ADC 模拟电源和基准连接........................................................................................................ 76 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 5 小节编号 3.8.2 3.9 标题 页 3.8.1.4 温度传感器和带隙基准..............................................................................................................76 3.8.1.5 备选时钟......................................................................................................................................76 ACMP 配置..................................................................................................................................................... 77 3.8.2.1 ACMP 概述................................................................................................................................. 77 3.8.2.2 ACMP 互相连接......................................................................................................................... 78 3.8.2.3 Stop 模式下的 ACMP................................................................................................................. 78 定时器.............................................................................................................................................................................79 3.9.1 3.9.2 3.9.3 3.9.4 FlexTimer 配置................................................................................................................................................79 3.9.1.1 FTM 概述.................................................................................................................................... 79 3.9.1.2 FTM 时钟选项............................................................................................................................ 81 3.9.1.3 FTM 互连.................................................................................................................................... 81 3.9.1.4 FTM 中断.................................................................................................................................... 82 PIT 配置...........................................................................................................................................................82 3.9.2.1 PIT 概述.......................................................................................................................................82 3.9.2.2 PIT 互相连接...............................................................................................................................83 RTC 配置......................................................................................................................................................... 83 3.9.3.1 RTC 概述..................................................................................................................................... 83 3.9.3.2 RTC 互连..................................................................................................................................... 83 PWT 配置........................................................................................................................................................ 84 3.9.4.1 PWT 概述.................................................................................................................................... 84 3.9.4.2 PWT 互连.................................................................................................................................... 85 3.10 通信接口.........................................................................................................................................................................85 3.10.1 SPI 配置........................................................................................................................................................... 85 3.10.1.1 3.10.2 3.10.3 SPI 概述....................................................................................................................................... 86 I2C 配置...........................................................................................................................................................86 3.10.2.1 I2C 概述.......................................................................................................................................86 3.10.2.2 I2C0 4 线式接口特性..................................................................................................................87 UART 配置......................................................................................................................................................87 3.10.3.1 UART 概述..................................................................................................................................88 KEA128 子系列参考手册, Rev. 2, July 2014 6 Freescale Semiconductor, Inc. 小节编号 标题 3.10.3.2 3.10.4 页 UART 互连..................................................................................................................................88 MSCAN 配置.................................................................................................................................................. 89 3.10.4.1 MSCAN 概述.............................................................................................................................. 89 3.10.4.2 MSCAN 时钟源.......................................................................................................................... 89 3.10.4.3 MSCAN 唤醒中断和去抖滤波器.............................................................................................. 90 3.11 人机接口(HMI).............................................................................................................................................................. 90 3.11.1 GPIO 配置....................................................................................................................................................... 90 3.11.1.1 3.11.2 3.11.3 GPIO 概述................................................................................................................................... 90 KBI 配置..........................................................................................................................................................91 3.11.2.1 KBI 概述......................................................................................................................................91 3.11.2.2 KBI 分配......................................................................................................................................91 IRQ 配置..........................................................................................................................................................92 3.11.3.1 IRQ 分配......................................................................................................................................92 第4章 存储器映像 4.1 简介.................................................................................................................................................................................93 4.2 系统存储器映像.............................................................................................................................................................93 4.3 位带区别名.....................................................................................................................................................................94 4.4 位操作引擎.....................................................................................................................................................................95 4.5 系统 ROM 存储器映像................................................................................................................................................. 95 4.6 4.7 4.5.1 入口 (ROM_ENTRYn)....................................................................................................................................97 4.5.2 表格标记寄存器结束 (ROM_TABLEMARK).............................................................................................. 97 4.5.3 系统访问寄存器 (ROM_SYSACCESS)........................................................................................................ 98 4.5.4 外设 ID 寄存器 (ROM_PERIPHIDn).............................................................................................................98 4.5.5 组件 ID 寄存器 (ROM_COMPIDn)............................................................................................................... 99 外设桥(AIPS-Lite)存储器映像..................................................................................................................................... 99 4.6.1 先写后读序列和存储器操作所需的串行化..................................................................................................100 4.6.2 外设桥(AIPS-Lite)存储器映像.......................................................................................................................100 专用外设总线(PPB)存储器映像...................................................................................................................................104 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 7 小节编号 标题 页 第5章 时钟分布 5.1 简介.................................................................................................................................................................................105 5.2 编程模型.........................................................................................................................................................................105 5.3 器件时钟连接示意图.....................................................................................................................................................105 5.4 时钟定义.........................................................................................................................................................................106 5.4.1 器件时钟汇总..................................................................................................................................................107 5.4.2 时钟分布..........................................................................................................................................................108 5.5 内部时钟源.....................................................................................................................................................................109 5.6 外部时钟源.....................................................................................................................................................................109 5.7 时钟选通.........................................................................................................................................................................110 5.8 模块时钟.........................................................................................................................................................................110 5.8.1 FTM 和 PWT 计时.......................................................................................................................................... 112 第6章 复位与引导 6.1 简介.................................................................................................................................................................................115 6.2 复位.................................................................................................................................................................................115 6.2.1 上电复位(POR)............................................................................................................................................... 115 6.2.2 系统复位源......................................................................................................................................................116 6.2.3 6.2.2.1 外部引脚复位(RESET)...............................................................................................................116 6.2.2.2 低压检测(LVD)...........................................................................................................................116 6.2.2.3 WDOG 定时器............................................................................................................................ 117 6.2.2.4 ICS 时钟丢失(LOC)....................................................................................................................117 6.2.2.5 Stop 模式应答错误(SACKERR) ............................................................................................... 117 6.2.2.6 软件复位(SW)............................................................................................................................. 117 6.2.2.7 死锁复位(LOCKUP)................................................................................................................... 118 6.2.2.8 MDM-AP 系统复位请求............................................................................................................ 118 MCU 复位........................................................................................................................................................118 6.2.3.1 仅 POR ........................................................................................................................................ 118 KEA128 子系列参考手册, Rev. 2, July 2014 8 Freescale Semiconductor, Inc. 小节编号 6.3 标题 页 6.2.3.2 芯片 POR .................................................................................................................................... 118 6.2.3.3 早期芯片复位 .............................................................................................................................118 6.2.3.4 芯片复位 .....................................................................................................................................118 引导.................................................................................................................................................................................119 6.3.1 引导源..............................................................................................................................................................119 6.3.2 引导序列..........................................................................................................................................................119 第7章 电源管理 7.1 简介.................................................................................................................................................................................121 7.2 功耗模式.........................................................................................................................................................................121 7.3 进入和退出低功耗模式.................................................................................................................................................122 7.4 低功耗模式下的模块操作.............................................................................................................................................122 第8章 加密 8.1 简介.................................................................................................................................................................................125 8.2 Flash 加密.......................................................................................................................................................................125 8.3 与其他模块之间的安全性交互.....................................................................................................................................125 8.3.1 与调试之间的加密交互..................................................................................................................................125 第9章 调试 9.1 简介.................................................................................................................................................................................127 9.2 调试端口引脚说明.........................................................................................................................................................127 9.3 SWD 状态和控制寄存器...............................................................................................................................................127 9.3.1 MDM-AP 状态寄存器.................................................................................................................................... 129 9.3.2 MDM-AP 控制寄存器.................................................................................................................................... 129 9.4 调试复位.........................................................................................................................................................................130 9.5 低功耗模式下的调试.....................................................................................................................................................130 9.6 调试和加密.....................................................................................................................................................................131 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 9 小节编号 标题 页 第 10 章 信号多路复用和信号说明 10.1 简介.................................................................................................................................................................................133 10.2 引脚分配.........................................................................................................................................................................133 10.2.1 信号多路复用和引脚分配..............................................................................................................................133 10.2.2 器件引脚分配..................................................................................................................................................136 10.3 模块信号描述表.............................................................................................................................................................137 10.3.1 内核模块..........................................................................................................................................................137 10.3.2 系统模块..........................................................................................................................................................138 10.3.3 时钟模块..........................................................................................................................................................138 10.3.4 模拟..................................................................................................................................................................138 10.3.5 定时器模块......................................................................................................................................................139 10.3.6 通信接口..........................................................................................................................................................140 10.3.7 人机接口(HMI)............................................................................................................................................... 141 第 11 章 端口控制(PORT) 11.1 简介.................................................................................................................................................................................143 11.2 端口数据和数据方向.....................................................................................................................................................145 11.3 内部上拉使能.................................................................................................................................................................146 11.4 输入去抖滤波器设置.....................................................................................................................................................146 11.5 大电流驱动.....................................................................................................................................................................147 11.6 Stop 模式下的引脚特性................................................................................................................................................ 147 11.7 端口数据寄存器.............................................................................................................................................................147 11.7.1 端口滤波寄存器 0 (PORT_IOFLT0)............................................................................................................. 148 11.7.2 端口滤波寄存器 1 (PORT_IOFLT1)............................................................................................................. 151 11.7.3 端口上拉使能寄存器 0 (PORT_PUE0)......................................................................................................... 152 11.7.4 端口上拉使能寄存器 1 (PORT_PUE1)......................................................................................................... 157 11.7.5 端口上拉使能寄存器 2 (PORT_PUE2)......................................................................................................... 161 11.7.6 端口大电流驱动使能寄存器 (PORT_HDRVE)............................................................................................ 162 KEA128 子系列参考手册, Rev. 2, July 2014 10 Freescale Semiconductor, Inc. 小节编号 标题 页 第 12 章 系统集成模块(SIM) 12.1 简介.................................................................................................................................................................................165 12.1.1 特性..................................................................................................................................................................165 12.2 存储器映像和寄存器定义.............................................................................................................................................165 12.2.1 系统复位状态和 ID 寄存器 (SIM_SRSID)................................................................................................... 166 12.2.2 系统选项寄存器 0 (SIM_SOPT0).................................................................................................................. 169 12.2.3 系统选项寄存器 (SIM_SOPT1)..................................................................................................................... 172 12.2.4 引脚选择寄存器 0 (SIM_PINSEL0).............................................................................................................. 174 12.2.5 引脚选择寄存器 1 (SIM_PINSEL1).............................................................................................................. 176 12.2.6 系统时钟选通控制寄存器 (SIM_SCGC)...................................................................................................... 178 12.2.7 通用唯一标识符低位寄存器 (SIM_UUIDL)................................................................................................ 182 12.2.8 通用唯一标识符中低位寄存器 (SIM_UUIDML)......................................................................................... 182 12.2.9 通用唯一标识符中高位寄存器 (SIM_UUIDMH)........................................................................................ 183 12.2.10 时钟分频器寄存器 (SIM_CLKDIV)..............................................................................................................183 12.3 功能说明.........................................................................................................................................................................184 第 13 章 电源管理控制器(PMC) 13.1 简介.................................................................................................................................................................................185 13.2 低电压检测(LVD)系统..................................................................................................................................................185 13.2.1 上电复位(POR)操作....................................................................................................................................... 186 13.2.2 LVD 复位操作................................................................................................................................................ 186 13.2.3 Stop 模式下的 LVD 使能............................................................................................................................... 186 13.2.4 低压警报(LVW).............................................................................................................................................. 186 13.3 带隙基准源.....................................................................................................................................................................187 13.4 存储器映像和寄存器说明.............................................................................................................................................187 13.4.1 系统电源管理状态和控制 1 寄存器 (PMC_SPMSC1).................................................................................187 13.4.2 系统电源管理状态和控制 2 寄存器 (PMC_SPMSC2).................................................................................189 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 11 小节编号 标题 页 第 14 章 杂项控制模块(MCM) 14.1 简介.................................................................................................................................................................................191 14.1.1 特性..................................................................................................................................................................191 14.2 存储器映像/寄存器说明............................................................................................................................................... 191 14.2.1 交叉开关(AXBS)从机配置 (MCM_PLASC)................................................................................................ 192 14.2.2 交叉开关(AXBS)主机配置 (MCM_PLAMC)............................................................................................... 192 14.2.3 平台控制寄存器 (MCM_PLACR)................................................................................................................. 193 第 15 章 外设桥(AIPS-Lite) 15.1 简介.................................................................................................................................................................................197 15.1.1 特性..................................................................................................................................................................197 15.1.2 一般操作..........................................................................................................................................................197 15.2 功能说明.........................................................................................................................................................................198 15.2.1 访问支持..........................................................................................................................................................198 第 16 章 WDOG 16.1 简介.................................................................................................................................................................................199 16.1.1 特性..................................................................................................................................................................199 16.1.2 结构框图..........................................................................................................................................................200 16.2 存储器映像和寄存器定义.............................................................................................................................................201 16.2.1 WDOG 控制和状态寄存器 1 (WDOG_CS1)................................................................................................ 201 16.2.2 WDOG 控制和状态寄存器 2 (WDOG_CS2)................................................................................................ 203 16.2.3 WDOG 计数器寄存器:高位 (WDOG_CNTH)........................................................................................... 203 16.2.4 WDOG 计数器寄存器:低位 (WDOG_CNTL)............................................................................................204 16.2.5 WDOG 定时溢出值寄存器:高位 (WDOG_TOVALH)..............................................................................205 16.2.6 WDOG 定时溢出值寄存器:低位 (WDOG_TOVALL).............................................................................. 205 16.2.7 WDOG 窗口寄存器:高位 (WDOG_WINH)............................................................................................... 206 16.2.8 WDOG 窗口寄存器:低位 (WDOG_WINL)................................................................................................206 KEA128 子系列参考手册, Rev. 2, July 2014 12 Freescale Semiconductor, Inc. 小节编号 标题 页 16.3 功能说明.........................................................................................................................................................................206 16.3.1 16.3.2 WDOG 刷新机制............................................................................................................................................ 207 16.3.1.1 窗口模式......................................................................................................................................207 16.3.1.2 刷新 WDOG................................................................................................................................ 208 16.3.1.3 示例代码:刷新 WDOG............................................................................................................ 208 配置 WDOG.................................................................................................................................................... 208 16.3.2.1 重新配置 WDOG........................................................................................................................ 209 16.3.2.2 解锁 WDOG................................................................................................................................ 209 16.3.2.3 代码示例:重新配置 WDOG.................................................................................................... 209 16.3.3 时钟源..............................................................................................................................................................210 16.3.4 使用中断延迟复位..........................................................................................................................................210 16.3.5 备用复位..........................................................................................................................................................211 16.3.6 Debug 模式及低功耗模式下的功能.............................................................................................................. 211 16.3.7 WDOG 快速测试............................................................................................................................................ 211 16.3.7.1 测试计数器的每一个字节..........................................................................................................212 16.3.7.2 进入用户模式..............................................................................................................................213 第 17 章 位操作引擎(BME) 17.1 简介.................................................................................................................................................................................215 17.1.1 概述..................................................................................................................................................................215 17.1.2 特性..................................................................................................................................................................216 17.1.3 工作模式..........................................................................................................................................................217 17.2 存储器映像和寄存器定义.............................................................................................................................................217 17.3 功能说明.........................................................................................................................................................................217 17.3.1 BME 已修饰存储............................................................................................................................................ 217 17.3.1.1 已修饰存储逻辑与(AND).......................................................................................................... 219 17.3.1.2 已修饰存储逻辑或(OR)............................................................................................................. 220 17.3.1.3 已修饰存储逻辑异或(XOR).......................................................................................................221 17.3.1.4 已修饰存储位字段插入(BFI).....................................................................................................222 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 13 小节编号 17.3.2 17.3.3 标题 页 BME 已修饰加载............................................................................................................................................ 223 17.3.2.1 已修饰加载:1 位加载-置位(LAS1)...................................................................................... 226 17.3.2.2 已修饰加载无符号位字段提取(UBFX).................................................................................... 227 已修饰地址和 GPIO 访问的更多详情.......................................................................................................... 228 17.4 应用信息.........................................................................................................................................................................229 第 18 章 Flash 存储器模块(FTMRE) 18.1 简介.................................................................................................................................................................................231 18.2 特性.................................................................................................................................................................................231 18.2.1 Flash 存储器特性............................................................................................................................................ 231 18.2.2 Flash 模块其他特性........................................................................................................................................ 232 18.3 功能说明.........................................................................................................................................................................232 18.3.1 工作模式..........................................................................................................................................................232 18.3.1.1 Wait 模式..................................................................................................................................... 232 18.3.1.2 Stop 模式..................................................................................................................................... 232 18.3.2 Flash 存储器映射............................................................................................................................................ 232 18.3.3 系统复位之后的 Flash 初始化....................................................................................................................... 232 18.3.4 Flash 命令操作................................................................................................................................................ 233 18.3.5 18.3.4.1 写 FCLKDIV 寄存器.................................................................................................................. 234 18.3.4.2 命令写入序列..............................................................................................................................236 Flash 中断........................................................................................................................................................ 238 18.3.5.1 Flash 中断操作的说明................................................................................................................ 238 18.3.6 保护..................................................................................................................................................................238 18.3.7 加密..................................................................................................................................................................242 18.3.8 18.3.7.1 使用后门密钥访问解密 MCU....................................................................................................243 18.3.7.2 使用 SWD 解密 MCU.................................................................................................................244 18.3.7.3 模式与加密状态对 Flash 命令可用性的影响........................................................................... 244 Flash 命令........................................................................................................................................................ 244 18.3.8.1 Flash 命令.................................................................................................................................... 244 KEA128 子系列参考手册, Rev. 2, July 2014 14 Freescale Semiconductor, Inc. 小节编号 18.3.9 标题 页 Flash 命令汇总................................................................................................................................................ 245 18.3.9.1 “擦除验证所有数据块”命令...................................................................................................... 246 18.3.9.2 “擦除验证数据块”命令.............................................................................................................. 246 18.3.9.3 “擦除检验 Flash 段”命令........................................................................................................... 247 18.3.9.4 “读取一次”命令.......................................................................................................................... 248 18.3.9.5 “编程 Flash”命令........................................................................................................................ 248 18.3.9.6 “编程一次”命令.......................................................................................................................... 249 18.3.9.7 “擦除所有区块”命令.................................................................................................................. 250 18.3.9.8 调试器整体擦除请求..................................................................................................................251 18.3.9.9 “擦除 Flash 区块”命令............................................................................................................... 252 18.3.9.10 “擦除 Flash 扇区”命令............................................................................................................... 252 18.3.9.11 “解密 Flash”命令........................................................................................................................ 253 18.3.9.12 “检验后门访问密钥”命令.......................................................................................................... 254 18.3.9.13 “设置用户裕量水平”命令.......................................................................................................... 255 18.3.9.14 “设置出厂裕量水平”命令.......................................................................................................... 256 18.3.9.15 “配置 NVM”命令........................................................................................................................257 18.4 存储器映像和寄存器定义.............................................................................................................................................259 18.4.1 Flash CCOB 索引寄存器 (FTMRE_FCCOBIX)............................................................................................260 18.4.2 Flash 安全寄存器 (FTMRE_FSEC)............................................................................................................... 260 18.4.3 Flash 时钟分频器寄存器 (FTMRE_FCLKDIV)............................................................................................261 18.4.4 Flash 状态寄存器 (FTMRE_FSTAT).............................................................................................................262 18.4.5 Flash 配置寄存器 (FTMRE_FCNFG)............................................................................................................ 263 18.4.6 Flash 通用命令对象寄存器:低位 (FTMRE_FCCOBLO)...........................................................................264 18.4.7 Flash 通用命令对象寄存器:高位 (FTMRE_FCCOBHI)............................................................................264 18.4.8 Flash 保护寄存器 (FTMRE_FPROT).............................................................................................................265 18.4.9 Flash 选项寄存器 (FTMRE_FOPT)............................................................................................................... 266 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 15 小节编号 标题 页 第 19 章 Flash 存储器控制器(FMC) 19.1 简介.................................................................................................................................................................................267 19.1.1 概述..................................................................................................................................................................267 19.1.2 特性..................................................................................................................................................................267 19.2 工作模式.........................................................................................................................................................................268 19.3 外部信号说明.................................................................................................................................................................268 19.4 存储器映像和寄存器说明.............................................................................................................................................268 19.5 功能说明.........................................................................................................................................................................268 第 20 章 内部时钟源(ICS) 20.1 简介.................................................................................................................................................................................271 20.1.1 特性..................................................................................................................................................................271 20.1.2 结构框图..........................................................................................................................................................271 20.1.3 工作模式..........................................................................................................................................................272 20.1.3.1 FLL 内部启用(FEI)..................................................................................................................... 272 20.1.3.2 FLL 外部启用(FEE)模式............................................................................................................272 20.1.3.3 FLL 内部旁路(FBI).....................................................................................................................272 20.1.3.4 FLL 内部旁路低功耗(FBILP).................................................................................................... 273 20.1.3.5 FLL 外部旁路(FBE)....................................................................................................................273 20.1.3.6 FLL 外部旁路低功耗(FBELP)................................................................................................... 273 20.1.3.7 停止 (STOP)................................................................................................................................ 273 20.2 外部信号说明.................................................................................................................................................................273 20.3 寄存器定义.....................................................................................................................................................................273 20.3.1 ICS 控制寄存器 1 (ICS_C1)........................................................................................................................... 274 20.3.2 ICS 控制寄存器 2 (ICS_C2)........................................................................................................................... 275 20.3.3 ICS 控制寄存器 3 (ICS_C3)........................................................................................................................... 276 20.3.4 ICS 控制寄存器 4 (ICS_C4)........................................................................................................................... 276 20.3.5 ICS 状态寄存器 (ICS_S)................................................................................................................................ 277 KEA128 子系列参考手册, Rev. 2, July 2014 16 Freescale Semiconductor, Inc. 小节编号 标题 页 20.4 功能说明.........................................................................................................................................................................278 20.4.1 工作模式..........................................................................................................................................................278 20.4.1.1 FLL 内部启用(FEI)..................................................................................................................... 279 20.4.1.2 FLL 外部启用(FEE)....................................................................................................................279 20.4.1.3 FLL 内部旁路(FBI).....................................................................................................................280 20.4.1.4 FLL 内部旁路低功耗(FBILP).................................................................................................... 280 20.4.1.5 FLL 外部旁路(FBE)....................................................................................................................280 20.4.1.6 FLL 外部旁路低功耗(FBELP)................................................................................................... 280 20.4.1.7 停止..............................................................................................................................................281 20.4.2 模式切换..........................................................................................................................................................281 20.4.3 总线频率分频器..............................................................................................................................................281 20.4.4 低功耗字段的使用..........................................................................................................................................281 20.4.5 内部参考时钟..................................................................................................................................................282 20.4.6 固定频率时钟..................................................................................................................................................282 20.4.7 FLL 锁定和时钟监视器..................................................................................................................................282 20.4.7.1 FLL 时钟锁定..............................................................................................................................282 20.4.7.2 外部基准时钟监视器..................................................................................................................283 20.5 初始化/应用信息........................................................................................................................................................... 283 20.5.1 初始化 FEI 模式..............................................................................................................................................283 20.5.2 初始化 FBI 模式............................................................................................................................................. 284 20.5.3 初始化 FEE 模式.............................................................................................................................................284 20.5.4 初始化 FBE 模式............................................................................................................................................ 284 第 21 章 振荡器(OSC) 21.1 简介.................................................................................................................................................................................287 21.1.1 概述..................................................................................................................................................................287 21.1.2 特性和模式......................................................................................................................................................287 21.1.3 结构框图..........................................................................................................................................................287 21.2 信号说明.........................................................................................................................................................................288 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 17 小节编号 标题 页 21.3 外部晶振/谐振器连接................................................................................................................................................... 289 21.4 外部时钟连接.................................................................................................................................................................290 21.5 存储器映像和寄存器说明.............................................................................................................................................290 21.5.1 OSC 控制寄存器 (OSC_CR).......................................................................................................................... 291 21.6 功能说明.........................................................................................................................................................................292 21.6.1 21.6.2 OSC 模块状态................................................................................................................................................. 292 21.6.1.1 关..................................................................................................................................................293 21.6.1.2 振荡器启动..................................................................................................................................293 21.6.1.3 振荡器稳定..................................................................................................................................293 21.6.1.4 外部时钟模式..............................................................................................................................293 OSC 模块模式................................................................................................................................................. 293 21.6.2.1 低频、高增益模式......................................................................................................................294 21.6.2.2 低频、低功耗模式......................................................................................................................294 21.6.2.3 高频、高增益模式......................................................................................................................294 21.6.2.4 高频、低功耗模式......................................................................................................................295 21.6.3 计数器寄存器..................................................................................................................................................295 21.6.4 基准时钟的引脚要求......................................................................................................................................295 第 22 章 循环冗余校验(CRC) 22.1 简介.................................................................................................................................................................................297 22.1.1 特性..................................................................................................................................................................297 22.1.2 结构框图..........................................................................................................................................................297 22.1.3 工作模式..........................................................................................................................................................298 22.1.3.1 Run 模式...................................................................................................................................... 298 22.1.3.2 低功耗模式(Wait 或 Stop 模式)............................................................................................298 22.2 存储器映像和寄存器说明.............................................................................................................................................298 22.2.1 CRC 数据寄存器 (CRC_DATA).................................................................................................................... 299 22.2.2 CRC 多项式寄存器 (CRC_GPOLY)..............................................................................................................300 22.2.3 CRC 控制寄存器 (CRC_CTRL).....................................................................................................................300 KEA128 子系列参考手册, Rev. 2, July 2014 18 Freescale Semiconductor, Inc. 小节编号 标题 页 22.3 功能说明.........................................................................................................................................................................301 22.3.1 CRC 初始化/重新初始化................................................................................................................................301 22.3.2 CRC 计算.........................................................................................................................................................302 22.3.3 22.3.2.1 16 位 CRC....................................................................................................................................302 22.3.2.2 32 位 CRC....................................................................................................................................302 转置特性..........................................................................................................................................................303 22.3.3.1 22.3.4 转置类型......................................................................................................................................303 CRC 结果补码.................................................................................................................................................304 第 23 章 外部中断(IRQ) 23.1 简介.................................................................................................................................................................................305 23.2 特性.................................................................................................................................................................................305 23.2.1 引脚配置选项..................................................................................................................................................306 23.2.2 边沿和电平有效..............................................................................................................................................307 23.3 外部中断引脚请求寄存器.............................................................................................................................................307 23.3.1 外部中断引脚请求状态和控制寄存器 (IRQ_SC)........................................................................................ 307 第 24 章 模数转换器(ADC) 24.1 简介.................................................................................................................................................................................309 24.1.1 特性..................................................................................................................................................................309 24.1.2 结构框图..........................................................................................................................................................310 24.2 外部信号说明.................................................................................................................................................................310 24.2.1 模拟电源(VDDA)........................................................................................................................................... 311 24.2.2 模拟接地(VSSA).............................................................................................................................................311 24.2.3 高基准电压 (VREFH)..................................................................................................................................... 311 24.2.4 低基准电压 (VREFL)..................................................................................................................................... 311 24.2.5 模拟通道输入(ADx)....................................................................................................................................... 311 24.3 ADC 控制寄存器........................................................................................................................................................... 312 24.3.1 状态和控制寄存器 1 (ADC_SC1)..................................................................................................................312 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 19 小节编号 标题 页 24.3.2 状态和控制寄存器 2 (ADC_SC2)..................................................................................................................314 24.3.3 状态和控制寄存器 3 (ADC_SC3)..................................................................................................................316 24.3.4 状态和控制寄存器 4 (ADC_SC4)..................................................................................................................317 24.3.5 转换结果寄存器 (ADC_R)............................................................................................................................. 318 24.3.6 比较值寄存器 (ADC_CV).............................................................................................................................. 319 24.3.7 引脚控制 1 寄存器 (ADC_APCTL1)............................................................................................................. 319 24.3.8 状态和控制寄存器 5 (ADC_SC5)..................................................................................................................320 24.4 功能说明.........................................................................................................................................................................321 24.4.1 时钟选择和分频控制......................................................................................................................................321 24.4.2 输入选择和引脚控制......................................................................................................................................321 24.4.3 硬件触发..........................................................................................................................................................322 24.4.4 转换控制..........................................................................................................................................................322 24.4.4.1 发起转换......................................................................................................................................322 24.4.4.2 完成转换......................................................................................................................................323 24.4.4.3 中止转换......................................................................................................................................323 24.4.4.4 功率控制......................................................................................................................................323 24.4.4.5 采样时间和总转换时间..............................................................................................................323 24.4.5 自动比较功能..................................................................................................................................................325 24.4.6 FIFO 操作........................................................................................................................................................ 325 24.4.7 MCUWait 模式下的操作................................................................................................................................330 24.4.8 MCU Stop 模式下的操作............................................................................................................................... 330 24.4.8.1 采用 Stop 模式并禁用 ADACK................................................................................................. 330 24.4.8.2 采用 Stop 模式并启用 ADACK................................................................................................. 330 24.5 初始化信息.....................................................................................................................................................................331 24.5.1 ADC 模块初始化示例.................................................................................................................................... 331 24.5.1.1 初始化序列..................................................................................................................................331 KEA128 子系列参考手册, Rev. 2, July 2014 20 Freescale Semiconductor, Inc. 小节编号 标题 24.5.1.2 24.5.2 页 伪代码示例..................................................................................................................................331 ADC FIFO 模块初始化示例...........................................................................................................................332 24.5.2.1 伪代码示例..................................................................................................................................332 24.6 应用信息.........................................................................................................................................................................333 24.6.1 24.6.2 外部引脚和布线..............................................................................................................................................333 24.6.1.1 模拟电源引脚..............................................................................................................................333 24.6.1.2 模拟基准引脚..............................................................................................................................334 24.6.1.3 模拟输入引脚..............................................................................................................................334 误差来源..........................................................................................................................................................335 24.6.2.1 采样误差......................................................................................................................................335 24.6.2.2 引脚漏电误差..............................................................................................................................335 24.6.2.3 噪声性误差..................................................................................................................................335 24.6.2.4 编码宽度和量化误差..................................................................................................................336 24.6.2.5 线性误差......................................................................................................................................337 24.6.2.6 编码抖动、非单调性和失码......................................................................................................337 第 25 章 模拟比较器(ACMP) 25.1 简介.................................................................................................................................................................................339 25.1.1 特性..................................................................................................................................................................339 25.1.2 工作模式..........................................................................................................................................................339 25.1.3 25.1.2.1 Wait 模式下的操作..................................................................................................................... 339 25.1.2.2 Stop 模式下的操作..................................................................................................................... 340 25.1.2.3 Debug 模式下的操作.................................................................................................................. 340 结构框图..........................................................................................................................................................340 25.2 外部信号说明.................................................................................................................................................................341 25.3 存储器映像和寄存器定义.............................................................................................................................................341 25.3.1 ACMP 控制和状态寄存器 (ACMPx_CS)......................................................................................................341 25.3.2 ACMP 控制寄存器 0 (ACMPx_C0)............................................................................................................... 342 25.3.3 ACMP 控制寄存器 1 (ACMPx_C1)............................................................................................................... 343 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 21 小节编号 25.3.4 标题 页 ACMP 控制寄存器 2 (ACMPx_C2)............................................................................................................... 343 25.4 功能说明.........................................................................................................................................................................344 25.5 ACMP 的设置和操作.................................................................................................................................................... 345 25.6 复位.................................................................................................................................................................................345 25.7 中断.................................................................................................................................................................................345 第 26 章 FlexTimer 模块(FTM) 26.1 简介.................................................................................................................................................................................347 26.1.1 FlexTimer 的基本理念....................................................................................................................................347 26.1.2 特性..................................................................................................................................................................348 26.1.3 工作模式..........................................................................................................................................................349 26.1.4 结构框图..........................................................................................................................................................349 26.2 FTM 信号说明............................................................................................................................................................... 351 26.3 存储器映像和寄存器定义.............................................................................................................................................351 26.3.1 存储器映像......................................................................................................................................................351 26.3.2 寄存器说明......................................................................................................................................................351 26.3.3 状态和控制寄存器 (FTMx_SC)..................................................................................................................... 355 26.3.4 计数器寄存器 (FTMx_CNT).......................................................................................................................... 356 26.3.5 模数寄存器 (FTMx_MOD).............................................................................................................................357 26.3.6 通道(n)状态和控制寄存器 (FTMx_CnSC)....................................................................................................358 26.3.7 通道(n)值寄存器 (FTMx_CnV)......................................................................................................................360 26.3.8 计数器初始值寄存器 (FTMx_CNTIN)..........................................................................................................360 26.3.9 捕捉和比较状态寄存器 (FTMx_STATUS)................................................................................................... 361 26.3.10 特性模式选择寄存器 (FTMx_MODE).......................................................................................................... 363 26.3.11 同步寄存器 (FTMx_SYNC)........................................................................................................................... 364 26.3.12 通道输出的初始状态寄存器 (FTMx_OUTINIT)..........................................................................................366 26.3.13 输出屏蔽寄存器 (FTMx_OUTMASK).......................................................................................................... 368 26.3.14 已连接通道功能寄存器 (FTMx_COMBINE)................................................................................................370 26.3.15 死区时间插入控制 (FTMx_DEADTIME)..................................................................................................... 374 KEA128 子系列参考手册, Rev. 2, July 2014 22 Freescale Semiconductor, Inc. 小节编号 标题 页 26.3.16 FTM 外部触发寄存器 (FTMx_EXTTRIG)....................................................................................................375 26.3.17 通道极性寄存器 (FTMx_POL)...................................................................................................................... 377 26.3.18 故障模式状态寄存器 (FTMx_FMS).............................................................................................................. 380 26.3.19 输入捕捉滤波器控制寄存器 (FTMx_FILTER)............................................................................................ 382 26.3.20 故障控制寄存器 (FTMx_FLTCTRL).............................................................................................................383 26.3.21 配置寄存器 (FTMx_CONF)........................................................................................................................... 385 26.3.22 FTM 故障输入极性寄存器 (FTMx_FLTPOL).............................................................................................. 386 26.3.23 同步配置寄存器 (FTMx_SYNCONF)........................................................................................................... 387 26.3.24 FTM 反相控制寄存器 (FTMx_INVCTRL)................................................................................................... 389 26.3.25 FTM 软件输出控制寄存器 (FTMx_SWOCTRL)..........................................................................................390 26.3.26 FTM PWM 加载寄存器 (FTMx_PWMLOAD)..............................................................................................392 26.4 功能说明.........................................................................................................................................................................393 26.4.1 时钟源..............................................................................................................................................................394 26.4.1.1 计数器时钟源..............................................................................................................................394 26.4.2 预分频器..........................................................................................................................................................395 26.4.3 计数器寄存器..................................................................................................................................................395 26.4.4 26.4.3.1 向上计数......................................................................................................................................395 26.4.3.2 向上-向下计数............................................................................................................................ 398 26.4.3.3 自由运行计数器..........................................................................................................................399 26.4.3.4 计数器复位..................................................................................................................................400 26.4.3.5 TOF 置位时................................................................................................................................. 400 输入捕捉模式..................................................................................................................................................401 26.4.4.1 输入捕捉模式的滤波器..............................................................................................................401 26.4.5 输出比较模式..................................................................................................................................................403 26.4.6 边沿对齐 PWM (EPWM)模式....................................................................................................................... 404 26.4.7 中心对齐 PWM (CPWM)模式....................................................................................................................... 406 26.4.8 组合模式..........................................................................................................................................................407 26.4.8.1 26.4.9 不对称 PWM............................................................................................................................... 415 互补模式..........................................................................................................................................................415 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 23 小节编号 标题 页 26.4.10 通过写缓存更新的寄存器..............................................................................................................................416 26.4.10.1 CNTIN 寄存器更新.................................................................................................................... 416 26.4.10.2 MOD 寄存器更新....................................................................................................................... 417 26.4.10.3 CnV 寄存器更新......................................................................................................................... 417 26.4.11 PWM 同步....................................................................................................................................................... 417 26.4.11.1 硬件触发......................................................................................................................................418 26.4.11.2 软件触发......................................................................................................................................419 26.4.11.3 边界周期和加载点......................................................................................................................419 26.4.11.4 MOD 寄存器同步....................................................................................................................... 420 26.4.11.5 CNTIN 寄存器同步.................................................................................................................... 423 26.4.11.6 C(n)V 和 C(n+1)V 寄存器同步.................................................................................................. 423 26.4.11.7 OUTMASK 寄存器同步............................................................................................................. 424 26.4.11.8 INVCTRL 寄存器同步............................................................................................................... 427 26.4.11.9 SWOCTRL 寄存器同步..............................................................................................................428 26.4.11.10 FTM 计数器同步........................................................................................................................ 430 26.4.12 反相..................................................................................................................................................................432 26.4.13 软件输出控制..................................................................................................................................................434 26.4.14 死区插入..........................................................................................................................................................436 26.4.14.1 死区插入个别案例......................................................................................................................437 26.4.15 输出屏蔽..........................................................................................................................................................438 26.4.16 故障控制..........................................................................................................................................................439 26.4.16.1 自动故障清除..............................................................................................................................441 26.4.16.2 手动故障清除..............................................................................................................................441 26.4.16.3 故障输入极性控制......................................................................................................................442 26.4.17 极性控制..........................................................................................................................................................442 26.4.18 初始化..............................................................................................................................................................443 26.4.19 特性优先级......................................................................................................................................................443 26.4.20 通道触发器输出..............................................................................................................................................444 26.4.21 初始化触发......................................................................................................................................................445 KEA128 子系列参考手册, Rev. 2, July 2014 24 Freescale Semiconductor, Inc. 小节编号 标题 页 26.4.22 捕获测试模式..................................................................................................................................................447 26.4.23 双沿捕捉模式..................................................................................................................................................448 26.4.23.1 一次性捕捉模式..........................................................................................................................449 26.4.23.2 连续捕捉模式..............................................................................................................................450 26.4.23.3 脉宽测量......................................................................................................................................450 26.4.23.4 周期测量......................................................................................................................................452 26.4.23.5 读取一致性机制..........................................................................................................................454 26.4.24 Debug 模式...................................................................................................................................................... 455 26.4.25 中间加载..........................................................................................................................................................456 26.4.26 全局时基(GTB)............................................................................................................................................... 458 26.4.26.1 使能全局时基(GTB)................................................................................................................... 459 26.5 复位概述.........................................................................................................................................................................459 26.6 FTM 中断....................................................................................................................................................................... 460 26.6.1 定时器溢出中断..............................................................................................................................................461 26.6.2 通道(n)中断..................................................................................................................................................... 461 26.6.3 故障中断..........................................................................................................................................................461 26.7 初始化流程.....................................................................................................................................................................461 第 27 章 脉冲宽度定时器(PWT) 27.1 简介.................................................................................................................................................................................463 27.1.1 特性..................................................................................................................................................................463 27.1.2 工作模式..........................................................................................................................................................463 27.1.3 功能框图..........................................................................................................................................................464 27.2 PWT 信号说明............................................................................................................................................................... 465 27.2.1 PWTIN[3:0] - 脉宽定时器捕捉输入.............................................................................................................. 465 27.2.2 ALTCLK- 计数器的备用时钟源....................................................................................................................465 27.3 存储器映像和寄存器说明.............................................................................................................................................465 27.3.1 脉宽定时器寄存器 1 (PWT_R1).................................................................................................................... 466 27.3.2 脉宽定时器寄存器 2 (PWT_R2).................................................................................................................... 468 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 25 小节编号 标题 页 27.4 功能说明.........................................................................................................................................................................469 27.4.1 PWT 计数器和 PWT 时钟预分频器..............................................................................................................469 27.4.2 边沿检测和捕捉控制 .....................................................................................................................................469 27.5 复位.................................................................................................................................................................................472 27.5.1 通用..................................................................................................................................................................472 27.5.2 复位操作说明..................................................................................................................................................472 27.6 中断.................................................................................................................................................................................472 27.6.1 中断操作说明..................................................................................................................................................472 27.6.2 应用示例..........................................................................................................................................................473 第 28 章 周期性中断定时器(PIT) 28.1 简介.................................................................................................................................................................................475 28.1.1 结构框图..........................................................................................................................................................475 28.1.2 特性..................................................................................................................................................................476 28.2 信号说明.........................................................................................................................................................................476 28.3 存储器映像/寄存器说明............................................................................................................................................... 477 28.3.1 PIT 模块控制寄存器 (PIT_MCR).................................................................................................................. 477 28.3.2 定时器加载值寄存器 (PIT_LDVALn).......................................................................................................... 478 28.3.3 当前定时器值寄存器 (PIT_CVALn)............................................................................................................. 479 28.3.4 定时器控制寄存器 (PIT_TCTRLn)............................................................................................................... 479 28.3.5 定时器标志寄存器 (PIT_TFLGn).................................................................................................................. 480 28.4 功能说明.........................................................................................................................................................................481 28.4.1 常规操作..........................................................................................................................................................481 28.4.1.1 定时器..........................................................................................................................................481 28.4.1.2 Debug 模式.................................................................................................................................. 482 28.4.2 中断..................................................................................................................................................................482 28.4.3 链接定时器......................................................................................................................................................482 28.5 初始化和应用信息.........................................................................................................................................................483 28.6 链接定时器配置示例.....................................................................................................................................................484 KEA128 子系列参考手册, Rev. 2, July 2014 26 Freescale Semiconductor, Inc. 小节编号 标题 页 第 29 章 实时计数器(RTC) 29.1 简介.................................................................................................................................................................................485 29.2 特性.................................................................................................................................................................................485 29.2.1 29.2.2 工作模式..........................................................................................................................................................485 29.2.1.1 Wait 模式..................................................................................................................................... 485 29.2.1.2 Stop 模式..................................................................................................................................... 486 结构框图..........................................................................................................................................................486 29.3 外部信号说明.................................................................................................................................................................486 29.4 寄存器定义.....................................................................................................................................................................486 29.4.1 RTC 状态和控制寄存器 (RTC_SC)...............................................................................................................487 29.4.2 RTC 模数寄存器 (RTC_MOD)...................................................................................................................... 488 29.4.3 RTC 计数器寄存器 (RTC_CNT)................................................................................................................... 489 29.5 功能说明.........................................................................................................................................................................489 29.5.1 RTC 操作示例................................................................................................................................................. 490 29.6 初始化/应用信息........................................................................................................................................................... 491 第 30 章 串行外设接口(SPI) 30.1 简介.................................................................................................................................................................................493 30.1.1 特性..................................................................................................................................................................493 30.1.2 工作模式..........................................................................................................................................................494 30.1.3 结构框图..........................................................................................................................................................494 30.1.3.1 SPI 系统结构框图....................................................................................................................... 495 30.1.3.2 SPI 模块结构框图....................................................................................................................... 495 30.2 外部信号说明.................................................................................................................................................................496 30.2.1 SPSCK — SPI 串行时钟.................................................................................................................................496 30.2.2 MOSI — 主机数据输出,从机数据输入......................................................................................................497 30.2.3 MISO — 主机数据输入,从机数据输出......................................................................................................497 30.2.4 SS — 从机选择............................................................................................................................................... 497 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 27 小节编号 标题 页 30.3 存储器映像/寄存器定义............................................................................................................................................... 497 30.3.1 SPI 控制寄存器 1 (SPIx_C1).......................................................................................................................... 498 30.3.2 SPI 控制寄存器 2 (SPIx_C2).......................................................................................................................... 500 30.3.3 SPI 波特率寄存器 (SPIx_BR)........................................................................................................................ 501 30.3.4 SPI 状态寄存器 (SPIx_S)............................................................................................................................... 502 30.3.5 SPI 数据寄存器 (SPIx_D)...............................................................................................................................503 30.3.6 SPI 匹配寄存器 (SPIx_M).............................................................................................................................. 504 30.4 功能说明.........................................................................................................................................................................504 30.4.1 综述..................................................................................................................................................................504 30.4.2 主机模式..........................................................................................................................................................505 30.4.3 从机模式..........................................................................................................................................................506 30.4.4 SPI 时钟格式................................................................................................................................................... 507 30.4.5 SPI 波特率生成............................................................................................................................................... 510 30.4.6 特殊功能..........................................................................................................................................................510 30.4.7 30.4.6.1 SS 输出........................................................................................................................................ 510 30.4.6.2 双向模式(MOMI 或 SISO)....................................................................................................511 错误条件..........................................................................................................................................................512 30.4.7.1 30.4.8 30.4.9 模式故障错误..............................................................................................................................512 低功耗模式选项..............................................................................................................................................512 30.4.8.1 Run 模式下的 SPI....................................................................................................................... 512 30.4.8.2 Wait 模式下的 SPI...................................................................................................................... 512 30.4.8.3 Stop 模式下的 SPI.......................................................................................................................513 复位..................................................................................................................................................................514 30.4.10 中断..................................................................................................................................................................514 30.4.10.1 MODF.......................................................................................................................................... 514 30.4.10.2 SPRF............................................................................................................................................ 514 30.4.10.3 SPTEF.......................................................................................................................................... 515 30.4.10.4 SPMF........................................................................................................................................... 515 30.4.10.5 低功耗模式下的异步中断..........................................................................................................515 KEA128 子系列参考手册, Rev. 2, July 2014 28 Freescale Semiconductor, Inc. 小节编号 标题 页 30.5 初始化/应用信息........................................................................................................................................................... 515 30.5.1 初始化序列......................................................................................................................................................516 30.5.2 伪代码示例......................................................................................................................................................516 第 31 章 I2C 模块 31.1 简介.................................................................................................................................................................................519 31.1.1 特性..................................................................................................................................................................519 31.1.2 工作模式..........................................................................................................................................................520 31.1.3 结构框图..........................................................................................................................................................520 31.2 I2C 信号说明..................................................................................................................................................................521 31.3 存储器映像/寄存器定义............................................................................................................................................... 522 31.3.1 I2C 地址寄存器 1 (I2Cx_A1)......................................................................................................................... 523 31.3.2 I2C 分频器寄存器 (I2Cx_F)........................................................................................................................... 523 31.3.3 I2C 控制寄存器 1 (I2Cx_C1)..........................................................................................................................524 31.3.4 I2C 状态寄存器 (I2Cx_S)............................................................................................................................... 525 31.3.5 I2C 数据 I/O 寄存器 (I2Cx_D)....................................................................................................................... 527 31.3.6 I2C 控制寄存器 2 (I2Cx_C2)..........................................................................................................................528 31.3.7 I2C 可编程输入去抖滤波器寄存器 (I2Cx_FLT).......................................................................................... 529 31.3.8 I2C 范围地址寄存器 (I2Cx_RA)....................................................................................................................530 31.3.9 I2C SMBus 控制和状态寄存器 (I2Cx_SMB)................................................................................................530 31.3.10 I2C 地址寄存器 2 (I2Cx_A2)......................................................................................................................... 532 31.3.11 I2C SCL 低位定时溢出寄存器高电平 (I2Cx_SLTH)................................................................................... 532 31.3.12 I2C SCL 低位定时溢出寄存器低电平 (I2Cx_SLTL)................................................................................... 533 31.4 功能说明.........................................................................................................................................................................533 31.4.1 I2C 协议...........................................................................................................................................................533 31.4.1.1 START 信号................................................................................................................................ 534 31.4.1.2 从机地址发送..............................................................................................................................534 31.4.1.3 数据传输......................................................................................................................................535 31.4.1.4 停止信号......................................................................................................................................535 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 29 小节编号 31.4.2 标题 页 31.4.1.5 重复开始信号..............................................................................................................................535 31.4.1.6 仲裁程序......................................................................................................................................535 31.4.1.7 时钟同步......................................................................................................................................536 31.4.1.8 握手..............................................................................................................................................536 31.4.1.9 时钟拉伸......................................................................................................................................537 31.4.1.10 I2C 分频器和保持值...................................................................................................................537 10 位地址.........................................................................................................................................................538 31.4.2.1 主发送器对从接收器进行寻址..................................................................................................538 31.4.2.2 主机-发送器对从机-接收器进行寻址....................................................................................... 539 31.4.3 地址匹配..........................................................................................................................................................539 31.4.4 系统管理总线规范..........................................................................................................................................540 31.4.4.1 定时溢出......................................................................................................................................540 31.4.4.2 FAST ACK 和 NACK................................................................................................................. 541 31.4.5 复位..................................................................................................................................................................542 31.4.6 中断..................................................................................................................................................................542 31.4.6.1 字节传输中断..............................................................................................................................543 31.4.6.2 地址检测中断..............................................................................................................................543 31.4.6.3 停止检测中断..............................................................................................................................543 31.4.6.4 退出低功耗/Stop 模式................................................................................................................ 543 31.4.6.5 仲裁丢失中断..............................................................................................................................543 31.4.6.6 SMBus 中的定时溢出中断.........................................................................................................544 31.4.7 可编程输入去抖滤波器..................................................................................................................................544 31.4.8 地址匹配唤醒..................................................................................................................................................545 31.5 初始化/应用信息........................................................................................................................................................... 545 第 32 章 MSCAN 32.1 简介.................................................................................................................................................................................549 32.1.1 术语表..............................................................................................................................................................549 32.1.2 结构框图..........................................................................................................................................................549 KEA128 子系列参考手册, Rev. 2, July 2014 30 Freescale Semiconductor, Inc. 小节编号 标题 页 32.1.3 特性..................................................................................................................................................................550 32.1.4 工作模式..........................................................................................................................................................551 32.1.4.1 系统正常工作模式......................................................................................................................551 32.1.4.2 系统特殊工作模式......................................................................................................................551 32.1.4.3 仿真模式......................................................................................................................................551 32.1.4.4 仅监听模式..................................................................................................................................551 32.1.4.5 MSCAN 初始化模式.................................................................................................................. 551 32.2 外部信号说明.................................................................................................................................................................552 32.2.1 CAN 系统........................................................................................................................................................ 553 32.3 存储器映像和寄存器定义.............................................................................................................................................553 32.3.1 程序员报文存储模型......................................................................................................................................553 32.3.2 MSCAN 控制寄存器 0 (MSCAN_CANCTL0)..............................................................................................558 32.3.3 MSCAN 控制寄存器 1 (MSCAN_CANCTL1)..............................................................................................560 32.3.4 MSCAN 总线定时寄存器 0 (MSCAN_CANBTR0)..................................................................................... 561 32.3.5 MSCAN 总线定时寄存器 1 (MSCAN_CANBTR1)..................................................................................... 562 32.3.6 MSCAN 接收器标志寄存器 (MSCAN_CANRFLG).................................................................................... 563 32.3.7 MSCAN 接收器中断使能寄存器 (MSCAN_CANRIER)............................................................................. 565 32.3.8 MSCAN 发送器标志寄存器 (MSCAN_CANTFLG).................................................................................... 566 32.3.9 MSCAN 发送器中断使能寄存器 (MSCAN_CANTIER)............................................................................. 567 32.3.10 MSCAN 发送器报文中止请求寄存器 (MSCAN_CANTARQ)................................................................... 568 32.3.11 MSCAN 发送器报文中止应答寄存器 (MSCAN_CANTAAK)................................................................... 568 32.3.12 MSCAN 发送缓冲区选择寄存器 (MSCAN_CANTBSEL).......................................................................... 569 32.3.13 MSCAN 标识符验收控制寄存器 (MSCAN_CANIDAC)............................................................................ 570 32.3.14 MSCAN 其他寄存器 (MSCAN_CANMISC)................................................................................................ 571 32.3.15 MSCAN 接收错误计数器 (MSCAN_CANRXERR).....................................................................................572 32.3.16 MSCAN 发送错误计数器 (MSCAN_CANTXERR)..................................................................................... 572 32.3.17 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDARn)...................................................... 573 32.3.18 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMRn)......................................................574 32.3.19 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDARn)...................................................... 574 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 31 小节编号 标题 页 32.3.20 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMRn)......................................................575 32.3.21 接收扩展标识符寄存器 0 (MSCAN_REIDR0).............................................................................................576 32.3.22 接收标准标识符寄存器 0 (MSCAN_RSIDR0)............................................................................................. 576 32.3.23 接收扩展标识符寄存器 1 (MSCAN_REIDR1).............................................................................................577 32.3.24 接收标准标识符寄存器 1 (MSCAN_RSIDR1)............................................................................................. 578 32.3.25 接收扩展标识符寄存器 2 (MSCAN_REIDR2).............................................................................................579 32.3.26 接收扩展标识符寄存器 3 (MSCAN_REIDR3).............................................................................................579 32.3.27 接收扩展数据段寄存器 N (MSCAN_REDSRn)........................................................................................... 580 32.3.28 接收数据长度寄存器 (MSCAN_RDLR)....................................................................................................... 580 32.3.29 接收时间标志寄存器高位 (MSCAN_RTSRH)............................................................................................. 581 32.3.30 接收时间标志寄存器低位 (MSCAN_RTSRL)............................................................................................. 581 32.3.31 发送扩展标识符寄存器 0 (MSCAN_TEIDR0)............................................................................................. 582 32.3.32 发送标准标识符寄存器 0 (MSCAN_TSIDR0)............................................................................................. 583 32.3.33 发送扩展标识符寄存器 1 (MSCAN_TEIDR1)............................................................................................. 583 32.3.34 发送标准标识符寄存器 1 (MSCAN_TSIDR1)............................................................................................. 584 32.3.35 发送扩展标识符寄存器 2 (MSCAN_TEIDR2)............................................................................................. 585 32.3.36 发送扩展标识符寄存器 3 (MSCAN_TEIDR3)............................................................................................. 585 32.3.37 发送扩展数据段寄存器 N (MSCAN_TEDSRn)........................................................................................... 586 32.3.38 发送数据长度寄存器 (MSCAN_TDLR)....................................................................................................... 586 32.3.39 发送缓冲区优先级寄存器 (MSCAN_TBPR)................................................................................................587 32.3.40 发送时间标志寄存器高位 (MSCAN_TTSRH)............................................................................................. 588 32.3.41 发送时间标志寄存器低位 (MSCAN_TTSRL)..............................................................................................588 32.4 功能说明.........................................................................................................................................................................590 32.4.1 报文存储..........................................................................................................................................................590 32.4.2 报文发送后台..................................................................................................................................................591 32.4.3 发送结构..........................................................................................................................................................591 32.4.4 接收结构..........................................................................................................................................................592 32.4.5 标识符验收滤波器..........................................................................................................................................593 32.4.5.1 协议违规保护..............................................................................................................................595 KEA128 子系列参考手册, Rev. 2, July 2014 32 Freescale Semiconductor, Inc. 小节编号 标题 32.4.5.2 32.4.6 页 时钟系统......................................................................................................................................596 低功耗选项......................................................................................................................................................598 32.4.6.1 Run 模式下的操作...................................................................................................................... 598 32.4.6.2 Wait 模式下的操作..................................................................................................................... 599 32.4.6.3 Stop 模式下的操作..................................................................................................................... 599 32.4.6.4 MSCAN 正常模式...................................................................................................................... 599 32.4.6.5 MSCAN 睡眠模式...................................................................................................................... 599 32.4.6.6 MSCAN 降耗模式...................................................................................................................... 601 32.4.6.7 禁用模式......................................................................................................................................601 32.4.6.8 可编程唤醒功能..........................................................................................................................601 32.4.7 复位初始化......................................................................................................................................................602 32.4.8 中断..................................................................................................................................................................602 32.4.9 32.4.8.1 中断操作说明..............................................................................................................................602 32.4.8.2 发送中断......................................................................................................................................602 32.4.8.3 接收中断......................................................................................................................................602 32.4.8.4 唤醒中断......................................................................................................................................602 32.4.8.5 错误中断......................................................................................................................................603 32.4.8.6 中断应答......................................................................................................................................603 初始化/应用信息.............................................................................................................................................603 32.4.9.1 MSCAN 初始化.......................................................................................................................... 603 32.4.9.2 总线关闭恢复..............................................................................................................................604 第 33 章 通用异步收发器(UART) 33.1 简介.................................................................................................................................................................................605 33.1.1 特性..................................................................................................................................................................605 33.1.2 工作模式..........................................................................................................................................................605 33.1.3 结构框图..........................................................................................................................................................606 33.2 UART 信号说明.............................................................................................................................................................608 33.2.1 详细信号说明..................................................................................................................................................608 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 33 小节编号 标题 页 33.3 寄存器定义.....................................................................................................................................................................608 33.3.1 UART 波特率寄存器:高位 (UARTx_BDH)............................................................................................... 609 33.3.2 UART 波特率寄存器:低位 (UARTx_BDL)............................................................................................... 610 33.3.3 UART 控制寄存器 1 (UARTx_C1)................................................................................................................611 33.3.4 UART 控制寄存器 2 (UARTx_C2)................................................................................................................612 33.3.5 UART 状态寄存器 1 (UARTx_S1)................................................................................................................ 613 33.3.6 UART 状态寄存器 2 (UARTx_S2)................................................................................................................ 615 33.3.7 UART 控制寄存器 3 (UARTx_C3)................................................................................................................617 33.3.8 UART 数据寄存器 (UARTx_D).....................................................................................................................618 33.4 功能说明.........................................................................................................................................................................619 33.4.1 波特率生成......................................................................................................................................................619 33.4.2 发送器功能说明..............................................................................................................................................619 33.4.2.1 33.4.3 发送分隔和已排队的闲置..........................................................................................................620 接收器功能说明..............................................................................................................................................621 33.4.3.1 数据采样技术..............................................................................................................................621 33.4.3.2 接收器唤醒操作..........................................................................................................................622 33.4.4 中断和状态标志..............................................................................................................................................623 33.4.5 波特率公差......................................................................................................................................................624 33.4.6 33.4.5.1 慢速数据公差..............................................................................................................................625 33.4.5.2 快速数据公差..............................................................................................................................626 其他 UART 功能.............................................................................................................................................627 33.4.6.1 8 位和 9 位数据模式...................................................................................................................627 33.4.6.2 Stop 模式操作............................................................................................................................. 627 33.4.6.3 循环模式......................................................................................................................................627 33.4.6.4 单线操作......................................................................................................................................628 第 34 章 通用输入/输出(GPIO) 34.1 简介.................................................................................................................................................................................629 34.1.1 特性..................................................................................................................................................................629 KEA128 子系列参考手册, Rev. 2, July 2014 34 Freescale Semiconductor, Inc. 小节编号 标题 页 34.1.2 工作模式..........................................................................................................................................................629 34.1.3 GPIO 信号说明............................................................................................................................................... 630 34.1.3.1 详细信号说明..............................................................................................................................630 34.2 存储器映像和寄存器定义.............................................................................................................................................631 34.2.1 GPIO/FGPIO 寄存器位分配...........................................................................................................................631 34.2.2 端口数据输出寄存器 (GPIOx_PDOR).......................................................................................................... 633 34.2.3 端口置位输出寄存器 (GPIOx_PSOR)........................................................................................................... 633 34.2.4 端口清零输出寄存器 (GPIOx_PCOR).......................................................................................................... 634 34.2.5 端口跳变输出寄存器 (GPIOx_PTOR)...........................................................................................................634 34.2.6 端口数据输入寄存器 (GPIOx_PDIR)............................................................................................................635 34.2.7 端口数据方向寄存器 (GPIOx_PDDR).......................................................................................................... 635 34.2.8 端口输入禁用寄存器 (GPIOx_PIDR)............................................................................................................636 34.3 FGPIO 存储器映像和寄存器定义................................................................................................................................ 636 34.3.1 GPIO/FGPIO 寄存器位分配...........................................................................................................................636 34.3.2 端口数据输出寄存器 (FGPIOx_PDOR)........................................................................................................ 638 34.3.3 端口置位输出寄存器 (FGPIOx_PSOR).........................................................................................................638 34.3.4 端口清零输出寄存器 (FGPIOx_PCOR)........................................................................................................ 639 34.3.5 端口跳变输出寄存器 (FGPIOx_PTOR)........................................................................................................ 639 34.3.6 端口数据输入寄存器 (FGPIOx_PDIR)..........................................................................................................640 34.3.7 端口数据方向寄存器 (FGPIOx_PDDR)........................................................................................................ 640 34.3.8 端口输入禁用寄存器 (FGPIOx_PIDR)..........................................................................................................640 34.4 功能说明.........................................................................................................................................................................641 34.4.1 通用输入..........................................................................................................................................................641 34.4.2 通用输出..........................................................................................................................................................641 34.4.3 IOPORT........................................................................................................................................................... 641 第 35 章 键盘中断(KBI) 35.1 简介.................................................................................................................................................................................643 35.1.1 特性..................................................................................................................................................................643 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 35 小节编号 35.1.2 35.1.3 标题 页 工作模式..........................................................................................................................................................643 35.1.2.1 Wait 模式下的 KBI..................................................................................................................... 643 35.1.2.2 Stop 模式下的 KBI..................................................................................................................... 644 结构框图..........................................................................................................................................................644 35.2 外部信号说明.................................................................................................................................................................644 35.3 寄存器定义.....................................................................................................................................................................645 35.4 存储器映像和寄存器.....................................................................................................................................................645 35.4.1 KBI 引脚使能寄存器 (KBIx_PE)...................................................................................................................646 35.4.2 KBI 边沿选择寄存器 (KBIx_ES)...................................................................................................................646 35.4.3 KBI 状态和控制寄存器 (KBIx_SC)...............................................................................................................647 35.4.4 KBI 源引脚寄存器 (KBIx_SP)....................................................................................................................... 648 35.5 功能说明.........................................................................................................................................................................648 35.5.1 边沿触发..........................................................................................................................................................649 35.5.2 边沿和电平触发..............................................................................................................................................649 35.5.3 KBI 上拉电阻..................................................................................................................................................649 35.5.4 KBI 初始化......................................................................................................................................................649 第 36 章 第 2 版的版本记录 KEA128 子系列参考手册, Rev. 2, July 2014 36 Freescale Semiconductor, Inc. 第1章 关于本文档 1.1 概述 1.1.1 目的 本文档介绍 Freescale KEA128 微控制器的特性、架构和编程模型。 1.1.2 受众 本文档主要面向在系统中使用或打算使用 KEA128 微控制器的系统架构和软件应 用程序开发人员。 1.2 惯例 1.2.1 编码系统 通过以下后缀可识别不同的编码系统: 后缀 用来识别 b 二进制数。例如,数字 5 的二进制数写为 101b。在某些情况 下,二进制数冠以前缀 0b。 d 十进制数。当有可能出现混淆时才为十进制数加后缀。通常,十 进制数没有后缀。 h 十六进制数。例如,数字 60 的十六进制数写为 3Ch。在某些情 况下,十六进制数冠以前缀 0x。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 37 惯例 1.2.2 印刷符号 以下印刷符号广泛应用于本文档: 示例 说明 占位符,x 斜体项目是您所提供的信息的占位符。斜体文本还用作出版物的标题,用于强调。无格式的小写 字母还用作单个字母和数字的占位符。 代码 固定宽度类型指的是文本必须严格按照所示格式输入。它可以用于指令助记符、指令符、符号、 子命令、参数和运算符。固定宽度类型也用于示例代码。文本和表格中的指令助记符和指令符必 须全部大写,例如:BSR。 SR[SCM] 括号中的助记符代表寄存器中的命名字段。此示例指的是状态寄存器(SR)中的缩放模式(SCM) 字段。 REVNO[6:4]和 XAD[7:0] 数字放在方括号中,数字之间用冒号隔开可代表以下两种意思: • 寄存器命名字段的子集 例如,REVNO[6:4]指的是 6-4 位,其为在 REVNO 寄存器中占据 6-0 位的 COREREV 字 段的一部分。 • 独立总线信号的连续范围 例如,XAD[7:0]指的是 XAD 总线的信号 7–0。 1.2.3 特殊术语 以下术语具有特殊含义: 术语 含义 电平有效 指的是以下信号状态: • 高电平有效信号为高电平(1)时,其电平有效。 • 低电平有效信号为低电平(0)时,其电平有效。 电平无效 指的是以下信号状态: • 高电平有效信号为低电平(0)时,其电平无效。 • 高电平有效信号为高电平(1)时,其电平无效。 在某些情况下,电平无效的信号还被描述为电平 Negated。 保留 指某存储空间、寄存器、或字段。它们或者为以后使用保留,或 者是当写入值后会导致模块或芯片行为不可预知。 KEA128 子系列参考手册, Rev. 2, July 2014 38 Freescale Semiconductor, Inc. 第2章 简介 2.1 概述 本章概述了 Kinetis KEA128 等 ARM® Cortex®-M0+ MCU 产品系列。此外,还对本 文档所涵盖器件上的可用模块进行了概要说明。 Kinetis EA 系列 MCU 是针对汽车市场开发的 MCU。它的内核基于 32 位 ARM Cortex-M0+,具有高度可扩展性。此款产品系列对于成本敏感的应用进行了优化, 可提供低引脚的选择,且具有极低功耗的工作状态。2.7~5.5v 供电及优异的 EMC/ESD 健壮性,使 Kinetis EA 系列 MCU 非常适合从车身电子到车身安全或通用 传感器节点等应用。在车身电子应用里面,Kinetis EA 系列 MCU 针对于如下应用, 例如入门级的车身控制、网关模块、车窗/天窗、车锁、座椅/后视镜控制,是个很 好的选择。对于有特殊安全性要求的相关应用,可咨询飞思卡尔当地的人员,以获 得相关建议。Kinetis EA 系列 MCU 产品共用类似的外设且引脚兼容,丰富的存储器 尺寸大小的划分,为开发者从冗余过多的设计过度到 kinetis 紧凑的设计提供了方 便。Kinetis EA 系列 MCU 的兼容性和扩展性,可使开发者标准化地开发其产品,最 大化地重用硬件和软件,从而缩短开发周期。Kinetis EA 系列 MCU 支持很多第三方 或飞思卡尔的开发工具,例如 Code Warrior、Keil、iAR、处理器专家(Processor Expert)和 MQX。开发者可在上述的开发环境中,快速且方便的进行设计。 2.2 模块功能类别 该器件上的模块按照功能进行归类。下列章节更详细地说明了每一类的模块。 表 2-1. 模块功能类别 模块类别 说明 ARM Cortex-M0+内核 • ARM Cortex-M 级 32 位 MCU 内核,1.77 CoreMark®/MHz,单周期访问存储 器,48 MHz CPU 频率 系统 • 系统集成模块(SIM) • 电源管理和模式控制器(PMC) • 其他控制模块(MCM) 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 39 模块功能类别 表 2-1. 模块功能类别 (继续) 模块类别 说明 • 位操作引擎(BME) • 外设桥(AIPS) • WDOG 存储器 • 内部存储器包括: • 高达 128 KB 的 Flash 存储器 • 高达 16 KB 的 SRAM 时钟 • 外部晶振或谐振器 • 低范围:31.25–39.0625 kHz • 高范围:4– 24 MHz • 外部方波输入时钟 • 内部时钟基准 • 31.25 至 39.0625 kHz 振荡器 • 1 kHz LPO 振荡器 • 锁频环(FLL)范围:40–50 MHz 安全性 • 采用独立时钟源的 WDOG • 用于误差检测的循环冗余校验(CRC)模块 模拟 • 一个 12 位模数转换器(ADC),具有多达 16 个通道 • 两个模拟比较器(ACMP),带内部 6 位数模转换器(DAC) 定时器 • • • • • • 一个全功能型 6 通道 FlexTimer (FTM) 两个双通道 FTM,具有基本 TPM 功能 双通道周期性中断定时器(PIT) 实时时钟(RTC) 一个脉宽定时器(PWT) 系统节拍定时器(SysTick) 通信 • • • • 两个 8 位串行外设接口(SPI) 两个 I2C 模块 三个通用异步收发器(UART)模块 一个 MSCAN 人机界面(HMI) • 通用输入/输出(GPIO)控制器 • 两个键盘中断(KBI) • 外部中断(IRQ) 2.2.1 ARM Cortex-M0+内核模块 此器件提供下列内核模块。 表 2-2. 内核模块 模块 ARM Cortex-M0+ 说明 ARM Cortex-M0+是 Cortex M 系列处理器的最新产品,面向重点关注对成本极为敏 感、具有确定性且由中断驱动的应用。Cortex M0+处理器基于 ARMv6 架构和 Thumb®-2 ISA,其指令集完全兼容其前代产品(即 Cortex-M0 内核),同时向上兼容 Cortex-M3 和 M4 内核。 ARM Cortex-M0+的改进包括一个 ARMv6 Thumb-2 DSP,该 DSP 采用 ARMv6-A/R 配置架构,提供 32 位指令,具有 SIMD(单指令多数据)DSP 类型的乘法/加法和饱 和算法,支持单周期 32x32 乘法器。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 40 Freescale Semiconductor, Inc. 第 2 章 简介 表 2-2. 内核模块 (继续) 模块 说明 ARMv6-M 异常模型和可嵌套向量的中断控制器(NVIC)集成可重定位的向量表,支持 许多外部中断、一个非屏蔽中断(NMI)和优先级。 可嵌套向量的中断控制器(NVIC) NVIC 用等效系统和简化编程性能代替影子寄存器。NVIC 包含中断响应的函数的地 址。该地址通过指令端口提取,允许并行寄存器堆栈与查找。前 16 个入口分配至 ARM 内部,其余入口则映射至 MCU 定义的中断。 异步唤醒中断控制器(AWIC) 异步唤醒中断控制器(AWIC)的主要功能是检测 Stop 模式下的异步唤醒事件,并向时 钟控制逻辑发送信号以恢复系统时钟。时钟重启后,NVIC 观察处于挂起状态的中断, 并执行正常中断或事件处理。 单周期 I/O 端口(IOPORT) 为了实现对外设的高速单周期访问,Cortex-M0+处理器集成了专用的单周期 I/O 端 口。在该器件上,快速 GPIO (FGPIO)实施在 IOPORT 接口上。 调试接口 该器件的大部分调试都基于 ARM CoreSight™架构。支持的调试接口为: • 串行线调试(SWD) 2.2.2 系统模块 此器件提供下列系统模块。 表 2-3. 系统模块 模块 说明 系统集成模块(SIM) SIM 包括集成逻辑和多个模块配置设置。 电源管理控制器(PMC) PMC 为用户提供多种电源选项。有多种模式可支持,用户因此可针对所需的功能水 平优化功耗。包括上电复位(POR)和集成的低压检测(LVD)功能,具有复位(掉电) 能力和可选 LVD 跳变点。 其他控制模块(MCM) MCM 包括集成逻辑和详细信息。 外设桥(AIPS-Lite) 外设桥将 ARM AHB 接口转换为一个可访问器件上大多数外设的接口。 WDOG WDOG 监控内部系统操作并在发生故障时强制进行复位。它工作时可以采用独立的 1 kHz 低功耗振荡器,具有可检测程序流或系统频率中偏差的可编程刷新窗口。 位操作引擎(BME) BME 针对基于 Cortex-M0+的微控制器中对外设地址空间的读取-修改-写入存储器原 子操作提供硬件支持。 2.2.3 存储器和存储器接口 该器件提供下列存储器和存储器接口。 表 2-4. 存储器和存储器接口 模块 Flash 存储器(FTMRE) 说明 Flash 存储器 — 高达 64/128 的非易失性 Flash 存储器,可执行程序代码。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 41 模块功能类别 表 2-4. 存储器和存储器接口 (继续) 模块 说明 Flash 存储器控制器(FMC) FMC 是存储器加速单元,提供 Cortex M0+内核和 32 位 P-Flash 之间的接口。FMC 包含一个 32 位推测缓冲区和一个 32 字节高速缓存,可加快指令提取和 Flash 访问速 度。 SRAM 高达 16 KB 的内部系统 RAM,支持通过 BME 模块或混叠位段域进行位操作。 2.2.4 时钟 此器件提供下列时钟模块。 表 2-5. 时钟模块 模块 说明 内部时钟源(ICS) ICS 模块,包含内部基准时钟(ICSIRCLK)以及锁频环(FLL)。 系统振荡器(OSC) 系统振荡器与外部晶体或谐振器一同生成 MCU 的基准时钟。 低功耗振荡器(LPO) PMC 模块集成一个在所有模式下都可用作独立低频时钟源的 1 kHz 低功耗振荡器。 2.2.5 安全性和完整性模块 以下安全性和完整性模块可用于此设备: 表 2-6. 安全性和完整性模块 模块 说明 循环冗余校验(CRC) CRC 生成可用于错误检测的 16/32 位 CRC 码。 WDOG WDOG 监控内部系统操作并在发生故障时强制进行复位。它工作时可以采用独立的 1 kHz 低功耗振荡器,具有可检测程序流或系统频率中偏差的可编程刷新窗口。 2.2.6 模拟模块 此器件提供下列模拟模块: 表 2-7. 模拟模块 模块 说明 模数转换器(ADC) 12 位逐次逼近型 ADC 模块,具有多达 16 个通道。 模拟比较器(ACMP) 两个比较器,支持全电源电压范围内的模拟输入电压以及 CPU 中断。ACMP0/1 还可 进一步触发 ADC 采样和 FTM 更新。 6 位数模转换器(DAC) 64-tap 电阻阶梯网络,能够为比较器提供可选基准电压。 KEA128 子系列参考手册, Rev. 2, July 2014 42 Freescale Semiconductor, Inc. 第 2 章 简介 2.2.7 定时器模块 此器件提供下列定时器模块: 表 2-8. 定时器模块 模块 说明 FlexTimer 模块(FTM) • • • • • • • • • 可选 FTM 源时钟,支持高达 48 MHz 的单独定时器时钟,可编程预分频器 16 位计数器,支持自由运行或初始/最终值,可向上或上下计数 输入捕捉、输出比较以及边沿对齐与中心对齐 PWM 模式 FTM 通道可采用具有相同输出或互补输出的成对工作方式,或者以具有独立输 出的独立通道方式工作 死区时间插入可用于每一对互补通道 PWM 输出的软件控制 对于全局故障控制最多有 2 个故障输入 可配置通道极性 可编程的中断可用于输入捕捉、基准比较、溢出的计数器或检测到的故障条件 周期性中断定时器(PIT) • • • • 一个通用中断定时器 适用于触发 ADC 转换 32 位计数器分辨率 根据总线时钟频率计时 实时计数器(RTC) • 16 位上行计数器 • 16 位模数匹配限制 • 软件可控周期性匹配中断 • 可通过软件选择预分频器输入的时钟源;集成可编程 16 位预分频器 • 总线时钟 • IRC 时钟(31.25~39.0625 kHz) • LPO(约 1 kHz) • 系统振荡器输出时钟 脉宽定时器(PWT) • • • • • • • • 分辨率为 16 位的脉冲宽度的自动测量 正脉冲和负脉冲的单独脉宽测量 可编程的开始测量的触发沿 逐次交替型边沿、上升沿或下降沿之间的可编程测量时间 时钟输入可通过编程预分频器作为 16 位计数器时基 两个可选时钟源,支持高达 48 MHz 的单独定时器时钟 四个可选脉冲输入 可设定在脉冲宽度值更新及计数器溢出时生成中断 2.2.8 通信接口 该器件提供下列通信接口: 表 2-9. 通信模块 模块 串行外设接口(SPI) 说明 两个 SPI 同步串行总线,用于与外部器件通信。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 43 模块功能类别 表 2-9. 通信模块 (继续) 模块 说明 I2C 两个 I2C 模块,用于内部器件通信。还支持系统管理总线(SMBus)规范(第 2 版)。 I2C0 支持四线式接口特性。 通用异步收发器(UART) 三个异步串行总线通信接口 (UART)模块,支持可选 13 位断点、全双工不归零(NRZ) 和 LIN 扩展支持。 MSCAN 一个 MSCAN。 2.2.9 人机接口 该器件提供下列人机接口(HMI): 表 2-10. HMI 模块 模块 说明 通用输入(GPIO) 多达 71 个通用输入或输出(GPIO)引脚。 键盘中断(KBI) 两个支持引脚中断的 KBI 模块。 外部中断(IRQ) IRQ 模块提供可屏蔽中断输入。 2.2.10 可订购部件编号 下表汇总了本文档所涉及器件的部件编号。 表 2-11. 可订购部件编号汇总 Freescale 部件编号 CPU 频率 引脚数 封装 Flash 存储 器总量 RAM 温度范围 S9KEAZ64AMLH(R) 48 MHz 64 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128AMLH(R) 48 MHz 64 LQFP 128 KB 16 KB -40 至 125 °C S9KEAZ64AMLK(R) 48 MHz 80 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128AMLK(R) 48 MHz 80 LQFP 128 KB 16 KB -40 至 125 °C S9KEAZ64AVLK(R) 48 MHz 80 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128AVLK(R) 48 MHz 80 LQFP 128 KB 16 KB -40 至 125 °C S9KEAZ64ACLK(R) 48 MHz 80 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128ACLK(R) 48 MHz 80 LQFP 128 KB 16 KB -40 至 125 °C S9KEAZ64AVLH(R) 48 MHz 64 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128AVLH(R) 48 MHz 64 LQFP 128 KB 16 KB -40 至 125 °C S9KEAZ64ACLH(R) 48 MHz 64 LQFP 64 KB 8 KB -40 至 125 °C S9KEAZ128ACLH(R) 48 MHz 64 LQFP 128 KB 16 KB -40 至 125 °C KEA128 子系列参考手册, Rev. 2, July 2014 44 Freescale Semiconductor, Inc. 第3章 芯片配置 3.1 简介 本章提供微控制器各模块的详细信息。包括: • 模块框图展示其内部的连接 • 单独的模块章节中无需讨论具体的模块间交互 • 更多信息的链接 3.2 模块间互连 3.2.1 互连概述 下表包含了该器件的模块间互连。 表 3-1. 模块间互连 外设 信号 — 到外设 用例 控制 备注 FTM2 INITTRG、 MatchTRG 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — PIT CHx TIF0、TIF1 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — RTC RTC 溢出 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — FTM0 INITTRG 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — ACMP0 CMP0_OUT 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — ACMP1 CMP1_OUT 到 ADC(触发器) ADC 触发 SIM_SOPT0[ADHWT] — UART0 TX0 到 通过 FTM0 CH0 调制 UART 调制 SIM_SOPT0[TXDME] — UART0 RX0 到 FTM0 CH1 输入 捕捉 UART 调制 SIM_SOPT0[RXDCE] — ACMP0 CMP0_OUT 到 UART0 RxD UART RxD 滤波器 SIM_SOPT0[RXDFE] — ACMP1 CMP1_OUT 到 UART0 RxD UART RxD 滤波器 SIM_SOPT0[RXDFE] — 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 45 模块间互连 表 3-1. 模块间互连 (继续) 外设 信号 — 到外设 用例 控制 备注 ACMP0 CMP0_OUT 到 FTM1 CH0 输入 捕捉 ACMP0 输出捕捉 SIM_SOPT0[ACIC] — RTC RTC 溢出 到 FTM1 CH1 输入 捕捉 RTC 溢出捕捉 SIM_SOPT0[RTCC] — ACMP0 CMP0_OUT 到 FTM2 Trigger0 FTM2 触发输入 SIM_SOPT0[ACTRG] & FTM2_SYNC[TRIG0] — ACMP1 CMP1_OUT 到 FTM2 Trigger0 FTM2 触发输入 SIM_SOPT0[ACTRG] & FTM2_SYNC[TRIG0] — FTM0 FTM0 CH0 输出 到 FTM2 Trigger1 FTM2 触发输入 FTM2_SYNC[TRIG1] — SIM FTMSYNC 到 FTM2 Trigger2 FTM2 触发输入 FTM2_SYNC[TRIG2] — ACMP0 CMP0_OUT 到 FTM2 Fault0 FTM2 故障输入 FTM2_FLTCTRL[FAULT0EN] — EXTFT_IN EXTFT_IN 到 FTM2 Fault1 FTM2 故障输入 FTM2_FLTCTRL[FAULT1EN] PTA6 EXTFT_IN EXTFT_IN 到 FTM2 Fault2 FTM2 故障输入 FTM2_FLTCTRL[FAULT2EN] PTA7 ACMP1 CMP1_OUT 到 FTM2 Fault3 FTM2 故障输入 FTM2_FLTCTRL[FAULT3EN] — EXT_PWT_I N0 PWT_IN0 到 PWT PWT_IN0 SIM_PINSEL1[PWTIN0PS] & PWT_R1[PINSEL] PTD5 或 PTE2 EXT_PWT_I N1 PWT_IN1 到 PWT PWT_IN1 SIM_PINSEL1[PWTIN1PS] & PWT_R1[PINSEL] PTB0 或 PTH7 ACMP0 ACMP0_OUT 到 PWT PWT_IN2 SIM_SOPT1[ACPWTS] & PWT_R1[PINSEL] — ACMP1 ACMP1_OUT 到 PWT PWT_IN2 SIM_SOPT1[ACPWTS] & PWT_R1[PINSEL] — UART0 RX 到 PWT PWT_IN3 SIM_SOPT1[UARTPWTS] & PWT_R1[PINSEL] — UART1 RX 到 PWT PWT_IN3 SIM_SOPT1[UARTPWTS] & PWT_R1[PINSEL] — UART2 RX 到 PWT PWT_IN3 SIM_SOPT1[UARTPWTS] & PWT_R1[PINSEL] — KEA128 子系列参考手册, Rev. 2, July 2014 46 Freescale Semiconductor, Inc. 第 3 章 芯片配置 + ACMP1 – + ACMP0 – ADC trg ovf RTC tif PITch0 tif PITch1 inittrg 0 ovf ICSCLK ADHWT[2:0] 延迟 1 2N 1 FTM0 inittrg fault0 matchtrg fault1 fault2 FTM2 fault3 trigger0 trigger1 trigger2 BUSREF 图 3-1. ADC 硬件触发连接图 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 47 模块间互连 + ACMP1 – RXDFE + ACMP0 UART0 – rxd RX0 txd 0 TX0 1 tof FTM0 FTM0CH0 ch0 ch1 1 0 FTM0CH1 TXDME RXDCE ACIC RTC ovf 1 tof FTM1 0 ch0 ch1 FTM1CH0 1 0 FTM1CH1 RTCC 图 3-2. FTMx/ACMPx/UARTx 连接图 + ACMP0 FTM0 – ch0 ch1 + ACMP1 到ADC 0 1 – inittrg fault0 matchtrg fault1 fault2 FTM2 fault3 trigger0 trigger1 trigger2 FTM2fault1 FTM2fault2 0 1 ACTRG FTMSYNC 图 3-3. FTM2 互连示意图 KEA128 子系列参考手册, Rev. 2, July 2014 48 Freescale Semiconductor, Inc. 第 3 章 芯片配置 PWTIN0 PWTIN0 PWTIN1 PWTIN1 PWT + ACMP0 – PWTIN2 + ACMP1 – PWTIN3 UART0 RX UART1 RX UART2 RX ACPWTS UARTPWTS 图 3-4. PWT 互连示意图 3.2.2 模拟基准选项 多个模拟数据块拥有可选择的基准电压,如表 3-2 所示。这些选项允许模拟外设共 享或拥有单独的模拟基准。需要慎重选择模拟基准以避免串扰噪声。 表 3-2. 模拟基准选项 模块 12 位 ADC ACMP0 ACMP1 基准选项 备注/基准选择 • VREFH • VREFL 为了提高 ADC 性能,80LQFP 上提供了 VREFH 引脚,它与 64QFP/LQFP、 44LQFP 上的 VDDA 在内部相连,各封装上均提供了 VREFL 引脚。 • VDDA • 带隙基准 由 ACMP0_C1[DACREF]或 ACMP1_C1[DACREF]选择 3.2.3 ACMP 输出捕捉 置位时,SIM_SOPT0[ACIC]位使能 ACMP0 的输出连接到 FTM1_CH0,FTM1_CH0 引脚被释放,可以被用作其他共享功能。 SIM_SOPT0[RXDFE]置位为 01b 时,可选择 ACMP0 输出,使其连接到 UART0 的 接收器通道。SIM_SOPT0[RXDFE]置位为 10b 时,可选择 ACMP1 输出,使其连接 到 UART1 的接收器通道。 ACMP0 和 ACMP1 输出还选择性地连接到 PWT input2(PWT_IN2),或可用作 FTM2 触发/故障输入和 ADC 硬件触发。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 49 模块间互连 3.2.4 UART0_TX 调制 UART0_TX 可通过 FTM0 通道 0 输出调制。SIM_SOPT0[TXDME]置位时, UART0_TX 由 FTM0 通道 0 输出通过与门进行选通,然后映射到 UART0_TX 管脚。 将该字段清零后,UART0_TX 会直接映射到管脚上。要使能 IR 调制功能, FTM0_CH0 和 UART 都必须处于有效状态。FTM0_CNT 和 FTM0_MOD 寄存器指 定 PWM 的周期,而 FTM0_C0V 寄存器指定 PWM 的占空比。那么,当 SIM_SOPT0[TXDME]使能时,每个通过 UART0_TX 从 UART0 发送的数据都通过 FTM0 通道 0 输出调制,且无论 FTM0 引脚重新分配的配置如何,FTM_CH0 引脚 让与其他共享功能。 UART0 TX 0 UART0_TX 1 FTM0_CH0 PORT LOGIC TXDME 图 3-5. IR 解调制图 3.2.5 UART0/1/2_RX 捕捉 UART0_RX 引脚可被选择性地直接连接到 UART0 模块或同时连接到 FTM0 通道 1。SIM_SOPT0[RXDCE]置位时,UART0_RX 引脚连接 UART0 模块和 FTM0 通道 1,而无论 FTM0 引脚重新分配的配置如何,FTM0_CH1 引脚让与其他共享功能。 将该字段清零后,UART0_RX 引脚仅连接 UART0。 UART0 FTM0_CH1 RX UART0_RX 1 0 FTM0_CH1 RXDCE 图 3-6. UART0_RX 捕捉功能图 KEA128 子系列参考手册, Rev. 2, July 2014 50 Freescale Semiconductor, Inc. 第 3 章 芯片配置 UART0、UART 和 UART2 的 RX 信号可由 PWT 捕捉。通过配置 SIM_SOPT1[UARTPWTS],可将 UART0_RX、UART1_RX 或 UART2_RX 连接至 PWT 输入 3。 3.2.6 UART0_RX 滤波器 SIM_SOPT0[RXDFE]清零后,UART0_RX 引脚直接连接至 UART0 模块。该字段正 确置位后,可将 ACMP0 输出连接至 UART0 的接收通道。要使能 UART0_RX 滤波 器功能,UART0 和 ACMP0 都必须处于有效状态。如果该功能处于有效状态,则无 论 UART0 引脚重新分配的配置如何,UART0 外部 UART0_RX 引脚让与其他共享 功能。当 UART0_RX 捕捉功能处于有效状态时,ACMP0 输出也将注入 FTM0 通道 1。 UART0_RX 0 UART0 RX 1 2 ACMP0 ++ + ACMP1 到UART0_RX 捕捉功能 RXDFE 来自内部或外部 参考电压 图 3-7. IR 解调制图 3.2.7 RTC 捕捉 RTC 溢出可通过设置 SIM_SOPT0[RTCC]位由 FTM1 通道 1 捕捉。该位置位后, RTC 溢出连接到 FTM1 通道 1 以便进行捕捉,而 FTM1_CH1 引脚则释放给其他共 享功能。 3.2.8 FTM2 软件同步 FTM2 包含三个同步输入触发器,其中一个触发器通过将 1 写入 SIM_SOPT0[FTMSYNC]来软件触发。将 0 写入此字段不起任何作用。该字段始终 读到的是 0。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 51 内核模块 3.2.9 ADC 硬件触发 ADC 模块可以通过硬件触发发起转换。下表显示的是通过设置 SIM_SOPT0[ADHWT]而可用的 ADC 硬件触发源。 表 3-3. ADC 硬件触发设置 ADHWT ADC 硬件触发 000 RTC 溢出 001 FTM0 初始化触发器 010 具有 8 位可编程延迟的 FTM2 初始化触发器 011 具有 8 位可编程延迟的 FTM2 匹配触发器 100 PIT ch0 溢出 101 PIT ch1 溢出 110 ACMP0 输出 111 ACMP1 输出 当 ADC 硬件触发选择 FTM2 触发器的输出时,将会启用 8 位延迟块。该逻辑可以 对 FTM2 的触发进行延迟,延迟值由一个 8 位计数器 SIM_SOPT0[DELAY]指定。 该模块的基准时钟是总线时钟,其可选择预分频器由 SIM_SOPT0[BUSREF]指定。 3.3 内核模块 3.3.1 ARM Cortex-M0+内核配置 本节总结本模块在芯片级是如何配置的。本模块的完整文档由 ARM 提供,请访 问:arm.com。 KEA128 子系列参考手册, Rev. 2, July 2014 52 Freescale Semiconductor, Inc. 第 3 章 芯片配置 调试 中断 ARM Cortex-M0+ 内核 交叉 开关 图 3-8. 内核配置 表 3-4. 相关信息的参考链接 主题 相关模块 参考 完整说明 ARM Cortex-M0+内核, r0p0 ARM Cortex-M0+技术参考手册,r0p0 系统存储器映像 系统存储器映像 时钟 时钟分布 电源管理 电源管理 系统/指令/数据总线模块 交叉开关 交叉开关 调试 串行线调试(SWD) 调试 中断 可嵌套向量的中断控制 器(NVIC) NVIC 其他控制摸块(MCM) MCM 3.3.1.1 ARM Cortex M0+内核 ARM Cortex M0+参数设置如下: 表 3-5. ARM Cortex-M0+参数设置 参数 Verilog 名称 值 说明 架构时钟门控 ACG 1 = 存在 DAP 从端口支持 AHBSLV 1 DAP ROM 表基地址 BASEADDR 0xF000_2003 字节顺序 BE 0 数据传输的小端字节控制 断点 BKPT 2 实现了 2 个断点 调试支持 DBG 1 = 存在 — 停止事件支持 HALTEV 1 = 存在 — I/O 端口 IOP 1 = 存在 IRQ 屏蔽使能 IRQDIS 0x0 调试端口协议 JTAGnSW 0 = SWD 实现架构时钟门控 支持任何 AHB 调试访问端口(例如 CM4 DAP) DAP ROM 表基地址 实现对特殊地址空间的单周期加载/存储访问 — SWD 协议,非 JTAG 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 53 内核模块 表 3-5. ARM Cortex-M0+参数设置 (继续) 参数 Verilog 名称 值 内核存储器保护 MPU 0 = 不存在 IRQ 数量 NUMIRQ 32 复位所有寄存器 RAR 0 = 标准 乘法器 SMUL 0 = 快速乘法器 多点支持 SWMD 0 = 不存在 系统节拍定时器 SYST 1 = 存在 DAP 目标 ID TARGETID 0 说明 无 MPU 假设完整的 NVIC 请求向量 不要强制对所有寄存器进行异步复位 实现单周期乘法器 不包括串行线支持多点 实现系统节拍定时器(以便兼容 CM4) — 用户/特权 USER 1 = 存在 实现处理器工作模式 向量表偏移寄存器 VTOR 1 = 存在 实现异常向量表的重定位 WIC 支持 WIC 1 = 存在 实现 WIC 接口 WIC 请求 WICLINES 34 唤醒 IRQ 的确切数量为 34 监测点 WPT 2 实现 2 个监测点 有关 ARM Cortex-M0+处理器内核的详情,请参见 ARM 网站:arm.com。 3.3.1.2 总线、互连和接口 ARM Cortex-M0+内核有两个总线接口: • 单个 32 位 AMBA-3 AHB-Lite 系统接口,提供到外设和所有系统存储器的连接, 包括 Flash 和 RAM。 • 单个 32 位 I/O 端口总线(IOPORT),可以对 FGPIO 进行单周期加载和存储。 3.3.1.3 系统节拍定时器 SysTick 控制和状态寄存器中的 CLKSOURCE 字段选择内核时钟(CLKSOURCE = 1 时)或 16 分频内核时钟(CLKSOURCE = 0 时)。由于定时基准是一个可变频率, 因此 SysTick 校准值寄存器中的 TENMS 字段将始终为零。 3.3.1.4 内核特权级别 本器件的内核实现了特权和非特权级别。ARM 文档使用不同于本文档中的术语以 区分特权级别。 如果遇到术语... 它也意味着该术语... 特权 超级用户或者管理员 非特权或者用户 用户 KEA128 子系列参考手册, Rev. 2, July 2014 54 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.3.1.5 缓存器 该器件没有与处理器相关的缓存器内存,但是 Flash 控制器有用于 Flash 访问的内部 32 字节缓存器。 3.3.2 可嵌套向量的中断控制器(NVIC)配置 本节总结本模块在芯片级是如何配置的。本模块的完整文档由 ARM 提供,请访 问:arm.com。 ARM Cortex-M0+ 内核 中断 模块 可嵌套向量的 中断控制器 (NVIC) PPB 模块 模块 图 3-9. NVIC 配置 表 3-6. 相关信息的参考链接 主题 相关模块 参考 完整说明 可嵌套向量的中断控制 器(NVIC) ARM Cortex-M0+技术参考手册 系统存储器映像 — 系统存储器映像 时钟 — 时钟分配 电源管理 电源管理 ARM Cortex-M0+内核 专用外设总线(PPB) ARM Cortex-M0+内核 3.3.2.1 中断优先级 该器件支持 4 个中断优先级。因此,在 NVIC 中,IPR 寄存器中的各个源都包含 2 位。例如,IPR0 如下所示: 31 R W 30 IRQ3 29 28 27 26 25 24 0 0 0 0 0 0 23 22 IRQ2 21 20 19 18 17 16 0 0 0 0 0 0 15 14 IRQ1 13 12 11 10 9 8 0 0 0 0 0 0 7 6 IRQ0 5 4 3 2 1 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 55 内核模块 3.3.2.2 不可屏蔽中断 对 NVIC 的不可屏蔽中断请求由外部 NMI 信号控制。NMI 信号进行多路复用所在 的引脚必须配置 NMI 功能,以产生不可屏蔽中断请求。 3.3.2.3 中断通道分配 下表中定义了中断向量分配。 • 向量编号 - 中断处于响应状态时,存储在堆栈上的值。 • IRQ 编号 - 非内核中断源编号,其为向量编号减 16。 IRQ 编号用于 ARM 的 NVIC 文档中。 表 3-8. 中断向量分配 地址 IRQ1 向量 NVIC IPR 寄存 器编号 2 来源模块 来源描述 ARM 内核系统处理程序向量 0x0000_0000 0 — — ARM 内核 初始堆栈指针 0x0000_0004 1 — — ARM 内核 初始程序计数 0x0000_0008 2 — — ARM 内核 不可屏蔽中断(NMI) 0x0000_000C 3 — — ARM 内核 硬故障 0x0000_0010 4 — — — — 0x0000_0014 5 — — — — 0x0000_0018 6 — — — — 0x0000_001C 7 — — — — 0x0000_0020 8 — — — — 0x0000_0024 9 — — — — 0x0000_0028 10 — — — — 0x0000_002C 11 — — ARM 内核 管理程序调用(SVCall) 0x0000_0030 12 — — — — 0x0000_0034 13 — — — — 0x0000_0038 14 — — ARM 内核 可挂起的系统服务请求(PendableSrvReq) 0x0000_003C 15 — — ARM 内核 系统节拍定时器(SysTick) 0x0000_0040 16 0 0 — — 0x0000_0044 17 1 0 — — 0x0000_0048 18 2 0 — — 0x0000_004C 19 3 0 — — 0x0000_0050 20 4 1 — — 0x0000_0054 21 5 1 FTMRE 命令完成 0x0000_0058 22 6 1 PMC 低压检测 非内核向量 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 56 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-8. 中断向量分配 (继续) 地址 IRQ1 向量 0x0000_005C 23 0x0000_0060 7 24 8 NVIC IPR 寄存 器编号 2 来源模块 来源描述 1 IRQ 外部中断 2 I2C0 所有源的单个中断向量 所有源的单个中断向量 0x0000_0064 25 9 2 I2C1 0x0000_0068 26 10 2 SPI0 所有源的单个中断向量 0x0000_006C 27 11 2 SPI1 所有源的单个中断向量 0x0000_0070 28 12 3 UART0 状态和错误 0x0000_0074 29 13 3 UART1 状态和错误 0x0000_0078 30 14 3 UART2 状态和错误 0x0000_007C 31 15 3 ADC0 ADC 转换完成中断 0x0000_0080 32 16 4 ACMP0 模拟比较器 0 中断 0x0000_0084 33 17 4 FTM0 所有源的单个中断向量 0x0000_0088 34 18 4 FTM1 所有源的单个中断向量 0x0000_008C 35 19 4 FTM2 所有源的单个中断向量 0x0000_0090 36 20 5 RTC RTC 溢出 0x0000_0094 37 21 5 ACMP1 模拟比较器 1 中断 0x0000_0098 38 22 5 PIT_CH0 PIT CH0 溢出 0x0000_009C 39 23 5 PIT_CH1 PIT CH1 溢出 0x0000_00A0 40 24 6 KBI0(32 位) 键盘中断 0(32 位) 0x0000_00A4 41 25 6 KBI1(32 位) 键盘中断 1(32 位) 0x0000_00A8 42 26 6 — 0x0000_00AC 43 27 6 ICS 时钟失锁 0x0000_00B0 44 28 7 WDOG WDOG 定时溢出 0x0000_00B4 45 29 7 PWT 所有源的单个中断向量 0x0000_00B8 46 30 7 MSCAN MSCAN 接收中断 0x0000_00BC 47 31 7 MSCAN MSCAN 发送、错误和唤醒中断 1. 表示 NVIC 的中断源编号。 2. 表示用于该 IRQ 的 NVIC 的 IPR 寄存器编号。计算该值的公式为:IRQ 除 4 3.3.2.3.1 确定字段和寄存器位置,以配置特定中断 假设您需要配置 SPI0 中断。下表是中断优先级 中 SPI0 行的摘录。 表 3-9. 中断向量分配 地址 0x0000_0068 IRQ1 向量 26 10 NVIC IPR 寄存器 编号 2 2 来源模块 SPI0 来源描述 所有源的单个中断向量 1. 表示 NVIC 的中断源编号。 2. 表示用于该 IRQ 的 NVIC 的 IPR 寄存器编号。计算该值的公式为:IRQ 除 4。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 57 内核模块 • 您将用于配置中断的 NVIC 寄存器为: • NVICIPR2 • 要确定这些特定寄存器中特定 IRQ 的字段位置: • NVICIPR2 字段起始位置= 8 * (IRQ mod 4) + 6 = 22 由于 NVICIPR 字段为 2 位宽(4 个优先级),NVICIPR2 字段范围为位 22–23。 因此,字段位置 NVICIPR2[23:22]用于配置 SPI0 中断。 3.3.3 异步唤醒中断控制器(AWIC)配置 本节总结本模块在芯片级是如何配置的。本模块的完整文档由 ARM 提供,请访 问:arm.com。 时钟逻辑 可嵌套向量的 中断控制器 (NVIC) 唤醒 请求 异步 唤醒中断 控制器(AWIC) 模块 模块 图 3-10. 异步唤醒中断控制器配置 表 3-10. 相关信息的参考链接 主题 相关模块 参考 系统存储器映像 系统存储器映像 时钟 时钟分布 电源管理 电源管理 中断控制 唤醒请求 可嵌套向量的中断控制 器(NVIC) NVIC AWIC 唤醒源 KEA128 子系列参考手册, Rev. 2, July 2014 58 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.3.3.1 唤醒源 该器件使用下列 AWIC 模块的内部输入和外部输入。 表 3-11. AWIC 停止唤醒源 唤醒源 说明 可用系统复位 LPO 是其时钟源时的 RESET 引脚 低电压警告 电源管理控制器 IRQ IRQ 引脚 引脚中断 KBI - 任何使能的引脚中断都能唤醒系统。 ADC ADC 在使用内部时钟源时可在 Stop 模式下运行。 ACMP 正常中断 I2C 地址匹配唤醒 SPI SPI 从机模式中断 UART UART_RX 引脚处的 UART 有效边沿检测 RTC 警告中断 不可屏蔽中断 NMI 引脚 MSCAN MSCAN 唤醒中断 3.4 系统模块 3.4.1 SIM 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 59 系统模块 外设 桥 寄存器 访问 系统集成 模块(SIM) 图 3-11. SIM 配置 表 3-12. 相关信息的参考链接 主题 相关模块 参考 完整说明 SIM SIM 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.4.2 PMC 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器访问 电源管理 控制器(PMC) 图 3-12. PMC 配置 表 3-13. 相关信息的参考链接 主题 相关模块 参考 完整说明 PMC PMC 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 KEA128 子系列参考手册, Rev. 2, July 2014 60 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.4.3 MCM 配置 其他 控制模块 (MCM) 传输 Flash存储器 控制器 ARM Cortex-M0+ 内核 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 传输 图 3-13. MCM 配置 表 3-14. 相关信息的参考链接 主题 相关模块 参考 完整说明 其他控制模块(MCM) MCM 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 专用外设总线(PPB) ARM Cortex-M0+内核 ARM Cortex-M0+内核 传输 Flash 存储器控制器 Flash 存储器控制器 3.4.4 简化交叉开关配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 61 系统模块 GPIO 控制器 交叉开关 M0 ARM内核 统一总线 BME S0 Flash 控制器 S1 SRAML SRAMU S2 外设 桥0 主机模块 外设 从机模块 图 3-14. 简化交叉开关集成 表 3-15. 相关信息的参考链接 主题 相关模块 参考 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 交叉开关主机 ARM Cortex-M0+内核 ARM Cortex-M0+内核 交叉开关从机 Flash 存储器控制器 Flash 存储器控制器 交叉开关从机 SRAM 控制器 SRAM 配置 交叉开关从机 外设桥 外设桥 2 端口外设 GPIO 控制器 GPIO 控制器 3.4.4.1 简化交叉开关主机分配 与交叉开关相连的主机按以下方式分配: 主机模块 主机端口号 ARM 内核统一总线 0 3.4.4.2 交叉开关从机分配 该器件包含 3 个与交叉开关相连的从机。 KEA128 子系列参考手册, Rev. 2, July 2014 62 Freescale Semiconductor, Inc. 第 3 章 芯片配置 从机分配如下所示: 从机模块 从机端口号 Flash 存储器控制器 0 SRAM 控制器 1 外设联接器 2 3.4.5 外设桥配置 传输 AIPS-Lite 外设桥 传输 外设 交叉开关 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 图 3-15. 外设桥配置 表 3-16. 相关信息的参考链接 主题 相关模块 参考 完整说明 外设桥(AIPS-Lite) 外设桥(AIPS-Lite) 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 3.4.5.1 外设桥的数量 该器件包含一个外设桥。 3.4.5.2 存储器映像 该外设桥用于访问该器件上大多数模块的寄存器。有关每个模块存储器位置分配的 信息,请参见 AIPS-Lite 存储器映像 。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 63 系统安全性 3.5 系统安全性 3.5.1 CRC 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器 访问 CRC 图 3-16. CRC 配置 表 3-17. 相关信息的参考链接 主题 相关模块 参考 完整说明 CRC CRC 系统存储器映像 — 系统存储器映像 电源管理 — 电源管理 3.5.2 WDOG 配置 本节总结本模块在芯片级是如何配置的。 KEA128 子系列参考手册, Rev. 2, July 2014 64 Freescale Semiconductor, Inc. 第 3 章 芯片配置 外设 桥 系统集成 模块 寄存器 访问 WDOG 图 3-17. WDOG 配置 表 3-18. 相关信息的参考链接 主题 相关模块 参考 完整说明 WDOG WDOG 时钟 — 时钟分布 电源管理 — 电源管理 编程模型 系统集成模块(SIM) SIM 3.5.2.1 WDOG 时钟 该 WDOG 具有四个可选时钟源: • 1 kHz 内部低功耗振荡器(LPOCLK) • 内部 32 kHz 基准时钟(ICSIRCLK) • 外部时钟(OSCERCLK) • 总线时钟 3.5.2.2 WDOG 操作 WDOG 模块能提供一套保险机制以确保在系统出现故障时能复位至已知操作状态, 如 CPU 时钟停止或在软件代码中出现跑飞现象。WDOG 计数器连续执行可选时钟 源并定期使用(刷新)。如果没有,它(WDOG)将复位系统。 任何复位之后,都将使能 WDOG 监视器。如果在应用中未使用 WDOG 监视器,则 可通过清零 WDOG_CS1[EN]将其禁用。 刷新写入序列就是写入 0xA602,然后将 0xB480 写入到 WDOG_CNTH:L 寄存器。 0xB480 的写入必须在 0xA602 写入后的 16 个总线时钟内进行;否则,监视器将复 位 MCU。 监视器计数器有四个时钟源选项,可通过编程 WDOG_CS2[CLK]进行选择。这四个 时钟源选项是总线时钟、内部 1 kHz 时钟、外部时钟或内部 32 kHz 时钟源。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 65 时钟模块 刷新定时溢出时间由 WDOG_TOVALH:L 定义。此外,如果使用了窗口模式,那么 只有在时间值超过(大于)WDOG_WINH:L 寄存器设置值后,软件才能开始执行刷 新序列。 适用于所有时钟源的可选固定预分频器允许较长的定时溢出周期。 WDOG_CS2[PRES]置位后,对时钟源先进行 256 预分频,随后对 WDOG 计数器进 行计时。 WDOG 计数寄存器 CNTH:L 可访问自由运行 WDOG 计数器的值。此软件可随时 读取计数寄存器,但不能直接写入 WDOG 计数器。刷新序列将 WDOG 计数器复位 至 0x0000。在 16 个总线时钟内依次将 0xC520 和 0xD928 写入 WDOG_CNTH:L 寄 存器可启动解锁序列。完成解锁序列后,用户必须在 128 个总线时钟内重新配置 WDOG,否则 WDOG 会强制对 MCU 进行复位。 默认情况下,WDOG 在“Debug”、“Wait”或“Stop”模式下不起作用。 WDOG_CS1[DBG]、WDOG_CS1[WAIT]或 WDOG_CS1[STOP]置位可激活“Debug”、 “Wait”或“Stop”模式下的 WDOG。 3.6 时钟模块 3.6.1 ICS 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 系统集成 模块(SIM) 系统 振荡器 寄存器 访问 ICS 图 3-18. ICS 配置 表 3-19. 相关信息的参考链接 主题 相关模块 参考 完整说明 ICS ICS 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 66 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-19. 相关信息的参考链接 (继续) 主题 相关模块 参考 电源管理 — 电源管理 3.6.1.1 时钟门控 该系列器件包括每个外设的时钟门控控制,即每个外设的时钟均可使用 SIM_SCGC 寄存器中的时钟门控控制位直接打开或关闭。 3.6.2 OSC 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 ICS 系统振荡器 信号多路复用 寄存器 访问 模块信号 图 3-19. OSC 配置 表 3-20. 相关信息的参考链接 主题 相关模块 参考 完整说明 OSC OSC 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 完整说明 ICS ICS KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 67 存储器和存储器接口 3.7 存储器和存储器接口 3.7.1 Flash 存储器配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设总线 控制器0 Flash存储器 控制器 寄存器 访问 传输 Flash存储器 图 3-20. Flash 存储器配置 表 3-21. 相关信息的参考链接 主题 相关模块 参考 完整说明 Flash 存储器 Flash 存储器 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 传输 Flash 存储器控制器 Flash 存储器控制器 寄存器访问 外设桥 外设桥 3.7.1.1 Flash 存储器大小 本文档所涉及器件的 Flash 和存储器数量如下所示: 表 3-22. KEA128 Flash 存储器大小 器件 Flash (KB) 数据块 0 (Flash)地址范围 S9KEAZ64AMLK(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128AMLK(R) 128 0x0000_0000 – 0x0001_FFFF S9KEAZ64AVLK(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128AVLK(R) 128 0x0000_0000 – 0x0001_FFFF S9KEAZ64ACLK(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128ACLK(R) 128 0x0000_0000 – 0x0001_FFFF 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 68 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-22. KEA128 Flash 存储器大小 (继续) 器件 Flash (KB) 数据块 0 (Flash)地址范围 S9KEAZ64AMLH(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128AMLH(R) 128 0x0000_0000 – 0x0001_FFFF S9KEAZ64AVLH(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128AVLH(R) 128 0x0000_0000 – 0x0001_FFFF S9KEAZ64ACLH(R) 64 0x0000_0000 – 0x0000_FFFF S9KEAZ128ACLH(R) 128 0x0000_0000 – 0x0001_FFFF 3.7.1.2 Flash 存储器映像 Flash 存储器和 Flash 寄存器位于不同的基址,如此处图示。 各自对应的基址在系统存储器映像 中指定。 Flash存储器基地址 寄存器 Flash基地址 Flash配置字段 Flash 图 3-21. Flash 存储器映像 片上 Flash 存储器在一部分已分配的 Flash 范围中实现,从而在起始地址为 0x0000_0000 的存储器映像中形成一个相邻块。有关支持范围的详情,请参见 Flash 存储器大小 。 访问超出器件上 Flash 数量的 Flash 存储器范围会导致总线周期终止,同时在发出请 求的总线主机中进行相应响应后会出现错误。 3.7.1.3 备用非易失性 IRC 用户微调说明 表 3-23 中所示的非易失性位置(2 字节)保留用于某些开发和编程工具支持的自定 义 ICS 内部参考时钟(IRC)调整值。对出厂加载调整值所作的备用 IRC 调整可存 储在这些位置。要覆盖该出厂调整,用户软件必须将这些位置的自定义调整值复制 到 ICS_C3 和 ICS_C4 的 ICS 调整字段中。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 69 存储器和存储器接口 表 3-23. 备用非易失性 IRC 调整 非易失性字节地址 备用 IRC 调整值 0x0000_03FE(位 0) SCFTRIM 0x0000_03FF SCTRIM 3.7.1.4 Flash 加密 有关如何在该器件上实施 Flash 加密的信息,请参见芯片加密 。 3.7.1.5 擦除所有 Flash 内容 除软件外,整个 Flash 存储器也可通过 SW-DP 调试端口外部擦除,方法是置位 MDM-AP CONTROL[0](MDM-AP 控制寄存器的位 0)。MDM-AP STATUS[0] (MDM-AP 状态寄存器的位 0)置位以说明已接受整体擦除命令。MDM-AP CONTROL[0]在整体擦除完成时清零。 3.7.2 Flash 存储器控制器配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 有关 FMC 复位配置的详情,请参见平台控制寄存器 (MCM_PLACR) 寄存器描述。 传输 Flash存储器 控制器 Flash存储器 交叉开关 MCM 传输 图 3-22. Flash 存储器控制器配置 表 3-24. 相关信息的参考链接 主题 相关模块 参考 完整说明 Flash 存储器控制器 Flash 存储器控制器 系统存储器映像 系统存储器映像 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 70 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-24. 相关信息的参考链接 (继续) 主题 相关模块 参考 时钟 时钟分布 传输 Flash 存储器 Flash 存储器 传输 交叉开关 交叉开关 寄存器访问 MCM MCM 3.7.3 SRAM 配置 本节总结本模块在芯片级是如何配置的。 传输 交叉开关 Cortex-M0+ 内核 开关 SRAM高位 SRAM 控制器 SRAM低位 图 3-23. SRAM 配置 表 3-25. 相关信息的参考链接 主题 相关模块 参考 完整说明 SRAM SRAM 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 ARM Cortex-M0+内核 — ARM Cortex-M0+内核 3.7.3.1 SRAM 大小 SRAM 支持在所有内核频率下单周期访问(零等待状态)。 本文档所涉及器件的 SRAM 数量如下所示: 表 3-26. SRAM 大小 Freescale 部件编号 SRAM S9KEAZ64AMLH(R) 8 KB S9KEAZ128AMLH(R) 16 KB S9KEAZ64AMLK(R) 8 KB 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 71 存储器和存储器接口 表 3-26. SRAM 大小 (继续) Freescale 部件编号 SRAM S9KEAZ128AMLK(R) 16 KB S9KEAZ64AVLK(R) 8 KB S9KEAZ128AVLK(R) 16 KB S9KEAZ64ACLK(R) 8 KB S9KEAZ128ACLK(R) 16 KB S9KEAZ64AVLH(R) 8 KB S9KEAZ128AVLH(R) 16 KB S9KEAZ64ACLH(R) 8 KB S9KEAZ128ACLH(R) 16 KB 3.7.3.2 SRAM 范围 片上 SRAM 分为两个范围;1/4 被分配到 SRAM_L,3/4 被分配到 SRAM_U。 片上 SRAM 的实现还可以让 SRAM_L 和 SRAM_U 范围在存储器映射中形成一个 相邻块。例如: • SRAM_L 固定至 0x1FFF_FFFF 并占用该结束地址前的空间。 • SRAM_U 固定至 0x2000_0000 并占用该起始地址后的空间。 SRAM_L 和 SRAM_U 的有效地址范围随后被定义为: • SRAM_L = [0x2000_0000–(SRAM_size/4)]至 0x1FFF_FFFF • SRAM_U = 0x2000_0000 至[0x2000_0000+(SRAM_size*(3/4))-1] 如下图所示。 KEA128 子系列参考手册, Rev. 2, July 2014 72 Freescale Semiconductor, Inc. SRAM大小* (3/4) SRAM大小*(1/4) 第 3 章 芯片配置 0x2000_0000 – SRAM_size/4 SRAM_L 0x1FFF_FFFF 0x2000_0000 SRAM_U 0x2000_0000 + SRAM_size(3/4) - 1 图 3-24. SRAM 块存储器映射 例如,对于包含 16 KB SRAM 的器件,其范围为: • SRAM_L: 0x1FFF_F000 – 0x1FFF_FFFF • SRAM_U: 0x2000_0000 – 0x2000_2FFF 3.7.3.3 SRAM 位操作 片上 SRAM 分为两个范围:SRAM_L 和 SRAM_U。SRAM_U 范围通过两种方式支 持该器件上的位操作: • 位带区别名 • 位操作引擎(BME) 该位带区别名中的 32 位写操作与对 SRAM_U 区中目标位进行的读-修改-写操作的 作用相同。详情请参见位带区别名 。 位带区别名仅支持简单置位或清零操作。通过 BME 引擎可进一步支持更复杂的位 操作(AND、OR、XOR 等)。详情参见位操作引擎 。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 73 模拟 3.8 模拟 3.8.1 12 位模数转换器(ADC)配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器 访问 SAR ADC 模块信号 信号多路复用 传输 其他外设 图 3-25. 12 位 SAR ADC 配置 表 3-27. 相关信息的参考链接 主题 相关模块 参考 完整说明 12 位 SAR ADC 12 位 SAR ADC 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.8.1.1 ADC 实例化信息 该器件包含一个 12 位逐次逼近型 ADC,具有多达 16 个通道。 表 3-28. ADC 通道 Freescale 部件编号 ADC 通道 S9KEAZ64AMLH(R) 16 S9KEAZ128AMLH(R) 16 S9KEAZ64AMLK(R) 16 S9KEAZ128AMLK(R) 16 S9KEAZ64AVLK(R) 16 S9KEAZ128AVLK(R) 16 S9KEAZ64ACLK(R) 16 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 74 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-28. ADC 通道 (继续) Freescale 部件编号 ADC 通道 S9KEAZ128ACLK(R) 16 S9KEAZ64AVLH(R) 16 S9KEAZ128AVLH(R) 16 S9KEAZ64ACLH(R) 16 S9KEAZ128ACLH(R) 16 ADC 支持软件和硬件触发。ADC 硬件触发(ADHWT)可选择性来自 ACMP0、 ACMP1、FTM0 初始化触发器、FTM2 初始化触发器、FTM2 匹配触发器、RTC 溢 出或 PITCH0/1 溢出。硬件触发可配置为在 MCU “Run”、“Wait”和“Stop”模式下引 起硬件触发。 硬件触发源的详细信息列示于“模块到模块” 一节。 3.8.1.2 ADC0 连接/通道分配 该器件的 ADC 通道分配如下表所示。已保留的通道转换成未知值。 表 3-29. ADC 通道分配 ADCH 通道 输入 00000 AD0 PTA0/ADP0 00001 AD1 PTA1/ADP1 00010 AD2 PTA6/ADP2 00011 AD3 PTA7/ADP3 00100 AD4 PTB0/ADP4 00101 AD5 PTB1/ADP5 00110 AD6 PTB2/ADP6 00111 AD7 PTB3/ADP7 01000 AD8 PTC0/ADP8 01001 AD9 PTC1/ADP9 01010 AD10 PTC2/ADP10 01011 AD11 PTC3/ADP11 01100 AD12 PTF4/ADP12 01101 AD13 PTF5/ADP13 01110 AD14 PTF6/ADP14 01111 AD15 PTF7/ADP15 10000 AD16 Vss 10001 AD17 Vss 10010 AD18 Vss 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 75 模拟 表 3-29. ADC 通道分配 (继续) ADCH 通道 输入 10011 AD19 Vss 10100 AD20 保留 10101 AD21 保留 10110 AD22 温度传感器 10111 AD23 带隙基准 11000 AD24 保留 11001 AD25 保留 11010 AD26 保留 11011 AD27 保留 11100 AD28 保留 11101 AD29 VREFH 11110 AD30 VREFL 11111 模块已禁用 无 3.8.1.3 ADC 模拟电源和基准连接 该器件包括 80LQFP 封装上专用的 VDDA 引脚、VSSA 引脚、VREFH 引脚和 VREFL 引脚。专用 VREFL 引脚在 64QFP\LQFP 封装和 LQFP44 封装上可用,而 VREFH 引脚与 VDDA 内部相连。 3.8.1.4 温度传感器和带隙基准 ADC 模块集成了片上温度传感器。要使用此温度传感器,必须执行以下操作。 • 用最高 1 MHz 的时钟配置 ADC,以便进行长时间采样 • 转换带隙基准电压通道(AD23) • 通过使用 VBG 的值转换带隙基准电压通道的数字值,用户就可确定 VDD。 • 转换温度传感器通道(AD22) • 通过使用计算所得的 VDD 值将 AD22 的数字值转换成电压,VTEMP 3.8.1.5 备选时钟 ADC 模块能够使用 MCU 总线时钟、总线时钟 2 分频、模块中的本地异步时钟 (ADACK)或备选时钟 ALTCLK 来执行转换。这些器件的备选时钟是外部振荡器输 出(OSC_OUT)。 KEA128 子系列参考手册, Rev. 2, July 2014 76 Freescale Semiconductor, Inc. 第 3 章 芯片配置 ADC 选定的时钟源在经过 ADC_SC3[ADIV]分频后,必须符合 fADCK 指定的时钟范 围。 假如上述条件均已满足,则 ALTCLK 在 MCU 处于 Wait 模式时处于有效状态。这 样 ALTCLK 就能在 MCU 处于 Wait 模式时用作 ADC 的转换时钟源。 MCU 处于 Stop 模式时,ALTCLK 不能用作 ADC 的转换时钟源。 3.8.2 ACMP 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥0 ACMP 其他外设 模块信号 信号多路复用 寄存器 访问 图 3-26. ACMP 配置 表 3-30. 相关信息的参考链接 主题 相关模块 参考 完整说明 模拟比较器(ACMP) 比较器 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.8.2.1 ACMP 概述 该器件包含两个模拟比较器模块(ACMP),该模块提一个电路,用于比较两个模拟输 入电压或比较一个模拟输入电压与一个内部基准电压。该比较器电路适用于在整个 供电电压范围内操作(全摆幅操作)。 ACMP 具有四种不同的输入,由 ACMP 的正输入和负输入多路复用。其中一个固定 连接到内置 DAC 输出,其他则在外部映射到管脚。 ACMP 模块支持内部带隙基准电压。使用带隙基准时,用户必须先使能 PMC 带隙 基准缓冲器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 77 模拟 如果已使能“Wait”和“Stop”模式,则 ACMP 模块就能继续在这些模式下操作,并且 能够在发生比较事件时唤醒 MCU。 3.8.2.2 ACMP 互相连接 通过设置 SIM_SOPT0[ACIC]可将 ACMP0 输出配置为与 FTM1 输入捕捉通道 0 相 连。在 ACIC 字段的电平为有效的情况下,FTM1_CH0 引脚在外部不可用,无论通 道 0 的FTM1 模块配置如何。 ACMP0 和 ACMP1 输出也是内部连接到 FTM2 触发输入和故障输入。通过配置 SIM_SOPT0[ACTRG],用户可将 ACMP0_OUT 或 ACMP1_OUT 连接到 FTM2 触发 输入 0。ACMP0_OUT 连接到 FTM2 故障输入 0,而 ACMP1_OUT 则连接到 FTM2 故障输入 3。 通过设置 SIM_SOPT0[RXDCE]可将 ACMP0 输出直接投射至 UART0_RX。在该模 式下,UART0_RX 管脚不工作。任何连接到 ACMP0 输入的外部信号都可被视为输 入引脚。 ACMP0 和 ACMP1 输出可在 PWT 模块上进行测量。通过配置 SIM_SOPT1[ACPWTS]位,用户可将 ACMP0_OUT 或 ACMP1_OUT 连接到 PWT 输 入 2。 下表显示的是 ACMP0 和 ACMP1 的输入连接: 表 3-31. ACMP0 输入连接 ACMP0 通道 连接 0 PTA0/ACMP0_IN0 1 PTA1/ACMP0_IN1 2 PTC4/ACMP0_IN2 3 DAC 输出 表 3-32. ACMP1 输入连接 ACMP1 通道 连接 0 PTA6/ACMP1_IN0 1 PTA7/ACMP1_IN1 2 PTB4/ACMP1_IN2 3 DAC 输出 KEA128 子系列参考手册, Rev. 2, July 2014 78 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.8.2.3 Stop 模式下的 ACMP 如已使能,ACMP 将继续在 Stop 模式下工作。ACMPx_SC[ACOPE]如已使能,则比 较器输出将以正常工作模式工作并将控制 ACMPx_OUT 引脚。 当发生比较事件且 ACMPx_CS[ACIE]使能时,MCU 会退出 Stop 模式;ACMPx_CS[ACF]标志相应地 置位。 3.9 定时器 3.9.1 FlexTimer 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设总线 控制器0 传输 其他外设 FlexTimer 模块信号 信号多路复用 寄存器 访问 图 3-27. FlexTimer 配置 表 3-33. 相关信息的参考链接 主题 相关模块 参考 完整说明 FlexTimer FlexTimer 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 信号多路复用 端口控制 信号多路复用 3.9.1.1 FTM 概述 FTM 定时器最多包含六个通道,这些通道支持输入捕捉、输出比较和 PWM 信号的 生成以控制电动机和电源管理应用。FTM 时间基准为 16 位计数器,它可用作无符 号的计数器或有符号的计数器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 79 定时器 该器件最多包含具有全部功能的一个 6 通道 FTM 和具有基本 TPM 功能的两个 2 通道 FTM 的三个 FTM 模块。每个 FTM 模块都可以使用独立的外部时钟输入。下 表总结了 FTM 模块的配置。 表 3-34. FTM 模块功能 特性 FTM0/FTM1 FTM2 通道数 2 6 初始计数值 否 是 周期性 TOF 否 是 输入捕捉模式 是 是 通道输入滤波器 否 通道 0、1、2 和 3 输出比较模式 是 是 边沿对齐 PWM (EPWM) 是 是 中心对齐 PWM (CPWM) 是 是 组合模式 否 是 互补模式 否 是 PWM 同步 否 是 反相 否 是 软件输出控制(SWOC) 否 是 死区时间插入 否 是 输出掩码 否 是 故障控制 否 是 故障输入数 0 4 故障输入滤波器 否 故障输入 0、1、2 和 3 极性控制 否 是 初始化 否 是 通道匹配触发器 否 是 初始化触发器 是 是 捕捉测试模式 否 是 DMA 否 否 双边沿捕捉模式 否 是 正交解码器模式 否 否 正交解码器输入滤波器 否 否 Debug 模式 否 是 否 是 否 是 中间负载 全局时基使能 可用的寄存器 1 FTM_SC、FTM_CNT、 FTM_SC、FTM_CNT、FTM_MOD、FTM_C0SC、 FTM_MOD、 FTM_C0V、FTM_C1SC 以及 FTM_C1V、 FTM_C0SC、 FTM_C2SC、FTM_C2V、FTM_C3SC、 FTM_C0V、FTM_C1SC FTM_C3V、FTM_C4SC、FTM_C4V、 以及 FTM_C1V、 FTM_C5SC、FTM_C5V、FTM_CNTIN、 FTM_EXTTRIG FTM_STATUS、FTM_MODE、FTM_SYNC、 FTM_OUTINIT、FTM_OUTMASK、 FTM_COMBINE、FTM_DEADTIME、 KEA128 子系列参考手册, Rev. 2, July 2014 80 Freescale Semiconductor, Inc. 第 3 章 芯片配置 表 3-34. FTM 模块功能 FTM0/FTM1 特性 FTM2 FTM_EXTTRIG、FTM_POL、FTM_FMS、 FTM_FILTER、FTM_FLTCTRL、FTM_CONF、 FTM_FLTPOL、FTM_SYNCONF、 FTM_INVCTRL、FTM_SWOCTRL 以及 FTM_PWMLOAD 1. 全局时基(GTB)允许在一个芯片上同步多个 FTM 模块。它需要由所有相关的 FTM 模块支持的 GTB 功能。在该器件上,仅一 个 FTM 模块(FTM2)支持 GTB 功能,因此,GTB 功能实际不可用。 3.9.1.2 FTM 时钟选项 可选择的 FTM 源时钟包括、定时器时钟(最高 48 MHz)固定频率时钟或外部时 钟。选定的控制源由 FTMx_SC[CLKS]控制。 • 当 FTMx_SC[CLKS]等于 00 时,没有选择任何时钟(这实际上会禁用 FTM 计 数器)。 • 当 FTMx_SC[CLKS]等于 01 时,选择定时器时钟。 • 当 FTMx_SC[CLKS]等于 10 时,选择固定频率时钟(ICSFFCLK)。 • 当 FTMx_SC[CLKS]等于 11 时,选择外部时钟。 3.9.1.3 FTM 互连 FTM0 有下列互连: • UART0_TX 信号可通过 FTM0 通道 0 PWM 输出调制。 • UART0_RX 信号可通过将 1 写入 SIM_SOPT0[RXDCE]由 FTM0 通道 1 输入捕 捉功能标记。 FTM1 拥有以下互相连接: • ACMP0 输出可通过将 1 写入 SIM_SOPT0[ACIC]在内部与 FTM1 通道 0 捕捉输 入相连。 • RTC 溢出可通过将 1 写入 SIM_SOPT0[RTCC]与 FTM1 通道 1 捕捉输入相连。 FTM2 支持三种 PWM 同步源: • Trigger0 可通过将 0 或 1 写入 SIM_SOPT0[ACTRG]与 ACMP0 或 ACMP1 的输 出相连。 • Trigger1 连接到 FTM0 通道 0 输出。 • Trigger2 是采用将 1 写入 SIM_SOPT0[FTMSYNC]的方法而进行触发的软件触 发。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 81 定时器 FTM2 支持四种 FTM 故障源: • • • • 故障 0 连接到 ACMP0 输出。 故障 1 连接到 PTA6。 故障 2 连接到 PTA7。 故障 3 连接到 ACMP1 输出。 3.9.1.4 FTM 中断 FlexTimer 有多个中断源。但是,每个中断源都能对中断控制器生成单个中断请求。 当出现 FTM 中断时,读取 FTM 状态寄存器以确定确切的中断源。 3.9.2 PIT 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器 访问 周期性中断 定时器 图 3-28. PIT 配置 表 3-35. 相关信息的参考链接 主题 相关模块 参考 完整说明 PIT PIT 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.9.2.1 PIT 概述 PIT 模块是一系列可用于发起中断和触发的定时器。 该器件包含一个支持链式定时器模式的双通道 PIT 模块。 KEA128 子系列参考手册, Rev. 2, July 2014 82 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.9.2.2 PIT 互相连接 通过 SIM_SOPT0[ADHWT]置位,可将 PIT 通道 0 和通道 1 触发器输出用作 ADC 硬 件触发。 3.9.3 RTC 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器 访问 模块信号 信号多路复用 实时时钟 图 3-29. RTC 配置 表 3-36. 相关信息的参考链接 主题 相关模块 参考 完整说明 RTC RTC 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.9.3.1 RTC 概述 在该器件上使用的实时计数器(RTC)包括一个 16 位计数器、一个 16 位比较器、若 干个二进制和十进制预分频器、四个时钟源和一个可编程周期中断。该模块可用于 当日时间、日历或任何任务调度功能。该模块可以在无外部组件的情况下实现低功 耗周期性的自动唤醒。 3.9.3.2 RTC 互连 四个软件可选择时钟源可以被选择作为基于二进制或者十进制的预分频器的输入源 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 83 定时器 • • • • 1 kHz 内部低功耗振荡器(LPOCLK) 外部时钟(OSCERCLK) 32 kHz 内部基准时钟(ICSIRCLK) 总线时钟 RTC 溢出触发器通过配置 SIM_SOPT0[ADHWT]可用作 ADC 的硬件触发,通过配 置SIM_SOPT0[RTCC]还能由 FTM1 通道 1 捕捉。 3.9.4 PWT 配置 本节总结本模块在芯片级是如何配置的。有关模块本身的全面阐述,请参见各模块 相关章节。 外设总线 控制器0 传输 其他外设 脉宽定时器 模块信号 (PWT) 信号多路复用 寄存器 访问 图 3-30. PWT 配置 表 3-37. 相关信息的参考链接 主题 相关模块 参考 完整说明 PWT PWT 系统存储器映像 系统存储器映像 时钟 时钟分布 电源管理 电源管理 信号多路复用 端口控制 信号多路复用 3.9.4.1 PWT 概述 该器件上的脉冲宽度定时器(PWT)模块由一个 16 位计数器构成,可用于捕捉或测量 映射在其输入通道上的脉冲宽度。 PWT 的计数器具有两个与 FTM 模块共享的可选择时钟源,支持频率高达 48MHz 的 内部定时器时钟。PWT 模块支持可编程的正脉冲边沿或负脉冲边沿,以及基于脉冲 宽度或计数器溢出的可编程中断生成。 KEA128 子系列参考手册, Rev. 2, July 2014 84 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.9.4.2 PWT 互连 有两个软件可选择时钟源可用于 PWT 模块预分频器的输入: • 定时器时钟:最多 48 MHz,也是 FTM 模块的时钟源选项 • TCLK:来自面板的外部时钟 PWT 模块具有四个输入通道,其连接如下所示: 表 3-38. PWT 输入连接 PWT 输入通道 连接 0 PTD5 或 PTE2 1 PTB0 或 PTH7 2 ACMP0 输出或 ACMP1 输出 3 UART0_RX、UART1_RX 或 UART2_RX 3.10 通信接口 3.10.1 SPI 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 寄存器 访问 SPI 模块信号 信号 多路复用 图 3-31. SPI 配置 表 3-39. 相关信息的参考链接 主题 相关模块 参考 完整说明 SPI SPI 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 85 通信接口 3.10.1.1 SPI 概述 该器件包含两个支持 8 位数据长度的 SPI 模块。 串行外设接口(SPI)模块为 MCU 和外设之间的全双工、同步和串行通信而提供。这 些外设可包括其他微控制器、模数转换器、移位寄存器、传感器和存储器等。 SPI 在主机模式下的运行波特率高达总线时钟除以 2,在从机模式中高达总线时钟除 以 4。软件可以轮询该状态标志,或可使用中断方式驱动 SPI 操作。 3.10.2 I2C 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 I2 C 模块信号 信号多路复用 寄存器 访问 图 3-32. I2C 配置 表 3-40. 相关信息的参考链接 主题 相关模块 参考 完整说明 I2C I2C 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.10.2.1 I2C 概述 该器件包含两个具有 SMBus 特性的 I2C 模块。I2C 用于多个器件之间的通信。该 接口在总线负荷和时序最高的情况下以高达 100 kb/s 的速度运行。该器件能够以更 高的波特率运行,最高可达时钟/20 的最大值,同时总线负荷更低。最大通信长度 和可连接器件数受限于 400 pF 的最大总线电容。 KEA128 子系列参考手册, Rev. 2, July 2014 86 Freescale Semiconductor, Inc. 第 3 章 芯片配置 I2C0 还提供 4 线式接口选项。 3.10.2.2 I2C0 4 线式接口特性 I2C0 4 线式接口凭借 4 个单向信号而非标准 I2C 的 SCL 和 SDA 这 2 个双向信号来 提高 I2C 的抗噪性。 I2C0 提供 4 线式接口选项。SIM_SOPT1[I2C04WEN]置位时,SDA/SCL 输入来自 SDA_IN/SCL_IN,同时 SDA_OUT/SCL_OUT 上存在 SDA/SCL 输出。 在 4 线式接口特性因 SIM_SOPT1[I2C04WEN]位置位而使能后,用户可使 SIM_SOPT1[I2C0OINV]置位,这样在输出之前 SDA_OUT/SCL_OUT 就会被反相。 该特性仅当未重新映射 I2C0 管脚时可用。 I2C04WEN I2C0OINV data_w ipp_do_sda ipp_ind_sda data_w PTA1/I2C0_4WSDAOUT PTA2/I2C0_SDA data_r I2C0 ipp_ind_scl data_r PTA3/I2C0_SCL data_w ipp_do_scl data_w PTA0/I2C0_4WSCLOUT 图 3-33. I2C0 4 线式接口图 3.10.3 UART 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 87 通信接口 外设 桥 UART 模块信号 信号多路复用 寄存器 访问 图 3-34. UART 配置 表 3-41. 相关信息的参考链接 主题 相关模块 参考 完整说明 UART UART 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.10.3.1 UART 概述 该器件包含三通用异步收发器(UART) 模块。通常,这些系统可连接到个人计算机 或工作站的 RS232 串行输入/输出端口。这些系统还可用于与其他嵌入式控制器通 信。 一个可变并基于模数的 13 位波特率生成器支持 115.2 kbaud 以上的大范围标准波特 率。在相同的 UART 中发送和接收可使用常见的波特率,每个 UART 模块都具有单 独的波特率生成器。 此 UART 系统提供在其他嵌入式控制器的异步串行 I/O 外设上许多不常见的高级 功能。该接收器采用一种高级数据采样技术确保通信和噪音检测可靠。还包括发送 和接收中的硬件奇偶校验、接收器唤醒和双缓冲。 3.10.3.2 UART 互连 UART0 可通过以下技巧实现红外功能: UART0_TX 调制: • UART0_TX 输出可通过 FTM0 通道 0 PWM 输出调制 UART0_RX 标签: KEA128 子系列参考手册, Rev. 2, July 2014 88 Freescale Semiconductor, Inc. 第 3 章 芯片配置 • UART0_RX 输入可标记到 FTM0 通道 1 或交由 ACMP0 或 ACMP1 模块滤波 UART0_RX、UART1_RX 和 UART2_RX 可通过 PWT 测定。用户通过配置 SIM_SOPT1[UARTPWTS],可将 UART0_RX、UART1_RX 或 UART2_RX 连接到 PWT_IN3。 3.10.4 MSCAN 配置 本节总结本模块在芯片级是如何配置的。 有关模块本身的全面阐述,请参见各模块 相关章节。 外设 桥 MSCAN 模块信号 信号多路复用 寄存器 访问 图 3-35. MSCAN 配置 表 3-42. 相关信息的参考链接 主题 相关模块 参考 完整说明 MSCAN MSCAN 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 3.10.4.1 MSCAN 概述 该器件包含 CAN 模块。它使用 MSCAN 模块,后者是采用 CAN 2.0A/B 协议的通信 控制器,具体请参见 1991 年 9 月定义的 Bosch 规范。 3.10.4.2 MSCAN 时钟源 MSCAN 模块具有可编程时钟源。它可由总线时钟或外部振荡器时钟(OSCERCLK) 计时。用户可对 MSCAN_CANCTL1[CLKSRC]进行配置以选择使用过的时钟。 将 OSCERCLK 选作 MSCAN 时钟时,其频率不得高于 24 MHz。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 89 人机接口(HMI) 3.10.4.3 MSCAN 唤醒中断和去抖滤波器 当检测到 CAN 总线活动时,可将 MSCAN 编程为从睡眠或 Stop 模式唤醒。对现有 CAN 总线动作的敏感度是可以修改的,方法是:通过使 MSCAN_CANCTL1[WUPM] 置位,将低通过滤波器功能应用到 RXCAN 输入线路。该特性可防止 MSCAN 因 CAN 总线线路上的短时毛刺而唤醒。 3.11 人机接口(HMI) 3.11.1 GPIO 配置 外设 桥 寄存器访问 GPIO控制器 模块信号 信号多路复用 ARM Cortex -M0+ 内核 寄存器 访问 图 3-36. GPIO 配置 表 3-43. 相关信息的参考链接 主题 相关模块 参考 完整说明 GPIO GPIO 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 交叉开关 交叉开关 交叉开关 3.11.1.1 GPIO 概述 GPIO 具有多个端口,内核可以对基址 0xF800_0000(FGPIO)进行零等待状态直接访 问。另外还可由内核通过 0x400F_F000 处的交叉开关/AIPS 接口以及地址 0x4000_F000 处的别名插槽(15)对其进行访问。对 GPIO 空间的所有 BME 操作都可 以通过引用地址 0x4000_F000 处的别名插槽(15)完成。只有部分 BME 操作可通过 引用地址 0x400F_F000 处的 GPIO 完成。 KEA128 子系列参考手册, Rev. 2, July 2014 90 Freescale Semiconductor, Inc. 第 3 章 芯片配置 3.11.2 KBI 配置 外设 桥 寄存器访问 模块信号 信号多路复用 ARM Cortex -M0+ 内核 寄存器 访问 KBI 图 3-37. KBI 配置 表 3-44. 相关信息的参考链接 主题 相关模块 参考 完整说明 KBI KBI 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 交叉开关 交叉开关 交叉开关 3.11.2.1 KBI 概述 该器件具有两个 32 位键盘中断模块(KBI),并且最多有 64 个键盘中断输入可用,具 体取决于封装。 3.11.2.2 KBI 分配 KBI 端口分配如下表所示。 表 3-45. KBI 端口分配 KBI 输入自 KBI0P0 ~ KBI0P7 PTA0 ~ PTA7 KBI0P8 ~ KBI0P15 PTB0 ~ PTB7 KBI0P16 ~ KBI0P23 PTC0 ~ PTC7 KBI0P24 ~ KBI0P31 PTD0 ~ PTD7 KBI1P0 ~ KBI1P7 PTE0 ~ PTE7 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 91 人机接口(HMI) 表 3-45. KBI 端口分配 (继续) KBI 输入自 KBI1P8 ~ KBI1P15 PTF0 ~ PTF7 KBI1P16 ~ KBI1P23 PTG0 ~ PTG7 KBI1P24 ~ KBI1P31 PTH0 ~ PTH7 3.11.3 IRQ 配置 外设 桥 寄存器访问 IRQ 模块信号 信号多路复用 ARM Cortex -M0+ 内核 寄存器 访问 图 3-38. IRQ 配置 表 3-46. 相关信息的参考链接 主题 相关模块 参考 完整说明 IRQ IRQ 系统存储器映像 — 系统存储器映像 时钟 — 时钟分布 电源管理 — 电源管理 交叉开关 交叉开关 交叉开关 3.11.3.1 IRQ 分配 默认情况下,IRQ 分配至引脚 PTA5。通过配置 SIM_PINSEL0[IRQPS],可将 IRQ 重新分配至引脚 PTI0、PTI1、PTI2、PTI3、PTI4、PTI5 或 PTI6。 KEA128 子系列参考手册, Rev. 2, July 2014 92 Freescale Semiconductor, Inc. 第4章 存储器映像 4.1 简介 本设备包含多种存储器和内存映射外设,并且都在 4GB 的存储空间之内。本章介绍 该存储器空间中存储器和外设的位置。 4.2 系统存储器映像 下表显示的是器件存储器映像概要。 表 4-1. 系统存储器映像 系统 32 位地址范围 0x0000_0000–0x07FF_FFFF1 目标从机 访问 程序 Flash 和只读数据 所有主机 (包括前 196 字节的异常向量) 0x0800_0000–0x0FFF_FFFF 保留 — 0x1000_0000– 0x1FFF_EFFF 保留 — 0x1FFF_F000-0x1FFF_FFFF2 SRAM_L:低位 SRAM 所有主机 0x2000_0000- 0x2000_2FFF SRAM_U:高位 SRAM(位带区) 所有主机 0x2000_3000–0x21FF_FFFF 保留 – 0x2200_0000– 0x2205_FFFF SRAM_U 位带区别名 Cortex-M0+内核 0x2206_0000–0x23FF_FFFF 保留 – 0x2400_0000–0x3FFF_FFFF 对 SRAM_U 的位操作引擎(BME)访问 Cortex-M0+内核 0x4000_0000–0x4007_FFFF AIPS 外设 Cortex-M0+ 内核 0x4008_0000–0x400F_EFFF 保留 – 0x400F_F000–0x400F_FFFF 通用输入/输出(GPIO) Cortex-M0+ 内核 0x4010_0000–0x43FF_FFFF 保留 – 0–1273 0x4400_0000–0x5FFF_FFFF 对 AIPS 外设的位操作引擎(BME)访问,用于插槽 Cortex-M0+内核 0x6000_0000–0xDFFF_FFFF 保留 – 0xE000_0000–0xE00F_FFFF 专用外围设备 Cortex-M0+内核 0xE010_0000–0xEFFF_FFFF 保留 – 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 93 位带区别名 表 4-1. 系统存储器映像 (继续) 系统 32 位地址范围 目标从机 0xF000_0000–0xF000_0FFF 保留 0xF000_1000–0xF000_1FFF 保留 访问 – – 4 0xF000_2000–0xF000_2FFF 系统 ROM 表 Cortex-M0+内核 0xF000_3000–0xF000_3FFF 其他控制摸块(MCM) Cortex-M0+内核 0xF000_4000–0xF7FF_FFFF 保留 – 0xF800_0000–0xFFFF_FFFF IOPORT:FGPIO(单周期) Cortex-M0+内核 1. 程序 Flash 开始于 0x0000_0000,但 Flash 的结束位置则不尽相同,具体取决于特定器件所配备的 Flash 的大小。详情请参 见 Flash 存储器大小 。 2. 该范围不尽相同,具体取决于 SRAM 大小。详情请参见 SRAM 大小 。 3. 包括插槽 15 处 GPIO(基地址为 0x4000_F000)的 BME 运算。 4. 该器件集成系统 ROM 表,用于在 CoreSight 调试系统中重定位至 ARM Cortex M0+ (Flycatcher) ROM 表。详情请参见系统 ROM 存储器映像 。 4.3 位带区别名 该器件支持 Cortex M0+内核的 SRAM_U 位带区别名。在位带区别名中进行的 32 位写操作的结果与在位带区中目标位上进行的读取-修改-写入操作的结果相同,但 只需一个周期的时间。位带区别名中的位操作更为高效。 写入位带区别名的位 0 数值确定哪个数值写入目标位: • 位 0 置位时,向目标位写入 1。 • 位 0 清零时,向目标位写入 0。 位带区别名中进行的 32 位读操作返回以下任意一种数值: • 数值为 0x0000_0000 表示目标位清零 • 数值为 0x0000_0001 表示目标位置位 KEA128 子系列参考手册, Rev. 2, July 2014 94 Freescale Semiconductor, Inc. 第 4 章 存储器映像 位带区 位带区别名 31 31 0 32 KByte 1 KByte 0 图 4-1. 位带区别名映射 4.4 位操作引擎 位处理引擎(BME)针对外设和 SRAM_U 地址空间的原子“读取-修改-写入”存储器操 作提供硬件支持。通过将 Cortex-M 指令集架构中的基本加载和存储指令支持与 BME 提供的修饰存储的概念相结合,为此类超低端微控制器提供了强大和高效的 “读取-修改-写入”功能。有关其功能的详细描述,参见位处理引擎(BME) 。 4.5 系统 ROM 存储器映像 通过 ARM CoreSight 调试基础架构来识别芯片上的组件,系统 ROM 表只是可选项 目。 对于内核配置(比如 Cortex-M0+所支持的那些),ARM 建议调试器通过 CoreSight 调试基础架构识别并连接至调试元件。 ARM 建议调试器遵循下图所示流程来识别 CoreSight 调试基础架构中的组件。本 例中,调试器为 CoreSight 系统中的每个 CoreSight 组件读取外设和组件 ID 寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 95 系统 ROM 存储器映像 CoreSight访问端口 基址指针 从系统ROM表 + 重定位(若已实施) + Flycatcher ROM表 CoreSight ID 指针 + 数据观察点单元 + 系统控制空间 CoreSight ID + 断点单元 + CoreSight ID Flycatcher CPUID CoreSight ID 观察点控制 断点控制 调试控制 + 可选组件 + 图 4-2. CoreSight 发现过程 下表显示的是 Freescale 系统 ROM 表存储器映像。它包括 ARM CoreSight 调试基 础架构所需的 ROM 入口、外设 ID 和组件 ID。 注 该器件仅集成 Flycatcher ROM 表中定义的标准 ARM M0+内核调试组件。未集成自定义调试组件。 ROM 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 F000_2000 入口 (ROM_ENTRY0) 32 R 参见章节 4.5.1/97 F000_2004 表格标记寄存器结束 (ROM_TABLEMARK) 32 R 0000_0000h 4.5.2/97 F000_2FCC 系统访问寄存器 (ROM_SYSACCESS) 32 R 0000_0001h 4.5.3/98 F000_2FD0 外设 ID 寄存器 (ROM_PERIPHID4) 32 R 参见章节 4.5.4/98 F000_2FD4 外设 ID 寄存器 (ROM_PERIPHID5) 32 R 参见章节 4.5.4/98 F000_2FD8 外设 ID 寄存器 (ROM_PERIPHID6) 32 R 参见章节 4.5.4/98 F000_2FDC 外设 ID 寄存器 (ROM_PERIPHID7) 32 R 参见章节 4.5.4/98 F000_2FE0 外设 ID 寄存器 (ROM_PERIPHID0) 32 R 参见章节 4.5.4/98 F000_2FE4 外设 ID 寄存器 (ROM_PERIPHID1) 32 R 参见章节 4.5.4/98 F000_2FE8 外设 ID 寄存器 (ROM_PERIPHID2) 32 R 参见章节 4.5.4/98 F000_2FEC 外设 ID 寄存器 (ROM_PERIPHID3) 32 R 参见章节 4.5.4/98 F000_2FF0 组件 ID 寄存器 (ROM_COMPID0) 32 R 参见章节 4.5.5/99 F000_2FF4 组件 ID 寄存器 (ROM_COMPID1) 32 R 参见章节 4.5.5/99 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 96 Freescale Semiconductor, Inc. 第 4 章 存储器映像 ROM 存储器映射 (继续) 绝对地址(十 六进制) 宽度(单 位:位) 访问 复位值 小节/页 组件 ID 寄存器 (ROM_COMPID2) 32 R 参见章节 4.5.5/99 F000_2FFC 组件 ID 寄存器 (ROM_COMPID3) 32 R 参见章节 4.5.5/99 F000_2FF8 寄存器名称 4.5.1 入口 (ROM_ENTRYn) 系统 ROM 表始于"n"个相关的 32 位地址,器件中的每个调试组件均对应一个地址, 并以一个全零值结束以表示 ROM 表在第"n+1"个值处终止。 它硬连线到特定值。外部调试代理在自动发现过程中会使用到这个值。 Address: F000_2000h base + 0h offset + (4d × i), where i=0d to 0d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ENTRY R W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • See field descriptions for reset values.x = 复位时未定义。 ROM_ENTRYn 字段描述 字段 描述 入口 ENTRY 入口 0(CM0+ ROM 表)被硬连接到 0xF00F_D003。 4.5.2 表格标记寄存器结束 (ROM_TABLEMARK) 该寄存器指示表格标记结束。它硬连线到特定值。外部调试代理在自动发现过程中 会使用到这个值。 地址: F000_2000h 基准 + 4h 偏移 = F000_2004h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MARK R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ROM_TABLEMARK 字段描述 字段 MARK 描述 硬连线至 0x0000_0000 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 97 系统 ROM 存储器映像 4.5.3 系统访问寄存器 (ROM_SYSACCESS) 该寄存器指示系统访问。它硬连线到特定值。外部调试代理在自动发现过程中会使 用到这个值。 地址: F000_2000h 基准 + FCCh 偏移 = F000_2FCCh 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 SYSACCESS R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ROM_SYSACCESS 字段描述 字段 描述 SYSACCESS 硬连线至 0x0000_0001 4.5.4 外设 ID 寄存器 (ROM_PERIPHIDn) 这些寄存器指示外设 ID。它硬连线到特定值。外部调试代理在自动发现过程中会 使用到这个值。 Address: F000_2000h base + FD0h offset + (4d × i), where i=0d to 7d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PERIPHID R W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • See field descriptions for reset values.x = 复位时未定义。 ROM_PERIPHIDn 字段描述 字段 PERIPHID 描述 外设 ID1 硬连线至 0x0000_00E0;ID2 硬连线至 0x0000_0008;其他硬连线至 0x0000_0000。 KEA128 子系列参考手册, Rev. 2, July 2014 98 Freescale Semiconductor, Inc. 第 4 章 存储器映像 4.5.5 组件 ID 寄存器 (ROM_COMPIDn) 这些寄存器指示组件 ID。它硬连线到特定值。外部调试代理在自动发现过程中会 使用到这个值。 Address: F000_2000h base + FF0h offset + (4d × i), where i=0d to 3d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 COMPID R W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • See field descriptions for reset values.x = 复位时未定义。 ROM_COMPIDn 字段描述 字段 COMPID 描述 组件 ID 组件 ID0 硬连线至 0x0000_000D;ID1 硬连线至 0x0000_0010;ID2 硬连线至 0x0000_0005;ID3 硬连线至 0x0000_00B1。 4.6 外设桥(AIPS-Lite)存储器映像 外设桥存储器映像可通过 0x4000_0000–0x400F_FFFF 区域中交叉开关上的某个从 机端口访问。该器件集成了一个可定义 1024 KB 地址空间的外设桥。 与此空间有关的三个区域为: • 一个 128 KB 区域,分区为 32 个空间,每个空间大小为 4 KB,保留供平台上的 外设使用。AIPS 控制器生成供所有 32 个空间使用的独特模块。 • 一个 384 KB 区域,分区为 96 个空间,每个空间大小为 4 KB,保留供平台外的 外设模块使用。AIPS 控制器为所有 96 个空间生成唯一的模块启用。 • 最后一个插槽是始于 0x400F_F000 的 4 KB 区域,用于访问 GPIO 模块。GPIO 插槽(插槽 128)是插槽 15 的别名。此块还直接与内核相连,无需经过与访问 相关的等待状态即可通过 AIPS 控制器直接访问。 如果通过对应的 SIM 寄存器时钟选通控制位禁用了某模块,那么该模块的 AIPS 插 槽也将被禁用。访问任何未实施或禁用的外设桥插槽中的地址都会导致传输错误终 止。 通过外设桥进行编程模型访问,在 4 KB 插槽中通常实现的只占很小一部分。访问 未在外设中实现的地址会导致传输错误终止。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 99 外设桥(AIPS-Lite)存储器映像 4.6.1 先写后读序列和存储器操作所需的串行化 在某些情况下,执行后续操作前外设先前的写入操作必须全部完成。这类情况示例 有: • 退出中断服务程序(ISR) • 更改模式 • 配置函数 在这类情况下,应用软件必须执行先写后读序列,以确保正确执行存储器操作所需 的串行化: 1. 对外设寄存器进行写操作。 2. 对已进行写操作的外设寄存器进行读操作,以便验证写操作。 3. 继续后续操作。 4.6.2 外设桥(AIPS-Lite)存储器映像 注 • 插槽 0-95 和插槽 128 是 32 位数据宽的模块,例外情况 是:插槽 49、82 是 8 位数据宽的模块(IRQ、WDOG), 插槽 36 是 16 位数据宽的模块(MSCAN)。 • 插槽 96-127 是 8 位数据宽的模块。而插槽 121 和 122 为 32 位数据宽的模块(KBI0、KBI1) 表 4-2. 外设桥 0 插槽分配 系统 32 位基地址 插槽编号 0x4000_0000 0 — 0x4000_1000 1 — 0x4000_2000 2 — 0x4000_3000 3 — 0x4000_4000 4 — 0x4000_5000 5 — 0x4000_6000 6 — 0x4000_7000 7 — 0x4000_8000 8 — 0x4000_9000 9 — 0x4000_A000 10 — 0x4000_B000 11 — 0x4000_C000 12 — 0x4000_D000 13 — 模块 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 100 Freescale Semiconductor, Inc. 第 4 章 存储器映像 表 4-2. 外设桥 0 插槽分配 (继续) 系统 32 位基地址 插槽编号 0x4000_E000 14 — 0x4000_F000 15 GPIO 控制器(别名地址 0x400F_F000) 0x4001_0000 16 — 0x4001_1000 17 — 0x4001_2000 18 — 0x4001_3000 19 — 0x4001_4000 20 — 0x4001_5000 21 — 0x4001_6000 22 — 0x4001_7000 23 — 0x4001_8000 24 — 0x4001_9000 25 — 0x4001_A000 26 — 0x4001_B000 27 — 0x4001_C000 28 — 0x4001_D000 29 — 0x4001_E000 30 — 0x4001_F000 31 — 0x4002_0000 32 Flash 存储器(FTMRE) 0x4002_1000 33 — 0x4002_2000 34 — 0x4002_3000 35 — 0x4002_4000 36 MSCAN 0x4002_5000 37 — 0x4002_6000 38 — 0x4002_7000 39 — 0x4002_8000 40 0x4002_9000 41 — 0x4002_A000 42 — 0x4002_B000 43 — 0x4002_C000 44 — 0x4002_D000 45 — 0x4002_E000 46 — 0x4002_F000 47 — 0x4003_0000 48 — 0x4003_1000 49 IRQ 控制器(IRQ) 0x4003_2000 50 循环冗余校验(CRC) 0x4003_3000 51 脉宽定时器(PWT) 0x4003_4000 52 — 模块 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 101 外设桥(AIPS-Lite)存储器映像 表 4-2. 外设桥 0 插槽分配 (继续) 系统 32 位基地址 插槽编号 0x4003_5000 53 — 0x4003_6000 54 — 0x4003_7000 55 周期性中断定时器(PIT) 0x4003_8000 56 Flex 定时器 0 (FTM0) 0x4003_9000 57 Flex 定时器 1 (FTM1) 0x4003_A000 58 Flex 定时器 2 (FTM2) 模块 0x4003_B000 59 模数转换器(ADC) 0x4003_C000 60 — 0x4003_D000 61 实时时钟(RTC) 0x4003_E000 62 — 0x4003_F000 63 — 0x4004_0000 64 — 0x4004_1000 65 — 0x4004_2000 66 — 0x4004_3000 67 — 0x4004_4000 68 — 0x4004_5000 69 — 0x4004_6000 70 — 0x4004_7000 71 — 0x4004_8000 72 系统集成模块(SIM) 0x4004_9000 73 端口控制器 0x4004_A000 74 — 0x4004_B000 75 — 0x4004_C000 76 — 0x4004_D000 77 — 0x4004_E000 78 — 0x4004_F000 79 — 0x4005_0000 80 — 0x4005_1000 81 — 0x4005_2000 82 看门狗(WDOG) 0x4005_3000 83 — 0x4005_4000 84 — 0x4005_5000 85 — 0x4005_6000 86 — 0x4005_7000 87 — 0x4005_8000 88 — 0x4005_9000 89 — 0x4005_A000 90 — 0x4005_B000 91 — 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 102 Freescale Semiconductor, Inc. 第 4 章 存储器映像 表 4-2. 外设桥 0 插槽分配 (继续) 系统 32 位基地址 插槽编号 0x4005_C000 92 — 0x4005_D000 93 — 0x4005_E000 94 — 0x4005_F000 95 — 0x4006_0000 96 — 0x4006_1000 97 — 0x4006_2000 98 — 0x4006_3000 99 — 0x4006_4000 100 内部时钟源(ICS) 0x4006_5000 101 系统振荡器(OSC) 0x4006_6000 102 I2C0 0x4006_7000 103 I2C1 0x4006_8000 104 — 0x4006_9000 105 — 0x4006_A000 106 通用异步收发器 0 (UART0) 模块 0x4006_B000 107 通用异步收发器 1 (UART1) 0x4006_C000 108 通用异步收发器 2 (UART2) 0x4006_D000 109 — 0x4006_E000 110 — 0x4006_F000 111 — 0x4007_0000 112 — 0x4007_1000 113 — 0x4007_2000 114 — 0x4007_3000 115 模拟比较器 0 (ACMP0) 0x4007_4000 116 模拟比较器 1 (ACMP1) 0x4007_5000 117 — 0x4007_6000 118 串行外设接口 0 (SPI0) 0x4007_7000 119 串行外设接口 1 (SPI1) 0x4007_8000 120 — 0x4007_9000 121 键盘中断 0 (KBI0) 0x4007_A000 122 键盘中断 1 (KBI1) 0x4007_B000 123 — 0x4007_C000 124 — 0x4007_D000 125 电源管理控制器(PMC) 0x4007_E000 126 — 0x4007_F000 127 — 0x400F_F000 128 GPIO 控制器 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 103 专用外设总线(PPB)存储器映像 4.7 专用外设总线(PPB)存储器映像 PPB 是已定义 ARM 总线架构的一部分,提供对选择处理器-本地模块的访问。这些 资源仅可从内核访问;其他系统主机无法访问。 表 4-3. PPB 存储器映像 系统 32 位地址范围 资源 0xE000_0000–0xE000_DFFF 保留位 0xE000_E000–0xE000_EFFF 系统控制空间(SCS) 0xE000_F000–0xE00F_EFFF 保留 0xE00F_F000–0xE00F_FFFF 内核 ROM 空间(CRS) 更多范围详情 资源 0xE000_E000–0xE000_E00F 保留位 0xE000_E010–0xE000_E0FF SysTick 0xE000_E100–0xE000_ECFF NVIC 0xE000_ED00–0xE000_ED8F 系统控制数据块 0xE000_ED90–0xE000_EDEF 保留位 0xE000_EDF0–0xE000_EEFF 调试 0xE000_EF00–0xE000_EFFF 保留 KEA128 子系列参考手册, Rev. 2, July 2014 104 Freescale Semiconductor, Inc. 第5章 时钟分布 5.1 简介 本章介绍该器件的时钟架构以及时钟概述,并提供术语部分。 Cortex M0+位于同步内核平台上,可对处理器和总线主机、Flash 和外设时钟进行独 立配置。 ICS 模块被用于生成主时钟。由 ICS 模块来选择某个时钟源(内部基准、外部晶体 或外部时钟信号)产生系统时钟源。 5.2 编程模型 系统时钟源的选择和多路复用通过 ICS 模块 控制和配置。该系统的时钟分频器设 置和模块时钟选通通过 SIM 模块 配置。有关寄存器和位的详细说明,请参见相关 部分。 5.3 器件时钟连接示意图 该器件包含下列片上时钟源: • 内部时钟源(ICS)模块:向外设提供总线时钟和其他基准时钟的主时钟源发生器 • 系统振荡器(OSC)模块:向内部时钟源(ICS)、实时时钟计数器时钟模块(RTC)和 其他 MCU 子系统提供基准时钟的系统振荡器 • 低功耗振荡器(LPO)模块:向 RTC 和 WDOG 提供 1 kHz 基准时钟的片上低功耗 振荡器 图 5-1 显示的是来自 ICS 模块和 OSC 模块的时钟如何分配给微控制器的其他功能 单元。微控制器中的某些模块具有可选时钟输入。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 105 时钟定义 下列系统振荡器 、ICS 和 SIM 模块的寄存器控制多路复用器、分频器和时钟脉冲 门,如图所示: 表 5-1. 控制多路复用器、分频器和时钟脉冲门的寄存器 OSC ICS SIM 复用器 OSC_CR ICS_C1 SIM_SOPT 分频器 — ICS_C2 SIM_CLKDIV 时钟门控 OSC_CR ICS_C1 SIM_SCGC SIM ICS CG ICSIRCLK CG RTC / WDOG CG FTM DIV3 CG FTM / PWT DIV1 CG 内核/系统时钟 CG 总线/Flash时钟 CG RTC/WDOG/ADC/MSCAN ICSFFCLK 37.5 kHz IRC FLL IREFS BDIV ICSFLLCLK ICSOUTCLK CLKS DIV2 RDIV CLK_GEN 系统振荡器 EXTAL XTAL OSCCLK OSC 逻辑 OSCERCLK XTAL_CLK OSCOS PMC 1 kHz LPO LPOCLK RTC / WDOG CG — 时钟脉冲门 注释:有关在何处使用这些时钟的详细信息,请参见后续章节。 图 5-1. 时钟示意图 5.4 时钟定义 下表说明的是图 5-1 中的时钟。 表 5-2. 时钟定义 时钟名称 说明 内核时钟 由 DIV1 分频的 ICSOUTCLK,为 ARM Cortex-M0+内核提供时钟。它是 CPU HCLK 平台时钟 由 DIV1 分频的 ICSOUTCLK,为交叉开关和 NVIC 提供时钟。它是自由运行的 FCLK 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 106 Freescale Semiconductor, Inc. 第 5 章 时钟分布 表 5-2. 时钟定义 (继续) 时钟名称 说明 系统时钟 由 DIV1 分频的 ICSOUTCLK,直接为总线主机提供时钟 总线时钟 由 DIV2 分频的系统时钟,为总线从机和外设提供时钟 Flash 时钟 由 DIV2 分频的系统时钟,为 Flash 存储器模块提供时钟。它与该器件中的总线时钟相同 定时器时钟 由 DIV3 分频的 ICSOUTCLK,为 FTM 和 PWT 模块提供时钟 调试时钟 调试逻辑时钟。就该器件而言,它来源于平台时钟 SWD 时钟 DAP 接口时钟。SWD 时钟通常由外部调试器驱动,且完全与内核时钟和平台时钟异步 ICSIRCLK 内部 32 kHz IRC 基准时钟的 ICS 输出。ICSIRCLK 可作为 RTC 或 WDOG 模块的时钟源 ICSOUTCLK IRC、ICSFLLCLK 或 ICS 外部基准时钟的 ICS 输出,是内核、系统、总线和 Flash 时钟的时钟 源 ICSFLLCLK FLL 的输出,FLL 将频率锁定为 1280 乘以内部或外部基准频率 ICSFFCLK 固定频率时钟的 ICS 输出。ICSFFCLK 可作为 FTM 模块的时钟源。ICSFFCLK 的频率由 ICS 的设置决定 OSCCLK 内部振荡器的系统振荡器输出,或由 EXTAL 直接提供时钟源。用作 ICS 外部基准时钟 OSCERCLK 由 OSCCLK 提供时钟源的系统振荡器输出,可作为 MSCAN1、RTC、WDOG 或 ADC 模块的 时钟源 LPOCLK PMC 1 kHz 输出,LPOCLK 可作为 RTC 或 WDOG 模块的时钟源 1. 当 OSCERCLK 用作 MSCAN 时钟时,其频率不得超过 24 MHz 5.4.1 器件时钟汇总 下表提供有关片上时钟的更多信息。 表 5-3. 时钟汇总 时钟名称 Run 模式频率 时钟源 时钟禁用条件 内核时钟 最高 48 MHz ICSOUTCLK 时钟分 频器 在 Wait 和 Stop 模式下 平台时钟 最高 48 MHz ICSOUTCLK 时钟分 频器 在 Stop 模式下 系统时钟 最高 48 MHz ICSOUTCLK 时钟分 频器 在 Stop 模式下 定时器时钟 最高 48 MHz ICSOUTCLK 时钟分 频器 在 Stop 模式下 总线时钟 最高 24 MHz ICSOUTCLK 时钟分 频器 在 Stop 模式下 调试时钟 最高 24 MHz 来自平台时钟 调试未使能 SWD 时钟 高达 24 MHz SWD_CLK 引脚 外部时钟的输入,因此不会禁用。 Flash 时钟 最高 24 MHz ICSOUTCLK 时钟分 频器 在 Stop 模式下 31.25–39.0625 kHz IRC IRC ICS_C1[IRCLKEN]=0, 内部基准时钟 (ICSIRCLK) 或 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 107 时钟定义 表 5-3. 时钟汇总 (继续) 时钟名称 Run 模式频率 时钟源 时钟禁用条件 在 Stop 模式下且 ICS_C1[IREFSTEN]=0 外部基准时钟 DC 最高达到 48 MHz(旁路), 系统 OSC OSC_CR[OSCEN]=0, (OSCERCLK) 31.25–39.0625 kHz 或 或 在 Stop 模式下且 OSC_CR[OSCSTEN]=0 4–24 MHz(晶体) FLL 外部时钟 40-50 MHz (ICSFLLCLK) 系统 OSC 在 Stop 模式下, 或 IRC 或 FLL 未使能 ICS 固定频率时钟 (ICSFFCLK) LPOCLK 31.25–39.0625 kHz 系统 OSC 在 Stop 模式下 或 IRC 1 kHz PMC 在所有电源模式下都可用 5.4.2 时钟分布 下图显示的是时钟分布简化示意图 LPOCLK 1 kHz LPO EXTAL XTAL OSCCLK OSC ICSIRCLK TCLK0 TCLK1 TCLK2 ICSFFCLK FTM0 FTM1 FTM2 PWT MsCAN WDG RTC ADC PIT CRC I2C0 I2C1 SPI0 SPI1 UART0 UART1 UART2 ACMP0 CPU NVIC AWIC DAP RAM FLASH FMC RGPIO TIMER_CLK BUS_CLK 32-kHz IRC FLL 调试 CORE_CLK ICSOUTCLK CLK_GEN PLAT_CLK SYS_CLK FLASH_CLK ICS AIPS 图 5-2. 时钟分布概要示意图 KEA128 子系列参考手册, Rev. 2, July 2014 108 Freescale Semiconductor, Inc. 第 5 章 时钟分布 注 此时钟分布图中未显示时钟分频和门控。 5.5 内部时钟源 该器件的内部时钟源如下: • 片上 RC 振荡器,范围为 31.25–39.0625 kHz,作为 FLL 输入的基准。 • 片上内部 1 kHz 振荡器,作为 RTC 和 WDOG 的低频低功耗源,符合特定用例 要求。 下表显示的是该器件的频率可用性: 表 5-4. 基于内部基准的可用 ICS 总线频率 ICSOUTCLK 基准 FEI(高范围) BDIV = 0 40 MHz ~ 50 MHz1 BDIV = 1 20 MHz ~ 25 MHz BDIV = 2 10 MHz ~ 12.5 MHz BDIV = 4 5 MHz ~ 6.25 MHz BDIV = 8 2.5 MHz ~ 3.125 MHz BDIV = 16 1.25 MHz ~ 1.5625 MHz BDIV = 32 625 kHz ~ 781.25 kHz BDIV = 64 312.5 kHz ~ 390.625 kHz BDIV = 128 156.25 kHz ~ 195.3125 kHz 1. 请仔细配置 SIM_CLKDIV 和 BDIV,确保任何时钟频率均不得高于 48 MHz。 5.6 外部时钟源 该器件支持下列两个外部时钟源: • 外部方波输入时钟,DC 最高达到 48 MHz。 • 外部晶振或谐振器: • 小范围:31.25–39.0625 kHz • 大范围:4–24 MHz 注 外部方波输入时钟仅在 OSC 模块设置为外部时钟模式下使 用(旁路)。凭借外部方波时钟源,用户可使用 FLL 被禁用 的 FBE 模式来实现更低功耗或精密时钟源。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 109 时钟选通 下表显示的是该器件采用 OSC 时钟作为时钟源时的可用频率。OSC 外部时钟模式 未列出。 表 5-5. 可用的 OSC 频率 ICS 配置 外部基准 RDIV FBE 31.25 kHz ~ 39.0625 kHz ̶ 4 MHz ~ 24 MHz ̶ 31.25 kHz ~ 39.0625 kHz RDIV = 1 62.5 kHz ~ 78.125 kHz RDIV = 2 125 kHz ~ 56.25 kHz RDIV = 4 250 kHz ~ 312.5 kHz RDIV = 8 500 kHz ~ 625 kHz RDIV = 16 1 MHz ~ 1.25 MHz RDIV = 32 FEE1 2 MHz ~ 2.5 MHz RDIV = 64 4 MHz ~ 5 MHz RDIV = 128 8 MHz ~ 10 MHz RDIV = 256 16 MHz ~ 20 MHz RDIV = 512 1. 在 FEE 模式下,FLL 输出频率 = OSC/RDIV *1280。仔细选择 OSC 和 RDIV,确保将 FLL 输出频率保持在限定内。 5.7 时钟选通 每个模块的时钟都可通过配置系统时钟选通控制寄存器 (SIM_SCGC) 单独地实现 开/关的选通。进行模块初始化之前,配置系统时钟选通控制寄存器 (SIM_SCGC) 中 相应位以使能时钟。关闭时钟前,务必禁用该模块。 当外设的时钟被关闭的时候,任何通过总线对这个外设进行的访问都会产生错误而 终止。 5.8 模块时钟 下表汇总与各模块相关的时钟。 表 5-6. 模块时钟 模块 总线接口时钟 内部时钟 I/O 接口时钟 内核模块 ARM Cortex-M0+内核 平台时钟 内核时钟 — NVIC 平台时钟 — — DAP 平台时钟 — SWD_CLK 系统模块 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 110 Freescale Semiconductor, Inc. 第 5 章 时钟分布 表 5-6. 模块时钟 (继续) 模块 总线接口时钟 内部时钟 I/O 接口时钟 端口控制 总线时钟 — — 交叉开关 平台时钟 — — 外设桥 系统时钟 总线时钟 — PMC、SIM 总线时钟 LPOCLK — MCM 平台时钟 — — CRC 总线时钟 — — WDOG 定时器 总线时钟 总线时钟 — LPOCLK ICSIRCLK OSCERCLK 时钟 ICS ICSOUTCLK 总线时钟 — ICSFLLCLK ICSIRCLK OSCERCLK OSC OSCERCLK 总线时钟 — 存储器和存储器接口 Flash 控制器 系统时钟 — — Flash 存储器 Flash 时钟 — — SRAM 平台时钟 — — 总线时钟 — 模拟 ADC 总线时钟 OSCERCLK ADACK ACMP0 总线时钟 — — ACMP1 总线时钟 — — 定时器 PIT 总线时钟 — — PWT 定时器时钟 — TCLK0/1/2 FTM0 定时器时钟 定时器时钟 TCLK0/1/2 ICSFFCLK FTM1 定时器时钟 定时器时钟 FTM2 定时器时钟 定时器时钟 RTC 总线时钟 TCLK0/1/2 ICSFFCLK TCLK0/1/2 ICSFFCLK 总线时钟 RTC_CLKOUT LPOCLK ICSIRCLK OSCERCLK 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 111 模块时钟 表 5-6. 模块时钟 (继续) 模块 总线接口时钟 内部时钟 I/O 接口时钟 通信接口 SPI0 总线时钟 — SPI0_SCK SPI1 总线时钟 — SPI1_SCK I2C0 总线时钟 — I2C0_SCL I2C1 总线时钟 — I2C1_SCL UART0/SCI0 总线时钟 — — UART1/SCI1 总线时钟 — — UART2/SCI2 总线时钟 — — MSCAN 总线时钟 OSCERCLK1 — 人机接口 GPIO 系统时钟 — — KBI0 总线时钟 — — KBI1 总线时钟 — — 1. OSCERCLK 用作 MSCAN 时钟时,其频率不得高于 24 MHz 5.8.1 FTM 和 PWT 计时 FTM 模块和 PWT 模块的计数器具有可选时钟,如下图所示。TCLK0 TCLK1 和 TCLK2 是定时器的可选外部时钟输入。 注 如果选择 TCLK0、TCLK1 或 TCLK2 作为 FTM 或 PWT 的 计数器时钟,则仍然需要使用片上定时器时钟 (TIMER_CLK)来同步计数器结果。而且片上定时器时钟 (TIMER_CLK)必须至少比来自 TCLK0、TCLK1 或 TCLK2 的外部时钟快 4 倍。 KEA128 子系列参考手册, Rev. 2, July 2014 112 Freescale Semiconductor, Inc. 第 5 章 时钟分布 ICSIRCLK ICSFLLCLK DIV3 TIMER_CLK OSCERCLK FTM0时钟 ICSFFCLK TCLK0 TCLK1 TCLK2 SIM_PINSEL0[FTM0CLKPS] FTM0_SC[CLKS] FTM1时钟 SIM_PINSEL0[FTM1CLKPS] FTM1_SC[CLKS] FTM2时钟 SIM_PINSEL0[FTM2CLKPS] FTM2_SC[CLKS] PWT时钟 SIM_PINSEL0[PWTCLKPS] PWT_R1[PCLKS] 图 5-3. FTM 和 PWT 时钟生成 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 113 模块时钟 KEA128 子系列参考手册, Rev. 2, July 2014 114 Freescale Semiconductor, Inc. 第6章 复位与引导 6.1 简介 该 MCU 支持下列复位源: 表 6-1. 复位源 复位源 说明 POR 复位 • 上电复位(POR) 系统复位 • • • • • • • • 外部引脚复位(PIN) 低压检测(LVD) WDOG 定时器 ICS 时钟丢失(LOC)复位 Stop 模式应答错误(SACKERR) 软件复位(SW) 死锁复位(LOCKUP) MDM DAP 系统复位 每个系统复位源在系统复位状态和 ID 寄存器 (SIM_SRSID) 中都有相应的位。 MCU 在功能模式下可以退出或复位,此时 CPU 处于执行代码或者调试挂起的状态。 MCU 有多种引导选项可进行配置。更多详情,请参见引导 章节。 6.2 复位 本节讨论基本复位机制和复位源。某些能导致复位的模块可以通过配置引起中断来 代替复位。更多信息,请参考独立的外设章节。 6.2.1 上电复位(POR) MCU 初次上电或电源电压下降到低于上电复位电压电平(VPOR)时,POR 电路将产 生 POR 复位条件。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 115 复位 随着供电电压升高,LVD 电路将 MCU 保持在复位状态直至电源超过 LVD 最低阈 值 (VLVDL)。系统复位状态和 ID 寄存器 (SIM_SRSID) 的 POR 和 LVD 字段 (SIM_SRSID[POR]和 SIM_SRSID[LVD])在 POR 之后置位。 6.2.2 系统复位源 复位 MCU 提供一种从已知的初始条件开始处理的方法。系统复位开始时,片上稳 压器处于完全稳压状态,系统时钟来源于内部基准时钟。当处理器退出复位时将执 行以下操作: • 从向量表偏移 0 处读取 SP(SP_main)初始值 • 从向量表偏移 4 处读取程序计数器(PC)初始值 • 链接寄存器(LR)设置为 0xFFFF_FFFF。 片上外设模块禁用且非模拟 I/O 引脚初始配置为禁用(SWD_DIO/SWD_CLK、NMI 和 RESET引脚可根据系统选项寄存器 0 (SIM_SOPT0) 的设置在系统复位后使能的 情况除外)。具有模拟功能的引脚在复位后默认为模拟功能。 6.2.2.1 外部引脚复位(RESET) 该引脚具有内部上拉电阻。RESET 可将器件从任意模式唤醒。 POR 复位后,PTA5 默认功能为 RESET。必须对 SIM_SOPT0[RSTPE]进行编程以使 能其他功能。该字段清零后,此引脚可用作 PTA5 或其他替代功能。 6.2.2.1.1 复位引脚滤波器 RESET/IRQ 引脚滤波器支持用 1 kHz LPO 时钟和总线时钟进行滤波。它可用作简 单的低通滤波器,从而过滤由 RESET/IRQ 引脚产生的毛刺。 毛刺宽度阈值可根据端口滤波寄存器 0 (PORT_IOFLT0)来调节,设置端口滤波寄存 器 0 (PORT_IOFLT0) 范围在 1~4096 BUSCLK(或 1~128 LPOCLK)之间。该可配 置去抖滤波器可替代板载外部模拟滤波器,并且能极大地提高 EMC 性能。设置端 口滤波寄存器 0 (PORT_IOFLT0) 可配置所有端口的滤波器。 6.2.2.2 低压检测(LVD) 该器件集成了一个可避免低压条件的系统,以便在电源电压发生变化期间保护存储 器内容和控制 MCU 系统状态。该系统由上电复位(POR)电路和 LVD 电路组成, LVD 具有用户可选的触发电压,可以是高电平(VLVDH)或低电平(VLVDL)。 KEA128 子系列参考手册, Rev. 2, July 2014 116 Freescale Semiconductor, Inc. 第 6 章 复位与引导 PMC_SPMSC1[LVDE]置位且 PMC_SPMSC2[LVDV]选定触发电压后,LVD 电路使 能。除非 PMC_SPMSC1[LVDSE]置位或处于串行线调试(SWD)模式,否则 LVD 一 进入 Stop 模式就会被禁用。若 PMC_SPMSC1[LVDSE]和 PMC_SPMSC1[LVDE]均 置位,在 LVD 使能的情况下,Stop 模式下的电流消耗将更高。 6.2.2.3 WDOG 定时器 WDOG 通过定期的软件通讯来对系统操作进行监控。此通讯一般被称为处理(或刷 新)WDOG。如果此周期性刷新没有发生,则 WDOG 将产生一个系统复位的事件。 WDOG 复位会使 SIM_SRSID[WDOG]置位。 6.2.2.4 ICS 时钟丢失(LOC) 该芯片上的 ICS 支持带复位功能的外部基准时钟监控器。 在 FBE 或 FEE 模式下,如将 1 写入 ICS_C4[CME],则时钟监控器使能。若外部基 准频率下降到低于某个特定频率(比如:floc_high 或 floc_low,具体取决于 OSC_CR[RANGE],则 MCU 将复位。SIM_SRSID[LOC]将置位以显示出错误。 在 FBILP 模式,FLL 不启用,因此即便将 1 写入 ICS_C4[CME],外部基准时钟监 视器也不会运行。 外部基准时钟监控器将 FLL 用作内部基准时钟。FLL 必须在 ICS_C4[CME]置位前 能够工作。 6.2.2.5 Stop 模式应答错误(SACKERR) 在内核试图进入 Stop 模式时,在 1025 个 1kHz LPO 时钟周期内,仍然有外设模块 没有对该模式进行响应,则会产生该复位。 如果发生错误条件,模块对进入 Stop 模式可能不会作出应答。该错误可能是由模块 的外部时钟输入故障引起的。 6.2.2.6 软件复位(SW) 通过设置 NVIC 应用中断及复位控制寄存器中的 SYSRESETREQ 字段可以强制使 设备产生软件复位。 (有关寄存器字段的完整说明,尤其是 VECTKEY 字段的要求, 请参见 ARM 的 NVIC 文档)。设置 SYSRESETREQ 可产生软件复位请求。软件复 位对除调试模块以外的所有主要模块强制执行系统复位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 117 复位 6.2.2.7 死锁复位(LOCKUP) LOCKUP 可立即表明内核出现严重的软件错误。这是激活处理器内置系统状态保 护硬件而产生的不可恢复的异常进而内核被锁定的结果。 LOCKUP 条件可导致系统复位,也可导致 SIM_SRSID[LOCKUP]置位。 6.2.2.8 MDM-AP 系统复位请求 设置 MDM-AP 控制寄存器中的“系统复位请求”字段产生系统复位。这是通过 SWD 接口进行复位的主要方法。在清除此位前系统一直保持复位状态。 设置 MDM-AP 控制寄存器中的“内核保持复位”字段,将内核保持在复位状态,而系 统剩余部分退出复位状态。 6.2.3 MCU 复位 MCU 产生各种复位来复位不同模块。 6.2.3.1 仅 POR “仅 POR 复位”仅由 POR 复位源产生。它复位 PMC 和 RTC。 “仅 POR 复位”还会产生所有其他的复位类型。 6.2.3.2 芯片 POR “芯片 POR”由 POR 和 LVD 复位源产生。它复位“复位引脚滤波器”寄存器和部分 SIM 和 ICS 的寄存器。 “芯片 POR”还能导致芯片复位(包括“早期芯片复位”)产生。 6.2.3.3 早期芯片复位 “早期芯片复位”在所有复位源上都产生。它仅复位 Flash 存储器模块和 ARM 平台。 它在 Flash 存储器开始初始化之前撤除(“早于”芯片复位撤除)。 KEA128 子系列参考手册, Rev. 2, July 2014 118 Freescale Semiconductor, Inc. 第 6 章 复位与引导 6.2.3.4 芯片复位 “芯片复位”在所有复位源上都产生,并且仅在 RESET 引脚撤除后才撤除。它复位剩 余的模块(未由其他复位类型复位的模块)。 6.3 引导 本小节介绍引导顺序,包括来源和选项。 引导过程自动加载某些配置信息,如存在工厂编程 Flash 位置中的时钟调整值。 6.3.1 引导源 CM0+内核加入对可配置向量表偏移寄存器(VTOR1 )的支持,可重新定位中断向量 表。此器件支持从内部闪存和 RAM 引导。 该器件支持从复位向量位于地址 0x0(初始 SP_main)、0x4(初始 PC)的内部Flash 引导,以及从中断向量表重定位至 RAM 的 RAM 引导。 6.3.2 引导序列 上电时,片上稳压器将系统保持在 POR 状态,直到输入电源电压高于 POR 阈值。 系统持续处于该静态,直到内部稳压电源达到 LVD 所决定的安全操作电压。复位 控制器逻辑随后执行以下序列以退出复位。 1. 系统复位遵循一定的内部逻辑。RESET 引脚被驱动至输出低电平(约 4.2 µs), 并且 ICS 按默认配置使能。 2. 释放 RESET 引脚。如果 RESET 引脚的电平继续为有效值(表示 RESET 引脚上 升时间缓慢或外部驱动低电平),则系统继续保持在复位状态。一旦检测到 RESET 引脚处于高电平,内核时钟使能且系统解除复位状态。 3. NVM 开始内部初始化。Flash 控制器解除复位状态并开始执行初始化操作,而 内核在 Flash 初始化完成之前依然保持停止状态。 4. Flash 初始化完成(16 μs)后,内核设置堆栈、程序计数器(PC)和链接寄存器 (LR)。处理器从向量表偏移 0 读取 SP(SP_main)初始值。内核从向量表偏移 4 读取 PC 初始值。LR 设为 0xFFFF_FFFF。CPU 在 PC 位置开始执行。 后续系统复位遵循相同的复位流程。 1. VTOR:指的是 ARMv6-M 架构参考手册中的向量表偏移寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 119 引导 KEA128 子系列参考手册, Rev. 2, July 2014 120 Freescale Semiconductor, Inc. 第7章 电源管理 7.1 简介 本章介绍多种芯片电源模式以及各模块在这些模式下的功能。 7.2 功耗模式 电源管理控制器(PMC)为用户提供多种功耗选项。支持各种工作模式,来允许用户 针对所需的功能等级优化功耗。 该器件支持 Run、Wait 和 Stop 三种模式,无论是不同的功耗水平还是功能要求,客 户都能轻松使用。所有模式下都能保持 I/O 状态。 • Run 模式—CPU 时钟全速运行,内部电源处于全稳压状态。 • Wait 模式—关断 CPU 以降低功耗;此时系统时钟和总线时钟依然运行,保持完 全稳压状态。 • Stop 模式—可选 LVD 使能,稳压器处于待机状态。 三种工作模式为:Run、Wait 和 Stop。WFI 指令激活芯片的 Wait 和 Stop 模式。 表 7-1. 芯片功率模式 功耗模式 说明 内核模式 一般恢复方法 正常运行 允许芯片工作在最高性能下。复位后的默认状态;片上稳压器开 启。 运行 — 通过 WFI 指令实现 允许外设工作,同时让内核处于睡眠模式,可降低功耗。NVIC 正常待机 依然监测中断;继续提供外设时钟。 睡眠 中断 通过 WFI 指令实现 将芯片置于静态。最低功耗模式保持全部寄存器值,并保留 正常停止 LVD 保护功能(可选)。NVIC 禁用;使用 AWIC 从中断唤醒; 外设时钟停止。 深度睡眠 中断 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 121 进入和退出低功耗模式 7.3 进入和退出低功耗模式 芯片通过 WFI 指令进入 Wait 和 Stop 模式。处理器通过中断退出低功耗模式。 注 WFE 指令可能会对进入低功耗模式产生副作用,但这并非 其预期用途。有关 WFE 指令的更多信息,请参见 ARM 文 档。 7.4 低功耗模式下的模块操作 下表说明了该芯片处于各低功耗模式时每个模块的功能。其标准特性如表所示,其 中包括某些例外情况。 表 7-2. 低功耗模式下的模块操作 模块 运行 等待 停止 内核模块 CPU 开启 待机 待机 NVIC 开启 开启 待机 完全稳压 完全稳压 宽松稳压 WDOG 开启 开启 可选开启 LVD 开启 开启 可选开启 CRC 开启 开启 待机 系统模块 PMC 时钟 ICS 开启 开启 可选开启 OSC 开启 开启 可选开启 LPO 开启 开启 始终开启 开启 待机 存储器 Flash RAM 开启 开启 待机 1 待机 定时器 FTM 开启 开启 待机 PIT 开启 开启 待机 PWT 开启 开启 待机 RTC 开启 开启 可选开启 模拟 ADC 开启 开启 可选开启 ACMP 开启 开启 可选开启 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 122 Freescale Semiconductor, Inc. 第 7 章 电源管理 表 7-2. 低功耗模式下的模块操作 (继续) 模块 运行 等待 停止 通信接口 UART 开启 开启 待机 2 SPI 开启 开启 待机 3 IIC 开启 开启 待机 4 MSCAN 开启 开启 待机 2 人机接口 KBI 开启 开启 待机 5 IRQ 开启 开启 待机 5 I/O 开启 开启 状态保持 1. SRAM 使能信号保持在低电平时,禁用内部时钟信号并屏蔽地址和数据输入;芯片中的 RAM 时钟可在 Wait 模式下处于激活 状态。 2. 支持 Stop 模式下的边沿唤醒 3. 支持 Stop 模式下的从机模式接收和唤醒 4. 支持 Stop 模式下的地址匹配唤醒 5. 支持 Stop 模式下的引脚中断唤醒 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 123 低功耗模式下的模块操作 KEA128 子系列参考手册, Rev. 2, July 2014 124 Freescale Semiconductor, Inc. 第8章 加密 8.1 简介 本器件基于从 Flash 模块中选择的模式实施加密。下面的章节介绍 Flash 加密概述 和非 Flash 模块上加密影响的详细信息。 8.2 Flash 加密 Flash 模块根据 FTMRE_FSEC[SEC ]保持的状态为 MCU 提供加密信息。而 MCU 确认加密请求,并限制对 Flash 资源的访问。复位期间,Flash 模块使用从 Flash 配 置字段读取的加密字节对 Flash 安全寄存器 (FTMRE_FSEC) 进行初始化。 注 加密特性仅适用于外部访问;CPU 对 Flash 的访问不受 Flash 安全寄存器 (FTMRE_FSEC) 状态的影响。 在未加密状态中,编程接口支持来自调试端口(SWD)或用户执行代码的所有 Flash 命令。当 Flash 受加密保护时(FTMRE_FSEC[SEC ] = 00、01 或 11),仅允许编程 器接口执行批量擦除操作。此外,在该模式下,调试端口无法访问存储器位置。 8.3 与其他模块之间的安全性交互 系统通过 Flash 加密设置确定可用资源。下面的章节介绍模块和 Flash 加密设置之 间的交互或 Flash 加密对非 Flash 数据块的影响。 8.3.1 与调试之间的加密交互 当 Flash 处于加密状态时,SWD 端口无法访问 MCU 的存储器资源。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 125 与其他模块之间的安全性交互 虽然大部分调试功能被禁用,但是调试器可以写 MDM-AP 控制寄存器的“FLASH 整 体擦除进度”字段以触发整体擦除(擦除所有数据块)命令。即使某些存储器位置受 保护,也能通过调试器进行整体擦除。 KEA128 子系列参考手册, Rev. 2, July 2014 126 Freescale Semiconductor, Inc. 第9章 调试 9.1 简介 该器件基于 ARM CoreSight 架构进行调试,配置为在引脚分配和其他可用资源所允 许的最大限度内提供最大的灵活性。 它通过外部调试器接口、基本运行/停止控制加上 2 个断点和 2 个观察点,提供对寄 存器和存储器的访问。 该器件仅支持一个调试接口,即串行线调试(SWD)。 9.2 调试端口引脚说明 上电复位(POR)后,调试端口引脚默认为其 SWD 功能。 表 9-1. 串行线调试引脚说明 引脚名称 类型 SWD_CLK 输入 SWD_DIO 输入/输出 说明 串行线时钟。该引脚在串行线调试模式下作为调试逻辑的时钟。 1 串行线调试数据输入/输出。外部调试工具通过 SWD_DIO 引脚进行通信和 器件控制。此引脚在内部上拉。 1. 该器件不支持片上下拉;SWD_CLK 引脚仅支持由 PTAPE0控制的上拉,完全支持 SWD 协议需要外部下拉电阻。 9.3 SWD 状态和控制寄存器 通过 ARM 调试访问端口(DAP),调试器可访问以寄存器形式在 DAP 总线(如图 9-1 所示)上实施的状态和控制元件。这类寄存器针对低功耗模式恢复和典型运行-控 制场景提供额外的控制和状态。凭借状态寄存器位,调试器无需通过交叉开关发起 总线操作即能获得内核的已更新状态,从而确保调试期间更少的干扰。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 127 SWD 状态和控制寄存器 该器件上包括了辅助调试模块(MDM),其中包含 DAP 控制和状态寄存器。值得注 意的是,这些 DAP 控制和状态寄存器并非在系统存储器映像中进行地址映射,并且 只能通过使用 SWD 的调试访问端口进行访问。调试访问端口 1 的 MDM-AP 的可 访问寄存器如下表所示。 表 9-2. MDM-AP 寄存器汇总 地址 寄存器 说明 0x0100_0000 状态 参见 MDM-AP 状态寄存器 0x0100_0004 控制 参见 MDM-AP 控制寄存器 0x0100_00FC IDR 只读识别寄存器,始终以 0x001C_0020 读取 DPACC APACC A[3:2] RnW 调试端口 0x0C 0x08 AP选择(SELECT) 数据[31:0] 数据[31:0] A[7:4] A[3:2] 访问端口 IDR 控制 参见控制和状态寄存器说明 SELECT[31:24] (APSEL)选择AP SELECT[7:4] (APBANKSEL)选择群组 APACC的A[3:2]选择群组内的 寄存器 AHB-AP SELECT[31:24] = 0x00选择AHB-AP 更多详情请参考ARM文档 0x3F 0x01 0x00 MDM -AP 状态 总线矩阵 请参见 ARM 调试接口 v5p1 附录。 RnW AHB访问端口 (AHB -AP) SW-DP 通用 调试端口 (DP) 内部总线 APSEL 解码 RnW 读取缓冲区(RDBUFF) 0x04 A[3:2] 控制/状态(CTRL/STAT) 调试端口ID寄存器(IDCODE) DP寄存器 0x00 数据[31:0] MDM-AP SELECT[31:24] = 0x01选择MDM-AP SELECT[7:4] = 0x0选择带状态和控制的群组 A[3:2] = 2’b00选择状态寄存器 A[3:2] = 2’b01选择控制寄存器 SELECT[7:4] = 0xF选择带IDR的群组 A[3:2] = 2’b11选择IDR寄存器 (IDR寄存器读取0x001C_0020) 图 9-1. MDM AP 寻址 KEA128 子系列参考手册, Rev. 2, July 2014 128 Freescale Semiconductor, Inc. 第 9 章 调试 9.3.1 MDM-AP 状态寄存器 表 9-3. MDM-AP 状态寄存器分配 位 名称 说明 0 Flash 整体擦除应答 Flash 整体擦除应答字段在 POR 复位后清零。通过对 MDM AP 控制寄存器 的“正在执行 Flash 整体擦除”字段执行写操作而发出整体擦除命令时该字段 也会清零。在 Flash 控制逻辑开始了整体擦除操作后,将设置该 Flash 整体 擦除应答。 1 Flash 就绪 表示 Flash 存储器已完成初始化,调试器可配置,即使调试器继续保持系统 在复位状态。 0 Flash 正在初始化。 1 Flash 就绪。 2 系统加密 表示加密状态。处于加密状态时,调试器无法访问系统总线或任何存储器映 射外设。该字段表示器件锁定且无法进行系统总线访问。 注: 该位在 Flash 就绪位置位前无效。 0 器件未处于加密状态。 1 器件处于加密状态。 3 系统复位 表示系统复位状态。 0 系统已处于复位状态。 1 系统未处于复位状态。 4 保留 5 – 15 16 保留供将来使用 始终读取 0。 内核暂停 表示内核已进入调试暂停模式 0 内核未暂停。 1 内核已暂停。 17 内核 SLEEPDEEP SLEEPDEEP=1 表示内核已进入 Stop 模式。 18 内核 SLEEPING SLEEPING=1 表示内核已进入 Wait 模式。 19 – 31 保留供将来使用 始终读取 0。 9.3.2 MDM-AP 控制寄存器 表 9-4. MDM-AP 控制寄存器分配 位 加密 1 名称 说明 0 正在执行 Flash 整体擦除 是 置位以导致整体擦除。批量擦除操作后由硬件进行的清零完成。 1 调试禁用 否 置位禁用调试。清零允许调试操作。置位时,它覆盖 DHCSR 中的 C_DEBUGEN 字段 2 并强制禁用调试逻辑。 2 调试请求 否 置位强制暂停内核。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 129 调试复位 表 9-4. MDM-AP 控制寄存器分配 (继续) 位 加密 1 名称 说明 若内核处于 Wait 或 Stop 模式,该字段可用于唤醒内核并转变到暂停状 态。 3 系统复位请求 是 置位强制进行系统复位。系统在该字段清零前都保持在复位状态。该 位置位后,RESET 引脚不反映系统复位的状态并且不保持低电平。 4 内核保持 否 配置字段,可控制系统复位序列结束时的内核操作。 0 正常运行—在系统复位序列结束时,解除内核与系统的其他部分的复 位。 1 挂起运行—在复位序列结束后将内核保持在复位状态。一旦系统进入 挂起状态,该控制位清零可立即解除内核的复位状态并且 CPU 开始工 作。 5– 31 保留供将来使用 否 1. 加密状态下可用的命令 2. DHCSR:指的是 ARMv6-M 架构参考手册中的“调试暂停控制和状态寄存器”。 9.4 调试复位 调试系统将收到以下复位源: • 系统 POR 复位 相反,调试系统能够使用以下机制产生系统复位: • DAP 控制寄存器中的系统复位,允许调试器保持系统在复位状态。 • 将 1 写入 NVIC 应用中断和复位控制寄存器中的 SYSRESETREQ 字段 • DAP 控制寄存器中的系统复位,允许调试器保持内核在复位状态。 9.5 低功耗模式下的调试 在调试模块保持为静态或掉电状态的低功耗模式下,调试器无法在低功耗模式时间 段内采集任何调试数据。 • 如果调试器保持为静态,那么只要退出低功耗模式且系统返回到某个具有主动 调试的状态,调试器端口就会恢复所有功能。 • 如果调试器逻辑处于掉电状态,那么调试器在恢复时就会复位并且在退出低功 耗模式时必须重新配置。 主动调试将防止芯片进入低功耗模式。如果芯片已处于低功耗模式,那么来自 MDM-AP 控制寄存器的调试请求将从低功耗模式唤醒该芯片。 KEA128 子系列参考手册, Rev. 2, July 2014 130 Freescale Semiconductor, Inc. 第 9 章 调试 9.6 调试和加密 使能 Flash 加密后,调试端口的功能将受限,以防对安全数据的不当利用。在加密 状态下,调试器仍然可以访问状态寄存器,并且可以确定该器件当前的加密状态。 如果器件处于加密状态,那么调试器仅可以执行整体擦除操作。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 131 调试和加密 KEA128 子系列参考手册, Rev. 2, July 2014 132 Freescale Semiconductor, Inc. 第 10 章 信号多路复用和信号说明 10.1 简介 为了优化小型封装的功能,引脚通过信号多路复用技术实现多种可用功能。本章说 明该器件的哪些信号在哪个外部引脚上多路复用。 引脚选择寄存器 0 (SIM_PINSEL0)和引脚选择寄存器 1 (SIM_PINSEL1)控制该外部 引脚上有哪些信号。有关特定多路复用引脚控制操作的详细信息,请参考该寄存器 的相关内容。 10.2 引脚分配 10.2.1 信号多路复用和引脚分配 下表显示的是各引脚上的信号以及这些引脚在本文档支持的器件上的位置。“端口 控制模块”负责选择每个引脚上的 ALT 功能。 注 VSS 与 VSSA 在内部相连。 VREFH 与 VDDA 在 64 引脚封装中内部相连。 PTB4、PTB5、PTD0、PTD1、PTE0、PTE1、PTH0 和 PTH1 用作输出时为大电流驱动引脚。 PTA2 和 PTA3 在用作输出时为有效的开漏引脚。 80 64 LQFP LQFP /QFP Pin Name 默认值 ALT0 ALT1 ALT2 ALT3 1 1 PTD1 禁用 PTD1 KBI0_P25 FTM2_CH3 SPI1_MOSI 2 2 PTD0 禁用 PTD0 KBI0_P24 FTM2_CH2 SPI1_SCK ALT4 ALT5 ALT6 ALT7 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 133 引脚分配 80 64 LQFP LQFP /QFP Pin Name ALT0 默认值 ALT1 ALT2 PWT_IN1 ALT3 ALT4 ALT5 ALT6 3 3 PTH7 禁用 PTH7 KBI1_P31 4 4 PTH6 禁用 PTH6 KBI1_P30 5 — PTH5 禁用 PTH5 KBI1_P29 6 5 PTE7 禁用 PTE7 KBI1_P7 TCLK2 FTM1_CH1 CAN0_TX 7 6 PTH2 禁用 PTH2 KBI1_P26 BUSOUT FTM1_CH0 CAN0_RX 8 7 VDD VDD 9 8 VDDA VDDA 10 — VREFH VREFH VREFH 11 9 VREFL VREFL VREFL 12 10 VSS/ VSSA VSS/ VSSA 13 11 PTB7 EXTAL PTB7 KBI0_P15 I2C0_SCL EXTAL 14 12 PTB6 XTAL PTB6 KBI0_P14 I2C0_SDA XTAL 15 13 PTI4 禁用 PTI4 IRQ 16 — PTI1 禁用 PTI1 IRQ UART2_TX 17 — PTI0 禁用 PTI0 IRQ UART2_RX 18 14 PTH1 禁用 PTH1 KBI1_P25 FTM2_CH1 19 15 PTH0 禁用 PTH0 KBI1_P24 FTM2_CH0 20 16 PTE6 禁用 PTE6 KBI1_P6 21 17 PTE5 禁用 PTE5 KBI1_P5 22 18 PTB5 禁用 PTB5 KBI0_P13 FTM2_CH5 SPI0_PCS ACMP1_OUT 23 19 PTB4 NMI_b PTB4 KBI0_P12 FTM2_CH4 SPI0_MISO ACMP1_IN2 24 20 PTC3 ADC0_SE11 PTC3 KBI0_P19 FTM2_CH3 ADC0_SE11 25 21 PTC2 ADC0_SE10 PTC2 KBI0_P18 FTM2_CH2 ADC0_SE10 26 22 PTD7 禁用 PTD7 KBI0_P31 UART2_TX 27 23 PTD6 禁用 PTD6 KBI0_P30 UART2_RX 28 24 PTD5 禁用 PTD5 KBI0_P29 PWT_IN0 29 — PTI6 禁用 PTI6 IRQ 30 — PTI5 禁用 PTI5 IRQ 31 25 PTC1 ADC0_SE9 PTC1 KBI0_P17 FTM2_CH1 ADC0_SE9 32 26 PTC0 ADC0_SE8 PTC0 KBI0_P16 FTM2_CH0 ADC0_SE8 33 — PTH4 禁用 PTH4 KBI1_P28 I2C1_SCL 34 — PTH3 禁用 PTH3 KBI1_P27 I2C1_SDA 35 27 PTF7 ADC0_SE15 PTF7 KBI1_P15 ADC0_SE15 36 28 PTF6 ADC0_SE14 PTF6 KBI1_P14 ADC0_SE14 37 29 PTF5 ADC0_SE13 PTF5 KBI1_P13 ADC0_SE13 38 30 PTF4 ADC0_SE12 PTF4 KBI1_P12 ADC0_SE12 39 31 PTB3 ADC0_SE7 PTB3 KBI0_P11 SPI0_MOSI FTM0_CH1 ADC0_SE7 40 32 PTB2 ADC0_SE6 PTB2 KBI0_P10 SPI0_SCK FTM0_CH0 ADC0_SE6 41 33 PTB1 ADC0_SE5 PTB1 KBI0_P9 UART0_TX 42 34 PTB0 ADC0_SE4 PTB0 KBI0_P8 UART0_RX ALT7 VDD VREFH VSSA VDDA VSS NMI_b ADC0_SE5 PWT_IN1 ADC0_SE4 KEA128 子系列参考手册, Rev. 2, July 2014 134 Freescale Semiconductor, Inc. 第 10 章 信号多路复用和信号说明 80 64 LQFP LQFP /QFP Pin Name ALT0 默认值 ALT1 ALT2 ALT3 ALT4 ALT5 ALT6 43 35 PTF3 禁用 PTF3 KBI1_P11 UART1_TX 44 36 PTF2 禁用 PTF2 KBI1_P10 UART1_RX 45 37 PTA7 ADC0_SE3 PTA7 KBI0_P7 FTM2_FLT2 ACMP1_IN1 ADC0_SE3 46 38 PTA6 ADC0_SE2 PTA6 KBI0_P6 FTM2_FLT1 ACMP1_IN0 ADC0_SE2 47 39 PTE4 禁用 PTE4 KBI1_P4 48 40 VSS VSS VSS 49 41 VDD VDD VDD 50 — PTG7 禁用 PTG7 KBI1_P23 FTM2_CH5 SPI1_PCS 51 — PTG6 禁用 PTG6 KBI1_P22 FTM2_CH4 SPI1_MISO 52 — PTG5 禁用 PTG5 KBI1_P21 FTM2_CH3 SPI1_MOSI 53 — PTG4 禁用 PTG4 KBI1_P20 FTM2_CH2 SPI1_SCK 54 42 PTF1 禁用 PTF1 KBI1_P9 FTM2_CH1 55 43 PTF0 禁用 PTF0 KBI1_P8 FTM2_CH0 56 44 PTD4 禁用 PTD4 KBI0_P28 57 45 PTD3 禁用 PTD3 KBI0_P27 SPI1_PCS 58 46 PTD2 禁用 PTD2 KBI0_P26 SPI1_MISO 59 47 PTA3 禁用 PTA3 KBI0_P3 UART0_TX I2C0_SCL 60 48 PTA2 禁用 PTA2 KBI0_P2 UART0_RX I2C0_SDA 61 49 PTA1 ADC0_SE1 PTA1 KBI0_P1 FTM0_CH1 I2C0_ 4WSDAOUT ACMP0_IN1 ADC0_SE1 62 50 PTA0 ADC0_SE0 PTA0 KBI0_P0 FTM0_CH0 I2C0_ 4WSCLOUT ACMP0_IN0 ADC0_SE0 63 51 PTC7 禁用 PTC7 KBI0_P23 UART1_TX CAN0_TX 64 52 PTC6 禁用 PTC6 KBI0_P22 UART1_RX CAN0_RX 65 — PTI3 禁用 PTI3 IRQ 66 — PTI2 禁用 PTI2 IRQ 67 53 PTE3 禁用 PTE3 KBI1_P3 SPI0_PCS 68 54 PTE2 禁用 PTE2 KBI1_P2 SPI0_MISO 69 — VSS VSS VSS 70 — VDD VDD VDD 71 55 PTG3 禁用 PTG3 KBI1_P19 72 56 PTG2 禁用 PTG2 KBI1_P18 73 57 PTG1 禁用 PTG1 KBI1_P17 74 58 PTG0 禁用 PTG0 KBI1_P16 75 59 PTE1 禁用 PTE1 KBI1_P1 SPI0_MOSI 76 60 PTE0 禁用 PTE0 KBI1_P0 SPI0_SCK 77 61 PTC5 禁用 PTC5 KBI0_P21 FTM1_CH1 78 62 PTC4 SWD_CLK PTC4 KBI0_P20 RTC_CLKOUT FTM1_CH0 ACMP0_IN2 79 63 PTA5 RESET_b PTA5 KBI0_P5 IRQ TCLK0 RESET_b 80 64 PTA4 SWD_DIO PTA4 KBI0_P4 ACMP0_OUT SWD_DIO ALT7 PWT_IN0 I2C1_SCL TCLK1 I2C1_SDA RTC_CLKOUT SWD_CLK KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 135 引脚分配 PTA4 PTA5 PTC4 PTC5 PTE0 PTE1 PTG0 PTG1 PTG2 PTG3 VDD VSS PTE2 PTE3 PTI2 PTI3 PTC6 PTC7 PTA0 PTA1 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 10.2.2 器件引脚分配 PTG7 VSS/VSSA 12 49 VDD PTB7 13 48 VSS PTB6 14 47 PTE4 PTI4 15 46 PTA6 PTI1 16 45 PTA7 PTI0 17 44 PTF2 PTH1 18 43 PTF3 PTH0 19 42 PTB0 PTE6 20 41 PTB1 40 50 PTB2 11 39 VREFL PTB3 PTG6 38 51 PTF4 10 37 VREFH PTF5 PTG5 36 52 PTF6 9 35 VDDA PTF7 PTG4 34 53 PTH3 8 33 VDD PTH4 PTF1 PTC0 54 32 7 31 PTH2 PTC1 PTF0 30 55 PTI5 6 29 PTE7 PTI6 PTD4 28 56 PTD5 PTH5 27 PTD3 PTD6 57 5 26 PTH6 PTD7 PTD2 25 58 4 PTC2 PTH7 24 PTA3 PTC3 59 3 23 2 PTB4 PTD0 22 PTA2 PTB5 60 21 1 PTE5 PTD1 图 10-1. 80 引脚 LQFP 封装 KEA128 子系列参考手册, Rev. 2, July 2014 136 Freescale Semiconductor, Inc. PTA4 PTA5 PTC4 PTC5 PTE0 PTE1 PTG0 PTG1 PTG2 PTG3 PTE2 PTE3 PTC6 PTC7 PTA0 PTA1 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 第 10 章 信号多路复用和信号说明 VREFL 9 40 VSS VSS/VSSA 10 39 PTE4 PTB7 11 38 PTA6 PTB6 12 37 PTA7 PTI4 13 36 PTF2 PTH1 14 35 PTF3 PTH0 15 34 PTB0 PTE6 16 33 PTB1 32 VDD PTB2 41 31 8 PTB3 VDDA/VREFH 30 PTF1 PTF4 42 29 7 PTF5 VDD 28 PTF0 PTF6 43 27 6 PTF7 PTH2 26 PTD4 PTC0 44 25 5 PTC1 PTE7 24 PTD3 PTD5 45 23 4 PTD6 PTH6 22 PTD2 PTD7 46 21 3 PTC2 PTH7 20 PTA3 PTC3 47 19 2 PTB4 PTD0 18 PTA2 PTB5 48 17 1 PTE5 PTD1 图 10-2. 64 引脚 LQFP 封装 10.3 模块信号描述表 下面的章节描述芯片级信号名称与模块章节中使用的信号名称关联。还简要介绍信 号功能和方向。 10.3.1 内核模块 表 10-1. SWD 信号说明 芯片信号名称 模块信号名称 SWD_DIO SWD_DIO 串行线调试数据输入/输出。外部调试工具通过 SWD_DIO 引脚进行 通信和器件控制。此引脚在内部上拉。 SWD_CLK SWD_CLK 串行线时钟。该引脚在串行线调试模式下作为调试逻辑的时钟。 1 I/O 说明 输入/输出 输入 1. 该器件不支持片上下拉;SWD_CLK 引脚仅支持由 PTAPE0控制的上拉,完全支持 SWD 协议需要外部下拉电阻。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 137 模块信号描述表 10.3.2 系统模块 表 10-2. 系统信号说明 芯片信号名称 模块信号名称 NMI — I/O 说明 I 非屏蔽中断 注: 如果相应引脚选择 NMI 功能,那么将 NMI 信号驱动至低电平会 强制生成非屏蔽中断。 RESET — 复位双向信号 I/O VDD — MCU 电源 I VSS — MCU 接地 I 10.3.3 时钟模块 表 10-3. OSC 信号说明 芯片信号名称 模块信号名称 EXTAL EXTAL XTAL XTAL 说明 I/O 外部时钟/振荡器输入 模拟输入 振荡器输出 模拟输出 10.3.4 模拟 表 10-4. ADC0 信号说明 芯片信号名称 模块信号名称 ADC0_SEn AD15-AD0 VDD/VREFH VSS/VREFL 说明 I/O 模拟通道输入 I VDDA/VREFH 模拟电源/基准电压源高电平 I VSSA/VREFL 模拟电源地/基准电压源低电平 I 表 10-5. ACMP0 信号说明 芯片信号名称 模块信号名称 ACMP0_INn ACMP0_IN[2:0] ACMP0_OUT ACMP0_OUT 说明 I/O 模拟电压输入 I 比较器输出 O KEA128 子系列参考手册, Rev. 2, July 2014 138 Freescale Semiconductor, Inc. 第 10 章 信号多路复用和信号说明 表 10-6. ACMP1 信号说明 芯片信号名称 模块信号名称 ACMP1_INn ACMP1_IN[2:0] ACMP1_OUT ACMP1_OUT 说明 I/O 模拟电压输入 I 比较器输出 O 10.3.5 定时器模块 表 10-7. FTM0 信号说明 芯片信号名称 模块信号名称 TCLKn EXTCLK FTM0_CH[1:0] CHn 说明 FTM 外部时钟 FTM 通道 I/O I I/O 表 10-8. FTM1 信号说明 芯片信号名称 模块信号名称 TCLKn EXTCLK FTM1_CH[1:0] CHn 说明 FTM 外部时钟 FTM 通道 I/O I I/O 表 10-9. FTM2 信号说明 芯片信号名称 模块信号名称 TCLKn EXTCLK 说明 FTM 外部时钟 FTM 通道 I/O I FTM2_CHn CHn FTM2_FLT1 FAULT1 故障输入(1) I/O I FTM2_FLT2 FAULT2 故障输入(2) I 表 10-10. RTC 信号说明 芯片信号名称 模块信号名称 RTC_CLKOUT RTCO 说明 I/O RTC 时钟输出 O 表 10-11. PWT 信号说明 芯片信号名称 模块信号名称 说明 I/O TCLKn ALTCLK PWT 备用外部时钟 O PWT_IN0 PWTIN[0] PWT 输入通道 0 I PWT_IN1 PWTIN[1] PWT 输入通道 1 I KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 139 模块信号描述表 10.3.6 通信接口 表 10-12. SPI0 信号说明 说明 I/O MISO 主机数据输入,从机数据输出 I/O SPI0_MOSI MOSI 主机数据输出,从机数据输入 I/O SPI0_SCK SPSCK SPI 串行时钟 I/O SPI0_PCS SS 从机选择 I/O 芯片信号名称 模块信号名称 SPI0_MISO 表 10-13. SPI1 信号说明 说明 I/O MISO 主机数据输入,从机数据输出 I/O SPI1_MOSI MOSI 主机数据输出,从机数据输入 I/O SPI1_SCK SPSCK SPI 串行时钟 I/O SPI1_PCS SS 从机选择 I/O 芯片信号名称 模块信号名称 SPI1_MISO 表 10-14. I2C0 信号说明 芯片信号名称 I2C0_SCL I2C0_SDA 说明 I/O SCL I2C 系统的双向串行时钟线路。 I/O SDA I2C 系统的双向串行数据线路。 I/O 模块信号名称 I2C0_ 4WSCLOUT 采用四线式接口配置的 I2C0 串行时钟线路输出 O I2C0_ 4WSDAOUT 采用四线式接口配置的 I2C0 串行数据线路输出 O 表 10-15. I2C1 信号说明 芯片信号名称 I2C1_SCL I2C1_SDA 说明 I/O SCL I2C 系统的双向串行时钟线路。 I/O SDA I2C 系统的双向串行数据线路。 I/O 模块信号名称 表 10-16. UART0 信号说明 说明 I/O TxD 发送数据 I/O RxD 接收数据 I 芯片信号名称 模块信号名称 UART0_TX UART0_RX KEA128 子系列参考手册, Rev. 2, July 2014 140 Freescale Semiconductor, Inc. 第 10 章 信号多路复用和信号说明 表 10-17. UART1 信号说明 说明 I/O TxD 发送数据 I/O RxD 接收数据 I 芯片信号名称 模块信号名称 UART1_TX UART1_RX 表 10-18. UART2 信号描述 说明 I/O TxD 发送数据 I/O RxD 接收数据 I 芯片信号名称 模块信号名称 UART2_TX UART2_RX 表 10-19. MSCAN 信号说明 说明 I/O 芯片信号名称 模块信号名称 CAN0_RX RXCAN 发送数据 I CAN0_TX TXCAN 接收数据 O 10.3.7 人机接口(HMI) 表 10-20. GPIO 信号说明 芯片信号名称 模块信号名称 PTA[7:0]1 PORTA7-PORTA0 说明 I/O 通用输入/输出 I/O PTB[7:0]1 PORTA15-PORTA8 通用输入/输出 I/O PTC[7:0]1 PORTA23-PORTA16 通用输入/输出 I/O PTD[7:0]1 PORTA31-PORTA24 通用输入/输出 I/O PTE[7:0]1 PORTB7-PORTB0 通用输入/输出 I/O PTF[7:0]1 PORTB15-PORTB8 通用输入/输出 I/O PTG[7:0]1 PORTB23-PORTB16 通用输入/输出 I/O PTH[7:0]1 PORTB31-PORTB24 通用输入/输出 I/O PTI[6:0]1 PORTC6-PORTC0 通用输入/输出 I/O 1. 可用 GPIO 引脚取决于特定封装。有关具体哪些 GPIO 信号可用,请参见“信号多路复用”部分。 表 10-21. KBI0 信号说明 芯片信号名称 模块信号名称 KBI0_Pn KBI0Pn 说明 I/O 键盘中断引脚,n 可以是 0 ~ 31 I/O KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 141 模块信号描述表 表 10-22. KBI1 信号说明 芯片信号名称 模块信号名称 KBI1_Pn KBI1Pn 说明 I/O 键盘中断引脚,n 可以是 0 ~ 31 I/O 表 10-23. IRQ 信号说明 芯片信号名称 模块信号名称 IRQ IRQ 说明 IRQ 输入 I/O I KEA128 子系列参考手册, Rev. 2, July 2014 142 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) 11.1 简介 该器件具有 9 组 I/O 端口,最多可支持 71 个通用 I/O 引脚。 并非所有器件都提供全部引脚。 很多 I/O 引脚都共用片上外设功能。外设模块的优先级高于 I/O,因此当启用外设 时,会禁用相关的 I/O 功能。 复位后,共用的外设功能被禁用,因此这些引脚通过并行 I/O 控制,但默认关联至 SWD_DIO、SWD_CLK、NMI 和 RESET 功能的 PTA4、PTA5、PTB4 和 PTC4 除 外。所有并行 I/O 都配置为高阻抗状态(Hi-Z)。每个引脚的控制功能配置如下: • 输入禁用(GPIOx_PIDR[PID] = 1), • 输出禁用(GPIOx_PDDR[PDD] = 0),以及 • 内部上拉禁用(PORT_PUE(0/1/2)[PTxPEn] = 0)。 此外,支持大电流驱动的并行 I/O 在复位后禁用(HDRVE = 0x00)。 以下三张图显示每个 I/O 引脚的结构。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 143 简介 PORT_PUE(0/1/2)[PTxPEn] GPIOx_PDDR[PDD] GPIOx_PDOR[PDO] GPIOx_PIDR[PID] 1 0(RESET/NMI除外) 0 去抖滤波器 PORT_IOFLT(0/1) CPU读取GPIOx_PDIR[PDI] 图 11-1. 普通 I/O 结构 PORT_PUE(0/1/2)[PTxPEn] GPIOx_PDDR[PDD] GPIOx_PDOR[PDO] GPIOx_PIDR[PID] CPU读取GPIOx_PDIR[PDI] 1 0(RESET/NMI除外) 去抖滤波器 PORT_IOFLT(0/1) 0 图 11-2. SDA(PTA2)/SCL(PTA3)结构 KEA128 子系列参考手册, Rev. 2, July 2014 144 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_PUE(0/1/2)[PTxPEn] GPIOx_PDDR[PDD] GPIOx_PDOR[PDO] GPIOx_PIDR[PID] 1 CPU读取GPIOx_PDIR[PDI] HDRVE 0(RESET/NMI除外) 去抖滤波器 PORT_IOFLT(0/1) 0 图 11-3. 大电流驱动 I/O 结构 11.2 端口数据和数据方向 并行 I/O 的读取和写入通过端口数据寄存器(GPIOx_PDIR/PDOR)实现。数据方向 (输入或输出)通过输入禁用寄存器(GPIOx_PIDR)和数据方向寄存器(GPIOx_PDDR) 进行控制。 复位后,所有并行 I/O 均默认为 Hi-Z 状态。必须配置端口数据方向寄存器 (GPIOx_PDDR)或输入禁用寄存器(GPIOx_PIDR)中的相应位以便进行输出或输入操 作。每个端口引脚都有一个输入禁用位和一个输出启用位。当 GPIOx_PIDR[PID] = 0 时,读取 GPIOx_PDIR[PDI]将返回对应引脚的输入值;当 GPIOx_PIDR[PID] = 1 时,读取 GPIOx_PDIR[PDI]将返回 0,但 RESET/NMI 除外。 注 当引脚用作输入功能时必须将对应引脚的 GPIOx_PDDR 清 零,以防冲突。如果同时设置 GPIOx_PDDR 和 GPIOx_PIDR 位,则读取 GPIOx_PDIR 将始终读取引脚状 态。 当外设模块或系统功能控制端口引脚时,即使外设对实际引脚的数据方向控制有更 高的优先级,数据方向寄存器位也仍然控制针对端口数据寄存器的读操作所返回的 内容。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 145 内部上拉使能 当针对某个引脚使能某个共用模拟功能时,这个引脚的数字功能都被禁用。对于任 何使能了共用的模拟功能的端口而言,对端口数据寄存器进行读操作将返回数值 0。 通常情况下,只要某个引脚由数字功能和模拟功能共用,那么模拟功能就具有这样 的优先级:在数字功能和模拟功能都使能的情况下,模拟功能将控制该引脚。 向端口数据寄存器写入有效数据的操作必须在设置相关端口引脚的输出使能位之前 完成。这样可确保该引脚不会写入错误的数据值。 11.3 内部上拉使能 通过设置上拉使能寄存器(PORT_PUE(0/1/2))中的相应位,可以使能对应引脚的内部 上拉电阻。如果此引脚通过并行 I/O 控制逻辑或任何共享外设功能被配置为输出, 那么无论对应的上拉使能寄存器位的状态如何,此引脚的内部上拉电阻都会被禁用。 若引脚由模拟功能控制,内部上拉电阻同样会被禁用。 注 当配置 I2C0 时要使用“SDA(PTA2/PTB6)”和“SCL(PTA3/ PTB7)”引脚,或配置 I2C1 时要使用“SDA(PTE0/PTH3)”和 “SCL(PTE1/PTH4)”引脚,并且采用的是内部上拉电阻而非 外部上拉电阻,那么当这些引脚配置为输出时,内部上拉电 阻仍保持当前设置,不过在输出低电平时会被自动禁用以省 电。 11.4 输入去抖滤波器设置 滤波器适用于每个配置成数字输入的引脚。它可用作简单的低通滤波器,对 GPIO、 FTM0、FTM1、I2C0、I2C1、PWT、IRQ、RESET、NMI 和 KBI 引脚产生的任何毛 刺进行滤波。毛刺宽度阈值可在 1~4096 BUSCLK(或 1~128 LPOCLK)的区间通过 设置 PORT_IOFLT0[FLTDIVn]轻松调节。这个可配置的毛刺滤波电路可替代板载 外部模拟滤波器,并且能极大地提高 EMC 性能,因为任何毛刺都不会被错误地采 样或忽略。 设置寄存器 PORT_IOFLT(0/1)可配置整个端口或外设输入的滤波器。例如,设置 PORT_IOFLT0[FLTA]将会影响所有 PTAn 引脚。 脉宽比所选时钟周期更短的毛刺会被滤除;脉宽比所选时钟周期长两倍以上的毛刺 将不会被滤除,并且会进入内部电路。 KEA128 子系列参考手册, Rev. 2, July 2014 146 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) 传递至 内部比率 100% 0 输入高电平/低电平宽度 1倍(FLTxxx周期) 2倍(FLTxxx周期) 注释:FLTxxx是寄存器PORT_IOFLT(0/1)中的内容。 图 11-4. 输入去抖滤波器 11.5 大电流驱动 通过使能 HDRVE 寄存器中的相关位,可以使能的大电流驱动功能,作为输出灌电 流或拉电流 。这些引脚可用作输出和输入;引脚作为输出时,输出的是大电流功能 的灌电流或拉电流。 • 若引脚通过并行 I/O 控制逻辑配置为输入,则大电流驱动功能禁用。 • 当配置为任何共用外设功能时,大电流驱动功能对这些引脚依然有效,但仅当 这些引脚配置为输出时才有效。 11.6 Stop 模式下的引脚特性 在 Stop 模式下,会保持所有 I/O 状态,因为内部逻辑电路保持上电状态。只要一恢 复,正常的 I/O 功能就可供用户使用。 11.7 端口数据寄存器 PORT 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4004_9000 端口滤波寄存器 0 (PORT_IOFLT0) 32 R/W 00C0_0000h 11.7.1/148 4004_9004 端口滤波寄存器 1 (PORT_IOFLT1) 32 R/W 0000_0000h 11.7.2/151 4004_9008 端口上拉使能寄存器 0 (PORT_PUE0) 32 R/W 0010_0000h 11.7.3/152 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 147 端口数据寄存器 PORT 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4004_900C 端口上拉使能寄存器 1 (PORT_PUE1) 32 R/W 0000_0000h 11.7.4/157 4004_9010 端口上拉使能寄存器 2 (PORT_PUE2) 32 R/W 0000_0000h 11.7.5/161 4004_9014 端口大电流驱动使能寄存器 (PORT_HDRVE) 32 R/W 0000_0000h 11.7.6/162 11.7.1 端口滤波寄存器 0 (PORT_IOFLT0) 这个寄存器是配置输入引脚的滤波器,可以配置高或低电平毛刺的脉宽阈值。脉宽 比所选时钟周期更短的毛刺将被滤除;脉宽比所选时钟周期长两倍以上的毛刺将不 会被滤除,并且会进入内部电路。 地址: 4004_9000h 基准 + 0h 偏移 = 4004_9000h 位 R W 31 复位 0 0 0 0 0 位 R W 15 14 13 12 11 复位 0 30 29 28 FLTDIV3 27 FLTDIV2 FLTH FLTG 0 26 0 25 0 23 22 21 20 19 18 17 16 FLTDIV1 FLTNMI FLTKBI1 FLTKBI0 FLTRST 0 0 0 1 1 0 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 FLTF 0 24 FLTE 0 0 FLTD 0 0 FLTC 0 0 FLTB 0 0 FLTA 0 0 0 PORT_IOFLT0 字段描述 字段 31–29 FLTDIV3 描述 滤波器分组 3 端口滤波器分组 3 000 001 010 011 100 101 110 111 28–26 FLTDIV2 LPOCLK LPOCLK/2 LPOCLK/4 LPOCLK/8 LPOCLK/16 LPOCLK/32 LPOCLK/64 LPOCLK/128 滤波器分组 2 端口滤波器分组 2 000 001 010 011 100 101 BUSCLK/32 BUSCLK/64 BUSCLK/128 BUSCLK/256 BUSCLK/512 BUSCLK/1024 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 148 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_IOFLT0 字段描述 (继续) 字段 描述 110 111 25–24 FLTDIV1 BUSCLK/2048 BUSCLK/4096 滤波器分组 1 端口滤波器分组 1 00 01 10 11 BUSCLK/2 BUSCLK/4 BUSCLK/8 BUSCLK/16 23–22 FLTNMI 针对 NMI 输入的滤波器选择 21–20 FLTKBI1 针对 KBI1 输入的滤波器选择 19–18 FLTKBI0 针对 KBI0 输入的滤波器选择 17–16 FLTRST 针对 RESET/IRQ 输入的滤波器选择 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 无滤波器。 选择 FLTDIV1,在 Stop 模式下会自动切换到 FLTDIV3。 选择 FLTDIV2,在 Stop 模式下会自动切换到 FLTDIV3。 FLTDIV3 无滤波器 选择 FLTDIV1,在 Stop 模式下会自动切换到 FLTDIV3。 选择 FLTDIV2,在 Stop 模式下会自动切换到 FLTDIV3。 FLTDIV3 无滤波器。 选择 FLTDIV1,在 Stop 模式下会自动切换到 FLTDIV3。 选择 FLTDIV2,在 Stop 模式下会自动切换到 FLTDIV3。 FLTDIV3 无滤波器。 选择 FLTDIV1,在 Stop 模式下会自动切换到 FLTDIV3。 选择 FLTDIV2,在 Stop 模式下会自动切换到 FLTDIV3。 FLTDIV3 15–14 FLTH 针对 PTH 输入的滤波器选择 13–12 FLTG 针对 PTG 输入的滤波器选择 11–10 FLTF 针对 PTF 输入的滤波器选择 00 01 10 11 00 01 10 11 00 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 149 端口数据寄存器 PORT_IOFLT0 字段描述 (继续) 字段 描述 01 10 11 FLTDIV1 FLTDIV2 FLTDIV3 9–8 FLTE 针对 PTD 输入的滤波器选择 7–6 FLTD 针对 PTD 输入的滤波器选择 5–4 FLTC 针对 PTC 输入的滤波器选择 3–2 FLTB 针对 PTB 输入的滤波器选择 FLTA 针对 PTA 输入的滤波器选择 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 KEA128 子系列参考手册, Rev. 2, July 2014 150 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) 11.7.2 端口滤波寄存器 1 (PORT_IOFLT1) 这个寄存器是配置输入引脚的滤波器,可以配置高或低电平毛刺的脉宽阈值。脉宽 比所选时钟周期更短的毛刺将被滤除;脉宽比所选时钟周期长两倍以上的毛刺将不 会被滤除,并且会进入内部电路。 地址: 4004_9000h 基准 + 4h 偏移 = 4004_9004h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R FLTI2C1 FLTI2C0 FLTPWT FLTFTM1 FLTFTM0 FLTIRQ 0 0 0 0 0 0 W 复位 0 0 0 0 0 0 0 0 FLTI 0 0 0 PORT_IOFLT1 字段描述 字段 31–16 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 15–14 FLTI2C1 针对 SCL1/SDA1 输入的滤波器选择 13–12 FLTI2C0 针对 SCL0/SDA0 输入的滤波器选择 11–10 FLTPWT 针对 PWT_IN1/PWT_IN0 输入的滤波器选择 9–8 FLTFTM1 针对 FTM1CH0/FTM1CH1 输入的滤波器选择 7–6 FLTFTM0 针对 FTM0CH0/FTM0CH1 输入的滤波器选择 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 无滤波器 选择 FLTDIV1 选择 FLTDIV2 选择 BUSCLK 无滤波器 选择 FLTDIV1 选择 FLTDIV2 选择 BUSCLK 无滤波器 选择 FLTDIV1 选择 FLTDIV2 选择 FLTDIV3 无滤波器 选择 FLTDIV1 选择 FLTDIV2 选择 FLTDIV3 无滤波器 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 151 端口数据寄存器 PORT_IOFLT1 字段描述 (继续) 字段 描述 01 10 11 选择 FLTDIV1 选择 FLTDIV2 选择 FLTDIV3 针对 IRQ 输入的滤波器选择 5–4 FLTIRQ 00 01 10 11 无滤波器 选择 FLTDIV1,在 Stop 模式下会自动切换到 FLTDIV3。 选择 FLTDIV2,在 Stop 模式下会自动切换到 FLTDIV3。 FLTDIV3 3–2 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 FLTI 针对 PTI 输入的滤波器选择 00 01 10 11 BUSCLK FLTDIV1 FLTDIV2 FLTDIV3 11.7.3 端口上拉使能寄存器 0 (PORT_PUE0) 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 R W PTDPE7 PTDPE6 PTDPE5 PTDPE4 PTDPE3 PTDPE2 PTDPE1 PTDPE0 PTCPE7 PTCPE6 PTCPE5 PTCPE4 PTCPE3 PTCPE2 PTCPE1 PTCPE0 复位 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R W PTBPE7 PTBPE6 PTBPE5 PTBPE4 PTBPE3 PTBPE2 PTBPE1 PTBPE0 PTAPE7 PTAPE6 PTAPE5 PTAPE4 PTAPE3 PTAPE2 PTAPE1 PTAPE0 地址: 4004_9000h 基准 + 8h 偏移 = 4004_9008h 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PORT_PUE0 字段描述 字段 31 PTDPE7 描述 端口 D 位 7 上拉使能 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 0 1 端口 D 位 7 上拉禁用。 端口 D 位 7 上拉使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 152 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_PUE0 字段描述 (继续) 字段 30 PTDPE6 描述 端口 D 位 6 上拉使能 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 0 1 29 PTDPE5 端口 D 位 5 上拉使能 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 0 1 28 PTDPE4 该位决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,这些位无效。 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 该字段决定是否使能端口 D 的内部上拉电阻。对于配置为输出或高阻态的端口 D 引脚,该字段无效。 端口 D 位 0 上拉禁用。 端口 D 位 0 上拉使能。 端口 C 位 7 上拉使能 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 0 1 22 PTCPE6 端口 D 位 1 上拉禁用。 端口 D 位 1 上拉使能。 端口 D 位 0 上拉使能 0 1 23 PTCPE7 端口 D 位 2 上拉禁用。 端口 D 位 2 上拉使能。 端口 D 位 1 上拉使能 0 1 24 PTDPE0 端口 D 位 3 上拉禁用。 端口 D 位 3 上拉使能。 端口 D 位 2 上拉使能 0 1 25 PTDPE1 端口 D 位 4 上拉禁用。 端口 D 位 4 上拉使能。 端口 D 位 3 上拉使能 0 1 26 PTDPE2 端口 D 位 5 上拉禁用。 端口 D 位 5 上拉使能。 端口 D 位 4 上拉使能 0 1 27 PTDPE3 端口 D 位 6 上拉禁用。 端口 D 位 6 上拉使能。 端口 C 位 7 上拉禁用。 端口 C 位 7 上拉使能。 端口 C 位 6 上拉使能 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 153 端口数据寄存器 PORT_PUE0 字段描述 (继续) 字段 描述 0 1 21 PTCPE5 端口 C 位 5 上拉使能 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 0 1 20 PTCPE4 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 该字段决定是否使能端口 C 的内部上拉电阻。对于配置为输出或高阻态的端口 C 引脚,该字段无效。 端口 C 位 0 上拉禁用。 端口 C 位 0 上拉使能。 端口 B 位 7 上拉使能 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 0 1 14 PTBPE6 端口 C 位 1 上拉禁用。 端口 C 位 1 上拉使能。 端口 C 位 0 上拉使能 0 1 15 PTBPE7 端口 C 位 2 上拉禁用。 端口 C 位 2 上拉使能。 端口 C 位 1 上拉使能 0 1 16 PTCPE0 端口 C 位 3 上拉禁用。 端口 C 位 3 上拉使能。 端口 C 位 2 上拉使能 0 1 17 PTCPE1 端口 C 位 4 上拉禁用。 端口 C 位 4 上拉使能。 端口 C 位 3 上拉使能 0 1 18 PTCPE2 端口 C 位 5 上拉禁用。 端口 C 位 5 上拉使能。 端口 C 位 4 上拉使能 0 1 19 PTCPE3 端口 C 位 6 上拉禁用。 端口 C 位 6 上拉使能。 端口 B 位 7 上拉禁用。 端口 B 位 7 上拉使能。 端口 B 位 6 上拉使能 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 0 1 端口 B 位 6 上拉禁用。 端口 B 位 6 上拉使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 154 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_PUE0 字段描述 (继续) 字段 13 PTBPE5 描述 端口 B 位 5 上拉使能 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 0 1 12 PTBPE4 端口 B 位 4 上拉使能 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 0 1 11 PTBPE3 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 该字段决定是否使能端口 B 的内部上拉电阻。对于配置为输出或高阻态的端口 B 引脚,该字段无效。 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 端口 A 位 7 上拉禁用。 端口 A 位 7 上拉使能。 端口 A 位 6 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 0 1 5 PTAPE5 端口 B 位 0 上拉禁用。 端口 B 位 0 上拉使能。 端口 A 位 7 上拉使能 0 1 6 PTAPE6 端口 B 位 1 上拉禁用。 端口 B 位 1 上拉使能。 端口 B 位 0 上拉使能 0 1 7 PTAPE7 端口 B 位 2 上拉禁用。 端口 B 位 2 上拉使能。 端口 B 位 1 上拉使能 0 1 8 PTBPE0 端口 B 位 3 上拉禁用。 端口 B 位 3 上拉使能。 端口 B 位 2 上拉使能 0 1 9 PTBPE1 端口 B 位 4 上拉禁用。 端口 B 位 4 上拉使能。 端口 B 位 3 上拉使能 0 1 10 PTBPE2 端口 B 位 5 上拉禁用。 端口 B 位 5 上拉使能。 端口 A 位 6 上拉禁用。 端口 A 位 6 上拉使能。 端口 A 位 5 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 155 端口数据寄存器 PORT_PUE0 字段描述 (继续) 字段 描述 0 1 4 PTAPE4 端口 A 位 4 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 0 1 3 PTAPE3 端口 A 位 5 上拉禁用。 端口 A 位 5 上拉使能。 端口 A 位 4 上拉禁用。 端口 A 位 4 上拉使能。 端口 A 位 3 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 注: 当此引脚被配置为 IIC 功能且输出高电平时,内部上拉电阻在 PTAPE3 置位时保持激活状态。当输出为 低电平时,它会自动禁用以降低功耗。 0 1 2 PTAPE2 端口 A 位 3 上拉禁用。 端口 A 位 3 上拉使能。 端口 A 位 2 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 注: 当此引脚被配置为 IIC 功能且输出高电平时,内部上拉电阻在 PTAPE2 置位时保持激活状态。当输出为 低电平时,它会自动禁用以降低功耗。 0 1 1 PTAPE1 端口 A 位 1 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 0 1 0 PTAPE0 端口 A 位 2 上拉禁用。 端口 A 位 2 上拉使能。 端口 A 位 1 上拉禁用。 端口 A 位 1 上拉使能。 端口 A 位 0 上拉使能 该字段决定是否使能端口 A 的内部上拉电阻。对于配置为输出或高阻态的端口 A 引脚,该字段无效。 0 1 端口 A 位 0 上拉禁用。 端口 A 位 0 上拉使能。 KEA128 子系列参考手册, Rev. 2, July 2014 156 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) 11.7.4 端口上拉使能寄存器 1 (PORT_PUE1) 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 R W PTHPE7 PTHPE6 PTHPE5 PTHPE4 PTHPE3 PTHPE2 PTHPE1 PTHPE0 PTGPE7 PTGPE6 PTGPE5 PTGPE4 PTGPE3 PTGPE2 PTGPE1 PTGPE0 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R W PTFPE7 PTFPE6 PTFPE5 PTFPE4 PTFPE3 PTFPE2 PTFPE1 PTFPE0 PTEPE7 PTEPE6 PTEPE5 PTEPE4 PTEPE3 PTEPE2 PTEPE1 PTEPE0 地址: 4004_9000h 基准 + Ch 偏移 = 4004_900Ch 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PORT_PUE1 字段描述 字段 31 PTHPE7 描述 端口 H 位 7 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 30 PTHPE6 端口 H 位 6 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 29 PTHPE5 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 端口 H 位 5 上拉禁用。 端口 H 位 5 上拉使能。 端口 H 位 4 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 27 PTHPE3 端口 H 位 6 上拉禁用。 端口 H 位 6 上拉使能。 端口 H 位 5 上拉使能 0 1 28 PTHPE4 端口 H 位 7 上拉禁用。 端口 H 位 7 上拉使能。 端口 H 位 4 上拉禁用。 端口 H 位 4 上拉使能。 端口 H 位 3 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 端口 H 位 3 上拉禁用。 端口 H 位 3 上拉使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 157 端口数据寄存器 PORT_PUE1 字段描述 (继续) 字段 26 PTHPE2 描述 端口 H 位 2 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 25 PTHPE1 端口 H 位 1 上拉使能 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 0 1 24 PTHPE0 该字段决定是否使能端口 H 的内部上拉电阻。对于配置为输出或高阻态的端口 H 引脚,该字段无效。 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 端口 G 位 4 上拉禁用。 端口 G 位 4 上拉使能。 端口 G 位 3 上拉使能 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 0 1 18 PTGPE2 端口 G 位 5 上拉禁用。 端口 G 位 5 上拉使能。 端口 G 位 4 上拉使能 0 1 19 PTGPE3 端口 G 位 6 上拉禁用。 端口 G 位 6 上拉使能。 端口 G 位 5 上拉使能 0 1 20 PTGPE4 端口 G 位 7 上拉禁用。 端口 G 位 7 上拉使能。 端口 G 位 6 上拉使能 0 1 21 PTGPE5 端口 H 位 0 上拉禁用。 端口 H 位 0 上拉使能。 端口 G 位 7 上拉使能 0 1 22 PTGPE6 端口 H 位 1 上拉禁用。 端口 H 位 1 上拉使能。 端口 H 位 0 上拉使能 0 1 23 PTGPE7 端口 H 位 2 上拉禁用。 端口 H 位 2 上拉使能。 端口 G 位 3 上拉禁用。 端口 G 位 3 上拉使能。 端口 G 位 2 上拉使能 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 158 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_PUE1 字段描述 (继续) 字段 描述 0 1 17 PTGPE1 端口 G 位 1 上拉使能 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 0 1 16 PTGPE0 该字段决定是否使能端口 G 的内部上拉电阻。对于配置为输出或高阻态的端口 G 引脚,该字段无效。 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 端口 F 位 4 上拉禁用。 端口 F 位 4 上拉使能。 端口 F 位 3 上拉使能 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 0 1 10 PTFPE2 端口 F 位 5 上拉禁用。 端口 F 位 5 上拉使能。 端口 F 位 4 上拉使能 0 1 11 PTFPE3 端口 F 位 6 上拉禁用。 端口 F 位 6 上拉使能。 端口 F 位 5 上拉使能 0 1 12 PTFPE4 端口 F 位 7 上拉禁用。 端口 F 位 7 上拉使能。 端口 F 位 6 上拉使能 0 1 13 PTFPE5 端口 G 位 0 上拉禁用。 端口 G 位 0 上拉使能。 端口 F 位 7 上拉使能 0 1 14 PTFPE6 端口 G 位 1 上拉禁用。 端口 G 位 1 上拉使能。 端口 G 位 0 上拉使能 0 1 15 PTFPE7 端口 G 位 2 上拉禁用。 端口 G 位 2 上拉使能。 端口 F 位 3 上拉禁用。 端口 F 位 3 上拉使能。 端口 F 位 2 上拉使能 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 0 1 端口 F 位 2 上拉禁用。 端口 F 位 2 上拉使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 159 端口数据寄存器 PORT_PUE1 字段描述 (继续) 字段 9 PTFPE1 描述 端口 F 位 1 上拉使能 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 0 1 8 PTFPE0 端口 F 位 0 上拉使能 该字段决定是否使能端口 F 的内部上拉电阻。对于配置为输出或高阻态的端口 F 引脚,该字段无效。 0 1 7 PTEPE7 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 端口 E 位 3 上拉禁用。 端口 E 位 3 上拉使能。 端口 E 位 2 上拉使能 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 0 1 1 PTEPE1 端口 E 位 4 上拉禁用。 端口 E 位 4 上拉使能。 端口 E 位 3 上拉使能 0 1 2 PTEPE2 端口 E 位 5 上拉禁用。 端口 E 位 5 上拉使能。 端口 E 位 4 上拉使能 0 1 3 PTEPE3 端口 E 位 6 上拉禁用。 端口 E 位 6 上拉使能。 端口 E 位 5 上拉使能 0 1 4 PTEPE4 端口 E 位 7 上拉禁用。 端口 E 位 7 上拉使能。 端口 E 位 6 上拉使能 0 1 5 PTEPE5 端口 F 位 0 上拉禁用。 端口 F 位 0 上拉使能。 端口 E 位 7 上拉使能 0 1 6 PTEPE6 端口 F 位 1 上拉禁用。 端口 F 位 1 上拉使能。 端口 E 位 2 上拉禁用。 端口 E 位 2 上拉使能。 端口 E 位 1 上拉使能 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 160 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_PUE1 字段描述 (继续) 字段 描述 0 1 端口 E 位 1 上拉禁用。 端口 E 位 1 上拉使能。 端口 E 位 0 上拉使能 0 PTEPE0 该字段决定是否使能端口 E 的内部上拉电阻。对于配置为输出或高阻态的端口 E 引脚,该字段无效。 0 1 端口 E 位 0 上拉禁用。 端口 E 位 0 上拉使能。 11.7.5 端口上拉使能寄存器 2 (PORT_PUE2) 地址: 4004_9000h 基准 + 10h 偏移 = 4004_9010h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PTIPE6 PTIPE5 PTIPE4 PTIPE3 PTIPE2 PTIPE1 PTIPE0 W 0 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 PORT_PUE2 字段描述 字段 31–7 保留 6 PTIPE6 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 端口 I 位 6 上拉使能 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 5 PTIPE5 端口 I 位 5 上拉使能 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 4 PTIPE4 端口 I 位 6 上拉禁用。 端口 I 位 6 上拉使能。 端口 I 位 5 上拉禁用。 端口 I 位 5 上拉使能。 端口 I 位 4 上拉使能 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 161 端口数据寄存器 PORT_PUE2 字段描述 (继续) 字段 描述 0 1 端口 I 位 4 上拉禁用。 端口 I 位 4 上拉使能。 端口 I 位 3 上拉使能 3 PTIPE3 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 端口 I 位 3 上拉禁用。 端口 I 位 3 上拉使能。 端口 I 位 2 上拉使能 2 PTIPE2 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 端口 I 位 2 上拉禁用。 端口 I 位 2 上拉使能。 端口 I 位 1 上拉使能 1 PTIPE1 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 端口 I 位 1 上拉禁用。 端口 I 位 1 上拉使能。 端口 I 位 0 上拉使能 0 PTIPE0 该字段决定是否使能端口 I 的内部上拉电阻。对于配置为输出或高阻态的端口 I 引脚,该字段无效。 0 1 端口 I 位 0 上拉禁用。 端口 I 位 0 上拉使能。 11.7.6 端口大电流驱动使能寄存器 (PORT_HDRVE) 地址: 4004_9000h 基准 + 14h 偏移 = 4004_9014h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 位 15 14 13 12 0 0 0 0 0 0 0 0 0 0 0 0 11 10 9 8 7 6 5 4 3 2 1 0 0 R PTH1 PTH0 PTE1 PTE0 PTD1 PTD0 PTB5 PTB4 W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PORT_HDRVE 字段描述 字段 描述 31–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 PTH1 PTH1 大电流驱动能力 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 162 Freescale Semiconductor, Inc. 第 11 章 端口控制(PORT) PORT_HDRVE 字段描述 (继续) 字段 描述 该字段使能 PTH1 的大电流驱动能力。 0 1 6 PTH0 PTH0 大电流驱动能力 该字段使能 PTH0 的大电流驱动能力。 0 1 5 PTE1 该字段使能 PTE1 的大电流驱动能力。 该字段使能 PTE0 的大电流驱动能力。 该字段使能 PTD1 的大电流驱动能力。 该字段使能 PTD0 的大电流驱动能力。 PTD0 禁用以提供大电流驱动能力。 PTD0 使能以提供大电流驱动能力。 PTB5 大电流驱动能力 该字段使能 PTB0 的大电流驱动能力。 0 1 0 PTB4 PTD1 禁用以提供大电流驱动能力。 PTD1 使能以提供大电流驱动能力。 PTD0 大电流驱动能力 0 1 1 PTB5 PTE0 禁用以提供大电流驱动能力。 PTE0 使能以提供大电流驱动能力。 PTD1 大电流驱动能力 0 1 2 PTD0 PTE1 禁用以提供大电流驱动能力。 PTE1 使能以提供大电流驱动能力。 PTE0 大电流驱动能力 0 1 3 PTD1 PTH0 禁用以提供大电流驱动能力。 PTH0 使能以提供大电流驱动能力。 PTE1 大电流驱动能力 0 1 4 PTE0 PTH1 禁用以提供大电流驱动能力。 PTH1 使能以提供大电流驱动能力。 PTB5 禁用以提供大电流驱动能力。 PTB5 使能以提供大电流驱动能力。 PTB4 大电流驱动能力 该字段使能 PTB4 的大电流驱动能力。 0 1 PTB4 禁用以提供大电流驱动能力。 PTB4 使能以提供大电流驱动能力。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 163 端口数据寄存器 KEA128 子系列参考手册, Rev. 2, July 2014 164 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) 12.1 简介 系统集成模块(SIM)提供系统控制和芯片配置寄存器。 12.1.1 特性 SIM 模块的特性列示如下。 • • • • 复位状态和器件 ID 信息 系统互连配置和特殊引脚使能 引脚重映射控制 系统时钟选通控制和时钟分频 12.2 存储器映像和寄存器定义 SIM 模块包含许多字段,用来为不同的模块时钟选择时钟源和分频器。 SIM 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4004_8000 系统复位状态和 ID 寄存器 (SIM_SRSID) 32 R 参见章节 12.2.1/166 4004_8004 系统选项寄存器 0 (SIM_SOPT0) 32 R/W 参见章节 12.2.2/169 4004_8008 系统选项寄存器 (SIM_SOPT1) 32 R/W 0000_0000h 12.2.3/172 4004_800C 引脚选择寄存器 0 (SIM_PINSEL0) 32 R/W 0000_0000h 12.2.4/174 4004_8010 引脚选择寄存器 1 (SIM_PINSEL1) 32 R/W 0000_0000h 12.2.5/176 4004_8014 系统时钟选通控制寄存器 (SIM_SCGC) 32 R/W 0000_3000h 12.2.6/178 4004_8018 通用唯一标识符低位寄存器 (SIM_UUIDL) 32 R 未定义 12.2.7/182 4004_801C 通用唯一标识符中低位寄存器 (SIM_UUIDML) 32 R 未定义 12.2.8/182 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 165 存储器映像和寄存器定义 SIM 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4004_8020 通用唯一标识符中高位寄存器 (SIM_UUIDMH) 32 R 未定义 12.2.9/183 4004_8024 时钟分频器寄存器 (SIM_CLKDIV) 32 R/W 参见章节 12.2.10/183 12.2.1 系统复位状态和 ID 寄存器 (SIM_SRSID) 地址: 4004_8000h 基准 + 0h 偏移 = 4004_8000h 位 31 30 29 28 27 FAMID R 26 25 24 23 22 SUBFAMID 21 20 19 18 RevID 17 16 PINID 复位 LVD 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 * * * * * * * * * * * * * * * * 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SACKERR 0 MDMAP SW LOCKUP 0 POR PIN WDOG LOC LVD W 0 0 0 0 0 0 0 0 0 0 0 0 0 1 u* 0 0 0 0 0 0 1 1 0 0 0 R 0 W 复位 LVD 0 0 0 0 0 0 0 0 * 注: • RevID 字段: Decided by device revision number. • PINID 字段: Decided by device pin number. • u = 不受复位影响。 SIM_SRSID 字段描述 字段 31–28 FAMID 描述 Kinetis 系列 ID 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 166 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_SRSID 字段描述 (继续) 字段 描述 0000 其他 27–24 SUBFAMID KE0x 系列。 保留。 Kinetis 子系列 ID 0100 0110 其他 KEx4 子系列 KEx6 子系列 保留 23–20 RevID 器件版本号 19–16 PINID 器件引脚 ID 15–14 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 13 SACKERR 0000 0001 0010 0011 0100 0101 0110 0111 1000 1010 其他 Stop 模式应答错误复位 指示尝试进入 Stop 模式后,已因一个或多个 IIC 未能在约一秒时间内对此作出应答而引起复位。 0 1 12 保留 11 MDMAP MDM-AP 系统复位请求 指示复位是由主调试器系统设置 MDM-AP 控制寄存器中的系统复位请求字段而引起。 复位不是由主调试器设置系统复位请求位而引起。 复位是由主调试器系统设置系统复位请求位而引起。 软件 指示复位是由软件对 ARM 内核中的应用中断和复位控制寄存器的 SYSRESETREQ 位进行设置而引起。 0 1 9 LOCKUP 复位不是因为外设未能对尝试进入 Stop 模式作出应答而引起。 复位是因为外设未能对尝试进入 Stop 模式作出应答而引起。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 1 10 SW 8 引脚 16 引脚 20 引脚 24 引脚 32 引脚 44 引脚 48 引脚 64 引脚 80 引脚 100 引脚 保留 复位不是由软件设置 SYSRESETREQ 位引起。 复位是由软件设置 SYSRESETREQ 位引起。 内核锁定 指示 LOCKUP 事件的 ARM 内核指示已引起复位。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 167 存储器映像和寄存器定义 SIM_SRSID 字段描述 (继续) 字段 描述 0 1 复位不是由内核 LOCKUP 事件引起。 复位是由内核 LOCKUP 事件引起。 8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 POR 上电复位 通过上电检测逻辑引起复位。当内部供电电压斜升时,低压复位(LVR)状态字段也在此时置位,指示已因内 部供电电压低于 LVR 阈值而发生复位。 注: 该位在 POR 时复位为 1,在 LVR 时复位为不定值,在任何其他情况下复位为 0。 0 1 6 PIN 外部复位引脚 通过外部复位引脚的有效低电平引起复位。 0 1 5 WDOG 复位不是由 POR 引起。 POR 引起复位。 复位不是由外部复位引脚引起。 复位来源于外部复位引脚。 WDOG 通过 WDOG 定时器定时溢出引起复位。该复位源可通过设置 WDOG_CS1[EN] = 0 加以阻断。 0 1 复位不是由 WDOG 定时溢出引起。 复位是由 WDOG 定时溢出引起。 4–3 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 2 LOC 内部时钟源模块复位 通过 ICS 模块复位引起复位。 0 1 1 LVD 复位不是由 ICS 模块引起。 复位是由 ICS 模块引起。 低电压检测 如果 PMC_SPMSC1[LVDRE]在 Run 模式下置位或 PMC_SPMSC1[LVDRE]和 PMC_SPMSC1[LVDSE]在 Stop 模式下均置位,并且供电电压下降低于 LVD 触发电压,那么将发生 LVD 复位。该字段也会因 POR 而 置位。 注: 该字段在 POR 和 LVR 时复位为 1,在其他复位时复位为 0。 0 1 0 保留 复位不是由 LVD 跳变或 POR 引起。 复位是由 LVD 跳变或 POR 引起。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 KEA128 子系列参考手册, Rev. 2, July 2014 168 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) 12.2.2 系统选项寄存器 0 (SIM_SOPT0) 注 RSTPE 和 NMIE 在每次复位时只能写入一次。 地址: 4004_8000h 基准 + 4h 偏移 = 4004_8004h 31 30 29 28 27 26 25 24 23 22 21 20 R DELAY 19 18 CLKOE DLYACT 位 ADHWT 17 16 BUSREF W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 ACTRG 0 0 RXDFE 0 0 0 0 0 0 0 0 0 0 0 0 0 RSTPE 0 0 0 SWDE 复位 POR/ LVD ACIC RTCC W 0 RXDCE TXDME R FTMSYNC 复位 POR/ LVD NMIE 1 1 u* 1 u* 1 0 0 * 注: • u = 不受复位影响。 SIM_SOPT0 字段描述 字段 31–24 DELAY 描述 FTM2 触发延迟 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 169 存储器映像和寄存器定义 SIM_SOPT0 字段描述 (继续) 字段 描述 指定将 1 写入 ADHWT 时从 FTM2 初始或匹配触发到 ADC 硬件触发的延迟。该 8 位模数值允许 0 到 255 的延迟,具体取决于 BUSREF 时钟设置。这是一个一次性计数器,当触发到达时开始计数,当计数器值达到 所定义的模数值时停止计数。 23 DLYACT FTM2 触发延迟有效 该只读字段指定有关 FTM2 初始或匹配延迟是否有效的状态。该字段在 FTM2 触发到达且延迟计数器正在 计数时置位。否则,该字段清零。 0 1 22–20 ADHWT ADC 硬件触发源 选择 ADC 硬件触发源。所有触发源都是在上升沿开始 ADC 转换。 000 001 010 011 100 101 110 111 19 CLKOE 在上使能总线时钟输出 通过可选预分频器在使能总线时钟输出。 总线 总线 2 分频 总线 4 分频 总线 8 分频 总线 16 分频 总线 32 分频 总线 64 分频 总线 128 分频 UART0_TX 调制选择 使能由 FTM0 通道 0 调制的 UART0_TX 输出。 0 1 14 FTMSYNC 总线时钟输出在 PTH2 上禁用。 总线时钟输出在 PTH2 上使能。 总线时钟输出选择 000 001 010 011 100 101 110 111 15 TXDME RTC 溢出用作 ADC 硬件触发 FTM0 用作 ADC 硬件触发 带 8 位可编程计数器延迟的 FTM2 初始触发 带 8 位可编程计数器延迟的 FTM2 匹配触发 PIT 通道 0 溢出用作 ADC 硬件触发 PIT 通道 1 溢出用作 ADC 硬件触发 ACMP0 输出用作 ADC 硬件触发 ACMP1 输出用作 ADC 硬件触发 总线时钟输出使能 0 1 18–16 BUSREF 延迟无效。 延迟有效。 UART0_TX 输出直接连接到引出线。 UART0_TX 输出到引出线前由 FTM0 通道 0 调制。 FTM2 同步选择 将 1 写入该字段时生成 FTM2 模块的 PWM 同步触发。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 170 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_SOPT0 字段描述 (继续) 字段 描述 0 1 13 保留 12 RXDCE 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 UART0_RX 捕捉选择 使能 UART0_RX 由 FTM0 通道 1 捕捉。 0 1 11 ACIC 将 ACMP0 的输出连接到 FTM1 输入通道 0。 允许实时计数器(RTC)溢出由 FTM1 通道 1 捕捉。 5 ACTRG 使能 UART0 RxD 输入由 ACMP 滤波。该功能使能时,任何具有 ACMP 输入标记的信号都可被视作 UART0。 3 SWDE RXD0 输入信号直接连接到 UART0 模块。 RXD0 输入信号由 ACMP0 滤波,然后注入 UART0。 RXD0 输入信号由 ACMP1 滤波,然后注入 UART0。 保留。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ACMP 触发 FTM2 选择 选择两个 ACMP 输出作为 FTM2 的触发 0 输入。 0 1 4 保留 RTC 溢出未连接到 FTM1 输入通道 1。 RTC 溢出连接到 FTM1 输入通道 1。 UART0 RxD 滤波器选择 00 01 10 11 7–6 保留 ACMP0 输出未连接到 FTM1 输入通道 0。 ACMP0 输出连接到 FTM1 输入通道 0。 实时计数器捕捉 0 1 9–8 RXDFE UART0_RX 输入信号仅连接到 UART0 模块。 UART0_RX 输入信号连接到 UART0 模块和 FTM0 通道 1。 模拟比较器至输入捕捉使能 0 1 10 RTCC 未触发任何同步。 生成 FTM2 模块的 PWM 同步触发。 ACMP0 输出 ACMP1 输出 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 单线调试端口引脚使能 使能 PTA4/KBI0_P4/ACMP0_OUT/SWD_DIO 引脚用作 SWD_DIO,使能 PTC4/KBI0_P20/RTC_CLKOUT/ FTM1_CH0/ACMP0_IN2/SWD_CLK 引脚用作 SWD_CLK。清零时,两个引脚用作 PTA4 和 PTC4。该引脚 在任何 MCU 复位之后默认用作 SWD_DIO 和 SWD_CLK。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 171 存储器映像和寄存器定义 SIM_SOPT0 字段描述 (继续) 字段 描述 0 1 PTA4/KBI0_P4/ACMP0_OUT/SWD_DIO 作为 PTA4 或 ACMP0_OUT 功能,PTC4/KBI0_P20/ RTC_CLKOUT/FTM1_CH0/ACMP0_IN2/SWD_CLK 用作 PTC4、KBI0_P20、RTC_CLKOUT、 FTM1_CH0 或 ACMP0_IN2 功能。 PTA4/KBI0_P4/ACMP0_OUT/SWD_DIO 用作 SWD_DIO 功能,PTC4/KBI0_P20/RTC_CLKOUT/ FTM1_CH0/ACMP0_IN2/SWD_CLK 用作 SWD_CLK 功能。 RESET 引脚使能 2 RSTPE 在任何复位后都可对该一次写入字段进行写操作。RSTPE 置位时,PTA5/KBI0_P5/IRQ/TCLK0/RESET 引 脚用作 RESET。清零时,该引脚用作复用功能之一。该引脚在 MCU POR 之后默认用作 RESET。其他复位 不会影响该字段。RSTPE 置位时,RESET 上的内部上拉器件使能。 0 1 PTA5/KBI0_P5/IRQ/TCLK0/RESET 引脚用作 PTA5/KBI0_P5/IRQ/TCLK0。 PTA5/KBI0_P5/IRQ/TCLK0/RESET 引脚用作 RESET。 NMI 引脚使能 1 NMIE 在任何复位后都可对该一次写入字段进行写操作。NMIE 置位时,PTB4/KBI0_P12/FTM2_CH4/SPI0_MISO/ ACMP1_IN2/NMI 引脚用作 NMI。清零时,该引脚用作复用功能之一。该引脚在 MCU POR 之后默认用作 NMI。其他复位不会影响该位。NMIE 置位时,NMI 上的内部上拉器件使能。 0 1 PTB4/KBI0_P12/FTM2_CH4/SPI0_MISO/ACMP1_IN2/NMI 引脚用作 PTB4、KBI0_P12、FTM2_CH4、 SPI0_MISO 或 ACMP1_IN2. PTB4/KBI0_P12/FTM2_CH4/SPI0_MISO/ACMP1_IN2/NMI 引脚用作 NMI。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 保留 12.2.3 系统选项寄存器 (SIM_SOPT1) 注 RSTPE 和 NMIE 在每次复位时只能写入。 地址: 4004_8000h 基准 + 8h 偏移 = 4004_8008h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ACPWTS 0 I2C0OINV I2C04WEN W 0 0 0 0 0 R UARTPWTS W 复位 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 172 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_SOPT1 字段描述 字段 31–6 保留 5–4 UARTPWTS 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 PWT UART RX 选择 该字段选择 PWTIN3 输入信号 00 01 10 11 3 ACPWTS PWT ACMP_OUT 选择 该字段选择 PWTIN2 输入信号。 0 1 2 保留 1 I2C0OINV UART0 RX 连接到 PWTIN3。 UART1 RX 连接到 PWTIN3。 UART2 RX 连接到 PWTIN3。 保留。 ACMP1_OUT 连接到 PWTIN2。 ACMP0_OUT 连接到 PWTIN2。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 I2C0 输出反相 该字段控制 I2C0 输出的反相。 注: 该位在 I2C0 4 线式接口禁用(I2C04WEN = 0)时不起作用。 0 1 0 I2C04WEN 在 I2C0 4 线式接口配置下,SDA_OUT 和 SCL_OUT 在输出前不反相 在 I2C0 4 线式接口配置下,SDA_OUT 和 SCL_OUT 在输出前反相 I2C0 4 线式接口使能 该字段控制 I2C0 4 线式接口配置。 注: 该字段仅在 SIM_PINSEL0[I2C0PS]为 0 时起作用。 0 1 I2C0 4 线式接口配置禁用。 I2C0 4 线式接口配置使能。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 173 存储器映像和寄存器定义 12.2.4 引脚选择寄存器 0 (SIM_PINSEL0) 地址: 4004_8000h 基准 + Ch 偏移 = 4004_800Ch 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R PWTCLKPS FTM2CLKPS FTM1CLKPS FTM0CLKPS W 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 R W 复位 0 0 0 0 RTCPS 0 I2C0PS 0 SPI0PS 0 UART0PS 0 FTM0PS0 0 FTM0PS1 0 FTM1PS0 0 FTM1PS1 复位 0 0 0 0 0 0 0 0 0 IRQPS 0 0 0 0 SIM_PINSEL0 字段描述 字段 31–30 PWTCLKPS 描述 PWT TCLK 引脚选择 选择 TCLK 引脚分配。 00 01 10 11 29–28 FTM2CLKPS FTM2 TCLK 引脚选择 选择 TCLK 引脚分配。 00 01 10 11 27–26 FTM1CLKPS 选择 TCLK0 用于 FTM2 模块。 选择 TCLK1 用于 FTM2 模块。 选择 TCLK2 用于 FTM2 模块。 保留。 FTM1 TCLK 引脚选择 选择 TCLK 引脚分配。 00 01 10 11 25–24 FTM0CLKPS 选择 TCLK0 用于 PWT 模块。 选择 TCLK1 用于 PWT 模块。 选择 TCLK2 用于 PWT 模块。 保留。 选择 TCLK0 用于 FTM1 模块。 选择 TCLK1 用于 FTM1 模块。 选择 TCLK2 用于 FTM1 模块。 保留。 FTM0 TCLK 引脚选择 选择 TCLK 引脚分配。 00 01 选择 TCLK0 用于 FTM0 模块。 选择 TCLK1 用于 FTM0 模块。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 174 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_PINSEL0 字段描述 (继续) 字段 描述 10 11 23–12 保留 11 FTM1PS1 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 FTM1_CH1 端口引脚选择 选择 FTM1_CH1 通道引脚分配。 0 1 10 FTM1PS0 选择 FTM1_CH0 通道引脚分配。 选择 FTM0_CH1 通道引脚分配。 选择 FTM0_CH0 通道引脚分配。 选择 UART0 引脚分配。 选择 SPI0 引脚分配。 SPI0_SCK、SPI0_MOSI、SPI0_MISO 和 SPI0_PCS 映射到 PTB2、PTB3、PTB4 和 PTB5 上。 SPI0_SCK、SPI0_MOSI、SPI0_MISO 和 SPI0_PCS 映射到 PTE0、PTE1、PTE2 和 PTE3 上上。 I2C0 端口引脚选择 选择 I2C0 端口引脚。 0 1 4 RTCPS UART0_RX 和 UART0_TX 映射到 PTB0 和 PTB1 上。 UART0_RX 和 UART0_TX 映射到 PTA2 和 PTA3 上。 SPI0 引脚选择 0 1 5 I2C0PS FTM0_CH0 通道映射到 PTA0 上。 FTM0_CH0 通道映射到 PTB2 上。 UART0 引脚选择 0 1 6 SPI0PS FTM0_CH1 通道映射到 PTA1 上。 FTM0_CH1 通道映射到 PTB3 上。 FTM0_CH0 端口引脚选择 0 1 7 UART0PS FTM1_CH0 通道映射到 PTC4 上。 FTM1_CH0 通道映射到 PTH2 上。 FTM0_CH1 端口引脚选择 0 1 8 FTM0PS0 FTM1_CH1 通道映射到 PTC5 上。 FTM1_CH1 通道映射到 PTE7 上。 FTM1_CH0 端口引脚选择 0 1 9 FTM0PS1 选择 TCLK2 用于 FTM0 模块。 保留。 I2C0_SCL 和 I2C0_SDA 分别映射到 PTA3 和 PTA2 上。 I2C0_SCL 和 I2C0_SDA 分别映射到 PTB7 和 PTB6 上。 RTCO 引脚选择 选择 RTCO 端口引脚。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 175 存储器映像和寄存器定义 SIM_PINSEL0 字段描述 (继续) 字段 描述 0 1 RTCO 映射到 PTC4 上。 RTCO 映射到 PTC5 上。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 3 保留 IRQ 端口引脚选择 IRQPS 选择 IRQ 端口引脚。 000 001 010 011 100 101 110 111 IRQ 映射到 PTA5 上。 IRQ 映射到 PTI0 上。 IRQ 映射到 PTI1 上。 IRQ 映射到 PTI2 上。 IRQ 映射到 PTI3 上。 IRQ 映射到 PTI4 上。 IRQ 映射到 PTI5 上。 IRQ 映射到 PTI6 上。 12.2.5 引脚选择寄存器 1 (SIM_PINSEL1) 地址: 4004_8000h 基准 + 10h 偏移 = 4004_8010h 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 0 R 16 MSCANPS 位 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R PWTIN1PS PWTIN0PS UART2PS UART1PS SPI1PS I2C1PS FTM2PS5 FTM2PS4 W 0 0 0 0 0 0 0 0 W 复位 FTM2PS3 0 0 FTM2PS2 0 0 FTM2PS1 0 0 FTM2PS0 0 0 SIM_PINSEL1 字段描述 字段 31–17 保留 16 MSCANPS 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 MSCAN 引脚选择 选择 MSCAN 引脚分配。 0 1 CAN_TX 在 PTC7 上,CAN_RX 在 PTC6 上。 CAN_TX 在 PTE7 上,CAN_RX 在 PTH2 上。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 176 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_PINSEL1 字段描述 (继续) 字段 15 PWTIN1PS 描述 PWTIN1 引脚选择 选择 PWTIN1 引脚分配。 0 1 14 PWTIN0PS PWTIN0 引脚选择 选择 PWTIN0 引脚分配。 0 1 13 UART2PS 选择 UART2 引脚分配。 选择 UART1 引脚分配。 选择 SPI1 引脚分配。 选择 I2C1 引脚分配。 选择 FTM2 通道 5 引脚分配。 FTM2 CH5 映射到 PTB5 上。 FTM2 CH5 映射到 PTG7 上。 FTM2 通道 4 引脚选择 选择 FTM2 通道 4 引脚分配。 0 1 7–6 FTM2PS3 I2C1_SCL 在 PTE1 上,I2C1_SDA 在 PTE0 上。 I2C1_SCL 在 PTH4 上,I2C1_SDA 在 PTH3 上。 FTM2 通道 5 引脚选择 0 1 8 FTM2PS4 SPI1_SCK、SPI1_MOSI、SPI1_MISO 和 SPI1_PCS 映射到 PTD0、PTD1、PTD2 和 PTD3 上。 SPI1_SCK、SPI1_MOSI、SPI1_MISO 和 SPI1_PCS 映射到 PTG4、PTG5、PTG6 和 PTG7 上。 I2C1 引脚选择 0 1 9 FTM2PS5 UART1_TX 在 PTC7 上,UART1_RX 在 PTC6 上。 UART1_TX 在 PTF3 上,UART1_RX 在 PTF2 上。 SPI1 引脚选择 0 1 10 I2C1PS UART2_TX 在 PTD7 上,UART2_RX 在 PTD6 上。 UART2_TX 在 PTI1 上,UART2_RX 在 PTI0 上。 UART1 引脚选择 0 1 11 SPI1PS PWTIN0 在 PTD5 上。 PWTIN0 在 PTE2 上。 UART2 引脚选择 0 1 12 UART1PS PWTIN1 在 PTB0 上。 PWTIN1 在 PTH7 上。 FTM2 CH4 映射到 PTB4 上。 FTM2 CH4 映射到 PTG6 上。 FTM2 通道 3 引脚选择 选择 FTM2 通道 3 引脚分配。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 177 存储器映像和寄存器定义 SIM_PINSEL1 字段描述 (继续) 字段 描述 00 01 10 11 FTM2 CH3 映射到 PTC3 上。 FTM2 CH3 映射到 PTD1 上。 FTM2 CH3 映射到 PTG5 上。 保留。 FTM2 通道 2 引脚选择 5–4 FTM2PS2 选择 FTM2 通道 2 引脚分配。 00 01 10 11 FTM2 CH2 映射到 PTC2 上。 FTM2 CH2 映射到 PTD0 上。 FTM2 CH2 映射到 PTG4 上。 保留。 FTM2 通道 1 引脚选择 3–2 FTM2PS1 选择 FTM2 通道 1 引脚分配。 00 01 10 11 FTM2 CH1 映射到 PTC1 上。 FTM2 CH1 映射到 PTH1 上。 FTM2 CH1 映射到 PTF1 上。 保留。 FTM2 通道 0 引脚选择 FTM2PS0 选择 FTM2 通道 0 引脚分配。 00 01 10 11 FTM2 CH0 映射到 PTC0 上。 FTM2 CH0 映射到 PTH0 上。 FTM2 CH0 映射到 PTF0 上。 保留。 12.2.6 系统时钟选通控制寄存器 (SIM_SCGC) 地址: 4004_8000h 基准 + 14h 偏移 = 4004_8014h 复位 0 0 0 0 0 位 15 14 13 12 11 MSCAN 复位 0 0 SWD 1 1 0 21 20 19 18 17 16 SPI0 I2C1 I2C0 KBI0 SPI1 0 0 0 0 0 0 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 PIT RTC 0 0 0 0 CRC 0 22 KBI1 IRQ FLASH W 23 UART0 ADC 0 24 0 W R 25 UART1 0 26 0 0 0 0 FTM0 27 UART2 28 FTM1 29 ACMP0 30 ACMP1 R 31 FTM2 位 PWT 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 178 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_SCGC 字段描述 字段 31 ACMP1 描述 ACMP1 时钟选通控制 控制 ACMP1 模块的时钟选通。 0 1 30 ACMP0 ACMP0 时钟选通控制 控制 ACMP0 模块的时钟选通。 0 1 29 ADC ACMP1 模块的总线时钟禁用。 ACMP1 模块的总线时钟使能。 ACMP0 模块的总线时钟禁用。 ACMP0 模块的总线时钟使能。 ADC 时钟选通控制 控制 ADC 模块的时钟选通。 0 1 ADC 模块的总线时钟禁用。 ADC 模块的总线时钟使能。 28 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 27 IRQ IRQ 时钟选通控制 控制 IRQ 模块的时钟选通。 0 1 IRQ 模块的总线时钟禁用。 IRQ 模块的总线时钟使能。 26 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 25 KBI1 KBI1 时钟选通控制 控制 KBI1 模块的时钟选通。 0 1 24 KBI0 KBI0 时钟选通控制 控制 KBI0 模块的时钟选通。 0 1 23 保留 22 UART2 KBI0 模块的总线时钟禁用。 KBI0 模块的总线时钟使能。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 UART2 时钟选通控制 控制 UART2 模块的时钟选通。 0 1 21 UART1 KBI1 模块的总线时钟禁用。 KBI1 模块的总线时钟使能。 UART2 模块的总线时钟禁用。 UART2 模块的总线时钟使能。 UART1 时钟选通控制 控制 UART1 模块的时钟选通。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 179 存储器映像和寄存器定义 SIM_SCGC 字段描述 (继续) 字段 描述 0 1 20 UART0 UART0 时钟选通控制 控制 UART0 模块的时钟选通。 0 1 19 SPI1 控制 SPI1 模块的时钟选通。 控制 SPI0 模块的时钟选通。 控制 I2C1 模块的时钟选通。 I2C1 模块的总线时钟禁用。 I2C1 模块的总线时钟使能。 I2C0 时钟选通控制 控制 I2C0 模块的时钟选通。 0 1 15 MSCAN SPI0 模块的总线时钟禁用。 SPI0 模块的总线时钟使能。 I2C1 时钟选通控制 0 1 16 I2C0 SPI1 模块的总线时钟禁用。 SPI1 模块的总线时钟使能。 SPI0 时钟选通控制 0 1 17 I2C1 UART0 模块的总线时钟禁用。 UART0 模块的总线时钟使能。 SPI1 时钟选通控制 0 1 18 SPI0 UART1 模块的总线时钟禁用。 UART1 模块的总线时钟使能。 I2C0 模块的总线时钟禁用。 I2C0 模块的总线时钟使能。 MSCAN 时钟选通控制 控制 MSCAN 模块的时钟选通。 0 1 MSCAN 模块的总线时钟禁用。 MSCAN 模块的总线时钟使能。 14 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 13 SWD SWD(单线调试器)时钟选通控制 控制 SWD 模块的时钟选通。 0 1 12 FLASH SWD 模块的总线时钟禁用。 SWD 模块的总线时钟使能。 Flash 时钟选通控制 控制 Flash 模块的时钟选通。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 180 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) SIM_SCGC 字段描述 (继续) 字段 描述 0 1 Flash 模块的总线时钟禁用。 Flash 模块的总线时钟使能。 11 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 10 CRC CRC 时钟选通控制 控制 CRC 模块的时钟选通。 0 1 9–8 保留 7 FTM2 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 FTM2 时钟选通控制 控制 FTM2 模块的时钟选通。 0 1 6 FTM1 控制 FTM1 模块的时钟选通。 FTM1 模块的总线时钟禁用。 FTM1 模块的总线时钟使能。 FTM0 时钟选通控制 控制 FTM0 模块的时钟选通。 0 1 4 PWT FTM2 模块的总线时钟禁用。 FTM2 模块的总线时钟使能。 FTM1 时钟选通控制 0 1 5 FTM0 CRC 模块的总线时钟禁用。 CRC 模块的总线时钟使能。 FTM0 模块的总线时钟禁用。 FTM0 模块的总线时钟使能。 PWT 时钟选通控制 控制 PWT 模块的时钟选通。 0 1 PWT 模块的定时器时钟禁用。 PWT 模块的定时器时钟使能。 3–2 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 1 PIT PIT 时钟选通控制 控制 PIT 模块的时钟选通。 0 1 0 RTC PIT 模块的总线时钟禁用。 PIT 模块的总线时钟使能。 RTC 时钟选通控制 控制 RTC 模块的时钟选通。 0 1 RTC 模块的总线时钟禁用。 RTC 模块的总线时钟使能。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 181 存储器映像和寄存器定义 12.2.7 通用唯一标识符低位寄存器 (SIM_UUIDL) 只读 SIM_UUIDL 寄存器包含一系列数字,用以识别该系列中的不同器件。 地址: 4004_8000h 基准 + 18h 偏移 = 4004_8018h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ID[31:0] R W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • x = 复位时未定义。 SIM_UUIDL 字段描述 字段 描述 通用唯一标识符 ID[31:0] 12.2.8 通用唯一标识符中低位寄存器 (SIM_UUIDML) 只读 SIM_UUIDML 寄存器包含一组数字,用于标识系列中的唯一器件。 地址: 4004_8000h 基准 + 1Ch 偏移 = 4004_801Ch 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ID[63:32] R W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • x = 复位时未定义。 SIM_UUIDML 字段描述 字段 ID[63:32] 描述 通用唯一标识符 KEA128 子系列参考手册, Rev. 2, July 2014 182 Freescale Semiconductor, Inc. 第 12 章 系统集成模块(SIM) 12.2.9 通用唯一标识符中高位寄存器 (SIM_UUIDMH) 只读 SIM_UUIDMH 寄存器包含一系列数字,用以识别该系列中的不同器件。 地址: 4004_8000h 基准 + 20h 偏移 = 4004_8020h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 0 R 9 8 7 6 5 4 3 2 1 0 ID[80:64] W 复位 x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* x* * 注: • x = 复位时未定义。 SIM_UUIDMH 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–16 保留 通用唯一标识符 ID[80:64] 12.2.10 时钟分频器寄存器 (SIM_CLKDIV) 该寄存器设置时钟的分频值。 注 小心配置 OUTDIV1 和 OUTDIV2,避免总线时钟频率高于 24 MHz。 地址: 4004_8000h 基准 + 24h 偏移 = 4004_8024h 30 29 28 27 0 R 26 25 0 24 23 OUTDIV1 W 22 21 0 20 19 18 17 16 0 OUTDIV3 31 OUTDIV2 位 复位 POR/ LVD 0 0 0 0 u* 0 u* 0 0 0 0 0 0 0 u* 0 0 0 0 0 0 0 u* 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 183 功能说明 POR/ LVD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * 注: • u = 不受复位影响。 SIM_CLKDIV 字段描述 字段 31–30 保留 29–28 OUTDIV1 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 时钟 1 输出分频器值 该字段设置内核/系统时钟的分频值。 00 01 10 11 27–25 保留 24 OUTDIV2 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 时钟 2 输出分频器值 该字段设置总线/FLASH 的分频值,跟随 OUTDIV1。 0 1 23–21 保留 20 OUTDIV3 不根据分频器 1 进行分频。 根据分频器 1 进行 2 分频。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 时钟 3 输出分频器值 该字段设置定时器(FTM0、FTM1、FTM2、PWT)的分频值。 0 1 保留 同 ICSOUTCLK。 ICSOUTCLK 除以 2。 ICSOUTCLK 除以 3。 ICSOUTCLK 除以 4。 同 ICSOUTCLK。 ICSOUTCLK 除以 2。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 12.3 功能说明 参见简介 部分。 KEA128 子系列参考手册, Rev. 2, July 2014 184 Freescale Semiconductor, Inc. 第 13 章 电源管理控制器(PMC) 13.1 简介 本章介绍芯片低功耗模式下各模块的功能以及电源管理控制器模块的操作。 13.2 低电压检测(LVD)系统 该设备包含一个低电压保护系统,以便在供电电压变动时保护存储器中的内容并控 制 MCU 系统的状态。此系统包含一个上电复位(POR)电路,和具有可供用户选择触 发电压(高电压(VLVDH)或低电压(VLVDL))的 LVD 电路。SPMSC1[LVDE]置位且 SPMSC2[LVDV]选择触发电压后,即可启用 LVD 电路。除非设置 SPMSC1[LVDSE],否则在输入 Stop 模式时将禁用 LVD。如果 SPMSC1[LVDSE] 和 SPMSC1[LVDE] 均已设置,则启用 LVD 系统时,电流消耗量将高于 Stop 模式中的 电流消耗量。 下图呈现的是低电压检测(LVD)系统的结构框图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 185 低电压检测(LVD)系统 vDD LVDV:LVWV R1 LVD0 - LVD1 LVD + LVW0 LVW1 LVW2 - LVW3 LVW + vBG 带隙基准 R7 vss 图 13-1. 低电压检测(LVD)结构框图 13.2.1 上电复位(POR)操作 MCU 初次上电或电源电压下降低于 VPOR 电平时,POR 电路将触发 MCU 复位。随 着供电电压的升高,LVD 电路将芯片保持在复位状态,直至电源超过 VLVDL 电平。 SIM_SRSID[POR]和 SIM_SRSID[LVD]在 POR 之后都将置位。 13.2.2 LVD 复位操作 通过将 SPMSC1[LVDRE]置 1,LVD 可配置为一旦检测到低压条件就生成复位信 号。LVD 复位后,LVD 系统会将 MCU 保持在复位状态,直到电源电压上升高于 LVDV 电平。SIM_SRSID[LVD]在 LVD 复位或 POR 之后置位。 13.2.3 Stop 模式下的 LVD 使能 电源电压下降低于 LVD 电压时,LVD 系统能生成复位信号。若 LVD 在 CPU 执行 STOP 指令时在 Stop 模式(SPMSC1[LVDE]和 SPMSC1[LVDSE]都置 1)下使能, 则稳压器在 Stop 模式期间仍保持激活状态。 KEA128 子系列参考手册, Rev. 2, July 2014 186 Freescale Semiconductor, Inc. 第 13 章 电源管理控制器(PMC) 13.2.4 低压警报(LVW) LVD 系统具有低压警报标志,可提示电源电压正在接近 LVW 电压。检测到低压条 件且 LVD 电路已配置为可中断操作(SPMSC1[LVDE]置位,SPMSC1[LVWIE]置 位)时,SPMSC1[LVWF]将置位,并且将发生 LVW 中断。每次 LVDV 配置时, LVW 都有四个用户可选触发电压。触发电压根据 SPMSC2[LVWV]进行选择。 13.3 带隙基准源 该器件集成了一个连接至 ADC 通道的片上带隙基准源(≈1.2 V)。即使工作电压正在 下降,带隙基准电压也不会下降低于全工作电压。该基准电压用作精确测量的理想 基准电压。 13.4 存储器映像和寄存器说明 PMC 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4007_D000 系统电源管理状态和控制 1 寄存器 (PMC_SPMSC1) 8 R/W 1Ch 13.4.1/187 4007_D001 系统电源管理状态和控制 2 寄存器 (PMC_SPMSC2) 8 R/W 00h 13.4.2/189 13.4.1 系统电源管理状态和控制 1 寄存器 (PMC_SPMSC1) 该寄存器包含状态位和控制位,支持低压检测功能,可使能带隙基准电压供 ADC 模块使用。即使所需设置与复位设置相同,该寄存器也必须在用户复位初始化程序 运行期间写入数据以设置所需的控制。 地址: 4007_D000h 基准 + 0h 偏移 = 4007_D000h 位 7 6 读 LVWF 0 写 复位 LVWACK 0 0 5 4 3 2 LVWIE LVDRE LVDSE LVDE 0 1 1 1 1 0 0 0 BGBE 0 PMC_SPMSC1 字段描述 字段 7 LVWF 描述 低压警报标志 指示低压警报状态。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 187 存储器映像和寄存器说明 PMC_SPMSC1 字段描述 (继续) 字段 描述 注: 如果 VSupply 转换低于跳变点或在复位后 VSupply 已低于 VLVW,那么 LVWF 将置位。上电复位后,LVWF 可能为 1;因此,为了使用 LVW 中断功能,在使能 LVWIE 前,LVWF 必须首先通过写入 LVWACK 清 零。 0 1 6 LVWACK 5 LVWIE 低压警报应答 若 LVWF = 1,则已发生低压条件。为了应答该低压警报,向 LVWACK 写入 1,如果低压警报不再存在,那 么就会自动清零 LVWF。 低压警报中断使能 使能 LVWF 的硬件中断请求。 0 1 4 LVDRE 不存在低压警报。 存在或曾经存在低压警报。 禁用硬件中断(使用轮询)。 LVWF = 1 时请求硬件中断。 低压检测复位使能 该一次性写入位可使能 LVD 事件以产生硬件复位(假设 LVDE = 1)。 注: 复位后,该字段仅可写入一次。其他写操作会被忽略。 若 LVDRE = 0,由于没有标志置位,则可用 LVW 去监控状态。 0 1 3 LVDSE 低压检测在 Stop 模式下的使能 假设 LVDE = 1,则该读/写字段可确定低压检测功能在 MCU 处于 Stop 模式时是否工作。 0 1 2 LVDE LVD 事件不产生硬件复位。 发生有效的低压检测事件时强制进行 MCU 复位 低压检测在 Stop 模式期间禁用。 低压检测在 Stop 模式期间使能。 低压检测使能 该一次性写入位可以使能低压检测逻辑并认证该寄存器中其他字段的操作。 注: 复位后,该字段仅可写入一次。其他写操作会被忽略。 0 1 LVD 逻辑禁用。 LVD 逻辑使能。 1 Reserved 此字段为保留字段。 0 BGBE 带隙基准缓冲区使能 使能内部缓冲区以便带隙基准电压可供 ADC 模块在其内部通道上作为基准电压或选作 ACMP 基准的带隙基 准。 0 1 带隙基准缓冲区禁用。 带隙基准缓冲区使能。 KEA128 子系列参考手册, Rev. 2, July 2014 188 Freescale Semiconductor, Inc. 第 13 章 电源管理控制器(PMC) 13.4.2 系统电源管理状态和控制 2 寄存器 (PMC_SPMSC2) 该寄存器用于报告低压警报功能的状态,以及配置 MCU 的 Stop 模式特性。即使所 需设置与复位设置相同,该寄存器也应当在用户复位初始化程序运行期间写入数据 以设置所需的控制。 地址: 4007_D000h 基准 + 1h 偏移 = 4007_D001h 位 7 读 写 复位 0 LVDV 0 0 6 5 4 3 2 LVWV 0 1 0 0 0 0 0 0 0 PMC_SPMSC2 字段描述 字段 7 保留 6 LVDV 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 低压检测电压选择 该一次性写入位选择低压检测(LVD)跳变点设置。更多详情请参见数据手册。 0 1 5–4 LVWV 低压警报电压选择 选择低压警报(LVW)跳变点电压。更多详情请参见数据手册。 00 01 10 11 保留 选择低电平跳变点(VLVD = VLVDL)。 选择高电平跳变点(VLVD = VLVDH)。 选择低电平跳变点(VLVW = VLVW1)。 选择中间电平 1 跳变点(VLVW = VLVW2)。 选择中间电平 2 跳变点(VLVW = VLVW3)。 选择高电平跳变点(VLVW = VLVW4)。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 189 存储器映像和寄存器说明 KEA128 子系列参考手册, Rev. 2, July 2014 190 Freescale Semiconductor, Inc. 第 14 章 杂项控制模块(MCM) 14.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 杂项控制模块(MCM)可提供多种杂项控制功能。 14.1.1 特性 MCM 包含下列特性: • 程序可见的有关平台配置信息 • Flash 控制器推测缓冲区和高速缓存配置 14.2 存储器映像/寄存器说明 下文的存储器映像和寄存器的描述介绍了使用字节地址的寄存器。这些寄存器仅可 在管理模式下写入。 MCM 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 F000_3008 交叉开关(AXBS)从机配置 (MCM_PLASC) 16 R 0007h 14.2.1/192 F000_300A 交叉开关(AXBS)主机配置 (MCM_PLAMC) 16 R 0001h 14.2.2/192 32 R/W 0000_0800h 14.2.3/193 F000_300C 平台控制寄存器 (MCM_PLACR) KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 191 存储器映像/寄存器说明 14.2.1 交叉开关(AXBS)从机配置 (MCM_PLASC) PLASC 是一个 16 位只读寄存器,用于识别是否存在总线从连接至设备交叉开关。 地址: F000_3000h 基准 + 8h 偏移 = F000_3008h 位 15 14 13 12 读 11 10 9 8 7 6 5 4 0 3 2 1 0 0 1 1 1 ASC 写 复位 0 0 0 0 0 0 0 0 0 0 0 0 MCM_PLASC 字段描述 字段 描述 15–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ASC ASC 字段中的每个位表示交叉开关的从输入端口是否存在对应连接。 0 1 不存在至 AXBS 输入端口 n 的总线从连接。 存在至 AXBS 输入端口 n 的总线从连接。 14.2.2 交叉开关(AXBS)主机配置 (MCM_PLAMC) PLASC 是一个 16 位只读寄存器,用于识别是否存在总线主连接至设备交叉开关。 地址: F000_3000h 基准 + Ah 偏移 = F000_300Ah 位 15 14 13 12 读 11 10 9 8 7 6 5 4 0 3 2 1 0 0 0 0 1 AMC 写 复位 0 0 0 0 0 0 0 0 0 0 0 0 MCM_PLAMC 字段描述 字段 描述 15–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 AMC AMC 字段中的每个位表示 AXBS 主输入端口是否存在对应连接。 0 1 不存在至 AXBS 输入端口 n 的总线主连接。 存在至 AXBS 输入端口 n 的总线主连接。 KEA128 子系列参考手册, Rev. 2, July 2014 192 Freescale Semiconductor, Inc. 第 14 章 杂项控制模块(MCM) 14.2.3 平台控制寄存器 (MCM_PLACR) Flash 存储器控制器中的推测缓冲区和高速缓存可通过 PLACR[15:10 ]配置。 复位后,推测缓冲器仅对指令有效。推测缓冲区可能具有以下状态: DFCS EFDS 说明 0 0 推测缓冲区对于指令为开,对于数据为 关。 0 1 推测缓冲区对于指令为开,对于数据为 开。 1 X 推测缓冲区关闭。 Flash 控制器中的高速缓存在复位后,已使能且可以对指令和数据进行提取。高速缓 存可能具有以下状态: DFCC DFCIC DFCDA 说明 0 0 0 高速缓存对于指令和数据均为 开。 0 0 1 高速缓存对于指令为开,对于 数据为关。 0 1 0 高速缓存对于指令为关,对于 数据为开。 0 1 1 高速缓存对于指令和数据均为 关。 1 X X 高速缓存关闭。 地址: F000_3000h 基准 + Ch 偏移 = F000_300Ch 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R ESFC W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 193 存储器映像/寄存器说明 位 15 14 13 12 11 10 9 8 7 6 5 DFCS EFDS DFCC DFCIC DFCDA 0 0 0 0 1 W 复位 3 2 1 0 0 0 0 0 0 0 CFCC 0 R 4 0 0 0 0 0 0 MCM_PLACR 字段描述 字段 描述 31–17 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 16 ESFC 使能阻塞 Flash 控制器 当 Flash 正忙时使能阻塞 Flash 控制器。 当 Flash 存储器资源正在通过 Flash 命令使用时,如果软件需要访问 Flash 存储器,则该软件可以使能阻塞 机制,以避免读取碰撞。阻塞机制允许该软件执行来自与执行 Flash 操作的相同区块的代码。但是,该软件 必须能够确保在其上执行 Flash 操作的扇区与执行代码的扇区不同。 ESFC 使能阻塞机制。该位仅可在执行 Flash 操作之前置位,并且必须在操作完成时清除。 0 1 15 DFCS 禁用 Flash 控制器的推测 禁用 Flash 控制器的推测。 0 1 14 EFDS 使能 Flash 数据的推测。 禁用 Flash 控制器高速缓存。 使能 Flash 控制器高速缓存。 禁用 Flash 控制器高速缓存。 禁用 Flash 控制器指令高速缓存 禁用 Flash 控制器指令高速缓存。 0 1 11 DFCDA 禁用 Flash 数据的推测。 使能 Flash 数据的推测。 禁用 Flash 控制器高速缓存 0 1 12 DFCIC 使能 Flash 控制器的推测。 禁用 Flash 控制器的推测。 使能 Flash 数据的推测 0 1 13 DFCC 当 Flash 正忙时禁用阻塞 Flash 控制器。 当 Flash 正忙时使能阻塞 Flash 控制器。 使能 Flash 控制器指令高速缓存。 禁用 Flash 控制器指令高速缓存。 禁用 Flash 控制器数据高速缓存 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 194 Freescale Semiconductor, Inc. 第 14 章 杂项控制模块(MCM) MCM_PLACR 字段描述 (继续) 字段 描述 禁用 Flash 控制器数据高速缓存。 0 1 10 CFCC 保留 使能 Flash 控制器数据高速缓存 禁用 Flash 控制器数据高速缓存。 清除 Flash 控制器高速缓存 将 1 写入该字段会清除高速缓存。将 0 写入该字段会被忽略。该字段始终读取为 0。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 195 存储器映像/寄存器说明 KEA128 子系列参考手册, Rev. 2, July 2014 196 Freescale Semiconductor, Inc. 第 15 章 外设桥(AIPS-Lite) 15.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 外设桥将交叉开关接口转连至一个能访问片上大多数从机外设的接口。 外设桥占用 64 MB 地址空间(划分为许多 4 KB 的外设插槽)。(所有的外设插槽也 可能都未使用。有关插槽分配的详情,请参见“存储器映像”章节。) 该联接器包含 单独的各时钟使能输入,使每个插槽都能支持速度较低的外设。 15.1.1 特性 外设桥的主要特性: • 支持 8 位、16 位和 32 位数据路径宽度的外设插槽 15.1.2 一般操作 连接外设桥的从设备模块均有可编程的控制和状态寄存器。系统主机通过外设桥对 这些寄存器进行读写操作。外设桥执行主机事务的总线协议转换并产生下列信号作 为外设的输入: • 模块使能 • 模块地址 • 传输属性 • 字节使能 • 写入数据 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 197 功能说明 外设桥从外设接口选择并捕捉读取的数据,并将其返回至交叉开关。 外设的寄存器映像位于 4 KB 边界上。 每个外设均分配了一个或多个 4-KB 存储器 映像数据块。 AIPS-Lite 模块使用已访问外设的数据宽度执行适当的数据字节通道路由;访问尺寸 大于外设数据宽度时执行总线分解(总线尺寸调整)。 15.2 功能说明 外设桥用作交叉开关和从机外设总线之间的总线协议转换器。 外设桥管理面向连接的从设备的所有事务,并通过对连接的地址空间的访问进行解 码,从而为外设总线上的模块生成选择信号。 15.2.1 访问支持 支持访问大小和外设数据端口宽度的所有组合。大于目标外设数据宽度的访问将被 分解成多个小一些的访问。总线分解会由访问空寄存器空间的传输错误而终止。 KEA128 子系列参考手册, Rev. 2, July 2014 198 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.1 简介 WDOG 定时器模块是一个可供系统使用的独立定时器。它提供了安全特性,可确保 软件按计划执行,且 CPU 不会陷入死循环中或者执行错误的代码。若 WDOG 模块 在规定时间内未得到服务(刷新),它会复位 MCU。 16.1.1 特性 WDOG 模块特性包括: • 独立的可配置时钟源,与下述无关: • 总线时钟 • 内部 32 kHz RC 振荡器 • 内部 1 kHz RC 振荡器 • 外部时钟源 • 可编程的定时溢出周期 • 可编程的 16 位定时溢出值 • 如需更长的定时溢出周期,可选用固定 256 倍的时钟预分频器 • 稳健的计数器刷新写入序列 • 在 16 个总线时钟内,先后写入 0x02A6 以及 0x80B4 进行刷新 • 可选的窗口刷新模式 • 可编程的 16 位窗口值 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 199 简介 • 监测程序流程是否快于预期 • 过早刷新会触发复位 • 可选的定时溢出中断,允许后期诊断处理 • 根据中断向量指向的中断服务程序,CPU 响应相应的中断请求 • 在中断产生 128 个总线时钟后,强制复位 • WDOG 配置位在复位后只能被写入一次,防止误修改 • 解锁 WDOG 单次写入配置位 • 在 16 个总线时钟内,先写入 0x20C5 再写入 0x28D9 的解锁序列,可实现对 WDOG 配置位的更新 • 软件必须在解锁后、且 WDOG 解锁窗口关闭前的 128 个总线时钟内完成配 置更新的操作 16.1.2 结构框图 下图为 WDOG 模块的结构框图。 16位定时溢出值寄存器 0x02A6 0x80B4 刷新序列 写入控制 32K时钟 外部时钟 比较逻辑 计数器 溢出 16位计数器寄存器 计数器 复位 控制 逻辑 128个总线 周期延迟 多路复用器 1K时钟 多路复用器 总线时钟 多路复用器 备用复位 CPU复位 256 比较逻辑 EN 更新 16位窗口寄存器 窗口 保护 0x20C5 控制状态 0x28D9 位写入控制 IRQ中断 128个总线周期 禁用保护 CLK PRES WIN INT 图 16-1. WDOG 结构框图 KEA128 子系列参考手册, Rev. 2, July 2014 200 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.2 存储器映像和寄存器定义 注 如果使用半字访问 WDOG_CNT、WDOG_TOVAL 和 WDOG_WIN,则必须遵循“低字节:高字节”的转置 16 位字 节格式。因此推荐使用 8 位的读/写操作方式。 WDOG 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4005_2000 WDOG 控制和状态寄存器 1 (WDOG_CS1) 8 R/W 80h 16.2.1/201 4005_2001 WDOG 控制和状态寄存器 2 (WDOG_CS2) 8 R/W 01h 16.2.2/203 4005_2002 WDOG 计数器寄存器:高位 (WDOG_CNTH) 8 R 00h 16.2.3/203 4005_2003 WDOG 计数器寄存器:低位 (WDOG_CNTL) 8 R 00h 16.2.4/204 4005_2004 WDOG 定时溢出值寄存器:高位 (WDOG_TOVALH) 8 R/W 00h 16.2.5/205 4005_2005 WDOG 定时溢出值寄存器:低位 (WDOG_TOVALL) 8 R/W 04h 16.2.6/205 4005_2006 WDOG 窗口寄存器:高位 (WDOG_WINH) 8 R/W 00h 16.2.7/206 4005_2007 WDOG 窗口寄存器:低位 (WDOG_WINL) 8 R/W 00h 16.2.8/206 16.2.1 WDOG 控制和状态寄存器 1 (WDOG_CS1) 本节说明 WDOG 控制和状态寄存器 1 的功能。 注 TST 仅在 POR 上才清零(0:0)。任何其他复位都不会影响该 字段的数值。 地址: 4005_2000h 基准 + 0h 偏移 = 4005_2000h 位 读 写 复位 7 6 5 4 EN INT UPDATE 1 0 0 3 TST 0 0 2 1 0 DBG WAIT STOP 0 0 0 WDOG_CS1 字段描述 字段 7 EN 描述 WDOG 使能 该一次写入位使能 WDOG 计数器以开始计数。 0 1 6 INT WDOG 禁用。 WDOG 使能。 WDOG 中断 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 201 存储器映像和寄存器定义 WDOG_CS1 字段描述 (继续) 字段 描述 该一次写入位配置 WDOG,使得在发生触发复位的事件(定时溢出或 WDOG 非法写入)时,先产生一个中 断请求,然后再强制进行复位。中断产生后的 128 个总线时钟延迟之后发生强制复位。 0 1 5 UPDATE 允许更新 该一次写入位使系统无需复位即能重新配置 WDOG。 0 1 4–3 TST WDOG 中断禁用。WDOG 复位无延迟。 WDOG 中断使能。WDOG 复位有 128 个总线时钟延迟。 不允许更新。完成初始配置后,除非强制复位,否则无法修改 WDOG 配置。 允许更新。执行解锁写入序列后,软件可以在 128 个总线时钟内修改 WDOG 配置寄存器。 WDOG 测试 使能快速测试模式。测试模式允许软件检查计数器的所有位,来验证 WDOG 工作正常。参见 WDOG 快速测 试 部分。 该一次写入字段仅在 POR 时才清零(0:0)。任何其他复位都不会影响该字段的数值。 00 01 10 11 2 DBG Debug 模式使能 该一次写入位在芯片处于 Debug 模式时使能 WDOG 的操作。 0 1 1 WAIT WDOG 在芯片 Debug 模式下禁用。 WDOG 在芯片 Debug 模式下使能。 Wait 模式使能 该一次写入位在芯片处于 Wait 模式时使能 WDOG 的操作。 0 1 0 STOP WDOG 测试模式禁用。 WDOG 用户模式使能(WDOG 测试模式禁用)。完成 WDOG 测试后,软件应使用这项测试来表明 WDOG 在用户模式下工作正常。 WDOG 测试模式使能,仅使用低位字节。将 WDOG_CNTL 与 WDOG_TOVALL 进行比较。 WDOG 测试模式使能,仅使用高位字节。将 WDOG_CNTH 与 WDOG_TOVALH 进行比较。 WDOG 在芯片 Wait 模式下禁用。 WDOG 在芯片 Wait 模式下使能。 Stop 模式使能 该一次写入位在芯片处于 Stop 模式时使能 WDOG 的操作。 0 1 WDOG 在芯片 Stop 模式下禁用。 WDOG 在芯片 Stop 模式下使能。 KEA128 子系列参考手册, Rev. 2, July 2014 202 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.2.2 WDOG 控制和状态寄存器 2 (WDOG_CS2) 本节说明 WDOG 控制和状态寄存器 2 的功能。 地址: 4005_2000h 基准 + 1h 偏移 = 4005_2001h 位 读 写 复位 7 WIN 6 5 FLG 0 w1c 0 0 4 3 1 0 PRES 0 2 0 0 0 CLK 0 0 1 WDOG_CS2 字段描述 字段 7 WIN 描述 WDOG 窗口工作模式 该一次写入位使能窗口模式。参见窗口模式 部分。 0 1 6 FLG WDOG 中断标志 当 INT 在控制和状态寄存器 1 中置位后,该位是中断产生的标志位。写入 1 将其清零。 0 1 5 保留 4 PRES 窗口模式禁用。 窗口模式使能。 未发生中断。 发生一次中断。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 WDOG 预分频器 该一次写入位使能 WDOG 计数器基准时钟的 256 倍预分频器。(功能框图中显示了该时钟分频器选项。) 0 1 256 预分频器禁用。 256 预分频器使能。 3–2 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 CLK WDOG 时钟 该一次写入字段标示 WDOG 计数器的时钟源。参见时钟源 部分。 00 01 10 11 总线时钟。 1 kHz 内部低功耗振荡器(LPOCLK)。 32 kHz 内部振荡器(ICSIRCLK)。 外部时钟源。 16.2.3 WDOG 计数器寄存器:高位 (WDOG_CNTH) 本节说明 WDOG 计数器寄存器:高位(CNTH)和低位(CNTL)。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 203 存储器映像和寄存器定义 WDOG 计数器寄存器 CNTH 和 CNTL 提供对 WDOG 计数器数值的访问。软件可 在任意时刻对计数器寄存器进行读操作。 软件无法直接写入 WDOG 计数器;然而,针对这两个寄存器的两个写入序列具有 特殊功能: 1. 刷新序列可将 WDOG 计数器复位至 0x0000。参见刷新 WDOG 部分。 2. 解锁序列使 WDOG 能在不强制复位(WDOG_CS1[UPDATE] = 1 时)的情况下 得到重新配置。参见代码示例:重新配置 WDOG 部分。 注 对这些寄存器的所有其他写操作均无效,并且会强制复位。 地址: 4005_2000h 基准 + 2h 偏移 = 4005_2002h 位 7 6 5 4 读 3 2 1 0 0 0 0 0 3 2 1 0 0 0 0 0 CNTHIGH 写 复位 0 0 0 0 WDOG_CNTH 字段描述 字段 CNTHIGH 描述 WDOG 计数器的高位字节 16.2.4 WDOG 计数器寄存器:低位 (WDOG_CNTL) 参见 WDOG_CNTH 寄存器说明。 地址: 4005_2000h 基准 + 3h 偏移 = 4005_2003h 位 7 6 5 4 读 CNTLOW 写 复位 0 0 0 0 WDOG_CNTL 字段描述 字段 CNTLOW 描述 WDOG 计数器的低位字节 KEA128 子系列参考手册, Rev. 2, July 2014 204 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.2.5 WDOG 定时溢出值寄存器:高位 (WDOG_TOVALH) 本节说明 WDOG 定时溢出值寄存器:高位(WDOG_TOVALH)和低位 (WDOG_TOVALL)。WDOG_TOVALH 和 WDOG_TOVALL 包含 16 位数值,用于 设置 WDOG 的定时溢出周期。 WDOG 计数器(WDOG_CNTH 和 WDOG_CNTL)与定时溢出值(WDOG_TOVALH 和 WDOG_TOVALL)不断地进行比较。若计数器达到定时溢出值,则 WDOG 会强 制进行复位。 注 不要将 0 写入 WDOG 定时溢出值寄存器,否则 WDOG 一 直产生复位信号。 地址: 4005_2000h 基准 + 4h 偏移 = 4005_2004h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 TOVALHIGH 0 0 0 0 WDOG_TOVALH 字段描述 字段 TOVALHIGH 描述 定时溢出值的高位字节 16.2.6 WDOG 定时溢出值寄存器:低位 (WDOG_TOVALL) 参见 WDOG_TOVALH 寄存器说明。 注 有读操作时,所有位复位为 0。 地址: 4005_2000h 基准 + 5h 偏移 = 4005_2005h 位 读 写 复位 7 6 5 4 3 2 1 0 0 1 0 0 TOVALLOW 0 0 0 0 WDOG_TOVALL 字段描述 字段 TOVALLOW 描述 定时溢出值的低位字节 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 205 功能说明 16.2.7 WDOG 窗口寄存器:高位 (WDOG_WINH) 本节说明 WDOG 窗口寄存器:高位(WDOG_WINH)和低位(WDOG_WINL)。窗口模 式使能后(WDOG_CS2[WIN]置位),WDOG_WINH 和 WDOG_WINL 决定刷新序 列被视为有效的最早时间。参见 WDOG 刷新机制 部分。 WDOG_WINH 和 WDOG_WINL 必须小于 WDOG_TOVALH 和 WDOG_TOVALL。 地址: 4005_2000h 基准 + 6h 偏移 = 4005_2006h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 3 2 1 0 0 0 0 0 WINHIGH 0 0 0 0 WDOG_WINH 字段描述 字段 WINHIGH 描述 WDOG 窗口的高位字节 16.2.8 WDOG 窗口寄存器:低位 (WDOG_WINL) 参见 WDOG_WINH 寄存器说明。 地址: 4005_2000h 基准 + 7h 偏移 = 4005_2007h 位 读 写 复位 7 6 5 4 WINLOW 0 0 0 0 WDOG_WINL 字段描述 字段 WINLOW 描述 WDOG 窗口的低位字节 16.3 功能说明 WDOG 模块提供故障安全机制,确保系统在出现故障时(比如 CPU 时钟停摆或软 件代码出现跑飞)能够复位至已知状态。WDOG 计数器采用选定的时钟源工作,并 监测是否定期得到更新(喂狗)。若非如此,它便会复位系统。 定时溢出周期、窗口模式和时钟源均可以编程配置,但必须在复位后的 128 个总线 时钟内进行配置。 KEA128 子系列参考手册, Rev. 2, July 2014 206 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.3.1 WDOG 刷新机制 若 WDOG 计数器未得到刷新,则 WDOG 会复位 MCU。鲁棒性刷新机制使跑飞的 代码不太可能刷新 WDOG。 要刷新 WDOG 计数器,软件必须在定时溢出周期终止前执行刷新写序列。此外, 如果使用了窗口模式,那么只有在 WDOG_WINH 和 WDOG_WINL 的窗口时间值 设置好之后,软件才能开始执行刷新序列。请参见下图。 WDOG计数器 WDOG_TOVALH 和 WDOG_TOVALL WDOG_WINH 和 WDOG_WINL 刷新机会 (窗口模式) 0 刷新机会(非窗口模式) 时间 图 16-2. WDOG 计数器的刷新机会 16.3.1.1 窗口模式 软件比预期更快地完成主控制循环,则表明可能存在系统问题。根据用户应用的具 体要求,可以配置 WDOG,在提前刷新 WDOG 的时候,强制系统复位。 窗口模式使能时,必须在计数器达到最小窗口时间值后刷新 WDOG;否则,WDOG 会复位 MCU。最小窗口时间值在 WDOG_WINH:L 寄存器中进行设置。设置 CS1[WIN] 即可启用窗口模式。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 207 功能说明 16.3.1.2 刷新 WDOG 刷新写入序列为:先将 0x02A6 写入 WDOG_CNTH 和 WDOG_CNTL 寄存器,然后 再将 0x80B4 写入。写入 0x80B4 的操作必须在写入 0x02A6 后的 16 个总线时钟内 执行;否则,看门狗会复位 MCU。 注 在开始执行刷新序列前,先禁用全局中断。否则,如果产生 中断,写入四个字节所需的时间就会长于 16 个总线周期, 从而刷新序列失效。在刷新序列完成后重新使能全局中断。 16.3.1.3 示例代码:刷新 WDOG 下面的代码段显示了 WDOG 模块的刷新写序列。 注 下列示例代码的组合情况为:8 位 WDOG_CNTH 和 WDOG_CNTL 组合为 16 位 WDOG_CNT;8 位 WDOG_TOVALH 和 WDOG_TOVALL 组合为 16 位 WDOG_TOVAL;WDOG_WINH 和 WDOG_WINL 组合为 WDOG_WIN,并采用 16 位访问。 /* Refresh watchdog */ for (;;) // main loop { ... DisableInterrupts; // disable global interrupt WDOG_CNT = 0x02A6; // write the 1st refresh word WDOG_CNT = 0x80B4; // write the 2nd refresh word to refresh counter EnableInterrupts; // enable global interrupt } ... 16.3.2 配置 WDOG 所有 WDOG 控制位、定时溢出值和窗口值都只能在复位后一次写入。这表示,除 非复位,否则它们的内容在写操作后无法更改。这就为配置 WDOG 提供了可靠的 机制,确保软件跑飞时无法误禁用或误修改已配置过的 WDOG。 KEA128 子系列参考手册, Rev. 2, July 2014 208 Freescale Semiconductor, Inc. 第 16 章 WDOG 用户首先配置窗口和定时溢出值,然后再配置其他控制位并确保 CS1[UPDATE]也 置 0,从而实现上述功能。该新配置仅在复位后一次写入除 WDOG_CNTH:L 外的所 有寄存器后生效。否则,WDOG 默认使用复位值。如果未使用窗口模式(CS2[WIN] 为 0),那么不需要将数值写入 WDOG_WINH:L 来使新配置生效。 16.3.2.1 重新配置 WDOG 某些情况下(比如支持 bootloader 功能时),用户可能想要在不先强制复位的情况下 重新配置或禁用 WDOG。这时可以通过复位后进行 WDOG 初始配置时将 CS1[UPDATE]置 1,从而使用户可采用执行解锁序列的方法,在任意时刻重新配置 WDOG。(相反,如果 CS1[UPDATE]保持 0,重新配置 WDOG 的唯一方法是发起 复位。)解锁序列与刷新序列类似,但使用不同的数值。 16.3.2.2 解锁 WDOG 解锁序列是指在配置完 WDOG 之后,在 16 个总线时钟内先对 WDOG_CNTH:L 寄 存器写入 0x20C5,然后再写入 0x28D9。完成解锁序列后,用户必须在 128 个总线 时钟内重新配置 WDOG;。 注 由于重新配置 WDOG 有 128 个总线时钟要求,因此在重新 配置 WDOG 之后、执行 STOP 或 WAIT 指令之前必须插入 一定的延迟。这样可确保 WDOG 的新配置在 MCU 进入低 功耗模式之前生效。否则,可能无法将 MCU 从低功耗模式 中唤醒。 16.3.2.3 代码示例:重新配置 WDOG 下面的代码段显示了 WDOG 模块的重新配置示例。 /* Initialize watchdog with ~1-kHz clock source, ~1s time-out */ DisableInterrupts; // disable global interrupt WDOG_CNT = 0x20C5; // write the 1st unlock word WDOG_CNT = 0x28D9; // write the 2nd unlock word WDOG_TOVAL = 1000; // setting timeout value WDOG_CS2 = WDOG_CS2_CLK_MASK; // setting 1-kHz clock source WDOG_CS1 = WDOG_CS1_EN_MASK; // enable counter running EnableInterrupts; // enable global interrupt KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 209 功能说明 16.3.3 时钟源 WDOG 计数器有四个时钟源选项,可以通过对 CS2[CLK]进行编程来选择: • • • • 总线时钟 运行频率约为 1 kHz 的内部低功耗振荡器(LPO)(为默认源) 内部 32 kHz 时钟 外部时钟 这些选项允许软件选择独立于总线时钟的时钟源,以满足安全要求更严格的应用需 要。如果总线时钟由于某些原因而暂停,那么使用非总线时钟的时钟源可确保 WDOG 计数器继续运行;参见备用复位 。 可用于所有时钟源的分频数固定的可选预分频器可以实现较长的定时溢出周期。 CS2[PRES]置位后,时钟源先进行 256 倍预分频,随后对 WDOG 计数器进行计时。 下表总结了可用的不同 WDOG 定时溢出周期。 表 16-1. WDOG 定时溢出可用性 基准时钟 内部 约 1 kHz (LPO) 内部 约 32 kHz 1 MHz(来自总线或外部) 20 MHz(来自总线或外部) 预分频器 WDOG 定时溢出可用性 直通式 约 1 ms–65.5 s1 ÷256 约 256 ms–16,777 s 直通式 约 31.25 µs–2.048 s ÷256 约 8 ms–524.3 s 直通式 1 µs–65.54 ms ÷256 256 µs–16.777 s 直通式 50 ns–3.277 ms ÷256 12.8 µs–838.8 ms 1. 复位后的默认定时溢出值约为 4 ms。 注 当程序员在重新配置期间切换时钟源时,WDOG 硬件将计 数器保持在零,持续时间为配置时间周期(128 个总线周 期)后,保持上一个时钟源的 2.5 个周期和新时钟源的 2.5 个周期。该延迟可确保采用新配置重新启动计数器前的平 稳过渡。 KEA128 子系列参考手册, Rev. 2, July 2014 210 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.3.4 使用中断延迟复位 中断使能(CS1[INT] = 1)时,WDOG 在发生复位触发事件(如计数器定时溢出或无 效刷新尝试)时首先生成中断请求。WDOG 延迟 128 个总线时钟进行强制复位,从 而允许中断服务程序(ISR)执行任务,如分析堆栈以调试代码。 中断禁用(CS1[INT] = 0)时,WDOG 不会延迟进行强制复位。 16.3.5 备用复位 注 必须使用总线时钟以外的其它时钟源作为计数器的基准时 钟;否则,备用复位功能不可用。 备用复位功能是一种安全保护特性,在 WDOG 主逻辑丢失其时钟(总线时钟)而 无法再监控计数器时,独立生成复位。如果 WDOG 计数器连续两次溢出(没有强 制复位),那么备用复位功能生效并生成复位。 16.3.6 Debug 模式及低功耗模式下的功能 默认情况下,WDOG 在 Active Background 模式、Wait 模式或 Stop 模式下不工作。 但是,WDOG 在如下这些模式中仍然工作: • 对于 Active Background 模式,置位 CS1[DBG]。(通过这种方式,即使 CPU 状 态由调试模块保持,WDOG 也可在 Active Background 模式下工作。) • 对于 Wait 模式,置位 CS1[WAIT]。 • 对于 Stop 模式,置位 CS1[STOP]。 注 WDOG 无法在 Stop 模式下生成中断——即使 CS1[STOP] 已置位——且不会将 MCU 从 Stop 模式中唤醒。它可以在 Stop 模式期间生成复位。 对于 Active Background 模式和 Stop 模式,除了上述配置外, 必须使用总线时钟以外的其他时钟源作为计数器的基准时 钟;否则,WDOG 无法运行。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 211 功能说明 16.3.7 WDOG 快速测试 在安全性能很关键的应用中,执行应用程序代码之前,用户需要测试 WDOG 是否 按预期进行工作并复位 MCU。对 16 位计数器进行完全测试的方法是使其运行至 溢出值,这会花费相对较长的时间(64 k 个时钟周期)。 为了最大限度降低复位后应用程序代码的启动延迟,WDOG 提供了一种测试方法, 即通过将计数器分成字节宽度的各级,来更快速地测试 WDOG。低位和高位字节独 立运行,并针对定时溢出值寄存器的对应字节执行定时溢出测试。 (为了全面测试计 数器的高位字节,测试时通过低位字节的第 8 位将输入时钟送入,从而确保低位字 节到高位字节的进位溢出性能被测试。) 使用该测试特性可将测试时间缩短至 512 个时钟(不包括用户配置和复位向量提取 等开销)。为进一步加快测试速度,可以使用速度更快的时钟(如总线时钟)作为计 数器基准。 上电复位时,系统复位寄存器中的 POR 位置位,指示用户应当执行 WDOG 快速测 试。 16.3.7.1 测试计数器的每一个字节 测试步骤如下: 1. WDOG 配置时间周期内,在 WDOG_TOVALH 和 WDOG_TOVALL 寄存器中写 入设计的数值。 2. 选择待测试的计数器的字节:对于低位字节,使用 WDOG_CS1[TST] = 10b;对 于高位字节,使用 WDOG_CS1[TST] = 11b。 3. 等待 WDOG 出现定时溢出。或者在闲置循环中,使 RAM 位置增量,以便用作 后续比较的并行软件计数器。由于 RAM 不受 WDOG 复位影响,因此 WDOG 计数器的定时溢出周期能与软件计数器作比较,以验证定时溢出周期是否如预 期发生。 4. WDOG 计数器定时溢出并强制复位。 5. 确认系统复位寄存器中的 WDOG 标志已置位,表明 WDOG 导致复位。 (POR 标志位保持清零状态。 ) 6. 确认 WDOG_CS1[TST]显示测试(10b 或 11b)已执行。 若得到确认,对选定的字节执行计数功能和比较功能。重复该流程,选择步骤 2 中 的另一字节。 注 WDOG_CS1[TST]仅通过 POR 清零,并且不受其他复位影 响。 KEA128 子系列参考手册, Rev. 2, July 2014 212 Freescale Semiconductor, Inc. 第 16 章 WDOG 16.3.7.2 进入用户模式 顺利完成对 WDOG 计数器低位和高位字节的测试后,用户可将 WDOG_CS1[TST] 配置为 01b,以指示 WDOG 准备用于应用用户模式。因此,如果再次发生复位,软 件可将复位触发视为软件跑飞或故障应用代码导致的真正 WDOG 复位。 作为一个持续进行的测试,在使用默认的 1 kHz 时钟源时,软件可定期对 WDOG_CNTH 和 WDOG_CNTL 寄存器进行读操作以确保计数器处于递增状态。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 213 功能说明 KEA128 子系列参考手册, Rev. 2, July 2014 214 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 17.1 简介 位操作引擎(BME)针对基于 Cortex-M0+的微控制器中对外设地址空间的读取-修改写入存储器原子操作提供硬件支持。 这种架构能力亦称为“已修饰存储(decorated storage)”,因其定义了一种机制,可为 外设的加载和存储(load-store)操作提供额外的语义,而不只是对目标地址的读和写。 在 BME 定义中,“修饰”(即额外的语义信息)经编码后进入外设地址,用于存储器 基准。 通过组合 Cortex-M 指令集架构(v6M,v7M)的基本加载和存储指令,加上 BME 提供的已修饰存储概念,这种架构为低端微控制器提供了可靠且高效的读取-修改写入能力。该内核平台所定义的架构能够对外设寄存器提供 n-bit 字段操作,并与内 置的 C 语言标准 I/O 硬件寻址相一致。就大多数 BME 命令而言,单个内核读写总 线周期转换为一个原子读取-修改-写入,即一个透明的“先读后写”总线序列。 BME 已修饰基准只能用于处理器内核产生的系统总线操作,并且其目标地址应是以 0x4000_0000 为基地址的 512KB 标准外设地址空间 1 或以 0x2000_0000 为基地址 的 SRAM_U 空间。修饰语义嵌入地址位[28:19],在地址 0x4400_0000– 0x5FFF_FFFF 处为外设桥创建448MB 的空间;在地址 0x2400_0000–0x3FFF_FFFF 为 SRAM_U 创建 448MB 的空间;这些位在发送至外设总线控制器的实际地址中被 略去了,BME 用它们来定义并控制其操作。 17.1.1 概述 下图是该类超低端微控制器的处理器内核和平台的一般结构框图。 1. 为精确起见,外设地址空间占用 516 KB 区域:基地址为 0x4000_0000 的 512 KB 加上基地址为 F_F000 的 4 KB 空间,用 于 GPIO 访问。此结构与 Kinetis K Family 兼容。尝试访问 0x4008_0000 - 0x400F_EFFF 之间的存储器空间会因地址非法 而导致错误终止。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 215 简介 Cortex-M0+内核 Dbg NVIC CM0+内核平台 提取 AGU 12月 Rn LD/ST SHFT ALU MUL IO端口 32 PRAM RAM 阵列 GPIO BME m0 s1 AXBS -Lite PBRIDGE s2 32 从机 外设 s0 FMC 32 NVM 阵列 注意:只能通过内核访问BME。 图 17-1. Cortex-M0+内核平台结构框图 如该结构框图所示,BME 模块与交叉开关上的主端口连接,从而使其支持对 SRAM_U(图中所示的平台 RAM(PRAM))和外设桥(PBRIDGE)控制器进行的读 取-修改-写入(read-modify-wirte)的原子操作。BME 硬件的微架构采用二级流水线 设计,符合 AMBA-AHB 系统总线接口协议。PBRIDGE 模块将 AHB 系统总线协议 转换为 IPS/APB 协议,用于连接的从外设。 17.1.2 特性 BME 的主要特性包括: • 针对选定地址空间进行的已修饰存储的轻量级实施 • 将附加访问语义编码到基准地址中 • 位于处理器内核和开关主端口之间 • 符合 AHB 系统总线协议的两级流水线设计 • 可将非修饰访问组合传输至从设备总线控制器 • 可将来自处理器内核的已修饰加载和存储转换为原子读取-修改-写入 • 已修饰加载支持无符号位字段提取、加载和{置位,清零} 1 位操作 • 已修饰存储支持位字段插入、逻辑“与”、“或”和“异或”操作 KEA128 子系列参考手册, Rev. 2, July 2014 216 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) • 支持字节、半字和字大小的修饰操作 • 支持在 AHB 输出总线上执行最少的信号切换,以降低功耗 17.1.3 工作模式 BME 模块不支持任何特殊工作模式。作为位于交叉主 AHB 系统总线端口上的内 存映射器件,BME 严格按照内存地址作出响应,以便访问 SRAM_U 和外设桥总线 控制器。 所有 BME 模块的相关功能都位于内核平台时钟域内,包括它与交叉主端口、 SRAM_U 和 PBRIDGE 总线控制器的连接。 17.2 存储器映像和寄存器定义 BME 模块提供存储器映像功能,且不包含任何编程模型寄存器。 功能说明 中将详细介绍 BME 支持的确切功能。 外设地址空间占据 516 KB 区域:基地址为 0x4000_0000 的 512 KB 加上基地址为 0x400F_F000 的 4 KB GPIO 访问空间;已修饰地址空间映射至位于 0x4400_0000– 0x5FFF_FFFF 的 448 MB 区域。与 SRAM_U 有关的已修饰地址空间为映射在 0x2400_0000 - 0x3FFF_FFFF 的 448 MB 区域。 17.3 功能说明 此处信息详细说明该 BME 支持的功能。 如前文所述,Cortex-M 指令集架构(v6M,v7M)的基本加载和存储指令组合加上 BME 提供的已修饰存储概念,这种实施方法为这类超低端微控制器提供了可靠且高 效的读取-修改-写入能力。由该内核平台功能所定义的架构能力可在外设寄存器和 RAM 中实现 n 位字段操作,并与内置的 C 语言标准 I/O 硬件寻址相一致。就大多 数 BME 命令而言,单个内核读写总线周期转换为一个原子读取-修改-写入,即一个 透明的“先读后写”总线序列。 应当首先执行已修饰存储操作,然后执行已修饰加载。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 217 功能说明 17.3.1 BME 已修饰存储 BME 已修饰存储支持的功能包括三个逻辑运算符(AND、OR、XOR)以及一个位 字段插入。 对于所有这些操作而言,BME 可将单个已修饰 AHB 存储事务转换为一个双周期原 子读取-修改-写入序列,其中读取-修改组合操作在第一个 AHB 数据阶段执行,然 后写入操作在第二个 AHB 数据阶段执行。 显示外设位字段插入操作的已修饰存储的一般时序示意图如下所示: x 周期尺标 x+1 x+2 x+3 hclk BME AHB输入总线 mx_haddr next 5..v_wxyz mx_hattr next mx_hwrite next mx_hwdata wdata mx_hrdata mx_hready BME AHB输出总线 sx_haddr 400v_wxyz 400v_wxyz next sx_hattr next sx_hwrite next sx_hwdata wdata bfi rdata sx_hrdata rdata sx_hready BME状态 + 数据路径 control_state_dp1 control_state_dp2 reg_addr_data_dp 5..v_wxyz wdata bfi rdata 图 17-2. 已修饰存储:位字段插入时序示意图 所有已修饰存储操作遵循图 17-2 中所示的相同执行模板,双周期读取-修改-写入操 作: 1. 周期 x,首个 AHB 地址阶段:来自输入总线的写操作被转换成输出总线上实际 地址(修饰已移除)的读操作,且该地址被捕捉到一个寄存器中。 2. 周期 x+1,第二个 AHB 地址阶段:对捕捉的(实际)内存地址的写访问被输 出。 3. 周期 x+1,首个 AHB 数据阶段:使用输入总线上的写入数据和修饰定义的功能 对存储器读取数据进行修改,其结果被捕捉到一个数据寄存器中;输入总线周 期停止。 KEA128 子系列参考手册, Rev. 2, July 2014 218 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 4. 周期 x+2,第二个 AHB 数据阶段:捕捉到数据寄存器的数据被输出到输出写数 据总线上。 注 由从设备插入的任何等待状态直接通过 BME 传回主设备输 入总线,从而逐周期停止 AHB 事务。 17.3.1.1 已修饰存储逻辑与(AND) 该命令执行基准存储器位置的原子读取-修改-写入 1. 首先,读取该位置; 2. 然后,通过使用来自系统总线周期的写数据操作数执行逻辑与(AND)操作对其 进行修改 3. 最后,AND 操作结果写回基准存储器位置。 数据尺寸由写入操作定义,可以是字节(8 位)、半字(16 位)或字(32 位)。进行 字节和半字传输时,内核执行所需的写入数据通道复制操作。 31 30 29 28 27 26 25 24 23 22 ioandb 0 ioandh 0 ioandw 0 21 20 19 18 17 16 15 14 13 12 11 10 9 * 0 0 1 - - - - - - mem_addr * * 0 0 1 - - - - - - * * 0 0 1 - - - - - - mem_addr mem_addr * 8 7 6 5 4 3 2 0 1 0 0 0 图 17-3. 已修饰存储地址:逻辑与(AND) 参见图 17-3 ,其中 addr[30:29] = 01 (SRAM_U),addr[30:29] = 10(外设),addr[28:26]= 001(指定 AND 操作),mem_addr[19:0]指定空间偏移地址(对于 SRAM_U,基地 址为0x2000_0000;对于外设,基地址为 0x4000_0000)。 "-" 表示地址位无关。 已修饰 AND 写操作采用下列伪代码定义: ioand<sz>(accessAddress, wdata) tmp = mem[accessAddress & 0xE00FFFFF, size] tmp = tmp & wdata mem[accessAddress & 0xE00FFFFF, size] = tmp // // // // decorated store AND memory read modify memory write 其中,操作数大小<sz>定义为 b(字节,8 位)、h(半字,16 位)和 w(字,32 位)。 本文通篇使用这种标记方式。 在周期定义表中,标记 AHB_ap 和 AHB_dp 表示 BME AHB 事务的地址和数据阶 段。下表详细介绍各周期的 BME 操作。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 219 功能说明 表 17-1. 已修饰存储的周期定义:逻辑与(AND) 流水线级 周期 x BME AHB_ap x+1 x+2 <下一个> 地址转发到存储器;解码修饰; 将捕捉到的地址以及属性作为 将 master_wt(主设备_写)转 slave_wt(从设备_写)转发给 换为 slave_rd(从设备_读); 存储器 捕捉地址,属性 BME AHB_dp <上一个> 执行存储器读取;在寄存器中形 执行写操作,将寄存器中的数据 成形成(rdata & wdata)并捕捉 发送至存储器 目标数据 17.3.1.2 已修饰存储逻辑或(OR) 该命令执行基准存储器位置的原子读取-修改-写入 1. 首先,读取该位置。 2. 然后,通过使用来自系统总线周期的写数据操作数执行逻辑或(OR)操作对其进 行修改。 3. 最后,OR 操作结果写回基准存储器位置。 数据尺寸由写入操作定义,可以是字节(8 位)、半字(16 位)或字(32 位)。进行 字节和半字传输时,内核执行所需的写入数据通道复制操作。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 ioorb 0 * * ioorh 0 * ioorw 0 * 0 1 * 0 * 0 11 10 9 0 - - - - - - mem_addr 1 0 - - - - - - 1 0 - - - - - - mem_addr mem_addr 8 7 6 5 4 3 2 1 0 0 0 0 图 17-4. 已修饰地址存储:逻辑或(OR) 参见图 17-4 ,其中 addr[30:29] = 01 (SRAM_U),addr[30:29] =10(外设),addr[28:26]= 010(指定 OR 操作),mem_addr[19:0]指定空间偏移地址(对于 SRAM_U,基地址 为0x2000_0000;对于外设,基地址为 0x4000_0000)。"-" 表示地址位无关。 已修饰 OR 写操作采用下列伪代码定义: ioor<sz>(accessAddress, wdata) // decorated store OR tmp = mem[accessAddress & 0xE00FFFFF, size] tmp = tmp | wdata mem[accessAddress & 0xE00FFFFF, size] = tmp // memory read // modify // memory write 逐周期 BME 操作详情见下表。 KEA128 子系列参考手册, Rev. 2, July 2014 220 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 表 17-2. 已修饰存储的周期定义:逻辑或(OR) 流水线级 周期 x BME AHB_ap x+1 x+2 <下一个> 地址转发到存储器;解码修饰; 将捕捉到的地址以及属性作为 将 master_wt(主设备_写)转 slave_wt(从设备_写)转发给 换为 slave_rd(从设备_读); 存储器 捕捉地址,属性 BME AHB_dp <上一个> 执行存储器读取;在寄存器中形 执行写操作,将寄存器中的数据 成(rdata | wdata)并捕捉目标数 发送至存储器 据 17.3.1.3 已修饰存储逻辑异或(XOR) 该命令执行基准存储器位置的原子读取-修改-写入 1. 首先,读取该位置。 2. 然后,通过使用来自系统总线周期的写数据操作数执行逻辑异或(XOR)操作对其 进行修改。 3. 最后,XOR 操作结果写回基准存储器位置。 数据尺寸由写入操作定义,可以是字节(8 位)、半字(16 位)或字(32 位)。进行 字节和半字传输时,内核执行所需的写入数据通道复制操作。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 ioxorb 0 * * ioxorh 0 * ioxorw 0 * 0 1 * 0 * 0 11 10 9 1 - - - - - - mem_addr 1 1 - - - - - - 1 1 - - - - - - mem_addr mem_addr 8 7 6 5 4 3 2 1 0 0 0 0 图 17-5. 已修饰地址存储:逻辑异或(XOR) 参见图 17-5 ,其中 addr[30:29] = 01 (SRAM_U),addr[30:29] =10(外设),addr[28:26]= 011(指定 XOR 操作),mem_addr[19:0]指定外设空间偏移地址(对于 SRAM_U, 基地址为0x2000_0000;对于外设,基地址为 0x4000_0000)。"-" 表示地址位无关。 已修饰 XOR 写操作采用下列伪代码定义: ioxor<sz>(accessAddress, wdata) // decorated store XOR tmp = mem[accessAddress & 0xE00FFFFF, size] tmp = tmp ^ wdata mem[accessAddress & 0xE00FFFFF, size] = tmp // memory read // modify // memory write 逐周期 BME 操作详情见下表。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 221 功能说明 表 17-3. 已修饰存储的周期定义:逻辑 XOR 流水线级 周期 x BME AHB_ap x+1 x+2 <下一个> 地址转发到存储器;解码修饰; 将捕捉到的地址以及属性作为 将 master_wt(主设备_写)转 slave_wt(从设备_写)转发给 换为 slave_rd(从设备_读); 存储器 捕捉地址,属性 BME AHB_dp <上一个> 执行存储器读取;在寄存器中形 执行写操作,将寄存器中的数据 成(rdata ^ wdata)并捕捉目标 发送至存储器 数据 17.3.1.4 已修饰存储位字段插入(BFI) 该命令使用一个原子读取-修改-写入序列,将由 LSB(b)和位字段宽度(w+1)定义的写 数据操作数中所含的位字段插入由与存储指令有关的访问尺寸定义的存储器“容器” 中。 数据尺寸由写入操作定义,可以是字节(8 位)、半字(16 位)或字(32 位)。 注 就字大小的操作而言,最大位字段宽度为 16 位。进行字节 和半字传输时,内核执行所需的写入数据通道复制操作。 BFI 操作可用于将单个位插入外设。就本例而言,w 字段置 0,表示位字段宽度为 1。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 iobfib 0 iobfih 0 0 iobfiw 9 * 1 - - b b b - w w w mem_addr * * 1 - b b b b w w w w mem_addr * * 1 b b w w w w mem_addr * b b b 8 7 6 5 4 3 2 1 0 0 0 0 图 17-6. 修饰地址存储:位字段插入 其中,addr[30:29] = 01 (SRAM_U),addr[30:29] =10(外设),addr[28] = 1(表示 BFI 操作),addr[27:23] = "b"(LSB 标识符),addr[22:19] = "w"(位字段宽度减 1 标识 符),addr[18:0]指定外设空间偏移地址(对于 SRAM_U,基地址为 0x2000_0000; 对于外设,基地址为 0x4000_0000)。"-" 表示地址位无关。注意,与其他已修饰保 存操作不同,BFI 使用 addr[19]作为"w"指示符中的最低有效位,而非地址位。 已修饰 BFI 写操作采用下列伪代码定义: iobfi<sz>(accessAddress, wdata) // decorated bit field insert tmp // memory read = mem[accessAddress & 0xE007FFFF, size] KEA128 子系列参考手册, Rev. 2, July 2014 222 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) mask tmp = ((1 << (w+1)) - 1) << b = tmp & ~mask | wdata & mask mem[accessAddress & 0xE007FFFF, size] = tmp // generate bit mask // modify // memory write 与存储指令有关的写数据操作数(wdata)包含待插入的位字段。它必须在右对齐的 容器内正确排列,即字节操作为最低 8 位内,半字操作为最低 16 位内,字操作为整 个 32 位内。 为便于说明,举例如下:向 8 位存储器容器中插入 3 位字段"xyz",其初始设置为 "abcd_efgh"。在所有情况下,w 都为 2,表示位字段宽度是 3。 if b = 0 and the decorated store (strb) then destination is "abcd_exyz" if b = 1 and the decorated store (strb) then destination is "abcd_xyzh" if b = 2 and the decorated store (strb) then destination is "abcx_yzgh" if b = 3 and the decorated store (strb) then destination is "abxy_zfgh" if b = 4 and the decorated store (strb) then destination is "axyz_efgh" if b = 5 and the decorated store (strb) then destination is "xyzd_efgh" if b = 6 and the decorated store (strb) then destination is "yzcd_efgh" if b = 7 and the decorated store (strb) then destination is "zbcd_efgh" Rt register[7:0] = ----_-xyz, Rt register[7:0] = ----_xyz-, Rt register[7:0] = ---x_yz--, Rt register[7:0] = --xy_z---, Rt register[7:0] = -xyz_----, Rt register[7:0] = xyz-_----, Rt register[7:0] = yz--_----, Rt register[7:0] = z---_----, 该例中,需注意若起始位的位置加上字段宽度超出存储器大小,则仅向目标存储器 位置插入一部分位字段源。若状态不同,假设(b + w+1) > container_width,则实际 只有低阶"container_width - b"位被插入。 下表详细介绍各周期的 BME 操作。 表 17-4. 已修饰存储的周期定义:位字段插入 流水线级 周期 x BME AHB_ap BME AHB_dp x+1 地址转发到存储器;解码修饰; 将捕捉到的地址以及属性作为 将 master_wt(主设备_写)转 slave_wt(从设备_写)转发给 换为 slave_rd(从设备_读); 存储器 捕捉地址,属性 <上一个> x+2 <下一个> 执行存储器读取;形成位屏蔽; 执行写操作,将寄存器中的数据 在寄存器中形成按位数据 发送至存储器 ((mask) ? wdata : rdata))并捕 捉目标数据 17.3.2 BME 已修饰加载 BME 已修饰加载支持的功能包括:单 bit 加载和置位操作,单 bit 加载和清零操作, 以及无符号位字段提取。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 223 功能说明 对于 2 个加载-{置位,清零}操作,BME 可将单个已修饰 AHB 加载事务转换为一个 双周期原子读取-修改-写入序列,其中读取-修改组合操作在首个 AHB 数据阶段执 行,然后写入操作在第二个 AHB 数据阶段执行,此时初始读取数据已返回至处理 器内核。对于无符号位字段提取,已修饰加载事务将在 BME 中停止一个周期—— 因为数据字段已被提取——然后在第二个 AHB 数据阶段进行对齐并返回至处理 器。这是唯一一个非原子读取-修改-写入操作的已修饰事务,因为它只是一次简单 的数据读取。 显示外设加载-置位 1 位操作的已修饰加载的一般时序示意图如下所示。 周期尺标 hclk x x+2 x+1 x+3 BME AHB输入总线 mx_haddr 4c.v_wxyz next mx_hattr next mx_hwrite next mx_hwdata mx_hrdata orig_1bit mx_hready BME AHB输出总线 sx_haddr 400v_wxyz 400v_wxyz next sx_hattr next sx_hwrite next sx_hwdata rdata + 1位 sx_hrdata rdata sx_hready BME状态 + 数据路径 control_state_dp1 control_state_dp2 reg_addr_data_dp 4c.v_wxyz rdata + 1位 图 17-7. 已修饰加载:加载-置位 1 位字段插入时序示意图 已修饰加载-{置位,清零}1 位操作遵循上图所示的执行模板:双周期读取-修改-写 入操作: 1. 周期 x,首个 AHB 地址阶段:根据实际存储器地址(修饰已移除)将从输入总 线的读取转换为输出总线上的读操作,然后该地址被捕捉到一个寄存器中 2. 周期 x+1,第二个 AHB 地址阶段:对捕捉的(实际的)存储器地址的写访问被 输出 KEA128 子系列参考手册, Rev. 2, July 2014 224 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 3. 周期 x+1,首个 AHB 数据阶段:在寄存器中捕捉“原始”1 位存储器读取数据, 根据修饰(采用寄存器中捕捉到的已修改数据)定义的功能进行 1 位字段的置 位或清零;输入总线周期停止 4. 周期 x+2,第二个 AHB 数据阶段:将选定的原始 1 位数据右对齐、零填充,然 后驱动至输入读取数据总线上,而已寄存的写入数据被发送到输出写数据总线 上 注 由从设备插入的任何等待状态直接通过 BME 传回主设备输 入总线,从而逐周期停止 AHB 事务。 显示无符号外设位字段操作的已修饰加载的一般时序示意图如下图所示。 周期尺标 1 hclk 2 3 4 BME AHB输入总线 mx_haddr 5..v_wxyz next mx_hattr next mx_hwrite next mx_hwdata mx_hrdata ubfx mx_hready BME AHB输出总线 sx_haddr 400v_wxyz next sx_hattr next sx_hwrite next sx_hwdata sx_hrdata rdata sx_hready BME状态 + 数据路径 control_state_dp1 control_state_dp2 reg_addr_data_dp 5..v_wxyz rdata 图 17-8. 已修饰加载:无符号位字段提取时序示意图 已修饰无符号位字段提取遵循与上图中双周期读取操作相同的执行模板: • 周期 x,首个 AHB 地址阶段:根据实际存储器地址(修饰已移除)将从输入总 线的读取转换为输出总线上的读操作,然后该地址被捕捉到一个寄存器中。 • 周期 x+1,第二个 AHB 地址阶段:空闲周期 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 225 功能说明 • 周期 x+1,第一个 AHB 数据阶段:根据起始位的位置和字段宽度生成一个位屏 蔽;屏蔽位与存储器读取数据之间执行 AND 运算以隔离位字段;计算结果被捕 捉到一个数据寄存器中;输入总线周期停止 • 周期 x+2,第二个 AHB 数据阶段:将已寄存数据逻辑右对齐并驱动至输入读取 数据总线 注 由从设备插入的任何等待状态直接通过 BME 传回主设备输 入总线,从而逐周期停止 AHB 事务。 17.3.2.1 已修饰加载:1 位加载-置位(LAS1) 该命令将 LSB 位(b)定义的 1 位字段加载至内核通用目标寄存器(Rt),并在执行原子 读取-修改-写入序列后将存储器空间中的这 1 位置位。 从存储器地址中提取的 1 位数据字段在返回至内核的操作数中右对齐和零填充。 数据尺寸由读取操作指定,可以是字节(8 位)、半字(16 位)或字(32 位)。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 iolaslb 0 * iolaslh 0 * iolaslw 0 * 11 10 9 * 0 1 1 - - b b b - mem_addr * 0 1 1 - b b b b - * 0 1 1 b b b b b - mem_addr mem_addr 8 7 6 5 4 3 2 1 0 0 0 0 图 17-9. 已修饰加载地址:1 位加载-置位 其中,addr[30:29] = 01 (SRAM_U),addr[30:29] = 10(外设),addr[28:26] = 011(指 定 1 位加载-置位操作),addr[25:21] = "b"(位标识符),mem_addr[19:0]指定空间 偏移地址(对于 SRAM_U,基地址为 0x2000_0000;对于外设,基地址为 0x4000_0000)。"-" 表示地址位无关。 已修饰 1 位加载-置位读操作采用下列伪代码定义: rdata = iolas1<sz>(accessAddress) tmp = mem[accessAddress & 0xE00FFFFF, size] mask = 1 << b rdata = (tmp & mask) >> b tmp = tmp | mask mem[accessAddress & 0xE00FFFFF, size] = tmp // decorated load-and-set 1 // // // // // memory read generate bit mask read data returned to core modify memory write 逐周期 BME 操作详情见下表。 KEA128 子系列参考手册, Rev. 2, July 2014 226 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 表 17-5. 已修饰加载的周期定义:1 位加载-置位 流水线级 周期 x BME AHB_ap x+1 x+2 <下一个> 地址转发到存储器;解码修饰; 将捕捉到的地址以及属性作为 捕捉地址,属性 slave_wt(从设备_写)转发给 存储器 BME AHB_dp <上一个> 执行存储器读取;形成位屏蔽; 将已提取位返回至主设备;执行 从 rdata 提取位;在寄存器中形 写操作,从而将已寄存的数据发 成(rdata | mask)并捕捉目标数 送到存储器 据 17.3.2.2 已修饰加载无符号位字段提取(UBFX) 该命令使用一个双周期读取序列,从与加载指令有关的访问尺寸所定义的存储器“容 器”中提取 LSB 位(b)定义的位字节和位字段宽度(w+1)。 从存储器地址中提取的位字段在返回至内核的操作数中右对齐和零填充。如前文所 述,这是唯一一个不执行存储器写入的已修饰操作,即 UBFX 仅执行读取操作。 数据尺寸由写入操作定义,可以是字节(8 位)、半字(16 位)或字(32 位)。注 意,就字大小的操作而言,最大位字段宽度为 16 位。 建议使用 UBFX 操作提取单个位。就本例而言,w 字段置 0,表示位字段宽度为 1。 31 30 29 28 27 26 25 24 23 22 ioubfxb 0 ioubfxh 0 ioubfxw 0 21 20 19 18 17 16 15 14 13 12 11 10 9 * 1 - - b b b - w w w mem_addr * * 1 - b b b b w w w w * * 1 b b b b b w w w w mem_addr mem_addr * 8 7 6 5 4 3 2 1 0 0 0 0 图 17-10. 已修饰加载地址:无符号位字段提取 参见图 17-10 ,其中:addr[30:29] = 01 (SRAM_U),addr[30:29] = 10(外设),addr[28]= 1(指定无符号位字段提取操作),addr[27:23] = "b"(LSB 标识符),addr[22:19] ="w" (位字段宽度减 1 标识符),mem_addr[18:0]指定空间偏移地址(对于 SRAM_U,基 地址为0x2000_0000;对于外设,基地址为 0x4000_0000。"-" 表示地址位无关。注 意,与其他已修饰加载操作不同,UBFX 使用 addr[19]作为"w"指示器中的最低有效 位,而非地址位。 已修饰无符号位字段提取读操作采用下列伪代码定义: rdata = ioubfx<sz>(accessAddress) tmp = mem[accessAddress & 0xE007FFFF, size] mask = ((1 << (w+1)) - 1) << b rdata = (tmp & mask) >> b // unsigned bit field extract // memory read // generate bit mask // read data returned to core KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 227 功能说明 像 BFI 操作一样,如果起始位的位置加上字段宽度超出容器大小,则仅从目标存储 器单元提取源位字段的一部分。也就是说,如果(b + w+1) > container_width,则实 际只有低阶"container_width - b"位被提取。下表详细介绍各周期的 BME 操作。 表 17-6. 已修饰加载的周期定义:无符号位字段提取 流水线级 周期 x BME AHB_ap x+1 地址转发到存储器;解码修饰; 空闲 AHB 地址阶段 捕捉地址,属性 BME AHB_dp <上一个> x+2 <下一个> 执行存储器读取;形成位屏蔽; 已寄存的数据逻辑右移;将对齐 在寄存器中形成(rdata & 的 rdata 返回至主机 mask)并捕捉目标数据 17.3.3 已修饰地址和 GPIO 访问的更多详情 如前文所述,外设地址空间占用 516 KB 区域:基地址为 0x4000_0000 的 512 KB 加 上基地址为 0x400F_F000 的 4 KB 空间,用于 GPIO 访问。此存储器布局与 Kinetis K Family 兼容,可提供 129 个地址插槽,每个大小为 4 KB。 GPIO 地址空间由硬件映射到多个地址:它在“标准”系统地址 0x400F_F000 处出现, 并位于与地址 0x4000_F000 对应的地址插槽中。已修饰加载和数据存储使访问 GPIO 的情况稍显复杂。地址[19]的使用随修饰运算而有所不同;对于 AND、OR、 XOR、LAC1 和 LAS1,此位相当于真正的地址位,而对于 BFI 和 UBFX,此位定义 了“w”位字段说明符中最不重要的位。 因此,未修饰的 GPIO 访问和已修饰的 AND、OR、XOR、LAC1、LAS1 运算可使 用标准 0x400F_F000 基地址,而已修饰的 BFI 和 UBFX 运算则必须使用替代的 0x4000_F000 基地址。另一种实施可以只将 0x400F_F000 用作所有未修饰 GPIO 访 问的基地址,以及将 0x4000_F000 用作所有已修饰访问的基地址。两种实施都有硬 件支持 表 17-7. 已修饰外设和 GPIO 地址详情 外设地址空间 说明 0x4000_0000–0x4007_FFFF 未修饰(正常)外设访问 0x4008_0000–0x400F_EFFF 非法地址;尝试的访问被终止并且以错误结束 0x400F_F000–0x400F_FFFF 使用标准地址的未修饰(正常)GPIO 访问 0x4010_0000–0x43FF_FFFF 非法地址;尝试的访问被终止并且以错误结束 0x4400_0000–0x4FFF_FFFF 以 0x4000_F000 或 0x400F_F000 为基地址对外设和 GPIO 的已修饰 AND、OR、XOR、 LAC1、LAS1 操作。 0x5000_0000–0x5FFF_FFFF 以 0x4000_F000 为基地址对外设和 GPIO 的已修饰 BFI、UBFX 操作。 KEA128 子系列参考手册, Rev. 2, July 2014 228 Freescale Semiconductor, Inc. 第 17 章 位操作引擎(BME) 17.4 应用信息 在本节中,以带 C 语言表达式操作数的 GNU 汇编器宏为例介绍执行已修饰运算所 需的指令。 本节专门介绍 bme.h 文件的一部分,该文件定义的是已修饰逻辑存储的汇编语言表 达式:AND、OR 和 XOR。BFI 和已修饰加载的对应函数更加复杂,可在完整的 BME 头文件中查看。 这些宏使用功能说明 中介绍的相同的函数名。 #define IOANDW(ADDR,WDATA) \ __asm("ldr r3, =(1<<26);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "str r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOANDH(ADDR,WDATA) \ __asm("ldr r3, =(1<<26);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strh r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOANDB(ADDR,WDATA) \ __asm("ldr r3, =(1<<26);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strb r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOORW(ADDR,WDATA) \ __asm("ldr r3, =(1<<27);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "str r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOORH(ADDR,WDATA) \ __asm("ldr r3, =(1<<27);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strh r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOORB(ADDR,WDATA) \ __asm("ldr r3, =(1<<27);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strb r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOXORW(ADDR,WDATA) \ __asm("ldr r3, =(3<<26);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "str r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOXORH(ADDR,WDATA) __asm("ldr r3, =(3<<26);" \ \ KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 229 应用信息 "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strh r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); #define IOXORB(ADDR,WDATA) \ __asm("ldr r3, =(3<<26);" \ "orr r3, %[addr];" \ "mov r2, %[wdata];" \ "strb r2, [r3];" \ :: [addr] "r" (ADDR), [wdata] "r" (WDATA) : "r2", "r3"); KEA128 子系列参考手册, Rev. 2, July 2014 230 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 18.1 简介 FTMRE 模块可以实现以下功能: • 对 Flash (Flash)存储器编程 Flash 存储器非常适合单电源应用,允许字段重编程操作,无需任何外部高压电源即 可进行编程或擦除操作。Flash 模块包含一个存储器控制器,用于执行命令以修改 Flash 内容。与存储器控制器连接的用户接口包含 Flash 通用命令对象(FCCOB)寄 存器,通过填入执行命令,全局地址,数据等参数对该寄存器进行写入操作。存储 器控制器必须先完成某个命令的执行,然后才能以新的命令对 FCCOB 寄存器进行 写入操作。 警告 在编程之前,Flash 字节或长字必须处于已擦除状态。不允 许对 Flash 中已经编程(写 0)的区域重复编程(写 0)。 按字节对 Flash 存储器进行读取操作。字节的读取访问时间是一个总线周期。对于 Flash 存储器,已擦除的位读取为 1,已编程的位读取为 0。 18.2 特性 18.2.1 Flash 存储器特性 Flash 存储器具有以下特性: • 64KB Flash 存储器由一个 64KB 的 Flash 块组成,它分成 128 个扇区,每个扇区 512 字节 • 带有校验功能的自动化编程,擦除算法 • 快速扇区擦除和长字编程操作 • 灵活的保护方案以防止意外的编程和擦除操作 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 231 功能说明 18.2.2 Flash 模块其他特性 Flash 存储器模块的其他特性如下: • 无需外部高电压电源即可进行 Flash 存储器的编程和擦除操作 • 完成 Flash 命令 • 利用加密机制防止未经授权访问 Flash 存储器 18.3 功能说明 18.3.1 工作模式 Flash 存储器模块提供正常的用户工作模式。工作模式取决于模块级的输入,同时会 影响、FCNFG 和 FCLKDIV 寄存器。 18.3.1.1 Wait 模式 如果 MCU 进入 Wait 模式,闪存 模块不受影响。Flash 模块可通过 CCIF 中断从 Wait 模式中恢复 MCU。参见 Flash 中断 。 18.3.1.2 Stop 模式 如果在 MCU 请求 Stop 模式时 Flash 命令正在执行(FSTAT[CCIF] = 0),则当前 NVM 操作完成之后,MCU 才被允许进入 Stop 模式。 18.3.2 Flash 存储器映射 Flash 存储器在 MCU 地址空间的布置如下表所示。 表 18-1. Flash 存储器地址 全局地址 Flash 大小 说明 0x0000_0000–0x0000_FFFF 64 KB Flash 块包含 Flash 配置字段。 0x0000_0000–0x0001_FFFF 128 KB Flash 块包含 Flash 配置字段。 KEA128 子系列参考手册, Rev. 2, July 2014 232 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 18.3.3 系统复位之后的 Flash 初始化 每次系统复位时,Flash 模块都会执行一个初始化序列,为 Flash 区块配置参数、 FPROT 保护寄存器以及 FOPT 和 FSEC 寄存器建立初始值。如果在执行复位过程 中遇到错误,初始化过程会将上述寄存器恢复为内置的默认值,使模块处于受到充 分保护的加密状态。如果在复位序列期间检测到错误,两个 FSTAT[MGSTAT]位都 将置位。 FSTAT[CCIF]在整个初始化序列期间都会清零。NVM 模块在初始化过程中的一段 时间内不会对 CPU 发来的任何请求作出响应。去掉这种阻截之后,将允许读取 Flash。FSTAT[CCIF]设置为高电平标志着初始化序列完成,此时即可使能用户命 令。FSTAT[CCIF]保持清零状态时,无法对寄存器 FCCOBIX 或 FCCOB 进行写入 操作。 如果在任何 Flash 命令处理过程中发生复位,将立即中止该命令。对于正在编程的 字或正在擦除的扇区/区块,无法保证其状态。 18.3.4 Flash 命令操作 Flash 命令操作用于修改 Flash 内存内容。 Flash 命令的操作包含以下三个步骤: 1. 为 Flash 编程和擦除命令配置时钟。 2. 使用命令写入序列以设置 Flash 命令参数并启动命令执行。 3. 根据 MCU 功能模式和 MCU 加密状态执行合法的 Flash 命令。 下图显示了 Flash 命令写入序列的通用流程图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 233 功能说明 开始 读取:FCLKDIV 寄存器 时钟分频器 值检查 否 FDIV 正确? 读取:FSTAT 寄存器 是 读取:FSTAT 寄存器 FCCOB 可用性检查 CCIF 置位? 否 注意:每次复位后必须 设置FCLKDIV 是 否 CCIF 置位? 写入:FCLKDIV 寄存器 是 访问错误和 误写入保护区域检查 否 ACCERR 或FPVIOL置位? 来自上一个命令的结果 是 写入:FSTAT寄存器 清零ACCERR FPVIOL 0x30 写入FCCOBIX寄存器 以识别要加载的 特定命令参数 写入FCCOB寄存器 以加载所需的命令 参数 更多 参数? 否 写入:FSTAT寄存器 (以启动命令) 清零CCIF 0x80 是 读取:FSTAT寄存器 轮询命令执行 是否完成 否 CCIF置位? 是 结束 图 18-1. 通用 Flash 命令写入序列流程图 KEA128 子系列参考手册, Rev. 2, July 2014 234 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 18.3.4.1 写 FCLKDIV 寄存器 复位后,在发出任何 Flash 程序或擦除命令之前,用户需对 FCLKDIV 寄存器进行写 操作,以将 BUSCLK 分频为 1 MHz 的目标 FCLK。下表展示了基于 BUSCLK 频率 建议的 FCLKDIV[FDIV]值。 表 18-2. 各 BUSCLK 频率对应的 FDIV 值 BUSCLK 频率 FDIV[5:0] (MHz) 最小值 1 最大值 2 1.0 1.6 0x00 1.6 2.6 0x01 2.6 3.6 0x02 3.6 4.6 0x03 4.6 5.6 0x04 5.6 6.6 0x05 6.6 7.6 0x06 7.6 8.6 0x07 8.6 9.6 0x08 9.6 10.6 0x09 10.6 11.6 0x0A 11.6 12.6 0x0B 12.6 13.6 0x0C 13.6 14.6 0x0D 14.6 15.6 0x0E 15.6 16.6 0x0F 16.6 17.6 0x10 17.6 18.6 0x11 18.6 19.6 0x12 19.6 20.6 0x13 20.6 21.6 0x14 21.6 22.6 0x15 22.6 23.6 0x16 23.6 24.6 0x17 24.6 25.6 0x18 1. BUSCLK 大于此值。 2. BUSCLK 小于或等于此值。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 235 功能说明 警告 如果总线时钟的运行频率低于 0.8 MHz,则无法执行编程或 擦除 Flash 存储器的操作。将 FCLKDIV[FDIV]置位得过高 会造成电气负载过大,从而破坏 Flash 存储器。将 FCLKDIV[FDIV]置位得太低会导致 Flash 存储器单元的编 程或擦除不完整。 对 FCLKDIV 寄存器采取写入操作后,FCLKDIV[FDIVLD]将自动置位。如果 FCLKDIV[FDIVLD]为 0,则说明自上次复位后未对 FCLKDIV 寄存器采取写入操 作。如果尚未对 FCLKDIV 寄存器进行写操作,则写入序列期间加载的任何 Flash编 程或擦除命令都不会执行且 FSTAT[ACCERR]将置位。 18.3.4.2 命令写入序列 存储器控制器会启动所有通过命令写入序列输入的合法的 Flash 命令。 启动某个命令前,必须清零 FSTAT[ACCERR]和 FSTAT[FPVIOL],而且将会测试 FSTAT[CCIF]标志,以便确定当前命令写入序列的状态。如果 FSTAT[CCIF]为 0, 则表明上一个命令写入序列仍然有效,不能开始新的命令写入序列,将忽略对 FCCOB 寄存器采取的所有写入操作。 被执行 Flash 命令的所有参数都必须加载到 FCCOB 参数字段。对 FCCOB 参数字 段的访问是通过 FCCOBIX[CCOBIX]控制的。 Flash 命令模式使用编入索引的 FCCOB 寄存器向存储器控制器提供命令代码及其 相关参数。首先,用户必须设置所有必需的 FCCOB 字段。然后,用户才能通过将 1 写入 FSTAT[CCIF]来启动命令的执行。此操作可将 CCIF 命令完成标志清 0。当 用户清零 FSTAT[CCIF]时,所有 FCCOB 参数字段均锁定,在命令完成(存储器控 制器将 FSTAT[CCIF]恢复为 1)之前不能由用户更改。有些命令向 FCCOB 寄存器 阵列中返回信息。 下表展示了 Flash 命令模式中 FCCOB 参数字段的一般格式。FSTAT[CCIF]标志由 存储器控制器恢复为 1 之后,即可读取返回值。将忽略对未实施的参数字段采取的 写入操作(FCCOBIX[CCOBIX] =110b 和 FCCOBIX[CCOBIX] = 111b),从这些字段 读取到的值会返回为 0x0000。 表 18-3 展示了一般 Flash 命令格式。CCOB 阵列中第一个字的高字节包含命令代 码,随后是此特定 Flash 命令的参数。有关每个命令所需的 FCCOB 设置详情,请参 见 Flash 命令汇总 中的 Flash 命令说明。 KEA128 子系列参考手册, Rev. 2, July 2014 236 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 表 18-3. FCCOB – Flash 命令模式的典型用法 CCOBIX[2:0] 000 001 010 011 100 101 字节 Flash 命令模式中的 FCCOB 参数字段 HI FCMD[7:0]定义 Flash 命令 LO 全局地址[23:16] HI 全局地址[15:8] LO 全局地址[7:0] HI 数据 0 [15:8] LO 数据 0 [7:0] HI 数据 1 [15:8] LO 数据 1 [7:0] HI 数据 2 [15:8] LO 数据 2 [7:0] HI 数据 3 [15:8] LO 数据 3 [7:0] 用户通过写入 1 清零 FSTAT[CCIF]命令完成标志时,FCCOB 参数字段的内容将传 输到存储器控制器中。在 Flash 命令完成之前,CCIF 标志一直保持清零状态。完成 后,存储器控制器将 FSTAT[CCIF]恢复为 1,FCCOB 寄存器则用于传达结果。 下表展示了合法的 Flash 命令,这些功能(命令)可能受到 MCU 工作模式和加密状 态的限制。 MCU 加密状态由 FSEC[SEC]选择。 表 18-4. 按模式和加密状态执行的 Flash 命令 解密 加密 U1 U2 擦除检验所有数据块 * * 0x02 擦除检验数据块 * * 0x03 擦除检验 Flash 段 * * 0x04 读取一次 * * 0x06 编程 Flash * * 0x07 编程一次 * * 0x08 擦除所有数据块 * * 0x09 擦除 Flash 数据块 * * 0x0A 擦除 Flash 扇区 * * 0x0B 解密的 Flash * * 0x0C 检验后门访问密钥 * * 0x0D 设置用户裕量水平 * * 0x0E 设置出厂裕量水平 * * 0x0F 配置 NVM * * FCMD 命令 0x01 1. 解密的用户模式 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 237 功能说明 2. 加密的用户模式 18.3.5 Flash 中断 当 Flash 命令操作完成时或,Flash 模块可产生中断。 表 18-5. Flash 中断源 中断源 Flash 命令完成 中断标志 本地使能 全局(CCR)掩码 CCIF CCIE (FSTAT 寄存器) (FCNFG 寄存器) I位 18.3.5.1 Flash 中断操作的说明 Flash 模块结合使用 FSTAT[CCIF]标志与 FCNFG[CCIE]中断使能位,以生成 Flash 命令中断请求。 下图展示了生成 Flash 模块中断所用的逻辑。 CCIE CCIF Flash命令 完成中断请求 图 18-2. Flash 模块中断的实现 18.3.6 保护 可通过设置 FPROT 寄存器来保护 Flash 存储器中的某些区域,防止意外的编程或擦 除操作。有三个单独的存储器区域:一个从 Flash 存储器中的全局地址 0x0000 向上 增长,称为低位区域;一个从 Flash 存储器中的全局地址 0x7FFF 向下增长,称为高 位区域;最后一个是 Flash 存储器中的其余地址,可激活进行保护。 这些可受保护 的区域所覆盖的 Flash 存储器地址显示在 Flash 存储器映射中。 KEA128 子系列参考手册, Rev. 2, July 2014 238 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 16字节(0x0_0400 - 0x0_040F) Flash开始 = 0x0_0000 0x0_0800 Flash配置字段 0x0_1000 0x0_2000 2、4、8、16 KB Flash受保护/无保护低位区域 0x0_4000 8 KB(最高可达29 KB) Flash受保护/无保护区域 保护 固定结束 0x0_6000 0x0_7000 保护 可移动的结束 0x0_7800 0x0_7400 0x0_8000 1、2、4、8 KB Flash受保护/无保护高地址区域 保护 固定结束 32 KB Flash受保护/无保护区域 Flash结束 = 0x0_FFFF 图 18-3. 64 KB 的 Flash 保护存储器映射 如下表所述,Flash 配置字段中存储了默认保护设置和加密信息,这些设置和信息允 许 MCU 限制对 Flash 模块的访问。 表 18-6. Flash 配置字段 全局地址 0x0400–0x0407 0x0408–0x040B 1 0x040C–0x040F1 大小(字节) 说明 8 后门比较密钥。参见“检验后门访问密钥”命令 和使用后门密钥访问解密 MCU 。 4 保留 1 Flash 非易失字节 - 数据[31:24] 1 Flash 加密字节 - 数据[23:16] 1 Flash 保护字节 - 数据[15:8] 1 保留位 - 数据[7:0] 1. 0x0_0408–0x040B 和 0x040C–0x0_040F 形成每个地址范围内的 Flash 长字,必须以一个命令写入序列进行编程。这些标记 为保留的长字中的每个字节都必须编程为 0xFF。或者,也可以通过一个命令写入序列对 Flash 双字 0x0408-0x040F 进行编 程。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 239 功能说明 Flash 存储器 模块为 MCU 提供保护。在复位序列期间,Flash 存储器中全局地址 0x040D 处的 Flash 配置字段中的 Flash 保护字节将被载入 FPROT 寄存器。保护功 能取决于 FPROT 寄存器中的位设置配置。 表 18-7. Flash 保护功能 功能 1 FPOPEN FPHDIS FPLDIS 1 1 1 无 Flash 保护 1 1 0 受保护的低位范围 1 0 1 受保护的高位范围 1 0 0 受保护的高位和低位范围 0 1 1 整个 Flash 存储器受保护 0 1 0 无保护的低位范围 0 0 1 无保护的高位范围 0 0 0 无保护的高位和低位范围 1. 有关范围大小,请参见 Table 4 和 Table 5 有些应用需要在单芯片模式下进行重编程操作,同时在无需重编程的 Flash 区域提 供尽可能多的保护,此时即可使用 Flash 保护方案。 KEA128 子系列参考手册, Rev. 2, July 2014 240 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) FPLDIS = 0 FPHDIS = 1 FPLDIS = 0 FPHDIS = 0 7 6 5 4 3 2 1 0 FPHS[1:0] 0x0_0000 0x0_7FFF FPOPEN = 1 场景 FPLDIS = 1 FPHDIS = 0 FPLS[1:0] FPLDIS = 1 FPHDIS = 1 FLASHEND FPHS[1:0] FPLS[1:0] 0x0_0000 0x0_7FFF FPOPEN = 0 场景 FLASHEND 无保护区域 大小由FPHS定义的受保护区域 不由FPLS、FPHS定义的受保护区域 大小由FPLS定义的受保护区域 图 18-4. Flash 保护场景 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 241 功能说明 一般准则是只能增加而不能移除 Flash 保护。下表指定了 Flash 保护场景之间所有 的有效转换。将忽略任何尝试对 FPROT 寄存器写入无效场景的操作都将被忽略。 FPROT 寄存器的内容反映了有效的保护场景。有关其他限制,请参见 FPROT[FPHS]和 FPROT[FPLS]字段说明。 表 18-8. Flash 保护场景的转换 从保护场景 0 到保护场景 1 0 1 2 3 × × × × 1 × 2 4 × 4 × × × × × × × × 7 × × × × 7 × 3 6 6 × × 5 5 × × × × × × 1. 允许的转换标记为 X。 下面两个表列出了与上表中的场景相关的 Flash 保护地址范围。 表 18-9. Flash 保护较高地址范围 FPHS[1:0] 全局地址范围 受保护的大小 00 0x7C00–0x7FFF 1 KB 01 0x7800–0x7FFF 2 KB 10 0x7000–0x7FFF 4 KB 11 0x6000–0x7FFF 8 KB 表 18-10. Flash 保护较低地址范围 FPLS[1:0] 全局地址范围 受保护的大小 00 0x0000–0x07FF 2 KB 01 0x0000–0x0FFF 4 KB 10 0x0000–0x1FFF 8 KB 11 0x0000–0x3FFF 16 KB 图 18-4 中展示了所有可能的 Flash 保护场景。尽管保护方案是在复位序列期间从 Flash 存储器的全局地址 0x040D 加载的,但用户仍然可对其进行更改。 KEA128 子系列参考手册, Rev. 2, July 2014 242 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 18.3.7 加密 Flash 模块向 MCU 提供安全信息。Flash 安全状态由 FSEC[SEC]定义。在复位期 间,Flash 模块使用从 Flash 配置字段的安全字节读取的数据初始化 FSEC 寄存器。 假设在 MCU 启动时的模式中需要的 Flash 擦除和编程命令都可用且 Flash 的高地 址区域未受到保护,可通过对安全字节进行编程来对复位后的安全状态进行永久性 的更改。如果成功地对 Flash 安全字节进行了编程,其新值将在下一次 MCU 复位后 生效。 以下小节介绍了这些与安全相关的主题: • 使用后门秘钥来解密 MCU • 使用 SWD 来解密 MCU • MCU 模式和加密状态对 Flash 命令的影响 18.3.7.1 使用后门密钥访问解密 MCU 利用后门密钥访问特性可以解密 MCU,该特性要求了解后门密钥的内容,也就是 在地址 0x400–0x407 编程的四个 16 位字。如果 KEYEN[1:0]位处于使能状态,“检 验后门访问密钥”命令(参见 “检验后门访问密钥”命令 )将允许用户呈现四个可能 的密钥,以便通过存储器控制器与 Flash 存储器中存储的密钥进行比较。如果“检验 后门访问密钥”命令中呈现的密钥与 Flash 存储器中存储的密钥匹配,则 FSEC[SEC] 会被改变从而解密 MCU。不允许将 0x0000 和 0xFFFF 的密钥值作为后门密钥。“检 验后门访问密钥”命令处于有效状态时,无法对 Flash 存储器进行读取访问,尝试这 次操作将返回无效数据。 Flash 存储器中存储的用户代码必须有方法从外部刺激接收后门密钥。通常情况下, 可以使用串口接收外部密钥输入。 如果 KEYEN[1:0]位处于使能状态,则可通过下述后门密钥访问序列解密 MCU: 1. 按“检验后门访问密钥”命令 中的说明遵循“检验后门访问密钥”命令的命令序 列。 2. 如果“检验后门访问密钥”命令成功,将会解密 MCU,并且 FSEC[SEC]会强制为 解密的状态 10。 “检验后门访问密钥”命令由存储器控制器监控,非法密钥会导致禁止继续使用“检验 后门访问密钥”命令。要重新使能“检验后门访问密钥”命令,唯一的方法就是复位 MCU。使用“检验后门访问密钥”序列不会更改 Flash 安全字节中定义的安全状态。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 243 功能说明 地址 0x400–0x407 中存储的后门密钥不受“检验后门访问密钥”命令序列影响。“检 验后门访问密钥”命令序列不影响 Flash 保护寄存器 FPROT 中定义的编程和擦除保 护。 正确匹配后门密钥之后,将解密 MCU。解密 MCU 之后,可以擦除包含 Flash 安全 字节的扇区,Flash 安全字节可以重新编程为解密的状态(如果需要)。在解密的状 态下,用户可通过对 Flash 配置字段中的地址 0x400–0x407 进行编程来充分控制后 门密钥的内容。 18.3.7.2 使用 SWD 解密 MCU 可用以下方式使安全状态下的 MCU 处于不安全状态,以擦除闪存 内存: 1. 2. 3. 4. 通过将 RESET 引脚或 DAP_CTRL[3]的电平变为有效值使器件复位。 使 DAP_CTRL[0]位置位,以便通过 SWD 激活调试整体擦除。 通过 SWD 使 RESET 引脚或 DAP_CTRL[3]位的电平变为无效值可解除复位。 一直等到 DAP_CTRL[0]位清零(整体擦除完成后,DAP_CTRL[0]位将自动清 零)。此时,CPU 将处于保持状态,整体擦除完成,该器件处于解密状态(Flash 配置字段中的 Flash 安全字节重编程为 0xFE)。 5. 复位该器件。 18.3.7.3 模式与加密状态对 Flash 命令可用性的影响 MCU 的工作模式和加密状态会对 Flash 模块的命令造成影响,如表 18-4 所示。 18.3.8 Flash 命令 18.3.8.1 Flash 命令 下表总结了有效的 Flash 命令以及这些命令对 Flash 区块及 Flash 模块内其他资源 的影响。 表 18-11. Flash 命令 FCMD 命令 0x01 擦除检验所有区块 0x02 擦除检验数据块 0x03 擦除检验 Flash 段 Flash 存储器上的功能 检验所有 Flash 区块是否都已擦除 检验某个 Flash 数据块是否已被擦除 检验从所提供的地址开始的给定数量的字是否已被擦除 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 244 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 表 18-11. Flash 命令 (继续) FCMD 命令 0x04 读取一次 0x06 编程 Flash 0x07 编程一次 0x08 擦除所有区块 Flash 存储器上的功能 读取 Flash 数据块内非易失性信息寄存器中的某个专用 64 字节字段,该字段之前 已通过“编程一次”命令进行了编程 在 Flash 区块内对最多两个长字进行编程 对 Flash 数据块内非易失性信息寄存器中的某个专用 64 字节字段进行编程,该字 段只允许编程一次 擦除所有 Flash 区块 只有在启动命令之前已置位 FPROT[FPHDIS]、FPROT[FPLDIS]及 FPROT[FPOEN]位的情况下,才可能擦除所有 Flash 区块 擦除某个 Flash 区块 0x09 擦除 Flash 区块 只有在启动命令之前已置位 FPROT[FPLDIS]、FPROT[FPHDIS]及 FPROT[FPOEN]的情况下,才可能擦除整个 Flash 区块。 0x0A 擦除 Flash 扇区 擦除某个 Flash 扇区中的所有字节 0x0B 解密的 Flash 0x0C 检验后门访问密钥 支持通过检验一组安全密钥来退出 MCU 加密状态 0x0D 设置用户裕量水平 为所有 Flash 区块指定用户裕量读取水平 0x0E 设置出厂裕量水平 为所有 Flash 区块指定出厂裕量读取水平 0x0F 配置 NVM 支持通过擦除所有 Flash 区块并检验是否所有 Flash 区块都已擦除来退出 MCU 加 密状态 配置 NVM 参数,以便使能或禁用 NVM 阵列中的某些特性,从而在某些特定场合 达到省电的目的。 18.3.9 Flash 命令汇总 本节详细介绍由命令写入序列启动的所有可用 Flash 命令。如果执行了以下任一非 法步骤,导致存储器控制器不处理命令,FSTAT[ACCERR]将在命令写入序列期间 置位: • 启动任何对 Flash 存储器进行编程或擦除操作的命令写入序列没有对 FLCKDIV 初始化。 • 写入无效命令作为命令写入序列的一部分。 • 有关其他可能的错误,请参见针对每个命令提供的错误处理表。 在对某个 Flash 区块执行算法(FSTAT[CCIF] = 0)期间对该区块进行读取操作的情况 下, 。这样还会触发非法访问异常情况。 如果 FSTAT[ACCERR]或 FSTAT[FPVIOL]已置位,则用户必须在启动任何命令写入 序列之前清空这些字段。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 245 功能说明 警告 在编程之前,Flash 长字必须处于已擦除状态。已编程的 Flash 长字不允许被再次编程。 18.3.9.1 “擦除验证所有数据块”命令 “擦除验证所有数据块”命令将验证所有闪存 模块都已被擦除。 表 18-12. “擦除验证所有数据块”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x01 不需要 清零 FSTAT[CCIF]以启动“擦除验证所有数据块”命令后,存储器控制器将验证整个 Flash 存储器空间是否都已被擦除。FSTAT[CCIF]在擦除验证所有数据块操作完成 后将置位。如果未擦除所有数据块,则表示空白检查失败且 FSTAT[MGSTAT]位都 将置位。 表 18-13. “擦除验证所有数据块”命令错误处理 寄存器 错误位 错误条件 ACCERR FSTAT FPVIOL 启动命令时,如果 CCOBIX[2:0] != 000,则置位 无 MGSTAT1 读取期间发生任何错误时置位 1 或空白检查失败时,则此位将置位 MGSTAT0 读取过程中发生任何非可纠正性错误,或者空白检查失败时,则此位将置位 1. 参见 NVM 存储器映射 18.3.9.2 “擦除验证数据块”命令 “擦除验证数据块”命令使用户可验证整个 Flash 模块已被擦除。FCCOB 全局地址 [23:0]位用于确定必须验证哪个数据块。 表 18-14. “擦除验证数据块”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x02 用于确定 Flash 数据块的全局地址[23:16] 001 Flash 数据块中要验证的全局地址[15:0] KEA128 子系列参考手册, Rev. 2, July 2014 246 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 清除 FSTAT[CCIF]以启动“擦除验证模块”命令后,内存控制器将验证选定的 Flash 模块已被擦除。FSTAT[CCIF]标志在擦除验证数据块操作完成后将置位。如果未擦 除该数据块,则意味着空白检查失败且 FSTAT[MGSTAT]位都会置位。 表 18-15. “擦除验证数据块”命令错误处理 寄存器 错误位 错误条件 ACCERR FSTAT FPVIOL 命令启动情况下 CCOBIX[2:0] != 000 时,则此位将置位 提供无效的全局地址[23:0]时,则此位将置位 1 无 MGSTAT1 读取过程中发生任何错误,或空白检查失败时,则此位将置位 MGSTAT0 读取过程中发生任何非可纠正性错误,或者空白检查失败时,则此位将置位 1. 如同在 NVM 存储器映像中发现的一样 18.3.9.3 “擦除检验 Flash 段”命令 “擦除检验 Flash 段”命令将检验 Flash 存储器中的某个代码段是否已擦除。“擦除检 验 Flash 段”命令定义了待检验代码的起始点和长字数。 表 18-16. “擦除检验 Flash 段”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x03 Flash 区块的全局地址[23:16] 001 要检验的第一个长字的全局地址[15:0] 010 要检验的长字数 清零 FSTAT[CCIF]以启动“擦除检验 Flash 段”命令时,存储器控制器将检验 Flash 存 储器的所选段是否已擦除。“擦除检验 Flash 段”操作完成后,将置位 FSTAT[CCIF]标 志。如果该段未擦除,也就意味着空白检查失败,两个 FSTAT[MGSTAT]位都将置 位。 表 18-17. “擦除检验 Flash 段”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 010 时置位 设置命令在当前模式下是否可用(参见表 18-4 ) ACCERR 如果提供了无效的全局地址 [23:0],则设置此参数(请参见 表 18-1 )1 提供未对齐的长字地址时置位(全局地址[1:0] != 00) FSTAT 请求的段越过 Flash 地址边界时置位 FPVIOL 无 MGSTAT1 读取期间发生任何错误时置位 2 或空白检查失败时 MGSTAT0 读取过程中发生任何无法纠正的错误时 2 或空白检查失败时置位 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 247 功能说明 1. 和 NVM 存储器映像定义的一样 2. 参见 NVM 存储器映射 18.3.9.4 “读取一次”命令 “读取一次”命令对 Flash 内非易失性信息寄存器中保留的 64 字节字段(8 个双字) 提供读取访问。“读取一次”字段只能编程一次,无法擦除。可用于存储产品 ID 或其 他任何只能写入一次的信息。使用“编程一次”命令 中介绍的“编程一次”命令进行 编程。为避免代码跑飞,不得从包含“编程一次”保留字段的 Flash 数据块执行“读取 一次”命令。 表 18-18. “读取一次”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOB 参数 000 0x04 不需要 001 “读取一次”双字索引(0x0000 – 0x0007) 010 “读取一次”字 0 值 011 “读取一次”字 1 值 100 “读取一次”字 2 值 101 “读取一次”字 3 值 清零 FSTAT[CCIF]以启动“读取一次”命令时,会提取一个“读取一次”双字并将其存 储在 FCCOB 寄存器数组中。“读取一次”操作完成后,FSTAT[CCIF]标志将置位。 “读取一次”命令的有效双字索引值范围是 0x0000 到 0x0007。执行“读取一次”命令 期间,任何尝试对 Flash 数据块内的地址进行读取的操作都将返回无效数据。 表 18-19. “读取一次”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 001 时置位 ACCERR FSTAT 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的双字索引时置位 FPVIOL 无 MGSTAT1 读取期间发生任何错误时置位 MGSTAT0 读取期间发生任何无法纠正的错误时置位 18.3.9.5 “编程 Flash”命令 “编程 Flash”操作将利用嵌入式算法对 Flash 存储器中之前已擦除的最多两个长字进 行编程。 KEA128 子系列参考手册, Rev. 2, July 2014 248 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 注 Flash 双字在被编程前必须处于已擦除状态。不允许对 Flash 双字内的位进行累计编程。 表 18-20. “编程 Flash”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x06 用于确定 Flash 数据块的全局地址[23:16] 001 要进行编程的长字位置的全局地址[15:0]1 010 字 0(长字 0)编程值 011 字 1(长字 0)编程值 100 字 2(长字 1)编程值 101 字 3(长字 1)编程值 1. 全局地址[1:0]必须为 00。 清零 FSTAT[CCIF]以启动“编程 Flash”命令时,存储器控制器将数据字编程到提供的 全局地址,接下来检验数据字是否按预期方式读回。FSTAT[CCIF]标志将在“编程 Flash”操作完成后置位。 表 18-21. “编程 Flash”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] ≠ 011 或 101 时置位 设置命令在当前模式下是否可用(参见表 18-4 ) ACCERR 提供无效的全局地址[23:0]时置位(参见表 18-1 。1 提供未对齐的长字地址(全局地址[1:0] != 00)时置位 FSTAT 请求的字组超过 Flash 数据块末尾时置位。 FPVIOL 全局地址[23:0]指向某个受保护数据时置位 MGSTAT1 检验操作期间发生任何错误时置位。 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 1. 和 NVM 存储器映像定义的一样。 18.3.9.6 “编程一次”命令 “编程一次”命令仅限于对 Flash 内非易失性信息寄存器中保留的 64 字节字段(8 个 双字)进行的编程。如“读取一次”命令 所述,可使用“读取一次”命令读取“编程一 次”保留字段。“编程一次”命令只能发出一次,因为无法擦除 Flash 内的非易失性信 息寄存器。为避免代码跑飞,不得从包含“编程一次”保留字段的 Flash 区块执行“编 程一次”命令。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 249 功能说明 表 18-22. “编程一次”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOB 参数 000 0x07 不需要 001 “编程一次”双字索引(0x000 – 0x0007) 010 “编程一次”字 0 值 011 “编程一次”字 1 值 100 “编程一次”字 2 值 101 “编程一次”字 3 值 清除 FSTAT[CCIF]以启动“编程一次”命令时,存储器控制器首先会检验所选双字是 否已被擦除。如已被擦除,则将对所选双字进行编程,然后进行读回检验。 FSTAT[CCIF]标志会保持清零状态,只有在“编程一次”操作完成后才会置位。 无法擦除“编程一次”命令访问的保留非易失性信息寄存器,不允许再次对任一双字 进行编程。“编程一次”命令的有效双字索引值范围是 0x0000 到 0x0007。执行“编程 一次”命令期间,任何尝试对 Flash 内的地址进行读取的操作都将返回无效数据。 表 18-23. “编程一次”命令错误处理 寄存器 错误位 错误条件 命令启动情况下满足 CCOBIX[2:0] != 101 时置位 ACCERR 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的双字索引时置位 目标地址已经被编程的情况下置位 1 FSTAT FPVIOL 无 MGSTAT1 检验操作期间发生任何错误时置位。 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 1. 如果某个“编程一次”双字初次编程为 0xFFFF_FFFF_FFFF_FFFF,将允许再次对该双字执行“编程一次”命令。 18.3.9.7 “擦除所有区块”命令 “擦除所有区块”操作将擦除整个 Flash 存储器空间。 表 18-24. “擦除所有区块”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x08 不需要 KEA128 子系列参考手册, Rev. 2, July 2014 250 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 清零 FSTAT[CCIF]以启动“擦除所有数据块”命令时,存储器控制器将擦除整个 NVM 存储器空间,并检验该空间是否已被擦除。如果存储器控制器检验到整个 NVM 存储器空间已被正确擦除,就会退出加密状态。因此,器件处于解密状态。 执行此命令期间(FSTAT[CCIF] = 0),用户不得对任何 NVM 模块寄存器进行写入操 作。FSTAT[CCIF]标志将在”擦除所有数据块“操作完成后置位。 表 18-25. “擦除所有数据块”命令错误处理 寄存器 错误位 ACCERR FSTAT FPVIOL 错误条件 命令启动情况下 CCOBIX[2:0] ≠ 000 时置位 设置命令在当前模式下是否可用(参见表 18-4 ) 有任何 Flash 存储器区域处于受保护状态时置位 MGSTAT1 检验操作期间发生任何错误时置位。1 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 1 1. 参见 NVM 存储器映像。 18.3.9.8 调试器整体擦除请求 “擦除所有数据块”命令的功能也可通过调试器整体擦除请求特性以非命令的方式实 现。 调试器整体擦除请求要求在调用这一功能之前先初始化时钟分频器寄存器 FCLKDIV。如果调用该特性时不允许直接向寄存器 FCLKDIV 写入值,则请查阅参 考手册以了解有关 FCLKDIV 默认值的信息。如果 FCLKDIV 未初始化,则将无法 执行调试器整体擦除请求,FSTAT[ACCERR]标志将会置位。执行整体擦除功能后, 将复位 FCLKDIV 寄存器,并且必须在启动任何其他命令前先初始化 FCLKDIV 寄 存器的值。 调用“擦除所有”功能之前,必须清零 FSTAT[ACCERR]和 FSTAT[FPVIOL]标志。调 用后,无论保护设置如何,调试器整体擦除请求都会擦除所有 Flash 存储器空间。 如果擦除后检验通过,随后会将 FSEC[SEC]设置为解密状态,由此退出加密状态。 “Flash 配置”字段中的安全字节将设置为解密状态。调试器整体擦除请求的状态反 映在 FCNFG[ERSAREQ]中。一旦此操作完成,将清零 FCNFG[ERSAREQ],且正常 的 FSTAT 错误报告将可用,如下表中所述。 整体擦除序列结束时,保护的配置情况仍然与执行整体擦除功能之前一样。如果应 用程序要求在整体擦除功能结束后对 P-Flash 进行编程,则必须考虑现有的保护限 制。如果需要禁用保护,用户可能需要在完成整体擦除功能之后立即复位系统。 表 18-26. 调试器整体擦除请求错误处理 寄存器 错误位 FSTAT ACCERR 错误条件 命令在当前模式下不可用时置位 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 251 功能说明 表 18-26. 调试器整体擦除请求错误处理 (继续) 寄存器 错误位 错误条件 MGSTAT1 擦除检验操作期间或编程检验操作期间发生任何错误时置位。 MGSTAT0 擦除检验操作期间或编程检验操作期间发生任何无法纠正的错误时置位。 18.3.9.9 “擦除 Flash 区块”命令 “擦除 Flash 区块”操作将擦除某个 Flash 区块中的所有地址。 表 18-27. “擦除 Flash 区块”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOB 参数 000 0x09 001 全局地址[23:16],以识别 Flash 区块 要擦除的 Flash 数据块中的全局地址[15:0] 清零 FSTAT[CCIF]以启动“擦除 Flash 数据块”命令时,存储器控制器将擦除所选的 Flash 数据块,并检验该数据块是否已被擦除。FSTAT[CCIF]标志会在“擦除 Flash 数 据块”操作完成后置位。 表 18-28. “擦除 Flash 数据块”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 001 时置位 ACCERR FSTAT 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的全局地址[23:16]时置位 1 FPVIOL 所选 Flash 数据块的某个区域处于受保护状态时置位 MGSTAT1 检验操作期间发生任何错误时置位。2 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 2 1. 和 NVM 存储器映像定义的一样。 2. 参见 NVM 存储器映像。 18.3.9.10 “擦除 Flash 扇区”命令 “擦除 Flash 扇区”操作将擦除某个 Flash 扇区中的所有地址。 KEA128 子系列参考手册, Rev. 2, July 2014 252 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 表 18-29. “擦除 Flash 扇区”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOB 参数 000 001 0x0A 用于确定要擦除的 Flash 数据块的全局地址 [23:16] 待擦除的扇区中任意位置上的全局地址 [15:0]。有关 Flash 扇区大小,请参见概述 清除 FSTAT[CCIF]以启动“擦除 Flash 扇区”命令时,存储器控制器将擦除所选的 Flash 扇区,并检验该扇区是否已被擦除。FSTAT[CCIF]标志在“擦除 Flash 扇区”操 作完成后置位。 表 18-30. “擦除 Flash 扇区”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 001 时置位 ACCERR FSTAT 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的全局地址[23:16]时置位。1(请参见表 18-1 ) 提供未对齐的长字地址(全局地址[1:0] != 00)时置位 FPVIOL 所选 Flash 扇区处于受保护状态时置位 MGSTAT1 检验操作期间发生任何错误时置位。 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 1. 参见 NVM 存储器映射 18.3.9.11 “解密 Flash”命令 “解密 Flash”命令会擦除整个 Flash 存储器空间,如果擦除成功,将退出加密状态。 表 18-31. “解密 Flash”命令的 FCCOB 要 求 CCOBIX[2:0] 000 FCCOB 参数 0x0B 不需要 清零 FSTAT[CCIF]以启动“解密 Flash”命令时,存储器控制器会擦除整个 Flash 存储 器空间,并检验该空间是否已擦除。如果存储器控制器检验到整个 Flash 存储器空 间都已正确擦除,将会退出加密状态。如果擦除检验不成功,“解密 Flash”操作将置 位 FSTAT[MGSTAT1]并终止但不更改加密状态。执行此命令期间(FSTAT[CCIF] = 0),用户不得对任何 Flash 模块寄存器进行写入操作。“解密 Flash”操作完成后, FSTAT[CCIF]标志将置位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 253 功能说明 表 18-32. “解密 Flash”命令错误处理 寄存器 错误位 错误条件 ACCERR FSTAT FPVIOL 命令启动情况下 CCOBIX[2:0] != 000 时置位 设置命令在当前模式下是否可用(参见表 18-4 ) 设置是否有任何 Flash 存储器区域处于受保护状态 MGSTAT1 检验操作期间发生任何错误时置位。1 MGSTAT0 检验操作期间发生任何无法纠正的错误时置位 1 1. 参见 NVM 存储器映射 18.3.9.12 “检验后门访问密钥”命令 只有在 FSEC[KEYEN]位使能的情况下,才能执行“检验后门访问密钥”命令。如果 用户提供的密钥与 Flash 配置字段的 Flash 安全字节中存储的密钥匹配,“检验后门 访问密钥”命令将使 MCU 退出加密状态。详情参见表 18-1 。必须从 RAM 运行用 于执行“检验后门访问密钥”命令的代码。 表 18-33. “检验后门访问密钥”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x0C 不需要 001 密钥 0 010 密钥 1 011 密钥 2 100 密钥 3 清零 FSTAT[CCIF]以启动“检验后门访问密钥”命令时,存储器控制器将检查 FSEC[KEYEN]位,以检验该命令是否已使能。如果未使能,存储器控制器将使 FSTAT[ACCERR]位置位。如果该命令已使能,存储器控制器会将 FCCOB 中提供 的密钥与 Flash 配置字段中的后门比较密钥进行对比,即密钥 0 与 0x0400 相比较, 以此类推。如果后门密钥匹配,将退出加密状态。如果后门密钥不匹配,就不会退 出加密状态,将来所有尝试执行“检验后门访问密钥”命令的操作都会中止(置位 FSTAT[ACCERR]),直到发生复位为止。“检验后门访问密钥”操作完成后, FSTAT[CCIF]标志将置位。 表 18-34. “检验后门访问密钥”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] ≠ 100 时置位 FSTAT ACCERR 提供不正确的后门密钥时置位 未使能后门密钥访问(KEYEN[1:0] ≠ 10)时置位 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 254 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 表 18-34. “检验后门访问密钥”命令错误处理 (继续) 寄存器 错误位 错误条件 自上次复位以来后门密钥不匹配时置位 FPVIOL 无 MGSTAT1 无 MGSTAT0 无 18.3.9.13 “设置用户裕量水平”命令 用户裕量是一个基于正常读取基准水平的小差值,实际上是一个最小安全裕量。换 言之,如果读取操作在容差更严格的用户裕量条件下通过了,那么在用户遭遇数据 丢失之前,正常的读取操作至少拥有这么多的安全裕量。 “设置用户裕量水平”命令导致存储器控制器设置为 Flash 区块将来的读取操作指定 的裕量水平。 表 18-35. “设置用户裕量水平”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 000 0x0D FCCOBLO 参数 全局地址[23:16],以识别 Flash 区块 001 用于确定 Flash 数据块的全局地址[15:0] 010 裕量水平设置 清零 FSTAT[CCIF]以启动“设置用户裕量水平”命令时,存储器控制器将设置目标区 块的用户裕量水平,然后置位 FSTAT[CCIF]标志。 注 下表定义了“设置用户裕量水平”命令的有效裕量水平设置。 表 18-36. “设置用户裕量水平”的有效设置 CCOB (CCOBIX = 010) 水平说明 0x0000 返回正常水平 0x0001 用户裕量 1 级 1 0x0002 用户裕量 0 级 2 1. 读取裕量能够擦除状态 2. 读取裕量能够编程状态 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 255 功能说明 表 18-37. “设置用户裕量水平”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 010 时置位 ACCERR FSTAT 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的全局地址[23:0]时置位 提供无效的裕量水平设置时置位 FPVIOL 无 MGSTAT1 无 MGSTAT0 无 注 用户裕量水平可用于检查 NVM 存储器内容是否拥有合适 的裕量,以便进行正常水平的读取操作。如果在检查用户裕 量水平的 NVM 存储器内容时出现了意外结果,则说明检测 到潜在的信息丢失。 18.3.9.14 “设置出厂裕量水平”命令 “设置出厂裕量水平”命令导致存储器控制器设置为 Flash 区块将来的读取操作指定 的裕量水平。 表 18-38. “设置出厂裕量水平”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x0E 全局地址[23:16],以识别 Flash 区块 001 用于确定 Flash 数据块的全局地址[15:0] 010 裕量水平设置 清零 FSTAT[CCIF]以启动“设置出厂裕量水平”命令时,存储器控制器将设置目标区 块的出厂裕量水平,然后置位 FSTAT[CCIF]标志。 注 下表定义了“设置出厂裕量水平”命令的有效裕量水平设置。 表 18-39. “设置出厂裕量水平”的有效设置 CCOB 水平说明 (CCOBIX = 010) 0x0000 返回正常水平 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 256 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 表 18-39. “设置出厂裕量水平”的有效设置 (继续) CCOB 水平说明 (CCOBIX = 010) 0x0001 用户裕量 1 级 1 0x0002 用户裕量 0 级 2 0x0003 出厂裕量 1 级 1 0x0004 出厂裕量 0 级 2 1. 读取裕量能够擦除状态 2. 读取裕量能够编程状态 表 18-40. “设置出厂裕量水平”命令的错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 010 时置位 ACCERR FSTAT 设置命令在当前模式下是否可用(参见表 18-4 ) 提供无效的全局地址[23:0]时置位 提供无效的裕量水平设置时置位 FPVIOL 无 MGSTAT1 无 MGSTAT0 无 警告 只有在检验初始出厂编程的过程中,才能使用出厂裕量水 平。 注 出厂裕量水平可用于检查 Flash 存储器内容是否拥有合适的 裕量,以便在正常水平的设置条件下保留数据。如果在检查 出厂裕量水平的 Flash 存储器内容时出现了意外结果,则必 须擦除 Flash 存储器内容并重新编程。 18.3.9.15 “配置 NVM”命令 “配置 NVM”命令让用户能够控制 NVM 阵列中的某些特性,可以在某些特定场合通 过使能或禁用这些特性达到省电的目的。通过“配置 NVM”命令修改的设置不是永 久的,因此如果在用户应用中需要更改这些设置,必须在每次复位后调用此命令。 表 18-41. “配置 NVM”命令的 FCCOB 要 求 CCOBIX[2:0] FCCOBHI 参数 FCCOBLO 参数 000 0x0F 下表所示的“配置 NVM”控制字节 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 257 功能说明 表 18-42. NVM 控制字节 - 字段说明 字段 7 QUERY 说明 查询/驱动模式 - 此位控制“配置 NVM”命令是否用于驱动或查询 FLPHV 和 FLPLF 位的当前状态。 0 表示将 FLPHV 和 FLPLF 位上的选项驱动到 NVM 阵列中 1 表示查询 FLPHV 和 FLPLF 的当前状态。执行命令后,可以从 FCCOB[0]读到 FLPHV 和 FLPLV 的当前状 态。 6-2 保留位 - RNV 位应该是 1'b0,留作今后改进。 RNV 1 FLPHV Flash 高供电电压低功耗控制 - FLPHV 位控制 NVM 阵列中的某个电路,该电路可生成内部基准电压源,当器 件在外部供电电压规范的较低范围工作时该基准电压用于 Flash 读取操作。在特定环境下,可禁用该电路,以 便省电。 0 表示使能该电路(推荐,默认值)- 这样可确保 NVM 阵列能在全范围外部供电电压内正常进行读取操作。 1 表示禁用该电路 - 只有在保证外部供电电压产生的驱动电压是在最低水平之上才设置。 0 FLPLF Flash 低频率低功耗控制 - FLPLF 位控制 NVM 阵列中的某个电路,如果器件正在低频率条件下运行,该电路 可在 Flash 读取操作期间限制电流消耗。该电路本身也会耗一些功率,建议在典型频率设置条件下禁用该电 路。在特定环境下(总线频率较低时),可使能该电路以便省电。 0 表示禁用该电路(推荐,默认值 1)- 对于典型总线频率值,可保留该电路的禁用状态,以便最大限度减少 能耗。 1 表示使能该电路 - 在总线频率设置为低于最低阈值时可采用此设置,这样 Flash 即可在低频率工作状态下省 电。 1. 如果器件特别用于低频率工作范围,Freescale 可能会为 NVM 阵列中的这种控制提供具有不同初始设置的器件,最终使用不 同型号器件。因此,如果用户不确定这种控制的初始设置,建议先在查询模式下运行“配置 NVM”命令,以便检索 FLPLF 的初 始状态。 LPHV 控制着一个内部电路,该电路可保证在外部电源的整个范围内实现正确的 Flash 读取操作,特别是在较低水平的电压规格下。如果外部电源驱动的电压高于 NVM 电气参数中指定的最低电平,则可使用 FLPHV 禁用该电路 - 如果可禁用该电 路,请参见参考手册中的相应章节确认此最小电平和省电情况。 警告 如果用户错误地禁用了 FLPHV 控制的电路,导致工作电压 降至指定的最小供电电压以下,就会有一定的风险。这种情 况下,Flash 不会读取到有意义的数据,从而导致不可预知 的结果。恢复 Flash 功能的唯一方法可能是将器件复位,这 样 NVM 阵列就会恢复到默认状况(也就是使能 FLPHV 控 制的电路) 。 FLPLF 控制着一个内部电路,如果 Flash 在较低的总线频率(BUSCLK)条件下运行, 该电路可限制 Flash 读取期间的电流消耗。对于典型频率值,建议禁用该电路,以 便省电;但是对于在低频率条件下运行的应用,则可使能该电路,以便最大限度地 减少电流消耗。了解总线频率阈值的详情,在此阈值条件下使能该电路可以省电。 KEA128 子系列参考手册, Rev. 2, July 2014 258 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 注 FLPLF 位与读取操作相关,此操作受总线频率(BUSCLK)影 响;编程和擦除操作则受与 FLPLF 无关的 FCLK 时基影响。 清空 CCIF 以启动“配置 NVM”命令时,MGATE 会相应地设置 NVM 阵列参数(条 件是在驱动模式下启动命令 - QUERY=0),然后设置 CCIF 标志。执行命令后,始 终可在 FCCOB[0]中读取 FLPHV 和 FLPLV 的当前状态。可在查询模式下 (QUERY=1)执行“配置 NVM”命令,以便直接检索这些位的状态,而无需将其驱动 到 NVM 阵列中。 用户无需运行“配置 NVM”命令即可正确操作 Flash 阵列。复位之后保留默认值就 是适合 Flash 操作的建议/安全状态。如上文所述,“配置 NVM”命令只适合在能够省 电的情况下调用。 表 18-43. “配置 NVM”命令错误处理 寄存器 错误位 错误条件 命令启动情况下 CCOBIX[2:0] != 000 时置位 设置命令在当前模式下是否不可用(参见表 18-4 ) ACCERR 提供无效的全局地址[23:0]时置位 FSTAT 提供无效的裕量水平设置时置位 FPVIOL 无 MGSTAT1 无 MGSTAT0 无 18.4 存储器映像和寄存器定义 本节从较高层面概要介绍了寄存器以及这些寄存器的映射方式。寄存器能够以 32 位、16 位(对齐到[31:16]数据或[15:0]数据)或 8 位存取。如果是可写的寄存器, 在 Flash 命令执行期间将会禁止写入访问。有关更多详情,请参见 Flash 存储器映射 中的警告说明。 FTMRE 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 R/W 00h 18.4.1/260 4002_0001 Flash CCOB 索引寄存器 (FTMRE_FCCOBIX) 8 4002_0002 Flash 安全寄存器 (FTMRE_FSEC) 8 R 未定义 18.4.2/260 4002_0003 Flash 时钟分频器寄存器 (FTMRE_FCLKDIV) 8 R/W 00h 18.4.3/261 4002_0005 Flash 状态寄存器 (FTMRE_FSTAT) 8 R/W 80h 18.4.4/262 4002_0007 Flash 配置寄存器 (FTMRE_FCNFG) 8 R/W 00h 18.4.5/263 4002_0008 Flash 通用命令对象寄存器:低位 (FTMRE_FCCOBLO) 8 R/W 00h 18.4.6/264 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 259 存储器映像和寄存器定义 FTMRE 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4002_0009 Flash 通用命令对象寄存器:高位 (FTMRE_FCCOBHI) 8 R/W 00h 18.4.7/264 4002_000B Flash 保护寄存器 (FTMRE_FPROT) 8 R 参见章节 18.4.8/265 4002_000F Flash 选项寄存器 (FTMRE_FOPT) 8 R 未定义 18.4.9/266 18.4.1 Flash CCOB 索引寄存器 (FTMRE_FCCOBIX) FCCOBIX 寄存器用于对 FCCOB 寄存器编制索引,以便进行 NVM 存储器操作。 地址: 4002_0000h 基准 + 1h 偏移 = 4002_0001h 位 读 写 复位 7 6 5 4 3 2 0 0 0 0 1 0 CCOBIX 0 0 0 0 0 FTMRE_FCCOBIX 字段描述 字段 7–3 保留 CCOBIX 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 通用命令寄存器索引 对 FCCOB 寄存器组正在读写操作的字进行选择。 18.4.2 Flash 安全寄存器 (FTMRE_FSEC) FSEC 寄存器控制着与 MCU 及 NVM 模块加密相关的所有位。FSEC 寄存器中的所 有字段均可读,但不可写。在复位序列期间,会将 Flash 存储器中 Flash 配置字段内 Flash 安全字节的内容加载到 FSEC 寄存器。 有关加密功能,请参见加密 。 地址: 4002_0000h 基准 + 2h 偏移 = 4002_0002h 位 7 读 6 5 4 KEYEN 3 2 1 Reserved 0 SEC 写 复位 x* x* x* x* x* x* x* x* * 注: • x = 复位时未定义。 KEA128 子系列参考手册, Rev. 2, July 2014 260 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) FTMRE_FSEC 字段描述 字段 7–6 KEYEN 描述 后门密钥安全使能位 KEYEN[1:0]位定义 Flash 模块后门密钥访问权限的使能。 注: 01 是用于禁用后门密钥访问权限的 KETEN 的首选状态。 00 01 10 11 5–2 Reserved SEC 禁用 禁用 使能 禁用 此字段为保留字段。 Flash 安全位 定义 MCU 的加密状态。如果 Flash 模块未利用后门密钥访问权限进行加密保护,则 SEC 字段强制为 10。 注: 00 是用于将 MCU 设置到加密状态的 SEC 的首选状态。 00 01 10 11 加密 加密 解密 加密 18.4.3 Flash 时钟分频器寄存器 (FTMRE_FCLKDIV) FCLKDIV 寄存器用于控制编程和擦除算法中的定时事件。 注 执行 Flash 命令(FSTAT[CCIF] = 0)时不得对 FCLKDIV 寄存 器采取写入操作 地址: 4002_0000h 基准 + 3h 偏移 = 4002_0003h 位 7 读 FDIVLD 写 复位 6 5 4 3 FDIVLCK 0 0 2 1 0 0 0 0 FDIV 0 0 0 FTMRE_FCLKDIV 字段描述 字段 描述 7 FDIVLD 时钟分频器已加载 6 FDIVLCK 时钟分频器已锁定 0 1 自上次复位后未对 FCLKDIV 寄存器采取写入操作。 自上次复位后已对 FCLKDIV 寄存器采取写入操作。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 261 存储器映像和寄存器定义 FTMRE_FCLKDIV 字段描述 (继续) 字段 描述 0 1 FDIV FDIV 字段已开放,可进行写入操作。 FDIV 值已锁定,不能更改。锁定位设置为高电平后,只有复位才能将该位清零并恢复 FDIV 字段在用户 模式下的可写性。 时钟分频位 必须将 FDIV[5:0]合理地设置,才能有效地将 BUSCLK 分频到 1MHz,以便在 Flash 编程和擦除算法期间控 制定时事件。有关基于 BUSCLK 频率的 FDIV 建议值,请参见写 FCLKDIV 寄存器 中的表格。 18.4.4 Flash 状态寄存器 (FTMRE_FSTAT) FSTAT 寄存器报告 Flash 模块的操作状态。 地址: 4002_0000h 基准 + 5h 偏移 = 4002_0005h 位 读 写 复位 7 6 CCIF 1 5 0 4 ACCERR FPVIOL 0 0 0 3 2 MGBUSY 0 0 0 1 0 MGSTAT 0 0 FTMRE_FSTAT 字段描述 字段 7 CCIF 描述 命令完成中断标志 指明某个 Flash 命令已完成。将 1 写入 CCIF 可将 CCIF 标志清零以启动某个命令,CCIF 在命令完成或命令 出错之前会一直保持低电平。 0 1 6 保留 5 ACCERR 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 Flash 访问错误标志 指明 Flash 存储器遭遇了非法访问,其原因要么是违反了命令写入序列,要么是发出了非法 Flash 命令。 ACCERR 置位时,将 CCIF 标志清零无法启动某个命令。将 1 写入该字段可将其清零,写入 0 则没有影响。 0 1 4 FPVIOL Flash 命令正在处理中。 Flash 命令已完成。 没有检测到访问错误。 检测到访问错误。 Flash 保护违反标志 指明在命令写入序列期间某个受保护的 Flash 存储器区域中的地址遭遇了试图对其进行编程或擦除的操作。 向 FPVIOL 写入 1 可将该字段清空,写入 0 则没有影响。FPIOL 置位时,无法启动命令或开始某个命令写入 序列。 0 1 没有检测到保护违反情况。 检测到保护违反情况。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 262 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) FTMRE_FSTAT 字段描述 (继续) 字段 3 MGBUSY 描述 存储器控制器忙标志 反映存储器控制器的有效状态。 0 1 2 保留 MGSTAT 存储器控制器空闲。 存储器控制器忙于执行某个 Flash 命令(CCIF = 0)。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 存储器控制器命令完成状态标志 执行某个 Flash 命令期间或 Flash 复位序列期间,如果检测到错误,将有一个或多个 MGSTAT 标志位置位。 注: 如果在复位序列期间检测到双位错误,则复位值可能会与表中显示的值不同。 18.4.5 Flash 配置寄存器 (FTMRE_FCNFG) FCNFG 寄存器可以使能 Flash 命令完成中断,并在从 CPU 进行 Flash 阵列读访问时 强制生成 ECC 故障。 地址: 4002_0000h 基准 + 7h 偏移 = 4002_0007h 位 读 写 复位 7 CCIE 0 6 5 4 0 ERSAREQ 0 0 3 2 1 0 0 0 0 0 0 0 FTMRE_FCNFG 字段描述 字段 7 CCIE 描述 命令完成中断使能 在完成某个 Flash 命令时控制中断的生成。 0 1 6 保留 5 ERSAREQ 命令完成中断已禁用。 无论何时,只要 FSTAT 寄存器中的 CCIF 标志置位,就会请求中断。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 调试器整体擦除请求 请求 MGATE 执行“擦除所有区块”命令并解除加密状态。无法直接对 ERSAREQ 采取写入操作,但可由用户 间接控制。 MGATE 开始执行序列时,ERSAREQ 字段将置 1。操作结束后,ERSAREQ 将由 MGATE 复位为 0。 0 1 无请求或请求完成 请求 • 运行“擦除所有区块”命令 • 检验擦除状态 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 263 存储器映像和寄存器定义 FTMRE_FCNFG 字段描述 (继续) 字段 描述 • 将 Flash 配置字段中的安全字节编程为解密状态 • 通过将 FSEC[SEC]设置为解密状态以解除 MCU 加密状态 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 18.4.6 Flash 通用命令对象寄存器:低位 (FTMRE_FCCOBLO) FCCOB 是六个字组成的阵列,通过 FCCOBIX 寄存器中找到 CCOBIX 索引进行寻 址。允许对 FCCOB 寄存器进行字节范围的读写操作。 地址: 4002_0000h 基准 + 8h 偏移 = 4002_0008h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 CCOB 0 0 0 0 FTMRE_FCCOBLO 字段描述 字段 CCOB 描述 通用命令对象位 7:0 通用命令对象寄存器的低 8 位 18.4.7 Flash 通用命令对象寄存器:高位 (FTMRE_FCCOBHI) FCCOB 是六个字组成的阵列,通过 FCCOBIX 寄存器中找到 CCOBIX 索引进行寻 址。允许对 FCCOB 寄存器进行字节范围的读写操作。 地址: 4002_0000h 基准 + 9h 偏移 = 4002_0009h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 CCOB 0 0 0 0 FTMRE_FCCOBHI 字段描述 字段 CCOB 描述 通用命令对象位 15:8 通用命令对象寄存器的高 8 位 KEA128 子系列参考手册, Rev. 2, July 2014 264 Freescale Semiconductor, Inc. 第 18 章 Flash 存储器模块(FTMRE) 18.4.8 Flash 保护寄存器 (FTMRE_FPROT) FPROT 寄存器定义了针对编程和擦除操作,为哪些 Flash 扇区提供保护。 FPROT 寄存器的未保留位是可写的,但限制条件是受保护区域的大小只能增加(参 见保护 )。 在复位序列期间,会以 Flash 存储器中 Flash 配置字段内 Flash 保护字节的内容加载 FPROT 寄存器,该字段的全局地址为 0x40D。要更改复位序列期间加载的 Flash 保 护,必须取消保护 Flash 存储器的高位扇区,然后必须对 Flash 保护字节重新编程。 尝试更改 Flash 存储器中任何受保护区域的数据都会导致保护违反错误,并且 FSTAT 寄存器中的 FPVIOL 位将置位。如果 Flash 数据块中包含的任何 Flash 扇区 处于受保护状态,将无法进行该 Flash 数据块的擦除。 地址: 4002_0000h 基准 + Bh 偏移 = 4002_000Bh 位 读 写 复位 7 6 FPOPEN x* 5 RNV6 4 FPHDIS x* x* 3 FPHS x* 2 1 FPLDIS x* x* 0 FPLS x* x* FTMRE_FPROT 字段描述 字段 7 FPOPEN 描述 Flash 保护操作使能 FPOPEN 位确定是否针对编程或擦除操作使用保护功能。 0 1 6 RNV6 5 FPHDIS 保留的非易失位 RNV 位必须保持在已擦除状态。 Flash 保护较高地址范围禁用 FPHDIS 位确定 Flash 存储器中某个特定区域内是否有以全局地址 0x7FFF 结束的受保护/无保护的区域。 0 1 4–3 FPHS 2 FPLDIS FPOPEN 清零时,FPHDIS 和 FPLDIS 字段用于定义未受保护区域(由 FPHS 和 FPLS 指定地址范围)。 FPOPEN 置位时,FPHDIS 和 FPLDIS 字段用于定义受保护区域(由 FPHS 和 FPLS 指定地址范围)。 使能保护/无保护。 禁用保护/无保护。 Flash 保护较高地址大小 FPHS 位确定 Flash 存储器中受保护/无保护区域的大小。只有在 FPHDIS 位已置位的情况下,才能对 FPHS 位采取写入操作。 Flash 保护较低地址范围禁用 FPLDIS 位确定 Flash 存储器中某个特定区域内是否有以全局地址 0x0_0000 开始的受保护/无保护的区域。 0 1 使能保护/无保护。 禁用保护/无保护。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 265 存储器映像和寄存器定义 FTMRE_FPROT 字段描述 (继续) 字段 FPLS 描述 Flash 保护较低地址大小 FPLS 位确定 Flash 存储器中受保护/无保护区域的大小。只有在 FPLDIS 位已置位的情况下,才能对 FPLS 位采取写入操作。 18.4.9 Flash 选项寄存器 (FTMRE_FOPT) FOPT 寄存器是 Flash 选项寄存器。 在复位序列期间,会按复位条件所指示的那样从 Flash 存储器中 Flash 配置字段内的 Flash 非易失字节加载 FOPT 寄存器,该字段的全局地址为 0x040F。 地址: 4002_0000h 基准 + Fh 偏移 = 4002_000Fh 位 7 6 5 4 读 3 2 1 0 x* x* x* x* NV 写 复位 x* x* x* x* * 注: • x = 复位时未定义。 FTMRE_FOPT 字段描述 字段 NV 描述 非易失位 NV[7:0]位可以是非易失位。 在复位序列期间,会从 Flash 存储器中 Flash 配置字段内的 Flash 非易失字节加 载 FOPT 寄存器,该字段的全局地址为 0x40F。 KEA128 子系列参考手册, Rev. 2, July 2014 266 Freescale Semiconductor, Inc. 第 19 章 Flash 存储器控制器(FMC) 19.1 简介 Flash 存储器控制器(FMC)是一个存储器加速单元。下文列出了 FMC 具备的特性。 • 它是总线上的主设备与 32 位 P-Flash。 • 具有一个缓冲区和一个高速缓存(Cache),可用于加速 P-Flash 的数据传输。 19.1.1 概述 Flash 存储器控制器管理总线主设备与 32 位 P-Flash。FMC 接收详细配置 Flash 存 储器的状态信息,并利用此信息确保接口合适。FMC 支持对 P-Flash 进行 8 位、16 位及 32 位读取操作。对 P-Flash 进行任何写入操作都会导致总线错误。 此外,FMC 还提供两套独立的机制用于加速总线主设备与 P-Flash 之间的接口。32 位推测缓冲器可预取下一个 32 位 Flash 存储器位置,而 4 路、2 组的 P-Flash 高速缓 存可存储之前访问过的 P-Flash 数据,以便快速访问。 19.1.2 特性 FMC 模块特性包括: • 总线主设备与 32 位 P-Flash 之间的接口: • 对非易失性 Flash 存储器(包括用作数据 Flash 存储器的 FlexNVM) 。 • 加快从 P-Flash 到该器件的数据传输: • 有一个 32bit 预取推测缓冲区用于 P-Flash 访问,且可控制它用于指令或是 数据访问 • 4 路、2 组、每行 32bit 的 P-Flash 高速缓存,用于总计八个 32 位带失效控 制的入口 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 267 工作模式 19.2 工作模式 FMC 只在某个总线主设备访问 P-Flash 时工作。 从芯片功耗模式角度来看: • FMC 只在 Run 和 Wait 模式下工作。 • 对于任何无法访问 P-Flash 的功耗模式,FMC 都将禁用。 19.3 外部信号说明 FMC 没有外部(片外)信号。 19.4 存储器映像和寄存器说明 MCM 的编程模型提供了有关 FMC 特性的控制和配置信息。 有关详情,请参见 MCM 平台控制寄存器(PLACR)的说明。 19.5 功能说明 FMC 是一个 Flash 加速单元,拥有可供用户配置的灵活缓冲区。 除了管理总线主设备与 P-Flash 之间的接口以外,FMC 还可用于定制 P-Flash 高速缓 存和缓冲区,以便提供单周期系统时钟数据访问次数。无论何时,只要命中预取推 测缓冲区或高速缓存(已使能的情况下) ,请求的数据就会在一个系统时钟周期内完 成传输。 系统复位时,FMC 配置如下: • Flash 高速缓存已使能。 • 指令推测和高速缓存已使能。 • 数据推测已禁用。 • 数据高速缓存已使能。 尽管默认配置提供了 Flash 加速,高级用户仍然可能希望定制 FMC 缓冲区配置,以 便最大限度地提高其用例的吞吐量。例如,用户可能会调节控制,从而根据访问类 型(数据或指令)使能缓冲。 KEA128 子系列参考手册, Rev. 2, July 2014 268 Freescale Semiconductor, Inc. 第 19 章 Flash 存储器控制器(FMC) 注 重新配置 FMC 时,请勿在访问 P-Flash 的同时对 FMC 的控 制和配置输入进行编程。相反,请在监控器模式下从 RAM 执行例程,由此达到更改目的。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 269 功能说明 KEA128 子系列参考手册, Rev. 2, July 2014 270 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) 20.1 简介 内部时钟源(ICS)模块为 MCU 提供时钟源选择。该模块包含一个锁频环(FLL)作为 时钟源,该锁频环可以采用内部或外部的基准时钟。ICS 模块可以把 FLL 时钟、内 部基准时钟或外部基准时钟作为 MCU 系统时钟的时钟源。另外还提供了一些信号 来控制低功耗振荡器(OSC)模块。这些信号配置并使能 OSC 模块以生成其外部晶 体/谐振器时钟(OSC_OUT),提供给其他外部模块使用,同时也作为 ICS 外部基准时 钟源。ICS 外部基准时钟可以是 OSC 提供的外部晶体/谐振器(OSC_OUT),也可以 是另一个外部时钟源。 选定的 ICS 时钟源通过可编程分频器 (BDIV) 传送出去,最终输出较低的时钟频率。 20.1.1 特性 下面是 ICS 模块的主要特性: • 内部基准时钟的准确度可以校正。 • 可使用内部或外部基准时钟来控制 FLL。 • 针对外部时钟提供了基准分频器,以提供给 FLL 恰当的输入频率。 • 内部基准时钟具有 9 个调整位。 • 内部或外部基准时钟都可以被选作 MCU 的时钟源。 • “FLL 内部启用”模式在芯片复位后被自动选中。 • FLL 锁定检测器和外部时钟监视器 • 具有中断功能的 FLL 锁定检测器 • 具有复位功能的外部基准时钟监视器 • 数字控制振荡器针对 40-48 MHz 频率范围进行了优化 20.1.2 结构框图 下图是 ICS 结构框图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 271 简介 外部基准时钟/ 振荡器 内部时钟源模块 ICSIRCLK IRCLKEN IREFSTEN BDIV 内部 基准 时钟 / 2n n=0-7 ICSOUT LP CLKS FLL SCFTRIMSCTRIM / 2n n=0-7 滤波器 DCO IREFS RDIV ICSFFCLK IREFST CLKST LOLIE LOLS LOCK CME 图 20-1. 内部时钟源(ICS)结构框图 20.1.3 工作模式 ICS 有七种工作模式:FEI、FEE、FBI、FBILP、FBE、FBELP 和 STOP。以下各小 节会分别对每一种工作模式作简要说明。 20.1.3.1 FLL 内部启用(FEI) “FLL 内部启用”模式是默认模式,在该模式下,ICS 提供一个来源于 FLL 的时钟, FLL 时钟由内部基准时钟控制。 20.1.3.2 FLL 外部启用(FEE)模式 在 FLL 外部启用模式下,ICS 提供一个来源于 FLL 的时钟,该 FLL 时钟由外部基 准时钟控制。 20.1.3.3 FLL 内部旁路(FBI) 在 FLL 内部旁路模式下,FLL 使能并通过内部基准时钟来控制,但处于旁路状态。 ICS 提供的输出是从内部基准时钟分频而来的时钟。 KEA128 子系列参考手册, Rev. 2, July 2014 272 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) 20.1.3.4 FLL 内部旁路低功耗(FBILP) 在 FLL 内部旁路低功耗模式下,FLL 被禁用并旁路,ICS 提供的输出是由内部基准 时钟分频而来的时钟。 20.1.3.5 FLL 外部旁路(FBE) 在 FLL 外部旁路模式下,FLL 使能并通过外部基准时钟来控制,但处于旁路状态。 ICS 提供的输出是从外部基准时钟源分频而来的时钟。 20.1.3.6 FLL 外部旁路低功耗(FBELP) 在 FLL 外部旁路低功耗模式下,FLL 禁用且旁路,ICS 提供的输出是由外部基准时 钟分频而来的时钟。 20.1.3.7 停止 (STOP) 在 Stop 模式下,FLL 被禁用,可以选择使能或者禁用内部或 ICS 外部基准时钟源 (OSC_OUT)。ICS 不提供任何 MCU 时钟源。 注 DCO 频率从预停止值变为其复位值,FLL 需要在频率稳定 前重新获取锁定。时序敏感的操作在执行前,必须等待长度 为 FLL 获取时间 tAcquire 的一段时间。 20.2 外部信号说明 没有任何 ICS 信号被连接到芯片外部。 20.3 寄存器定义 ICS 存储器映射 绝对地址(十 六进制) 4006_4000 寄存器名称 ICS 控制寄存器 1 (ICS_C1) 宽度(单 位:位) 访问 复位值 小节/页 8 R/W 04h 20.3.1/274 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 273 寄存器定义 ICS 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4006_4001 ICS 控制寄存器 2 (ICS_C2) 8 R/W 20h 20.3.2/275 4006_4002 ICS 控制寄存器 3 (ICS_C3) 8 R/W 未定义 20.3.3/276 4006_4003 ICS 控制寄存器 4 (ICS_C4) 8 R/W 参见章节 20.3.4/276 4006_4004 ICS 状态寄存器 (ICS_S) 8 R 10h 20.3.5/277 20.3.1 ICS 控制寄存器 1 (ICS_C1) 地址: 4006_4000h 基准 + 0h 偏移 = 4006_4000h 位 读 写 复位 7 6 5 CLKS 0 4 3 RDIV 0 0 0 0 2 1 0 IREFS IRCLKEN IREFSTEN 1 0 0 ICS_C1 字段描述 字段 7–6 CLKS 描述 时钟源选择 选择控制总线频率的时钟源。实际总线频率取决于 ICS_C2[BDIV]的值。 00 01 10 11 5–3 RDIV 选择 FLL 的输出。 选择内部基准时钟。 选择外部基准时钟。 保留,默认值为 00。 基准分频器 修改 RDIV 寄存器可以改变 FLL 的基准时钟,在 FEE 和 FBE 模式下,不允许修改 RDIV 寄存器。 通过 IREFS 寄存器位可以为 FLL 选择适当的降频参数。输出的结果频率必须在 31.25 kHz 到 39.0625 kHz 的范围内。 RDIV OSC_CR[RANGE ]= 0 OSC_CR[RANGE ]= 1 000 11 32 001 2 64 010 4 128 011 8 256 100 16 512 101 32 1024 110 64 保留 111 128 保留 1. 复位默认值 2 IREFS 内部基准选择 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 274 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) ICS_C1 字段描述 (继续) 字段 描述 选择 FLL 的基准时钟源。 0 1 1 IRCLKEN 内部基准时钟使能 使能内部基准时钟用作 ICSIRCLK。 0 1 0 IREFSTEN 选择外部基准时钟。 选择内部基准时钟。 ICSIRCLK 无效。 ICSIRCLK 有效。 内部基准停止使能 控制内部基准时钟在 ICS 进入 Stop 模式时是否保持使能。 0 1 内部基准时钟在 Stop 模式下禁用。 如果 IRCLKEN 置位,或者 ICS 在进入 Stop 模式之前处于 FEI、FBI 或 FBILP 模式,则内部基准时钟在 Stop 模式下保持使能。 1. 复位默认值 20.3.2 ICS 控制寄存器 2 (ICS_C2) 地址: 4006_4000h 基准 + 1h 偏移 = 4006_4001h 位 读 写 复位 7 6 5 4 BDIV 0 0 3 2 0 0 0 0 LP 1 1 0 0 0 ICS_C2 字段描述 字段 7–5 BDIV 描述 总线分频器 选择 ICS_C1[CLKS]选定的时钟源的分频比。该字段控制总线频率。 000 001 010 011 100 101 110 111 4 LP 编码 0—选定时钟 1 分频。 编码 1—选定时钟 2 分频(复位默认值)。 编码 2—选定时钟 4 分频。 编码 3—选定时钟 8 分频。 编码 4—选定时钟 16 分频。 编码 5—选定时钟 32 分频。 编码 6—选定时钟 64 分频。 编码 7—选定时钟 128 分频。 低功耗选择 控制 FLL 在 FLL 旁路模式下是否禁用。 0 1 FLL 在旁路模式下不禁用。 FLL 在旁路模式下禁用(除非调试有效)。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 275 寄存器定义 ICS_C2 字段描述 (继续) 字段 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 20.3.3 ICS 控制寄存器 3 (ICS_C3) 地址: 4006_4000h 基准 + 2h 偏移 = 4006_4002h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* SCTRIM x* x* x* x* * 注: • x = 复位时未定义。 ICS_C3 字段描述 字段 SCTRIM 描述 慢速内部基准时钟调整设置 通过控制内部基准时钟周期来控制慢速内部基准时钟频率。这些位采用二进制加权。换言之,位 1 的调整量 是位 0 的两倍。提高 SCTRIM 的二进制值会加长周期,降低该值会缩短周期。 还有一个精密调整位 ICS_C4[SCFTRIM]。 除了 Debug 模式外,ICS_C3 在复位后会自动载入工厂校准值。这个值是在芯片生产出厂前校准的,以使内 部时钟满足 fint_ft 数据手册的描述。用户可以在 fint_t 范围内使用自己的校正值,这个值需要被写入 Flash 的 保留空间 0x0000_03FF 中,并且在初始化代码中复制到 ICS_C3 寄存器。 20.3.4 ICS 控制寄存器 4 (ICS_C4) 地址: 4006_4000h 基准 + 3h 偏移 = 4006_4003h 位 读 写 复位 7 6 5 4 LOLIE 0 CME 0 0 0 3 2 1 0 0 0 0 SCFTRIM 0 0 x* * 注: • x = 复位时未定义。 ICS_C4 字段描述 字段 7 LOLIE 描述 失锁中断 决定在失锁指示出现后是否生成中断请求。该字段仅在 ICS_S[LOLS]置位时有效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 276 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) ICS_C4 字段描述 (继续) 字段 描述 0 1 失锁时不生成中断请求。 失锁时生成中断请求。 6 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 5 CME 时钟监控使能 决定在外部时钟丢失指示出现后是否生成复位请求。仅当 ICS 处于使用外部时钟的工作模式(FEE、FBE 或 FBELP)时,才必须将该字段设置为逻辑 1。 0 1 4–1 保留 0 SCFTRIM 时钟监控禁用。 丢失外部时钟时生成复位请求。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 慢速内部基准时钟精密调整 控制内部基准时钟频率的最小调整量。SCFTRIM 置位将加长周期,SCFTRIM 清零将缩短周期,调整量为最 小可能的量。 除了 Debug 模式外,ICS_C4[SCFTRIM]在复位后会自动载入工厂校准值。这个值是在芯片生产出厂前校准 的,以使内部时钟满足 fint_ft 数据手册的描述。用户可以在 fint_t 范围内使用自己的校正值,这个值需要被 写入 Flash 的保留空间 0x0000_03FE 中,并且在初始化代码中复制到 ICS_C4 寄存器。 20.3.5 ICS 状态寄存器 (ICS_S) 地址: 4006_4000h 基准 + 4h 偏移 = 4006_4004h 位 7 6 5 4 读 LOLS LOCK 0 IREFST 写 w1c 0 0 1 复位 0 3 2 1 CLKST 0 0 0 0 0 0 ICS_S 字段描述 字段 7 LOLS 描述 失锁状态 指示 FLL 的锁定状态。在使能了锁定检测并且已经锁定后,如果 FLL 输出频率已不在±4.7%至±5.97%的锁 定退出频率容差范围内,LOLS 会置位。ICS_C4[LOLIE]决定置位时是否生成中断请求。LOLS 在置位时通过 复位或写入逻辑 1 清零。将逻辑 0 写入 LOLS 无效。 0 1 6 LOCK FLL 自上次 LOLS 清零以来未失锁。 FLL 自上次 LOLS 清零以来已失锁。 锁定状态 指示 FLL 是否已获取锁定。锁定检测在 FLL 禁用时也禁用。锁定状态位置位时,如果更改 IREFS、RDIV[2:0] 或 SCTRIM[7:0](处于 FEI 或 FBI 模式时)中任一字段的值,则会导致锁定状态位清零,清零状态将保持到 FLL 重新获取锁定为止。进入 Stop 模式也会导致锁定状态位清零,清零状态将保持到 FLL 重新获取锁定为 止。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 277 功能说明 ICS_S 字段描述 (继续) 字段 描述 0 1 5 保留 4 IREFST 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 内部基准状态 指示基准时钟的当前来源。由于时钟域之间的内部同步,该字段不会在写入 ICS_C1[IREFS]后立即更新。 0 1 3–2 CLKST 基准时钟来源于外部时钟。 基准时钟来源于内部时钟。 时钟模式状态 指示当前时钟模式。由于时钟域之间的内部同步,该字段不会在写入 ICS_C1[CLKS]后立即更新。 00 01 10 11 保留 FLL 当前未锁定。 FLL 当前已锁定。 选择 FLL 的输出。 FLL 旁路,选择内部基准时钟。 FLL 旁路,选择外部基准时钟。 保留。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 20.4 功能说明 20.4.1 工作模式 状态图中显示了 ICS 的 7 种状态,介绍如下。箭头表示各状态间允许的切换。 KEA128 子系列参考手册, Rev. 2, July 2014 278 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) IREFS=1 CLKS=00 FLL内部 启用(FEI) IREFS=0 CLKS=10 调试禁用 或LP =0 FLL旁路 外部低 功耗(FBELP) FLL旁路 外部(FBE) IREFS=1 CLKS=01 调试禁用 或LP=0 FLL旁路 内部(FBI) IREFS=0 CLKS=10 调试禁用 且LP=1 FLL旁路 内部低 功耗(FBILP) IREFS=1 CLKS=01 调试禁用 且LP=1 FLL外部 启用(FEE) IREFS=0 CLKS=00 当MCU进入Stop模式时 从任何状态进入 停止 回到MCU进入Stop模式之前的有效状态, 除非 处于Stop模式时发生复位。 图 20-2. 时钟切换模式 20.4.1.1 FLL 内部启用(FEI) FLL 内部启用(FEI)模式是默认工作模式,当出现以下所有条件时进入该模式: • 00b 写入 ICS_C1[CLKS]。 • 1b 写入 ICS_C1[IREFS]。 在“FLL 内部启用”模式下,ICSOUT 时钟从 FLL 时钟获得,FLL 时钟由内部基准时 钟控制。FLL 环路将频率锁定到内部基准频率的 1280 倍。内部基准时钟使能。 20.4.1.2 FLL 外部启用(FEE) 出现以下所有条件时,进入 FLL 外部启用(FEE)模式: • 00b 写入 ICS_C1[CLKS]。 • 0b 写入 ICS_C1[IREFS]。 • 对 ICS_C1[RDIV]和 OSC_CR[RANGE ]进行写操作可将外部基准时钟分频到 31.25 kHz 至 39.0625 kHz 范围内。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 279 功能说明 在“FLL 外部启用”模式下,ICSOUT 时钟从 FLL 时钟获得,FLL 时钟由外部基准时 钟源控制。FLL 环路将 FLL 频率锁定到外部基准频率(由 ICS_C1[RDIV]和 OSC_CR[RANGE ]选择)的 1280 倍。可以使用 外部基准时钟也被启用。 20.4.1.3 FLL 内部旁路(FBI) 出现以下所有条件时,进入 FLL 内部旁路(FBI)模式: • 01b 写入 ICS_C1[CLKS]。 • 1b 写入 ICS_C1[IREFS]。 在“FLL 内部旁路”模式下,ICSOUT 时钟从内部基准时钟获得。FLL 时钟由内部基 准时钟控制,FLL 环路将 FLL 频率锁定到内部基准频率的1280 倍。内部基准时钟 使能。 20.4.1.4 FLL 内部旁路低功耗(FBILP) 出现以下所有条件时,进入 FLL 内部旁路低功耗(FBILP)模式: • 01b 写入 ICS_C1[CLKS]。 • 1b 写入 ICS_C1[IREFS]。 在“FLL 内部旁路低功耗”模式下,ICSOUT 时钟从内部基准时钟获得,FLL 禁用。 内部基准时钟使能。 20.4.1.5 FLL 外部旁路(FBE) 出现以下所有条件时,进入 FLL 外部旁路(FBE)模式: • 10b 写入 ICS_C1[CLKS]。 • 0b 写入 ICS_C1[IREFS]。 • 对 ICS_C1[RDIV]和 OSC_CR[RANGE ]字段进行写操作可将外部基准时钟分频 到 31.25 kHz 至 39.0625 kHz 范围内。 在 FLL 外部旁通模式下,ICSOUT 时钟由外部基准时钟源分频而来。FLL 时钟由外 部基准时钟控制,FLL 环路将 FLL 频率锁定到外部基准频率(由ICS_C1[RDIV]和 OSC_CR[RANGE ]。 20.4.1.6 FLL 外部旁路低功耗(FBELP) 出现以下所有条件时,进入 FLL 外部旁路低功耗(FBELP)模式: • 10b 写入 ICS_C1[CLKS]。 • 0b 写入 ICS_C1[IREFS]。 KEA128 子系列参考手册, Rev. 2, July 2014 280 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) 在“FLL 外部旁路低功耗”模式下,ICSOUT 时钟从外部基准时钟源获得,FLL 禁用。 外部基准时钟源使能。 20.4.1.7 停止 注 DCO 频率从预停止值变为其复位值,FLL 需要在频率稳定 前重新获取锁定。时序敏感的操作在执行前,必须等待长度 为 FLL 获取时间 tAcquire 的一段时间。 只要 MCU 进入 STOP 状态,就会进入 Stop 模式。在该模式下,所有 ICS 时钟信号 都保持静态,但以下情况例外: 在满足以下所有条件时,ICSIRCLK 将在 Stop 模式下激活: • 1b 写入 ICS_C1[IRCLKEN]。 • 1b 写入 ICS_C1[IREFSTEN]。 20.4.2 模式切换 ICS_C1[IREFS]可以随时更改,但由 ICS_S[IREFST]指示到新选择的时钟的实际切 换。在 FLL 内部使用 (FEI) 模式和 FLL 外部使用 (FEE) 模式间进行切换时,当切换 完成后,FLL 将再次开始锁定。 ICS_C1[CLKS]也可以随时更改,但由 ICS_S[CLKST]指示到新选择的时钟的实际切 换。如果新选择的时钟不可用,将继续选择上一个时钟。 注 从 FEE、FBE 或 FBELP 切换到 FEI 模式时,建议先等待 IREFST 切换完成,然后再更改ICS_C1[CLKS]。 20.4.3 总线频率分频器 ICS_C2[BDIV]可以随时更改,并且实际转换到新频率会立即发生。 20.4.4 低功耗字段的使用 ICS_C2 寄存器中的低功耗(LP)字段在 FLL 不使用时可将其禁用从而降低功耗。 但在某些应用中,在切换到 FLL 使用模式前,可能需要启用 FLL 并锁定它,以最 大限度提高准确度。为此,将 0b 写入 ICS_C2[LP]。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 281 功能说明 20.4.5 内部参考时钟 ICS_C1[IRCLKEN]置位时,内部基准时钟信号显示为 ICSIRCLK,它可以用作附加 时钟源。要重新设定 ICSIRCLK 频率,请将新值写入 ICS_C3[SCTRIM]位来调整内 部基准时钟的周期: • 如果写入更大的值,将减慢 ICSIRCLK 频率。 • 将较小的值写入 ICS_C3 寄存器会提高 ICSIRCLK 频率。 如果 ICS 处于 FLL 内部使用(FEI)模式、FLL 内部旁通(FBI)模式或 FLL 内部旁通低 功耗(FBILP)模式,则 TRIM 位会影响 ICSOUT 频率。 在调整 ICSIRCLK 之前,写入较低的总线分频(ICS_C2[BDIV])系数可能导致 ICSOUT频率超过最大芯片级频率,违反芯片级时钟的时序规范。 如果 ICS_C1[IREFSTEN]置位且 1b 写入 ICS_C1[IRCLKEN],那么内部基准时钟在 Stop 模式下继续运行,以便能在退出 Stop 模式时快速恢复。 所有 MCU 器件都在保留的存储器区间写入了出厂校正值。该值在任何的复位初始 化期间被复制到 ICS_C3 寄存器和 ICS_C4[SCFTRIM]。为了提高精度,在应用中可 以重新校准内部振荡器并相应地设置 ICS_C4[SCFTRIM]。 20.4.6 固定频率时钟 ICS 提供经过分频的 FLL 基准时钟作为 ICSFFCLK,以便用作附加时钟源。 ICSFFCLK 频率不能超过 ICSOUT 频率的 1/4 才视为有效。由于这一要求,在旁路 模式下,ICSFFCLK 仅对满足以下条件(ICS_C2[BDIV]、ICS_C1[RDIV]分频比和 OSC_CR[RANGE ]值)的外部旁路模式(FBE 和 FBELP)有效: 如果 OSC_CR[RANGE ]为高电平, • ICS_C2[BDIV] = 000,ICS_C2[RDIV] ≥ 010 • ICS_C2[BDIV] = 001(2 分频),ICS_C2[RDIV] ≥ 011 • ICS_C2[BDIV] = 010(4 分频),ICS_C2[RDIV] ≥ 100 • ICS_C2[BDIV] = 011(8 分频),ICS_C2[RDIV] ≥ 101 20.4.7 FLL 锁定和时钟监视器 KEA128 子系列参考手册, Rev. 2, July 2014 282 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) 20.4.7.1 FLL 时钟锁定 在 FBE 和 FEE 模式下,时钟检测器源使用外部参考作为自身的参考。当检测到 FLL 从锁定变为失锁时,ICS_S[LOLS]置位。如果 ICS_C4[LOLIE]置位,则会产生 中断。 ICS_S[LOLS]在置位时通过复位或向 ICS_S[LOLS]写入逻辑 1 清零 ICS_S[LOLS]。将逻辑 0 写入 ICS_S[LOLS]无效。 在 FBI 和 FEI 模式下,时钟检测器源使用内部基准作为自身的基准。当检测到 FLL 从锁定变为失锁时,ICS_S[LOLS]置位。如果 ICS_C4[LOLIE]置位,则会产生中断。 ICS_S[LOLS]在置位时通过复位或向 ICS_S[LOLS]写入逻辑 1 清零 ICS_S[LOLS]。 将逻辑 0 写入 ICS_S[LOLS]无效。 在 FBELP 和 FBILP 模式下,FLL 未启用,因此锁定检测功能不可用。 20.4.7.2 外部基准时钟监视器 在 FBE、FEE 或 FBELP 模式下,如将 1 写入 ICS_C4[CME],会使能时钟监控器。 如果外部基准下降到低于某个特定频率,那么 MCU 将复位。SIM_SRSID[LOC]将 置位以指示错误。 20.5 初始化/应用信息 本节通过代码示例为用户介绍如何初始化和配置 ICS 模块。软件示例采用 C 语言 实施。 20.5.1 初始化 FEI 模式 以下代码段显示如何将 ICS 设置为 FEI 模式。 示例: 20.5.1.1 FEI 模式初始化程序 /* the following code segment demonstrates setting the ICS to FEI mode using the factory trim value. The resulting ICSOUT frequency is fint_ft*1280/BDIV. */ ICS_C2 = 0x20; // BDIV=divide by 2 – use default until clock dividers configured ICS_C1 = 0x04; // internal reference clock as source to FLL while ((ICS_S & ICS_S_LOCK_MASK) == 0); // wait for FLL to lock SIM_CLKDIV = 0x01100000; // core clock = ICSOUT/1 and bus clock = core clock/2 ICS_C2 = 0x00; // BDIV=divide by 1 – allows max core and bus clock frequencies /* the following code segment demonstrates setting the ICS to FEI mode using a custom trim value provided by a programming tool. The resulting ICSOUT frequency is fint_t*1280/BDIV. */ ICS_C3 = *((uint8_t*) 0x03FF); // trim internal reference clock ICS_C4 = *((uint8_t*) 0x03FE); // fine trim internal reference clock ICS_C2 = 0x20; // BDIV=divide by 2 – use default until clock dividers configured ICS_C1 = 0x04; // internal reference clock as source to FLL while ((ICS_S & ICS_S_LOCK_MASK) == 0); // wait for FLL to lock KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 283 初始化/应用信息 SIM_CLKDIV = 0x01100000; // core clock = ICSOUT/1 and bus clock = core clock/2 ICS_C2 = 0x00; // BDIV=divide by 1 – allows max core and bus clock frequencies 20.5.2 初始化 FBI 模式 以下代码段显示如何将 ICS 设置为 FBI 模式。 示例: 20.5.2.1 FBI 模式初始化程序 /* the following code segment demonstrates setting the ICS to FBI mode using the factory trim value. The resulting ICSOUT frequency is fint_ft/BDIV. Note that the FLL will be running at a frequency of fint_ft*1280/BDIV even though the FLL is bypassed. */ ICS_C2 = 0x20; // BDIV=divide by 2 – use default until clock dividers configured ICS_C1 = 0x44; // internal reference clock as source for ICSOUT while ((ICS_S & 0x0C) != 0x04); // wait until internal reference is selected SIM_CLKDIV = 0x00000000; // core clock = ICSOUT/1; bus clock = core clock/1 ICS_C2 = 0x00; // BDIV=divide by 1 – allows max core and bus clock frequencies 20.5.3 初始化 FEE 模式 以下代码段显示如何将 ICS 设置为 FEE 模式。 示例: 20.5.3.1 FEE 模式初始化程序 /* the following code segment demonstrates setting the ICS to FEE mode generating a 40MHZ core clock frequency using an external 8MHz crystal */ OSC_CR = 0x96; // high-range, high-gain oscillator selected while ((OSC_CR & OSC_CR_OSCINIT_MASK) == 0); // wait until oscillator is ready ICS_C2 = 0x20; // BDIV=divide by 2 – use default until clock dividers configured ICS_C1 = 0x18; // 8MHz external reference clock/256 as source to FLL while ((ICS_S & ICS_S_IREFST_MASK) == 1); // wait for external source selected while ((ICS_S & ICS_S_LOCK_MASK) == 0); // wait for FLL to lock SIM_CLKDIV = 0x01100000; // core clock = ICSOUT/1 and bus clock = core clock/2 ICS_C2 = 0x00; // BDIV=divide by 1 – allows max core and bus clock frequencies 20.5.4 初始化 FBE 模式 以下代码段显示如何将 ICS 设置为 FBE 模式。 示例: 20.5.4.1 FBE 模式初始化程序 /* the following code segment demonstrates setting the ICS to FBE mode generating 20MHZ core clock frequency using an external 20MHz crystal */ OSC_CR = 0x96; // high-range, high-gain oscillator selected while ((OSC_CR & OSC_CR_OSCINIT_MASK) == 0); // wait until oscillator is ready ICS_C2 = 0x20; // BDIV=divide by 2 – use default until clock dividers configured ICS_C1 = 0xA0; // 20MHz external clock as ICSOUT source; FLL source = 20MHz/512 while ((ICS_S & ICS_S_IREFST_MASK) == 1); // wait for external source selected while ((ICS_S & 0x0C) != 0x08); // wait until FBE mode is selected KEA128 子系列参考手册, Rev. 2, July 2014 284 Freescale Semiconductor, Inc. 第 20 章 内部时钟源(ICS) SIM_CLKDIV = 0x00000000; // core clock = ICSOUT/1 and bus clock = core clock/1 ICS_C2 = 0x00; // BDIV=divide by 1 – allows max core and bus clock frequencies KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 285 初始化/应用信息 KEA128 子系列参考手册, Rev. 2, July 2014 286 Freescale Semiconductor, Inc. 第 21 章 振荡器(OSC) 21.1 简介 21.1.1 概述 OSC 模块为 MCU 提供时钟源。OSC 模块可与外部晶振或谐振器一起产生一个时 钟,这个时钟可以被 MCU 用作基准时钟或总线时钟。 21.1.2 特性和模式 OSC 模块的主要特性有: • 支持 32 kHz 晶振(低范围模式) • 支持 4–24 MHz 晶振和谐振器(高范围模式) • 使用低功耗模式(低增益模式)可通过自动增益控制(AGC)优化两种频率范围内 的功耗 • 两种频率范围内均具有高增益选项:32 kHz, 4–24 MHz • 提供电压和频率过滤功能,确保时钟的频率和稳定性 • 通过 ICS 可使能支持。 21.1.3 结构框图 OSC 模块结构框图请参见下图。 OSC 模块使用晶振或谐振器生成三个经过滤波的振荡器时钟信号(XTL_CLK)。 XTL_CLK 可在 Stop 模式下工作,因为它们来自始终通电的硬件模块。 OSCOS 决定 OSC_OUT 是来自内部振荡器(XTL_CLK)还是直接来自 EXTAL 引脚 上设定的外部时钟。OSCOS 信号允许 XTAL 引脚用作 I/O 或测试时钟。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 287 信号说明 EXTAL XTAL 数字封装器 多路复用器 OSC_OUT HGO 高增益 32 k/4-24 MHz 振荡器 范围 XTL_CLK OSCOS EN 低功耗 4-24 MHz 振荡器 ICS_OSC_EN EN 低功耗 32 kHz 振荡器 STOP OSCEN 4096 计数器 OSCSTEN CNT_DONE_4096 OSC_INIT 硬区块 图 21-1. OSC 模块结构框图 21.2 信号说明 下表介绍用户可访问的 OSC 模块信号。参见芯片级规格,了解外部引脚上实际连接 了哪些信号。 表 21-1. OSC 信号说明 信号 EXTAL XTAL 说明 I/O 外部时钟/振荡器输入 模拟输入 振荡器输出 模拟输出 KEA128 子系列参考手册, Rev. 2, July 2014 288 Freescale Semiconductor, Inc. 第 21 章 振荡器(OSC) 21.3 外部晶振/谐振器连接 晶振/谐振器频率基准的连接如图 21-2 和图 21-3 所示。在使用低频、低功耗模式时, 唯一的外部组件就是晶振或谐振器本身。在其他振荡器模式下,需要使用负载电容 器(Cx, Cy)和反馈电阻(RF)。另外,高增益模式下还要使用串联电阻(RS)。数据手册 中列出了建议的组件值。 表 21-2. 外部晶振/谐振器连接 振荡器模式 连接 低频、高增益 Connection2 低频、低功耗 Connection1 高频、高增益(4–20 MHz) Connection2 高频、低功耗(4–20 MHz) Connection2 VLP振荡器(OSC_VLP)模块 XTAL VSS EXTAL 晶振或谐振器 图 21-2. 晶振/谐振器连接 - 连接 1 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 289 外部时钟连接 VLP振荡器(OSC_VLP)模块 VSS XTAL EXTAL RS Cy Cx RF 晶振或谐振器 图 21-3. 晶振/谐振器连接 - 连接 2 21.4 外部时钟连接 在外部时钟模式下(OSC_CR[OSCOS] = 0),引脚可如下图所示连接。 VLP振荡器(OSC_VLP)模块 VSS XTAL EXTAL 外部时钟输入 GPIO 图 21-4. 外部时钟连接 21.5 存储器映像和寄存器说明 OSC 存储器映射 绝对地址(十 六进制) 4006_5000 寄存器名称 OSC 控制寄存器 (OSC_CR) 宽度(单 位:位) 访问 复位值 小节/页 8 R/W 00h 21.5.1/291 KEA128 子系列参考手册, Rev. 2, July 2014 290 Freescale Semiconductor, Inc. 第 21 章 振荡器(OSC) 21.5.1 OSC 控制寄存器 (OSC_CR) 地址: 4006_5000h 基准 + 0h 偏移 = 4006_5000h 位 读 写 复位 7 6 OSCEN 0 5 0 4 OSCSTEN OSCOS 0 0 0 3 0 2 1 RANGE HGO 0 0 0 0 OSCINIT 0 OSC_CR 字段描述 字段 7 OSCEN 描述 OSC 使能 使能 OSC 模块。OSC 模块也可通过 ICS 模块使能。 0 1 6 保留 5 OSCSTEN 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 Stop 模式下的 OSC 使能 控制 OSC 时钟在 MCU 进入 Stop 模式且 OSCEN 置位时是否保持使能。如果 ICS 请求 OSC 使能,则 OSCSTEN 无效。 0 1 4 OSCOS 2 RANGE 选择 OSC 模块的输出时钟。 频率范围选择 选择 OSC 模块的频率范围。 此位必须在 OSC 使能之前配置,且在 OSC 使能后不能更改 32 kHz 的低频范围。 4–24 MHz 的高频范围。 高增益振荡器选择 控制 OSC 工作模式。 0 1 0 OSCINIT 选择来自 EXTAL 引脚的外部时钟源。 选择振荡器时钟源。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 1 1 HGO OSC 时钟在 Stop 模式下禁用。 OSC 时钟在 Stop 模式下保持使能。 OSC 输出选择 0 1 3 保留 OSC 模块禁用。 OSC 模块使能。 低功耗模式 高增益模式 OSC 初始化 该字段在振荡器初始化周期完成后置位。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 291 功能说明 OSC_CR 字段描述 (继续) 字段 描述 0 1 振荡器初始化未完成。 振荡器初始化已完成。 21.6 功能说明 21.6.1 OSC 模块状态 OSC 模块有三种状态。状态图可参见图 21-5 。本节说明各状态以及相互之间的转 换。 关 • 振荡器关 •OSC_OUT = 静态 EN EN && OSCOS EN && OSCOS 启动 启动 • 振荡器开 •OSC_OUT = EXTAL • 振荡器开,还不稳定 •OSC_OUT = 静态 CNT_DONE_4096 稳定 • 振荡器开,稳定 •OSC_OUT = XTL_CLK 图 21-5. OSC 模块状态图 EN 由 OSC_CR[OSCEN]、停止、OSC_CR[OSCSTEN]和外部请求(ICS_OSC_EN)所 确定。详情可参见下表。 KEA128 子系列参考手册, Rev. 2, July 2014 292 Freescale Semiconductor, Inc. 第 21 章 振荡器(OSC) 表 21-3. EN 状态 EN ICS_OSC_EN OSC_CR[OSCEN] OSC_CR[OSCSTEN] 停止 1 1 - - - 1 0 1 - 0 1 0 1 1 1 0 0 1 0 1 0 0 0 - - 21.6.1.1 关 只要 EN 信号被否定,便进入关状态。进入该状态后,XTL_CLK 和 OSC_OUT 为 静态。在此状态下,EXTAL 和 XTAL 引脚还会与其他所有振荡器电路解除耦合。 OSC 模块电路配置为消耗最小的电流。 21.6.1.2 振荡器启动 只要振荡器首次使能,振荡器便进入启动状态(EN 转换为高电平),并且 OSC_CR[OSCOS]为高电平。在此状态下,OSC 模块启用并开始振荡,但是还不稳 定。当振荡幅度变得足够大,可以通过输入缓冲区时,XTL_CLK 开始为计数器提 供时钟源。当计数器看到 XTL_CLK 的 4096 个周期时,振荡器可视作稳定,并且 XTL_CLK 传输至输出时钟OSC_OUT。 21.6.1.3 振荡器稳定 在满足了振荡器使能(EN 高电平),OSC_CR[OSCOS]为高电平,并且计数器能看 到 4096 个XTL_CLK 周期(CNT_DONE_4096 为高电平),振荡器便进入稳定状态。 在此状态下,OSC 模块在 OSC_OUT 上产生稳定的输出时钟。其频率由所使用的外 部组件确定。 21.6.1.4 外部时钟模式 使能振荡器(EN 高电平)且 OSC_CR[OSCOS]为低电平时,进入外部时钟状态。 此状态下,OSC 模块设置为将来自 EXTAL 的时钟缓冲(有迟滞)至 OSC_OUT。 其频率由提供的外部时钟确定。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 293 功能说明 21.6.2 OSC 模块模式 此振荡器是 Pierce 类型的振荡器,支持外部晶振或谐振器以下表中显示的频率范围 运行。这些模式假定 EN = 1、OSC_CR[OSCOS] = 1。 表 21-4. 振荡器模式 范围 HGO 模式 频率范围 0 1 低频率、高增益 flo(min)到最高 flo(max) 0 0 低频率、低功耗(VLP) 1 1 高频率模式 1、高增益 1 0 高频率模式 1、低功耗 fhi(min)到最高 fhi(max) 21.6.2.1 低频、高增益模式 在低频率、高增益模式下(OSC_CR[RANGE] = 0、OSC_CR[HGO] = 1),振荡器使 用简单的逆变器类放大器。增益设置为可获得全摆幅振荡幅度。此模式下的振荡器 输入缓冲区为单端式。它为电压滤波提供低通频率过滤和迟滞功能,并将输出转换 为逻辑电平。 21.6.2.2 低频、低功耗模式 在低频率、低功耗模式下(OSC_CR[RANGE] = 0、OSC_CR[HGO] = 0),振荡器使 用增益控制环路来最大程度地降低功耗。当振幅增大时,放大器电流减小。这种状 况将持续,直到所需的幅度到达稳态。 此模式下的振荡器输入缓冲区为单端式。它为电压滤波提供低通频率过滤和迟滞功 能,并将输出转换为逻辑电平。 在该模式下,放大器输入、增益控制输入和输入缓冲区输入均为容性耦合,以提升 漏电容差(对 EXTAL 的直流电平不敏感)。 该模式下,集成了除谐振器本身以外的所有外部元器件,包括:负载电容和反馈电 阻,可偏置 EXTAL。 21.6.2.3 高频、高增益模式 在高频率、高增益模式下(OSC_CR[RANGE] = 1、OSC_CR[HGO] = 1),振荡器使 用简单的逆变器类放大器。增益设置为可获得全摆幅振荡幅度。 KEA128 子系列参考手册, Rev. 2, July 2014 294 Freescale Semiconductor, Inc. 第 21 章 振荡器(OSC) 此模式下的振荡器输入缓冲区为单端式。它为电压滤波提供低通频率过滤和迟滞功 能,并将输出转换为逻辑电平。 21.6.2.4 高频、低功耗模式 在高频率、低功耗模式下(OSC_CR[RANGE] = 1、OSC_CR[HGO] = 0),振荡器使 用增益控制环路来最大程度地降低功耗。当振幅增大时,放大器电流减小。这种状 况将持续,直到所需的幅度到达稳态。 此模式下的振荡器输入缓冲区为差分式。它为电压滤波提供低通频率过滤和迟滞功 能,并将输出转换为逻辑电平。 21.6.3 计数器寄存器 振荡器输出时钟(OSC_OUT)将被门控关闭,直到计数器检测到 4096 个输入时钟周 期(XTL_CLK)。一旦 4096 个周期完成后,计数器会将 XTL_CLK 发送到 OSC_OUT 上。此计数定时溢出可用于确保输出时钟的稳定性。 21.6.4 基准时钟的引脚要求 在振荡器模式下,OSC 模块需要同时使用 EXTAL 和 XTAL 引脚来生成输出时钟, 但在外部时钟模式下,只需要使用 EXTAL 引脚。只要满足数据手册中列出的规格, 便可将 EXTAL 和 XTAL 引脚用于 I/O 或测试时钟用途。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 295 功能说明 KEA128 子系列参考手册, Rev. 2, July 2014 296 Freescale Semiconductor, Inc. 第 22 章 循环冗余校验(CRC) 22.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 循环冗余校验(CRC)模块生成 16/32 位 CRC 码以便进行误差检测。 CRC 模块提供多项的 16 位或 32 位 CRC 标准所需的可编程多项式、WAS 和其他参 数。 对于 32 位数据,每次都计算该 16/32 位代码。 22.1.1 特性 CRC 模块特性包括: • 硬件电路 CRC 产生器用到一个 16 位或者 32 位可编程移位寄存器 • 可编程初始化起始值和多项式 • 逐位或逐字节可选择转换输入数据或输出数据(CRC 结果)。某些 CRC 标准要 求提供该选项。以 8 位读取操作访问 CRC 数据寄存器时,无法执行逐字节转置 操作。这种情况下,用户软件必须执行逐字节转置功能。 • 提供最终 CRC 结果反转选项 • 32 位 CPU 寄存器编程接口 22.1.2 结构框图 下图为 CRC 结构框图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 297 存储器映像和寄存器说明 [31:24][ 23:16] [15:8] [7:0] 反向 逻辑 WAS 起始值 FXOR 多路复用器 TOT CRC数据寄存器 TOTR 非 逻辑 CRC数据 CRC数据寄存器 [31:24] [23:16] [15:8] [7:0] 反向 逻辑 校验和 CRC多项式 寄存器 [31:24] [23:16] [15:8] [7:0] CRC引擎 数据 组合 逻辑 多项式 16/32位选择 TCRC 图 22-1. 可编程循环冗余校验(CRC)结构框图 22.1.3 工作模式 不同 MCU 模式都会影响 CRC 模块的功能。 22.1.3.1 Run 模式 这是基本工作模式。 22.1.3.2 低功耗模式(Wait 或 Stop 模式) MCU 进入低功耗模式后禁用模块时钟,任何进行中的 CRC 计算都会停止。CRC 计 算在时钟使能后或通过系统复位退出低功耗模式后恢复。该模块的时钟选通取决于 MCU。 22.2 存储器映像和寄存器说明 CRC 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_2000 CRC 数据寄存器 (CRC_DATA) 32 R/W FFFF_FFFFh 22.2.1/299 4003_2004 CRC 多项式寄存器 (CRC_GPOLY) 32 R/W 0000_1021h 22.2.2/300 4003_2008 CRC 控制寄存器 (CRC_CTRL) 32 R/W 0000_0000h 22.2.3/300 KEA128 子系列参考手册, Rev. 2, July 2014 298 Freescale Semiconductor, Inc. 第 22 章 循环冗余校验(CRC) 22.2.1 CRC 数据寄存器 (CRC_DATA) CRC 数据寄存器包含起始值、数据及校验和。如果设置了 CTRL[WAS],则对数据 寄存器执行的任何写操作都视为起始值。如果 CTRL[WAS]清零,则对数据寄存器 进行的任何写操作都被视为用于一般 CRC 计算的数据。 在 16 位 CRC 模式下,不使用 HU 字段和 HL 字段来设定起始值,对这些字段进行 读操作会返回不确定的值。在 32 位 CRC 模式中,所有字段均用于设定起始值。 进行数据数值编程时,如果所有字节都是连续的,那么可一次写入 8 位、16 位或 32 位的数值;首先写入的是 MSB 数据数值。 写入所有数据数值后,可从该数据寄存器中读取 CRC 结果。在 16 位 CRC 模式下, LU 字段和 LL 字段提供 CRC 结果。在 32 位 CRC 模式下,所有字段均包含此结果。 随时对此寄存器执行读访问,以返回中间的 CRC 值,假设已配置 CRC 模块。 地址: 4003_2000h 基准 + 0h 偏移 = 4003_2000h 位 R W 31 复位 1 30 29 28 27 26 25 24 23 22 21 HU 1 1 1 1 20 19 18 17 16 15 14 13 12 HL 1 1 1 1 1 1 1 1 11 10 9 8 7 6 5 4 LU 1 1 1 1 1 1 1 1 3 2 1 0 1 1 1 1 LL 1 1 1 1 1 1 1 CRC_DATA 字段描述 字段 31–24 HU 23–16 HL 描述 CRC 高字段高位字节 在 16 位 CRC 模式(CTRL[TCRC]为 0)下,该字段并不用于起始值的编程。在 32 位 CRC 模式 (CTRL[TCRC]为 1)下,当 CTRL[WAS]为 1 时,写入该字段的值是起始值的一部分。当 CTRL[WAS]为 0 时,写入该字段的数据用于在 16 位 CRC 模式和 32 位 CRC 模式下生成 CRC 校验和。 CRC 高字段低位字节 在 16 位 CRC 模式(CTRL[TCRC]为 0)下,该字段并不用于设定起始值。在 32 位 CRC 模式(CTRL[TCRC] 为 1)下,当 CTRL[WAS]为 1 时,写入该字段的值是起始值的一部分。当 CTRL[WAS]为 0 时,写入该字段 的数据用于在 16 位 CRC 模式和 32 位 CRC 模式下生成 CRC 校验和。 15–8 LU CRC 低字段高位字节 LL CRC 低字段低位字节 当 CTRL[WAS]为 1 时,写入该字段的数值是起始值的一部分。当 CTRL[WAS]为 0 时,写入该字段的数据用 于生成 CRC 校验和。 当 CTRL[WAS]为 1 时,写入该字段的数值是起始值的一部分。当 CTRL[WAS]为 0 时,写入该字段的数据用 于生成 CRC 校验和。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 299 存储器映像和寄存器说明 22.2.2 CRC 多项式寄存器 (CRC_GPOLY) 该寄存器含有 CRC 计算所需的多项式值。HIGH 字段含有 CRC 多项式的高 16 位, 仅在 32 位 CRC 模式下使用。在 16 位 CRC 模式下会忽略对 HIGH 字段的写操作。 LOW 字段包含在 16 位 CRC 模式和 32 位 CRC 模式下都使用的 CRC 多项式的低 16 位。 地址: 4003_2000h 基准 + 4h 偏移 = 4003_2004h 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 HIGH 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 0 0 1 0 0 0 0 1 LOW 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 CRC_GPOLY 字段描述 字段 描述 31–16 HIGH 多项式高 16 位 LOW 多项式低 16 位 32 位 CRC 模式下可读写(CTRL[TCRC]为 1)。该字段在 16 位 CRC 模式下不可写(CTRL[TCRC]为 0)。 在 32 位 CRC 模式和 16 位 CRC 模式下都可读写。 22.2.3 CRC 控制寄存器 (CRC_CTRL) 该寄存器控制 CRC 模块的配置和工作。开始进行新的 CRC 计算前,相应位必须置 位。初始化新的 CRC 计算的方法是:使 CTRL[WAS]的电平变为有效,然后将起始 值写入 CRC 数据寄存器。 地址: 4003_2000h 基准 + 8h 偏移 = 4003_2008h 31 30 29 28 27 26 25 0 R TOT TOTR FXOR WAS W 24 23 22 21 20 19 18 17 16 0 TCRC 位 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 300 Freescale Semiconductor, Inc. 第 22 章 循环冗余校验(CRC) CRC_CTRL 字段描述 字段 31–30 TOT 描述 写入的转置类型 定义写入 CRC 数据寄存器的数据的转置配置。有关可用的转置选项,请参见转置特性说明。 00 01 10 11 29–28 TOTR 读取的转置类型 识别从 CRC 数据寄存器读取的数值的转置配置。有关可用的转置选项,请参见转置特性说明。 00 01 10 11 27 保留 26 FXOR CRC 数据寄存器的补充读取 某些 CRC 协议要求最终校验和与 0xFFFFFFFF 或 0xFFFF 进行异或运算。使该位的电平变为有效可使能 已读取数据的即时补充。 保留 读取时不执行异或运算。 反转或补充 CRC 数据寄存器的读取值。 作为起始值写入 CRC 数据寄存器 电平变为有效后,写入 CRC 数据寄存器的值被视为起始值。电平变为无效后,写入 CRC 数据寄存器的值用 作 CRC 计算中的数据。 0 1 24 TCRC 无转置。 字节中的位转置;字节不转置。 字节中的位和字节均转置。 仅字节转置;字节中的位不转置。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 1 25 WAS 无转置。 字节中的位转置;字节不转置。 字节中的位和字节均转置。 仅字节转置;字节中的位不转置。 写入 CRC 数据寄存器的是数据值。 写入 CRC 数据寄存器的是起始值。 CRC 协议宽度。 0 1 16 位 CRC 协议。 32 位 CRC 协议。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 22.3 功能说明 22.3.1 CRC 初始化/重新初始化 要使能 CRC 计算,用户必须在应用的寄存器内对 CRC_CTRL[WAS]、 CRC_GPOLY、转置所必需的参数以及 CRC 结果反转进行编程。使 CRC_CTRL[WAS]的电平变为有效可实现将起始值编入 CRC_DATA 寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 301 功能说明 完成 CRC 计算后,使 CRC_CTRL[WAS]的电平再次变为有效并进行起始值的编程, 且无论其值是全新数值还是之前使用过的起始值,都重新初始化 CRC 模块以便进 行新的 CRC 计算。所有其他参数都必须设置在进行起始值以及后续数据值的程序 之前。 22.3.2 CRC 计算 在 16 位 CRC 模式和 32 位 CRC 模式下,如果所有字节都是连续的,可进行 8 位、 16 位或 32 位数据值的一次性编程。非连续字节可能导致 CRC 计算错误。 22.3.2.1 16 位 CRC 如需计算 16 位 CRC: 1. 清零 CRC_CTRL[TCRC]以使能 16 位 CRC 模式。 2. 按 CRC 计算要求对转置进行编程,并在 CTRL 寄存器中补全选项位。更多详 情,请参见转置特性 和 CRC 结果补码 。 3. 将 16 位多项式写入 CRC_GPOLY[LOW]字段。CRC_GPOLY[HIGH]字段在 16 位 CRC 模式下不可用。 4. 置位 CRC_CTRL[WAS]以进行起始值的编程。 5. 将 16 位起始值写入 CRC_DATA[LU:LL]。 CRC_DATA[HU:HL]不使用。 6. 清零 CRC_CTRL[WAS]以开始写入数据值。 7. 将数据值写入 CRC_DATA[HU:HL:LU:LL]。每次执行数据值写入操作便计算 CRC,并将 CRC 中间值结果存回至 CRC_DATA[LU:LL]。 8. 完成所有数值的写入操作后,从 CRC_DATA[LU:LL]读取最终的 CRC 结果。 转置和补充操作在读取或写入数值的同时执行。更多详情,请参见转置特性 和 CRC 结果补码 。 22.3.2.2 32 位 CRC 如需计算 32 位 CRC: 1. 置位 CRC_CTRL[TCRC]以使能 32 位 CRC 模式。 2. 按 CRC 计算要求对转置进行编程,并在 CTRL 寄存器中补全选项位。更多详 情,请参见转置特性 和 CRC 结果补码 。 3. 将 32 位多项式写入 CRC_GPOLY[HIGH:LOW]。 4. 置位 CRC_CTRL[WAS]以进行起始值的编程。 5. 将 32 位起始值写入 CRC_DATA[HU:HL:LU:LL]。 6. 清零 CRC_CTRL[WAS]以开始写入数据值。 KEA128 子系列参考手册, Rev. 2, July 2014 302 Freescale Semiconductor, Inc. 第 22 章 循环冗余校验(CRC) 7. 将数据值写入 CRC_DATA[HU:HL:LU:LL]。每次执行数据值写入操作便计算 CRC,并将 CRC 中间值结果存回至 CRC_DATA[HU:HL:LU:LL]。 8. 完成所有数值的写入操作后,从 CRC_DATA[HU:HL:LU:LL]读取最终的 CRC 结果。CRC 计算逐字节执行,且需要两个时钟周期完成一次 CRC 计算。 转置和补充操作在读取或写入数值的同时执行。更多详情,请参见转置特性 和 CRC 结果补码 。 22.3.3 转置特性 默认情况下,转置特性未使能。然而,某些 CRC 标准要求对输入数据和/或最终校 验和进行转置。用户软件可根据 CRC 标准需要选择单独配置每个转置操作。数据 在读写的同时进行转置。 某些协议计算 CRC 时对数据流采用低字节序格式。在这种情况下,转置特性非常 有用,可以翻转位。该转置选项是 CRC 模块支持的功能类型之一。 22.3.3.1 转置类型 CRC 模块提供可翻转位和/或字节的多种转置功能类型,以便根据采用的 CRC 计算 方法分别使用 CTRL[TOT]或 CTRL[TOTR]字段写入输入数据和读取 CRC 结果。 下列转置功能类型可用于对 CRC 数据寄存器进行读写操作: 1. CTRL[TOT]或 CTRL[TOTR]为 00。 不发生转置。 2. CTRL[TOT]或 CTRL[TOTR]为 01。 字节中的位转置,而字节不转置。 reg[31:0]变为{reg[24:31], reg[16:23], reg[8:15], reg[0:7]} 31 24 23 16 15 24 31 16 23 8 8 7 0 15 0 7 图 22-2. 转置类型 01 3. CTRL[TOT]或 CTRL[TOTR]为 10。 字节中的位和字节均转置。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 303 功能说明 reg[31:0]变为 = {reg[0:7], reg[8:15],reg[16:23], reg[24:31]} 31 0 0 31 图 22-3. 转置类型 10 4. CTRL[TOT]或 CTRL[TOTR]为 11。 字节转置,但位不转置。 reg[31:0]变为{reg[7:0], reg[15:8], reg[23:16], reg[31:24]} 31 7 24 23 16 15 8 0 15 8 23 16 7 31 0 24 图 22-4. 转置类型 11 注 为了对 CRC 数据寄存器进行 8 位或 16 位的写访问,对不使 用的字节该数据转置为零(将 32 位作为一个整体),但对于 有效字节仅计算 CRC。读取 CRC 数据寄存器中的 16 位 CRC 结果并使用转置选项 10 和 11 时,转置后的结果数值 位于 CRC[HU:HL]字段。读取 16 位 CRC 结果时,用户软件 必须将该情形考虑在内,因此优先读取 32 位。 22.3.4 CRC 结果补码 CTRL[FXOR]置位后,对校验和进行补码。CRC 结果补码功能可在每次对 CRC 数 据寄存器进行读操作时输出存储在 CRC 数据寄存器中的校验和数值的补码。 CTRL[FXOR]清零后,对 CRC 数据寄存器进行读操作会访问原始校验和数值。 KEA128 子系列参考手册, Rev. 2, July 2014 304 Freescale Semiconductor, Inc. 第 23 章 外部中断(IRQ) 23.1 简介 外部中断(IRQ)模块提供一路可屏蔽中断输入。 23.2 特性 IRQ 模块特性包括: • IRQ 中断控制位 • 可编程中断由边沿触发或边沿和电平触发 • 自动中断应答 • 内部上拉电阻 施加在外部中断请求(IRQ)引脚上的低电平可锁存 CPU 中断请求。下图显示的是 IRQ 模块结构: KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 305 特性 IRQACK 复位信号 到CPU 同步器 BUSCLK VDD 1 IRQ 0 IRQF D S CLR Q 同步器 CK IRQPE Stop模式 IRQEDG 到IRQ的上拉使能逻辑 到内部 IRQMOD IRQPDD Stop模式 旁通 IRQIE IRQ 中断 请求 模块 唤醒 输入 图 23-1. IRQ 模块结构框图 外部中断由 IRQ_SC 状态和控制寄存器管理。使能 IRQ 功能后,同步逻辑监测引 脚,以便确定是仅边沿事件还是边沿和电平事件。当 MCU 处于 Stop 模式且系统时 钟被关断时,就会使用单独的异步路径,从而 IRQ(若使能)能唤醒 MCU。 23.2.1 引脚配置选项 IRQ 引脚使能(IRQ_SC[IRQPE])控制字段必须置 1,IRQ 引脚才能用作 IRQ 输入。 用户可以选择有效的边沿或电平的极性(IRQEDG),引脚是只检测边沿还是检测边沿 和电平(IRQMOD),或者事件是触发中断还是仅置位 IRQ_SC[IRQF]标志,再通过软 件轮询。 使能时,IRQ 引脚默认使用内部上拉电阻(IRQ_SC[IRQPDD] = 0)。若用户使用外部 上拉或下拉电阻,则可将 IRQ_SC[IRQPDD]置 1 以关断内部设备。 在 IRQ 引脚配置为 IRQ 输入时,BIH 和 BIL 指令可用于检测该引脚上的电平。 注 该引脚不含钳位至 VDD 的钳位二极管,且不得输入超过 VDD。内部上拉的 IRQ 引脚上测得的电压可能低至 VDD – 0.7 V。连接该引脚的内部栅极一路上拉至 VDD。 使能 IRQ 引脚以供使用后,IRQ_SC[IRQF]将置位,并且在 使能中断前必须清零。针对 3V 系统,当管脚配置为下降沿 或电平有效时,在清标志位和使能中断之前须等待几个机器 周期。 KEA128 子系列参考手册, Rev. 2, July 2014 306 Freescale Semiconductor, Inc. 第 23 章 外部中断(IRQ) 23.2.2 边沿和电平有效 IRQ_SC[IRQMOD]控制字段可以配置检测逻辑,以检测边沿事件和引脚电平。在该 检测模式下,如果 IRQ 引脚从无效电平变为有效电平,则在检测到边沿时 IRQ_SC[IRQF]状态标志置位;但只要 IRQ 引脚保持在有效电平,该标志就会继续 置位并且无法清零。 23.3 外部中断引脚请求寄存器 IRQ 存储器映射 绝对地址(十 六进制) 4003_1000 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 8 R/W 00h 23.3.1/307 外部中断引脚请求状态和控制寄存器 (IRQ_SC) 23.3.1 外部中断引脚请求状态和控制寄存器 (IRQ_SC) 该直接页面寄存器包括状态位和控制位,用于配置 IRQ 功能、报告状态和应答 IRQ 事件。 地址: 4003_1000h 基准 + 0h 偏移 = 4003_1000h 位 7 读 0 写 复位 6 5 4 IRQPDD IRQEDG IRQPE 0 0 0 0 3 2 IRQF 0 IRQACK 0 0 1 0 IRQIE IRQMOD 0 0 IRQ_SC 字段描述 字段 7 保留 6 IRQPDD 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 IRQ 内部上拉电阻禁用 当 IRQ 引脚使能时(IRQPE = 1),该读/写控制位用于禁用内部上拉电阻,以配合外部器件。 0 1 5 IRQEDG 若 IRQPE = 1,则 IRQ 内部上拉电阻使能。 若 IRQPE = 1,则 IRQ 内部上拉电阻禁用。 IRQ 边沿选择 该读/写控制字段用于选择使 IRQF 置位的 IRQ 引脚上的边沿或电平的极性。IRQMOD 控制字段确定 IRQ 引 脚是对边沿和电平都敏感还是只对边沿敏感。当 IRQ 引脚使能用作 IRQ 输入并配置为检测上升沿时,可选上 拉电阻是禁用的。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 307 外部中断引脚请求寄存器 IRQ_SC 字段描述 (继续) 字段 描述 0 1 4 IRQPE IRQ 引脚使能 该读/写控制字段使能 IRQ 引脚功能。该字段置位后,IRQ 引脚可用作中断请求。 0 1 3 IRQF 1 IRQIE 该只读状态字段指示是否发生了中断请求事件。 无 IRQ 请求 检测到 IRQ 事件。 IRQ 应答 该只写字段用于应答中断请求事件(写入 1 可清零 IRQF)。写入 0 无效。读取操作始终返回 0。如果选择边 沿和电平敏感(IRQMOD = 1),当 IRQ 引脚保持在有效电平时无法清零 IRQF。 IRQ 中断使能 该读/写控制字段确定 IRQ 事件是否生成中断请求。 0 1 0 IRQMOD IRQ 引脚功能禁用。 IRQ 引脚功能使能。 IRQ 标志 0 1 2 IRQACK IRQ 对下降沿或下降沿/低电平敏感。 IRQ 对上升沿或上升沿/高电平敏感。 IRQF 置位时禁止发送中断请求(使用轮询)。 只要 IRQF = 1 就发送中断请求。 IRQ 检测模式 该读/写控制字段选择仅边沿检测或边沿和电平敏感。 0 1 只检测下降沿/上升沿。 检测下降沿/上升沿和低电平/高电平。 KEA128 子系列参考手册, Rev. 2, July 2014 308 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 24.1 简介 12 位模数转换器(ADC)是一种逐次逼近型 ADC,应用于集成化的 MCU 片上系统 。 24.1.1 特性 ADC 模块特性包括: • 采用 8 位、10 位或 12 位分辨率的线性逐次逼近算法 • 最多 16 个外部模拟输入、外部引脚输入以及 5 个内部模拟输入,包括内部带隙 基准、温度传感器和基准电压 • 8 位、10 位或 12 位的右对齐无符号格式输出 • 单次或连续转换(单次转换后自动返回到空闲状态) • 结果 FIFO 深度可选,最多可保存 8 个转换结果 • 可配置采样时间和转换速度/功耗 • 转换完成标志和中断 • 可从最多 4 个来源中选择输入时钟 • 可在 Wait 或 Stop 模式下工作,降低转换时的噪声 • 提供异步时钟源,降低转换时的噪声 • 可选的异步硬件转换触发源 • 自动与设定值进行比较(小于、大于或等于),根据结果产生中断 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 309 外部信号说明 24.1.2 结构框图 本图是 ADC 模块的结构框图。 片外源通道 7 5位通道号 0 12位AD结果 6 5位通道号 1 12位AD结果 5 5位通道号 2 12位AD结果 4 5位通道号 3 12位AD结果 3 4 12位AD结果 2 5位通道号 5位通道号 5 12位AD结果 1 5位通道号 6 12位AD结果 0 5位通道号 7 12位AD结果 AD结果FIFO AD通道FIFO AFDEP AD1 AD2 AIEN AD转换结果 FIFO填充满 输入通道 FIFO填充满 AD0 AD0至AD15来自外部 引脚输入或保留 AD14 AD15 V SS 保留 温度传感器 内部带隙基准 保留位 VREFL VREFH 无(模块禁用) AD19-AD16 AD21-AD20 AD22 ANALOG MUX 至CPU的中断信号 COCO SAR ADC ADCK 时序 控制器 AD23 比较 逻辑 AD29 AD30 AD31 AD32 ADTRG 模式 片上源通道 ADCO ADLSMP ADLPC ACFGT STOP ACFE ALT CLK BUS CLK 2 ADACK CLK MUX ADHWT 时钟 分频器 ADICLK ADIV 比较值 异步 时钟 发生器 图 24-1. ADC 方框图 24.2 外部信号说明 ADC 模块支持多达 24 个单独的模拟输入。它还要求四个电源/基准/接地连接。 KEA128 子系列参考手册, Rev. 2, July 2014 310 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 表 24-1. 信号属性 名称 功能 AD23–AD0 模拟通道输入 VREFH 高基准电压 VREFL 低基准电压 VDDA 模拟电源 VSSA 模拟接地 24.2.1 模拟电源(VDDA) ADC 模拟部分将 VDDA 用作其电源连接。在某些封装中,VDDA 内部连接到 VDD。 如果可以外部连接,则将 VDDA 引脚连接到与 VDD 相同的电势。可能必须进行外部 滤波确保 VDDA 干净以便获得良好的结果。 24.2.2 模拟接地(VSSA) ADC 模拟部分将 VSSA 用作其接地连接。在某些封装中,VSSA 内部连接到 VSS。如 果可以外部连接,则将 VSSA 引脚连接到与 VSS 相同的电势。 24.2.3 高基准电压 (VREFH) VREFH 是转换器的高基准电压。在某些封装中,VREFH 内部连接到 VDDA。如果可从 外部连接,可将 VREFH 连接到与 VDDA 相同的电势,或由介于数据手册中指定的最 小 VDDA 与 VDDA 电势之间的外部电压源驱动(VREFH 不能超过 VDDA)。 24.2.4 低基准电压 (VREFL) VREFL 是转换器的低基准电压。在有些封装中,VREFL 在内部与 VSSA 相连。如果也 可从外部连接,则将 VREFL 引脚连接到与 VSSA 相同的电压引脚上。 24.2.5 模拟通道输入(ADx) ADC 模块支持多达 24 个单独的模拟输入。通过 ADCH 通道选择位选择某个输入 进行转换。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 311 ADC 控制寄存器 24.3 ADC 控制寄存器 ADC 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_B000 状态和控制寄存器 1 (ADC_SC1) 32 R/W 0000_001Fh 24.3.1/312 4003_B004 状态和控制寄存器 2 (ADC_SC2) 32 R/W 0000_0008h 24.3.2/314 4003_B008 状态和控制寄存器 3 (ADC_SC3) 32 R/W 0000_0000h 24.3.3/316 4003_B00C 状态和控制寄存器 4 (ADC_SC4) 32 R/W 0000_0000h 24.3.4/317 4003_B010 转换结果寄存器 (ADC_R) 32 R 0000_0000h 24.3.5/318 4003_B014 比较值寄存器 (ADC_CV) 32 R/W 0000_0000h 24.3.6/319 4003_B018 引脚控制 1 寄存器 (ADC_APCTL1) 32 R/W 0000_0000h 24.3.7/319 32 R/W 0000_0000h 24.3.8/320 4003_B01C 状态和控制寄存器 5 (ADC_SC5) 24.3.1 状态和控制寄存器 1 (ADC_SC1) 本节介绍 ADC 状态和控制寄存器(ADC_SC)的功能。对 ADC_SC1 进行写操作会中 止当前转换并在 ADCH 位非全 1 时启动新的转换。 FIFO 使能时,通过 ADCH 对模拟输入通道 FIFO 进行写操作。FIFO 中的模拟输入 通道队列必须通过 ADCH 连续写入。生成的 FIFO 顺序与写入的模拟输入通道顺序 相同。当输入通道 FIFO 中填充的内容达到 ADC_SC4[AFDEP]指示的深度时,ADC 开始转换。在输入通道 FIFO 有效时将 0x1F 写入这些位就会使 FIFO 复位并停止转 换。 地址: 4003_B000h 基准 + 0h 偏移 = 4003_B000h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 312 Freescale Semiconductor, Inc. 15 14 13 12 11 10 9 8 0 R 7 6 5 AIEN 0 0 4 3 2 1 0 1 1 COCO 位 ADCO 第 24 章 模数转换器(ADC) ADCH W 复位 0 0 0 0 0 0 0 0 0 1 1 1 ADC_SC1 字段描述 字段 31–8 保留 7 COCO 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 转换完成标志 转换完成标志。COCO 标志是一个只读位,当比较功能禁用时(ADC_SC2[ACFE] = 0),COCO 会在每次转 换完成时置位。如果比较功能使能(ADC_SC2[ACFE] = 1),则仅当比较结果为真时,COCO 标志才会在转换 完成时置位。当使能 FIFO 功能时(ADC_SC4[AFDEP] > 0),COCO 标志在 FIFO 转换全部完成时置位。对 ADC_SC1 进行写操作或对 ADC_R 进行读操作时,该位清零。 0 1 6 AIEN 中断使能 AIEN 使能转换完成中断。如果在 COCO 置位的同时 AIEN 为高电平,那么会产生中断。 0 1 5 ADCO 转换完成中断禁用。 转换完成中断使能。 连续转换使能 ADCO 使能连续转换。 0 1 ADCH 转换未完成。 转换已完成。 选择软件触发操作时,对 ADC_SC1 进行写操作后启动一次转换;选择硬件触发操作时,ADHWT 的电 平变为有效值后启动一次转换。使能 FIFO 功能时(AFDEP > 0),如果 ADC_SC2[ADTRG]=0 或 ADC_SC2[ADTRG]=1 且 ADC_SC4[HTRGME]=1,一次触发操作会触发一组转换。 选择软件触发操作时,对 ADC_SC1 进行写操作后启动连续转换。选择硬件触发操作时,由 ADHWT 事 件启动连续转换。FIFO 功能使能时(AFDEP > 0),一次触发操作会循环触发一组转换。 输入通道选择 ADCH 位形成一个 5 位字段,用于选择一个输入通道。 00000-01111 10000-10011 10100-10101 10110 AD0-AD15 VSS 保留位 温度传感器 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 313 ADC 控制寄存器 ADC_SC1 字段描述 (继续) 字段 描述 带隙基准 保留位 VREFH VREFL 禁用 ADC 模块 10111 11000-11100 11101 11110 11111 注: 在 FIFO 模式下复位 FIFO。 24.3.2 状态和控制寄存器 2 (ADC_SC2) ADC_SC2 寄存器用于控制 ADC 模块的比较功能、转换触发以及转换进行标志位。 地址: 4003_B000h 基准 + 4h 偏移 = 4003_B004h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ACFGT FEMPTY FFULL ACFE 0 0 0 ADACT 复位 ADTRG W 0 R REFSEL W 复位 0 0 0 0 0 0 0 0 0 1 0 0 0 ADC_SC2 字段描述 字段 31–8 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 314 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) ADC_SC2 字段描述 (继续) 字段 7 ADACT 描述 转换进行标志位 指示转换正在进行。ADACT 在转换启动时置位,在转换完成或中止时清零。 0 1 6 ADTRG 转换触发类型选择 选择用于启动转换的触发类。有两类触发可选择:软件触发和硬件触发。选择软件触发时,对 ADC_SC1 进 行写操作后启动转换。选择硬件触发时,ADHWT 输入的电平变为有效值后启动转换。 0 1 5 ACFE 选择软件触发。 选择硬件触发。 比较功能使能 使能比较功能。 0 1 4 ACFGT 转换未在进行。 转换正在进行。 比较功能禁用。 比较功能使能。 大于等于比较功能使能 将比较功能的触发条件配置为当被检测输入的转换结果大于或等于比较值时。默认的触发条件为当被检测输 入的转换结果小于比较值时。 0 1 输入小于比较电平时,比较触发。 输入大于或等于比较电平时,比较触发。 3 FEMPTY 结果 FIFO 空标志 2 FFULL 结果 FIFO 满标志 REFSEL 0 1 0 1 指示 ADC 结果 FIFO 至少有一个有效新数据。 指示 ADC 结果 FIFO 没有有效新数据。 指示 ADC 结果 FIFO 未满,下一转换数据仍可存储在 FIFO 中。 指示 ADC 结果 FIFO 已满,如果不读取 FIFO,下一转换数据将覆盖旧数据。 基准电压源选择 选择用于转换的基准电压源。 00 01 10 11 默认基准电压引脚对(VREFH/VREFL)。 模拟供电引脚对(VDDA/VSSA)。 保留位。 保留位 - 选择默认基准电压(VREFH/VREFL)引脚对。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 315 ADC 控制寄存器 24.3.3 状态和控制寄存器 3 (ADC_SC3) ADC_SC3 用于选择工作模式、时钟源、时钟分频,并配置低功耗或长采样时间。 地址: 4003_B000h 基准 + 8h 偏移 = 4003_B008h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADLPC 0 R W 复位 0 0 0 0 0 0 0 0 0 ADLSMP 复位 ADIV 0 0 0 MODE 0 0 ADICLK 0 0 ADC_SC3 字段描述 字段 31–8 保留 7 ADLPC 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 低功耗配置 ADLPC 用于配置逐次逼近转换器的速度和功耗。在无需更高采样率时,这能优化功耗。 0 1 6–5 ADIV 时钟分频选择 ADIV 选择 ADC 用于生成内部时钟 ADCK 的分频比。 00 01 10 11 4 ADLSMP 分频比 = 1,时钟速率 = 输入时钟。 分频比 = 2,时钟速率 = 输入时钟 ÷ 2。 分频比 = 3,时钟速率 = 输入时钟 ÷ 4。 分频比 = 4,时钟速率 = 输入时钟 ÷ 8。 长采样时间配置 ADLSMP 选择长或短采样时间。调整采样周期可以使高阻抗输入的采样更精确或使低阻抗输入的转换速度 更快。当连续转换使能且无需高转换速率时,使用长采样时间还能降低整体功耗。 0 1 3–2 MODE 高速模式。 低功耗模式:减小功耗的同时会降低时钟频率所允许的最大值。 短采样时间。 长采样时间。 转换模式选择 MODE 位用于选择 12 位、10 位或 8 位操作。 00 8 位转换(N = 8) 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 316 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) ADC_SC3 字段描述 (继续) 字段 描述 01 10 11 10 位转换(N = 10) 12 位转换(N = 12) 保留 输入时钟选择 ADICLK ADICLK 位选择用于生成内部时钟 ADCK 的输入时钟源。 00 01 10 11 总线时钟 总线时钟 2 分频 备用时钟(ALTCLK) 异步时钟(ADACK) 24.3.4 状态和控制寄存器 4 (ADC_SC4) 该寄存器用于配置 ADC 模块的 FIFO 扫描模式、FIFO 比较功能和 FIFO 深度。 地址: 4003_B000h 基准 + Ch 偏移 = 4003_B00Ch 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 ACFSEL 0 ASCANE 复位 HTRGME W 0 0 0 AFDEP 0 0 0 0 0 ADC_SC4 字段描述 字段 31–9 保留 8 HTRGME 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 硬件触发多次转换功能使能 该字段使能硬件触发多次转换。 0 1 7 保留 一个硬件触发脉冲触发一次转换。 一个硬件触发脉冲触发 FIFO 模式下的多次转换。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 317 ADC 控制寄存器 ADC_SC4 字段描述 (继续) 字段 6 ASCANE 描述 FIFO 扫描模式使能 FIFO 在使能时总是使用第一个通道单元中的内容。该位置位且 FIFO 功能使能时,ADC 将重复使用该第一 个 FIFO 通道作为转换通道,直至结果 FIFO 填满。在连续模式(ADCO = 1)下,当 COCO 置位时,ADC 将 利用相同通道开始下一转换。 0 1 5 ACFSEL 比较功能选择 当 FIFO 功能使能时(AFDEP > 0),将比较功能配置为对 FIFO 中所有转换的比较触发进行”或“或者”与“运算。 当该字段清零时,ADC 将对所有比较触发作“或”运算,如果至少有一个比较触发有效,就会置位 COCO。当 该字段置位时,ADC 将对所有比较触发作“与”运算,如果所有比较触发都有效,就会置位 COCO。 0 1 4–3 保留 AFDEP FIFO 扫描模式禁用。 FIFO 扫描模式使能。 对所有比较触发作“或”运算。 对所有比较触发作“与”运算。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 FIFO 深度 用于使能 FIFO 功能和设置 FIFO 的深度。AFDEP 清零时,FIFO 禁用。AFDEP 设置为非零值时,FIFO 功 能使能,深度由 AFDEP 位指示。FIFO 功能使能时,FIFO 模式必须访问 ADC_SC1[ADCH]和 ADC_R。当 模拟输入通道 FIFO 写入的内容达到 AFDEP 位指示的深度时,ADC 启动转换。当 FIFO 中的一组转换完成 且结果 FIFO 中的内容达到 AFDEP 位指示的深度时,COCO 位置位。 000 001 010 011 100 101 110 111 FIFO 禁用。 2 级 FIFO 使能。 3 级 FIFO 使能。 4 级 FIFO 使能。 5 级 FIFO 使能。 6 级 FIFO 使能。 7 级 FIFO 使能。 8 级 FIFO 使能。 24.3.5 转换结果寄存器 (ADC_R) 在 12 位工作模式下,ADC_R 包含 12 位转换的 12 位结果。 在 10 位模式下,ADC_R 包含 10 位转换的 10 位结果。 在 8 位模式下,ADC_R 包含 8 位转换的 8 位结果。 除非使能了自动比较且不满足比较条件,ADC_R 会在每次转换时更新。 当 FIFO 使能时,结果 FIFO 通过 ADC_R 读取。当在 AFDEP 指定的深度执行输入 通道 FIFO 时,ADC 转换完成。AD 结果 FIFO 可以按照模拟输入通道 ADCH 设置 的顺序通过 ADC_R 连续读取。 如果 MODE 位改变,ADC_R 中的所有数据都会变为无效。 KEA128 子系列参考手册, Rev. 2, July 2014 318 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 地址: 4003_B000h 基准 + 10h 偏移 = 4003_B010h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 0 R 6 5 4 3 2 1 0 0 0 0 0 0 ADR W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADC_R 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–12 保留 转换结果 ADR 24.3.6 比较值寄存器 (ADC_CV) 该寄存器保存比较值。12 位模式下的转换完成后,位 ADCV11:ADCV0 与 12 位结 果进行比较。 地址: 4003_B000h 基准 + 14h 偏移 = 4003_B014h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 0 R 0 0 0 0 0 0 0 0 0 0 5 4 3 2 1 0 0 0 0 0 0 CV W 复位 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADC_CV 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–12 保留 转换结果[11:0] CV 24.3.7 引脚控制 1 寄存器 (ADC_APCTL1) 该引脚控制寄存器禁用用作模拟输入的 MCU 引脚的 I/O 端口控制。APCTL1 用于 控制与 ADC 模块的通道 0-31 相关的引脚。 地址: 4003_B000h 基准 + 18h 偏移 = 4003_B018h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 R 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 ADPC W 复位 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 319 ADC 控制寄存器 ADC_APCTL1 字段描述 字段 描述 31–16 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ADPC ADC 引脚控制 ADPCx 控制与通道 ADx 相关的引脚。 0 1 ADx 引脚 I/O 控制使能。 ADx 引脚 I/O 控制禁用。 24.3.8 状态和控制寄存器 5 (ADC_SC5) ADC_SC5 选择硬件触发屏蔽。 地址: 4003_B000h 基准 + 1Ch 偏移 = 4003_B01Ch 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 HTRGMASKE HTRGMASKS EL W 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 ADC_SC5 字段描述 字段 31–2 保留 1 HTRGMASKE 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 硬件触发屏蔽使能 当 HTRGMASKSEL 为低电平时,该字段使能硬件触发屏蔽。 0 1 硬件触发屏蔽禁用。 使能硬件触发屏蔽,硬件触发无法触发 ADC 转换。 0 硬件触发屏蔽模式选择 HTRGMASKSEL 该字段选择硬件触发屏蔽模式。 0 1 用 HTRGMASKE 屏蔽硬件触发。 当数据 FIFO 非空时,自动屏蔽硬件触发。 KEA128 子系列参考手册, Rev. 2, July 2014 320 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) ADC_SC5 字段描述 (继续) 字段 描述 24.4 功能说明 ADC 模块在复位期间 ADC_SC1[ADCH]位均为高电平时禁用。该模块在转换完成 后以及另一个转换还未发起前处于空闲状态。空闲时,该模块处于其功耗最低状态。 ADC 可在任何软件可选的通道上进行模数转换。在 12 位模式下,逐次逼近算法可 将选定的通道电压转换成 12 位数字结果。在 10 位模式下,逐次逼近算法可将选定 的通道电压转换成 10 位数字结果。在 8 位模式下,逐次逼近算法可将选定的通道电 压转换成 8 位数字结果。 转换完成后,结果置于数据寄存器(ADC_R)中。在 10 位模式下,结果四舍五入 为 10 位并置于数据寄存器(ADC_R)中。在 8 位模式下,结果四舍五入为 8 位并 置于数据寄存器 ADC_R 中。转换完成标志(ADC_SC1[COCO])随后置位并且在转 换完成中断已使能(ADC_SC1[AIEN] = 1)的情况下会生成一个中断。 ADC 模块能够自动将转换结果与其比较寄存器的内容作比较。比较功能在 ADC_SC2[ACFE]位置位的情况下使能,而且能在任何转换模式和配置下工作。 24.4.1 时钟选择和分频控制 ADC 模块的时钟源可以从四个时钟源中选择。然后用一个可配置的值将该时钟源 分频,生成转换器的输入时钟(ADCK)。利用 ADC_SC3[ADICLK]位从下列时钟源 选择时钟: • 总线时钟 2 分频:总线时钟速率较高时,最多可以对总线时钟进行 16 分频。 • ALTCLK,也就是备用时钟 OSC_OUT • 异步时钟(ADACK):该时钟从 ADC 模块内部的时钟源生成。选择该时钟作为 时钟源时,当 MCU 处于 Wait 或 Stop 模式时,它仍然有效,转换仍可进行,而 且噪声很低。 无论选择何种时钟,其频率都必须在 ADCK 的指定频率范围以内。如果可用时钟太 慢,ADC 将不能以额定性能工作。如果可用时钟太快,必须将其分频到合适的频 率。该分频器由 ADC_SC3[ADIV]位指定,可执行 1、2、4 或 8 分频。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 321 功能说明 24.4.2 输入选择和引脚控制 引脚控制寄存器(ADC_APCTL1)用来禁用用作模拟输入的引脚的 I/O 端口控制。 当引脚控制寄存器位置位时,将强制使相关的 MCU 引脚处于以下状态: • 输出缓冲强制进入高阻抗状态。 • 输入缓冲禁用。对于其输入缓冲被禁用的任何引脚,对 I/O 端口进行读操作会 返回 0。 • 上拉禁用。 24.4.3 硬件触发 ADC 模块具有一个可选的异步硬件转换触发源 ADHWT,在 ADC_SC2[ADTRG]位 置位后会被启用。此来源不适用于所有 MCU。有关本 MCU 特有的 ADHWT 来源 的信息,请参见相关模块的简介。 如果 ADHWT 存在有效的来源并且选择硬件触发(ADC_SC2[ADTRG] = 1),则会在 ADHWT 的上升沿发起转换。如果出现上升沿时转换正在进行中,则该上升沿会被 忽略。在连续转换配置中,仅观察最开始启动连续转换的上升沿。硬件触发功能可 在任何转换模式及配置下运行。 24.4.4 转换控制 转换可在 12 位模式、10 位模式或 8 位模式下进行,具体取决于 ADC_SC3[MODE] 位。转换可由软件或硬件触发发起。此外,可通过配置 ADC 模块实现更多的功能, 包括低功耗转换、长采样时间、连续转换以及自动将转换结果与软件确定的比较值 作比较。 24.4.4.1 发起转换 以下情形时会发起转换: • 选择软件触发时,对 ADC_SC1 执行一次写操作或者在 FIFO 模式下对 ADC_SC1 执行一组写操作(ADCH 非全1)。 • 选择硬件触发时,发生硬件触发(ADHWT)事件。 • 连续转换模式开启时,结果被传输到转换结果寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 322 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 如果连续转换模式开启,则在当前转换完成后会自动发起新转换。在软件触发操作 中,连续转换在写入 ADC_SC1 后开始,并一直继续直到中止。在硬件触发操作中, 连续转换在硬件触发事件后开始,并一直继续直到中止。 24.4.4.2 完成转换 当转换结果传输到转换结果寄存器 ADC_R 时,ADC_SC1[COCO]置位表明 ADC 完 成转换。如果 ADC_SC1[AIEN]在 ADC_SC1[COCO]置位时为高电平,则会生成中 断。 24.4.4.3 中止转换 正在进行中的任何转换在下列情况中都会中止: • 发生对 ADC_SC1 的写操作。 • 如果 ADC_SC1[ADCH]非全 1 且 ADC_SC4[AFDEP]为全 0,那么将中止当 前转换并启动新的转换。 • 如果 ADC_SC4[AFDEP]非全 0,那么将中止当前转换和其余转换,并且不 会启动新的转换。 • 当 FIFO 被再次填充至 ADC_SC4[AFDEP]指定的深度时,将会发起新转换。 • 发生对 ADC_SC2、ADC_SC3、ADC_SC4、ADC_CV 的写操作。这表明工作模 式已发生改变,因此当前和其余转换(当 ADC_SC4[AFDEP]非全 0 时)无效。 • MCU 复位。 • MCU 进入 Stop 模式,且 ADACK 未使能。 转换中止后,数据寄存器 ADC_R 的内容保持不变。然而,这些内容仍然是完成最 后一次成功转换之后传输的值。如果转换因复位而中止,ADC_R 会恢复到复位状 态。 24.4.4.4 功率控制 ADC 模块在启动转换前一直保持在其空闲状态。如果选择 ADACK 作为转换时钟 源,则还会使能 ADACK 时钟产生器。 模块为活动状态时,其功耗可通过置位 ADC_SC3[ADLPC]来降低。这会降低 fADCK 的最大值(参见数据手册)。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 323 功能说明 24.4.4.5 采样时间和总转换时间 总转换时间取决于采样时间(由 ADC_SC3[ADLSMP]决定)、MCU 总线频率、转换 模式(8 位、10 位或 12 位)及转换时钟频率(fADCK)。该模块激活后,便开始对输 入进行采样。ADC_SC3[ADLSMP]选择短(3.5 ADCK 周期)或长(23.5 ADCK 周 期)采样时间。采样完成时,转换器与输入通道隔离开来,执行逐次逼近算法以确 定模拟信号的数字值。转换算法完成时,转换结果转移到 ADC_R。 如果总线频率低于 fADCK 频率,使能短采样时间时(ADC_SC3[ADLSMP] = 0),就无 法保证连续转换采样时间的准确。如果总线频率低于 fADCK 频率的 1/11,使能长采 样时间时(ADC_SC3[ADLSMP] = 1),就无法保证连续转换采样时间的准确。 下表总结了不同条件下的最大总转换时间。 表 24-2. 总转换时间与控制条件 转换类型 ADICLK ADLSMP 最长总转换时间 8 位模式下,单次转换模式或者连续转换模式下的 第一次转换 0x,10 0 20 个 ADCK 周期 + 5 个总线时钟周期 10 位或 12 位模式下,单次转换模式或者连续转换 模式下的第一次转换 0x,10 0 23 个 ADCK 周期 + 5 个总线时钟周期 8 位模式下,单次转换模式或者连续转换模式下的 第一次转换 0x,10 1 40 个 ADCK 周期 + 5 个总线时钟周期 10 位或 12 位模式下,单次转换模式或者连续转换 模式下的第一次转换 0x,10 1 43 个 ADCK 周期 + 5 个总线时钟周期 8 位模式下,单次转换模式或者连续转换模式下的 第一次转换 11 0 5 µs + 20 个 ADCK + 5 个总线时钟周期 10 位或 12 位模式下,单次转换模式或者连续转换 模式下的第一次转换 11 0 5 µs + 23 个 ADCK + 5 个总线时钟周期 8 位模式下,单次转换模式或者连续转换模式下的 第一次转换 11 1 5 µs + 40 个 ADCK + 5 个总线时钟周期 10 位或 12 位模式下,单次转换模式或者连续转换 模式下的第一次转换 11 1 5 µs + 43 个 ADCK + 5 个总线时钟周期 8 位模式下,连续转换模式下的后续转换; xx 0 17 个 ADCK 周期 xx 0 20 个 ADCK 周期 xx 1 37 个 ADCK 周期 xx 1 40 个 ADCK 周期 fBUS > fADCK 10 位或 12 位模式下,连续转换模式下的后续转 换; fBUS > fADCK 8 位模式下,连续转换模式下的后续转换; fBUS > fADCK/11 10 位或 12 位模式下,连续转换模式下的后续转 换; fBUS > fADCK/11 KEA128 子系列参考手册, Rev. 2, July 2014 324 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 最长总转换时间由选定的时钟源和分频比决定。时钟源可通过 ADC_SC3[ADICLK]位选择,分频比通过 ADC_SC3[ADIV]位指定。例如,在 10 位 模式下,选择总线时钟作为输入时钟源,选定的输入时钟分频比为 1,总线频率为 8 MHz,则单次转换的转换时间通过下式计算: 转换时间 = 23ADCKCyc 5busCyc 8MHz/1 + 8MHz = 3.5µs 8MHz 时,单次转换时间的总线周期数为: 总线周期 = 3.5µs×8MHz = 28 注 为了满足 ADC 规格要求,ADCK 频率必须介于 fADCK 最小 值和 fADCK 最大值之间。 24.4.5 自动比较功能 比较功能经配置后可用于检查上限或下限。对输入进行采样和转换后,结果与比较 值(ADC_CV)的补值相加。与上限(ADC_SC2[ACFGT] = 1)比较时,如果结果大 于或等于比较值,则 ADC_SC1[COCO]置位。与下限(ADC_SC2[ACFGT] = 0)比较 时,如果结果小于比较值,则 ADC_SC1[COCO]置位。转换结果与比较值的补值相 加所得到的值被传输到 ADC_R。 比较功能使能,且完成转换后,如果比较条件不成立, 则 ADC_SC1[COCO]不置位 且无任何数据传输到结果寄存器。如果 ADC 中断使能(ADC_SC1[AIEN] = 1),则在 ADC_SC1[COCO]置位后会生成一个 ADC 中断。 当比较功能和 FIFO 使能,且所有转换完成时,如果 ADC_SC4[ACFSEL]为低电平 且所有比较条件均不成立;或 ADC_SC4[ACFSEL]为高电平且并非所有比较条件都 成立,则 ADC_SC1[COCO]不置位。无论比较条件成立或不成立,只要 FIFO 使能, 比较数据就会传输到结果寄存器中。 注 在 MCU 处于 Wait 或 Stop 模式时,比较功能可监测通道上 的电压。 在比较条件得到满足时, ADC 中断会唤醒 MCU。 注 比较功能在 FIFO 使能时无法在连续转换模式下工作。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 325 功能说明 24.4.6 FIFO 操作 ADC 模块支持 FIFO 操作以最大程度地减少 CPU 中断,从而降低 CPU 处理 ADC 中断服务程序的负荷。该模块包含两个 FIFO,分别缓存模拟输入通道号和结果。 FIFO 功能在 ADC_SC4[AFDEP]位置位为非零值时使能。可通过这些位来指定 FIFO 深度。FIFO 最多可支持 8 个级别的缓冲区。 FIFO 功能使能时,模拟输入通道 FIFO 通过 ADC_SC1[ADCH]位进行访问。必须按 顺序将模拟输入通道号写入该 FIFO。如果通道 FIFO 的填充水平低于 ADC_SC4[AFDEP]位指示的水平,无论设置的是软件触发还是硬件触发,ADC 都 不会开始转换。对 ADC_SC1[ADCH]进行读操作将读取当前正在转换的通道值。 对 ADC_SC1[ADCH]进行写操作将重新填充通道 FIFO 以开始新的转换。此操作将 中止当前转换以及尚未开始的其他所有转换。当所有转换完成或 ADC 处于空闲状 态时才可对 ADC_SC1 执行写操作。 FIFO 功能使能时,FIFO 的结果通过 ADC_R 寄存器进行访问。必须通过上述两个 寄存器并且按照与模拟输入通道 FIFO 相同的顺序读取结果,这样才能获得正确结 果。在 FIFO 模式下,对 ADC_R 的读操作应等到所有转换都完成之后进行。无论设 置的是软件触发还是硬件触发,只有模拟输入通道 FIFO 中的所有转换都完成之后, ADC_SC1[COCO]位才会置位。当 FIFO 转换完成且 ADC_SC1[COCO]位置位时,如 果 ADC_SC1[AIEN]置位,则将向 CPU 提交中断请求。 KEA128 子系列参考手册, Rev. 2, July 2014 326 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) AFDEP ADC_R 读取 ADCH写入 ADCH 5位通道号 7 5位通道号 6 AD通道FIFO 5位通道号 5 5位通道号 4 5位通道号 3 5位通道号 2 5位通道号 1 5位通道号 0 FIFO读取/写入逻辑复位 12位AD结果 1 12位AD结果 2 12位AD结果 3 12位AD结果 4 12位AD结果 5 12位AD结果 6 12位AD结果 7 12位AD结果 8 12位AD结果 9 10 12位AD结果 12位AD结果 11 12位AD结果 比较 逻辑 结果FIFO满 结果FIFO读取指针 FIFO读取/写入逻辑 AD结果FIFO ADC_R 0 D Q CK COCO 通道FIFO写入指针 结果FIFO写入指针 FIFO工作逻辑 比较 逻辑 通道FIFO满 通道FIFO读取指针 D Q CK FIFO转换开始 BUS CLK 图 24-2. FADC FIFO 结构 如果使能软件触发模式,则当一个转换完成并且其结果存储在结果 FIFO 后,就会 立即从模拟输入通道 FIFO 中提取下一个模拟通道。模拟输入通道 FIFO 中设置的 所有转换都完成后,ADC_SC1[COCO]位置位,如果 ADC_SC1[AIEN]位置位,则将 向 CPU 提交中断请求。 如果使能单次硬件触发模式(ADC_SC2[ADTRG]= 1 且 ADC_SC4[HTRGME]=0), 则只有当前转换完成,其结果已存储到结果 FIFO,并且将下一个硬件触发脉冲馈入 ADC 模块之后,才会从模拟输入通道 FIFO 中提取下一个模拟通道。如果使能多次 硬件触发模式(ADC_SC2[ADTRG]=1 且 ADC_SC4[HTRGME]=1),则只有当前转 换完成且其结果已存储到结果 FIFO 之后,才会从模拟输入通道 FIFO 中提取下一个 模拟通道,下一转换无需等待下一个硬件触发脉冲便可开始。模拟输入通道 FIFO 中设置的所有转换都完成后,ADC_SC1[COCO]位置位,如果 ADC_SC1[AIEN]位置 位,则将向 CPU 提交中断请求。 在单次转换模式下(ADC_SC1[ADCO]位清零),当 ADC_SC1[COCO]位置位时, ADC 停止转换,直至再次达到通道 FIFO 的填充要求或出现新的硬件触发脉冲。 FIFO 还提供扫描模式来简化输入通道 FIFO 的重复性工作。在 FIFO 模式下,当 ADC_SC4[ASCANE]位置位时,无论输入通道 FIFO 为何值,FIFO 都只会使用其第 一个通道单元中的内容。一旦第一个通道单元被写入,ADC 转换便开始在 FIFO 模 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 327 功能说明 式下工作。对通道 FIFO 执行的后续写操作会不断覆盖该 FIFO 中的第一个通道元 素。在扫描 FIFO 模式下,当结果 FIFO 中填充的内容达到 ADC_SC1[COCO]位指示 的深度时,ADC_SC4[AFDEP]位置位。 在连续转换模式(ADC_SC1[ADCO]位置位)下,当所有转换完成时,ADC 立即开 始下一转换。ADC 模块从模拟输入通道 FIFO 一开始就会获取模拟输入通道。 KEA128 子系列参考手册, Rev. 2, July 2014 328 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 第n个AD 通道提取 最大值 = AFDEP 输入通道满 启动FIFO支持的转换 0 n 最大值 COCO = 1 转换已完成 第n个AD 通道存储 第n 个AD 通道提取 软件触发单次转换 最大值 = AFDEP 输入通道满 启动FIFO支持的转换 0 最大值 0 n 最大值 0 n ADC_SC1[COCO] = 1 转换已完成 第n个AD 通道存储 第n个AD 通道提取 当出现第n个硬件触发脉冲时 n 最大值 软件触发连续转换 最大值 = AFDEP 当出现最后一个硬件触发脉冲时 输入通道满 启动FIFO支持的转换 当出现第一个硬件触发脉冲时 最大值 n 0 第n个AD 通道存储 输入通道满 启动FIFO支持的转换 当出现第一个硬件触发脉冲时 第n个AD 通道提取 输入通道满 启动FIFO支持的转换 当出现硬件触发脉冲时 0 硬件触发单次转换 ADC_SC4[HTRGME]=0 ADC_SC1[COCO] = 1 转换已完成 最大值 = AFDEP n 0 如果出现新的触发脉冲,将生成新的转换集合 如果出现新的触发脉冲,将生成新的转换集合 最大值 第n个AD 通道存储 第n个AD 通道提取 硬件触发多次转换 ADC_SC4[HTRGME]=1 ADC_SC1[COCO] = 1 转换已完成 最大值 = AFDEP 最大值 n 第n个AD 通道存储 0 n 硬件触发连续转换 (仅需一个硬件触发脉冲) COCO = 1 转换已完成 图 24-3. ADC FIFO 转换序列 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 329 功能说明 24.4.7 MCUWait 模式下的操作 Wait 模式是低功耗的待机模式,通过该模式可迅速恢复,因为时钟源保持有效。如 果转换在 MCU 进入 Wait 模式时正在进行,则它会一直继续,直到完成。当 MCU 处于 Wait 模式时,如果硬件触发或者连续转换模式已使能,可发起新的转换。 在 Wait 模式下,可选择总线时钟、总线时钟 2 分频、ALTCLK 和 ADACK 作为转 换时钟源。 ADC 中断已使能(ADC_SC1[AIEN] = 1)的情况下,转换完成事件会使 ADC_SC1[COCO]置位,并生成 ADC 中断将 MCU 从 Wait 模式中唤醒。 24.4.8 MCU Stop 模式下的操作 Stop 模式是低功耗待机模式,在此模式下,MCU 上的大多数甚至全部时钟源都被 禁用。 24.4.8.1 采用 Stop 模式并禁用 ADACK 如果没有选择异步时钟 ADACK 作为转换时钟,则执行 STOP 指令会中止当前转换 并使 ADC 处于空闲状态。ADC_R 的内容不受 Stop 模式的影响。退出 Stop 模式 后,需要一次软件或硬件来使转换继续。 24.4.8.2 采用 Stop 模式并启用 ADACK 如果选择 ADACK 作为转换时钟,则 ADC 在 Stop 模式下将连续运行。为保证 ADC 的运行,MCU 的电压调节器必须在 Stop 模式期间保持有效。有关此 MCU 的配置 信息,请参见相关模块简介。 如果转换在 MCU 进入 Stop 模式时正在进行,则它会一直继续,直到完成。当 MCU 处于 Stop 模式时,如果硬件触发或者连续转换模式已使能,可发起新的转换。 ADC 中断已使能(ADC_SC1[AIEN] = 1)的情况下,转换完成事件会使 ADC_SC1[COCO]置位,并生成 ADC 中断将 MCU 从 Stop 模式中唤醒。在 FIFO 模 式下,ADC 无法彻底完成转换操作,也无法将 MCU 从 Stop 模式中唤醒。 KEA128 子系列参考手册, Rev. 2, July 2014 330 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 注 ADC 模块可将系统从低功耗停止模式中唤醒,并让 MCU 开 始消耗运行级别的电流,但不生成系统级中断。为了阻止这 种情况的发生,进入 Stop 模式并继续执行 ADC 转换时,必 须消除数据传输阻塞机制。 24.5 初始化信息 本节将举例说明 ADC 模块的初始化和配置步骤。您可以将模块配置为 8 位、10 位 或 12 位分辨率、单一或连续转换以及轮询或中断方法,还有其他许多选项可供选 择。有关本例中使用的信息,请参见 ADC_SC3 寄存器。 注 十六进制值的前缀是 0x,二进制值的前缀是%,十进制值无 前缀字符。 24.5.1 ADC 模块初始化示例 在使用 ADC 模块完成转换前,首先必须对它进行初始化。下面介绍 ADC 模块的初 始化方法。 24.5.1.1 初始化序列 常见的初始化序列如下: 1. 更新配置寄存器(ADC_SC3),以选择输入时钟源以及生成内部时钟 ADCK 所使 用的分频比。此寄存器还可用于选择采样时间和低功耗配置。 2. 更新状态和控制寄存器 2 (ADC_SC2),以选择硬件或软件转换触发、比较功能 选项(如果启用)。 3. 更新状态和控制寄存器 1 (ADC_SC1),以选择转换是连续进行还是仅完成一次, 以及是启用还是禁用转换完成中断。还可在此处选择执行转换的输入通道。 24.5.1.2 伪代码示例 在本例中,ADC 模块设置为启用中断,并以低功率、长采样时间在输入通道 1 上执 行单一的 10 位转换,其中内部的 ADCK 时钟是总线时钟的 1 分频。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 331 初始化信息 示例: 24.5.1.2.1 常规 ADC 初始化程序 void ADC_init(void) { /* The following code segment demonstrates how to initialize ADC by low-power mode, long sample time, bus frequency, software triggered from AD1 external pin without FIFO enabled */ ADC_APCTL1 = ADC_APCTL1_ADPC1_MASK; ADC_SC3 = ADC_SC3_ADLPC_MASK | ADC_SC3_ADLSMP_MASK | ADC_SC3_MODE0_MASK; ADC_SC2 = 0x00; ADC_SC1 = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH0_MASK; } 24.5.2 ADC FIFO 模块初始化示例 在使用 ADC 模块执行 FIFO 转换前,首先必须执行初始化过程。常见序列如下: 1. 更新配置寄存器(ADC_SC3),以选择输入时钟源以及生成内部时钟 ADCK 所使 用的分频比。此寄存器还可用于选择采样时间和低功耗配置。 2. 更新配置寄存器(ADC_SC4),以选择 FIFO 扫描模式、FIFO 比较功能模式(OR 或 AND 运算)和 FIFO 深度。 3. 更新状态和控制寄存器 2 (ADC_SC2),以选择硬件或软件转换触发、比较功能 选项(如果启用)。 4. 更新状态和控制寄存器 1 (ADC_SC1),以选择转换是连续进行还是仅完成一次, 以及是启用还是禁用转换完成中断。还可在此处选择执行转换的输入通道。 24.5.2.1 伪代码示例 本例中,ADC 模块设置如下:使能中断,以低功耗和长采样时间对输入通道 1、3、 5、7 执行单次硬件触发的 10 位 4 级 FIFO 转换。内部 ADCK 时钟从总线时钟获得 (1 分频)。 示例: 24.5.2.1.1 FIFO ADC 初始化程序 void ADC_init(void) { /* The following code segment demonstrates how to initialize ADC by low-power mode, long sample time, bus frequency, hardware triggered from AD1, AD3, AD5, and AD7 external pins with 4-level FIFO enabled */ ADC_APCTL1 = ADC_APCTL1_ADPC6_MASK | ADC_APCTL1_ADPC5_MASK | ADC_APCTL1_ADPC3_MASK | ADC_APCTL1_ADPC1_MASK; ADC_SC3 = ADC_SC3_ADLPC_MASK | ADC_SC3_ADLSMP_MASK | ADC_SC3_MODE1_MASK; KEA128 子系列参考手册, Rev. 2, July 2014 332 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) // setting hardware trigger ADC_SC2 = ADC_SC2_ADTRG_MASK ; //4-Level FIFO ADC_SC4 = ADC_SC4_AFDEP1_MASK | ADC_SC4_AFDEP0_MASK; // dummy the 1st channel ADC_SC1 = ADC_SC1_ADCH0_MASK; // dummy the 2nd channel ADC_SC1 = ADC_SC1_ADCH1_MASK | ADC_SC1_ADCH0_MASK; // dummy the 3rd channel ADC_SC1 = ADC_SC1_ADCH2_MASK | ADC_SC1_ADCH0_MASK; // dummy the 4th channel and ADC starts conversion ADC_SC1 = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH2_MASK | ADC_SC1_ADCH1_MASK | ADC_SC1_ADCH0_MASK; } 示例: 24.5.2.1.2 FIFO ADC 中断服务程序 unsigned short buffer[4]; interrupt VectorNumber_Vadc void ADC_isr(void) { /* The following code segment demonstrates read AD result FIFO */ // read conversion result of channel 1 and COCO bit is cleared buffer[0] = ADC_R; // read conversion result of channel 3 buffer[1] = ADC_R; // read conversion result of channel 5 buffer[2] = ADC_R; // read conversion result of channel 7 buffer[3] = ADC_R; } 注 ADC_R 是 16 位 ADC 结果寄存器,由 ADC_RH 和 ADC_RL 合并得来 24.6 应用信息 本节介绍 ADC 模块的应用信息。ADC 已集成到微控制器中,可用在需要 A/D 转换 器的嵌入式控制应用中。 24.6.1 外部引脚和布线 下面几节介绍与 ADC 模块相关的外部引脚以及如何使用它们才能达到最佳效果。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 333 应用信息 24.6.1.1 模拟电源引脚 ADC 模块上的模拟电源和接地电源(VDDA 和 VSSA)在某些设备上可用作单独的引 脚。在有些设备上,VSSA 与 MCU 数字 VSS 共享同一引脚。在其他设备上,VSSA 和 VDDA 共享 MCU 数字电源引脚。在这些情况下,在引脚上(与对应的数字电源相 同)为模拟电源粘合单独的芯片,以确保模拟电源和数字电源间保持一定的隔离。 如果用在单独的引脚上,VDDA 和 VSSA 必须连接到与其对应的 MCU 数字电源(VDD 和 VSS)相同的电势上,并且布线时必须非常小心,以最大限度提高抗噪性并且旁 路电容必须尽可能靠近封装放置。 如果分别使用单独的模拟电源和数字电源,则两者之间的接地连接必须位于 VSSA 引脚上。这应该是两个电源之间唯一的接地连接(如果可能)。VSSA 引脚是一个很 好的单点接地位置。 24.6.1.2 模拟基准引脚 除模拟电源之外,ADC 模块还具有用于两个基准电压输入的连接。高基准电压为 VREFH,在某些器件上可能与 VDDA 引脚共用。低基准电压为 VREFL,在某些器件上 可能与 VSSA 引脚共用。 如果 VREFH 存在单独的引脚,可将其连接到与 VDDA 相同的电势,或由介于数据手 册中指定的最小 VDDA 与 VDDA 电势之间的外部电压源驱动(VREFH不能超过 VDDA)。如果 VREFL 存在单独的引脚,可将其连接到与VSSA 相同的电势。必须小心 安排 VREFH和 VREFL 以便实现最大抗噪性,而且旁路电容必须尽可能靠近封装放置。 通过 VREFH 和 VREFL 循环引出电流尖峰形式的交流电流,用来为每个连续近似步骤 中的电容器阵列供电。满足此电流需求的最佳外部组件是 0.1 µF 的优质高频电容 器。此电容器连接在 VREFH 和 VREFL 之间,位置必须尽量靠近封装引脚。不建议在 路径中使用电阻,因为电流产生的压降会导致转换错误。此路径中的电感必须最小 (仅限干扰)。 24.6.1.3 模拟输入引脚 外部模拟输入通常由 MCU 器件上的数字 I/O 引脚共用。设置引脚控制寄存器的控 制位可以禁用相应的引脚 I/O 控制。虽然引脚控制位的设置与否并不影响对输入信 号的模数转换, 但当某个引脚用作模拟输入时,建议将引脚控制寄存器的相应控制 位始终置 1。首先这能避免争用问题,因为输出缓冲区处于其高阻抗状态且上拉电 阻禁用。 另外,输入缓冲区在其输入不处于 VDD 或 VSS 时会消耗直流电流。所以 应当将作为模拟输入的引脚所对应的引脚控制寄存器控制位置 1,以实现最低的工 作电流。 KEA128 子系列参考手册, Rev. 2, July 2014 334 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 经验数据表明,当存在噪声或者源阻抗较高时,模拟输入上的电容可以改善性能。 使用具有良好高频特性的 0.01 μF 电容就足够了。在某些情况下并不一定要使用这 类电容,但是一旦使用,则必须将其尽可能地靠近封装引脚放置并将 VSSA 作为基 准电压。 为确保转换正确完成,输入电压必须介于 VREFH 和 VREFL 之间。 如果输入电压等于 或大于 VREFH,转换器电路会将信号转换为 0xFFF(满刻度 12 位表示法)、0x3FF (满刻度 10 位表示法)或 0xFF(满刻度 8 位表示法)。如果输入电压等于或小于 VREFL,则转换器电路会将其转换为 0x000。在 VREFH 和 VREFL 之间的输入电压属 于直线线性转换。采用电容进行充电时,存在与 VREFL 有关的短时电流。 ADC_SC3[ADLSMP]为低电平时,对该输入进行采样的时间为 ADCK 源的 3.5 个周 期,ADC_SC3[ADLSMP]为高电平时,进行采样的时间为 23.5 个周期。 为了尽量减小电流注入造成的准确度损失,转换过程中不能对与模拟输入引脚相邻 的引脚进行电平转换操作。 24.6.2 误差来源 A/D 转换出现误差的来源很多。下面几节将详细介绍一下。 24.6.2.1 采样误差 为正确转换,输入的采样时间必须长到能实现正确的精度。假设最大输入电阻约为 7 kΩ、输入电容约为 5.5 pF,则在最小采样窗口(3.5 个 ADCK 周期,而 ADCK 的 最大频率为 8MHz)内可将采样误差控制到 1/4 LSB 内(12 位分辨率),同时还假设 外部模拟源 (RAS) 的电阻始终小于 2 kΩ。 通过设置 ADC_SC3[ADLSMP](以将采样窗口增加到 23.5 个周期),或减小 ADCK 频率以增加采样时间,可提高源电阻或采样精度。 24.6.2.2 引脚漏电误差 如果外部模拟源电阻(RAS)偏高,I/O 引脚上的漏电流可能会导致转换出错。如果应 用程序无法接受这一误差,则使 RAS 低于 VDDA/(2N*ILEAK)以便将漏电流误差控制 在 1/4LSB 内(N = 8(8 位),N = 10(10 位),N = 12(12 位)模式)。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 335 应用信息 24.6.2.3 噪声性误差 采样或转换过程中出现的系统噪音会影响转换的准确度。只有在满足以下条件时, 才能保证 ADC 准确度值达到预期: • VREFH 到 VREFL 之间有一个 0.1 µF 的低 ESR 电容器。 • VDDA 到 VSSA 之间有一个 0.1 µF 的低 ESR 电容器。 • 如果主电源使用了电感隔离,则 VDDA 到 VSSA 之间还要放一个 1 µF 的电容器。 • VSSA(和 VREFL,如果连接)连接到接地层中某安静点处的 VSS。 • 在发起(硬件触发转换)ADC 转换前,或发起(硬件或软件触发转换)ADC 转 换后立即让 MCU 在 Wait 或 Stop 模式下运行。 • 对于软件触发的转换,对 ADC_SC1 执行写操作后立即使用停止指令。 • 对于 Stop 模式操作,选择 ADACK 作为时钟源。Stop 模式下的操作可减少 VDD 噪音,但也会因停止恢复而增加有效转换时间。 • 转换期间,MCU 上无 I/O 切换、输入或输出。 在某些情况中,外部系统的活动会引起辐射噪声或传导噪声的传播,或使过大的 VDD 噪声耦合到 ADC 中。在这类情况下,如果无法将 MCU 置于 Wait 或 Stop 模 式,或者无法暂停 I/O 活动,建议通过以下动作降低噪声对精度的影响: • 在 VREFL 或 VSSA 的选定输入通道上放一个 0.01 µF 的电容器 (CAS(此举可改善 ) 噪音问题,但会影响基于外部模拟源阻抗的采样率)。 • 将模拟输入接连转换多次并除以结果总数得出结果的平均值。消除一次 1LSB 的错误所带来的影响需要四个样本。 • 通过使用异步时钟 (ADACK) 并计算平均值来降低同步噪音的影响。与 ADCK 同步的噪音不能计算平均值。 24.6.2.4 编码宽度和量化误差 ADC 将理想的线性转换函数量化为 4096 步(在 12 位模式下)。每一步在理想情况 下都具有相同的高度(一个编码)和宽度。宽度定义为某个编码的转变点与下一个 编码的转变点之间的差值。定义为 1LSB 的 N 位转换器的理想编码宽度(在本例 中,N 可以是 8、10 或 12)是: -V ) / 2 REFL 1 lsb = (V REFH N KEA128 子系列参考手册, Rev. 2, July 2014 336 Freescale Semiconductor, Inc. 第 24 章 模数转换器(ADC) 结果的数字化导致存在固有的量化误差。对于 8 位或 10 位转换,线性转换函数与实 际的转换函数在一些离散点上精确重合,编码会在电压位于这些点之间的中点时发 生切换。因此,量化误差在 8 位模式或 10 位模式下将为± 1/2 lsb。并且,第一个编 码(0x000)宽度只有 1/2lsb,最后一个编码(0xFF 或 0x3FF)的宽度为 1.5lsb。 对于 12 位转换,编码只有在电压变化了一个完整的编码宽度后才会切换,因此量化 误差为-1 lsb 到 0 lsb,每个振幅的编码宽度为 1 lsb。 24.6.2.5 线性误差 ADC 可能还会呈现几种非线性形式。虽然已经尽全力减少这些误差,但是系统必须 知道误差的存在,因为它们会影响总体的准确度。这些误差包括: • 零刻度误差 (EZS)(有时也称为偏移量)— 该误差是指第一个编码的实际编码宽 度和理想编码宽度(8 位或 10 位模式下为 1/2 lsb;12 位模式下为 1 lsb)之间的 差值。如果第一个转换为 0x001,则零刻度误差为实际的 0x001 编码宽度与其理 想宽度 (1 lsb)之间的差值。 • 满刻度误差 (EFS) — 该误差是指最后一个编码的实际编码宽度与理想编码宽度 (8 位或 10 位模式下为 1.5 lsb;12 位模式下为 1 lsb)之间的差值。如果最后一 个转换为 0x3FE,则满刻度误差为实际的 0x3FE 编码宽度与其理想宽度 (1 lsb) 之间的差值。 • 差分非线性 (DNL) — 该误差是指所有转换的实际编码宽度与理想编码宽度之 间的最差情况差值。 • 积分非线性 (INL) — 该误差是指 DNL 累加和的绝对值所达到的最大值。更简 而言之,INL 是指所有编码中,实际切换电压与其对应的理想切换电压之间的 最差情况差值。 • 未调整总误差 (TUE) — 该误差是指实际转换函数与理想线性转换函数之间的 差值,包括所有形式的误差。 24.6.2.6 编码抖动、非单调性和失码 模数转换器对三种特殊形式的错误特别敏感。它们是编码抖动、非单调性和失码。 编码抖动发生在给定的输入电压在某些点经过重复采样后转换为两个值中的某一个 值时。理想情况下,当输入电压小于但无限接近切换电压时,转换器会产生较低的 编码(反之亦然)。然而,当输入电压接近切换电压时,即使少量的系统噪声也可能 会使转换器在两个编码间变得不确定。在 8 位或 10 位模式下,此范围一般约为±1/2 lsb;在 12 位模式下,则约为 2 lsb,随噪声的增大而增大。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 337 应用信息 通过对输入重复采样并求结果的平均值可以减少出现此错误的几率。此外,噪声性 误差 中介绍的方法也可以减少出现此错误的几率。 除了编码抖动外,当转换器因较高的输入电压而切换到较低的编码时,会出现非单 调性问题。失码是指任何输入都不会转换为的那些值。 在 8 位或 10 位模式下,ADC 保证是单调的并且无失码。 KEA128 子系列参考手册, Rev. 2, July 2014 338 Freescale Semiconductor, Inc. 第 25 章 模拟比较器(ACMP) 25.1 简介 模拟比较器模块(ACMP)提供一个用于比较两个模拟输入电压的电路。此比较器电 路适用于在整个供电电压范围内操作(全摆幅操作)。 模拟复用器提供一个用于从 4 个通道中选择模拟输入信号的电路。一个信号由 6 位 DAC 提供。多路复用器电路适用于在整个供电电压范围内操作。6 位 DAC 是一个 64-tap 梯形电阻网络,可为需要电压基准的应用提供可选的电压基准。此 64-tap 梯 形电阻网络将电源基准 Vin 分成 64 个电压电平。6 位数字信号输入可选择产生不 同的输出电压,范围从 Vin 至 Vin/64。可从两个电压源选择 Vin。 25.1.1 特性 ACMP 特性包括: • 可在 2.7 V 至 5.5 V 的整个电源电压范围上操作 • 片上 6 位分辨率 DAV,基准电压源可以选择 VDD 或内部带隙基准 • 可配置迟滞 • 可在比较器输出上升沿、下降沿或者任何边沿时选择产生中断 • 可选择翻转比较器输出 • 最多 4 个可选择比较器输入 • 可在 Stop 模式中操作 25.1.2 工作模式 本节说明 ACMP 在 Wait、Stop 和 Background Debug 模式下的操作。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 339 简介 25.1.2.1 Wait 模式下的操作 在 Wait 模式下,如果使能,ACMP 将继续工作。如果使能,中断可唤醒 MCU。 25.1.2.2 Stop 模式下的操作 如果已启用,ACMP(包括 DAC 和 CMP)将继续在 Stop 模式中操作。如果 ACMP_CS[ACIE]置位,则可生成 ACMP 中断将 MCU 从 Stop 模式中唤醒。 如果通过中断而退出 Stop 模式,那么在进入 Stop 模式之前 ACMP 设置仍将保持。 如果通过复位而退出 Stop 模式,那么 ACMP 将进入复位状态。 由于 DAC 消耗额外的电能,因此如果 DAC 输出不用作 ACMP 的基准输入,那么 用户必须关闭 DAC 以省电。 25.1.2.3 Debug 模式下的操作 当 MCU 处于 Debug 模式时,ACMP 继续正常工作。 25.1.3 结构框图 下图是 ACMP 模块的结构框图。 DACREF 多路复用器 ACPSEL 6位 DAC DACEN ACMP0 ACMP1 ACMP2 ACE ACNSEL 多路复用器 DACVAL 带隙基准 多路复用器 VDDA ACOPE + 外部输出 – 边沿控制 逻辑 HYST ACO ACMOD 中断 ACF ACIE 图 25-1. ACMP 结构框图 KEA128 子系列参考手册, Rev. 2, July 2014 340 Freescale Semiconductor, Inc. 第 25 章 模拟比较器(ACMP) 25.2 外部信号说明 ACMP 的输出也可映射到外部引脚。当该输出映射到外部引脚时, ACMP_CS[ACOPE]控制该引脚来使能/禁用 ACMP 输出功能。 25.3 存储器映像和寄存器定义 ACMP 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4007_3000 ACMP 控制和状态寄存器 (ACMP0_CS) 8 R/W 00h 25.3.1/341 4007_3001 ACMP 控制寄存器 0 (ACMP0_C0) 8 R/W 00h 25.3.2/342 4007_3002 ACMP 控制寄存器 1 (ACMP0_C1) 8 R/W 00h 25.3.3/343 4007_3003 ACMP 控制寄存器 2 (ACMP0_C2) 8 R/W 00h 25.3.4/343 4007_4000 ACMP 控制和状态寄存器 (ACMP1_CS) 8 R/W 00h 25.3.1/341 4007_4001 ACMP 控制寄存器 0 (ACMP1_C0) 8 R/W 00h 25.3.2/342 4007_4002 ACMP 控制寄存器 1 (ACMP1_C1) 8 R/W 00h 25.3.3/343 4007_4003 ACMP 控制寄存器 2 (ACMP1_C2) 8 R/W 00h 25.3.4/343 1 0 25.3.1 ACMP 控制和状态寄存器 (ACMPx_CS) 地址: 基址 基准 + 0h 偏移 位 读 写 复位 7 6 5 4 ACE HYST ACF ACIE 0 0 0 0 3 ACO 2 ACOPE 0 0 ACMOD 0 0 ACMPx_CS 字段描述 字段 7 ACE 描述 模拟比较器使能 使能 ACMP 模块。 0 1 6 HYST ACMP 禁用。 ACMP 使能。 模拟比较器迟滞选择 选择 ACMP 迟滞。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 341 存储器映像和寄存器定义 ACMPx_CS 字段描述 (继续) 字段 描述 0 1 20 mV。 30 mV。 5 ACF ACMP 中断标志位 4 ACIE ACMP 中断使能 当 ACMP 输出有一个由 ACMOD 定义的有效边沿时,由硬件同步置位。该位的置位滞后于 ACMPO 至总线 时钟。将 0 写入 ACF 位可将该位清零。将 1 写入该位无效。 使能 ACMP CPU 中断。 0 1 3 ACO 2 ACOPE ACMP 输出 读取 ACO 将返回模拟比较器输出的当前值。ACMP 禁用(ACE=0)时,ACO 复位并读作 0。 ACMP 输出引脚使能 ACOPE 使能焊盘逻辑,以便能将输出置于外部引脚上。 0 1 ACMOD 禁用 ACMP 中断。 使能 ACMP 中断。 不允许 ACMP 输出置于外部引脚上。 允许 ACMP 输出置于外部引脚上。 ACMP MOD 确定中断触发器的触发模式。 00 01 10 11 ACMP 中断在输出下降沿发生。 ACMP 中断在输出上升沿发生。 ACMP 中断在输出下降沿发生。 ACMP 中断在输出下降沿或上升沿发生。 25.3.2 ACMP 控制寄存器 0 (ACMPx_C0) 地址: 基址 基准 + 1h 偏移 位 读 写 复位 7 6 5 0 0 4 3 0 1 0 ACPSEL 0 2 0 0 0 ACNSEL 0 0 0 ACMPx_C0 字段描述 字段 7–6 保留 5–4 ACPSEL 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ACMP 正输入选择 00 01 外部基准 0 外部基准 1 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 342 Freescale Semiconductor, Inc. 第 25 章 模拟比较器(ACMP) ACMPx_C0 字段描述 (继续) 字段 描述 10 11 3–2 保留 ACNSEL 外部基准 2 DAC 输出 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ACMP 负输入选择 00 01 10 11 外部基准 0 外部基准 1 外部基准 2 DAC 输出 25.3.3 ACMP 控制寄存器 1 (ACMPx_C1) 地址: 基址 基准 + 2h 偏移 位 读 写 复位 7 6 5 DACEN DACREF 0 0 4 3 2 1 0 0 0 0 DACVAL 0 0 0 ACMPx_C1 字段描述 字段 7 DACEN 描述 DAC 使能 使能 6 位 DAC 的输出。 0 1 DAC 禁用。 DAC 使能。 6 DACREF DAC 基准选择 DACVAL DAC 输出电平选择 0 1 DAC 选择带隙基准作为基准。 DAC 选择 VDDA 作为基准。 使用以下公式选择输出电压:Voutput= (Vin/64)x(DACVAL[5:0]+1)。Voutput 范围为 Vin/64 至 Vin,步进为 Vin/64 25.3.4 ACMP 控制寄存器 2 (ACMPx_C2) 地址: 基址 基准 + 3h 偏移 位 读 写 复位 7 6 5 4 3 2 0 0 0 0 1 0 ACIPE 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 343 功能说明 ACMPx_C2 字段描述 字段 7–3 保留 ACIPE 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 ACMP 输入引脚使能 该 3 位字段控制对应的 ACMP 外部引脚是否能由模拟输入驱动。 0 1 不允许对应的外部模拟输入。 允许对应的外部模拟输入。 25.4 功能说明 ACMP 模块就功能而言由两部分组成:数模转换器(DAC)和比较器(CMP)。 DAC 包括 64 级 DAC(数模转换器)和相关控制逻辑。通过置位 ACMP_C1[DACREF],DAC 可选择 VDD 或片上带隙基准源这两个基准输入的其中 之一作为 DAC 输入 Vin。DAC 使能后,将 ACMP_C1[DACVAL]中设置的数据转换 为步进式模拟输出,然后馈入 ACMP 作为内部基准输入。此递阶模拟输出还将在此 模块之外映射。输出电压范围为 Vin/64 到 Vin。步进大小为 Vin/64。 ACMP 可以实现正输入与负输入的模拟比较,然后提供一个数字输出和相关的中 断。ACMP 的正负输入均可从四个通用输入中选择:三个外部基准输入和一个来自 DAC 输出的内部基准输入。ACMP 的正输入由 ACMP_C0[ACPSEL]选定,其负输 入由 ACMP_C0[ACNSEL]选定。可通过使用适当的值配置 ACMPC0 来比较 8 个输 入的任何配对。 通过置位 ACMP_CS[ACE]使能 ACMP 之后,比较结果以数字输出呈现。只要 ACMP_CS[ACMOD]中定义的有效边沿出现,ACMP_CS[ACF]的电平就会变为有效 值。如果 ACMP_CS[ACIE]置位,那么就会发生 ACMP CPU 中断。有效边沿由 ACMP_CS[ACMOD]定义。当 ACMP_CS[ACMOD] = 00b 或 10b 时,只有 ACMP 输 出的下降沿有效。当 ACMP_CS[ACMOD] = 01b 时,只有 ACMP 输出的上升沿有 效。当 ACMP_CS[ACMOD] = 11b 时,ACMP 输出的上升沿和下降沿均有效。 ACMP 输出经总线时钟同步后产生 ACMP_CS[ACO],以便 CPU 能读取比较结果。 在 stop3 模式下,即使 ACMP 的输出改变,ACMPO 也无法及时更新。因为输出信 号的同步以及 ACMP_CS[ACO]的更新都需要 CPU 被唤醒,因为此时总线时钟有 效。ACMP_CS[ACO]根据比较结果而改变,因此它可以用作一个跟踪标志,连续指 示输入的电压变化。 如果选择芯片外部的基准输入作为 ACMP 的输入,那么必须置位对应的 ACMP_C2[ACIPE]位以使能来自焊盘接口的输入。如果需要将 ACMP 的输出置于 外部引脚上,那么必须置位 ACMP_CS[ACOPE]位以使能焊盘逻辑的 ACMP 引脚功 能。 KEA128 子系列参考手册, Rev. 2, July 2014 344 Freescale Semiconductor, Inc. 第 25 章 模拟比较器(ACMP) 25.5 ACMP 的设置和操作 ACMP 两部分(DAC 和 CMP)的设置和操作可以独立进行。但是,如果 DAC 用作 CMP 的输入,那么在使能 ACMP 之前必须对 DAC 进行配置。 由于输入转换会导致 ACMP 输入上出现问题,因此用户应在启用 ACMP 之前完成 输入选择,并且不能在启用 ACMP 时更改选择输入以避免意外输出。同样,更改 ACMP_C1[DACVAL]之后,DAC 会有一定的设置延迟,因此用户应当在使能 DAC 之前完成 ACMP_C1[DACVAL]的设置。 25.6 复位 复位期间,ACMP 会按照默认模式配置,此时 CMP 和 DAC 都被禁用。 25.7 中断 如果 ACMP_CS[ACMOD]定义的有效边沿出现时总线时钟可用,那么 ACMP_CS[ACF]的电平就会变为有效值。如果 ACMP_CS[ACIE]置位,那么会发生 ACMP 中断事件。ACMP_CS[ACF]位的电平将一直保持有效值,直到 ACMP 中断 被软件清除。在 Stop 模式下,ACMP 输入的有效边沿会生成一个异步中断,它可将 MCU 从 Stop模式中唤醒。将 0 写入 ACMP_CS[ACF]位可清除该中断。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 345 中断 KEA128 子系列参考手册, Rev. 2, July 2014 346 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 FlexTimer 模块(FTM)是一种两通道至八通道的定时器,支持输入捕捉、输出比较和 生成用于控制电机和电源管理的 PWM 信号。FTM 的时间基准是一个 16 位计数 器,可用作无符号或有符号计数器。 26.1.1 FlexTimer 的基本理念 FTM 是基于一个简单的定时器(即 HCS08 定时器 PWM 模块--TPM,这个定时器在 飞思卡尔 8 位微处理器上已经使用多年)而设计的。 FTM 在功能方面实现了延伸, 可以更好的满足电机控制、数字照明解决方案及功率转换的需求。另外,带有 TPM 模块的 FTM 成本低,并支持向下兼容。 其增强的主要功能如下: • • • • • 带符号的向上计数器 支持硬件死区插入 故障控制输入 增强型触发功能 初始化和极性控制 与 TPM 一致的功能均分配有可以完全向下兼容的寄存器。FTM 还可在同一内核平 台上使用代码而无需修改,即可实现相同功能。 已通过一组专用的寄存器添加了电机控制和功率转换特性,所有全新特性均默认为 关断。硬件死区插入、极性控制、故障控制以及输出强制和屏蔽等全新特性,可极 大地减轻执行软件的负担,其中每一项特性通常都由一组寄存器来控制。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 347 简介 FTM 输入触发源可从比较器、ADC 或其他子模块来自动启动定时器功能。这些触 发源在子模块集成期间可以各种方式链接,所以需要使用适用于当前 FTM 配置的 触发源选项。 假设每个 FTM 中的初始化、输入时钟、初始和最终计数值都相同,则通过同步一 个以上 FTM 模块(计数器一致增加),可以得到计数器更大的定时器。 所有主要的用户访问寄存器都经过缓冲,以缓解当前运行软件的负载。根据用户定 义的数据,通过触发源各可用选项可以确定需要更新的寄存器。 26.1.2 特性 FTM 特性包括: • FTM 时钟源是可选的 • 时钟源可以是系统时钟、固定频率时钟或外部时钟 • 固定频率时钟是一种附加时钟输入,允许在系统时钟以外选择一个片上时钟 源 • 选择外部时钟可将 FTM 时钟连接到芯片级输入引脚,从而能够将 FTM 计 数器与片外时钟源同步 • 预分频器(1、2、4、8、16、32、64 或 128 分频) • 16 位计数器 • 可以是自由运行的计数器,也可以是采用初始和最终值的计数器 • 计数可以是向上计数或者先向上后向下计数 • 每个通道均可配置为输入捕捉、输出比较或边沿对齐 PWM 模式 • 在输入捕捉模式下: • 捕捉可以在上升沿、下降沿或两个边沿同时发生 • 可为某些通道选择一个输入滤波器 • 在输出比较模式下,可以对输出信号采取置位、清除或匹配切换操作 • 所有通道均可配置为中心对齐 PWM 模式 • 每对通道均可组合起来生成一个 PWM 信号,并且独立控制 PWM 信号的两个边 沿 KEA128 子系列参考手册, Rev. 2, July 2014 348 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) • FTM 通道可采用具有同等输出或互补输出的成对工作方式,或者作为独立的通 道独立输出信号 • 死区插入可用于每一对互补通道 • 生成匹配触发器 • 软件控制 PWM 输出 • 对于全局故障控制最多有 4 个故障输入 • 每个通道的极性都是可配置的 • 按通道生成中断 • 当计数器溢出时生成中断 • 检测到故障条件时生成中断 • 同步加载写缓冲 FTM 寄存器 • 关键寄存器的写入保护 • 向下兼容 TPM • 输入捕捉测试可检测固定为零和固定为一的状况 • 用于脉冲和周期宽度测量的双重边沿捕捉 26.1.3 工作模式 当 MCU 处于有效 Debug 模式时,FTM 会临时挂起所有计数,直到 MCU 返回正常 用户工作模式。在 Stop 模式下,所有 FTM 输入时钟都将停止,因此,在时钟恢复 前,FTM 会一直有效地禁用。在 Wait 模式下,FTM 继续正常工作。如果 FTM 无 需生成实时基准或提供将 MCU 从 Wait 模式唤醒所需的中断源,则可在进入 Wait 模式之前通过禁用 FTM 功能省电。. 26.1.4 结构框图 FTM 为每个通道使用一个输入/输出(I/O)引脚,CHn(FTM 通道(n))中的 n 为通道 编号(0–7)。 下图展示了 FTM 结构。FTM 模块的核心组件是一个初始值和终值可编程的 16 位 计数器,该计数器可向上或者先向上后向下计数。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 349 简介 CLKS FTMEN 未选择时钟 (FTM计数器禁用) 系统时钟 固定频率时钟 外部时钟 PS 预分频器 (1、2、4、8、16、32、64或128) 同步器 CPWMS CAPTEST FAULTM[1:0] FFVAL[3:0] FAULTIE FAULTnEN* FFLTRnEN* FTM计数器 MOD 通道1 输入 CH0IE CH0F 输入捕捉 模式逻辑 C0V 输入捕捉 模式逻辑 C1V DECAPEN COMBINE0 CPWMS MS1B:MS1A ELS1B:ELS1A CH1F DECAPEN COMBINE3 CPWMS MS7B:MS7A ELS7B:ELS7A 通道0 中断 CH0TRIG 通道1 中断 CH1TRIG 通道0 匹配触发 通道0 输出信号 通道1 输出信号 通道1 匹配触发 成对通道3 - 通道6和7 CH6IE 双沿捕捉 模式逻辑 通道7 输入 故障条件 输出模式逻辑 (根据初始化、互补模式、反相、软件输出 控制、死区插入、输出屏蔽、故障控制 和极性控制,在输出比较、EPWM、CPWM 和组合模式下产生通道0和1 输出信号) CH1IE DECAPEN COMBINE3 CPWMS MS6B:MS6A ELS6B:ELS6A 通道6 输入 定时器溢出 中断 TOF 成对通道0 - 通道0和1 双沿捕捉 模式逻辑 通道0 输入 TOIE 故障中断 *其中n = 3、2、1、0 DECAPEN COMBINE0 CPWMS MS0B:MS0A ELS0B:ELS0A 初始化 触发 FAULTIN FAULTF FAULTFn* 故障控制 故障输入n* INITTRIGEN CNTIN CH6F 输入捕捉 模式逻辑 C6V 输入捕捉 模式逻辑 C7V 通道6 中断 CH6TRIG 输出模式逻辑 (根据初始化、互补模式、反相、软件输出 控制、死区插入、输出屏蔽、故障控制 和极性控制,在输出比较、EPWM、CPWM 和组合模式下产生通道6和7 输出信号) CH7F CH7IE 通道7 中断 CH7TRIG 通道6 匹配触发 通道6 输出信号 通道7 输出信号 通道7 匹配触发 图 26-1. FTM 结构框图 KEA128 子系列参考手册, Rev. 2, July 2014 350 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.2 FTM 信号说明 表 26-1 显示了用户可访问的 FTM 信号。。 表 26-1. FTM 信号说明 信号 说明 I/O 功能 EXTCLK 外部时钟。可选择 FTM 外部 时钟用来驱动 FTM 计数器。 I 如果通过 SC 寄存器中的 CLKS[1:0]位选择了外部时钟输入信 号,则该信号可用作 FTM 计数器时钟。该时钟信号不得超过系 统时钟频率的 1/4。选择了外部时钟后,还会用到 FTM 计数器 预分频器的选择和设置功能。 CHn FTM 通道(n),其中 n 可以是 7-0 I/O 每个 FTM 通道均可配置为输入或输出。每个通道(无论是输入 还是输出)关联的方向是根据分配给该通道的模式选择的。 I 故障输入信号用于控制 CHn 通道输出状态。如果检测到故障, FAULTj 信号变为有效,且通道输出进入安全状态。故障逻辑的 行为方式由 MODE 寄存器中的 FAULTM[1:0]控制位和 COMBINEm 寄存器中的 FAULTEN 位定义。注意,由于 FAULTM[1:0]和 FAULTEN 控制位是为每一对通道定义的,因 此每个 FAULTj 输入都有可能有选择地影响所有通道。因为有 多个 FAULTj 输入(FTM 模块最多有 4 个),所以这些输入中的 每一个都会由 FLTCTRL 寄存器中的 FAULTjEN 位激活。 FAULTj 故障输入(j),其中 j 可以是 3-0 26.3 存储器映像和寄存器定义 26.3.1 存储器映像 本节从较高层面概要介绍了 FTM 寄存器以及这些寄存器的映射方式。 FTM 中不可用功能的寄存器和比特仍然保留在存储器映像中以及复位值中,但不具 备有效功能。 注 FTMEN = 0 时,请勿在 CNTIN 寄存器到 PWMLOAD 寄存 器这一区域内进行写入操作。 26.3.2 寄存器说明 访问保留地址会导致传输错误。用于不存在的通道的寄存器即视为保留寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 351 存储器映像和寄存器定义 FTM 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_8000 状态和控制寄存器 (FTM0_SC) 32 R/W 0000_0000h 26.3.3/355 4003_8004 计数器寄存器 (FTM0_CNT) 32 R/W 0000_0000h 26.3.4/356 4003_8008 模数寄存器 (FTM0_MOD) 32 R/W 0000_0000h 26.3.5/357 4003_800C 通道(n)状态和控制寄存器 (FTM0_C0SC) 32 R/W 0000_0000h 26.3.6/358 4003_8010 通道(n)值寄存器 (FTM0_C0V) 32 R/W 0000_0000h 26.3.7/360 4003_8014 通道(n)状态和控制寄存器 (FTM0_C1SC) 32 R/W 0000_0000h 26.3.6/358 4003_8018 通道(n)值寄存器 (FTM0_C1V) 32 R/W 0000_0000h 26.3.7/360 4003_801C 通道(n)状态和控制寄存器 (FTM0_C2SC) 32 R/W 0000_0000h 26.3.6/358 4003_8020 通道(n)值寄存器 (FTM0_C2V) 32 R/W 0000_0000h 26.3.7/360 4003_8024 通道(n)状态和控制寄存器 (FTM0_C3SC) 32 R/W 0000_0000h 26.3.6/358 4003_8028 通道(n)值寄存器 (FTM0_C3V) 32 R/W 0000_0000h 26.3.7/360 4003_802C 通道(n)状态和控制寄存器 (FTM0_C4SC) 32 R/W 0000_0000h 26.3.6/358 4003_8030 通道(n)值寄存器 (FTM0_C4V) 32 R/W 0000_0000h 26.3.7/360 4003_8034 通道(n)状态和控制寄存器 (FTM0_C5SC) 32 R/W 0000_0000h 26.3.6/358 4003_8038 通道(n)值寄存器 (FTM0_C5V) 32 R/W 0000_0000h 26.3.7/360 4003_803C 通道(n)状态和控制寄存器 (FTM0_C6SC) 32 R/W 0000_0000h 26.3.6/358 4003_8040 通道(n)值寄存器 (FTM0_C6V) 32 R/W 0000_0000h 26.3.7/360 4003_8044 通道(n)状态和控制寄存器 (FTM0_C7SC) 32 R/W 0000_0000h 26.3.6/358 4003_8048 通道(n)值寄存器 (FTM0_C7V) 32 R/W 0000_0000h 26.3.7/360 4003_804C 计数器初始值寄存器 (FTM0_CNTIN) 32 R/W 0000_0000h 26.3.8/360 4003_8050 捕捉和比较状态寄存器 (FTM0_STATUS) 32 R/W 0000_0000h 26.3.9/361 4003_8054 特性模式选择寄存器 (FTM0_MODE) 32 R/W 0000_0004h 26.3.10/363 4003_8058 同步寄存器 (FTM0_SYNC) 32 R/W 0000_0000h 26.3.11/364 4003_805C 通道输出的初始状态寄存器 (FTM0_OUTINIT) 32 R/W 0000_0000h 26.3.12/366 4003_8060 输出屏蔽寄存器 (FTM0_OUTMASK) 32 R/W 0000_0000h 26.3.13/368 4003_8064 已连接通道功能寄存器 (FTM0_COMBINE) 32 R/W 0000_0000h 26.3.14/370 4003_8068 死区时间插入控制 (FTM0_DEADTIME) 32 R/W 0000_0000h 26.3.15/374 4003_806C FTM 外部触发寄存器 (FTM0_EXTTRIG) 32 R/W 0000_0000h 26.3.16/375 4003_8070 通道极性寄存器 (FTM0_POL) 32 R/W 0000_0000h 26.3.17/377 4003_8074 故障模式状态寄存器 (FTM0_FMS) 32 R/W 0000_0000h 26.3.18/380 4003_8078 输入捕捉滤波器控制寄存器 (FTM0_FILTER) 32 R/W 0000_0000h 26.3.19/382 4003_807C 故障控制寄存器 (FTM0_FLTCTRL) 32 R/W 0000_0000h 26.3.20/383 4003_8084 配置寄存器 (FTM0_CONF) 32 R/W 0000_0000h 26.3.21/385 4003_8088 FTM 故障输入极性寄存器 (FTM0_FLTPOL) 32 R/W 0000_0000h 26.3.22/386 4003_808C 同步配置寄存器 (FTM0_SYNCONF) 32 R/W 0000_0000h 26.3.23/387 4003_8090 FTM 反相控制寄存器 (FTM0_INVCTRL) 32 R/W 0000_0000h 26.3.24/389 4003_8094 FTM 软件输出控制寄存器 (FTM0_SWOCTRL) 32 R/W 0000_0000h 26.3.25/390 4003_8098 FTM PWM 加载寄存器 (FTM0_PWMLOAD) 32 R/W 0000_0000h 26.3.26/392 4003_9000 状态和控制寄存器 (FTM1_SC) 32 R/W 0000_0000h 26.3.3/355 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 352 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_9004 计数器寄存器 (FTM1_CNT) 32 R/W 0000_0000h 26.3.4/356 4003_9008 模数寄存器 (FTM1_MOD) 32 R/W 0000_0000h 26.3.5/357 4003_900C 通道(n)状态和控制寄存器 (FTM1_C0SC) 32 R/W 0000_0000h 26.3.6/358 4003_9010 通道(n)值寄存器 (FTM1_C0V) 32 R/W 0000_0000h 26.3.7/360 4003_9014 通道(n)状态和控制寄存器 (FTM1_C1SC) 32 R/W 0000_0000h 26.3.6/358 4003_9018 通道(n)值寄存器 (FTM1_C1V) 32 R/W 0000_0000h 26.3.7/360 4003_901C 通道(n)状态和控制寄存器 (FTM1_C2SC) 32 R/W 0000_0000h 26.3.6/358 4003_9020 通道(n)值寄存器 (FTM1_C2V) 32 R/W 0000_0000h 26.3.7/360 4003_9024 通道(n)状态和控制寄存器 (FTM1_C3SC) 32 R/W 0000_0000h 26.3.6/358 4003_9028 通道(n)值寄存器 (FTM1_C3V) 32 R/W 0000_0000h 26.3.7/360 4003_902C 通道(n)状态和控制寄存器 (FTM1_C4SC) 32 R/W 0000_0000h 26.3.6/358 4003_9030 通道(n)值寄存器 (FTM1_C4V) 32 R/W 0000_0000h 26.3.7/360 4003_9034 通道(n)状态和控制寄存器 (FTM1_C5SC) 32 R/W 0000_0000h 26.3.6/358 4003_9038 通道(n)值寄存器 (FTM1_C5V) 32 R/W 0000_0000h 26.3.7/360 4003_903C 通道(n)状态和控制寄存器 (FTM1_C6SC) 32 R/W 0000_0000h 26.3.6/358 4003_9040 通道(n)值寄存器 (FTM1_C6V) 32 R/W 0000_0000h 26.3.7/360 4003_9044 通道(n)状态和控制寄存器 (FTM1_C7SC) 32 R/W 0000_0000h 26.3.6/358 4003_9048 通道(n)值寄存器 (FTM1_C7V) 32 R/W 0000_0000h 26.3.7/360 4003_904C 计数器初始值寄存器 (FTM1_CNTIN) 32 R/W 0000_0000h 26.3.8/360 4003_9050 捕捉和比较状态寄存器 (FTM1_STATUS) 32 R/W 0000_0000h 26.3.9/361 4003_9054 特性模式选择寄存器 (FTM1_MODE) 32 R/W 0000_0004h 26.3.10/363 4003_9058 同步寄存器 (FTM1_SYNC) 32 R/W 0000_0000h 26.3.11/364 4003_905C 通道输出的初始状态寄存器 (FTM1_OUTINIT) 32 R/W 0000_0000h 26.3.12/366 4003_9060 输出屏蔽寄存器 (FTM1_OUTMASK) 32 R/W 0000_0000h 26.3.13/368 4003_9064 已连接通道功能寄存器 (FTM1_COMBINE) 32 R/W 0000_0000h 26.3.14/370 4003_9068 死区时间插入控制 (FTM1_DEADTIME) 32 R/W 0000_0000h 26.3.15/374 4003_906C FTM 外部触发寄存器 (FTM1_EXTTRIG) 32 R/W 0000_0000h 26.3.16/375 4003_9070 通道极性寄存器 (FTM1_POL) 32 R/W 0000_0000h 26.3.17/377 4003_9074 故障模式状态寄存器 (FTM1_FMS) 32 R/W 0000_0000h 26.3.18/380 4003_9078 输入捕捉滤波器控制寄存器 (FTM1_FILTER) 32 R/W 0000_0000h 26.3.19/382 4003_907C 故障控制寄存器 (FTM1_FLTCTRL) 32 R/W 0000_0000h 26.3.20/383 4003_9084 配置寄存器 (FTM1_CONF) 32 R/W 0000_0000h 26.3.21/385 4003_9088 FTM 故障输入极性寄存器 (FTM1_FLTPOL) 32 R/W 0000_0000h 26.3.22/386 4003_908C 同步配置寄存器 (FTM1_SYNCONF) 32 R/W 0000_0000h 26.3.23/387 4003_9090 FTM 反相控制寄存器 (FTM1_INVCTRL) 32 R/W 0000_0000h 26.3.24/389 4003_9094 FTM 软件输出控制寄存器 (FTM1_SWOCTRL) 32 R/W 0000_0000h 26.3.25/390 4003_9098 FTM PWM 加载寄存器 (FTM1_PWMLOAD) 32 R/W 0000_0000h 26.3.26/392 4003_A000 状态和控制寄存器 (FTM2_SC) 32 R/W 0000_0000h 26.3.3/355 4003_A004 计数器寄存器 (FTM2_CNT) 32 R/W 0000_0000h 26.3.4/356 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 353 存储器映像和寄存器定义 FTM 存储器映射 (继续) 绝对地址(十 六进制) 宽度(单 位:位) 访问 复位值 小节/页 模数寄存器 (FTM2_MOD) 32 R/W 0000_0000h 26.3.5/357 4003_A00C 通道(n)状态和控制寄存器 (FTM2_C0SC) 32 R/W 0000_0000h 26.3.6/358 4003_A008 寄存器名称 4003_A010 通道(n)值寄存器 (FTM2_C0V) 32 R/W 0000_0000h 26.3.7/360 4003_A014 通道(n)状态和控制寄存器 (FTM2_C1SC) 32 R/W 0000_0000h 26.3.6/358 4003_A018 通道(n)值寄存器 (FTM2_C1V) 32 R/W 0000_0000h 26.3.7/360 32 R/W 0000_0000h 26.3.6/358 4003_A01C 通道(n)状态和控制寄存器 (FTM2_C2SC) 4003_A020 通道(n)值寄存器 (FTM2_C2V) 32 R/W 0000_0000h 26.3.7/360 4003_A024 通道(n)状态和控制寄存器 (FTM2_C3SC) 32 R/W 0000_0000h 26.3.6/358 4003_A028 通道(n)值寄存器 (FTM2_C3V) 32 R/W 0000_0000h 26.3.7/360 32 R/W 0000_0000h 26.3.6/358 4003_A02C 通道(n)状态和控制寄存器 (FTM2_C4SC) 4003_A030 通道(n)值寄存器 (FTM2_C4V) 32 R/W 0000_0000h 26.3.7/360 4003_A034 通道(n)状态和控制寄存器 (FTM2_C5SC) 32 R/W 0000_0000h 26.3.6/358 4003_A038 通道(n)值寄存器 (FTM2_C5V) 32 R/W 0000_0000h 26.3.7/360 32 R/W 0000_0000h 26.3.6/358 4003_A03C 通道(n)状态和控制寄存器 (FTM2_C6SC) 4003_A040 通道(n)值寄存器 (FTM2_C6V) 32 R/W 0000_0000h 26.3.7/360 4003_A044 通道(n)状态和控制寄存器 (FTM2_C7SC) 32 R/W 0000_0000h 26.3.6/358 4003_A048 通道(n)值寄存器 (FTM2_C7V) 32 R/W 0000_0000h 26.3.7/360 32 R/W 0000_0000h 26.3.8/360 4003_A04C 计数器初始值寄存器 (FTM2_CNTIN) 4003_A050 捕捉和比较状态寄存器 (FTM2_STATUS) 32 R/W 0000_0000h 26.3.9/361 4003_A054 特性模式选择寄存器 (FTM2_MODE) 32 R/W 0000_0004h 26.3.10/363 4003_A058 同步寄存器 (FTM2_SYNC) 32 R/W 0000_0000h 26.3.11/364 32 R/W 0000_0000h 26.3.12/366 4003_A05C 通道输出的初始状态寄存器 (FTM2_OUTINIT) 4003_A060 输出屏蔽寄存器 (FTM2_OUTMASK) 32 R/W 0000_0000h 26.3.13/368 4003_A064 已连接通道功能寄存器 (FTM2_COMBINE) 32 R/W 0000_0000h 26.3.14/370 4003_A068 死区时间插入控制 (FTM2_DEADTIME) 32 R/W 0000_0000h 26.3.15/374 32 R/W 0000_0000h 26.3.16/375 4003_A06C FTM 外部触发寄存器 (FTM2_EXTTRIG) 4003_A070 通道极性寄存器 (FTM2_POL) 32 R/W 0000_0000h 26.3.17/377 4003_A074 故障模式状态寄存器 (FTM2_FMS) 32 R/W 0000_0000h 26.3.18/380 4003_A078 输入捕捉滤波器控制寄存器 (FTM2_FILTER) 32 R/W 0000_0000h 26.3.19/382 32 R/W 0000_0000h 26.3.20/383 4003_A07C 故障控制寄存器 (FTM2_FLTCTRL) 4003_A084 配置寄存器 (FTM2_CONF) 32 R/W 0000_0000h 26.3.21/385 4003_A088 FTM 故障输入极性寄存器 (FTM2_FLTPOL) 32 R/W 0000_0000h 26.3.22/386 32 R/W 0000_0000h 26.3.23/387 4003_A08C 同步配置寄存器 (FTM2_SYNCONF) 4003_A090 FTM 反相控制寄存器 (FTM2_INVCTRL) 32 R/W 0000_0000h 26.3.24/389 4003_A094 FTM 软件输出控制寄存器 (FTM2_SWOCTRL) 32 R/W 0000_0000h 26.3.25/390 4003_A098 FTM PWM 加载寄存器 (FTM2_PWMLOAD) 32 R/W 0000_0000h 26.3.26/392 KEA128 子系列参考手册, Rev. 2, July 2014 354 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.3.3 状态和控制寄存器 (FTMx_SC) 状态和控制寄存器含有溢出状态标志和控制位,用来配置中断使能、FTM、时钟源 和预分频系数。这些控制与模块内的全部通道有关。 地址: 基址 基准 + 0h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TOIE 0 0 TOF 复位 CPWMS W 0 R PS 0 W 复位 CLKS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FTMx_SC 字段描述 字段 描述 31–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 TOF 定时器溢出标志 当 FTM 计数器达到 MOD 寄存器中的值时,通过硬件置位。在 TOF 置位的情况下读取 SC 寄存器,然后向 TOF 位写入 0,可清零 TOF 位。将 1 写入 TOF 无效。 若在读取和写入操作之间发生另一次 FTM 溢出,则写操作无效;因此,TOF 保持置位状态,表示发生了溢 出。在此情况下,TOF 中断请求不会因为之前的 TOF 清零序列而丢失。 0 1 6 TOIE FTM 计数器未溢出。 FTM 计数器已溢出。 定时器溢出中断使能 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 355 存储器映像和寄存器定义 FTMx_SC 字段描述 (继续) 字段 描述 使能 FTM 溢出中断。 0 1 5 CPWMS 禁用 TOF 中断。使用软件轮询。 使能 TOF 中断。TOF 等于 1 时,产生中断。 中心对齐 PWM 选择 选择 CPWM 模式。该模式配置 FTM 在先增后减计数模式中的操作。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 4–3 CLKS FTM 计数器可工作在向上计数模式中。 FTM 计数器可工作在先增后减计数模式中。 时钟源选择 从三个 FTM 计数器时钟源选择。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 00 01 10 11 PS 未选定时钟。该设置生效后可禁用 FTM 计数器。 系统时钟 固定频率时钟 外部时钟 预分频系数选择 从 8 个分频系数中选择,用于 CLKS 所选择的时钟源。新的预分频系数将会在新数值更新至寄存器位后,于 下一个系统时钟周期影响时钟源。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 000 001 010 011 100 101 110 111 1 分频 2 分频 4 分频 8 分频 16 分频 32 分频 64 分频 128 分频 26.3.4 计数器寄存器 (FTMx_CNT) CNT 寄存器含有 FTM 计数器值。 复位操作可清零 CNT 寄存器。向 COUNT 写入任何值都将用初始值 CNTIN 更新计 数器。 激活 Debug 时,FTM 计数器冻结。这是您可能读取的值。 KEA128 子系列参考手册, Rev. 2, July 2014 356 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 地址: 基址 基准 + 4h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 R 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 COUNT W 复位 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FTMx_CNT 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–16 保留 计数器值 COUNT 26.3.5 模数寄存器 (FTMx_MOD) 模数寄存器含有 FTM 计数器的模数值。FTM 计数器到达模数值后,溢出标志(TOF) 在下一个时钟变成置位状态,且 FTM 计数器的下一个数值取决于选定的计数方式; 参见计数器寄存器 。 写入 MOD 寄存器可将数值锁存到缓冲区中。将根据通过写缓存更新的寄存器 用 MOD 寄存器的写缓冲器值更新此 MOD 寄存器。 若 FTMEN = 0,此写入一致性机制便可手动复位,方法是将 Debug 是否激活写入 SC 寄存器。 在写入到 MOD 寄存器之前,通过写 CNT 以初始化 FTM 计数器,从而避免对计数 器首次发生溢出的时间造成混淆。 地址: 基址 基准 + 8h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 Reserved 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 MOD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FTMx_MOD 字段描述 字段 31–16 Reserved MOD 描述 此字段为保留字段。 模数值 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 357 存储器映像和寄存器定义 26.3.6 通道(n)状态和控制寄存器 (FTMx_CnSC) CnSC 含有通道中断状态标志和控制位,用来配置中断使能、通道和引脚功能。 表 26-2. 模式、边沿和电平选择 DECAPEN COMBINE CPWMS MSnB:MSnA ELSnB:ELSnA X X X XX 00 0 0 0 00 01 01 1X 1 1 XX 0 XX 模式 配置 未用于 FTM 的引脚 — 将通道引脚 恢复为通用 I/O 或其他外围控件 输入捕捉 10 仅在下降沿捕捉 11 在上升沿或下降 沿上捕捉 01 输出比较 0 0 X0 X1 匹配时切换输出 10 匹配时清零输出 11 匹配时置位输出 10 边沿对齐 PWM 高电平真脉冲(匹 配时清零输出) X1 低真脉冲(匹配时 置位输出) 10 中心对齐 PWM 高真脉冲(向上匹 配时清零输出) X1 低真脉冲(向上匹 配时置位输出) 10 组合 PWM X1 1 仅在上升沿捕捉 参见下表(表 26-3)。 高真脉冲(通道 (n)匹配时置位, 通道(n+1)匹配时 清零) 低真脉冲(通道 (n)匹配时清零, 通道(n+1)匹配时 置位) 双沿捕捉 单次捕捉模式 连续捕捉模式 表 26-3. 双边沿捕捉模式 - 边沿极性选择 ELSnB ELSnA 通道端口使能 已检测边沿 0 0 禁用 无边沿 0 1 使能 上升沿 1 0 使能 下降沿 1 1 使能 上升沿和下降沿 KEA128 子系列参考手册, Rev. 2, July 2014 358 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 地址: 基址 + Ch 偏移 + (8d × i), 其中 i=0d 到 7d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CHIE MSB 0 0 0 0 0 0 0 R CHF 0 W 复位 0 0 0 0 0 0 0 0 0 MSA ELSB ELSA 0 0 0 FTMx_CnSC 字段描述 字段 描述 31–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 CHF 通道标志 通道上有事件发生时,通过硬件置位。在 CHnF 置位的情况下读取 CSC 寄存器,然后向 CHF 位写入 0,可 清零 CHF。将 1 写入 CHF 无效。 若在读取和写入操作之间发生另一次事件,则写操作无效;因此,CHF 保持置位状态,表示发生了一次事 件。在此情况下,CHF 中断请求不会因为之前的 CHF 清零序列而丢失。 0 1 6 CHIE 通道中断使能 使能通道中断。 0 1 5 MSB 未发生通道事件。 发生通道事件。 禁用通道中断。使用软件轮询。 使能通道中断。 通道模式选择 用来在通道逻辑中作进一步选择。其功能取决于通道模式。参见表 26-2 。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 4 MSA 通道模式选择 用来在通道逻辑中作进一步选择。其功能取决于通道模式。参见表 26-2 。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 3 ELSB 边沿或电平选择 ELSB 和 ELSA 功能取决于通道模式。参见表 26-2 。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 2 ELSA 边沿或电平选择 ELSB 和 ELSA 功能取决于通道模式。参见表 26-2 。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 1 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 359 存储器映像和寄存器定义 26.3.7 通道(n)值寄存器 (FTMx_CnV) 这些寄存器包含输入模式下捕获的 FTM 计数器值或输出模式下的匹配值。 在输入捕捉、 捕捉测试和双边沿捕捉模式下,任何对 CnV 寄存器的写入操作都将 被忽略。 在输出模式下,向 CnV 寄存器写入值时,会将此值锁存到缓冲器中。将根据通过写 缓存更新的寄存器 用 CnV 寄存器的写入缓冲器值更新此 CnV 寄存器。 若 FTMEN = 0,此写入一致性机制便可手动复位,方法是将 Debug 模式是否激活写 入 CnSC 寄存器。 地址: 基址 + 10h 偏移 + (8d × i), 其中 i=0d 到 7d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 R 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 VAL W 复位 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FTMx_CnV 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–16 保留 通道值 VAL 输入模式下捕捉的 FTM 计数器值或用于输出模式的匹配值 26.3.8 计数器初始值寄存器 (FTMx_CNTIN) 计数器初始值寄存器包含用于 FTM 计数器的初始数值。 写入 CNTIN 寄存器可将数值锁存到缓冲区中。CNTIN 寄存器根据通过写缓存更新 的寄存器 所示,更新为其写入缓冲区的内容。 初始选定 FTM 时钟时,通过向 CLKS 位写入非零值,会让 FTM 计数器以数值 0x0000 起始。为了避免发生这种情况,在首次写入以选择 FTM 时钟前,向 CNTIN 寄存器写入新数值,然后向 CNT 寄存器写入任意值可初始化 FTM 计数器。 地址: 基址 基准 + 4Ch 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 Reserved 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 INIT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 360 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_CNTIN 字段描述 字段 描述 此字段为保留字段。 31–16 Reserved FTM 计数器初始值 INIT 26.3.9 捕捉和比较状态寄存器 (FTMx_STATUS) 状态寄存器含有 CnSC 中状态标志位 CHnF 的副本,可用于各 FTM 通道,为软件提 供方便。 状态寄存器中每一个 CHnF 位都是 CnSC 中 CHnF 位的镜像。对状态寄存器进行一 次读取,即可检查所有 CHnF 位。读取状态寄存器,然后向其写入 0x00,即可清零 所有 CHnF 位。 通道上发生事件时,硬件将置位各通道标志。在 CHnF 置位的情况下,读取状态寄 存器,然后向 CHnF 位写入 0,可清零 CHnF。将 1 写入 CHnF 无效。 若在读取和写入操作之间发生另一次事件,则写操作无效;因此,CHnF 保持置位 状态,表示发生了一次事件。在这种情况下,由于之前 CHnF 的清除序列,CHnF 中断请求将不会丢失。 地址: 基址 基准 + 50h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 R W 复位 0 0 0 0 0 0 0 0 CH0F 0 CH1F 0 CH2F 0 CH3F 0 CH4F 0 CH5F 0 CH6F 0 CH7F 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 361 存储器映像和寄存器定义 FTMx_STATUS 字段描述 字段 描述 31–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 CH7F 通道 7 标志 参见寄存器说明。 0 1 6 CH6F 通道 6 标志 参见寄存器说明。 0 1 5 CH5F 参见寄存器说明。 参见寄存器说明。 参见寄存器说明。 参见寄存器说明。 未发生通道事件。 发生通道事件。 通道 1 标志 参见寄存器说明。 0 1 0 CH0F 未发生通道事件。 发生通道事件。 通道 2 标志 0 1 1 CH1F 未发生通道事件。 发生通道事件。 通道 3 标志 0 1 2 CH2F 未发生通道事件。 发生通道事件。 通道 4 标志 0 1 3 CH3F 未发生通道事件。 发生通道事件。 通道 5 标志 0 1 4 CH4F 未发生通道事件。 发生通道事件。 未发生通道事件。 发生通道事件。 通道 0 标志 参见寄存器说明 0 1 未发生通道事件。 发生通道事件。 KEA128 子系列参考手册, Rev. 2, July 2014 362 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.3.10 特性模式选择寄存器 (FTMx_MODE) 该寄存器含有 FTM 特有的全局使能位,以及用来配置的控制位: • • • • • 故障控制模式和中断 捕捉测试模式 PWM 同步 写保护 通道输出初始化 这些控制与模块内的全部通道有关。 地址: 基址 基准 + 54h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CAPTEST PWMSYNC WPDIS INIT FTMEN W 0 0 1 0 0 FAULTIE 0 R W 复位 0 0 0 0 0 0 0 0 0 FAULTM 0 0 FTMx_MODE 字段描述 字段 31–8 保留 7 FAULTIE 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障中断使能 FTM 检测到故障,且 FTM 故障控制使能时,使能中断生成。 0 1 6–5 FAULTM 故障控制中断禁用。 故障控制中断使能。 故障控制模式 定义 FTM 故障控制模式。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 00 01 10 11 所有通道禁用故障控制。 仅针对偶数通道(通道 0、2、4 和 6)使能故障控制,所选模式为手动故障清零。 针对所有通道使能故障控制,所选模式为手动故障清零。 针对所有通道使能故障控制,所选模式为自动故障清零。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 363 存储器映像和寄存器定义 FTMx_MODE 字段描述 (继续) 字段 4 CAPTEST 描述 捕捉测试模式使能 使能捕捉测试模式。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 3 PWMSYNC PWM 同步模式 选择可用于 MOD、CnV、OUTMASK 和 FTM 计数器同步的触发。参见 PWM 同步 。当 SYNCMODE 为 0 时,PWMSYNC 位进行同步配置。 0 1 2 WPDIS 无限制。选择可用于 MOD、CnV、OUTMASK 和 FTM 计数器同步的软件和硬件触发。 软件触发只能用于 MOD 和 CnV 同步,硬件触发只能用于 OUTMASK 和 FTM 计数器同步。 写保护禁用 写保护使能时(WPDIS = 0),无法向写保护位写入内容。写保护禁用后(WPDIS = 1),可以写入写保护位。 WPDIS 位与 WPEN 位相反。向 WPEN 写入 1 可清零 WPDIS。WPDIS 置位:WPEN 位读取为 1,然后向 WPDIS 写入 1。向 WPDIS 中写入 0 无效。 0 1 1 INIT 捕捉测试模式禁用。 捕捉测试模式使能。 写保护使能。 写保护禁用。 初始化通道输出 INIT 位写入 1 后,通道输出根据 OUTINIT 寄存器中的对应位状态进行初始化。将 0 写入 INIT 位无效。 INIT 位始终读取为 0。 0 FTMEN FTM 使能 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 TPM 兼容性。自由运行计数器并与 TPM 同步兼容。 自由运行计数器并且同步与 TPM 行为不同。 26.3.11 同步寄存器 (FTMx_SYNC) 该寄存器配置 PWM 同步性能。 同步事件可采用 MOD、CV 和 OUTMASK 寄存器的写入缓冲区数值和 FTM 计数器 初始化数值执行同步更新。 注 当 SYNCMODE = 0 时,同时使用软件触发(SWSYNC 位) 和硬件触发(TRIG0、TRIG1 和 TRIG2 位)可能会产生冲 突。同一时间应当仅使用硬件或软件触发(而非两者同时使 用),否则可能产生无法预测的结果。 KEA128 子系列参考手册, Rev. 2, July 2014 364 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 选择加载点(CNTMAX 和 CNTMIN 位)以便在全部使能通 道中同时提供 MOD、CNTIN 和 CnV 寄存器更新。使用加 载点选择配合 SYNCMODE = 0 和硬件触发选择(TRIG0、 TRIG1 或 TRIG2 位)可能产生不可预测的结果。 同步事件选择还取决于 PWMSYNC(MODE 寄存器)和 SYNCMODE(SYNCONF 寄存器)位。参见 PWM 同步 。 地址: 基址 基准 + 58h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SWSYNC TRIG2 TRIG1 TRIG0 SYNCHOM REINIT CNTMAX CNTMIN W 0 0 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 FTMx_SYNC 字段描述 字段 31–8 保留 7 SWSYNC 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 PWM 同步软件触发 选择软件触发作为 PWM 同步触发。向 SWSYNC 位写入 1 时,发生软件触发。 0 1 6 TRIG2 PWM 同步硬件触发 2 使能 PWM 同步的硬件触发 2。在触发 2 输入信号中检测到上升沿时,产生硬件触发 2。 0 1 5 TRIG1 触发禁用。 触发使能。 PWM 同步硬件触发 1 使能 PWM 同步的硬件触发 1。在触发 1 输入信号中检测到上升沿时,产生硬件触发 1。 0 1 4 TRIG0 软件触发未选定。 软件触发已选定。 触发禁用。 触发使能。 PWM 同步硬件触发 0 使能 PWM 同步的硬件触发 0。在触发 0 输入信号中检测到上升沿时,产生硬件触发 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 365 存储器映像和寄存器定义 FTMx_SYNC 字段描述 (继续) 字段 描述 0 1 触发禁用。 触发使能。 输出屏蔽同步 3 SYNCHOM 选择 OUTMASK 寄存器何时以其缓冲区的数值更新。 0 1 OUTMASK 寄存器将在所有系统时钟的上升沿以其缓冲区的数值进行更新。 OUTMASK 寄存器仅通过 PWM 同步以其缓冲区值进行更新。 通过同步对 FTM 计数器进行重新初始化(FTM 计数器同步) 2 REINIT 检测到用于同步的特定触发时,确定 FTM 计数器是否重新初始化。当 SYNCMODE 为 0 时,REINIT 位进行 同步配置。 0 1 FTM 计数器继续正常计数。 当检测到特定的触发时,FTM 计数器以其初始值更新。 最大加载点使能 1 CNTMAX 选择 PWM 同步的最大加载点。参见边界周期和加载点 。若 CNTMAX 为 1,则选定的加载点为 FTM 计数器 达到其最大值(MOD 寄存器)的时刻。 0 1 最大加载点禁用。 最大加载点使能。 最小加载点使能 0 CNTMIN 选择 PWM 同步的最小加载点。参见边界周期和加载点 。若 CNTMIN 为 1,则选定的加载点为 FTM 计数器 达到其最小值(CNTIN 寄存器)的时刻。 0 1 最小加载点禁用。 最小加载点使能。 26.3.12 通道输出的初始状态寄存器 (FTMx_OUTINIT) 地址: 基址 基准 + 5Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CH7OI CH6OI CH5OI CH4OI CH3OI CH2OI CH1OI CH0OI W 0 0 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 366 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_OUTINIT 字段描述 字段 31–8 保留 7 CH7OI 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 通道 7 输出初始值 进行初始化时,选择强制进入通道输出的数值。 0 1 6 CH6OI 通道 6 输出初始值 进行初始化时,选择强制进入通道输出的数值。 0 1 5 CH5OI 进行初始化时,选择强制进入通道输出的数值。 进行初始化时,选择强制进入通道输出的数值。 进行初始化时,选择强制进入通道输出的数值。 进行初始化时,选择强制进入通道输出的数值。 初始值为 0。 初始值为 1。 通道 1 输出初始值 进行初始化时,选择强制进入通道输出的数值。 0 1 0 CH0OI 初始值为 0。 初始值为 1。 通道 2 输出初始值 0 1 1 CH1OI 初始值为 0。 初始值为 1。 通道 3 输出初始值 0 1 2 CH2OI 初始值为 0。 初始值为 1。 通道 4 输出初始值 0 1 3 CH3OI 初始值为 0。 初始值为 1。 通道 5 输出初始值 0 1 4 CH4OI 初始值为 0。 初始值为 1。 初始值为 0。 初始值为 1。 通道 0 输出初始值 进行初始化时,选择强制进入通道输出的数值。 0 1 初始值为 0。 初始值为 1。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 367 存储器映像和寄存器定义 26.3.13 输出屏蔽寄存器 (FTMx_OUTMASK) 该寄存器为每个 FTM 通道提供屏蔽。通道屏蔽确定其输出是否进行响应;也就是 说,当发生匹配时,它是否屏蔽。该特性可用于 BLDC 控制;这类应用在特定时间 内,电机上存在 PWM 信号,以提供电子换向。 对 OUTMASK 寄存器采取的任意写操作都会将数值保存在其写入缓冲区中。寄存 器根据 PWM 同步 所示,更新为其写入缓冲区的内容。 地址: 基址 基准 + 60h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CH7OM CH6OM CH5OM CH4OM CH3OM CH2OM CH1OM CH0OM W 0 0 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 FTMx_OUTMASK 字段描述 字段 31–8 保留 7 CH7OM 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 通道 7 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 6 CH6OM 通道 6 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 5 CH5OM 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道 5 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 4 CH4OM 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道 4 输出屏蔽 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 368 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_OUTMASK 字段描述 (继续) 字段 描述 定义通道输出为屏蔽或未屏蔽。 0 1 3 CH3OM 通道 3 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 2 CH2OM 定义通道输出为屏蔽或未屏蔽。 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道 1 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 0 CH0OM 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道 2 输出屏蔽 0 1 1 CH1OM 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 通道 0 输出屏蔽 定义通道输出为屏蔽或未屏蔽。 0 1 通道输出未屏蔽。它连续正常工作。 通道输出已屏蔽。它被强制处于不活跃状态。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 369 存储器映像和寄存器定义 26.3.14 已连接通道功能寄存器 (FTMx_COMBINE) 该寄存器包含控制位,可配置故障控制、同步、死区时间插入、双沿捕捉模式、互 补和组合模式,用于通道对(n)和(n+1),其中 n 等于 0、2、4 和 6。 DECAPEN1 0 0 0 COMBINE2 DECAP1 0 0 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 0 0 COMBINE0 DTEN1 0 复位 COMP2 SYNCEN1 0 W 0 COMP0 0 DECAPEN2 R 0 DECAPEN0 9 16 DECAP2 10 17 DECAP0 11 18 DTEN2 12 19 DTEN0 13 20 SYNCEN2 14 0 21 SYNCEN0 15 0 22 FAULTEN2 位 0 23 FAULTEN0 0 24 COMBINE3 0 26 COMBINE1 SYNCEN3 0 27 COMP3 FAULTEN3 复位 W 28 COMP1 0 29 DECAPEN3 R 30 DECAP3 31 DTEN3 位 FAULTEN1 地址: 基址 基准 + 64h 偏移 25 0 0 0 0 0 0 0 0 0 0 FTMx_COMBINE 字段描述 字段 31 保留 30 FAULTEN3 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障控制使能(n = 6) 使能通道(n)和(n+1)中的故障控制。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 29 SYNCEN3 同步使能(n = 6) 使能寄存器 C(n)V 和 C(n+1)V 的 PWM 同步。 0 1 28 DTEN3 禁用该通道对中的故障控制。 使能该通道对中的故障控制。 禁用该通道对中的 PWM 同步。 使能该通道对中的 PWM 同步。 死区时间使能(n = 6) 使能通道(n)和(n+1)中的死区时间插入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 禁用该通道对中的死区时间插入。 使能该通道对中的死区时间插入。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 370 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_COMBINE 字段描述 (继续) 字段 27 DECAP3 描述 双沿捕捉模式捕捉(n = 6) 使能根据通道(n)输入事件捕捉 FTM 计数器值的功能和双沿捕捉位配置。 仅在 DECAPEN = 1 时应用此字段。 如果选定了双边沿捕捉 — 一次性模式,且执行了通道 (n+1) 事件的捕捉时,将由硬件自动清除 DECAP 位。 0 1 26 DECAPEN3 双沿捕捉未激活。 双沿捕捉已激活。 双沿捕捉模式使能(n = 6) 使能通道(n)和(n+1)的双沿捕捉模式。此位将根据 表 26-2 在双边沿捕捉模式中重新配置 MSnA、 ELSnB:ELSnA 和 ELS(n+1)B:ELS(n+1)A 位的功能。 此字段受写入保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 25 COMP3 该通道对中的双沿捕捉模式禁用。 该通道对中的双沿捕捉模式使能。 通道(n)互补(n = 6) 使能组合通道的互补模式。在互补模式下,通道(n+1)输出与通道(n)输出相反。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 24 COMBINE3 通道(n+1)输出与通道(n)输出相同。 通道(n+1)输出与通道(n)输出互补。 组合通道(n = 6) 使能通道(n)和(n+1)的组合功能。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 23 保留 22 FAULTEN2 通道(n)和(n+1)独立。 通道(n)和(n+1)组合。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障控制使能(n = 4) 使能通道(n)和(n+1)中的故障控制。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 21 SYNCEN2 同步使能(n = 4) 使能寄存器 C(n)V 和 C(n+1)V 的 PWM 同步。 0 1 20 DTEN2 禁用该通道对中的故障控制。 使能该通道对中的故障控制。 禁用该通道对中的 PWM 同步。 使能该通道对中的 PWM 同步。 死区时间使能(n = 4) 使能通道(n)和(n+1)中的死区时间插入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 371 存储器映像和寄存器定义 FTMx_COMBINE 字段描述 (继续) 字段 描述 0 1 19 DECAP2 禁用该通道对中的死区时间插入。 使能该通道对中的死区时间插入。 双沿捕捉模式捕捉(n = 4) 使能根据通道(n)输入事件捕捉 FTM 计数器值的功能和双沿捕捉位配置。 仅在 DECAPEN = 1 时应用此字段。 如果选定了双边沿捕捉 — 一次性模式,且执行了通道 (n+1) 事件的捕捉时,将由硬件自动清除 DECAP 位。 0 1 18 DECAPEN2 双沿捕捉未激活。 双沿捕捉已激活。 双沿捕捉模式使能(n = 4) 使能通道(n)和(n+1)的双沿捕捉模式。此位将根据 表 26-2 在双边沿捕捉模式中重新配置 MSnA、 ELSnB:ELSnA 和 ELS(n+1)B:ELS(n+1)A 位的功能。 此字段受写入保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 17 COMP2 该通道对中的双沿捕捉模式禁用。 该通道对中的双沿捕捉模式使能。 通道(n)互补(n = 4) 使能组合通道的互补模式。在互补模式下,通道(n+1)输出与通道(n)输出相反。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 16 COMBINE2 通道(n+1)输出与通道(n)输出相同。 通道(n+1)输出与通道(n)输出互补。 组合通道(n = 4) 使能通道(n)和(n+1)的组合功能。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 15 保留 14 FAULTEN1 通道(n)和(n+1)独立。 通道(n)和(n+1)组合。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障控制使能(n = 2) 使能通道(n)和(n+1)中的故障控制。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 13 SYNCEN1 同步使能(n = 2) 使能寄存器 C(n)V 和 C(n+1)V 的 PWM 同步。 0 1 12 DTEN1 禁用该通道对中的故障控制。 使能该通道对中的故障控制。 禁用该通道对中的 PWM 同步。 使能该通道对中的 PWM 同步。 死区时间使能(n = 2) 使能通道(n)和(n+1)中的死区时间插入。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 372 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_COMBINE 字段描述 (继续) 字段 描述 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 11 DECAP1 禁用该通道对中的死区时间插入。 使能该通道对中的死区时间插入。 双沿捕捉模式捕捉(n = 2) 使能根据通道(n)输入事件捕捉 FTM 计数器值的功能和双沿捕捉位配置。 仅在 DECAPEN = 1 时应用此字段。 如果选定了双边沿捕捉 — 一次性模式,且执行了通道 (n+1) 事件的捕捉时,将由硬件自动清除 DECAP 位。 0 1 10 DECAPEN1 双沿捕捉未激活。 双沿捕捉已激活。 双沿捕捉模式使能(n = 2) 使能通道(n)和(n+1)的双沿捕捉模式。此位将根据 表 26-2 在双边沿捕捉模式中重新配置 MSnA、 ELSnB:ELSnA 和 ELS(n+1)B:ELS(n+1)A 位的功能。 此字段受写入保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 9 COMP1 该通道对中的双沿捕捉模式禁用。 该通道对中的双沿捕捉模式使能。 通道(n)互补(n = 2) 使能组合通道的互补模式。在互补模式下,通道(n+1)输出与通道(n)输出相反。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 8 COMBINE1 通道(n+1)输出与通道(n)输出相同。 通道(n+1)输出与通道(n)输出互补。 组合通道(n = 2) 使能通道(n)和(n+1)的组合功能。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 7 保留 6 FAULTEN0 通道(n)和(n+1)独立。 通道(n)和(n+1)组合。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障控制使能(n = 0) 使能通道(n)和(n+1)中的故障控制。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 5 SYNCEN0 禁用该通道对中的故障控制。 使能该对通道中的故障控制。 同步使能(n = 0) 使能寄存器 C(n)V 和 C(n+1)V 的 PWM 同步。 0 1 禁用该通道对中的 PWM 同步。 使能该通道对中的 PWM 同步。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 373 存储器映像和寄存器定义 FTMx_COMBINE 字段描述 (继续) 字段 描述 死区时间使能(n = 0) 4 DTEN0 使能通道(n)和(n+1)中的死区时间插入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 禁用该通道对中的死区时间插入。 使能该通道对中的死区时间插入。 双沿捕捉模式捕捉(n = 0) 3 DECAP0 使能根据通道(n)输入事件捕捉 FTM 计数器值的功能和双沿捕捉位配置。 仅在 DECAPEN = 1 时应用此字段。 如果选定了双边沿捕捉 — 一次性模式,且执行了通道 (n+1) 事件的捕捉时,将由硬件自动清除 DECAP 位。 0 1 双沿捕捉未激活。 双沿捕捉已激活。 双沿捕捉模式使能(n = 0) 2 DECAPEN0 使能通道(n)和(n+1)的双沿捕捉模式。此位将根据 表 26-2 在双边沿捕捉模式中重新配置 MSnA、 ELSnB:ELSnA 和 ELS(n+1)B:ELS(n+1)A 位的功能。 此字段受写入保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 该通道对中的双沿捕捉模式禁用。 该通道对中的双沿捕捉模式使能。 通道(n)互补(n = 0) 1 COMP0 使能组合通道的互补模式。在互补模式下,通道(n+1)输出与通道(n)输出相反。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 通道(n+1)输出与通道(n)输出相同。 通道(n+1)输出与通道(n)输出互补。 组合通道(n = 0) 0 COMBINE0 使能通道(n)和(n+1)的组合功能。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 通道(n)和(n+1)独立。 通道(n)和(n+1)组合。 26.3.15 死区时间插入控制 (FTMx_DEADTIME) 该寄存器选择死区时间预分频器系数和死区时间值。对于死区时间插入而言,所有 FTM 通道均使用此时钟预分频器和该死区时间值。 地址: 基址 基准 + 68h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 0 R 0 0 0 0 0 0 0 0 0 0 0 0 6 5 4 DTPS W 复位 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 1 0 0 0 DTVAL 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 374 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_DEADTIME 字段描述 字段 描述 31–8 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7–6 DTPS 死区时间预分频器值 选择系统时钟的分频系数。死区时间计数器使用此预分频时钟。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0x 10 11 DTVAL 系统时钟 1 分频。 系统时钟 4 分频。 系统时钟 16 分频。 死区时间值 选择死区时间插入值,用于死区时间计数器。死区时间计数器由系统时钟的一部分提供时钟源。参考 DTPS 说明。 死区时间插入数值 = (DTPS × DTVAL)。 DTVAL 选择插入的死区时间计数数目,如下所示: 若 DTVAL 等于 0,则不插入计数数目。 若 DTVAL 等于 1,则插入 1 个计数数目。 若 DTVAL 等于 2,则插入 2 个计数数目。 以此类推,最高可达 63 个计数数目。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 26.3.16 FTM 外部触发寄存器 (FTMx_EXTTRIG) 该寄存器: • 指示何时产生通道触发 • 当 FTM 计数器等于其初始值时,使能触发生成 • 产生通道触发时,选择所用的通道 可选择多个通道,以便在一个 PWM 周期内产生多个触发。 通道 6 和 7 未用来产生通道触发。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 375 存储器映像和寄存器定义 地址: 基址 基准 + 6Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 R Reserved 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CH1TRIG CH0TRIG CH5TRIG CH4TRIG CH3TRIG CH2TRIG 0 0 0 0 0 0 0 TRIGF 复位 INITTRIGEN W R Reserved 0 W 复位 0 0 0 0 0 0 0 0 0 FTMx_EXTTRIG 字段描述 字段 31–8 Reserved 7 TRIGF 描述 此字段为保留字段。 通道触发标志 生成通道触发时,由硬件置位。在 TRIGF 置位的情况下通过读取 EXTTRIG,然后向 TRIGF 写入 0,可清零 TRIGF。将 1 写入 TRIGF 无效。 如果在完成清零序列之前生成另一个通道触发,则序列复位,从而 TRIGF 在完成针对先前 TRIGF 的清零序 列之后将保持置位状态。 0 1 6 INITTRIGEN 未生成通道触发。 生成一个通道触发。 初始化触发使能 当 FTM 计数器等于 CNTIN 寄存器时,使能触发生成。 0 1 禁用初始化触发生成。 使能初始化触发生成。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 376 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_EXTTRIG 字段描述 (继续) 字段 5 CH1TRIG 描述 通道 1 触发使能 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 0 1 4 CH0TRIG 通道 0 触发使能 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 0 1 3 CH5TRIG 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 禁用通道触发生成。 使能通道触发生成。 通道 3 触发使能 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 0 1 0 CH2TRIG 禁用通道触发生成。 使能通道触发生成。 通道 4 触发使能 0 1 1 CH3TRIG 禁用通道触发生成。 使能通道触发生成。 通道 5 触发使能 0 1 2 CH4TRIG 禁用通道触发生成。 使能通道触发生成。 禁用通道触发生成。 使能通道触发生成。 通道 2 触发使能 当 FTM 计数器等于 CnV 寄存器时,使能通道触发生成。 0 1 禁用通道触发生成。 使能通道触发生成。 26.3.17 通道极性寄存器 (FTMx_POL) 该寄存器定义 FTM 通道的输出极性。 注 当故障控制使能且检测到故障条件时,通道输出的安全值就 是通道的无效状态。也就是说,通道安全值是其 POL 位的 值。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 377 存储器映像和寄存器定义 地址: 基址 基准 + 70h 偏移 位 R W 31 复位 0 0 0 位 R W 15 14 13 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 Reserved 0 0 0 0 0 12 11 10 9 8 Reserved 0 0 0 0 POL7 POL6 POL5 POL4 POL3 POL2 POL1 POL0 0 0 0 0 0 0 0 0 0 0 0 FTMx_POL 字段描述 字段 31–8 Reserved 7 POL7 描述 此字段为保留字段。 通道 7 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 6 POL6 通道极性为高电平有效。 通道极性为低电平有效。 通道 6 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 5 POL5 通道极性为高电平有效。 通道极性为低电平有效。 通道 5 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 4 POL4 通道极性为高电平有效。 通道极性为低电平有效。 通道 4 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 3 POL3 通道极性为高电平有效。 通道极性为低电平有效。 通道 3 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 2 POL2 通道极性为高电平有效。 通道极性为低电平有效。 通道 2 极性 定义通道输出的极性。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 378 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_POL 字段描述 (继续) 字段 描述 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 1 POL1 通道极性为高电平有效。 通道极性为低电平有效。 通道 1 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 0 POL0 通道极性为高电平有效。 通道极性为低电平有效。 通道 0 极性 定义通道输出的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 通道极性为高电平有效。 通道极性为低电平有效。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 379 存储器映像和寄存器定义 26.3.18 故障模式状态寄存器 (FTMx_FMS) 该寄存器含有故障检测标志位、写保护使能位和使能故障输入的逻辑 OR。 地址: 基址 基准 + 74h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 R 0 W 复位 0 0 0 0 0 0 0 0 0 0 0 0 FAULTF0 0 FAULTF1 0 FAULTF2 0 FAULTF3 0 WPEN 0 FAULTF 复位 FAULTIN W 0 0 0 0 0 0 0 0 FTMx_FMS 字段描述 字段 31–8 保留 7 FAULTF 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障检测标志 代表单个 FAULTFj 位的逻辑 OR,其中:j = 3、2、1、0。在 FAULTF 置位的情况下,当已使能的故障输入 端不存在故障条件时,读取 FMS 寄存器,然后向 FAULTF 写入 0 可清零 FAULTF。将 1 写入 FAULTF 无 效。 如果在清零序列结束前检测到已使能故障输入的另一个故障条件,则序列复位,因此 FAULTF 将在完成针对 上一个故障条件的清零序列之后保持置位状态。当 FAULTFj 位独立清零时,FAULTF 位亦清零。 0 1 6 WPEN 未检测到故障条件。 检测到故障条件。 写保护使能 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 380 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_FMS 字段描述 (继续) 字段 描述 WPEN 位与 WPDIS 位相反。将 1 写入 WPEN 时,可将其置位。WPEN 清零:WPEN 位读取为 1,然后向 WPDIS 写入 1。向 WPEN 中写入 0 无效。 0 1 5 FAULTIN 故障输入 使能故障控制时,它代表滤波(假设滤波器使能)之后已使能故障输入的逻辑 OR。 0 1 4 保留 3 FAULTF3 写保护禁用。可写入写保护位。 写保护使能。不可写入写保护位。 已使能故障输入的逻辑 OR 为 0。 已使能故障输入的逻辑 OR 为 1。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障检测标志 3 故障控制使能时由硬件置位,对应的故障输入使能,且在故障输入端检测到故障条件。 当对应的故障输入无故障条件时,在 FAULTF3 置位的情况下读取 FMS 寄存器,然后将 0 写入 FAULTF3 即 可清零 FAULTF3。将 1 写入 FAULTF3 无效。FAULTF 位清零时,也会清零 FAULTF3 位。 如果在清零序列结束前检测到对应故障输入端存在另一个故障条件,则序列复位,因此 FAULTF3 将在完成 针对上一个故障条件的清零序列之后保持置位状态。 0 1 2 FAULTF2 故障输入端未检测到故障条件。 故障输入端检测到故障条件。 故障检测标志 2 故障控制使能时由硬件置位,对应的故障输入使能,且在故障输入端检测到故障条件。 当对应的故障输入无故障条件时,在 FAULTF2 置位的情况下读取 FMS 寄存器,然后将 0 写入 FAULTF2 即 可清零 FAULTF2。将 1 写入 FAULTF2 无效。FAULTF 位清零时,也会清零 FAULTF2 位。 如果在清零序列结束前检测到对应故障输入端存在另一个故障条件,则序列复位,因此 FAULTF2 将在完成 针对上一个故障条件的清零序列之后保持置位状态。 0 1 1 FAULTF1 故障输入端未检测到故障条件。 故障输入端检测到故障条件。 故障检测标志 1 故障控制使能时由硬件置位,对应的故障输入使能,且在故障输入端检测到故障条件。 当对应的故障输入无故障条件时,在 FAULTF1 置位的情况下读取 FMS 寄存器,然后将 0 写入 FAULTF1 即 可清零 FAULTF1。将 1 写入 FAULTF1 无效。FAULTF 位清零时,也会清零 FAULTF1 位。 如果在清零序列结束前检测到对应故障输入端存在另一个故障条件,则序列复位,因此 FAULTF1 将在完成 针对上一个故障条件的清零序列之后保持置位状态。 0 1 0 FAULTF0 故障输入端未检测到故障条件。 故障输入端检测到故障条件。 故障检测标志 0 故障控制使能时由硬件置位,对应的故障输入使能,且在故障输入端检测到故障条件。 当对应的故障输入无故障条件时,在 FAULTF0 置位的情况下读取 FMS 寄存器,然后将 0 写入 FAULTF0 即 可清零 FAULTF0。将 1 写入 FAULTF0 无效。FAULTF 位清零时,也会清零 FAULTF0 位。 如果在清零序列结束前检测到对应故障输入端存在另一个故障条件,则序列复位,因此 FAULTF0 将在完成 针对上一个故障条件的清零序列之后保持置位状态。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 381 存储器映像和寄存器定义 FTMx_FMS 字段描述 (继续) 字段 描述 0 1 故障输入端未检测到故障条件。 故障输入端检测到故障条件。 26.3.19 输入捕捉滤波器控制寄存器 (FTMx_FILTER) 该寄存器选择用于通道输入的滤波器值。 通道 4、5、6、7 没有输入滤波器。 注 写入 FILTER 寄存器的内容即刻生效,且必须在通道 0、1、 2 和 3 为非输入模式时才能完成。如果无法做到,则可能错 过有效信号。 地址: 基址 基准 + 78h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Reserved 0 0 0 0 0 0 0 0 14 13 12 11 CH3FVAL 0 0 0 0 0 0 0 0 0 0 10 9 8 7 CH2FVAL 0 0 0 0 6 5 4 3 CH1FVAL 0 0 0 0 2 1 0 CH0FVAL 0 0 0 0 0 FTMx_FILTER 字段描述 字段 描述 31–16 Reserved 此字段为保留字段。 15–12 CH3FVAL 通道 3 输入滤波器 选择用于通道输入的滤波器值。 数值为 0 时,滤波器禁用。 11–8 CH2FVAL 通道 2 输入滤波器 选择用于通道输入的滤波器值。 数值为 0 时,滤波器禁用。 7–4 CH1FVAL 通道 1 输入滤波器 选择用于通道输入的滤波器值。 数值为 0 时,滤波器禁用。 CH0FVAL 通道 0 输入滤波器 选择用于通道输入的滤波器值。 数值为 0 时,滤波器禁用。 KEA128 子系列参考手册, Rev. 2, July 2014 382 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.3.20 故障控制寄存器 (FTMx_FLTCTRL) 该寄存器选择故障输入的滤波器值,使能故障输入和故障输入滤波器。 地址: 基址 基准 + 7Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FFLTR3EN FFLTR2EN FFLTR1EN FFLTR0EN FAULT3EN FAULT2EN FAULT1EN FAULT0EN W 0 0 0 0 0 0 0 0 0 R FFVAL W 复位 0 0 0 0 0 0 0 0 FTMx_FLTCTRL 字段描述 字段 描述 31–12 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 11–8 FFVAL 故障输入滤波器 选择用于故障输入的滤波器值。 数值为 0 时,故障滤波器禁用。 注: 写操作即时生效,且必须在禁用故障控制或全部故障输入时完成。如果无法做到,则可能错过故障检 测。 7 FFLTR3EN 故障输入 3 滤波器使能 使能故障输入的滤波器。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 6 FFLTR2EN 禁用故障输入滤波器。 使能故障输入滤波器。 故障输入 2 滤波器使能 使能故障输入的滤波器。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 5 FFLTR1EN 禁用故障输入滤波器。 使能故障输入滤波器。 故障输入 1 滤波器使能 使能故障输入的滤波器。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 383 存储器映像和寄存器定义 FTMx_FLTCTRL 字段描述 (继续) 字段 描述 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 4 FFLTR0EN 禁用故障输入滤波器。 使能故障输入滤波器。 故障输入 0 滤波器使能 使能故障输入的滤波器。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 3 FAULT3EN 禁用故障输入滤波器。 使能故障输入滤波器。 故障输入 3 使能 使能故障输入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 2 FAULT2EN 禁用故障输入。 使能故障输入。 故障输入 2 使能 使能故障输入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 1 FAULT1EN 禁用故障输入。 使能故障输入。 故障输入 1 使能 使能故障输入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 0 FAULT0EN 禁用故障输入。 使能故障输入。 故障输入 0 使能 使能故障输入。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 禁用故障输入。 使能故障输入。 KEA128 子系列参考手册, Rev. 2, July 2014 384 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.3.21 配置寄存器 (FTMx_CONF) 该寄存器选择应当在 TOF 位置位前发生的 FTM 计数器溢出次数、FTM 在 Debug 模 式下的特性、外部全局时基的使用以及全局时基信号生成。 地址: 基址 基准 + 84h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 GTBEOUT GTBEEN W 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 BDMMODE 0 0 NUMTOF 0 0 0 0 FTMx_CONF 字段描述 字段 31–11 保留 10 GTBEOUT 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 全局时基输出 使能到其它 FTM 的全局时基信号生成。 0 1 9 GTBEEN 7–6 BDMMODE 5 保留 NUMTOF 将启用全局时基的信号生成。 全局时基使能 配置 FTM,以使用另一个 FTM 产生的外部全局时基信号。 0 1 8 保留 禁用全局时基信号生成。 禁用外部全局时基。 使能外部全局时基。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 Debug 模式 选择 B Debug 模式下的 FTM 特性。请参见 Debug 模式 。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 TOF 频率 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 385 存储器映像和寄存器定义 FTMx_CONF 字段描述 (继续) 字段 描述 选择计数器溢出数量与 TOF 位置位次数之比。 NUMTOF = 0:TOF 位针对每一个计数器溢出进行置位。 NUMTOF = 1:TOF 位针对第一个计数器溢出进行置位,但不会对下一个溢出置位。 NUMTOF = 2:TOF 位针对第一个计数器溢出进行置位,但不对之后的两个溢出置位。 NUMTOF = 3:TOF 位针对第一个计数器溢出进行置位,但不对之后的三个溢出置位。 以此类推,最高可达 31 个。 26.3.22 FTM 故障输入极性寄存器 (FTMx_FLTPOL) 该寄存器定义故障输入极性。 地址: 基址 基准 + 88h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FLT3POL FLT2POL FLT1POL FLT0POL W 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 FTMx_FLTPOL 字段描述 字段 31–4 保留 3 FLT3POL 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 故障输入 3 极性 定义故障输入的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 2 FLT2POL 故障输入极性为高电平有效。故障输入端的 1 表示故障。 故障输入极性为低电平有效。故障输入端的 0 表示故障。 故障输入 2 极性 定义故障输入的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 386 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_FLTPOL 字段描述 (继续) 字段 描述 0 1 故障输入极性为高电平有效。故障输入端的 1 表示故障。 故障输入极性为低电平有效。故障输入端的 0 表示故障。 故障输入 1 极性 1 FLT1POL 定义故障输入的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 故障输入极性为高电平有效。故障输入端的 1 表示故障。 故障输入极性为低电平有效。故障输入端的 0 表示故障。 故障输入 0 极性 0 FLT0POL 定义故障输入的极性。 该字段为写保护。仅当 MODE[WPDIS] = 1 时,才能写操作。 0 1 故障输入极性为高电平有效。故障输入端的 1 表示故障。 故障输入极性为低电平有效。故障输入端的 0 表示故障。 26.3.23 同步配置寄存器 (FTMx_SYNCONF) 当检测到硬件触发 j 时,若 FTM 清零 TRIGj 位(j=0,1,2),该寄存器将选择 PWM 同 步配置、SWOCTRL、INVCTRL 和 CNTIN 寄存器进行同步。 地址: 基址 基准 + 8Ch 偏移 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 SWOC 0 SYNCMODE 0 SWRSTCNT 0 SWWRBUF 复位 SWOM W SWINVC 0 R SWSOC W INVC 0 0 0 0 0 0 HWTRIGMOD E 复位 0 R CNTINC HWRSTCNT 28 HWWRBUF 29 HWOM 30 HWINVC 31 HWSOC 位 0 FTMx_SYNCONF 字段描述 字段 31–21 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 387 存储器映像和寄存器定义 FTMx_SYNCONF 字段描述 (继续) 字段 描述 20 HWSOC 软件输出控制同步通过硬件触发激活。 19 HWINVC 反相控制同步通过硬件触发激活。 18 HWOM 输出屏蔽同步通过硬件触发激活。 0 1 0 1 0 1 硬件触发不激活 SWOCTRL 寄存器同步。 硬件触发激活 SWOCTRL 寄存器同步。 硬件触发不激活 INVCTRL 寄存器同步。 硬件触发激活 INVCTRL 寄存器同步。 硬件触发不激活 OUTMASK 寄存器同步。 硬件触发激活 OUTMASK 寄存器同步。 17 HWWRBUF MOD、CNTIN 和 CV 寄存器同步通过硬件触发激活。 16 HWRSTCNT FTM 计数器同步通过硬件触发激活。 15–13 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 12 SWSOC 软件输出控制同步通过软件触发激活。 11 SWINVC 反相控制同步通过软件触发激活。 10 SWOM 输出屏蔽同步通过软件触发激活。 0 1 0 1 0 1 0 1 0 1 硬件触发不激活 MOD、CNTIN 和 CV 寄存器同步。 硬件触发激活 MOD、CNTIN 和 CV 寄存器同步。 硬件触发不激活 FTM 计数器同步。 硬件触发激活 FTM 计数器同步。 软件触发不激活 SWOCTRL 寄存器同步。 软件触发激活 SWOCTRL 寄存器同步。 软件触发不激活 INVCTRL 寄存器同步。 软件触发激活 INVCTRL 寄存器同步。 软件触发不激活 OUTMASK 寄存器同步。 软件触发激活 OUTMASK 寄存器同步。 9 SWWRBUF MOD、CNTIN 和 CV 寄存器同步通过软件触发激活。 8 SWRSTCNT FTM 计数器同步通过软件触发激活。 7 SYNCMODE 同步模式 0 1 0 1 软件触发不激活 MOD、CNTIN 和 CV 寄存器同步。 软件触发激活 MOD、CNTIN 和 CV 寄存器同步。 软件触发不激活 FTM 计数器同步。 软件触发激活 FTM 计数器同步。 选择 PWM 同步模式。 0 1 选择传统 PWM 同步。 选择增强 PWM 同步。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 388 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_SYNCONF 字段描述 (继续) 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 6 保留 SWOCTRL 寄存器同步 5 SWOC 0 1 SWOCTRL 寄存器将在所有系统时钟的上升沿以其缓冲区的数值进行更新。 SWOCTRL 寄存器通过 PWM 同步以其缓冲区值进行更新。 4 INVC INVCTRL 寄存器同步 3 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 1 INVCTRL 寄存器将在所有系统时钟的上升沿以其缓冲区的数值进行更新。 INVCTRL 寄存器通过 PWM 同步以其缓冲区值进行更新。 CNTIN 寄存器同步 2 CNTINC 0 1 CNTIN 寄存器将在所有系统时钟的上升沿以其缓冲区的数值进行更新。 CNTIN 寄存器通过 PWM 同步以其缓冲区值进行更新。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 1 保留 0 硬件触发模式 HWTRIGMODE 0 检测到硬件触发 j 时(j = 0、1、2),FTM 清零 TRIGj 位。 1 检测到硬件触发 j 时(j = 0、1、2),FTM 不清零 TRIGj 位。 26.3.24 FTM 反相控制寄存器 (FTMx_INVCTRL) 该寄存器控制通道(n)输出何时变为通道(n+1)输出,以及通道(n+1)输出何时变为通 道(n)输出。每个 INVmEN 位使能针对相应通道对 m 的反相操作。 该寄存器具有写缓冲区。INVmEN 位通过 INVCTRL 寄存器同步进行更新。 地址: 基址 基准 + 90h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INV3EN INV2EN INV1EN INV0EN W 0 0 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 389 存储器映像和寄存器定义 FTMx_INVCTRL 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–4 保留 3 INV3EN 通道对 3 反相使能 2 INV2EN 通道对 2 反相使能 1 INV1EN 通道对 1 反相使能 0 INV0EN 通道对 0 反相使能 0 1 0 1 0 1 0 1 禁用反相。 使能反相。 禁用反相。 使能反相。 禁用反相。 使能反相。 禁用反相。 使能反相。 26.3.25 FTM 软件输出控制寄存器 (FTMx_SWOCTRL) 该寄存器使能通道(n)输出的软件控制,并定义强制进入通道(n)输出的数值: • CHnOC 位通过软件使能对应通道(n)输出的控制。 • CHnOCV 位选择强制进入对应通道(n)输出的数值。 该寄存器具有写缓冲区。该字段通过 SWOCTRL 寄存器同步进行更新。 地址: 基址 基准 + 94h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R W CH7OCV CH6OCV CH5OCV CH4OCV CH3OCV CH2OCV CH1OCV CH0OCV CH7OC CH6OC CH5OC CH4OC CH3OC CH2OC CH1OC CH0OC W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 390 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_SWOCTRL 字段描述 字段 31–16 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 15 CH7OCV 通道 7 软件输出控制值 14 CH6OCV 通道 6 软件输出控制值 13 CH5OCV 通道 5 软件输出控制值 12 CH4OCV 通道 4 软件输出控制值 11 CH3OCV 通道 3 软件输出控制值 10 CH2OCV 通道 2 软件输出控制值 9 CH1OCV 通道 1 软件输出控制值 8 CH0OCV 通道 0 软件输出控制值 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 软件输出控制强制 0 进入通道输出。 软件输出控制强制 1 进入通道输出。 7 CH7OC 通道 7 软件输出控制使能 6 CH6OC 通道 6 软件输出控制使能 5 CH5OC 通道 5 软件输出控制使能 4 CH4OC 通道 4 软件输出控制使能 0 1 0 1 0 1 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 391 存储器映像和寄存器定义 FTMx_SWOCTRL 字段描述 (继续) 字段 描述 0 1 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 3 CH3OC 通道 3 软件输出控制使能 2 CH2OC 通道 2 软件输出控制使能 1 CH1OC 通道 1 软件输出控制使能 0 CH0OC 通道 0 软件输出控制使能 0 1 0 1 0 1 0 1 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 通道输出不受软件输出控制的影响。 通道输出受软件输出控制的影响。 26.3.26 FTM PWM 加载寄存器 (FTMx_PWMLOAD) 当 FTM 计数器从 MOD 寄存器值变更至其下一个值,或者发生通道(j)匹配时,使能 MOD、CNTIN、C(n)V 和 C(n+1)V 寄存器的加载,数值为它们写入缓冲区数值。当 FTM 计数器 = C(j)V 时,通道(j)发生匹配。 地址: 基址 基准 + 98h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CH7SEL CH6SEL CH5SEL CH4SEL CH3SEL CH2SEL CH1SEL CH0SEL W 0 0 0 0 0 0 0 0 0 LDOK 0 R W 复位 0 0 0 0 0 0 0 FTMx_PWMLOAD 字段描述 字段 31–10 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 392 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTMx_PWMLOAD 字段描述 (继续) 字段 9 LDOK 描述 加载使能 使能 MOD、CNTIN 和 CV 寄存器的加载,数值为它们的写缓冲区内容。 0 1 8 保留 禁用更新值加载。 使能更新值加载。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 7 CH7SEL 通道 7 选择 6 CH6SEL 通道 6 选择 5 CH5SEL 通道 5 选择 4 CH4SEL 通道 4 选择 3 CH3SEL 通道 3 选择 2 CH2SEL 通道 2 选择 1 CH1SEL 通道 1 选择 0 CH0SEL 通道 0 选择 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 匹配过程中不包括通道。 匹配过程中包括通道。 26.4 功能说明 下图展示了本文档中用来表示计数器和信号生成的各种用法。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 393 功能说明 FTM计数为向上计数。 通道(n)处于高真 EPWM模式。 PS[2:0] = 001 CNTIN = 0x0000 MOD = 0x0004 CnV = 0x0002 预分频器计数器 FTM计数器 1 0 1 0 3 1 0 4 1 0 0 1 1 0 2 1 0 3 1 0 1 0 4 1 0 0 1 1 0 0 2 1 3 1 0 0 4 1 0 1 0 1 1 0 2 通道(n)输出 计数器 溢出 计数器 溢出 通道(n) 匹配 通道(n) 匹配 计数器 溢出 通道(n) 匹配 图 26-2. 所用的用法 26.4.1 时钟源 FTM 只有一个时钟域:系统时钟。 26.4.1.1 计数器时钟源 SC 寄存器中的 CLKS[1:0]位可以从三种可能的时钟源中为 FTM 计数器选择一种, 或者禁用 FTM 计数器。发生任意 MCU 复位后,CLKS[1:0] = 0:0,这意味着未选择 任何时钟源。 可在任意时间对 CLKS[1:0]位进行读取或写入操作。通过向 CLKS[1:0]位写入 0:0 禁用 FTM 计数器不会影响 FTM 计数器值或其他寄存器。 固定频率时钟 ICSFFCLK 是一种可以用于 FTM 计数器的备选时钟源,允许在系统 时钟或外部时钟以外另选一种时钟源。这种时钟输入源集成在芯片内部。有关更多 信息,请参见具体的芯片文档。由于 FTM 硬件的实施限制,固定频率时钟的频率 不得超过系统时钟频率的 1/2。 外部时钟会经过一个由系统时钟计时的同步器,以确保计数器转换与系统时钟转换 恰当的同步。因此,为符合奈奎斯特准则,并考虑到时钟抖动,外部时钟源的频率 不得超过系统时钟频率的 1/4。 KEA128 子系列参考手册, Rev. 2, July 2014 394 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.2 预分频器 所选的计数器时钟源会经过一个预分频器,该预分频器是一个 7 位计数器。由 PS[2:0]位选择预分频器的值。下图给出了预分频器计数器和 FTM 计数器的示例。 FTM计数为向上计数。 PS[2:0] = 001 CNTIN = 0x0000 MOD = 0x0003 选择的输入时钟 预分频器计数器 1 FTM计数器 0 0 1 1 0 1 2 0 1 3 0 1 0 0 1 1 0 1 0 2 1 3 0 1 0 0 1 图 26-3. 预分频器计数器示例 26.4.3 计数器寄存器 FTM 有一个 16 位计数器,通道可以选择用于输入或输出模式。FTM 计数器时钟是 由选定的输入时钟经过预分频得到的。 FTM 计时器有这些工作模式: • 向上计数 • 向上-向下计数 26.4.3.1 向上计数 在以下情形中会选择向上计数: • CPWMS = 0 CNTIN 定义计数的起始值,MOD 定义计数的最终值,参见下图。CNTIN 的值加载 到 FTM 计数器中,计数器的值递增,直至达到 MOD 的值,此时计数器将重新加载 CNTIN 的值。 采用向上计数时的 FTM 周期为(MOD – CNTIN + 0x0001) × FTM 计数器时钟的周 期。 FTM 计数器从 MOD 变为 CNTIN 时,TOF 位将置位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 395 功能说明 FTM计数为向上计数。 CNTIN = 0xFFFC(在二的补码中等于-4) MOD = 0x0004 FTM计数器(采用十进制值) 4 -4 -3 -2 -1 0 1 2 3 4 -4 -3 -2 -1 0 1 2 3 4 -4 -3 TOF位 TOF位置位 TOF位置位 TOF位置位 FTM计数器时钟的周期 计数周期 = (MOD - CNTIN + 0x0001) x FTM计数器时钟的周期 图 26-4. FTM 向上有符号计数示例 表 26-4. 基于 CNTIN 值的 FTM 计 数 满足条件 结果 CNTIN = 0x0000 FTM 计数与 TPM 向上计数等效,即向上无符号计数。参见下 图。 CNTIN[15] = 1 FTM 计数器的初始值是一个二补码负数,因此 FTM 计数为向上 有符号计数。 CNTIN[15] = 0 且 CNTIN ≠ 0x0000 FTM 计数器的初始值是一个正数,因此 FTM 计数为向上无符号 计数。 KEA128 子系列参考手册, Rev. 2, July 2014 396 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计 数 为向上计 数 CNTIN = 0x0000 MOD = 0x0004 FTM计数器 3 0 4 1 2 3 4 0 1 2 3 0 4 1 2 TOF位 TOF位 置位 TOF位 置位 TOF位 置位 FTM计数器时钟的周期 计数周期 = (MOD - CNTIN + 0x0001) x FTM计数器时钟的周期 = (MOD + 0x0001) x FTM计数器时钟的周期 图 26-5. CNTIN = 0x0000 时的 FTM 向上计数示例 注 • 无论是无符号计数还是有符号计数,FTM 工作只有在 CNTIN 寄存器的值小于 MOD 寄存器的值时才有效。 软件负责确保 CNTIN 和 MOD 寄存器中的值满足此要 求。CNTIN 和 MOD 如有任何不满足此要求的值,将导 致意外现象发生。 • MOD = CNTIN 是一个冗余条件。这种情况下,FTM 计 数器始终等于 MOD,将在 FTM 计数器时钟的每一个上 升沿置位 TOF 位。 • MOD = 0x0000、CNTIN = 0x0000(例如,复位后)且 FTMEN = 1 时,FTM 计数器将在 0x0000 保持停止,直 到向 MOD 或 CNTIN 寄存器中写入非零值。 • 不建议将 CNTIN 设置为大于 MOD 的值,因为这种非寻 常设置可能导致 FTM 的操作难以理解。然而,对于这 种配置没有任何限制,下图给出了示例。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 397 功能说明 FTM计数为向上计数 MOD = 0x0005 CNTIN = 0x0015 CNTIN加载 CNTIN加载 FTM计数器 0x0005 0x0015 0x0016 ... 0xFFFE 0xFFFF 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0015 0x0016 ... ... TOF位 TOF位置位 TOF位置位 图 26-6. CNTIN 值大于 MOD 值时的向上计数示例 26.4.3.2 向上-向下计数 在以下情形中会选择自上而下计数: • CPWMS = 1 CNTIN 定义计数的起始值,MOD 定义计数的最终值。CNTIN 的值加载到 FTM 计 数器中,计数器的值一直增加,直至达到 MOD 的值,紧接着计数器的值一直减少, 直至回到 CNTIN 的值,然后计数器将重新开始自上而下计数。 采用向上-向下计数时的 FTM 周期为 2 × (MOD – CNTIN) × FTM 计数器时钟的周 期。 FTM 计数器从 MOD 更改为(MOD – 1)时,TOF 位将被置位。 如果(CNTIN = 0x0000),FTM 计数与 TPM 向上-向下计数等效,即无符号向上-向下 计数。参见下图。 KEA128 子系列参考手册, Rev. 2, July 2014 398 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计 数 为向上-向 下计数 CNTIN = 0x0000 MOD = 0x0004 0 FTM计 数器 1 2 3 4 3 2 1 0 1 2 3 4 3 2 1 0 1 2 3 4 TOF位 TOF位 置位 FTM计 数器时 钟的 周 期 TOF位 置位 计数周期 = 2 x (MOD - CNTIN) x FTM计数器时钟的周期 = 2 x MOD x FTM计数器时钟的周期 图 26-7. CNTIN = 0x0000 时的向上-向下计数示例 注 当 CNTIN 在向上-向下计数中为非零时,将会生成有效的 CPWM 信号: • 如果 CnV > CNTIN,或者 • 如果 CnV = 0 或 CnV[15] = 1。在此情况下,将生成 0% CPWM。 26.4.3.3 自由运行计数器 如果(FTMEN = 0)且(MOD = 0x0000 或 MOD = 0xFFFF),则 FTM 计数器为自由运 行计数器。这种情况下,FTM 计数器从 0x0000 到 0xFFFF 自由运行,并且当 FTM 计数器从 0xFFFF 更改为 0x0000 时,TOF 位将置位。参见下图。 FTMEN = 0 MOD = 0x0000 FTM计 数器 ... 0x0003 0x0004 ... 0xFFFE 0xFFFF 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 ... TOF位 TOF置位 图 26-8. FTM 计数器自由运行时的示例 FTM 计数器在以下情形中也是自由运行计数器 : • FTMEN = 1 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 399 功能说明 • CPWMS = 0 • CNTIN = 0x0000,且 • MOD = 0xFFFF 26.4.3.4 计数器复位 以下任一情形都会导致 FTM 计数器复位为 CNTIN 寄存器中的值,并且通道输出重 置为其初始值,但处于输出比较模式的通道例外。 • 对 CNT 采取的任何写入操作。 • FTM 计数器同步 。 26.4.3.5 TOF 置位时 NUMTOF[4:0]位定义了 TOF 置位之前 FTM 计数器溢出应该发生的次数。如果 NUMTOF[4:0] = 0x00,则在每次 FTM 计数器溢出时置位 TOF 位。 对 NUMTOF[4:0]位采取写入操作之后,再通过对 FTM 计数器的 CNT 进行写入操作 来初始化 FTM 计数器,这样可避免混淆何时发生第一次计数器溢出。 FTM计 数 器 NUMTOF[4:0] TOF计数器 0x02 0x01 0x02 0x00 0x01 0x02 0x00 0x01 0x02 TOF位置位 图 26-9. NUMTOF = 0x02 条件下的周期性 TOF FTM计 数 器 NUMTOF[4:0] 0x00 TOF计数器 0x00 TOF位置位 图 26-10. NUMTOF = 0x00 条件下的周期性 TOF KEA128 子系列参考手册, Rev. 2, July 2014 400 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.4 输入捕捉模式 在以下情形中会选择输入捕捉模式: • • • • • DECAPEN = 0 COMBINE = 0 CPWMS = 0 MSnB:MSnA = 0:0,且 ELSnB:ELSnA ≠ 0:0 通道输入中发生所选边沿时,FTM 计数器的当前值将会捕捉到 CnV 寄存器中,同 时还会将 CHnF 位置位并生成通道中断(如果已通过 CHnIE = 1 使能)。参见下图。 如果某个通道已配置为输入捕捉模式,则 FTMxCHn 引脚为边沿触发的输入。 ELSnB:ELSnA 控制位可确定是哪个边沿(上升沿或下降沿)触发输入捕捉事件。注 意,可以被正确检测到输入信号的最大频率为系统时钟的四分之一,这是满足信号 采样的奈奎斯特准则所必需的条件。 在输入捕捉模式下,将忽略对 CnV 寄存器采取的写入操作。 在 Debug 模式下,输入捕捉功能按配置正常工作。发生所选边沿事件时,因调试而 冻结的 FTM 计数器值将捕捉到 CnV 寄存器中,并且CHnF 位会置位。 是否已选择上升沿? 已使能? 滤波器是否 同步器 通道(n)输入 系统时钟 DQ 0 上升沿 0 CLK 滤波器* 1 通道(n)中断 CHnIE CHnF 1 边沿 检测器 DQ CLK 0 CnV 1 下降沿 0 0 是否已选择下降沿? * 滤波功能只可用于通道0、1、2和3的输入 FTM计数器 图 26-11. 输入捕捉模式 如果通道输入中没有使能滤波器,则输入信号总是会被延迟 3 个系统时钟的上升沿, 也就是说两个上升沿到同步器,再加一个上升沿到边沿检测器。换言之,将在通道 输入中发生有效边沿后,CHnF 位在系统时钟的第三个上升沿上置位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 401 功能说明 26.4.4.1 输入捕捉模式的滤波器 滤波器功能只可用于通道 0、1、2 和 3。 首先,由系统时钟同步输入信号。同步之后,输入信号进入滤波器区块。参见下图。 CHnFVAL[3:0] 用于控制 滤波器计数器的逻辑 同步器之后的 通道(n)输入 滤波器计数器 除以4 用于定义 滤波器输出的逻辑 S Q 滤波器输出 C CLK 系统时钟 图 26-12. 通道输入滤波器 当输入信号中发生状态更改时,计数器将复位并开始向上计数。只要新状态在输入 端保持稳定,计数器就会继续增加数值。当计数器等于 CHnFVAL[3:0]时,输入信 号的状态更改得以验证。然后就会作为脉冲边沿发送到边沿检测器。 如果在得以验证之前相对边沿出现在输入信号上,计数器就会复位。下一次输入转 换时,计数器再次开始计数。任何比 CHnFVAL[3:0](x 4 个系统时钟)所选的最小 值短的脉冲都会被认作是毛刺,不会传递到边沿检测器上。下图为输入滤波器的时 序图。 CHnFVAL[3:0]位为零时,将禁用滤波器功能。这种情况下,输入信号将按系统时钟 的 3 个上升沿延迟。如果(CHnFVAL[3:0] ≠ 0000),则输入信号按最小脉宽 (CHnFVAL[3:0] × 4 个系统时钟)延迟,外加系统时钟的 4 个上升沿:两个上升沿 到同步器,一个上升沿到滤波器输出,另外一个到边沿检测器。换言之,有效边沿 出现在通道输入端之后,CHnF 将在(4+4xCHnFVAL[3:0])个系统时钟周期后被置位。 通道输入滤波器中计数器的时钟是系统时钟的 4 分频。 系统时钟除以4 同步器之后的 通道(n)输入 计数器 CHnFVAL[3:0] = 0010 (二进制的值) 时间 滤波器输出 图 26-13. 通道输入滤波器示例 KEA128 子系列参考手册, Rev. 2, July 2014 402 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.5 输出比较模式 在以下情形中会选择输出比较模式: • • • • DECAPEN = 0 COMBINE = 0 CPWMS = 0,且 MSnB:MSnA = 0:1 在输出比较模式下,FTM 可生成具有可编程位置、极性、持续时间和频率的定时脉 冲。当计数器与某个输出比较通道的 CnV 寄存器中的值匹配时,可以设置、清除或 翻转通道(n)输出。 当某个通道初次配置为翻转模式时,将保持通道输出先前的值,直到发生第一个输 出比较事件。 通道(n)匹配(FTM 计数器 = CnV)时,CHnF 位将置位并生成通道(n)中断(条件是 CHnIE = 1)。 MOD = 0x0005 CnV = 0x0003 通道(n) 匹配 计数器 溢出 CNT ... 2 1 0 通道(n) 匹配 计数器 溢出 4 3 5 1 0 2 计数器 溢出 4 3 5 1 0 ... 先前值 通道(n)输出 CHnF位 先前值 TOF位 图 26-14. 匹配翻转通道输出时的输出比较模式示例 MOD = 0x0005 CnV = 0x0003 CNT ... 通道(n)输出 CHnF位 0 计数器 溢出 通道(n) 匹配 计数器 溢出 1 2 3 4 5 0 计数器 溢出 通道(n) 匹配 1 2 3 4 5 0 1 ... 先前值 先前值 TOF位 图 26-15. 匹配清空通道输出时的输出比较模式示例 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 403 功能说明 MOD = 0x0005 CnV = 0x0003 通道(n) 匹配 计数器 溢出 CNT 通道( n) 输出 CHnF位 ... 0 1 2 3 计数器 溢出 4 5 0 通道(n) 匹配 1 2 3 计数器 溢出 4 5 0 1 ... 先前值 先前值 TOF位 图 26-16. 匹配置位通道输出时的输出比较模式示例 如果计数器达到 CnV 寄存器中的值时满足(ELSnB:ELSnA = 0:0)条件,则 CHnF 位 置位并生成通道(n)中断(如果 CHnIE = 1),但是,通道(n)输出不由 FTM 修改和控 制。 26.4.6 边沿对齐 PWM (EPWM)模式 在以下情形中会选择边沿对齐模式: • • • • DECAPEN = 0 COMBINE = 0 CPWMS = 0,以及 MSnB = 1 EPWM 周期取决于(MOD − CNTIN + 0x0001),脉宽(占空比)取决于(CnV −CNTIN)。 通道(n)匹配(FTM 计数器 = CnV)(即脉宽结束)时,CHnF 位将置位并生成通道 (n)中断(条件是 CHnIE = 1)。 这种类型的 PWM 信号称为边沿对齐,因为所有 PWM 信号的前沿都与周期的开始 对齐,这对 FTM 内的所有通道都一样。 计数器溢出 计数器溢出 计数器溢出 周期 脉 宽 通道(n)输出 通道(n)匹配 通道(n)匹配 通道(n)匹配 图 26-17. ELSnB:ELSnA = 1:0 条件下的 EPWM 周期和脉宽 如果计数器达到 CnV 寄存器中的值时满足(ELSnB:ELSnA = 0:0)条件,则 CHnF 位 置位并生成通道(n)中断(如果 CHnIE = 1),但是,通道(n)输出不由 FTM 控制。 KEA128 子系列参考手册, Rev. 2, July 2014 404 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 如果(ELSnB:ELSnA = 1:0),那么,通道(n)输出会在 CNTIN 寄存器值加载到 FTM 计数器时强制为高电平,在通道(n)匹配(FTM 计数器 = CnV)的情况下强制为低电 平。参见下图。 MOD = 0x0008 CnV = 0x0005 计数器 溢出 CNT ... 通道(n) 匹配 0 1 2 3 4 5 计数器 溢出 6 7 8 0 1 2 ... 通道(n)输出 先前值 CHnF位 TOF位 图 26-18. ELSnB:ELSnA = 1:0 条件下的 EPWM 信号 如果(ELSnB:ELSnA = X:1),那么,通道(n)输出会在 CNTIN 寄存器值加载到 FTM 计数器时强制为低电平,在通道(n)匹配(FTM 计数器 = CnV)的情况下强制为高电 平。参见下图。 MOD = 0x0008 CnV = 0x0005 计数器 溢出 CNT ... 0 通道(n) 匹配 1 2 3 4 5 计数器 溢出 6 7 8 0 1 2 ... 通道(n)输出 CHnF位 先前值 TOF位 图 26-19. ELSnB:ELSnA = X:1 条件下的 EPWM 信号 如果(CnV = 0x0000),则通道(n)输出为 0%占空比 EPWM 信号,而且 CHnF 位不置 位,即便存在通道(n)匹配也依然如此。如果(CnV > MOD),则通道(n)输出为 100% 占空比 EPWM 信号,而且 CHnF 位不置位,即便存在通道(n)匹配也依然如此。因 此,要获得 100%占空比 EPWM 信号,MOD 必须小于 0xFFFF。 注 当 CNTIN 为非零时,将生成以下 EPWM 信号: • 0% EPWM 信号(如果 CnV = CNTIN) • 0%至 100%之间的 EPWM 信号(如果 CNTIN < CnV <= MOD) • 100% EPWM 信号(如果 CNTIN > CnV 或 CnV > MOD)。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 405 功能说明 26.4.7 中心对齐 PWM (CPWM)模式 在以下情形中会选择中心对齐模式: • DECAPEN = 0 • COMBINE = 0,且 • CPWMS = 1 CPWM 脉宽(占空比)取决于 2 × (CnV − CNTIN),周期取决于 2 × (MOD − CNTIN)。参见下图。MOD 必须保持在 0x0001 到 0x7FFF 范围内,因为此范围以外 的值会产生不明确的结果。 在 CPWM 模式下,FTM 计数器在达到 MOD 之前会一直向上计数,然后一直向下 计数,直至达到 CNTIN。 当 FTM 向下计数(脉宽开始)和 FTM 向上计数(脉宽结束)时,会在通道(n)匹配 (FTM 计数器 = CnV)情况下置位 CHnF 位并生成通道(n)中断。 这种类型的 PWM 信号称为中心对齐,因为所有通道的脉宽中心都与 CNTIN 的值对 齐。 其他通道模式与自上而下的计数器不兼容(CPWMS = 1)。因此,当(CPWMS = 1)时, 必须在 CPWM 模式下使用所有 FTM 通道。 FTM计数器 = CNTIN 计数器溢出 FTM计数器 = MOD 通道(n)匹配 (FTM计数 是向下的) 通道(n)匹配h (FTM计数 是向上的) 计数器溢出 FTM计数器 = MOD 通道(n)输出 脉宽 2 x (CnV - CNTIN) 周期 2 x (MOD - CNTINCNTIN) 图 26-20. ELSnB:ELSnA = 1:0 条件下的 CPWM 周期和脉宽 如果 FTM 计数器达到 CnV 寄存器中的值时满足(ELSnB:ELSnA = 0:0)条件,则 CHnF 位置位并生成通道(n)中断(如果 CHnIE = 1),但是,通道(n)输出不由 FTM 控制。 如果(ELSnB:ELSnA = 1:0),那么,通道(n)输出会在向下计数时与通道(n)匹配(FTM 计数器 = CnV)的情况下强制为高电平,在向上计数时与通道(n)匹配的情况下强制 为低电平。参见下图。 KEA128 子系列参考手册, Rev. 2, July 2014 406 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 计数器 溢出 MOD = 0x0008 CnV = 0x0005 CNT ... 7 8 向下计数中的 通道(n)匹配 7 6 5 4 计数器 溢出 向上计数中的 通道(n)匹配 3 2 1 0 1 2 3 4 5 6 7 8 7 向下计数中的 通道(n)匹配 6 5 ... 通道(n)输出 CHnF位 先前值 TOF位 图 26-21. ELSnB:ELSnA = 1:0 条件下的 CPWM 信号 如果(ELSnB:ELSnA = X:1),那么,通道(n)输出会在向下计数时与通道(n)匹配(FTM 计数器 = CnV)的情况下强制为低电平,在向上计数时与通道(n)匹配的情况下强制 为高电平。参见下图。 计数器 溢出 计数器 溢出 MOD = 0x0008 CnV = 0x0005 向下计数中的 通道(n)匹配 CNT ... 7 8 7 6 5 4 向上计数中的 通道(n)匹配 3 2 1 0 1 2 3 4 5 向下计数中的 通道(n)匹配 6 7 8 7 6 5 ... 通道(n)输出 CHnF位 先前值 TOF位 图 26-22. ELSnB:ELSnA = X:1 条件下的 CPWM 信号 如果(CnV = 0x0000)或 CnV 为负值,即(CnV[15] = 1),则通道(n)输出为 0%占空因 数 CPWM 信号,而且 CHnF 位不置位,即便存在通道(n)匹配也依然如此。 如果 CnV 为正值,即(CnV[15] = 0)、(CnV ≥ MOD)且(MOD ≠ 0x0000),则通道(n)输 出为 100%占空因数的 CPWM 信号,而且 CHnF 位不置位,即便存在通道(n)匹配也 依然如此。这就意味着,MOD 设置的周期可用范围是 0x0001 到 0x7FFE,如果不 需要生成 100%占空因数 CPWM 信号,则为 0x7FFF。这并非一项重大限制,因为 生成的周期比正常应用所需的周期要长得多。 FTM 计数器为自由运行计数器时,不得使用 CPWM 模式。 26.4.8 组合模式 在以下情形中会选择组合模式: • DECAPEN = 0 • COMBINE = 1,且 • CPWMS = 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 407 功能说明 在组合模式下,一个偶数通道(n)和相邻的奇数通道(n+1)组合起来生成一个 PWM 信 号供通道(n)输出。 在组合模式下,PWM 周期取决于(MOD − CNTIN + 0x0001),PWM 脉宽(占空比) 取决于(|C(n+1)V − C(n)V|)。 通道(n)匹配(FTM 计数器 = C(n)V)时,CHnF 位将置位并生成通道(n)中断(条件 是 CHnIE = 1)。通道(n+1)匹配(FTM 计数器 = C(n+1)V)时,CH(n+1)F 位将置位 并生成通道(n+1)中断(条件是 CH(n+1)IE = 1)。 如果(ELSnB:ELSnA = 1:0),则在周期开始(FTM 计数器 = CNTIN)、通道(n+1)匹配 (FTM 计数器 = C(n+1)V)时强制通道(n)输出为低电平。在通道(n)匹配(FTM 计数 器 = C(n)V)时强制为高电平。参见下图。 如果(ELSnB:ELSnA = X:1),则在周期开始(FTM 计数器 = CNTIN)、通道(n+1)匹 配(FTM 计数器 = C(n+1)V)时强制通道(n)输出为高电平。在通道(n)匹配(FTM 计数器 = C(n)V)时强制为低电平。参见下图。 在组合模式下,生成通道(n)和(n+1)输出时不使用 ELS(n+1)B 和 ELS(n+1)A位。但 是,如果(ELSnB:ELSnA = 0:0),则通道(n)输出不由 FTM 控制;如果(ELS(n +1)B:ELS(n+1)A = 0:0),则通道(n+1)输出不由 FTM 控制。 通道(n+1)匹配 FTM计数器 通道(n)匹配 通道(n)输出 ELSnB:ELSnA = 1:0的情况下 通道(n)输出 ELSnB:ELSnA = X:1的情况下 图 26-23. 组合模式 下图展示了利用组合模式生成 PWM 信号的过程。 KEA128 子系列参考手册, Rev. 2, July 2014 408 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计 数 器 MOD C(n+1)V C(n)V CNTIN 通 道( n) 输出 ELSnB: EL Sn A = 1: 0的情 况下 通 道( n) 输出 ELSnB: EL Sn A = X: 1的情 况下 图 26-24. (CNTIN < C(n)V < MOD)、(CNTIN < C(n+1)V < MOD)且(C(n)V < C(n+1)V)条件下的 通道(n)输出 FTM计 数 器 MOD = C(n+1)V C(n)V CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 图 26-25. (CNTIN < C(n)V < MOD)且(C(n+1)V = MOD)条件下的通道(n)输出 FTM计数器 MOD C(n+1)V C(n)V = CNTIN ELSnB:ELSnA = 1:0情况下的 通道(n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 图 26-26. (C(n)V = CNTIN)且(CNTIN < C(n+1)V < MOD)条件下的通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 409 功能说明 FTM计 数 器 MOD = C(n+1)V C(n)V CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 不完全 100% 占 空 因 数 不完全 0% 占空 因 数 图 26-27. (CNTIN < C(n)V < MOD)、 (C(n)V 约等于 CNTIN)且(C(n+1)V = MOD)条件下的通道 (n)输出 FTM计 数 器 MOD C(n+1)V C(n)V = CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 不完全 100% 占 空 因 数 不完全0%占空因数 图 26-28. (C(n)V = CNTIN)、(CNTIN < C(n+1)V < MOD)且(C(n+1)V 约等于 MOD)条件下的 通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 410 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计 数器 C(n+1)V MOD CNTIN C(n)V ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 0%占 空因数 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 100%占 空因数 图 26-29. C(n)V 和 C(n+1)V 不在 CNTIN 和 MOD 之间条件下的通道(n)输出 FTM计 数 器 MOD C(n+1)V = C(n)V CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 0%占 空因数 100%占空因数 图 26-30. (CNTIN < C(n)V < MOD)、(CNTIN < C(n+1)V < MOD)且(C(n)V = C(n+1)V)条件下的 通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 411 功能说明 FTM计数器 MOD C(n)V = C(n+1)V = CNTIN ELSnB:ELSnA = 1:0情况下的 通道(n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 0%占空因数 100%占空因数 图 26-31. (C(n)V = C(n+1)V = CNTIN)条件下的通道(n)输出 MOD = C(n+1)V = C(n)V FTM计数器 CNTIN ELSnB:ELSnA = 1:0情况下的 通道(n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 0%占空因数 100%占空因数 图 26-32. (C(n)V = C(n+1)V = MOD)条件下的通道(n)输出 FTM计 数器 MOD C(n)V C(n+1)V CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 0%占 空因数 ELSnB: ELSnA= X: 1情况下的 通道 (n)输出 100%占空因数 通道( n) 匹配 已 忽略 图 26-33. (CNTIN < C(n)V < MOD)、(CNTIN < C(n+1)V < MOD)且(C(n)V > C(n+1)V)条件下的 通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 412 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计 数器 MOD C(n+1)V CNTIN C(n)V ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 0%占空因数 100%占空因数 图 26-34. (C(n)V < CNTIN)且(CNTIN < C(n+1)V < MOD)条件下的通道(n)输出 FTM计数器 MOD C(n)V CNTIN C(n+1)V ELSnB:ELSnA = 1:0情况下的 通道(n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 图 26-35. (C(n+1)V < CNTIN)且(CNTIN < C(n)V < MOD)条件下的通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 413 功能说明 FTM计 数器 C(n)V MOD C(n+1)V CNTIN ELSnB: ELSnA= 1: 0情况下的 通道 (n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 0%占空因数 100%占 空因数 图 26-36. (C(n)V > MOD)且(CNTIN < C(n+1)V < MOD)条件下的通道(n)输出 FTM计数器 C(n+1)V MOD C(n)V CNTIN ELSnB:ELSnA = 1:0情况下的 通道(n)输出 ELSnB:ELSnA = X:1情况下的 通道(n)输出 图 26-37. (C(n+1)V > MOD)且(CNTIN < C(n)V < MOD)条件下的通道(n)输出 KEA128 子系列参考手册, Rev. 2, July 2014 414 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计数器 C(n+1)V MOD = C(n)V CNTIN ELSnB:ELSnA = 1:0情况下的 通道(n)输出 不完全0%占空因数 ELSnB:ELSnA = X:1情况下的 通道(n)输出 不完全100%占空因数 图 26-38. (C(n+1)V > MOD)且(CNTIN < C(n)V = MOD)条件下的通道(n)输出 26.4.8.1 不对称 PWM 在组合模式下,通道 n 发生匹配(即 FTM 计数器 = C(n)V)控制 PWM 信号的第一 边沿,通道 n+1 发生匹配(即 FTM 计数器 = C(n+1)V)控制 PWM 信号的第二边 沿,两者无关。因此,组合模式允许生成不对称的 PWM 信号。 26.4.9 互补模式 选择互补模式的配置如下: • DECAPEN = 0 • COMP = 1 在互补模式下,通道(n+1)输出与通道(n)输出电平相反。 通道(n+1)输出与通道(n)输出相同的配置如下: • DECAPEN = 0 • COMP = 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 415 功能说明 通道(n+1)匹配 FTM计数器 通道(n)匹配 ELSnB:ELSnA = 1:0情况下的 通道(n)输出 COMP = 0情况下的 通道(n+1)输出 COMP = 1情况下的 通道(n+1)输出 图 26-39. (ELSnB:ELSnA = 1:0)条件下互补模式中的通道(n+1)输出 通道(n+1)匹配 FTM计数器 通道(n)匹配 ELSnB:ELSnA = X:1情况下的 通道(n)输出 COMP = 0情况下的 通道(n+1)输出 COMP = 1情况下的 通道(n+1)输出 图 26-40. (ELSnB:ELSnA = X:1)条件下互补模式中的通道(n+1)输出 注 互补模式不可用于输出比较模式。 26.4.10 通过写缓存更新的寄存器 26.4.10.1 CNTIN 寄存器更新 下表介绍了何时更新 CNTIN 寄存器: 表 26-5. CNTIN 寄存器更新 满足条件 CLKS[1:0] = 0:0 然后更新 CNTIN 寄存器 对 CNTIN 寄存器采取写入操作时,与 FTMEN 位无关。 • FTMEN = 0,或 • CNTINC = 0 对 CNTIN 采取写入操作之后的下一个系统时钟周期。 • FTMEN = 1, • SYNCMODE = 1,且 • CNTINC = 1 参考 CNTIN 寄存器同步 章节。 KEA128 子系列参考手册, Rev. 2, July 2014 416 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.10.2 MOD 寄存器更新 下表介绍了何时更新 MOD 寄存器: 表 26-6. MOD 寄存器更新 然后更新 MOD 寄存器 满足条件 CLKS[1:0] = 0:0 对 MOD 寄存器采取写入操作时,与 FTMEN 位无关。 • CLKS[1:0] ≠ 0:0,且 • FTMEN = 0 根据 CPWMS 位,也就是: • 如果选择的模式不是 CPWM,则 MOD 寄存器在对 MOD 寄存器采取写入操作 且 FTM 计数器从 MOD 更改为 CNTIN 之后更新。如果 FTM 计数器处于自由 运行计数器模式,则此更新在 FTM 计数器从 0xFFFF 更改为 0x0000 时发生。 • 如果选择的模式为 CPWM,则 MOD 寄存器在对 MOD 寄存器采取写入操作且 FTM 计数器从 MOD 更改为(MOD – 0x0001)之后更新。 • CLKS[1:0] ≠ 0:0,且 • FTMEN = 1 参考 MOD 寄存器同步 章节。 26.4.10.3 CnV 寄存器更新 下表介绍了何时更新 CnV 寄存器: 表 26-7. CnV 寄存器更新 然后更新 CnV 寄存器 满足条件 CLKS[1:0] = 0:0 对 CnV 寄存器采取写入操作时,与 FTMEN 位无关。 • CLKS[1:0] ≠ 0:0,且 • FTMEN = 0 根据选择的模式,即: • CLKS[1:0] ≠ 0:0,且 • FTMEN = 1 根据选择的模式,即: • 如果选择的模式为输出比较,则 CnV 寄存器在下一次 FTM 计数器更改、预分 频器计数结束时、对 CnV 寄存器采取写入操作之后更新。 • 如果选择的模式为 EPWM,则 CnV 寄存器在对 CnV 寄存器采取写入操作且 FTM 计数器从 MOD 更改为 CNTIN 之后更新。如果 FTM 计数器处于自由运 行计数器模式,则此更新在 FTM 计数器从 0xFFFF 更改为 0x0000 时发生。 • 如果选择的模式为 CPWM,则 CnV 寄存器在对 CnV 寄存器采取写入操作且 FTM 计数器从 MOD 更改为(MOD – 0x0001)之后更新。 • 如果选择的模式为输出比较,则 CnV 寄存器根据 SYNCEN 位更新。如果 (SYNCEN = 0),则在下一次更改 FTM 计数器、预分频器计数结束时对 CnV 寄 存器采取写入操作。如果(SYNCEN = 1),则根据 C(n)V 和 C(n+1)V 寄存器同 步 更新 CnV 寄存器。 • 如果选择的模式不是输出比较且(SYNCEN = 1),则根据 C(n)V 和 C(n+1)V 寄 存器同步 更新 CnV 寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 417 功能说明 26.4.11 PWM 同步 通过 PWM 同步将有机会以 MOD、CNTIN、CnV、OUTMASK、INVCTRL 和 SWOCTRL 寄存器各自的缓存值对这些寄存器进行更新,并强制 FTM 计数器为 CNTIN 寄存器值。 注 传统 PWM 同步(SYNCMODE = 0)是增强型 PWM 同步 (SYNCMODE = 1)的子集。因此,只能使用增强型 PWM 同 步。 26.4.11.1 硬件触发 TRIGn = 1(其中 n = 0、1 或 2,各自对应于每一个输入信号)时,将使能 FTM 模 块的三个硬件触发信号输入。硬件触发输入 n 由系统时钟同步。在使能的硬件触发 输入上检测到上升沿时,将启动采用硬件触发的 PWM 同步。 如果(HWTRIGMODE = 0),则当 0 被写入或者触发 n 事件被检测到时,对应的 TRIGn 会被清零。 这种情况下,如果使能了两个或更多硬件触发(例如,TRIG0 和 TRIG1 = 1),但只 发生了触发 1 事件,则只清零 TRIG1 位。如果在发生触发 n 事件的同时还通过写操 作使 TRIGn 位置位,则会启动同步,但 TRIGn 位仍会因写操作而保持置位。 系统时钟 将1写入TRIG0位 TRIG0位 trigger_0输入 按系统时钟同步的 trigger_0 触发0事件 注释 所有硬件触发输入都具有相同的行为方式。 图 26-41. HWTRIGMODE = 0 时的硬件触发事件 如果 HWTRIGMODE = 1,则 TRIGn 位只在向其写 0 的情况下清零。 KEA128 子系列参考手册, Rev. 2, July 2014 418 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 注 只有在采用增强型 PWM 同步的情况下(SYNCMODE = 1), 才能使 HWTRIGMODE 位为 1。 26.4.11.2 软件触发 向 SYNC[SWSYNC]位写入 1 时,将发生软件触发事件。向 SWSYNC 位写入 0 时即 清零此位,由软件事件启动的 PWM 同步完成时,也会清零此位。 如果在上一个软件触发事件发起的 PWM 同步结束的同时(通过向 SWSYNC 位再 次写入 1)再次发生软件触发事件,将开始新的 PWM 同步,且 SWSYNC 位保持等 于 1。 如果 SYNCMODE = 0,则 SWSYNC 位也会根据 PWMSYNC 和 REINIT 位由 FTM 清零。这种情况下,如果(PWMSYNC = 1)或(PWMSYNC = 0 且 REINIT = 0), SWSYNC 位将在软件触发事件发生后于所选的下一个加载点清零; 参见边界周期 和加载点 和下图。如果(PWMSYNC = 0)且(REINIT = 1),SWSYNC 位将在软件触发 事件发生时清零。 如果 SYNCMODE = 1,则 SWSYNC 位也会根据 SWRSTCNT 位由 FTM 清零。如果 SWRSTCNT = 0,SWSYNC 位将在软件触发事件发生后于所选的下一个加载点清 零; 参见下图。如果 SWRSTCNT = 1,SWSYNC 位将在软件触发事件发生时清零。 系统时钟 将1写入SWSYNC位 SWSYNC位 软件触发事件 PWM同步 选择的加载点 图 26-42. 软件触发事件 26.4.11.3 边界周期和加载点 边界周期定义对寄存器 MOD、CNTIN 和 C(n)V 的加载点很重要。 在向上计数 模式下,边界周期定义为计数器变为其初始值(CNTIN)的时候。如果是 在向上-向下计数 模式下,边界周期则定义为计数器从向下计数变为向上计数的时 候以及从向上计数变为向下计数的时候。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 419 功能说明 下表显示了寄存器的边界周期和加载点。在向上计数模式中,如果有一个 CNTMIN 或 CTMAX 位为 1,则使能加载点。在自上而下计数模式中,如图所示,由 CNTMIN 和 CNTMAX 位选择加载点。这些加载点对寄存器更新而言是一个安全之处,从而 可在 PWM 波形生成过程中实现顺畅的过渡。 在这两种计数模式中,如果 CNTMIN 和 CNTMAX 都不是 1,则边界周期不用作寄 存器更新的加载点。有关详细信息,请参见以下各节中的寄存器同步说明。 CNTMAX = 1或CNTMIN = 1条件下的加载点 CNT = MOD -> CNTIN 加计数模式 CNTMAX = 1条件下的加载点 CNT = (MOD - 0x0001) -> MOD 加-减计数模式 CNT = (CNTIN + 0x0001) -> CNTIN CNTMIN = 1条件下的加载点 图 26-43. 边界周期和加载点 26.4.11.4 MOD 寄存器同步 MOD 寄存器同步将以其缓存值对 MOD 寄存器进行更新。如果(FTMEN = 1),将使 能这种同步。 MOD 寄存器同步可通过增强型 PWM 同步(SYNCMODE = 1)或传统 PWM 同步 (SYNCMODE = 0)完成。但是,更希望只通过增强型 PWM 同步来同步 MOD 寄存 器。 采用增强型 PWM 同步时,依据下述流程图,MOD 寄存器同步取决于 SWWRBUF、 SWRSTCNT、HWWRBUF 和 HWRSTCNT 位: KEA128 子系列参考手册, Rev. 2, July 2014 420 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 开始 传统 PWM同步 SYNCMODE 位? =0 =1 MOD寄存器 由软件触发更新 增强型PWM同步 MOD寄存器 由硬件触发更新 SWWRBUF = 0 位? =1 HWWRBUF = 0 位? =1 结束 =0 SWSYNC 位? 软件 触发 0= TRIGn 位? 结束 硬件 触发 =1 =1 FTM计数器 由软件触发复位 SWRSTCNT 位? 等待硬件触发n =1 =0 等待下一个选择的 加载点 HWTRIGMODE 位? =1 =0 以其缓存值 更新MOD 以其缓存值 更新MOD 清除SWSYNC位 清除SWSYNC位 结束 结束 清除TRIGn位 FTM计数器 由硬件触发复位 0= HWRSTCNT 位? =1 等待下一个选择的 加载点 以其缓存值 更新MOD 以其缓存值 更新MOD 结束 结束 图 26-44. MOD 寄存器同步流程图 采用传统 PWM 同步时,依据下述说明,MOD 寄存器同步取决于 PWMSYNC 和 REINIT 位。 如果(SYNCMODE = 0)、(PWMSYNC = 0)且(REINIT = 0),则在发生所使能的触发 事件之后、在选择的下一个加载点进行此同步。如果触发事件为软件触发,则在选 择的下一个加载点清除 SWSYNC 位。如果触发事件为硬件触发,则根据硬件触发 清除触发器使能位(TRIGn)。以下为采用软件和硬件触发的示例。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 421 功能说明 系 统 时 钟 将1写入SWSYNC位 SWSYNC位 软件触发事件 选 择的 加载 点 MOD寄 存 器已更 新 图 26-45. (SYNCMODE = 0)、(PWMSYNC = 0)、(REINIT = 0)且使用软件触发时的 MOD 同步 系 统 时 钟 将1写入TRIG0位 TRIG0位 触发0事件 选 择的 加载 点 MOD寄 存 器已更 新 图 26-46. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(PWMSYNC = 0)、(REINIT = 0)且使用硬 件触发时的 MOD 同步 如果(SYNCMODE = 0)、(PWMSYNC = 0)且(REINIT = 1),则在下一次发生所使能 的触发事件时进行此同步。如果触发事件为软件触发,则根据以下示例清除 SWSYNC 位。如果触发事件为硬件触发,则根据硬件触发 清除 TRIGn 位。以下为 采用软件和硬件触发的示例。 系统 时钟 将1写入SWSYNC位 SWSYNC位 软件触发事件 MOD寄 存 器已更 新 图 26-47. (SYNCMODE = 0)、(PWMSYNC = 0)、(REINIT = 1)且使用软件触发时的 MOD 同步 KEA128 子系列参考手册, Rev. 2, July 2014 422 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 系统 时钟 将1写入TRIG0位 TRIG0位 触发0事件 MOD寄 存 器已更 新 图 26-48. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(PWMSYNC = 0)、(REINIT = 1)且使用硬 件触发时的 MOD 同步 如果(SYNCMODE = 0)且(PWMSYNC = 1),则在发生软件触发事件之后、在选择的 下一个加载点进行此同步。在选择的下一个加载点清除 SWSYNC 位: 系 统 时钟 将1写入SWSYNC位 SWSYNC位 软件触发事件 选 择的 加载 点 MOD寄 存 器已更 新 图 26-49. (SYNCMODE = 0)且(PWMSYNC = 1)时的 MOD 同步 26.4.11.5 CNTIN 寄存器同步 CNTIN 寄存器同步将以其缓存值对 CNTIN 寄存器进行更新。 如果(FTMEN = 1)、(SYNCMODE = 1)且(CNTINC = 1),将使能这种同步。只能通过 增强型 PWM 同步(SYNCMODE = 1)完成 CNTIN 寄存器同步。同步机制与通过增 强型 PWM 同步完成的 MOD 寄存器同步相同;参见 MOD 寄存器同步 。 26.4.11.6 C(n)V 和 C(n+1)V 寄存器同步 C(n)V 和 C(n+1)V 寄存器同步用其缓存值对 C(n)V 和 C(n+1)V 寄存器进行更新。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 423 功能说明 如果(FTMEN = 1)且(SYNCEN = 1),则会使能该同步。同步机制与 MOD 寄存器同 步 相同。但是,希望只通过增强型 PWM 同步(SYNCMODE = 1)完成 C(n)V 和 C(n +1)V 寄存器的同步。 26.4.11.7 OUTMASK 寄存器同步 OUTMASK 寄存器同步将以其缓存值对 OUTMASK 寄存器进行更新。 可通过增强型 PWM 同步(SYNCHOM = 1 且 SYNCMODE = 1)或传统 PWM 同步 (SYNCHOM = 1 且 SYNCMODE = 0)在系统时钟的每个上升沿更新 OUTMASK 寄 存器 OM(m):SYNCHOM = 0。但是,希望只通过增强型 PWM 同步来同步 OUTMASK 寄存器。 采用增强型 PWM 同步时,OUTMASK 寄存器同步取决于 SWOM 和 HWOM 位。参 见以下流程图: KEA128 子系列参考手册, Rev. 2, July 2014 424 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 开始 在系统时钟的每一个上升沿 更新OUTMASK寄存器 0= SYNCHOM 位? 通过PWM同步 更新OUTMASK寄存器 =1 1= 否 系统时钟的上升沿? = SYNCMODE 位? =0 传统 PWM同步 =是 以其缓存值 更新OUTMASK 结束 增强型PWM同步 OUTMASK由软件触发 更新 1= 0= SWSYNC 位? SWOM 位? 软件 触发 =0 结束 0= HWOM 位? 结束 OUTMASK由硬件触发 更新 =1 硬件 触发 =1 以其缓存值 更新OUTMASK 结束 TRIGn 位? =0 =1 等待硬件触发n 以其缓存值 更新OUTMASK HWTRIGMODE 位? =1 =0 清除TRIGn位 结束 图 26-50. OUTMASK 寄存器同步流程图 采用传统 PWM 同步时,依据下述说明,OUTMASK 寄存器同步取决于 PWMSYNC 位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 425 功能说明 如果(SYNCMODE = 0)、(SYNCHOM = 1)且(PWMSYNC = 0),则在下一次发生所使 能的触发事件时进行此同步。如果触发事件为软件触发,则在选择的下一个加载点 清除 SWSYNC 位。如果触发事件为硬件触发,则根据硬件触发 清除 TRIGn 位。以 下为采用软件和硬件触发的示例。 系统 时钟 将1写入SWSYNC位 SWSYNC位 软件触发事件 选 择的 加载 点 OUTMASK寄 存 器已更 新 SWSYNC位 已清 除 图 26-51. (SYNCMODE = 0)、(SYNCHOM = 1)、(PWMSYNC = 0)且使用软件触发时的 OUTMASK 同步 系统 时 钟 将1写入TRIG0位 TRIG0位 触发0事件 OUTMASK寄存器已更新, 且TRIG0位已清除 图 26-52. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(SYNCHOM = 1)、(PWMSYNC = 0)且使 用硬件触发时的 OUTMASK 同步 如果(SYNCMODE = 0)、(SYNCHOM = 1)且(PWMSYNC = 1),则在下一次发生所使 能的硬件触发事件时进行此同步。根据硬件触发 清除 TRIGn 位。以下是采用硬件 触发的示例。 KEA128 子系列参考手册, Rev. 2, July 2014 426 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 系 统 时钟 将1写入TRIG0位 TRIG0位 触发0事件 OUTMASK寄存器已更新, 且TRIG0位已清除 图 26-53. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(SYNCHOM = 1)、(PWMSYNC = 1)且使 用硬件触发时的 OUTMASK 同步 26.4.11.8 INVCTRL 寄存器同步 INVCTRL 寄存器同步将通过其缓存值对 INVCTRL 寄存器进行更新。 INVCTRL 寄存器可在系统时钟的每个上升沿(INVC = 0)更新,或者通过增强型 PWM 同步(INVC = 1 且 SYNCMODE = 1)根据以下流程图更新。 采用增强型 PWM 同步时,INVCTRL 寄存器同步取决于 SWINVC 和 HWINVC 位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 427 功能说明 开始 在系统时钟的每一个上升沿 更新INVCTRL寄存器 0= INVC 位? 通过PWM同步 更新INVCTRL寄存器 =1 1= 否系统时钟的上升沿? = SYNCMODE 位? =0 结束 =是 以其缓存值 更新INVCTRL 结束 增强型PWM同步 INVCTRL由软件触发 更新 1= 0= SWSYNC 位? SWINVC 位? 软件 触发 =0 结束 0= HWINVC 位? 结束 =1 以其缓存值 更新INVCTRL 结束 INVCTRL由硬件触发 更新 =1 硬件 触发 TRIGn 位? =0 =1 等待硬件触发n 以其缓存值 更新INVCTRL HWTRIGMODE 位? =1 =0 清除TRIGn位 结束 图 26-54. INVCTRL 寄存器同步流程图 26.4.11.9 SWOCTRL 寄存器同步 SWOCTRL 寄存器同步将以其缓存值对 SWOCTRL 寄存器进行更新。 KEA128 子系列参考手册, Rev. 2, July 2014 428 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) SWOCTRL 寄存器可在系统时钟的每个上升沿(SWOC = 0)更新,或者通过增强型 PWM 同步(SWOC = 1 且 SYNCMODE = 1)根据以下流程图更新。 采用增强型 PWM 同步时,SWOCTRL 寄存器同步取决于 SWSOC 和 HWSOC 位。 开始 在系统时钟的每一个上升沿 更新SWOCTRL寄存器 0= SWOC 位? 通过PWM同步 更新SWOCTRL寄存器 =1 1= 否系统时钟的上升沿? = SYNCMODE 位? =0 结束 =是 以其缓存值 更新SWOCTRL 结束 增强型PWM同步 SWOCTRL由软件触发 更新 1= 0= SWSYNC 位? SWSOC 位? 软件 触发 =0 结束 SWOCTRL由硬件触发 更新 0= HWSOC 位? 结束 =1 以其缓存值 更新SWOCTRL 结束 =1 硬件 触发 TRIGn 位? =0 =1 等待硬件触发n 以其缓存值 更新SWOCTRL HWTRIGMODE 位? =1 =0 清除TRIGn位 结束 图 26-55. SWOCTRL 寄存器同步流程图 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 429 功能说明 26.4.11.10 FTM 计数器同步 FTM 计数器同步是一种机制,通过这种机制 FTM 可以在 PWM 周期中的特定点重 新开始生成 PWM。通道输出强制为各自的初始值(处于输出比较模式的通道则例 外),FTM 计数器强制为 CNTIN 寄存器定义的初始计数值。 下图展示了 FTM 计数器同步情况。注意,同步事件发生后,通道(n)被设置为其初 始值,通道(n+1)则不会被设置为其初始值,这是由此图中的特定时序造成的,在此 图中死区插入阻止了该通道输出电平转换为 1。如果没有选择死区插入,则通道(n +1)在同步事件发生后会立即转换为逻辑值 1。 通道(n+1)匹配 FTM计数器 通道(n)匹配 通道(n)输出 (死区 插入之后) 通道(n+1)输出 (死区 插入之后) 同步事件 图 26-56. FTM 计数器同步 FTM 计数器同步可通过增强型 PWM 同步(SYNCMODE = 1)或传统 PWM 同步 (SYNCMODE = 0)完成。但是,只能通过增强型 PWM 同步来同步 FTM 计数器。 采用增强型 PWM 同步时,依据下述流程图,FTM 计数器同步取决于 SWRSTCNT 和 HWRSTCNT 位。 KEA128 子系列参考手册, Rev. 2, July 2014 430 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 开始 传统 PWM同步 SYNCMODE 位? =0 =1 增强型PWM同步 FTM计数器 由软件触发复位 SWSYNC 位? SWRSTCNT 位? 软件 触发 =0 结束 =0 1= FTM计数器 由硬件触发复位 =1 HWRSTCNT 位? 结束 =0 =1 根据CNTIN寄存器值 更新FTM计数器 根据各自的初始值 更新通道输出 清除SWSYNC位 结束 硬件 触发 TRIGn 位? =0 =1 等待硬件触发n 随着CNTIN寄存器值 更新FTM计数器 根据各自的初始值 更新通道输出 HWTRIGMODE 位? =1 =0 清除TRIGn位 结束 图 26-57. FTM 计数器同步流程图 采用传统 PWM 同步时,依据下述说明,FTM 计数器同步取决于 REINIT 和 PWMSYNC 位。 如果(SYNCMODE = 0)、(REINIT = 1)且(PWMSYNC = 0),则在下一次触发事件使 能时进行此同步。如果触发事件为软件触发,则根据以下示例清零 SWSYNC 位。 如果触发事件为硬件触发,则根据硬件触发 清零 TRIGn 位。以下为采用软件和硬 件触发的示例。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 431 功能说明 系 统 时钟 向SWSYNC位写入1 SWSYNC位 软件触发事件 FTM计数器随着CNTIN寄存器值更新, 通道输出强制为各自的初始值 图 26-58. (SYNCMODE = 0)、(REINIT = 1)、(PWMSYNC = 0)且使用软件触发时的 FTM 计数器 同步 系 统 时 钟 将1写入TRIG0位 TRIG0位 触发0事件 FTM计数器随着CNTIN寄存器值更新, 通道输出被强制为各自的初始值 图 26-59. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(REINIT = 1)、(PWMSYNC = 0)且使用硬 件触发时的 FTM 计数器同步 如果(SYNCMODE = 0)、(REINIT = 1)且(PWMSYNC = 1),则在下一次硬件触发使 能时进行此同步。根据硬件触发 清零 TRIGn 位。 系 统 时 钟 将1写入TRIG0位 TRIG0位 触发0事件 FTM计数器随着CNTIN寄存器值更新, 通道输出被强制为各自的初始值 图 26-60. (SYNCMODE = 0)、(HWTRIGMODE = 0)、(REINIT = 1)、(PWMSYNC = 1)且使用硬 件触发时的 FTM 计数器同步 KEA128 子系列参考手册, Rev. 2, July 2014 432 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.12 反相 反相功能在通道(n)和通道(n+1)输出之间交换信号。在以下情形中将选择反相操 作: • DECAPEN = 0 • COMP = 1 且 • INVm = 1(其中 m 代表一对通道) INVCTRL 寄存器中的 INVm 位将根据 INVCTRL 寄存器同步 以其缓冲值更新。 在高电平有效(ELSnB:ELSnA = 1:0)组合模式下,通道(n)输出在周期开始(FTM 计 数器 = CNTIN)时被强制为低电平,在通道(n)匹配时被强制为高电平,在通道(n+1) 匹配时被强制为低电平。如果选择了反相,通道(n)输出的行为方式将变更为:在 PWM 周期开始时被强制为高电平,在通道(n)匹配时被强制为低电平,在通道(n+1) 匹配时被强制为高电平。参见下图。 通道(n+1)匹配 FTM计数器 通道(n)匹配 反相之前的 通道(n)输出 反相之前的 通道(n+1)输出 向INV(m)位写入1 INV(m)位缓冲区 INVCTRL寄存器 同步 INV(m)位 反相之后的 通道(n)输出 反相之后的 通道(n+1)输出 注释 INV(m)位选择通道对(n)和(n+1)的反相。 图 26-61. 高电平有效(ELSnB:ELSnA = 1:0)组合模式下反相之后的通道(n)和(n+1)输出 注意,应当考虑 ELSnB:ELSnA 位值,因为它们定义了通道输出的有效状态。在低 电平有效(ELSnB:ELSnA = X:1)组合模式下,通道(n)输出在周期开始时被强制为高 电平,在通道(n)匹配时被强制为低电平,在通道(n+1)匹配时被强制为高电平。选择 反相后,通道(n)和(n+1)呈现的波形将如下图所示。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 433 功能说明 通道(n+1)匹配 FTM计数器 通道(n)匹配 反相之前的 通道(n)输出 反相之前的 通道(n+1)输出 向INV(m)位写入1 INV(m)位缓冲区 INVCTRL寄存器 同步 INV(m)位 反相之后的 通道(n)输出 反相之后的 通道(n+1)输出 注释 INV(m)位选择通道对(n)和(n+1)的反相。 图 26-62. 低电平有效(ELSnB:ELSnA = X:1)组合模式下反相之后的通道(n)和(n+1)输出 注 反相功能不可用于输出比较模式。 26.4.13 软件输出控制 软件输出控制可在 PWM 生成过程中于特定时间点强制通道输出软件定义的值。 在以下情形中会选择软件输出控制: • DECAPEN = 0 且 • CHnOC = 1 CHnOC 位使能针对特定通道输出的软件输出控制,CHnOCV 选择强制此通道输出 的值。 SWOCTRL 寄存器中的 CHnOC 和 CHnOCV 位均根据 SWOCTRL 寄存器同步 缓 存,并以各自的缓冲区值更新。 下图展示了采用软件输出控制时的通道(n)和(n+1)输出信号。本例中,通道(n)和(n +1)设置为组合与互补模式。 KEA128 子系列参考手册, Rev. 2, July 2014 434 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 通道(n+1)匹配 FTM计数器 通道(n)匹配 软件输出控制 之后的 通道(n)输出 软件输出控制 之后的 通道(n+1)输出 CH(n)OC缓存 CH(n+1)OC缓存 写入SWOCTRL寄存器 写入SWOCTRL寄存器 CH(n)OC位 CH(n+1)OC位 SWOCTRL寄存器同步 SWOCTRL寄存器同步 注释 CH(n)OCV = 1且CH(n+1)OCV = 0。 图 26-63. 组合与互补模式下的软件输出控制示例 COMP 位为零时,软件输出控制强制通道(n)和(n+1)输出以下值。 表 26-8. (COMP = 0)时的软件输出控制行为方式 CH(n)OC CH(n+1)OC CH(n)OCV CH(n+1)OCV 0 0 X 1 1 1 1 1 通道(n)输出 通道(n+1)输出 X 没有被 SWOC 修改 没有被 SWOC 修改 0 0 强制为零 强制为零 1 0 1 强制为零 强制为一 1 1 0 强制为一 强制为零 1 1 1 强制为一 强制为一 COMP 位为一时,软件输出控制强制通道(n)和(n+1)输出以下值。 表 26-9. (COMP = 1)时的软件输出控制行为方式 CH(n)OC CH(n+1)OC CH(n)OCV CH(n+1)OCV 0 0 X 1 1 1 通道(n)输出 通道(n+1)输出 X 没有被 SWOC 修改 没有被 SWOC 修改 0 0 强制为零 强制为零 1 0 1 强制为零 强制为一 1 1 1 0 强制为一 强制为零 1 1 1 1 强制为一 强制为零 注 • CH(n)OC 和 CH(n+1)OC 位应该相等。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 435 功能说明 • 使能软件输出控制(即 CH(n)OC = 1 和/或 CH(n+1)OC = 1)时,不得修改 COMP 位。 • 软件输出控制的行为方式与处于禁用或使能状态的 FTM 计数器相同(参见状态和控制寄存器中的 CLKS 字 段说明)。 26.4.14 死区插入 当(DTEN = 1)且(DTVAL[5:0]为非零)时,将使能死区插入。 DEADTIME 寄存器定义可用于所有 FTM 通道的死区延迟。DTPS[1:0]位定义系统 时钟的预分频器,DTVAL[5:0]位则定义死区模数,即死区预分频器时钟的数量。 死区延迟插入可确保不会有两个互补信号(通道(n)和(n+1))同时驱动有效状态。 如果 POL(n) = 0、POL(n+1) = 0 且死区处于使能状态,那么在出现通道(n)匹配(FTM 计数器 = C(n)V)情况时,通道(n)输出将保持低值,直到通道(n)输出置位、死区延 迟结束时。与此类似,在出现通道(n+1)匹配(FTM 计数器 = C(n+1)V)情况时,通 道(n+1)输出将保持低值,直到通道(n+1)输出置位、死区延迟结束时。参见下图。 如果 POL(n) = 1、POL(n+1) = 1 且死区处于使能状态,那么在出现通道(n)匹配(FTM 计数器 = C(n)V)情况时,通道(n)输出将保持高值,直到通道(n)输出清除、死区延 迟结束时。与此类似,在出现通道(n+1)匹配(FTM 计数器 = C(n+1)V)情况时,通 道(n+1)输出将保持高值,直到通道(n+1)输出清除、死区延迟结束时。 通道( n+1)匹 配 FTM计 数 器 通道(n)匹配 通道(n)输出 (死区 插入之前) 通道(n+1)输出 (死区 插入之前) 通道(n)输出 (死区 插入之后) 通道(n+1)输出 (死区 插入之后) 图 26-64. ELSnB:ELSnA = 1:0、POL(n) = 0 且 POL(n+1) = 0 条件下的死区插入 KEA128 子系列参考手册, Rev. 2, July 2014 436 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 通道(n+1)匹配 FTM计数器 通道(n)匹配 通道(n)输出 (死区 插入之前) 通道(n+1)输出 (死区 插入之前) 通道(n)输出 (死区 插入之后) 通道(n+1)输出 (死区 插入之后) 图 26-65. ELSnB:ELSnA = X:1、POL(n) = 0 且 POL(n+1) = 0 条件下的死区插入 注 • 死区功能只能用于互补模式。 • 死区功能不可用于输出比较模式。 26.4.14.1 死区插入个别案例 如果(PS[2:0]已清零)、(DTPS[1:0] = 0:0 或 DTPS[1:0] = 0:1): • 且死区延迟大于或等于通道(n)占空比((C(n+1)V – C(n)V) × 系统时钟),则通道 (n)输出始终为无效值(POL(n)位值)。 • 且死区延迟大于或等于通道(n+1)占空比((MOD – CNTIN + 1 – (C(n+1)V – C(n)V) ) × 系统时钟),则通道(n+1)输出始终为无效值(POL(n+1)位值)。 尽管大多数情况下死区延迟无法与通道(n)和(n+1)占空比相比较,但下面这些图还是 以示例说明了死区延迟可与占空比相比较的情况。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 437 功能说明 通道(n+1)匹配 FTM计数器 通道(n)匹配 通道(n)输出 (死区 插入之前) 通道(n+1)输出 (死区 插入之前) 通道(n)输出 (死区 插入之后) 通道(n+1)输出 (死区 插入之后) 图 26-66. 死区延迟可与通道(n+1)占空比相比较时的死区插入示例(ELSnB:ELSnA = 1:0、 POL(n) = 0 且 POL(n+1) = 0) 通道(n+1)匹配 FTM计数器 通道(n)匹配 通道(n)输出 (死区 插入之前) 通道(n+1)输出 (死区 插入之前) 通道(n)输出 (死区 插入之后) 通道(n+1)输出 (死区 插入之后) 图 26-67. 死区延迟可与通道(n)及(n+1)占空比相比较时的死区插入示例(ELSnB:ELSnA = 1:0、 POL(n) = 0 且 POL(n+1) = 0) 26.4.15 输出屏蔽 输出屏蔽可用于通过软件强制通道输出为各自的无效状态。例如,用于控制 BLDC 电机。 对 OUTMASK 寄存器采取的任意写入操作都会更新其写入缓冲区。OUTMASK 寄 存器通过 PWM 同步以其缓冲区值进行更新;参见 OUTMASK 寄存器同步 。 如果 CHnOM = 1,则通道(n)输出强制为通道的无效状态(POLn 位值)。如果 CHnOM = 0,则通道(n)输出不受输出屏蔽影响。参见下图。 KEA128 子系列参考手册, Rev. 2, July 2014 438 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 新 PWM 周期的开 始 FTM计 数 器 通 道( n) 输出 ( 输出屏 蔽之 前) CHnOM位 通 道( n) 输出 ( 输出 屏 蔽之 后 ) 已配置的 PWM信 号开始 将 用于 通道(n) 输出 通道( n) 输出 已 禁 用 图 26-68. POLn = 0 条件下的输出屏蔽 下表展示了极性控制之前的输出屏蔽结果。 表 26-10. 极性控制之前的通道(n)输出屏蔽结果 CHnOM 输出屏蔽输入 输出屏蔽结果 0 无效状态 无效状态 有效状态 有效状态 无效状态 无效状态 1 有效状态 26.4.16 故障控制 如果(FAULTM[1:0] ≠ 0:0),则使能故障控制。 FTM 最多可拥有四个故障输入。FAULTnEN 位(其中 n = 0、1、2、3)使能故障输 入 n,FFLTRnEN 位使能故障输入 n 滤波器。FFVAL[3:0]位选择已使能的每个故障 输入中处于使能状态的滤波器的值。 首先,每个故障输入信号由系统时钟同步;参见下图中的同步器时钟。同步之后, 故障输入 n 信号进入滤波器模块。当故障输入 n 信号中发生状态更改时,5 位计数 器将复位并开始向上计数。只要新状态在故障输入 n 中保持稳定,计数器就会继续 增加数值。如果 5 位计数器溢出,即计数器超出 FFVAL[3:0]位的值,就表明新故障 输入 n 值得以验证。然后就会作为脉冲边沿发送到边沿检测器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 439 功能说明 如果在验证(计数器溢出)之前相反的边沿出现在故障输入 n 信号上,计数器就会 复位。下一次输入转换时,计数器再次开始计数。任何比 FFVAL[3:0]位(x 系统时 钟)所选的最小值短的脉冲都会被认作是毛刺,不会传递到边沿检测器上。 FFVAL[3:0]位为零或 FAULTnEN = 0 时,将禁用故障输入 n 滤波器。这种情况下, 故障输入 n 信号将按系统时钟的 2 个上升沿延迟,而且在故障输入 n 中出现上升沿 之后 FAULTFn 位在系统时钟的第 3 个上升沿上置位。 如果 FFVAL[3:0] ≠ 0000 且 FAULTnEN = 1,则故障输入 n 信号按系统时钟的(3 + FFVAL[3:0])个上升沿延迟,也就是在故障输入 n 中出现上升沿之后 FAULTFn 位在 系统时钟的(4 + FFVAL[3:0])个上升沿上置位。 (FFVAL[3:0] 0000) 和(FFLTRnEN*) FLTnPOL 同步器 故 障输入 n* 系统时钟 D Q CLK 0 D Q CLK 故障滤波器 (5位计数器) 1 故障输入 极性 控制 故障输入n*值 上升沿 检测器 FAULTFn* * 其中n = 3, 2, 1, 0 图 26-69. 故障输入 n 控制功能框图 如果故障控制和故障输入 n 已使能,且在故障输入 n 信号上检测到上升沿,则表明 已出现故障状况且 FAULTFn 位已置位。FAULTF 位是 FAULTFn[3:0]位的逻辑或 (OR)。参见下图。 故 障输入 0值 故 障输入 1值 故 障输入 2值 故 障输入 3值 FAULTF0 FAULTF1 FAULTF2 FAULTIN FAULTIE 故 障中断 FAULTF FAULTF3 图 26-70. FAULTF 和 FAULTIN 位以及故障中断 如果已使能故障控制(FAULTM[1:0] ≠ 0:0)、已出现故障状况且(FAULTEN = 1),则 输出强制为各自的安全值: • 通道(n)输出采用 POL(n)的值 • 通道(n+1)采用 POL(n+1)的值 KEA128 子系列参考手册, Rev. 2, July 2014 440 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 当(FAULTF = 1)且(FAULTIE = 1)时,生成故障中断。此中断请求一直保持置位状 态,直到出现以下情形: • 软件通过读取 FAULTF 位为 1 并向其写入 0 来清除 FAULTF 位 • 软件清除 FAULTIE 位 • 发生复位 26.4.16.1 自动故障清除 如果选择了自动故障清除(FAULTM[1:0] = 1:1),则当故障输入信号(FAULTIN)恢复 为零,新的 PWM 周期开始时,被故障控制禁用的通道输出将再次进入使能状态。 参见下图。 新PWM周期的开始 FTM计数器 通道(n)输出 (故障控制之前) FAULTIN位 通道(n)输出 FAULTF位 注释 通道(n)输出在故障控制之后,自动清除故障,且POLn = 0。 FAULTF位已清除 图 26-71. 采用自动故障清除的故障控制 26.4.16.2 手动故障清除 如果选择了手动故障清除(FAULTM[1:0] = 0:1 或 1:0),则当 FAULTF 位清除,新 的 PWM 周期开始时,被故障控制禁用的通道输出将再次进入使能状态。参见下图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 441 功能说明 新PWM周期的开始 FTM计数器 通道(n)输出 (故障控制之前) FAULTIN位 通道(n)输出 FAULTF位 FAULTF位已清零 注释 通道(n)输出在故障控制之后,手动清除故障,且POLn = 0。 图 26-72. 采用手动故障清除的故障控制 26.4.16.3 故障输入极性控制 FLTjPOL 位选择故障输入 j 极性,其中 j = 0、1、2、3: • 如果 FLTjPOL = 0,则故障 j 输入极性高,因此故障输入 j 处的逻辑一表示故 障。 • 如果 FLTjPOL = 1,则故障 j 输入极性低,因此故障输入 j 处的逻辑零表示故 障。 26.4.17 极性控制 POLn 位选择通道(n)输出极性: • 如果 POLn = 0,则通道(n)输出极性为高,因此逻辑一为有效状态,逻辑零为无 效状态。 • 如果 POLn = 1,则通道(n)输出极性为低,因此逻辑零为有效状态,逻辑一为无 效状态。 KEA128 子系列参考手册, Rev. 2, July 2014 442 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.18 初始化 向 INIT 位写入一时,初始化将强制通道(n)输出为 CHnOI 位的值。 初始化取决于 COMP 和 DTEN 位。下表展示了 COMP 和 DTEN 位为零时初始化条 件下通道(n)和(n+1)输出的值。 表 26-11. (COMP = 0 且 DTEN = 0)时的初始化结果 CH(n)OI CH(n+1)OI 0 通道(n)输出 通道(n+1)输出 0 强制为零 强制为零 0 1 强制为零 强制为一 1 0 强制为一 强制为零 1 1 强制为一 强制为一 下表展示了(COMP = 1)或(DTEN = 1)时由初始化强制通道(n)和(n+1)输出的值。 表 26-12. (COMP = 1 或 DTEN = 1)时的初始化行为方式 CH(n)OI CH(n+1)OI 0 1 通道(n)输出 通道(n+1)输出 X 强制为零 强制为一 X 强制为一 强制为零 注 初始化特性只能与禁用的 FTM 计数器配合使用。参见状态 和控制寄存器中关于 CLKS 字段的说明。 26.4.19 特性优先级 下图展示了生成通道(n)和(n+1)输出信号时所用特性的优先级。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 443 功能说明 通道对(m) - 通道(n)和(n+1) FTM计数器 DECAPEN COMBINE(m) CPWMS C(n)V MS(n)B CH(n)OC MS(n)A CH(n)OCV POL(n) ELS(n)B CH(n+1)OC POL(n+1) ELS(n)A CH(n)OI CH(n+1)OI COMP(m) INV(m)EN CH(n+1)OCV CH(n)OM DTEN(m) CH(n+1)OM FAULTEN(m) 通道 (n) 输出 信号 产生 通道(n) 输出信号 初始化 互补 模式 软件 输出 控制 反相 死区 插入 输出 屏蔽 故障 控制 极性 控制 通道 (n+1) 输出 信号 产生 通道(n+1) 输出信号 C(n+1)V MS(n+1)B MS(n+1)A ELS(n+1)B ELS(n+1)A 注意 通道( n) 和( n+1)处于 输 出比 较 、EPW M、CPW M 或组 合模 式 。 图 26-73. 生成通道(n)和(n+1)输出信号时所用特性的优先级 注 初始化 特性不得与反相 和软件输出控制 特性一起使用。 26.4.20 通道触发器输出 如果 CHjTRIG = 1(其中 j = 0、1、2、3、4 或 5),则当通道(j)发生匹配事件(FTM 计数器=C(j)V),FTM 会产生触发信号。 通道触发器输出提供了一种可用于片上模块的触发信号。 FTM 能够在一个 PWM 周期内生成多个触发器。因为每个触发信号都是由一个特 定通道生成的,所以要实现此功能需要有多个通道。下图描述了这种行为方式。 KEA128 子系列参考手册, Rev. 2, July 2014 444 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 新PWM周期的开始 MOD FTM计数器 = C5V FTM计数器 = C4V FTM计数器 = C3V FTM计数器 = C2V FTM计数器 = C1V FTM计数器 = C0V CNTIN (a) (b) (c) (d) 注释 (a) CH0TRIG = 0, CH1TRIG = 0, CH2TRIG = 0, CH3TRIG = 0, CH4TRIG = 0, CH5TRIG = 0 (b) CH0TRIG = 1, CH1TRIG = 0, CH2TRIG = 0, CH3TRIG = 0, CH4TRIG = 0, CH5TRIG = 0 (c) CH0TRIG = 0, CH1TRIG = 0, CH2TRIG = 0, CH3TRIG = 1, CH4TRIG = 1, CH5TRIG = 1 (d) CH0TRIG = 1, CH1TRIG = 1, CH2TRIG = 1, CH3TRIG = 1, CH4TRIG = 1, CH5TRIG = 1 图 26-74. 通道匹配触发器 26.4.21 初始化触发 如果 INITTRIGEN = 1,那么在以下情形中 FTM 计数器更新为 CNTIN 寄存器值时, FTM 将生成触发。 • FTM 计数器通过所选计数模式自动更新为 CNTIN 寄存器值。 • 对 CNT 寄存器采取写入操作时。 • 存在 FTM 计数器同步 时。 • 如果(CNT = CNTIN)、(CLKS[1:0] = 0:0),并且向 CLKS[1:0]位写入了不为零的 值。 以下各图展示了这些情形。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 445 功能说明 CNTIN = 0x0000 MOD = 0x000F CPWMS = 0 系统时钟 FTM计数器 0x0C 0x0D 0x0E 0x0F 0x00 0x01 0x02 0x03 0x04 0x05 初始化触发器 图 26-75. FTM 计数达到 CNTIN 寄存器值时生成初始化触发 CNTIN = 0x0000 MOD = 0x000F CPWMS = 0 系统时钟 FTM计数器 0x04 0x05 0x06 0x00 0x01 0x02 0x03 0x04 0x05 0x06 写入CNT 初始化触发器 图 26-76. 对 CNT 寄存器采取写入操作时生成初始化触发 CNTIN = 0x0000 MOD = 0x000F CPWMS = 0 系统时钟 FTM计数器 0x04 0x05 0x06 0x07 0x00 0x01 0x02 0x03 0x04 0x05 FTM计数器 同步 初始化触发器 图 26-77. 存在 FTM 计数器同步时生成初始化触发 KEA128 子系列参考手册, Rev. 2, July 2014 446 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) CNTIN = 0x0000 MOD = 0x000F CPWMS = 0 系统时钟 0x00 FTM计数器 CLKS[1:0]位 00 0x01 0x02 0x03 0x04 0x05 01 初始化触发器 图 26-78. (CNT = CNTIN)、(CLKS[1:0] = 0:0)且向 CLKS[1:0]位写入了不为零的值时生成初始化 触发 初始化触发输出提供了一种可用于片上模块的触发信号。 26.4.22 捕获测试模式 捕获测试模式允许测试 CnV 寄存器、FTM 计数器以及 FTM 计数器与 CnV 寄存器 之间的互连逻辑。 在这种测试模式下,必须为输入捕捉模式 配置所有通道,且 FTM 计数器必须配置 为向上计数 。 使能捕获测试模式(CAPTEST = 1)后,FTM 计数器将冻结,对 CNT 寄存器进行的任 何写入操作都会直接更新 FTM 计数器;参见下图。写入后,所有 CnV 寄存器都会 更新为 CNT 寄存器中的值,同时 CHnF 位会置位。因此,FTM 计数器会根据其配 置更新其下一个值。其下一个值取决于 CNTIN、MOD 以及写入 FTM 计数器的值。 接下来的 CnV 寄存器读取操作会返回写入 FTM 计数器的值,接下来的 CNT 寄存器 读取操作则返回 FTM 计数器的下一个值。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 447 功能说明 FTM计数器时钟 置位CAPTEST 清除CAPTEST 写入MODE CAPTEST位 FTM计数器 0x1053 0x1054 0x1055 0x1056 0x78AE 0x78AF 0x78B0 0x78AD 0x78AC 写入0x78AC 写入CNT CHnF位 0x78AC 0x0300 CnV 注意 - FTM计数器配置:(FTMEN = 1),(CAPTEST = 1),(CPWMS = 0),(CNTIN = 0x0000),(MOD = 0xFFFF) - FTM通道n配置:输入捕捉模式 - (DECAPEN = 0),(COMBINE = 0),(MSnB:MSnA = 0:0) 图 26-79. 捕捉测试模式 26.4.23 双沿捕捉模式 如果 DECAPEN = 1,将选择双沿捕捉模式。此模式允许在一对通道中通道(n)的输 入端测量脉宽或信号周期。在此模式下,当 n 为 0 或 2 时,通道(n)滤波器可处于有 效状态。 FTMEN DECAPEN 滤波器是否 DECAP MS(n)A ELS(n)B:ELS(n)A ELS(n+1)B:ELS(n+1)A 0 已使能? 同步器 通道( n) 输入 系统时钟 D CLK Q Q D 滤波器* CLK 1 CH(n)IE 通道(n) 中断 CH(n)F C(n)V[15:0] 双沿捕捉 模式逻辑 CH(n+1)IE CH(n+1)F 通道(n+1) 中断 C(n+1)V[15:0] * 双沿捕捉模式的滤波功能只能用于通道0和通道2 FTM计数器 图 26-80. 双沿捕捉模式结构框图 MS(n)A 位定义双沿捕捉模式是单次还是持续。 KEA128 子系列参考手册, Rev. 2, July 2014 448 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) ELS(n)B:ELS(n)A 位选择由通道(n)捕捉的边沿,ELS(n+1)B:ELS(n+1)A 位选择由通 道(n+1)捕捉的边沿。如果 ELS(n)B:ELS(n)A 和 ELS(n+1)B:ELS(n+1)A 位选择同一 边沿,则为周期测量。如果这两个位选择不同边沿,则为脉宽测量。 在双沿捕捉模式下,只使用通道(n)输入,忽略通道(n+1)输入。 如果在通道(n)输入端检测到由通道(n)位定义的边沿,则 CH(n)F 位置位并生成通道 (n)中断(条件是 CH(n)IE = 1)。如果在通道(n)输入端检测到由通道(n+1)位定义的边 沿且(CH(n)F = 1),则 CH(n+1)F 位置位并生成通道(n+1)中断(条件是 CH(n+1)IE = 1)。 C(n)V 寄存器存储了在通道(n)输入端检测到通道(n)所选边沿时 FTM 计数器的值。 C(n+1)V 寄存器存储了在通道(n)输入端检测到通道(n+1)所选边沿时 FTM 计数器的 值。 在此模式下,有一个一致性机制可确保读取 C(n)V 和 C(n+1)V 寄存器时保持一致的 数据。这个唯一的要求就是必须在 C(n+1)V 之前读取 C(n)V。 注 • CH(n)F、CH(n)IE、MS(n)A、ELS(n)B 和 ELS(n)A 位是 与通道(n)有关的位。 • CH(n+1)F、CH(n+1)IE、MS(n+1)A、ELS(n+1)B 和 ELS(n +1)A 位是通道(n+1)位。 • 必须在 ELS(n)B:ELS(n)A = 0:1 或 1:0、ELS(n+1)B:ELS(n +1)A = 0:1 或 1:0 且 FTM 计数器为自由运行计数器 的 情况下使用双沿捕捉模式。 26.4.23.1 一次性捕捉模式 当(DECAPEN = 1)且(MS(n)A = 0)时选择单次捕捉模式。在这种捕捉模式下,只捕捉 通道(n)输入上的一对边沿。ELS(n)B:ELS(n)A 位选择要捕捉的第一边沿,ELS(n +1)B:ELS(n+1)A 位选择要捕捉的第二边沿。 DECAP 位置位时将使能边沿捕捉。对于单次捕捉模式下的每一次新测量,必须首 先清除 CH(n)F 和 CH(n+1)位,然后 DECAP 位必须置位。 在此模式下,将在捕捉通道(n+1)所选的边沿后由 FTM 自动清除 DECAP 位。因此, DECAP 位置位后,就会开始单次捕捉。清除此位后,两个边沿都会捕捉,捕捉的 值也可用于在 C(n)V 和 C(n+1)V 寄存器中读取。 与此类似,CH(n+1)F 位置位后,两个边沿都会捕捉,捕捉的值也可用于在 C(n)V 和 C(n+1)V 寄存器中读取。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 449 功能说明 26.4.23.2 连续捕捉模式 当(DECAPEN = 1)且(MS(n)A = 1)时选择持续捕捉模式。在这种捕捉模式下,将持续 捕捉通道(n)输入上的边沿。ELS(n)B:ELS(n)A 位选择要捕捉的初始沿,ELS(n +1)B:ELS(n+1)A 位选择要捕捉的最终沿。 DECAP 位置位时将使能边沿捕捉。初次使用时,首先必须清空 CH(n)F 和 CH(n +1)F 位,然后必须使 DECAP 位置位,以便开始持续测量。 CH(n+1)F 位置位后,两个边沿都会被捕捉,捕捉的值也可在 C(n)V 和 C(n+1)V 寄 存器中读取。即便已清空 DECAP 位,最新捕捉到的值也仍然可用于这些寄存器。 在此模式下,可以只清空 CH(n+1)F 位。因此,CH(n+1)F 位再次置位后,最新捕捉 到的值将可用在 C(n)V 和 C(n+1)V 寄存器中。 对于双沿捕捉 – 持续模式下的一系列新测量,清空 CH(n)F 和 CH(n+1)F 位便可开始 新的测量。 26.4.23.3 脉宽测量 如果通道(n)配置为捕捉上升沿(ELS(n)B:ELS(n)A = 0:1),通道(n+1)配置为捕捉下降 沿(ELS(n+1)B:ELS(n+1)A = 1:0),则测量正极性脉宽。如果通道(n)配置为捕捉下降 沿(ELS(n)B:ELS(n)A = 1:0),通道(n+1)配置为捕捉上升沿(ELS(n+1)B:ELS(n+1)A = 0:1),则测量负极性脉宽。 可在一次性捕捉模式 或连续捕捉模式 下进行脉宽测量。 下图给出了双沿捕捉 – 单次模式的示例,用于测量正极性脉宽。DECAPEN 位选择 双沿捕捉模式,因此保持置位。DECAP 位置位,以使能下一个正极性脉宽的测量。 检测到此脉冲的第一个边沿(也就是由 ELS(n)B:ELS(n)A 位选择的边沿)时,将置 位 CH(n)F 位。检测到此脉冲的第二个边沿(也就是由 ELS(n+1)B:ELS(n+1)A 位选 择的边沿)时,将置位 CH(n+1)F 位并清除 DECAP 位。DECAP 和 CH(n+1)F 位指 出何时捕捉到脉冲的两个边沿,以及 C(n)V 和 C(n+1)V 寄存器何时准备好进行读 取。 KEA128 子系列参考手册, Rev. 2, July 2014 450 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 4 FTM计数器 12 8 3 7 2 6 1 16 11 10 5 20 15 14 9 13 24 19 18 17 28 23 27 22 26 21 25 通道(n)输入 (滤波器 通道输入之后) DECAPEN位 置位DECAPEN DECAP位 置位DECAP C(n)V 1 3 5 7 9 15 2 4 6 8 10 16 19 CH(n)F位 清除CH(n)F C(n+1)V 20 22 24 CH(n+1)F位 清除CH(n+1)F 问题1问题2 注释- 置位DECAPEN、置位DECAP、清除CH(n)F和清除CH(n+1)这些命令均由用户发出。 - 问题1:通道(n)输入 = 1,置位DECAP,不清除CH(n)F,清除CH(n+1)F。 - 问题2:通道(n)输入 = 1,置位DECAP,不清除CH(n)F,不清除CH(n+1)F。 图 26-81. 用于正极性脉宽测量的双沿捕捉 – 单次模式 下图给出了双沿捕捉 – 持续模式的示例,用于测量正极性脉宽。DECAPEN 位选择 双沿捕捉模式,因此保持置位。DECAP 位置位时,将进行已配置的测量。检测到 正极性脉冲的第一个边沿(也就是由 ELS(n)B:ELS(n)A 位选择的边沿)时,将置位 CH(n)F 位。检测到此脉冲的第二个边沿(也就是由 ELS(n+1)B:ELS(n+1)A 位选择 的边沿)时,将置位 CH(n+1)F 位。CH(n+1)F 位指出何时捕捉到脉冲的两个边沿, 以及 C(n)V 和 C(n+1)V 寄存器何时准备好进行读取。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 451 功能说明 4 FTM计数器 12 8 3 7 2 6 1 16 11 10 5 20 15 14 9 13 24 19 18 17 28 23 27 22 26 21 25 通道(n)输入 (滤波器 通道输入之后) DECAPEN位 置位DECAPEN DECAP位 置位DECAP C(n)V 1 3 5 7 9 11 15 19 21 23 2 4 6 8 10 12 16 20 22 24 CH(n)F位 清除CH(n)F C(n+1)V CH(n+1)F位 清除CH(n+1)F 注释- 置位DECAPEN、置位DECAP、清除CH(n)F和清除CH(n+1)这些命令均由用户发出。 图 26-82. 用于正极性脉宽测量的双沿捕捉 – 持续模式 26.4.23.4 周期测量 如果通道(n)和(n+1)配置为捕捉相同极性的连续边沿,则测量通道(n)输入信号的周 期。如果通道(n)和(n+1)配置为捕捉上升沿(ELS(n)B:ELS(n)A = 0:1 且 ELS(n +1)B:ELS(n+1)A = 0:1),则测量两个连续上升沿之间的周期。如果通道(n)和(n+1)配 置为捕捉下降沿(ELS(n)B:ELS(n)A = 1:0 且 ELS(n+1)B:ELS(n+1)A = 1:0),则测量 两个连续下降沿之间的周期。 可在一次性捕捉模式 或连续捕捉模式 下进行周期测量。 下图给出了双沿捕捉 – 单次模式的示例,用于测量两个连续上升沿之间的周期。 DECAPEN 位选择双沿捕捉模式,因此保持置位。DECAP 位置位,以使能下一周期 的测量。检测到第一个上升沿(也就是由 ELS(n)B:ELS(n)A 位选择的边沿)时,将 置位 CH(n)F 位。检测到第二个上升沿(也就是由 ELS(n+1)B:ELS(n+1)A 位选择的 边沿)时,将置位 CH(n+1)F 位并清空 DECAP 位。DECAP 和 CH(n+1)F 位指出何 时捕捉到所选的两个边沿,以及 C(n)V 和 C(n+1)V 寄存器何时准备好进行读取。 KEA128 子系列参考手册, Rev. 2, July 2014 452 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 4 8 3 FTM计数器 2 6 1 16 12 7 11 10 5 20 15 13 28 23 18 14 9 24 19 27 22 17 21 26 25 通道(n)输入 (滤波器 通道输入之后) DECAPEN位 置位DECAPEN DECAP位 置位DECAP C(n)V 1 3 5 6 7 14 17 2 4 6 7 9 15 18 18 20 27 23 26 CH(n)F位 清除CH(n)F C(n+1)V 20 CH(n+1)F位 清除CH(n+1)F 问题1 问题2 问题3 注释- 置位DECAPEN、置位DECAP、清除CH(n)F和清除CH(n+1)这些命令均由用户发出。 - 问题1:通道(n)输入 = 0 ,置位DECAP,不清除CH(n)F,不清除CH(n+1)F。 - 问题2:通道(n)输入 = 1,置位DECAP,不清除CH(n)F,清除CH(n+1)F。 - 问题3:通道(n)输入 = 1,置位DECAP,不清除CH(n)F,不清除CH(n+1)F。 图 26-83. 用于测量两个连续上升沿之间周期的双沿捕捉 – 单次模式 下图给出了双沿捕捉 – 持续模式的示例,用于测量两个连续上升沿之间的周期。 DECAPEN 位选择双沿捕捉模式,因此保持置位。DECAP 位置位时,将进行已配置 的测量。检测到第一个上升沿(也就是由 ELS(n)B:ELS(n)A 位选择的边沿)时,将 置位 CH(n)F 位。检测到第二个上升沿(也就是由 ELS(n+1)B:ELS(n+1)A 位选择的 边沿)时,将置位 CH(n+1)F 位。CH(n+1)F 位指出何时捕捉到周期的两个边沿,以 及 C(n)V 和 C(n+1)V 寄存器何时准备好进行读取。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 453 功能说明 4 FTM计数器 12 8 3 2 6 1 16 11 7 9 13 24 19 14 10 5 20 15 18 17 28 23 27 22 21 26 25 通道(n)输入 (滤波器 通道输入之后) DECAPEN位 置位DECAPEN DECAP位 置位DECAP C(n)V 1 3 5 6 7 8 9 10 11 12 14 15 16 18 19 20 21 22 23 24 26 2 4 6 7 8 9 10 11 12 13 15 16 17 19 20 21 22 23 24 25 27 CH(n)F位 清除CH(n)F C(n+1)V CH(n+1)F位 清除CH(n+1)F 注释- 置位DECAPEN、置位DECAP、清除CH(n)F和清除CH(n+1)这些命令均由用户发出。 图 26-84. 用于测量两个连续上升沿之间周期的双沿捕捉 – 持续模式 26.4.23.5 读取一致性机制 对于在 C(n)V 和 C(n+1)V 寄存器中捕捉的 FTM 计数器值,双沿捕捉模式会实施一 种读取一致性机制。下图对读取一致性机制进行了说明。此例中,通道(n)和(n+1)处 于双沿捕捉 – 持续模式,以便进行正极脉宽测量。因此,通道(n)配置为在通道(n)输 入信号中存在上升沿时捕捉 FTM 计数器值,通道(n+1)配置为在通道(n)输入信号中 存在下降沿时捕捉 FTM 计数器值。 通道(n)输入信号中存在上升沿时,FTM 计数器值将捕捉到通道(n)捕捉缓存内。通 道(n)输入信号中存在下降沿时,通道(n)捕捉缓存值将传输到 C(n)V 寄存器中。上一 个上升沿发生时,C(n)V 寄存器拥有 FTM 计数器值;最后一个上升沿发生时,通道 (n)捕捉缓存拥有 FTM 计数器值。 通道(n)输入信号中存在下降沿时,FTM 计数器值将捕捉到通道(n+1)捕捉缓存内。 读取 C(n)V 寄存器后,通道(n+1)捕捉缓存值将传输到 C(n+1)V 寄存器中。 KEA128 子系列参考手册, Rev. 2, July 2014 454 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 下图中,发生事件 1 时读取 C(n)V 将返回 FTM 计数器值,发生事件 2 时读取 C(n +1)V 将返回 FTM 计数器值。 FTM计数器 事件1 事件2 事件3 事件4 事件5 事件6 事件7 事件8 事件9 1 2 3 4 5 6 7 8 9 通道(n)输入 (滤波器 通道输入之后) 通道(n) 捕捉缓存 1 C(n)V 3 1 通道(n+1) 捕捉缓存 2 C(n+1)V 5 7 9 3 5 7 4 6 8 2 读取C(n)V 读取C(n+1)V 图 26-85. 双沿捕捉模式读取一致性机制 要让读取一致性机制正常工作,在单次双沿捕捉和持续双沿捕捉模式下,必须先读 取 C(n)V 寄存器,然后再读取 C(n+1)V 寄存器。 26.4.24 Debug 模式 芯片处于 Debug 模式时,BDMMODE[1:0]位将根据下表选择 FTM 计数器、 CH(n)F 位、通道输出以及对 MOD、CNTIN 和 C(n)V 寄存器的写入操作的行为方式。 表 26-13. 芯片处于 Debug 模式时的 FTM 行为方 式 BDMMODE FTM 计数 器 CH(n)F 位 FTM 通道输出 对 MOD、CNTIN 和 C(n)V 寄存器的写入操作 00 已停止 可以设置 正常工作模式 对这些寄存器的写入操作会绕过寄存器缓冲区 01 已停止 未设置 通道输出会根据 POLn 位强制采取 对这些寄存器的写入操作会绕过寄存器缓冲区 各自的安全值 10 已停止 未设置 芯片进入 Debug 模式时,通道输出 对这些寄存器的写入操作会绕过寄存器缓冲区 会冻结 11 正常工作模 式 可以设置 正常工作模式 功能模式 注意,如果 BDMMODE[1:0] = 2’b00,通道输出将保持芯片进入 Debug 模式时的值, 因为 FTM 计数器已停止。但是,以下情形会在这种 Debug 模式下修改通道输出。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 455 功能说明 • 向 CNT 寄存器写入任意值;参见计数器复位 。这种情况下,FTM 计数器会根 据 CNTIN 寄存器值更新,并且通道输出更新为初始值 – 设置为输出比较模式的 通道则例外。 • FTM 计数器由 PWM 同步模式复位;参见 FTM 计数器同步 。这种情况下,FTM 计数器会根据 CNTIN 寄存器值更新,并且通道输出更新为初始值 – 处于输出比 较模式的通道则例外。 • 在通道输出初始化过程中,向 INIT 位写入值 1 时,通道(n)输出将强制为 CH(n)OI 位值。参见初始化 。 注 BDMMODE[1:0] = 2’b00 不得与故障控制 一起使用。即便 已使能故障控制且存在故障条件,通道输出值也仍然会按上 文所述更新。 注 如果 BDM 中的 CLKS[1:0] = 2'b00,则会在 BDM 中的 CLKS 中写入一个非零值且 CnV = CNTIN(BDM 禁用),随 后 CHnF 位置位(如果通道为 0%EPWM 信号)(BDM 禁 用)。 26.4.25 中间加载 PWMLOAD 寄存器允许在定义的重载点根据寄存器缓冲区的内容更新 MOD、 CNTIN 和 C(n)V 寄存器。这种情况下,不需要使用 PWM 同步。 对于中间加载,有多种可能的加载点: 表 26-14. 什么时候使能可能的加载点 加载点 使能 FTM 计数器从 MOD 值变为 CNTIN 值时 始终 通道(j)匹配(FTM 计数器 = C(j)V)时 CHjSEL = 1 时 下图给出了一些有关已使能加载点的示例。 KEA128 子系列参考手册, Rev. 2, July 2014 456 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) FTM计数器 = MOD FTM计数器 = C7V FTM计数器 = C6V FTM计数器 = C5V FTM计数器 = C4V FTM计数器 = C3V FTM计数器 = C2V FTM计数器 = C1V FTM计数器 = C0V (a) (b) (c) (d) (e) (f) 注释 (a) LDOK = 0,CH0SEL = 0,CH1SEL = 0,CH2SEL = 0,CH3SEL = 0,CH4SEL = 0,CH5SEL = 0,CH6SEL = 0,CH7SEL = 0 (b) LDOK = 1,CH0SEL = 0,CH1SEL = 0,CH2SEL = 0,CH3SEL = 0,CH4SEL = 0,CH5SEL = 0,CH6SEL = 0,CH7SEL = 0 (c) LDOK = 0,CH0SEL = 0,CH1SEL = 0,CH2SEL = 0,CH3SEL = 1,CH4SEL = 0,CH5SEL = 0,CH6SEL = 0,CH7SEL = 0 (d) LDOK = 1,CH0SEL = 0,CH1SEL = 0,CH2SEL = 0,CH3SEL = 0,CH4SEL = 0,CH5SEL = 0,CH6SEL = 1,CH7SEL = 0 (e) LDOK = 1,CH0SEL = 1,CH1SEL = 0,CH2SEL = 1,CH3SEL = 0,CH4SEL = 1,CH5SEL = 0,CH6SEL = 1,CH7SEL = 0 (f) LDOK = 1,CH0SEL = 1,CH1SEL = 1,CH2SEL = 1,CH3SEL = 1,CH4SEL = 1,CH5SEL = 1,CH6SEL = 1,CH7SEL = 1 图 26-86. 中间加载的加载点 使能加载点之后,必须对要发生的加载设置 LDOK 位。这种情况下,加载将根据以 下条件在下一个使能的加载点发生: 表 26-15. 让加载在下一个使能的加载点发生的条件 向以下寄存器写入了新的值时 结果 MOD 寄存器 MOD 寄存器将以其写入缓冲区值更新。 CNTIN 寄存器,且 CNTINC = 1 CNTIN 寄存器将以其写入缓冲区值更新。 C(n)V 寄存器,且 SYNCENm = 1 – 其中 m 表示通道对(n)和(n C(n)V 寄存器将以其写入缓冲区值更新。 +1) C(n+1)V 寄存器,且 SYNCENm = 1 – 其中 m 表示通道对(n)和 C(n+1)V 寄存器将以其写入缓冲区值更新。 (n+1) 注 • 如果 ELSjB 和 ELSjA 位不为零,则根据配置的输出模 式生成通道(j)输出信号。如果 ELSjB 和 ELSjA 位为零, 则生成的信号在通道(j)输出中不可用。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 457 功能说明 • 如果 CHjIE = 1,将在发生通道(j)匹配时生成通道(j)中 断。 • 在中断加载,通道输出和 FTM 计数器均不改变。软件 必须及时在一个安全点设置中间加载。 26.4.26 全局时基(GTB) 全局时基(GTB)是一项 FTM 功能,允许同步一个芯片上的多个 FTM 模块。下图以 示例说明了如何利用 GTB 特性同步两个 FTM 模块。在本例中,FTM A 和 B 通道 运作起来就好像只使用了一个 FTM 模块,这就是全局时基。 FTM模块A FTM模块B FTM计数器 GTBEEN位 FTM计数器 使能逻辑 使能 gtb_in gtb_in 胶合逻辑示例 gtb_out GTBEOUT位 gtb_out 图 26-87. 全局时基(GTB)功能框图 GTB 功能可通过 CONF 寄存器中的 GTBEEN 和 GTBEOUT 位以及输入信号 gtb_in 和输出信号 gtb_out 实现。GTBEEN 位让 gtb_in 能够控制 FTM 计数器使能信号: • 如果 GTBEEN = 0,每一个 FTM 模块都将根据各自的配置模式独立工作。 • 如果 GTBEEN = 1,则只在 gtb_in 为 1 的情况下使能 FTM 计数器更新。 在上图所述的配置中,如果其中某个 FTM 模块的至少一个 gtb_out 信号为 1,则使 能 FTM 模块 A 和 B 的 FTM 计数器。对于 gtb_in 和 gtb_out 信号的互连,有多种可 能的配置,图中的示例胶合逻辑即体现了这一点。注意,这些配置是独立于芯片的, 在 FTM 模块外部实施。有关芯片的具体实施,请参见芯片专用 FTM 详情。 注 • 为了使用 GTB 信号同步不同 FTM 模块的 FTM 计数 器,每个 FTM 模块的配置都应该确保其 FTM计数器在 gtb_in 信号为 1 时立刻开始计数。 • GTB 特性不提供 FTM 计数器的持续同步,这就意味着 在 FTM 工作期间 FTM 计数器可能丢失同步。GTB 特 性只允许 FTM 计数器同时开始它们的工作。 KEA128 子系列参考手册, Rev. 2, July 2014 458 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.4.26.1 使能全局时基(GTB) 要使能 GTB 特性,请对每个参与的 FTM 模块执行以下步骤: 1. 停止 FTM 计数器:向 SC[CLKS]写入 00b。 2. 将 FTM 编程为预期配置。FTM 计数器模式需要在所有参与模块之间保持一 致。 3. 向 CONF[GTBEEN]写入 1,同时向 CONF[GTBEOUT]写入 0。 4. 在 SC[CLKS]中选择预期的 FTM 计数器时钟源。时钟源需要在所有参与模块之 间保持一致。 5. 复位 FTM 计数器:向 CNT 寄存器中写入任意值。 要在上图所述配置中启动 GTB 特性,请向用作时基的 FTM 模块中的 CONF[GTBEOUT]写入 1。 26.5 复位概述 无论何时,只要有芯片复位,FTM 就会复位。 FTM 何时从复位状态中退出: • • • • • • • FTM 计数器和预分频器计数器为零,且已停止(CLKS[1:0] = 00b); 定时器溢出中断为零,参见定时器溢出中断 ; 通道中断为零,参见通道(n)中断 ; 故障中断为零,参见故障中断 ; 通道处于输入捕捉模式,参见输入捕捉模式 ; 通道输出为零; 通道引脚不由 FTM 控制(ELS(n)B:ELS(n)A = 0:0)(参见 CnSC 寄存器说明中的 表格)。 下图展示了 FTM 在复位之后的行为方式。复位时(项目 1),FTM 计数器将会禁用 (参见状态和控制寄存器中的 CLKS 字段说明),其值将更新为零,而且引脚不由 FTM 控制(参见 CnSC 寄存器说明中的表格)。 复位之后,应该对 FTM 进行配置(项目 2)。有必要根据通道模式来定义 FTM 计数 器模式、FTM 计数限制(MOD 和 CNTIN 寄存器值)、通道模式和的 CnV 寄存器 值。 因此,建议向 CNT 寄存器中写入任意值(项目 3)。采取这种写入操作之后,FTM 计数器会根据 CNTIN 寄存器值更新,通道输出会根据其初始值更新(处于输出比 较模式的通道则例外)(计数器复位 )。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 459 FTM 中断 下一步是通过 CLKS[1:0]位选择 FTM 计数器时钟(项目 4)。有必要强调的一点是, CLKS[1:0]位不为零时,引脚将只由 FTM 控制(参见 CnSC 寄存器说明中的表格)。 (3)向 CNT寄存器写入任意值 (1) FTM复位 FTM计数器 XXXX 0x0000 CLKS[1:0] XX 00 (4)向SC[CLKS]写入1 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 . . . 01 通道(n)输出 (2) FTM配置 通道(n)引脚由FTM控制 注释: – CNTIN = 0x0010 – 通道(n)处于低真组合模式,CNTIN < C(n)V < C(n+1)V < MOD – C(n)V = 0x0015 图 26-88. 通道(n)处于组合模式时复位之后的 FTM 行为方式 下图以示例说明了当通道(n)处于输出比较模式时,如果存在匹配,则切换通道(n)输 出。在输出比较模式下,对 CNT 寄存器采取写入操作后(项目 3),通道输出不会 更新为其初始值。这种情况下,利用软件输出控制(软件输出控制 )或初始化(初 始化 )将通道输出更新为所选值(项目 4)。 (4)使用软件输出控制或初始化 将通道输出更新为零 (3)向 CNT寄存器写入任意值 (1) FTM复位 FTM计数器 XXXX 0x0000 CLKS[1:0] XX 00 (5)向SC[CLKS]写入1 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 . . . 01 通道(n)输出 (2) FTM配置 通道(n)引脚由FTM控制 注释: – CNTIN = 0x0010 – 通道(n)处于输出比较模式,存在匹配时,将切换通道(n)输出 – C(n)V = 0x0014 图 26-89. 通道(n)处于输出比较模式时复位之后的 FTM 行为方式 26.6 FTM 中断 KEA128 子系列参考手册, Rev. 2, July 2014 460 Freescale Semiconductor, Inc. 第 26 章 FlexTimer 模块(FTM) 26.6.1 定时器溢出中断 (TOIE = 1)且(TOF = 1)时,将生成定时器溢出中断。 26.6.2 通道(n)中断 当(CHnIE = 1)且(CHnF = 1)时,会生成通道(n)中断。 26.6.3 故障中断 当(FAULTIE = 1)且(FAULTF = 1)时,生成故障中断。 26.7 初始化流程 建议遵照下列初始化流程对 FlexTimer 操作进行配置。该流程还可用于对 FlexTimer 操作进行全新配置。 • 定义 POL 位。 • 采用 SYNCHOM = 0 屏蔽通道输出。写入 OUTMASK 之后等待两个时钟周期 再执行此操作,以便通道输出为安全值。 •(重新)配置 FTM 计数器和通道以生成周期性信号 - 禁用时钟。若选定的模式 为正交解调器模式,则禁用该模式。(重新)配置的示例: • 写入 MOD。 • 写入 CNTIN。 • 针对所有待使用通道选择 OC、EPWM、CPWM、组合、互补模式 • 选择高电平有效通道模式和低电平有效通道模式。 • 针对所有待使用通道写入 CnV。 •(重新)配置死区和故障控制。 • 不要在未进行软件同步的情况下使用 SWOC(见第 6 项)。 • 不要在未进行软件同步的情况下使用反相(见第 6 项)。 • 不要使用初始化。 • 不要改变极性控制。 • 不要配置硬件同步 • 向 CNT 写入任意值。FTM 计数器复位,并根据新的配置更新通道输出。 • 使能时钟。将非 0 的值写入 CLKS[1:0]位。若在正交解调器模式下,则使能该模 式。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 461 初始化流程 • 针对 SWOC、反相和输出掩码配置软件同步(前两者为按需配置,后者为始终 配置) • 针对“输出掩码写入 SYNC”选择同步(SWSYNC = 0,TRIG2 = 0,TRIG1 = 0,TRIG0 = 0,SYNCHOM = 1,REINIT = 0,CNTMAX = 0,CNTMIN = 0) • 写入 SYNCONF。 • 硬件同步无法使能(HWSOC = 0,HWINVC = 0,HWOM = 0, HWWRBUF = 0,HWRSTCNT = 0,HWTRIGMODE = 0)。 • 用于 SWOC 的软件同步(按需):SWSOC = [0/1]且 SWOC = [0/1]。 • 用于反相的软件同步(按需):SWINVC = [0/1]且 INVC = [0/1]。 • 用于 SWOM 的软件同步(始终):SWOM = 1。不要为写入缓冲区使能 软件同步(因为写入带写入缓冲区的寄存器是通过 CLKS[1:0] = 2’b00 实现的):SWWRBUF = 0 且 CNTINC = 0。 • 用于计数器复位的软件同步(始终):SWRSTCNT = 1。 • 增强同步(始终):SYNCMODE = 1 • 如果使用了 SWOC(SWSOC = 1 且 SWOC = 1),则写入 SWOCTRL 寄存 器。 • 如果使用了反相(SWINVC = 1 且 INVC = 1),则写入 INVCTRL 寄存器。 • 写入 OUTMASK 以使能屏蔽通道。 • 生成“软件触发写入 SYNC”(SWSYNC = 1,TRIG2 = 0,TRIG1 = 0,TRIG0 = 0,SYNCHOM = 1,REINIT = 0,CNTMAX = 0,CNTMIN = 0) KEA128 子系列参考手册, Rev. 2, July 2014 462 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) 27.1 简介 27.1.1 特性 脉宽定时器(PWT)包含下列特性: • 采用 16 位分辨率自动测量脉冲宽度 • 正脉冲和负脉冲的单独脉宽测量 • 可编程的开始测量的触发沿 • 可编程测量逐次交错沿、上升沿或下降沿之间的时间 • 可编程预分频器,时钟输入作为 16 位计数器时基 • 两个可选时钟源—总线时钟和备用时钟 • 四个可选脉冲输入 • 可设定在脉冲宽度值更新及计数器溢出时生成中断 27.1.2 工作模式 下表说明了各种模式下 PWT 模块的工作情况。 模式 说明 Run 使能时,脉宽定时器模块处于激活状态。 Wait 使能时,若对应的中断使能,则脉宽定时器模块处于激活状态,并且可以执行唤醒功能。 Stop 当进入 Stop 模式且保留寄存器内容和工作状态时,脉宽定时器模块暂停。若以复位信号退出 Stop 模 式,则模块复位。若以其他信号源退出 Stop 模式,则模块恢复退出时的工作状态。 Active Background 进入 Debug 模式后,PWT 会挂起所有计数和脉冲边沿检测操作,直到微控制器返回正常用户工作模 式。只要 PWTSR 位(PWT 软件复位)未写入 1 且 PWT 模块仍然使能,那么当返回正常用户工作模 式时,计数和边沿检测会恢复挂起时的数值。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 463 简介 27.1.3 功能框图 下图是脉宽定时器模块(PWT)的功能框图。 PWT_CLK 时钟预分频器(CLKPRE) /2 /2 /2 /2 /2 /2 /2 SYNC ALT_CLK PRE[2:0] PCLKS PWTCLK PWTEN PWTSR 16位自由运行计数器 PWTOV 16 PWT_R1[PPW] PWT_R2[NPW] PWTIN0 PWTIN1 PWTIN2 PWTIN3 溢出 中断 边沿检测和捕捉控制逻辑 PWTIN PWTRDY PINSEL[1:0] PWTIE PINEN0 PINEN1 PINEN3 数据 中断 PRDYIE 解码 PINEN2 POVIE EDGE[1:0] 图 27-1. 脉冲宽度定时器 (PWT) 方框图 注 PWT_CLK 取决于芯片输入时钟。就该芯片而言,它是 TIMER_CLK。 KEA128 子系列参考手册, Rev. 2, July 2014 464 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) 27.2 PWT 信号说明 表 27-1. PWT 信号说明 信号 I/O 上拉 说明 PWTIN[3:0] I 否 脉冲输入 ALTCLK I 否 计数器的备用时钟源 27.2.1 PWTIN[3:0] - 脉宽定时器捕捉输入 输入信号为可来自内部源或外部源的脉冲捕捉输入。PWT 输入由 PINSEL[1:0]选择 并连接到脉宽定时器。如果输入来自外部源且选作 PWT 输入,那么输入端口由 PINSEL[1:0]自动使能为 PWT 功能。待测量脉宽的最小值为 1 个 PWTCLK 周期, 任何比该数值窄的脉冲都会被 PWT 模块忽略。PWTCLK 周期时间取决于 PWT 时 钟源选择和预分频器比例设置。 27.2.2 ALTCLK- 计数器的备用时钟源 PWT 具有备用时钟输入 ALTCLK,在 R1[PCLKS]置位后可将其选作计数器的时钟 源。ALTCLK 输入必须由总线时钟同步。另外还必须适应占空比变化和时钟抖动, 这样 ALTCLK 信号就一定不会超过总线频率的四分之一。通过通用端口引脚可共 用 ALTCLK 引脚。有关此功能的引脚位置和优先级,请参见“引脚和连接”章节。 27.3 存储器映像和寄存器说明 PWT 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_3000 脉宽定时器寄存器 1 (PWT_R1) 32 R/W 0000_0000h 27.3.1/466 4003_3004 脉宽定时器寄存器 2 (PWT_R2) 32 R 0000_0000h 27.3.2/468 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 465 存储器映像和寄存器说明 27.3.1 脉宽定时器寄存器 1 (PWT_R1) 该寄存器定义 PWT 的通用控制和状态位。它还包含正脉宽内容。 地址: 4003_3000h 基准 + 0h 偏移 = 4003_3000h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PPW R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 PWTOV 0 0 POVIE PRE PRDYIE EDGE PWTIE PINSEL PWTEN PCLKS R 0 0 0 0 W 复位 0 0 0 0 0 0 0 0 PWTSR 复位 PWTRDY W 0 0 PWT_R1 字段描述 字段 描述 31–16 PPW 正脉宽 15 PCLKS PWT 时钟源选择 捕捉到的正脉宽值。建议使用半字(16 位)或字(32 位)读出该值。 控制 PWT 计数器时钟源的选择。 0 1 14–13 PINSEL BUS_CLK 选作 PWT 计数器的时钟源。 备用时钟选作 PWT 计数器的时钟源。 PWT 脉冲输入选择 如果该 PWT 输入来自外部源,则使能相应的 PWT 输入端口。 00 01 10 11 PWTIN[0]使能。 PWTIN[1]使能。 PWTIN[2]使能。 PWTIN[3]使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 466 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) PWT_R1 字段描述 (继续) 字段 12–11 EDGE 描述 PWT 输入边沿灵敏度 选择哪个边沿触发脉宽测量以及哪个边沿触发捕捉操作。如果用户需通过更改 EDGE[1:0]的值来改变触发和 捕捉模式,则在更改 EDGE[1:0]的值后需进行 PWT 软件复位。清零 PWTEN 然后对其置位具有相同的效果。 00 01 10 11 10–8 PRE PWT 时钟预分频器(CLKPRE)设置 选择为 PWT 计数器计时所需的时钟分频数值。 000 001 010 011 100 101 110 111 7 PWTEN 使能/禁用 PWT 模块。为避免出现预料外的行为,只要 PWTEN 置位,就不要更改任何 PWT 配置。 使能 PWT 模块以产生中断。 只要 PWTIE 置位,则 PWTRDY 置位时,使能/禁用 PWT 以产生中断。 当 PWTRDY 置位时,禁用 PWT 以产生中断。 当 PWTRDY 置位时,使能 PWT 以产生中断。 PWT 计数器溢出中断使能 当 PWTOV 因 PWT 计数器溢出而置位时,使能/禁用 PWT 以产生中断。 0 1 3 PWTSR 禁用 PWT 以产生中断。 使能 PWT 以产生中断。 PWT 脉宽数据就绪中断使能 0 1 4 POVIE PWT 禁用。 PWT 使能。 PWT 模块中断使能 0 1 5 PRDYIE 时钟分频系数为 1。 时钟分频系数为 2。 时钟分频系数为 4。 时钟分频系数为 8。 时钟分频系数为 16。 时钟分频系数为 32。 时钟分频系数为 64。 时钟分频系数为 128。 PWT 模块使能 0 1 6 PWTIE 在第一个下降沿开始测量脉宽,在所有之后的下降沿上捕捉脉宽。 在第一个上升沿开始测量脉宽,在所有之后的上升沿和下降沿上捕捉脉宽。 在第一个下降沿开始测量脉宽,在所有之后的上升沿和下降沿上捕捉脉宽。 在第一个上升沿开始测量脉宽,在所有之后的上升沿上捕捉脉宽。 当 PWTOV 置位时,禁用 PWT 以产生中断。 当 PWTOV 置位时,使能 PWT 以产生中断。 PWT 软复位 执行 PWT 软复位。该字段始终读取为 0。 0 1 未采取任何动作。 向该字段写 1 将执行 PWT 软复位。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 467 存储器映像和寄存器说明 PWT_R1 字段描述 (继续) 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 2 保留 PWT 脉宽有效 1 PWTRDY 指示 PWT 脉宽寄存器已更新且读取就绪。该字段通过读取 PWTRDY 清零,随后在 PWTRDY 置位时向 PWTRDY 位写入 0。向该字段写入 1 无效。PWTRDY 设置与 EDGE[1:0]位有关。 0 1 PWT 脉宽寄存器未更新。 PWT 脉宽寄存器已更新。 PWT 计数器溢出 0 PWTOV 指示 PWT 计数器已从 0x0000_0xFFFF 运行到 0x0000_0x0000。当 PWTOV 置位时,该字段通过向 PWTOV 写入 0 清零。向该字段写入 1 无效。如果清零该字段时发生另一次溢出事件,则清零失败。 0 1 PWT 计数器无溢出。 PWT 计数器从 0xFFFF 运行到 0x0000。 27.3.2 脉宽定时器寄存器 2 (PWT_R2) 该寄存器包含负脉宽内容以及 16 位自由运行计数器内容。 地址: 4003_3000h 基准 + 4h 偏移 = 4003_3004h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 PWTC R 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 NPW W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PWT_R2 字段描述 字段 31–16 PWTC NPW 描述 PWT 计数器。建议使用半字(16 位)或字(32 位)读出该值。 负脉宽。建议使用半字(16 位)或字(32 位)读出该值。 KEA128 子系列参考手册, Rev. 2, July 2014 468 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) 27.4 功能说明 27.4.1 PWT 计数器和 PWT 时钟预分频器 脉宽定时器(PWT)通过 16 位自由运行计数器(PWT_R2[PWTC])测量脉冲持续时间 或 PWTIN 信号输入的周期。PWT 模块中有一个时钟预分频器(CLKPRE),为 PWT_R2[PWTC]提供分频时钟。时钟预分频器可通过 PWT_R1[PCKLS]从总线时 钟和备用时钟中选择时钟输入。 PWT 计数器使用 CLKPRE 中的分频时钟执行计数器。预分频器的频率可编程设 置,时钟分频系数为 1、2、4、8、16、32、64、128(具体取决于 PRE[2:0]的设置)。 PWT 计数器一使能,就会使用选定且经过分频的时钟源开始计数;检测到第一个有 效边沿(触发沿)时,计数器清零且不加载到寄存器。如果长时间未检测到有效的 触发沿,那么计数器可能溢出。当 16 位自由运行计数器运行时,触发沿之后的任何 待测边沿都会导致 PWT_R2[PWTC]的数值上载至适当的脉宽寄存器。此时, PWT_R2[PWTC]复位至 0x0000,并且时钟预分频器输出也将一同复位。 PWT_R2[PWTC]随后会使用输入时钟再次开始递增。如果 PWT_R2[PWTC]从 0xFFFF 运行到 0x0000,那么 PWTOV 位置位。 27.4.2 边沿检测和捕捉控制 边沿检测和捕捉控制部分检测测量触发沿,并控制更新脉宽寄存器的时间以及具体 更新哪个。 根据 EDGE[1:0]的设置,边沿检测逻辑确定 PWTIN 上待测量脉宽的起始和结束沿, 以及待更新的寄存器字段。详情请参见边沿检测和捕捉控制 。 通过配置 PINSEL[1:0]可从四个源的其中之一选出 PWTIN。 必须注意的是,在边沿检测和捕捉逻辑内,PWT 使用系统从时钟以便采样并同步 PWTIN 脉冲,因此最小 PWTIN 脉宽由该从时钟频率确定。例如,如果该时钟频率 为 50 MHz,那么最小 PWTIN 脉宽必须大于 20 ns(50 MHz 周期),否则 PWT 将无 法捕捉该脉冲且计数器将溢出。有关 PWT 的从时钟频率,请参见“芯片配置”章节。 此外,如果长时间没有 PWTIN 宽度的任何有效边沿,那么 PWT 计数器也将溢出。 EDGE[1:0]为 00 时,第一个下降沿是开始测量脉宽的触发沿。计数器数值在每个后 续下降沿上载至 PWT_R1[PPW]。如果 EDGE[1:0] 设为 11,则第一个上升沿为开始 测量脉冲宽度的触发沿。计数器数值在每个逐次上升沿上载至 PWT_R2[NPW]。在 这两种情况下,可测得 PWTIN 的周期。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 469 功能说明 如果 EDGE[1:0] 设为 01,则第一个上升沿为触发沿。脉宽测量从该边沿开始。 PWT_R1[PPW]在每个后续下降沿上载。PWT_R2[NPW]在每个逐次上升沿上载。 EDGE[1:0]为 10 时,第一个下降沿是测量脉宽的触发沿。PWT_R2[NPW]在每个逐 次上升沿上载,PWT_R1[PPW]在每个逐次下降沿上载。这两种情况下,正脉冲和负 脉冲的测量是单独进行的,且正脉宽上载至 PWT_R1[PPW]。负脉宽上载至 PWT_R2[NPW]。 下图阐明了 PWT 的触发沿检测和脉冲宽度寄存器更新过程。 1 2 3 4 5 6 7 8 9 10 11 12 13 复位 PWTEN PWTR1[PWTEN]一置位,计数器就会开始加计数 PWTIN 清零预计数器。 触发以测量并从0开始加计数。 将计数器上载至PWTR1[PPW] EDGE=00 清零预计数器。 触发以测量并从0开始加计数。 将计数器上载至PWTR1[PPW] 清零预计数器。 触发以测量并从0开始加计数。 计数器上载 将 至PWTR1[PPW] EDGE=01 计数器上载 将 至PWTR2[NPW] EDGE=10 计数器上载 将 至PWTR2[NPW] EDGE=11 清零预计数器。 触发以测量并从0开始加计数。 将计数器上载至PWTR2[NPW] 图 27-2. 触发沿检测和脉宽寄存器更新 PWT_R1[PWTRDY]表明可根据 EDGE[1:0]的设置在 PWT_R1[PPW]和/或 PWT_R2[NPW]中读取数据。 • EDGE[1:0]为 00 时,只要一更新 PWT_R1[PPW],PWT_R1[PWTRDY]就置位。 • EDGE[1:0]为 11 时,只要一更新 PWT_R2[NPW],PWT_R1[PWTRDY]就置位。 • EDGE[1:0]为 01 时,只要一更新 PWTxPPH:L,PWT_R1[PWTRDY]就置位,然 后 PWT_R2[NPW]更新。 • EDGE[1:0]为 10 时,只要一更新 PWT_R2[NPW],PWT_R1[PWTRDY]就置位, 然后 PWT_R1[PPW]更新。 KEA128 子系列参考手册, Rev. 2, July 2014 470 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) PWT_R1[PWTRDY]置位后,已更新的脉宽寄存器将数据传输到对应的 16 位读缓冲 区。只要芯片处于正常 Run 模式或 Debug 模式,脉宽寄存器的读取值就始终来自对 应的读取缓冲区。在读取后向 PWT_R1[PWTRDY]标志写入 0 可清零该字段。在清 零 PWT_R1[PWTRDY]前,都无法更新 16 位读缓冲区。但这并不影响 PWT 计数器 的脉冲宽度寄存器上传。 如果完成了另一个脉冲测量并更新了脉宽寄存器,那么 PWT_R1[PWTRDY]标志清 零失败,也就是说,PWT_R1[PWTRDY]仍然会置位,但是只要清零了该操作,就 会再次更新 16 位读缓冲区。用户应当在清零 PWT_R1[PWTRDY]之前完成脉宽数 据读取以免数据缺失。此机制可确保当 MCU 没有足够的时间读第一个脉冲测量值 时,第二个脉冲测量值不会丢失。该机制通过 MCU 复位而自动重启:向 PWT_R1[PWTSR]写入 1 或者在向 PWT_R1[PWTEN]写入 0后向其写入 1。 下图阐明了脉冲宽度寄存器的缓冲机制: PWTIN CPU总线 PWTRDY 清零PWTRDY 读/写 逻辑 PPW缓冲区 边沿检测和捕捉逻辑 读缓冲区上载控制 PPW 读取数据 16位计数器 NPW NPW缓冲区 EDGE[1:0] 图 27-3. 脉宽寄存器的缓冲机制 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 471 复位 如果 PWT 完成了任何脉宽测量,那么在该数据上载至脉宽寄存器后会生成一个使 PWT_R2[CNTC]和时钟预分频器输出复位的信号。为确保不遗漏计数,在完成脉宽 测量后的一个总线时钟周期内会进行 PWT_R2[CNTC]和时钟预分频器输出的复位。 27.5 复位 27.5.1 通用 27.5.2 复位操作说明 PWT 软复位机制已嵌入到 PWT 中,用于复位/重新启动脉冲宽度定时器。向 PWT_R1[PWTSR]写入 1 即可触发 PWT 软复位。(该字段始终读取为 0)。不像 CPU 复位,PWT 复位不会将 PWT 内的所有内容恢复到其复位状态。下列步骤可用 于说明复位操作。 1. PWT 计数器设为 0x0000。 2. PWT 计数器的 16 位缓冲区复位。 3. PWT 时钟预分频器输出复位。 4. 边沿检测逻辑复位。 5. 捕获逻辑复位,同时重新启动脉冲宽度寄存器的闭锁机制。 6. PWT_R1[PPW]和 PWT_R2[NPW]设为 0x0000。 7. PWT_R1[PWTOV]和 PWT_R1[PWTRDY]设为 0。 8. 所有其他 PWT 寄存器设置不变。 向 PWT_R1[PWTEN]写入 0 同样可以获得上述效果,除了复位状态将保持到 PWT_R1[PWTEN]置 1。 27.6 中断 27.6.1 中断操作说明 PWT 的另一个主要构成部分是中断控制逻辑。PWT_R1[PWTOV]和 PWT_R1[POVIE]置位后,可生成 PWT 溢出中断。PWT_R1[PWTRDY]位和 PWT_R1[PRDYIE]置位后,可生成脉宽数据就绪中断。PWT_R1[PWTIE]控制 PWT 模块的中断生成。生成中断并不影响 PWT 的功能。 KEA128 子系列参考手册, Rev. 2, July 2014 472 Freescale Semiconductor, Inc. 第 27 章 脉冲宽度定时器(PWT) 27.6.2 应用示例 BUSCLK PWTCLK PWTCNT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 0 计数器读取结果:23个pwtclk 实际脉宽:23个pwtclk + err PWTIN 计数器读取结果:22个pwtclk 实际脉宽:22个pwtclk + err (err < 1个pwtclk + 1个总线时钟) 图 27-4. PWTCLK 为 1 分频总线时钟的示例 BUSCLK PWTCLK PWTCNT PWTIN 0 1 2 3 4 5 6 7 计数器读取结果:11个pwtclk 实际脉宽:11个pwtclk + err 8 9 10 11 0 1 2 3 4 5 6 7 8 9 1011 0 计数器读取结果:11个pwtclk 实际脉宽:11个pwtclk + err (err < 1个pwtclk + 1个总线时钟) 图 27-5. PWTCLK 为 2 分频总线时钟的示例 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 473 中断 BUSCLK PWTCLK PWTCNT PWTIN 0 1 3 2 5 4 计数器读取结果:5个pwtclk 实际脉宽:5个pwtclk + err 0 1 3 2 5 4 0 计数器读取结果:5个pwtclk 实际脉宽:5个pwtclk + err (err < 1个pwtclk + 1个总线时钟) 图 27-6. PWTCLK 为 4 分频总线时钟的示例 BUSCLK PWTCLK PWTCNT PWTIN 0 1 计数器读取结果:2个pwtclk 实际脉宽:2个pwtclk + err 2 0 1 2 计数器读取结果:2个pwtclk 实际脉宽:2个pwtclk + err (err < 1个pwtclk + 1个总线时钟) 图 27-7. PWTCLK 为 8 分频总线时钟的示例 KEA128 子系列参考手册, Rev. 2, July 2014 474 Freescale Semiconductor, Inc. 第 28 章 周期性中断定时器(PIT) 28.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 PIT 模块是一组定时器,用于生成中断和触发脉冲。 28.1.1 结构框图 下图是 PIT 模块的结构框图。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 475 信号说明 PIT 外设总线 PIT 寄存器 load_value 定时器1 中断 触发器 定时器n 外设 总线时钟 图 28-1. PIT 结构框图 注 有关该 MCU 使用的 PIT 通道数,请参见各芯片的 PIT 信 息。 28.1.2 特性 该数据块具有如下主要特性: • 定时器能够生成触发脉冲 • 定时器能够生成中断 • 可屏蔽中断 • 每个定时器都具有独立的超时周期 28.2 信号说明 PIT 模块没有外部引脚。 KEA128 子系列参考手册, Rev. 2, July 2014 476 Freescale Semiconductor, Inc. 第 28 章 周期性中断定时器(PIT) 28.3 存储器映像/寄存器说明 本节详细说明 PIT 模块中可访问的所有寄存器。 • 保留寄存器将读取为 0,写操作将无效。 • 有关该 MCU 使用的 PIT 通道数,请参见各芯片的 PIT 信息。 PIT 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_7000 PIT 模块控制寄存器 (PIT_MCR) 32 R/W 0000_0006h 28.3.1/477 4003_7100 定时器加载值寄存器 (PIT_LDVAL0) 32 R/W 0000_0000h 28.3.2/478 4003_7104 当前定时器值寄存器 (PIT_CVAL0) 32 R 0000_0000h 28.3.3/479 4003_7108 定时器控制寄存器 (PIT_TCTRL0) 32 R/W 0000_0000h 28.3.4/479 4003_710C 定时器标志寄存器 (PIT_TFLG0) 32 R/W 0000_0000h 28.3.5/480 4003_7110 定时器加载值寄存器 (PIT_LDVAL1) 32 R/W 0000_0000h 28.3.2/478 4003_7114 当前定时器值寄存器 (PIT_CVAL1) 32 R 0000_0000h 28.3.3/479 4003_7118 定时器控制寄存器 (PIT_TCTRL1) 32 R/W 0000_0000h 28.3.4/479 4003_711C 定时器标志寄存器 (PIT_TFLG1) 32 R/W 0000_0000h 28.3.5/480 28.3.1 PIT 模块控制寄存器 (PIT_MCR) 当 PIT 进入 Debug 模式时,此寄存器可用于启用或禁用 PIT 定时器时钟并控制定时 器。 访问:用户读取/写入 地址: 4003_7000h 基准 + 0h 偏移 = 4003_7000h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 R W 复位 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 477 存储器映像/寄存器说明 15 14 13 12 11 10 9 8 7 6 5 4 3 2 0 R 1 0 MDIS FRZ 1 0 Reserved 位 W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 1 PIT_MCR 字段描述 字段 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31–3 保留 此字段为保留字段。 2 Reserved 模块禁用 -(PIT 部分) 1 MDIS 禁用标准定时器。 必须在执行任何其他设置之前使能该字段。 0 1 标准 PIT 定时器的时钟使能。 标准 PIT 定时器的时钟禁用。 冻结 0 FRZ 当器件进入 Debug 模式时,允许停止定时器。 0 1 定时器在 Debug 模式下继续运行。 定时器在 Debug 模式下停止运行。 28.3.2 定时器加载值寄存器 (PIT_LDVALn) 这些寄存器选择定时器中断的定时溢出周期。 访问:用户读取/写入 Address: 4003_7000h base + 100h offset + (16d × i), where i=0d to 1d 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TSV 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 478 Freescale Semiconductor, Inc. 第 28 章 周期性中断定时器(PIT) PIT_LDVALn 字段描述 字段 描述 定时器起始值 TSV 设置定时器起始值。定时器将倒计时至 0,然后生成一个中断并再次加载该寄存器值。将新值写入该寄存器 不会重启定时器,定时器到期后会加载新值。要中止当前周期并用新值开始一个定时器周期,必须先禁用该 定时器然后再将其使能。 28.3.3 当前定时器值寄存器 (PIT_CVALn) 这些寄存器指示当前定时器位置。 访问:仅限用户读取 Address: 4003_7000h base + 104h offset + (16d × i), where i=0d to 1d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TVL R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PIT_CVALn 字段描述 字段 描述 当前定时器值 TVL 代表当前定时器值(若定时器已使能)。 注: • 若定时器已禁用,请勿使用该字段,因为其值不可靠。 • 定时器使用向下计数器。如果 MCR[FRZ]置位,定时器在 Debug 模式下会被冻结。 28.3.4 定时器控制寄存器 (PIT_TCTRLn) 这些寄存器包含每个定时器的控制位。 访问:用户读取/写入 Address: 4003_7000h base + 108h offset + (16d × i), where i=0d to 1d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CHN TIE TEN 0 0 0 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 479 存储器映像/寄存器说明 PIT_TCTRLn 字段描述 字段 描述 31–3 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 2 CHN 链模式 激活时,定时器 n-1 需先到期,定时器 n 才能递减 1。 不能链接定时器 0。 0 1 定时器不链接。 定时器链接到前一定时器。例如,对于通道 2,若该字段置位,则定时器 2 链接到定时器 1。 定时器中断使能 1 TIE 某个中断挂起或 TFLGn[TIF]置位时,使能该中断将立即引起中断事件。为避免这种情况,必须先清零相关的 TFLGn[TIF]。 0 1 定时器 n 的中断请求禁用。 只要 TIF 置位,就会请求中断。 定时器使能 0 TEN 使能或禁用定时器。 0 1 定时器 n 禁用。 定时器 n 使能。 28.3.5 定时器标志寄存器 (PIT_TFLGn) 这些寄存器保存 PIT 中断标志。 访问:用户读取/写入 Address: 4003_7000h base + 10Ch offset + (16d × i), where i=0d to 1d 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 R TIF w1c W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PIT_TFLGn 字段描述 字段 31–1 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 480 Freescale Semiconductor, Inc. 第 28 章 周期性中断定时器(PIT) PIT_TFLGn 字段描述 (继续) 字段 0 TIF 描述 定时器中断标志 在定时器周期结束时置 1。将 1 写入该标志可将其清零。写入 0 则无效。若使能或 TCTRLn[TIE] = 1,TIF 将 引发中断请求。 0 1 定时溢出尚未发生。 定时溢出已经发生。 28.4 功能说明 本节说明该模块的功能。 28.4.1 常规操作 本节详细说明该模块的内部操作。每个定时器都可用于生成触发脉冲和中断。每个 中断都可用于单独的中断线。 28.4.1.1 定时器 定时器在使能时定期生成触发脉冲。定时器加载 LDVAL 寄存器指定的起始值,倒 数至 0,然后再次加载相应的起始值。每次定时器达到 0 时,它就会生成一个触发 脉冲并置位中断标志。 所有中断都可通过设置 TCTRLn[TIE]来使能或屏蔽。新的中断只能在清除上一个 中断之后生成。 需要时,定时器的当前计数值可通过 CVAL 寄存器读取。 通过 TCTRLn[TEN]先禁用定时器再将其使能可重启计数周期。请参见下图。 禁用 定时器 定时器已使能 起始 值 = p1 重新使能 定时器 触发 事件 p1 p1 p1 p1 图 28-2. 停止和启动定时器 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 481 功能说明 先禁用定时器,设置新加载值,然后再次使能定时器,可以修改运行中的定时器的 计数周期。参见下图。 定时器使能 起始值 = p1 禁用定时器, 设置新加载值 触发 事件 重新使能 定时器 p2 p1 p2 p2 p1 图 28-3. 修改运行中的定时器的周期 还可以在不重启定时器的情况下更改计数周期,方法是将新的加载值写入 LDVAL。 该值将在下一个触发事件之后加载。参见下图。 定时器使能 起始值 = p1 新起始 值p2设置 触发 事件 p1 p1 p1 p2 p2 图 28-4. 动态设置新加载值 28.4.1.2 Debug 模式 在 Debug 模式下,定时器将根据 MCR[FRZ]决定是否冻结。其目的是协助软件开 发,使开发人员能够暂停处理器,调查系统的当前状态,如定时器值等,然后继续 运行。 28.4.2 中断 所有定时器都支持中断生成。 相关的向量地址和优先级,请参见 MCU 规范。 定时器中断可通过置位 TCTRLn[TIE]来使能。相关定时器发生定时溢出时, TFLGn[TIF]置位为 1;将 1 写入对应的 TFLGn[TIF]可将其清零。 KEA128 子系列参考手册, Rev. 2, July 2014 482 Freescale Semiconductor, Inc. 第 28 章 周期性中断定时器(PIT) 28.4.3 链接定时器 如果某个定时器使链模式处于使能状态,那么只有在上一个定时器溢出后,它才会 开始计时。因此,如果定时器 n-1 已倒数至 0,定时器 n 的值将递减 1。这样就能将 某些定时器链接起来形成更长的定时器。第一个定时器(定时器 0)不能链接至任 何其他定时器。 28.5 初始化和应用信息 在配置示例中: • PIT 时钟的频率为 50 MHz。 • 定时器 1 每隔 5.12 ms 生成一个中断。 • 定时器 3 每隔 30 ms 生成一个触发事件。 PIT 模块必须通过将 0 写入 MCR[MDIS]来激活。 50 MHz 时候总频率等于时钟周期 20 ns。 定时器 1 需要每隔 5.12 ms/20 ns = 256,000 个周期触发一次,定时器 3 每隔 30 ms/20 ns = 1,500,000 个周期触发一次。 LDVAL 寄存器触发器的值计算如下: LDVAL 触发器 = (周期 / 时钟周期) -1 这意味着将 0x0003E7FF 和 0x0016E35F 分别写入 LDVAL1 和 LDVAL3。 定时器 1 的中断通过置位 TCTRL1[TIE]来使能。定时器通过将 1 写入 TCTRL1[TEN]来启动。 定时器 3 只能用于触发。因此,定时器 3 通过将 1 写入 TCTRL3[TEN]来启动。 TCTRL3[TIE]保持为 0。 下面的示例代码与上述设置一致: // turn on PIT PIT_MCR = 0x00; // Timer 1 PIT_LDVAL1 = 0x0003E7FF; // setup timer 1 for 256000 cycles PIT_TCTRL1 = TIE; // enable Timer 1 interrupts PIT_TCTRL1 |= TEN; // start Timer 1 // Timer 3 PIT_LDVAL3 = 0x0016E35F; // setup timer 3 for 1500000 cycles PIT_TCTRL3 |= TEN; // start Timer 3 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 483 链接定时器配置示例 28.6 链接定时器配置示例 在配置示例中: • PIT 时钟的频率为 100 MHz。 • 定时器 1 和定时器 2 可用。 • 每隔 1 分钟应发生一次中断。 PIT 模块需要通过将 0 写入 MCR[MDIS]来激活。 100 MHz 时钟频率相当于 10 ns 的时钟周期,因此 PIT 需要计数 60 亿个周期,这不 是单个定时器能够做到的。因此,将定时器 1 设置为每 6 s(6 亿个周期)触发一 次。定时器 2 链接至定时器 1,经过编程后触发 10 次。 LDVAL 寄存器触发器的值等于周期数减 1,因此 LDVAL1 接收值 0x23C345FF, LDVAL2 接收值 0x00000009。 定时器 2 的中断通过置位 TCTRL2[TIE]来使能,链模式通过置位 TCTRL2[CHN]来 激活,定时器通过将 1 写入 TCTRL2[TEN]来启动。TCTRL1[TEN]需要置位, TCTRL1[CHN]和 TCTRL1[TIE]需要清零。 下面的示例代码与上述设置一致: // turn on PIT PIT_MCR = 0x00; // Timer 2 PIT_LDVAL2 PIT_TCTRL2 PIT_TCTRL2 PIT_TCTRL2 = 0x00000009; // = TIE; // enable |= CHN; // chain |= TEN; // start setup Timer Timer Timer Timer 2 for 10 counts 2 interrupt 2 to Timer 1 2 // Timer 1 PIT_LDVAL1 = 0x23C345FF; // setup Timer 1 for 600 000 000 cycles PIT_TCTRL1 = TEN; // start Timer 1 KEA128 子系列参考手册, Rev. 2, July 2014 484 Freescale Semiconductor, Inc. 第 29 章 实时计数器(RTC) 29.1 简介 实时计数器(RTC)由一个 16 位计数器、一个 16 位比较器、若干个基于二进制和基 于十进制的预分频器、三个时钟源、一个可编程周期性中断和一个可编程外部切换 脉冲输出组成。该模块可用于当日时间、日历或任何任务调度功能。它还能充当周 期唤醒,将 MCU 从低功耗模式、Stop 模式和 Wait 模式中唤醒而无需外部组件。 29.2 特性 RTC 模块特性包括: • 16 位向上计数器 • 16 位模数匹配限制 • 软件可控制的周期性匹配中断 • 可通过软件选择预分频器输入的时钟源;集成可编程 16 位预分频器 • OSC 32.768KHz(标称值) 。 • LPO (~1 kHz) • 总线时钟 • 内部基准时钟(32 kHz) 29.2.1 工作模式 本节定义 RTC 在 Stop、Wait 和 Background Debug 模式下的工作。 29.2.1.1 Wait 模式 如果 RTC 在执行 WAIT 指令前已使能,那么在 Wait 模式下会继续运行。因此,如 果实时中断使能,就可利用 RTC 使 MCU 离开 Wait 模式。为实现最低电流消耗, 如果 RTC 在 Wait 模式期间无需用作中断源 ,那么必须通过软件使其停止。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 485 外部信号说明 29.2.1.2 Stop 模式 如果在执行 STOP 指令之前已启用 RTC,则此 RTC 将继续在 Stop 模式下运行。因 此,如果已使能实时中断,RTC 可用于使 MCU 退出 Stop 模式,而无需外部组件。 29.2.2 结构框图 下图显示的是 RTC 模块的结构框图。 RTCMOD 16位模数 16位锁存器 16位模数 1 16位比较器 EXT CLK LPO CLK BUS CLK IRC CLK 时钟 分频器 RTIF D Q RTC 中断 请求 R 16位计数器 RTIE D Q Q RTCLKS RTCPS RTCCNT 将1写入RTIF 输出 切换 RTCO 图 29-1. 实时计数器(RTC)结构框图 29.3 外部信号说明 RTCO 是 RTC 的输出。MCU 复位后,RTC_SC[RTCO]置位为高电平。计数器溢出 时,电平输出切换。 29.4 寄存器定义 RTC 包括状态和控制寄存器、16 位计数器寄存器和 16 位模数寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 486 Freescale Semiconductor, Inc. 第 29 章 实时计数器(RTC) RTC 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4003_D000 RTC 状态和控制寄存器 (RTC_SC) 32 R/W 0000_0000h 29.4.1/487 4003_D004 RTC 模数寄存器 (RTC_MOD) 32 R/W 0000_0000h 29.4.2/488 4003_D008 RTC 计数器寄存器 (RTC_CNT) 32 R 0000_0000h 29.4.3/489 29.4.1 RTC 状态和控制寄存器 (RTC_SC) RTC_SC 包含实时中断状态标志(RTIF)和切换输出使能位(RTCO)。 地址: 4003_D000h 基准 + 0h 偏移 = 4003_D000h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 RTCLKS RTCPS RTIF RTIE 0 0 W 复位 0 0 0 0 0 0 0 0 0 0 RTCO 0 R 0 0 0 RTC_SC 字段描述 字段 31–16 保留 15–14 RTCLKS 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 实时时钟源选择 该读/写字段选择 RTC 预分频器的时钟源输入。更改时钟源会将预分频器和 RTCCNT 计数器清零。复位会 将 RTCLKS 清除为 00。 00 01 10 11 13–11 保留 10–8 RTCPS 外部时钟源。 实时时钟源为 1 kHz (LPOCLK)。 内部基准时钟(ICSIRCLK)。 总线时钟。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 实时时钟预分频器选择 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 487 寄存器定义 RTC_SC 字段描述 (继续) 字段 描述 该读/写字段为时钟源选择基于二进制或基于十进制的分频值。更改预分频器值会将预分频器和 RTCCNT 计 数器清零。复位会将 RTCPS 清除为 000。 关闭 如果 RTCLKS = x0,它为 1;如果 RTCLKS = x1,它为 128。 如果 RTCLKS = x0,它为 2;如果 RTCLKS = x1,它为 256。 如果 RTCLKS = x0,它为 4;如果 RTCLKS = x1,它为 512。 如果 RTCLKS = x0,它为 8;如果 RTCLKS = x1,它为 1024。 如果 RTCLKS = x0,它为 16;如果 RTCLKS = x1,它为 2048。 如果 RTCLKS = x0,它为 32;如果 RTCLKS = x1,它为 100。 如果 RTCLKS = x0,它为 64;如果 RTCLKS = x1,它为 1000。 000 001 010 011 100 101 110 111 实时中断标志 7 RTIF 该状态位指示 RTC 计数器寄存器已达到 RTC 模数寄存器中的值。写入逻辑 0 无效。写入逻辑 1 会将该位 清零并清除实时中断请求。复位会将 RTIF 清除为 0。 0 1 RTC 计数器未达到 RTC 模数寄存器中的值。 RTC 计数器已达到 RTC 模数寄存器中的值。 实时中断使能 6 RTIE 该读/写位使能实时中断。如果 RTIE 置位,那么在 RTIF 置位时会生成中断。复位会将 RTIE 清除为 0。 0 1 实时中断请求禁用。使用软件轮询。 实时中断请求使能。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 5 保留 实时计数器输出 4 RTCO 该读/写位使能实时计数器把切换输出到引脚上。如果该位置位,那么在 RTC 计数器溢出时,将切换 RTCO 至引脚。 0 1 保留 实时计数器输出禁用。 实时计数器输出使能。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 29.4.2 RTC 模数寄存器 (RTC_MOD) RTC_MOD 指示 16 位模数值。 地址: 4003_D000h 基准 + 4h 偏移 = 4003_D004h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 R 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 MOD W 复位 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 488 Freescale Semiconductor, Inc. 第 29 章 实时计数器(RTC) RTC_MOD 字段描述 字段 描述 31–16 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 MOD RTC 模数 该读/写字段包含模数值,在比较结果匹配时将计数值复位到 0x0000,以及置位 SC[RTIF]状态字段。值 0x0000 使 SC[RTIF]在预分频器输出的每个上升沿都置位。复位会将该模数设置为 0x0000。 29.4.3 RTC 计数器寄存器 (RTC_CNT) RTC_CNT 指示 16 位计数器的当前 RTC 计数的只读值。 地址: 4003_D000h 基准 + 8h 偏移 = 4003_D008h 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 R 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 CNT W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RTC_CNT 字段描述 字段 31–16 保留 CNT 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 RTC 计数 该只读字段包含 16 位计数器的当前值,先读取 CNT[7:0],再读取 CNT[15:8]。写操作对该寄存器无效。复 位或将其他值写入 SC[RTCLKS]和 SC[RTCPS]会将该计数清除为 0x0000。 29.5 功能说明 RTC 由一个主 16 位上加计数器并带有 16 位模数寄存器、一个时钟源选择器以及一 个预分频器模块(可选择基于二进制或基于十进制的值)组成。该模块还包含用于 引脚分配的软件可选中断逻辑和切换逻辑。 MCU 复位后,计数器停止并复位到 0x0000,模数寄存器设置到 0x0000,预分频器 关闭。外部振荡器时钟被选作默认时钟源。要启动预分频器,需将非 0 值写入预分 频器选择字段(RTC_SC[RTCPS])。 时钟源可通过软件选择:外部振荡器(OSC)、片上低功耗振荡器(LPO)、32-kHz 内部 基准时钟和总线时钟。RTC 时钟选择字段(RTC_SC[RTCLKS])用于选择预分频器 所需的时钟源。如果将不同的值写入 RTC_SC[RTCLKS],预分频器和 CNT 计数器 会复位到 0x00。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 489 功能说明 RTC_SC[RTCPS]和 RTC_SC[RTCLKS]选择所需的分频值。如果将不同的值写入 RTC_SC[RTCPS],预分频器和 RTCCNT 计数器会复位到 0x00。下表列出了不同的 预分频器周期值。 表 29-1. 预分频器周期 RTCPS 32768Hz OSC 时钟源 LPO 时钟(1 kHz)源预 预分频器周期(RTCLKS 分频器周期(RTCLKS = = 00) 01) 内部基准时钟(32.768 kHz)源预分频器周期 (RTCLKS = 10) 总线时钟(8 MHz)源预 分频器周期(RTCLKS = 11) 000 关闭 关闭 关闭 关闭 001 30.5176 µs 128 ms 30.5176 µs 16 µs 010 61.0351 µs 256 ms 61.0351 µs 32 µs 011 122.0703 µs 512 ms 122.0703 µs 64 µs 100 244.1406 µs 1024 ms 244.1406 µs 128 µs 101 488.28125 µs 2048 ms 488.28125 µs 256 µs 110 976.5625 µs 100 ms 976.5625 µs 12.5 µs 111 1.9531 ms 1s 1.9531 µs 125 µs RTC 模数寄存器(RTC_MOD)允许将比较值设置为 0x0000 到 0xFFFF 之间的任意 值。计数器处于有效状态时,会以所选比率递增,直到计数值与模数值匹配为止。 当这些值匹配时,计数器复位到 0x0000 并继续计数。只要出现匹配情况,实时中断 标志(RTC_SC[RTIF])就会置位。该标志在模数值变为 0x0000 时置位。写入 RTC_MOD 的模数值处于锁存状态,直到 RTC 计数器溢出或选择的 RTC_SC[RTCPS]为非 0 值。 只要 RTC_SC[RTIF]置位,RTC 便允许生成一个中断。要使能实时中断,需将实时 中断使能字段(RTC_SC[RTIE])置位。将 1 写入 RTC_SC[RTIF]可清零 RTC_SC[RTIF]。 通过电平翻转,RTC 还允许输出到外部管脚。必须置位 RTC_SC[RTCO]以使能外部 管脚翻转。该功能有效时,电平取决于计数器溢出时管脚的前一状态。 29.5.1 RTC 操作示例 本节举例说明了计数器达到模数寄存器中匹配值时的 RTC 操作。 KEA128 子系列参考手册, Rev. 2, July 2014 490 Freescale Semiconductor, Inc. 第 29 章 实时计数器(RTC) OSC (32768Hz) RTCLKS = 00b RTC时钟 RTCPS = 001b RTCCNT RTCPS = 001b 32765 32766 32767 0 1 2 3 4 16位模数 32767 32767 32767 32766 32766 32766 32766 32766 RTCMOD 32766 32766 32766 RTIF RTCO 图 29-2. RTC 计数器溢出示例 在上例中,选择的是外部时钟源。预分频器设置为 RTC_SC[RTCPS] = 001b 或直通。 当 RTC_MOD 寄存器中的模数值设置为 32766 时,16 位比较器使用的实际模数值 是 32767。当计数器 RTC_CNT 达到模数值 32767 时,计数器溢出到 0x00 并继续计 数。模数值通过提取 RTC_MOD 寄存器中的值来更新。当计数器值从 0x7FFF 变为 0x0000 时,实时中断标志 RTC_SC[RTIF]置位。RTC_SC[RTCO]在 RTC_SC[RTIF] 置位时也翻转。 29.6 初始化/应用信息 本节给出代码示例旨在就如何进行 RTC 模块的初始化和配置向用户提供基本指引。 软件示例采用 C 语言实现。 下述示例显示使用 OSC 时钟源实现可能的最低功耗时,如何用 RTC 实现计时。 示例: 29.6.1 RTC ISR 中实现的软件日历 /* Initialize the elapsed time counters */ Seconds = 0; Minutes = 0; Hours = 0; Days=0; /* Configure RTC to interrupt every 1 second from OSC (32.768KHz) clock source */ RTC_MOD = 511; // overflow every 32 times RTC_SC = RTC_SC_RTCPS_MASK; // external 32768 clock selected with 1/64 predivider. RTC_SC = RTC_SC_RTIF_MASK | RTC_SC_RTIE_MASK; // interrupt cleared and enabled /********************************************************************** Function Name : RTC_ISR Notes : Interrupt service routine for RTC module. **********************************************************************/ KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 491 初始化/应用信息 void RTC_ISR(void) { /* Clears the interrupt flag, RTIF, and interrupt request */ RTC_SC |= RTC_SC_RTIF_MASK; /* RTC interrupts every 1 Second */ Seconds++; /* 60 seconds in a minute */ if (Seconds > 59) { Minutes++; Seconds = 0; } /* 60 minutes in an hour */ if (Minutes > 59) { Hours++; Minutes = 0; } /* 24 hours in a day */ if (Hours > 23) { Days ++; Hours = 0; } } KEA128 子系列参考手册, Rev. 2, July 2014 492 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 30.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 串行外设接口(SPI)模块提供 MCU 与外设之间的全双工同步串行通信。外设可以是 其他微控制器、模数转换器、移位寄存器、传感器、存储器等。 在主机模式下,SPI 的波特率最高等于总线时钟除以 2;在从机模式下,SPI 的波特 率最高等于总线时钟除以 4。软件可对状态标志轮询,或对 SPI 操作进行中断驱动。 注 有关实际最大的 SPI 波特率,请参见芯片配置详细信息和器 件数据手册。 SPI 还并集成了用于接收数据缓冲区的硬件匹配特性。 30.1.1 特性 SPI 包括这些特性: • 主机模式或从机模式工作 • 全双工或单线双向模式 • 可编程发送比特率 • 双缓冲发送和接收数据寄存器 • 串行时钟相位和极性选择 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 493 简介 • 从机选择输出 • 带 CPU 中断功能的模式错误标志位 • Wait 模式期间的 SPI 操作控制 • 可供选择的 MSB 优先或 LSB 优先移位 • 接收数据缓冲器硬件匹配特性 30.1.2 工作模式 SPI 有如下三种工作模式。 • Run 模式 这是基本工作模式。 • Wait 模式 SPIWait 模式是可配置的低功耗模式,由 SPIx_C2 寄存器中的 SPISWAI 位控制。 在 Wait 模式下,如果 C2[SPISWAI]被清零,则 SPI 如同在 Run 模式下一样工 作。 如果 C2[SPISWAI]置位,则 SPI 进入降低功耗状态,SPI 时钟发生器关闭。 如果 SPI 配置为主机,任何正在进行的发送都会停止,不过在 CPU 进入 Run 模 式后会恢复。 如果 SPI 配置为从机,字节的接收和发送会继续进行,因而从机 仍然与主机同步。 • Stop 模式 为了降低功耗,SPI 在 Stop 模式(外设总线时钟停止但内部逻辑状态仍然保留) 下无效。 如果 SPI 配置为主机,任何正在进行的发送都会停止,不过在 CPU 进 入 Run 模式后会恢复。如果 SPI 配置为从机,数据的接收和发送会继续进行, 因而从机仍然与主机同步。 SPI 在 Stop 模式(外设总线时钟停止且不保留内部逻辑状态)下完全禁用。当 CPU 从这些 Stop 模式中唤醒时,所有 SPI 寄存器内容都会复位。 有关工作模式的详细说明,请参见低功耗模式选项 。 30.1.3 结构框图 本节的结构框图表示了 SPI 系统连接、SPI 模块的内部结构以及控制主机模式比特 率的 SPI 时钟分频器。 KEA128 子系列参考手册, Rev. 2, July 2014 494 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 30.1.3.1 SPI 系统结构框图 下图表示的是采用主从配置进行连接的两个 MCU 的 SPI 模块。主机发起所有 SPI 数据传输。传输期间,主机将数据(通过 MOSI 引脚)移出到从机,同时将数据从 从机移入(通过 MISO 引脚)。传输有效地交换两个 SPI 系统的 SPI 移位寄存器中的 数据。SPSCK 信号是主机的时钟输出和从机的输入。从机必须通过用低电平信号 对从机选择输入(SS 引脚)进行选择。该系统中,主机将其 SS 引脚配置为可选的 从机选择输出。 从机 主机 MOSI MOSI SPI移位器 SPI移位器 MISO 8位 SPSCK 时钟 发生器 SS MISO 8位 SPSCK SS 图 30-1. SPI 系统连接 30.1.3.2 SPI 模块结构框图 下图是 SPI 模块的结构框图。SPI 模块的核心部分是 SPI 移位寄存器。数据被写入 具有双缓冲区的发送器(写入 SPIx_D)并在数据传输开始时被转移到 SPI 移位寄存 器。移入 8 位数据后,数据被转移到可从 SPIx_D 读取数据的具有双缓冲区的接收 器。通过引脚多路复用逻辑控制 MCU 引脚与 SPI 模块之间的连接。 当 SPI 配置为主机时,时钟输出连接到 SPSCK 引脚,移位器输出连接到 MOSI,移 位器输入从 MISO 引脚接入。 当 SPI 配置为从机时,SPSCK 引脚连接到 SPI 的时钟输入,移位器输出连接到 MISO,移位器输入从 MOSI 引脚接入。 在外部 SPI 系统中,只需将所有 SPSCK 引脚彼此相连,将所有 MISO 引脚连在一 起,并将所有 MOSI 引脚连在一起。对于这些引脚,外设经常使用略有不同的名称。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 495 外部信号说明 引脚控制 M SPE MOSI (MOMI) S Tx缓冲区(写入SPIxD) 使能 SPI系 统 M SPI移位寄存器 移 出 移 入 Rx缓冲区(读取SPIxD) MISO (SISO) S SPC0 BIDIROE LSBFE 总线速率 时钟 MSTR 移位 方向 SPIBR 时钟发生器 移位 时钟 Rx缓冲区 满 Tx缓冲区 空 主机时钟 时钟 逻辑 从机时钟 主机/从机 M SPSCK S 主机/ 从机 模式选择 MODSSOE 模式故障 检测 SPRF 8位比较器 SPIxM SS SPMF SPMIE SPTEF SPTIE MODF SPIE 中断 请求 图 30-2. 无 FIFO 的 SPI 模块功能框图 30.2 外部信号说明 SPI 可视情况共用四个端口引脚。这些引脚的功能取决于 SPI 控制位的置位。SPI 禁用(SPE = 0)时,这四个引脚恢复到不受 SPI 控制的其他功能(基于芯片配置)。 KEA128 子系列参考手册, Rev. 2, July 2014 496 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 30.2.1 SPSCK — SPI 串行时钟 当 SPI 使能为从机时,此引脚为串行时钟输入。当 SPI 使能为主机时,此引脚为串 行时钟输出。 30.2.2 MOSI — 主机数据输出,从机数据输入 当 SPI 被使能为主机且 SPI 引脚控制零(SPC0)为 0 时(非双向模式),此引脚为串行 数据输出。当 SPI 被使能为从机且 SPC0 为 0 时,此引脚为串行数据输入。如果 SPC0 为 1,选择单线双向模式和主机模式,此引脚将成为双向数据 I/O 引脚 (MOMI)。同时,双向模式输出使能位确定引脚用作输入(BIDIROE 是 0)还是用 作输出(BIDIROE是 1)。如果 SPC0 是 1 且已选择从机模式,则 SPI 将不能使用此 引脚,此引脚将恢复至其他功能(基于芯片配置)。 30.2.3 MISO — 主机数据输入,从机数据输出 当 SPI 被使能为主机且 SPI 引脚控制零(SPC0)为 0 时(非双向模式),此引脚为串行 数据输入。当 SPI 被使能为从机且 SPC0 为 0 时,此引脚为串行数据输出。如果 SPC0 为 1,选择单线双向模式和从机模式,此引脚将变成双向数据 I/O 引脚(SISO), 而双向模式输出使能位将确定引脚用作输入(BIDIROE 为 0)还是用作输出 (BIDIROE 为 1)。如果 SPC0 为 1 且已选择主机模式,则 SPI 将不能使用此引脚, 此引脚将恢复至其他功能(基于芯片配置)。 30.2.4 SS — 从机选择 当 SPI 被使能为从机时,此引脚为低电平有效的从机选择输入。当 SPI 被使能为主 机且模式故障使能关闭(MODFEN 为 0)时,SPI 将不能使用此引脚,而引脚将恢 复至其他功能(基于芯片配置)。当 SPI 被使能为主机且 MODFEN 为 1 时,从机选 择输出使能位能够决定此引脚是用作模式故障输入(SSOE 为 0)或是用作从机选择 输出(SSOE 为 1)。 30.3 存储器映像/寄存器定义 SPI 具有可选择 SPI 选项、控制波特率、报告 SPI 状态、保持 SPI 数据匹配值以及 用于发送/接收数据的 8 位寄存器。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 497 存储器映像/寄存器定义 SPI 存储器映射 地址偏移量 绝对地址(十 (十六进制) 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 0 4007_6000 SPI 控制寄存器 1 (SPI0_C1) 8 R/W 04h 30.3.1/498 1 4007_6001 SPI 控制寄存器 2 (SPI0_C2) 8 R/W 00h 30.3.2/500 2 4007_6002 SPI 波特率寄存器 (SPI0_BR) 8 R/W 00h 30.3.3/501 3 4007_6003 SPI 状态寄存器 (SPI0_S) 8 R 20h 30.3.4/502 5 4007_6005 SPI 数据寄存器 (SPI0_D) 8 R/W 00h 30.3.5/503 7 4007_6007 SPI 匹配寄存器 (SPI0_M) 8 R/W 00h 30.3.6/504 0 4007_7000 SPI 控制寄存器 1 (SPI1_C1) 8 R/W 04h 30.3.1/498 1 4007_7001 SPI 控制寄存器 2 (SPI1_C2) 8 R/W 00h 30.3.2/500 2 4007_7002 SPI 波特率寄存器 (SPI1_BR) 8 R/W 00h 30.3.3/501 3 4007_7003 SPI 状态寄存器 (SPI1_S) 8 R 20h 30.3.4/502 5 4007_7005 SPI 数据寄存器 (SPI1_D) 8 R/W 00h 30.3.5/503 7 4007_7007 SPI 匹配寄存器 (SPI1_M) 8 R/W 00h 30.3.6/504 30.3.1 SPI 控制寄存器 1 (SPIx_C1) 该读/写寄存器包括 SPI 使能控制、中断使能和配置选项。 地址: 4007_6000h 基准 + 0h 偏移 = 4007_6000h 位 读 写 复位 7 6 5 4 3 2 1 0 SPIE SPE SPTIE MSTR CPOL CPHA SSOE LSBFE 0 0 0 0 0 1 0 0 SPI0_C1 字段描述 字段 7 SPIE 描述 SPI 中断使能:用于 SPRF 和 MODF 使能用于 SPI 接收缓冲区满(SPRF)和模式故障(MODF)事件的中断。 0 1 6 SPE SPRF 或 MODF 为 1 时请求硬件中断 SPI 系统使能 使能 SPI 系统并将 SPI 端口引脚专门用于 SPI 系统功能。如果 SPE 清零,则 SPI 禁用且强制进入空闲状态, S 寄存器中的所有状态位都复位。 0 1 5 SPTIE 来自 SPRF 和 MODF 的中断被禁止——使用轮询 SPI 系统不工作 SPI 系统使能 SPI 发送中断使能 这是 SPI 发送缓冲区空(SPTEF)的中断使能位。中断在 SPI 发送缓冲区为空(SPTEF 置位)时发生。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 498 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) SPI0_C1 字段描述 (继续) 字段 描述 0 1 4 MSTR 主机/从机模式选择 选择主机或从机模式操作。 0 1 3 CPOL 来自 SPTEF 的中断被禁止(使用轮询) SPTEF 为 1 时,请求硬件中断。 SPI 模块配置为 SPI 从机 SPI 模块配置为 SPI 主机 时钟极性 选择反相或非反相 SPI 时钟。要在 SPI 模块之间发送数据,SPI 模块必须具有相同的 CPOL 值。 该位有效地将一个反相器与来自 SPI 主机或传输至 SPI 从机的时钟信号串联。有关详细信息,请参见“SPI 时 钟格式”的说明。 0 1 2 CPHA 时钟相位 针对不同种类的同步串行外设选择两种时钟格式中的一种。有关详细信息,请参见“SPI 时钟格式”的说明。 0 1 1 SSOE 高电平有效 SPI 时钟(空闲时为低电平) 低电平有效 SPI 时钟(空闲时为高电平) SPSCK 上的第一个边沿出现在数据传输的第一个周期的中间。 SPSCK 上的第一个边沿出现在数据传输的第一个周期的开始。 从机选择输出使能 该位与 C2 寄存器中的模式故障使能(MODFEN)字段和主机/从机(MSTR)控制位共同确定 SS 引脚的功能。 0 1 C2[MODFEN]为 0 时:在主机模式下,SS 引脚功能为通用 I/O(非 SPI)。在从机模式下,SS 引脚功能 为从机选择输入。 C2[MODFEN]为 1 时:在主机模式下,SS 引脚功能为模式故障的 SS 输入。在从机模式下,SS 引脚功 能为从机选择输入。 C2[MODFEN]为 0 时:在主机模式下,SS 引脚功能为通用 I/O(非 SPI)。在从机模式下,SS 引脚功能 为从机选择输入。 C2[MODFEN]为 1 时:在主机模式下,SS 引脚功能为自动 SS 输出。在从机模式下,SS 引脚功能为从 机选择输入。 0 LSBFE LSB 优先(移位器方向) 该位不影响数据寄存器中 MSB 和 LSB 的位置。在对数据寄存器的读写操作中,MSB 始终是位 7。 0 1 SPI 串行数据传输从最高有效位开始。 SPI 串行数据传输从最低有效位开始。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 499 存储器映像/寄存器定义 30.3.2 SPI 控制寄存器 2 (SPIx_C2) 该读/写寄存器用于控制 SPI 系统的可选特性。 位 6 不实施,且始终读取为 0。 地址: 4007_6000h 基准 + 1h 偏移 = 4007_6001h 位 读 写 复位 7 6 5 4 3 2 1 0 SPMIE 保留 保留 MODFEN BIDIROE 保留 SPISWAI SPC0 0 0 0 0 0 0 0 0 SPI0_C2 字段描述 字段 7 SPMIE 描述 SPI 匹配中断使能 该位是 SPI 接收数据缓冲区硬件匹配(SPMF)功能的中断使能位。 0 1 来自 SPMF 的中断被禁止(使用轮询) SPMF 为 1 时,请求硬件中断。 6 Reserved 此字段为保留字段。 不要对该保留位进行写操作。 5 Reserved 此字段为保留字段。 不要对该保留位进行写操作。 4 MODFEN 主机模式故障功能使能 SPI 针对从机模式进行配置时,该位无意义或无效。 (SS 引脚是从机选择输入。)在主机模式下,该位决定如 何使用 SS 引脚。有关详细信息,请参见 C1 寄存器中 SSOE 位的说明。 0 1 3 BIDIROE 模式故障功能禁用,主机 SS 引脚恢复为不受 SPI 控制的通用 I/O 模式故障功能使能,主机 SS 引脚用作模式故障输入或从机选择输出 双向模式输出使能 双向模式因 SPI 引脚控制 0 (SPC0)置 1 而使能时,BIDIROE 决定是否对单一双向 SPI I/O 引脚的 SPI 数据 输出驱动器使能。当 SPI 配置为主机或从机时,它分别使用 MOSI (MOMI)或 MISO (SISO)引脚作为单一 SPI 数据 I/O 引脚。SPC0 为 0 时,BIDIROE 无意义或无效。 0 1 输出驱动器禁用,SPI 数据 I/O 引脚用作输入 SPI I/O 引脚使能,用作输出 2 Reserved 此字段为保留字段。 不要对该保留位进行写操作。 1 SPISWAI SPI 在 Wait 模式下停止 该位在器件处于 Wait 模式时用于省电。 0 1 0 SPC0 SPI 时钟在 Wait 模式下继续工作。 SPI 时钟在 MCU 进入 Wait 模式时停止工作。 SPI 引脚控制 0 启用双向引脚配置。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 500 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) SPI0_C2 字段描述 (继续) 字段 描述 0 SPI 针对数据输入和数据输出使用独立的引脚(引脚模式为正常)。 在主机工作模式下:MISO 为主机输入,MOSI 为主机输出。 1 在从机工作模式下:MISO 为从机输出,MOSI 为从机输入。 SPI 配置为单线双向操作(引脚模式为双向)。 在主机工作模式下:SPI 不使用 MISO;MOSI 为主机输入(BIDIROE 为 0 时)或主机 I/O(BIDIROE 为 1 时)。 在从机工作模式下:MISO 为从机输入(BIDIROE 为 0 时)或从机 I/O(BIDIROE 为 1 时) ;SPI 不使用 MOSI。 30.3.3 SPI 波特率寄存器 (SPIx_BR) 使用该寄存器设置 SPI 主机的预分频器和比特率分频因子。随时可对该寄存器进行 读写操作。 地址: 4007_6000h 基准 + 2h 偏移 = 4007_6002h 位 7 读 写 复位 0 6 5 4 3 2 SPPR[2:0] 0 0 0 1 0 0 0 SPR[3:0] 0 0 0 SPI0_BR 字段描述 字段 7 保留 6–4 SPPR[2:0] 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 SPI 波特率预分频因子 该 3 位字段选择 SPI 波特率预分频器 8 个分频因子中的一个。该预分频器的输入为总线速率时钟 (BUSCLK)。该预分频器的输出驱动 SPI 波特率分频器的输入。有关详细信息,请参见“SPI 波特率生成”的说 明。 000 001 010 011 100 101 110 111 SPR[3:0] 波特率预分频器分频因子为 1。 波特率预分频器分频因子为 2。 波特率预分频器分频因子为 3。 波特率预分频器分频因子为 4。 波特率预分频器分频因子为 5。 波特率预分频器分频因子为 6。 波特率预分频器分频因子为 7。 波特率预分频器分频因子为 8。 SPI 波特率分频因子 该 4 位字段选择 SPI 波特率分频器 9 个分频因子中的一个。该分频器的输入来自 SPI 波特率预分频器。有 关详细信息,请参见“SPI 波特率生成”的说明。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 501 存储器映像/寄存器定义 SPI0_BR 字段描述 (继续) 字段 描述 0000 0001 0010 0011 0100 0101 0110 0111 1000 所有其他值 波特率分频因子为 2。 波特率分频因子为 4。 波特率分频因子为 8。 波特率分频因子为 16。 波特率分频因子为 32。 波特率分频因子为 64。 波特率分频因子为 128。 波特率分频因子为 256。 波特率分频因子为 512。 保留 30.3.4 SPI 状态寄存器 (SPIx_S) 该寄存器包含只读状态位。写操作无意义或无效。 注 位 3 至位 0 不执行且始终读为 0。 地址: 4007_6000h 基准 + 3h 偏移 = 4007_6003h 位 7 6 5 4 读 SPRF SPMF SPTEF MODF 0 0 1 0 3 2 1 0 0 0 0 写 复位 0 0 SPI0_S 字段描述 字段 7 SPRF 描述 SPI 读取缓冲区满标志 SPRF 在 SPI 传输完成时置位,指示可以从 SPI 数据(D)寄存器读取接收到的数据。SPRF 的方法是在其置位 时对 SPRF 进行读操作,然后对 SPI 数据寄存器进行读操作。 0 1 6 SPMF 在接收数据缓冲区中有数据 SPI 匹配标志 接收数据缓冲区中的值与 M 寄存中的值匹配时,SPRF 为 1,SPMF 随后置位。要将该标志清零,在 SPMF 置位时对其进行读操作,然后写入 1。 0 1 5 SPTEF 在接收数据缓冲区中无数据 接收数据缓冲区中的值与 M 寄存中的值不匹配 接收数据缓冲区中的值与 M 寄存中的值匹配 SPI 发送缓冲区空标志 该位在发送数据缓冲区为空时置位。清零 SPTEF 的方法是在 SPTEF 置位时对 S 寄存器进行读操作,然后 将某个数据值写入 D 处的发送缓冲区。在向 D 寄存器中写入数据之前,必须在 SPTEF 被置 1 时读取 S 寄存 器;否则,将忽略 D 写入。 SPTEF 在发送缓冲区中的所有数据都搬运到发送移位寄存器时自动置位。对于 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 502 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) SPI0_S 字段描述 (继续) 字段 描述 空闲 SPI,写入 D 的数据几乎是立即传输到移位器,SPTEF 在两个总线周期内置位,从而使第二组数据可以 排队进入发送缓冲区。移位寄存器中的数据传输完成后,发送缓冲区中的排队数据自动移入移位器,SPTEF 置位表示发送缓冲区中有空间来容纳新数据。如果发送缓冲器中没有处于等待状态的新数据,SPTEF 仍保持 置位状态,且缓冲器中没有数据移至移位器。 如果传输不停止,则会再次发出上一个发送的数据。 0 1 4 MODF SPI 发送缓冲区空 主机模式错误标志 MODF 在 SPI 配置为主机且从机选择输入变为低电平时置位,表示另一个 SPI 器件也配置为主机。SS 引脚 仅在 C1[MSTR]为 1、C2[MODFEN]为 1 且 C1[SSOE]为 0 时用作模式故障错误输入;其他情况下,MODF 绝不会置位。清零 MODF 的方法是在 MODF 为 1 时对其进行读操作,然后对 SPI 控制寄存器 1 (C1)进行写 操作。 0 1 保留 SPI 发送缓冲区非空 无模式故障错误 检测到模式故障错误 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 30.3.5 SPI 数据寄存器 (SPIx_D) 该寄存器一起构成 SPI 数据的输入和输出寄存器。写入这些寄存的结果是写入发送 数据缓冲区,以便让数据排队并发送。 SPI 配置为主机时,发送数据缓冲区中排队的数据在前一发送完成后会被立即发送。 S 寄存器中的 SPTEF 位指示发送数据缓冲区准备接纳新数据的时间。 必须在数据 写入 SPI 数据寄存之前且 S[SPTEF]置位的情况下对 S 寄存器进行读操作,否则写操 作会被忽略。发送 DMA 请求使能(TXDMAE 为 1)的情况下:如果 S[SPTEF]置 位,DMA 无需先对 S 寄存器进行读操作便可自动对 SPI 数据寄存器进行写操作。 在 S[SPRF]置位后以及另一个传输完成前的任何时候,都可以从 SPI 数据寄存读取 数据。如果在新传输结束前未能从接收数据缓冲区将数据读出,则会引起接收溢出 状况,并且新传输的数据会丢失。新数据丢失的原因是接收缓冲区仍保持前一字符, 未准备好接纳新数据。接收溢出状况没有相应的指示,因此用户必须确保先从接收 缓冲区读取前一数据,然后再启动新的传输。 地址: 4007_6000h 基准 + 5h 偏移 = 4007_6005h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 Bits[7:0] 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 503 功能说明 SPI0_D 字段描述 字段 Bits[7:0] 描述 数据(低字节) 30.3.6 SPI 匹配寄存器 (SPIx_M) 该寄存器都含有硬件比较值。当 SPI 接收数据缓冲区中接收到的值等于该硬件比较 值时,S 寄存器中的 SPI 匹配标志(S[SPMF])置位。 地址: 4007_6000h 基准 + 7h 偏移 = 4007_6007h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 Bits[7:0] 0 0 0 0 SPI0_M 字段描述 字段 Bits[7:0] 描述 硬件比较值(低字节) 30.4 功能说明 本节说明该模块的功能。 30.4.1 综述 使能 SPI 系统的方法是置位 SPI 控制寄存器 1 中的 SPI 使能(SPE)位。C1[SPE]置位 时,四个相关的 SPI 端口引脚专门用于 SPI 功能: • 从机选择 (SS) • 串行时钟 (SPSCK) • 主机输出/从机输入 (MOSI) • 主机输入/从机输出 (MISO) KEA128 子系列参考手册, Rev. 2, July 2014 504 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 在 SPI 主机中发起 SPI 传输的方法是:先在 S[SPTEF] = 1 时对 SPI 状态寄存器 (SPIx_S)进行读操作,然后将数据写入发送数据缓冲区(写入 SPIxD )。传输完成 时,接收到的数据移入接收数据缓冲区。SPIxD 寄存器用作 SPI 接收数据缓冲区(读 操作)和 SPI 发送数据缓冲区(写操作)。 通过 SPI 控制寄存器 1 (SPIx_C1)中的时钟相位控制(CPHA)位和时钟极性控制 (CPOL)位选择四种可能的时钟格式中的一种提供给 SPI 系统。 CPOL 位只选择非 反相或反相时钟。 C1[CPHA]用于支持两种截然不同的协议,其通过在奇数 SPSCK 边沿或偶数 SPSCK 边沿上进行数据采样而实现。 SPI 可配置为以主机或从机进行工作。SPI 控制寄存器 1 中的 MSTR 位置位时,选 择主机模式;C1[MSTR]被清零时,选择从机模式。 30.4.2 主机模式 SPI 在 C1[MSTR]置位时以主机模式工作。只有主机 SPI 模块能发起发送。使发送 开始的方法是:在 S[SPTEF] = 1 时先对 SPIx_S 寄存器进行读操作,然后对主机 SPI 数据寄存器进行写操作。如果移位寄存器为空,字节会立即转移到移位寄存器。 数 据在串行时钟的控制下在 MOSI 引脚上移出。 • SPSCK • SPI 波特率寄存器中的波特率选择位 SPR3、SPR2、SPR1、SPR0 和波特率 预选择位 SPPR2、SPPR1、SPPR0 共同控制波特率发生器并决定发送速度。 SPSCK 引脚是 SPI 时钟输出。通过 SPSCK 引脚,主机的波特率发生器控制 从机外设的移位寄存器。 • MOSI、MISO 引脚 • 在主机模式下,串行数据输出引脚(MOSI)和串行数据输入引脚(MISO)的功 能由 SPC0 和 BIDIROE 控制位确定。 • SS 引脚 • 如果 C2[MODFEN]和 C1[SSOE]均置位,那么 SS 引脚配置为从机选择输出。 SS 输出在每次发送期间变为低电平,在 SPI 处于空闲状态时变为高电平。 如果 C2[MODFEN]置位且 C1[SSOE]被清零,则 SS 引脚配置为用于检测模 式故障错误的输入。如果 SS 输入变为低电平,则表示存在模式故障错误 (另一个主机试图驱动 MOSI 和 SPSCK 线路)。在该情况下,SPI 通过清零 C1[MSTR]立即切换到从机模式,并且还禁用从机输出缓冲区 MISO(双向 模式下则是 SISO)。结果,所有输出都禁用,SPSCK、MOSI 和 MISO 均为 输入。如果在发生模式故障时有发送正在进行,那么该发送会中止并且 SPI 会强制进入空闲状态。该模式故障错误还会置位 SPI 状态寄存器 (SPIx_S) 中的模式故障(MODF)标志。如果 S[MODF]置位时,SPI 中断使能位(SPIE) KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 505 功能说明 置位,则随后还会请求 SPI 中断序列。在主机刚开始时,SPI 数据寄存器进 行写操作时,会有半个 SPSCK 周期的延迟。延迟之后,SPSCK 在主机中启 动。传输操作的其余部分略有不同,具体取决于 SPI 控制寄存器 1 中 SPI 时 钟相位位 CPHA 指定的时钟格式(参见 SPI 时钟格式 )。 注 在主机模式下,更改 C1[CPOL]、C1[CPHA]、C1[SSOE]、 C1[LSBFE]、C2[MODFEN]、C2[SPC0]、C2[BIDIROE] (C2[SPC0]置位时)、SPPR2-SPPR0 和 SPR3-SPR0 会中止正 在进行的发送并强制使SPI 进入空闲状态。远程从机无法检 测出这一问题,因此主机必须确保远程从机被设置回闲置状 态。 30.4.3 从机模式 SPI 在 SPI 控制寄存器 1 中的 MSTR 位被清零时以从机模式工作。 • SPSCK 在从机模式下,SPSCK 是来自主机的 SPI 时钟输入。 • MISO、MOSI 引脚 在从机模式下,串行数据输出引脚(MISO)和串行数据输入引脚(MOSI)的功能由 SPI 控制寄存器 2 中的 SPC0 位和 BIDIROE 位确定。 • SS 引脚 SS 引脚是从机选择输入。在数据发送开始之前,从机 SPI 的 SS 引脚必须为低 电平。SS 在发送完成之前必须一直保持低电平。 如果 SS 变为高电平,SPI 会 强制进入空闲状态。 SS 输入还控制串行数据输出引脚。如果 SS 为高电平(未选中),则串行数据输 出引脚为高阻抗。如果 SS 为低电平,则 SPI 数据寄存器中的首位会从串行数据 输出引脚驱动输出。 此外,如果未选中从机(SS 为高电平),那么就会忽略 SPSCK 输入并且 SPI 移位寄存器不会发生内部移位。 虽然 SPI 能够进行双工操作,但是部分 SPI 外围设备在从机模式中只能接收 SPI 数据。这些更简单的设备没有串行数据输出引脚。 KEA128 子系列参考手册, Rev. 2, July 2014 506 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 注 使用具有双工能力的外设时,切勿同时使能如下的两个接收 器:二者的串行输出驱动同一系统从机的串行数据输出线 路。 只要不是一个以上的从机驱动系统从机的串行数据输出线路,多个从机从一个主机 接收同一信息是可以的,不过主机不会从所有接收从机接收到返回信息。 如果 SPI 控制寄存器 1 中的 CPHA 位处于清零状态,那么 SPSCK 输入上的奇数边 沿会使串行数据输入引脚处的数据进入锁存状态。偶数边沿使之前从串行数据输入 引脚锁存的值移入 SPI 移位寄存器的 LSB 或 MSB,具体情况取决于 LSBFE 位。 如果 C1[CPHA]置位,那么 SPSCK 输入上的偶数边沿会使串行数据输入引脚上的数 据进入锁存状态。奇数边沿使之前从串行数据输入引脚锁存的值移入 SPI 移位寄存 器的 LSB 或 MSB,具体情况取决于 C1[LSBFE]。 如果 C1[CPHA]置位,第一个边沿用于将第一数据位移到串行数据输出引脚上。当 C1[CPHA]处于清零状态且 SS 输入为低电平(已选择从机)时,SPI 数据的首位从 串行数据输出引脚驱动输出。移出第 8 位数据后,认为传输完成,接收数据转移到 SPI 数据寄存器。为了指示传输完成,SPI 状态寄存器中的 SPRF 标志置位。 注 在从机模式下,更改 C2[BIDIROE](C2[SPC0]置位时)、 C1[CPOL]、 C1[CPHA]、C1[SSOE]、C1[LSBFE]、 C2[MODFEN]和 C2[SPC0]位会破坏正在进行的发送,必须 避免此类情况。 30.4.4 SPI 时钟格式 为了支持不同制造商的各种同步串行外设,SPI 系统的控制寄存器 1 有一个时钟极 性(CPOL)位和一个时钟相位(CPHA)控制位,用于选择四种时钟格式中的一种进行 数据传输。C1[CPOL]选择插入一个与时钟串联的反相器。C1[CPHA]选择时钟与数 据之间的两种不同时钟相位关系中的一种。 下图所示为 CPHA = 1 时的时钟格式。图顶部显示的是供参考的 8 位时间,其中, 位 1 开始于第一个 SPSCK 边沿,位 8 结束于第八个 SPSCK 边沿后的半个 SPSCK 周期。MSB 优先和 LSB 优先行表示 SPI 数据位的顺序,它取决于 LSBFE 的设置。 图中显示了 SPSCK 极性的两种形态,但对于特定传输,只有一种波形适用,具体 取决于 C1[CPOL]中的值。SAMPLE IN 波形施加于从机的 MOSI 输入或主机的 MISO 输入。MOSI 波形施加于主机的 MOSI 输出引脚,MISO 波形施加于从机的 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 507 功能说明 MISO 输出。SS OUT 波形施加于主机的从机选择输出(前提是 C2[MODFEN]和 C1[SSOE] = 1)。主机 SS 输出会在传输开始前的半个 SPSCK 周期变为低电平,在 传输的第八位时间结束时变回高电平。SS IN 波形施加于从机的从机选择输入。 位时间 # (基准) 1 2 ... 6 7 位7 位0 位6 位1 ... ... 位2 位5 位1 位6 8 SPSCK (CPOL = 0) SPSCK (CPOL = 1) 采样输入 (MISO或MOSI) MOSI (主机输出) MSB优先 LSB优先 位0 位7 MISO (从机输出) SS输出 (主机) SS IN (从机) 图 30-3. SPI 时钟格式(CPHA = 1) 当 C1[CPHA] = 1 时,从机在 SS 变为低电平有效时开始驱动其 MISO 输出,但数据 要等到第一个 SPSCK 边沿后才定义。第一个 SPSCK 边沿将数据的第一位从移位 器移出到主机的 MOSI 输出和从机的 MISO 输出上。在下一个 SPSCK 边沿,主机 和从机分别对 MISO 和 MOSI 输入上的数据位值进行采样。在第三个 SPSCK 边 沿,SPI 移位器移动一个位位置,以便移入刚刚采样的位值,并将第二数据位值从 移位器的另一端分别移出到主机的 MOSI 输出和从机的 MISO 输出。 当 C1[CPHA] = 1 时,从机的 SS 输入在两次传输之间无需变为高电平无效状态。采 用该时钟格式时,可能会发生背靠背发送,如下所述: 1. 一个发送正在进行。 2. 一个新数据字节在正在进行的发送完成之前被写入发送缓冲区。 3. 正在进行的发送完成后,新的已就绪数据会被立即发送。 在这两次连续发送之间,无需插入暂停;SS 引脚保持低电平。 KEA128 子系列参考手册, Rev. 2, July 2014 508 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 下图所示为 C1[CPHA] = 0 时的时钟格式。图顶部显示的是供参考的 8 位时间,其 中,位 1 在从机被选中时(SS 输入变为低电平)开始,位 8 结束于最后一个 SPSCK 边沿。MSB 优先和 LSB 优先行显示 SPI 数据位的顺序,它取决于 LSBFE 的设置。 图中显示了 SPSCK 极性的两种形态,但对于特定传输,只有一种波形适用,具体 取决于 CPOL 中的值。SAMPLE IN 波形施加于从机的 MOSI 输入或主机的 MISO 输入。MOSI 波形施加于主机的 MOSI 输出引脚,MISO 波形施加于从机的 MISO 输 出。SS OUT 波形施加于主机施加于的从机选择输出(前提是 C2[MODFEN]和 C1[SSOE] = 1)。主机 SS 输出在传输的第一位时间开始时变为有效的低电平,在传 输的第八位时间结束后的半个 SPSCK 周期变回高电平。SS IN 波形施加于从机的 从机选择输入。 位时间 # (基准) 1 2 位7 位0 位6 位1 ... 6 7 位2 位5 位1 位6 8 SPSCK (CPOL = 0) SPSCK (CPOL = 1) 采样输入 (MISO或MOSI) MOSI (主机输出) MSB优先 LSB优先 ... ... 位0 位7 MISO (从机输出) SS输出 (主机) SS IN (从机) 图 30-4. SPI 时钟格式(CPHA = 0) 当 C1[CPHA] = 0 时,从机在 SS 变为低电平有效时开始用第一数据位值(MSB 或 LSB,具体取决于 LSBFE)驱动其 MISO 输出。在第一个 SPSCK 边沿,主机和从 机分别对 MISO 和 MOSI 输入上的数据位值进行采样。在第二个 SPSCK 边沿,SPI 移位器移动一个位位置,以便移入刚刚采样的位值,并将第二数据位值从移位器的 另一端分别移出到主机的 MOSI 输出和从机的 MISO 输出。当 C1[CPHA] = 0 时, 从机的 SS 输入在两次传输之间必须变为无效的高电平状态。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 509 功能说明 30.4.5 SPI 波特率生成 如下图所示,SPI 波特率发生器的时钟源是总线时钟。三个预分频位 (SPPR2:SPPR1:SPPR0)选择预分频因子 1、2、3、4、5、6、7 或 8。三个速率选择位 (SPR3:SPR2:SPR1:SPR0)对预分频器级的输出进行 2、4、8、16、32、64、128、256 或 512 分频,以获得内部 SPI 主机模式比特率时钟。 波特率发生器仅当 SPI 处于主机模式且发生串行传输时被激活。在其他情况下,会 禁用分频器以降低 IDD 电流。 波特率因子等式如下所示(不包括 SPI 波特率因子表中保留的组合)。 BaudRateDivisor = (SPPR + 1) × 2(SPR + 1) 可按照以下公式计算波特率: BaudRate = BusClock / BaudRateDivisor 预分频器 总线 时钟 1、2、3、4、5、6、7或8 分频 SPPR2:SPPR1:SPPR0 波特率分频器 2、4、8、16、32、64、128、 256或512 分频 主机 SPI 比特率 SPR3:SPR2:SPR1:SPR0 图 30-5. SPI 波特率生成 30.4.6 特殊功能 以下各节说明 SPI 模块的特殊功能。 30.4.6.1 SS 输出 SS 输出在发送期间自动将 SS 引脚驱动为低电平以选择外部器件,在空闲期间将SS 引脚驱动为高电平以取消选择外部器件。当选择 SS 输出时,SS 输出引脚连接到外 部器件的 SS 输入引脚。 在 SPI 正常操作期间,SS 输出仅在主机模式下可用;要使能该功能,请按照 C1[SSOE]的说明执行 C1[SSOE]和 C2[MODFEN]操作。 使能 SS 输出时,模式故障功能禁用。 KEA128 子系列参考手册, Rev. 2, July 2014 510 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 注 在多主机系统中使用 SS 输出功能时应注意,因为无法利用 模式故障功能来检测主机之间的系统错误。 30.4.6.2 双向模式(MOMI 或 SISO) 选择双向模式是在 SPI 控制寄存器 2 中的 SPC0 位置位时(参见下表)。在该模式 下,SPI 仅使用一个串行数据引脚与一个或多个外部器件接合。C1[MSTR]决定使用 哪个引脚。MOSI 引脚成为串行数据 I/O (MOMI)引脚(适用于主机模式),MISO 引 脚成为串行数据 I/O (SISO)引脚(适用于从机模式)。SPI 不使用主机模式下的 MISO 引脚和从机模式下的 MOSI 引脚。 表 30-1. 正常模式和双向模式 SPE = 1 时 主机模式 MSTR = 1 从机模式 MSTR = 0 串行输出 正常模式 MOSI SPI SPC0 = 0 SPI 串行输入 MISO 串行输出 双向模式 SPI SPC0 = 1 MOSI 串行输入 MOMI 串行输出 串行输入 SPI BIDIROE 串行输入 MISO BIDIROE 串行输出 SISO 各串行 I/O 引脚的方向取决于 C2[BIDIROE]。如果该引脚配置为输出,则移位寄存 器的串行数据从该引脚驱动输出。该引脚也是移位寄存器的串行输入。 SPSCK 对于主机模式是输出,对于从机模式是输入。 SS 对于主机模式是输入或输出,但对于从机模式始终是输入。 双向模式不影响 SPSCK 功能和 SS 功能。 注 处于双向主机模式且模式故障特性使能时,MISO 和 MOSI 这两个数据引脚都可供 SPI 占用,不过 MOSI 常用于双向模 式下的发送且 SPI 不使用 MISO。 如果发生模式故障,SPI 会自动切换至从机模式。在该情况下,MISO 变为由 SPI 占 用且 SPI 不使用 MOSI。如果 MISO 引脚另作他用,则应考 虑这种情形。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 511 功能说明 30.4.7 错误条件 SPI 模块有一个错误条件:模式故障错误。 30.4.7.1 模式故障错误 如果 SPI 配置为主机的同时 SS 输入变为低电平,那么表示存在系统错误(有一个 以上的主机可能在同时尝试驱动 MOSI 和 SPSCK 线路)。 这种情况在正常工作中 是不允许的,在 C2[MODFEN]置位的情况下,它会使 SPI 状态寄存器中的 MODF 位自动置位。 在 SPI 处于主机模式且 C2[MODFEN]被清零的特殊情况下,SPI 不使用 SS 引脚。 此时,模式故障错误功能禁用,MODF 保持被清零状态。如果 SPI 系统配置为从 机,那么 SS 引脚是专用输入引脚。 模式故障错误在从机模式下不会发生。 发生模式故障错误时,SPI 会切换到从机模式,但从机输出缓冲区禁用的情况除外。 因此,SPSCK、MISO 和 MOSI 引脚会强制变为高阻抗输入,以免与另一输出驱动 器发生任何可能的冲突。正在进行的发送会中止并且 SPI 会强制进入空闲状态。 对于在主机模式下配置的 SPI 系统,如果在双向模式下发生模式故障错误,那么 MOMI(双向模式下的 MOSI)的输出使能会被清零(若之前已置位)。对于在从机 模式下配置的 SPI 系统,双向模式下不会发生任何模式故障错误。 将模式错误标志自动清零的方法是:先对 SPI 状态寄存器(MODF 置位时)进行读 操作,再对 SPI 控制寄存器 1 进行写操作。 将模式错误标志清零后,SPI 会再次变 为正常主机或从机。 30.4.8 低功耗模式选项 本节说明低功耗模式选项。 30.4.8.1 Run 模式下的 SPI 在 Run 模式下,当 SPI 控制寄存器 1 中的 SPI 系统使能(SPE)位处于清零状态时, SPI 系统处于低功耗禁用状态。SPI 寄存器仍处于可访问状态,但该模块内核的时钟 被禁用。 KEA128 子系列参考手册, Rev. 2, July 2014 512 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 30.4.8.2 Wait 模式下的 SPI SPI 在 Wait 模式下的操作取决于 SPI 控制寄存器 2 中 SPISWAI 位的状态。 • 如果 C2[SPISWAI]处于清零状态,则当 CPU 处于 Wait 模式时,SPI 正常工作。 • 如果 C2[SPISWAI]置位,则当 CPU 处于 Wait 模式时,SPI 时钟发生器停止工 作,SPI 模块进入降耗状态。 • 如果 C2[SPISWAI]置位且 SPI 配置为主机,那么任何正在进行的发送和接收 都会在进入 Wait 模式时停止。SPI 退出 Wait 模式时,发送和接收恢复。 • 如果 C2[SPISWAI]置位且 SPI 配置为从机,那么任何正在进行的发送和接收 都会继续进行(如果主机继续驱动 SPSCK)。这就使从机保持与主机和 SPSCK 的同步。 如果主机在从机处于 Wait 模式的同时发送数据,那么从机会继续发送与 Wait 模式开始时的工作模式一致的数据(也就是说,如果从机当前正在向 主机发送 SPIx_D,则它会继续发送该字节。 否则,如果从机当前正在发送 从主机接收到的最后数据字节,则它会继续发送主机字节中的数据)。 注 从机处于 Wait 模式或 Stop 模式(外设总线时钟停止但内部 逻辑状态得以保留)时,如果预期主机会提供数据,则必须 小心处理。.即使移位寄存器继续工作,但 SPI 的其余部分也 会被关断(也就是说,SPRF 中断要等到退出 Stop 或 Wait 模式后才会生成)。 此外,移位寄存器的数据要等到从机 SPI 退出 Wait 或 Stop 模式后才复制到 SPIx_D 寄存器中。 只有在发送期间进入或退出 Wait 模式时,才会生成 SPRF 标志和 SPIx_D 复制。 如果从机在空闲模式下进入 Wait 模 式且在空闲模式下退出 Wait 模式,那么 SPRF 和 SPIx_D 复 制都不会发生。 30.4.8.3 Stop 模式下的 SPI Stop 模式(外设总线时钟停止)下的操作,但内部逻辑状态的保留取决于 SPI 系 统。Stop 模式与 C2[SPISWAI]无关。 一进入此类 Stop 模式,SPI 模块时钟就会被禁 用(保持在高电平或低电平)。 • 如果 SPI 在 CPU 进入 Stop 模式时处于主机模式且正在交换数据,那么发送在 CPU 退出 Stop 模式之前会一直被冻结。退出 Stop 模式后,与外部 SPI 的数据 交换正常进行。 • 在从机模式下,SPI 保持与主机同步。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 513 功能说明 在 Stop 模式(外设总线时钟停止且不保留内部逻辑状态)下,SPI 完全禁用。退出 此类 Stop 模式后,所有寄存器都被复位到其默认值,并且必须重新初始化 SPI 模 块。 30.4.9 复位 寄存器和信号的复位值在“存储器映射”和“寄存器说明”内容中均有介绍,其详细介 绍了寄存器及其位字段。 • 如果复位后在从机模式下发生数据发送且未写入 SPIx_D,则此次发送包含“无 用资料”或是在复位前最后一次从主机接收的数据。。 • 复位后从 SPIx_D 读取始终返回零。 30.4.10 中断 SPI 仅在使能时(SPIx_C1 寄存器中的 SPE 位置位)发起中断请求。 以下是关于 SPI 如何发出请求以及 MCU 应如何应答该请求的描述。中断矢量偏移和中断优先 权和芯片有关。 与 SPI 系统相关的有四个标志位、三个中断屏蔽位和一个中断矢量。SPI 中断使能 屏蔽(SPIE)可从 SPI 接收器完整标志 (SPRF) 和模式错误标志(MODF)处使能中断。 SPI 发送中断使能屏蔽(SPTIE)可从 SPI 发送缓冲器空标志(SPTEF)处使能中断。SPI 匹配中断使能屏蔽位(SPIMIE)可从 SPI 匹配标志(SPMF)处使能中断。其中某个标 志位置位且相关中断屏蔽位也置位时,会向 CPU 发送一个硬件中断请求。如果中断 屏蔽位已清除,则软件可对相关标志位进行轮询,而非使用中断。SPI 中断服务程 序(ISR)应检查标志位以确定引起中断的事件。服务程序在从 ISR 返回之前(通常接 近 ISR 起始位置)还应当清除标志位。 30.4.10.1 MODF MODF 在主机检测到 SS 引脚出错时发生。主机 SPI 必须针对 MODF 特性进行配 置(参见 C1[SSOE]位的说明)。一旦 MODF 置位,当前传输就会中止,SPIx_C1 寄 存器中的主机(MSTR)位复位到 0。 MODF 中断在状态寄存器的 MODF 标志中反映。清除该标志也会清除该中断。该 中断在 MODF 标志置位期间保持有效状态。MODF 有一个自动清除流程,具体请 参见“SPI 状态寄存器”章节中的说明。 KEA128 子系列参考手册, Rev. 2, July 2014 514 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) 30.4.10.2 SPRF SPIF 在新数据已被接收并复制到 SPI 接收数据缓冲区时发生。 SPRF 置位后,对其进行相应操作之前不会进行清零。SPRF 有一套自动清零流程, 这在“SPI 状态寄存器”一节有详细说明。如果下一次传输结束之前 SPRF 仍未进行 相应操作(即在另一次传输过程中 SPRF 仍有效),则后续传输将被忽略而且不会有 新数据复制到数据寄存器。 30.4.10.3 SPTEF SPTEF 在 SPI 发送缓冲区准备好接受新数据时发生。 SPTEF 置位后,对其进行相应操作之前不会进行清零。SPTEF 有一套自动清零流 程,这在 SPI 状态寄存器中有详细说明。 30.4.10.4 SPMF SPMF 在接收数据缓冲区中的数据等于 SPI 匹配寄存器中的数据时发生。 30.4.10.5 低功耗模式下的异步中断 CPU 处于 Wait 模式或 Stop 模式且 SPI 模块接收发送时,SPI 模块可生成一个异步 中断将 CPU 从低功耗模式中唤醒。该模块仅在以下条件全部得到满足时生成异步 中断: 1. C1[SPIE]置 1。 2. CPU 处于 Wait 模式(C2[SPISWAI]在该情况下必须为 1)或处于 Stop 模式(外 部总线时钟停止但内部逻辑状态得以保留)。 3. SPI 模块处于从机模式。 4. 收到的发送结束。 当中断唤醒 CPU 且外设总线时钟再次处于工作状态时,此 SPI 模块会将接收到的数 据从移位器中复制到数据寄存器中并生成标志信号。在唤醒阶段,如果从主机连续 不断地发送,则会破坏首次接收到的数据。 30.5 初始化/应用信息 本节讨论如何初始化和使用 SPI 的例子。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 515 初始化/应用信息 30.5.1 初始化序列 在 SPI 模块可用于通信之前,必须执行如下的初始化程序: 1. 更新控制寄存器 1 (SPIx_C1)以使能 SPI 并控制中断使能。该寄存器还可将 SPI 设置为主机或从机,确定时钟相位和极性,以及配置 SPI 主要选项。 2. 更新控制寄存器 2 (SPIx_C2)以使能 SPI 匹配中断特性等其他 SPI 功能、主机模 式故障功能和双向模式输出,以及控制和其他可选特性。 3. 更新波特率寄存器(SPIx_BR)以设置 SPI 主机的预分频器和比特率因子。 4. 用要与接收数据寄存器作比较的值更新硬件匹配寄存器(SPIx_M),以便在硬件 匹配中断使能时触发中断。 5. 在主机中,在 S[SPTEF] = 1 时对 SPIx_S 进行读操作,然后写入发送数据寄存器 (SPIx_D)以开始传输。 30.5.2 伪代码示例 在此示例中,SPI 模块设置为主机模式,且只使能硬件匹配中断。SPI 在以 2 分频总 线时钟的最大波特率运行。时钟相位和极性针对高电平有效 SPI 时钟而设置,其中 SPSCK 上的第一条边沿在首个数据传输周期开始时出现。 SPIx_C1=0x54(%01010100) 位7 SPIE = 0 禁用接收和模式故障中断 位6 SPE = 1 启用 SPI 系统 位5 SPTIE = 0 禁用 SPI 发送中断 位4 MSTR = 1 将 SPI 模块设置为 SPI 主机 位3 CPOL = 0 将 SPI 时钟配置为高电平有效 位2 CPHA = 1 SPSCK 上的第一条边沿在首个数据传输周期开始时出现 位1 SSOE = 0 使能模式故障时确定 SS 引脚功能 位0 LSBFE = 0 SPI 串行数据传输从最高有效位开始 SPMIE = 1 SPI 硬件匹配中断已使能 位6 = 0 未执行 位5 = 0 保留 SPIx_C2 = 0x80(%10000000) 位7 位4 MODFEN = 0 禁用模式故障功能 位3 BIDIROE = 0 SPI 数据 I/O 引脚用作输入 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 516 Freescale Semiconductor, Inc. 第 30 章 串行外设接口(SPI) SPIx_C2 = 0x80(%10000000) 位2 = 0 保留 位1 SPISWAI = 0 SPI 时钟在 Wait 模式下运行 位0 SPC0 = 0 数据输入和输出的引脚不复用 位7 = 0 保留 位 6:4 = 000 将预分频器除数设置为 1 位 3:0 = 0000 将波特率除数设置为 2 SPIx_BR = 0x00(%00000000) SPIx_S = 0x00(%00000000) 位7 SPRF = 0 标志在接收数据缓冲区满时置位 位6 SPMF = 0 标志在 SPIx_M = 接收数据缓冲区时置位 位5 SPTEF = 0 标志在发送数据缓冲区满时置位 位4 MODF = 0 主机模式的模式错误标志 = 0 保留 位 3:0 SPIx_M = 0xXX 放置硬件匹配缓冲区的位 0 到位 7。 SPIx_D = 0xxx 放置由发送缓冲区发送并由接收缓冲区接收的数据的位 0 到位 7。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 517 初始化/应用信息 复位 初始化SPI SPIxC1 = 0x54 SPIxC2 = 0x80 SPIxBR = 0x00 是 SPTEF = 1 ? 否 是 写入 SPIxD SPRF = 1 ? 否 是 读 SPIxD SPMF = 1 ? 否 是 设置为清零标志时 读取SPMF , 然后写入1 继续 图 30-6. 时下 SPI 主机的初始化流程图示例 KEA128 子系列参考手册, Rev. 2, July 2014 518 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 I2C(I2C、I2C、或者 IIC)模块可实现多个设备之间的通信。 该接口适用于总线速度低于 100 kbit/s 的应用场景。在降低总线负载状态下,I2C 设 备能够在更高的波特率下运行,最高波特率为时钟/20。最长通信距离和可连接的设 备数量受最高 400 pF 的总线电容限制。I2C 模块还符合版本 2 的系统管理总线 (SMBus)规格。 31.1.1 特性 I2C 模块的特性如下: • • • • • • • • • • • • • 与 I2C-总线规范兼容 多主机操作 可通过软件编程选择 64 种不同串行时钟频率的其中之一 可通过软件选择使能应答位 通过中断驱动的逐字节数据传输 仲裁丢失产生中断,并且从主机模式切换到从机模式 广播地址识别中断 开始和停止信号的生成和检测 可重复的开始信号生成和检测 应答位的生成和检测 可检测总线忙状态 可识别通用广播地址 可扩展 10 位地址 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 519 简介 • • • • 支持系统管理总线(SMBus)规范(第 2 版) 可编程的输入去抖滤波器 从机地址匹配时的低功耗唤醒 支持从机地址范围 31.1.2 工作模式 各种低功耗模式下的 I2C 模块工作如下所示: • Run 模式:这是基本工作模式。要在该模式下节能,则禁用某些外设。 • Wait 模式:该模块可在内核处于 Wait 模式时继续工作且可提供唤醒中断。 • Stop 模式:在 Stop 下,除非在 Stop 模式下地址匹配使能,否则该模块处于无效 状态以降低功耗。STOP 指令不影响 I2C 模块的寄存器状态。 31.1.3 结构框图 下图是 I2C 模块的结构框图。 KEA128 子系列参考手册, Rev. 2, July 2014 520 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 模块使能 地址 写入/读取 中断 DATA_MUX ADDR_DECODE CTRL_REG FREQ_REG ADDR_REG STATUS_REG 输入 同步 DATA_REG 输入/输出 数据 移位 寄存器 开始 停止 仲裁 控制 时钟 控制 地址 比较器 SCL SDA 图 31-1. I2C 功能结构框图 31.2 I2C 信号说明 I2C 的信号属性如下表所示。 表 31-1. I2C 信号说明 信号 说明 I/O SCL I2C 系统的双向串行时钟线路。 I/O SDA I2C 系统的双向串行数据线路。 I/O KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 521 存储器映像/寄存器定义 31.3 存储器映像/寄存器定义 本节详细介绍最终用户可访问的所有 I2C 寄存器。 I2C 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4006_6000 I2C 地址寄存器 1 (I2C0_A1) 8 R/W 00h 31.3.1/523 4006_6001 I2C 分频器寄存器 (I2C0_F) 8 R/W 00h 31.3.2/523 4006_6002 I2C 控制寄存器 1 (I2C0_C1) 8 R/W 00h 31.3.3/524 4006_6003 I2C 状态寄存器 (I2C0_S) 8 R/W 80h 31.3.4/525 4006_6004 I2C 数据 I/O 寄存器 (I2C0_D) 8 R/W 00h 31.3.5/527 4006_6005 I2C 控制寄存器 2 (I2C0_C2) 8 R/W 00h 31.3.6/528 4006_6006 I2C 可编程输入去抖滤波器寄存器 (I2C0_FLT) 8 R/W 00h 31.3.7/529 4006_6007 I2C 范围地址寄存器 (I2C0_RA) 8 R/W 00h 31.3.8/530 4006_6008 I2C SMBus 控制和状态寄存器 (I2C0_SMB) 8 R/W 00h 31.3.9/530 4006_6009 I2C 地址寄存器 2 (I2C0_A2) 8 R/W C2h 31.3.10/ 532 4006_600A I2C SCL 低位定时溢出寄存器高电平 (I2C0_SLTH) 8 R/W 00h 31.3.11/ 532 4006_600B I2C SCL 低位定时溢出寄存器低电平 (I2C0_SLTL) 8 R/W 00h 31.3.12/ 533 4006_7000 I2C 地址寄存器 1 (I2C1_A1) 8 R/W 00h 31.3.1/523 4006_7001 I2C 分频器寄存器 (I2C1_F) 8 R/W 00h 31.3.2/523 4006_7002 I2C 控制寄存器 1 (I2C1_C1) 8 R/W 00h 31.3.3/524 4006_7003 I2C 状态寄存器 (I2C1_S) 8 R/W 80h 31.3.4/525 4006_7004 I2C 数据 I/O 寄存器 (I2C1_D) 8 R/W 00h 31.3.5/527 4006_7005 I2C 控制寄存器 2 (I2C1_C2) 8 R/W 00h 31.3.6/528 4006_7006 I2C 可编程输入去抖滤波器寄存器 (I2C1_FLT) 8 R/W 00h 31.3.7/529 4006_7007 I2C 范围地址寄存器 (I2C1_RA) 8 R/W 00h 31.3.8/530 4006_7008 I2C SMBus 控制和状态寄存器 (I2C1_SMB) 8 R/W 00h 31.3.9/530 4006_7009 I2C 地址寄存器 2 (I2C1_A2) 8 R/W C2h 31.3.10/ 532 4006_700A I2C SCL 低位定时溢出寄存器高电平 (I2C1_SLTH) 8 R/W 00h 31.3.11/ 532 4006_700B I2C SCL 低位定时溢出寄存器低电平 (I2C1_SLTL) 8 R/W 00h 31.3.12/ 533 KEA128 子系列参考手册, Rev. 2, July 2014 522 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.3.1 I2C 地址寄存器 1 (I2Cx_A1) 该寄存器包含 I2C 模块使用的从机地址。 地址: 基址 基准 + 0h 偏移 位 读 写 复位 7 6 5 4 3 2 1 AD[7:1] 0 0 0 0 0 0 0 0 0 0 I2Cx_A1 字段描述 字段 7–1 AD[7:1] 0 保留 描述 地址 包含编址为从机地址时由 I2C 模块使用的主要从机地址。该字段用于 7 位地址方案以及 10 位地址方案中的 七个低位。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31.3.2 I2C 分频器寄存器 (I2Cx_F) 地址: 基址 基准 + 1h 偏移 位 读 写 复位 7 6 5 4 3 MULT 0 2 1 0 0 0 0 ICR 0 0 0 0 I2Cx_F 字段描述 字段 7–6 MULT 描述 乘法器系数 定义乘法器系数(mul)。该系数与 SCL 分频器一起用于生成 I2C 波特率。 00 01 10 11 ICR mul = 1 mul = 2 mul = 4 保留 时钟速率 对 I2C 模块进行预分频,以便选择比特率。此字段和 MULT 字段确定 I2C 波特率、SDA 保持时间、SCL 起 始状态保持时间和 SCL 停止状态保持时间。有关每项 ICR 设置对应值的列表,请参见 I2C 分频器和保持值 。 SCL 分频器乘以乘法器系数(mul)可确定 I2C 波特率。 I2C baud rate = I2C module clock speed (Hz)/(mul × SCL divider) SDA 保持时间是从 SCL 下降沿(I2C 时钟)到 SDA 更改(I2C 数据)的延迟。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 523 存储器映像/寄存器定义 I2Cx_F 字段描述 (继续) 字段 描述 SDA hold time = I2C module clock period (s) × mul × SDA hold value SCL 起始状态保持时间是从 SCL 高电平(开始条件)时从 SDA 下降沿(I2C 数据)到 SCL 下降沿(I2C 时 钟)的延迟。 SCL start hold time = I2C module clock period (s) × mul × SCL start hold value SCL 停止状态保持时间是 SCL 高电平(停止条件)时从 SCL 上升沿(I2C 时钟)到 SDA 上升沿(I2C 数 据)的延迟。 SCL stop hold time = I2C module clock period (s) × mul × SCL stop hold value 例如,假设 I2C 模块时钟速率为 8 MHz,下表展示了选择不同的 ICR 和 MULT 以实现 100 kbit/s 的 I2C 波特 率时可能的保持时间值。 MULT ICR 2h 保持时间(μs) SDA SCL 开始状态 SCL 停止状态 00h 3.500 3.000 5.500 1h 07h 2.500 4.000 5.250 1h 0Bh 2.250 4.000 5.250 0h 14h 2.125 4.250 5.125 0h 18h 1.125 4.750 5.125 31.3.3 I2C 控制寄存器 1 (I2Cx_C1) 地址: 基址 基准 + 2h 偏移 位 读 写 复位 7 6 5 4 3 IICEN IICIE MST TX TXAK 0 0 0 0 0 2 0 RSTA 0 1 WUEN 0 0 0 0 I2Cx_C1 字段描述 字段 7 IICEN 描述 I2C 使能 使能 I2C 模块工作。 0 1 6 IICIE 禁用 使能 I2C 中断使能 使能 I2C 中断请求。 0 1 禁用 使能 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 524 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 I2Cx_C1 字段描述 (继续) 字段 5 MST 描述 主机模式选择 MST 从 0 更改为 1 时,将在总线上生成 START 信号,并选择主机模式。此位从 1 更改为 0 时,将生成 STOP 信号,工作模式从主机更改为从机。 0 1 从机模式 主机模式 发送模式选择 4 TX 选择主机和从机传输的方向。在主机模式下,必须根据所需的传输类型将此位置位。因此,对地址周期而言, 此位始终置位。编址为从机地址时,此位必须由软件根据状态寄存器中的 SRW 位置位。 0 1 3 TXAK 接收 发送 发送应答使能 指定在主机和从机接收器的数据应答周期过程中驱动到 SDA 的值。SMB[FACK]的值影响 NACK/ACK 的生 成。 注: 对 TXAK 采取写入操作之前,SCL 会一直保持低电平。 0 1 向接下来的接收字节(如果 FACK 已清零)或当前的接收字节(如果 FACK 已置位)上的总线发送了应 答信号。 没有向接下来的接收数据字节 (如果 FACK 已清零)或当前的接收数据字节(如果 FACK 已置位)上的 总线发送应答信号。 2 RSTA 重复 START 1 WUEN 唤醒使能 只要是当前主机,向此位写入 1 就会生成重复的 START 条件。此位将始终读取为 0。在错误的时间尝试重 复将导致仲裁丢失。 出现从机地址匹配时,I2C 模块可将 MCU 从低功耗模式唤醒,无需运行外设总线。 0 1 0 保留 正常工作。在低功耗模式下出现地址匹配时,不生成中断。 在低功耗模式下使能唤醒功能。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 31.3.4 I2C 状态寄存器 (I2Cx_S) 地址: 基址 基准 + 3h 偏移 位 7 读 TCF 写 复位 1 6 IAAS 0 5 4 BUSY ARBL w1c 0 0 3 RAM 0 2 1 0 SRW IICIF RXAK w1c 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 525 存储器映像/寄存器定义 I2Cx_S 字段描述 字段 7 TCF 描述 传输完成标志 对字节传输做出应答;完成一个字节的传输后,TCF 置位。此位只有在与 I2C 模块进行传输期间或传输完成 后即刻有效。通过在接收模式下对 I2C 数据寄存器进行读取操作或在发送模式下对 I2C 数据寄存器进行写 入操作,可以清零 TCF。 0 1 6 IAAS 传输进行中 传输完成 作为从机被寻址 在以下情况下将设置此位: • 调用地址与 A1 寄存器中的已编程主要从机地址匹配,或与 RA 寄存器中的范围地址匹配(必须设置为 非零值,且在 I2C_C2[RMEN] = 1 的条件下)。 • C2[GCAEN]置位,并且接收到通用调用。 • SMB[SIICAEN]置位,并且调用地址与第二个已编程从机地址匹配。 • ALERTEN 置位,并且接收到 SMBus 提醒响应地址 • RMEN 置位,并且接收到的地址在 A1 和 RA 寄存器的值范围内。 IAAS 在 ACK 位之前置位。CPU 必须检查 SRW 位并相应地设置 TX/RX。将任何值写入 C1 寄存器都会将 此位清零。 0 1 5 BUSY 总线忙 无论是从机还是主机模式,都指示总线的状态。检测到 START 信号时置位此位,检测到 STOP 信号时清零 此位。 0 1 4 ARBL 总线空闲 总线忙 仲裁丢失 仲裁程序丢失时,此位由硬件置位。必须通过将 1 写入 ARBL 位由软件将此位清零。 0 1 3 RAM 未被寻址 作为从机被寻址 标准总线工作。 丢失仲裁。 范围地址匹配 如果 I2C_C2[RMEN] = 1,以下任一条件都会导致此位置 1: • 已收到任何与 RA 寄存器中地址匹配的非零调用地址。 • 调用地址在 A1 和 RA 寄存器的值范围内。 向 C1 寄存器写入任何值都会将此位清 0。 0 1 2 SRW 未被寻址 作为从机被寻址 从机读取/写入 编址为从机地址时,SRW 指示发送到主机的调用地址的 R/W 命令位的值。 0 1 从机接收,主机向从机写入 从机发送,主机对从机读取 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 526 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 I2Cx_S 字段描述 (继续) 字段 1 IICIF 描述 中断标志 有中断挂起时,此位将置位。必须通过软件将 1 写入该位来将其清零,比如在中断程序中。以下事件之一可 置位此位: • FACK 为 0 的情况下,完成一个字节的传输,包括 ACK/NACK 位。在接收模式下置位此位后,通过将 0 或 1 写入 TXAK,在总线上发送 ACK 或 NACK。 • FACK 为 1 的情况下,完成一个字节的传输,不包括 ACK/NACK 位。 • 从机地址与调用地址的匹配包括主要从机地址、范围从机地址、提醒响应地址、第二从机地址或通用 调用地址。 • 仲裁丢失 • 在 SMBus 模式下,除了 SCL 和 SDA 高位定时溢出以外的任何定时溢出 • 如果输入干扰滤波器寄存器中的 SSIE 位值为 1,I2C 总线停止位或起始位检测 注: 0 1 0 RXAK 要清零 I2C 总线停止状态或起始状态检测中断:在中断服务程序中,首先将 1 写入输 入去抖滤波器寄存器中的 STOPF 或 STARTF 位以将其清零,然后再清零 IICIF 位。 如果此顺序相反,则 IICIF 位的电平将再次变为有效值。 没有中断挂起 中断挂起 接收应答 0 1 在总线上完成一个字节的数据发送后,接收到应答信号 未检测到应答信号 31.3.5 I2C 数据 I/O 寄存器 (I2Cx_D) 地址: 基址 基准 + 4h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 DATA 0 0 0 0 I2Cx_D 字段描述 字段 DATA 描述 数据 在主机发送模式下,向该寄存器写入数据时,会启动数据传输。首先发送最高有效位。在主机接收模式下, 从该寄存器读取数据开始接收下一个字节的数据。 注: 从主机接收模式中进行转换时,在读取数据寄存器之前先切换 I2C 模式,以防意外启动主机接收数据传 输。 在从机模式下,发生地址匹配后,可使用相同的功能。 C1[TX]位必须正确反映主机和从机模式下所需的传输方向,只有这样才能开始发送。例如,假设 I2C 模块配 置为主机发送,但需要主机接收,此时对数据寄存器进行读取操作就不会开始接收。 I2C 模块配置为主机接收或从机接收模式时,对数据寄存器进行读取操作会返回收到的最后一个字节。数据 寄存器不会反映 I2C 总线上发送的每一个字节,软件也不会通过回读来检验某个字节是否正确地写入到数据 寄存器中。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 527 存储器映像/寄存器定义 I2Cx_D 字段描述 (继续) 字段 描述 在主机发送模式下,MST(开始位)或 RSTA(重复的开始位)的电平变为有效值之后向数据寄存器写入的 第一个字节的数据将用于地址传输,而且必须包含调用地址(在位 7-1 中),再连上所需的 R/W 位(在位置 位 0 中)。 31.3.6 I2C 控制寄存器 2 (I2Cx_C2) 地址: 基址 基准 + 5h 偏移 位 读 写 复位 7 6 5 GCAEN ADEXT 0 0 4 3 0 SBRC RMEN 0 0 0 2 1 0 AD[10:8] 0 0 0 I2Cx_C2 字段描述 字段 7 GCAEN 描述 通用调用地址使能 使能通用调用地址。 0 1 6 ADEXT 地址扩展 控制从机地址所用的位数。 0 1 5 保留 4 SBRC 从机波特率控制 在最高频率条件下使能独立从机模式波特率,这将在非常快的 I2C 模式下在 SCL 中强制时钟拉伸。对从机而 言,“非常快”的模式可以是这样的:例如,主机传输速率为 40 kbit/s,但从机可在低至 10 kbit/s 的速率下捕 捉主机的数据。 从机波特率遵循主机波特率,可能发生时钟拉伸 从机波特率与主机波特率无关 范围地址匹配使能 此位针对 A1 和 RA 寄存器值范围内的地址控制从机地址匹配。此位置位时,针对任何大于 A1 寄存器值且小 于或等于 RA 寄存器值的地址发生从机地址匹配。 0 1 AD[10:8] 7 位地址方案 10 位地址方案 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 0 1 3 RMEN 禁用 已使能 禁用范围模式。与 A1、RA 寄存器值表示范围内的的地址不进行匹配。 使能范围模式。从机接收到与 A1 和 RA 寄存器值范围内的地址时,发生地址匹配。 从机地址 包含 10 位地址方案中从机地址的三个高位。只有在 ADEXT 位置位的情况下,该字段才有效。 KEA128 子系列参考手册, Rev. 2, July 2014 528 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.3.7 I2C 可编程输入去抖滤波器寄存器 (I2Cx_FLT) 地址: 基址 基准 + 6h 偏移 位 读 写 复位 7 6 SHEN 0 5 STOPF w1c 0 4 3 2 STARTF SSIE 0 0 0 FLT w1c 0 1 0 0 0 I2Cx_FLT 字段描述 字段 7 SHEN 描述 停止状态保持使能 置位此位以避免在发生任何数据发送或接收时进入 Stop 模式。 以下方案说明此隔离功能: 1. IIC 模块被配置做基本传输,并将 SHEN 位置 1。 2. 传输开始。 3. MCU 用信号通知 I2C 模块进入 Stop 模式。 4. 当前正在传输的字节(包括地址和数据)完成其传输。 5. I2C 从机和主机确认传输中的字节已完成其传输,并确认进入 Stop 模式的申请。 6. 收到 I2C 模块对申请进入 Stop 模式的确认后,MCU 确定是否关闭 I2C 模块的时钟。 MCU 通知 IIC 模块进入 Stop 模式时,如果 SHEN 位置 1 且 I2C 模块处于闲置或禁用状态,那么此模块将立 即确认进入 Stop 模式。 在 SHEN 被清 0 时进入 Stop 模式,则被暂停的所有发送或接收的数据处于未完成状态:要在 MCU 退出 Stop 模式后恢复所有的发送或接收,软件必须通过重发从机地址来重新初始化传输。 如果 MCU 进入 Stop 模式之前,I2C 控制寄存器 1 的 IICIE 位已置 1,则在 MCU 从 Stop 模式中唤醒后,系 统软件将收到 I2C 状态寄存器的 TCF 位触发的中断。 0 1 6 STOPF I2C 总线停止状态检测标志 检测到 I2C 总线处于停止状态时,硬件会置位此位。必须通过将 1 写入 STOPF 位来将其清零。 0 1 5 SSIE 停止迟滞禁用。MCU 进入 Stop 模式未受门控。 停止迟滞使能。 I2C 总线上无停止状态 I2C 总线上检测到停止状态 I2C 总线停止状态或起始状态中断使能 此位用于使能 I2C 总线停止状态或起始状态检测的中断。 注: 要清除 I2C 总线停止状态或起始状态检测中断:在中断服务程序中,首先将 1 写入 STOPF 或 STARTF 位以将其清零,然后将状态寄存器中的 IICIF 位清零。如果此顺序相反,则 IICIF 位的电平将再次变为有 效值。 0 1 4 STARTF 停止状态或起始状态检测中断禁用 停止状态或起始状态检测中断使能 I2C 总线起始状态检测标志 检测到 I2C 总线的起始状态后,硬件会置位此位。必须将 1 写入 STARTF 位来将其清零。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 529 存储器映像/寄存器定义 I2Cx_FLT 字段描述 (继续) 字段 描述 0 1 FLT I2C 总线上无起始状态 I2C 总线上检测到起始状态 I2C 可编程滤波器系数 控制滤波器必须吸收的毛刺宽度(从 I2C 模块时钟周期的角度而言)。对于宽度小于或等于此宽度设置的任何 毛刺,滤波器都不会允许该毛刺通过。 0h 1-Fh 无滤波器/旁路 对宽度最多为 n 个 I2C 模块时钟周期的毛刺进行滤波,其中 n=1-15d 31.3.8 I2C 范围地址寄存器 (I2Cx_RA) 地址: 基址 基准 + 7h 偏移 位 读 写 复位 7 6 5 4 3 2 1 RAD 0 0 0 0 0 0 0 0 0 0 I2Cx_RA 字段描述 字段 描述 7–1 RAD 范围从机地址 0 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 该字段包含 I2C 模块使用的从机地址。此字段将用于 7 位地址方案中。如果 I2C_C2[RMEN]置 1,写入任何 非零值都会使能此寄存器。可将此寄存器值视作范围匹配模式下的最大边界。 31.3.9 I2C SMBus 控制和状态寄存器 (I2Cx_SMB) 注 如果 SCL 和 SDA 信号保持高电平的时间超过高位定时溢 出周期的时长,SHTF1 标志将置位。达到此阈值之前,系统 正在检测这些信号保持多久的高电平时,主机假定总线空 闲。然而,在总线状态为空闲的条件下,SHTF1 位会在总线 发送过程中置 1。 注 因为总线速度太高,难以匹配 SMBus 协议,所以 TCKSEL 位置位后,再无需监控 SHTF1 位。 KEA128 子系列参考手册, Rev. 2, July 2014 530 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 地址: 基址 基准 + 8h 偏移 位 读 写 复位 7 6 5 4 FACK ALERTEN SIICAEN TCKSEL 0 0 0 0 3 2 1 SLTF SHTF1 SHTF2 w1c 0 w1c 0 0 SHTF2IE 0 0 I2Cx_SMB 字段描述 字段 7 FACK 描述 快速 NACK/ACK 使能 对于 SMBus 数据包错误检查,CPU 必须能够根据接收数据字节的结果发出 ACK 或 NACK。 0 1 6 ALERTEN 在接收完数据后紧接着发送 ACK 或 NACK 接收数据字节后将 0 写入 TXAK 可生成 ACK。接收数据字节后将 1 写入 TXAK 可生成 NACK。 SMBus 提醒响应地址使能 使能或禁用 SMBus 提醒响应地址匹配。 注: 主机对某个使用提醒响应地址的器件作出响应后,必须使用软件将器件的地址放在总线上。SMBus 规范 中介绍了提醒协议。 0 1 5 SIICAEN 第二 I2C 地址使能 使能或禁用 SMBus 器件默认地址。 0 1 4 TCKSEL 禁用 I2C 地址寄存器 2 匹配 使能 I2C 地址寄存器 2 匹配 定时溢出计数器时钟选择 选择定时溢出计数器的时钟源。 0 1 3 SLTF 禁用 SMBus 提醒响应地址匹配 使能 SMBus 提醒响应地址匹配 定时溢出计数器按 I2C 模块时钟/64 的频率计数 定时溢出计数器按 I2C 模块时钟的频率计数 SCL 低位定时溢出标志 在 SLT 寄存器(包括 SLTH 和 SLTL 寄存器)加载非零值(LoValue)且发生 SCL 低位定时溢出的情况下,此 位将置位。软件通过向此位写入逻辑 1 将此位清零。 注: SLT 寄存器的值为 0 时,将禁用低位定时溢出功能。 0 1 2 SHTF1 SCL 高位定时溢出标志 1 SCL 和 SDA 保持高电平的时间超过时钟 × LoValue / 512 时(表明总线空闲),该只读位将置位。此位自动 清零。 0 1 1 SHTF2 未发生低位定时溢出 发生了低位定时溢出 未发生 SCL 高位和 SDA 高位定时溢出 发生了 SCL 高位和 SDA 高位定时溢出 SCL 高位定时溢出标志 2 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 531 存储器映像/寄存器定义 I2Cx_SMB 字段描述 (继续) 字段 描述 SCL 保持高位且 SDA 保持低位的时间超过时钟 × LoValue / 512 时,此位将置位。软件通过向此位写入 1 将 此位清零。 0 1 0 SHTF2IE 未发生 SCL 高位和 SDA 低位定时溢出 发生了 SCL 高位和 SDA 低位定时溢出 SHTF2 中断使能 使能 SCL 高位和 SDA 低位定时溢出中断。 0 1 禁用 SHTF2 中断 使能 SHTF2 中断 31.3.10 I2C 地址寄存器 2 (I2Cx_A2) 地址: 基址 基准 + 9h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 SAD 1 1 0 0 0 0 0 1 0 I2Cx_A2 字段描述 字段 描述 7–1 SAD SMBus 地址 0 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 包含 SMBus 使用的从机地址。该字段用于器件默认地址或其他相关地址。 31.3.11 I2C SCL 低位定时溢出寄存器高电平 (I2Cx_SLTH) 地址: 基址 基准 + Ah 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 SSLT[15:8] 0 0 0 0 I2Cx_SLTH 字段描述 字段 SSLT[15:8] 描述 SSLT[15:8] 确定 SCL 低位定时溢出周期的 SCL 低位定时溢出值的最高有效位。 KEA128 子系列参考手册, Rev. 2, July 2014 532 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.3.12 I2C SCL 低位定时溢出寄存器低电平 (I2Cx_SLTL) 地址: 基址 基准 + Bh 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 SSLT[7:0] 0 0 0 0 I2Cx_SLTL 字段描述 字段 SSLT[7:0] 描述 SSLT[7:0] 确定 SCL 低位定时溢出周期的 SCL 低位定时溢出值的最低有效位。 31.4 功能说明 本章节全面说明 I2C 模块的功能。 31.4.1 I2C 协议 I2C 总线系统采用串行数据线路(SDA)和串行时钟线路(SCL)进行数据传输。 连接至 I2C 总线系统的所有器件都必须具有开漏或集电极开路输出。使用外部上拉 电阻在这两条线路上执行逻辑和(AND)功能。电阻值取决于系统。 正常情况下,一个标准的通信实例由四部分组成: 1. 2. 3. 4. 开始信号 从机地址发送 数据传输 STOP 信号 不得将停止信号与 CPU 停止指令混淆。下图对 I2C 总线系统通信进行了说明。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 533 功能说明 LSB MSB SCL SDA 1 SDA 开始 信号 3 4 5 6 7 8 调用地址 读/ 写 MSB 1 1 XXX 3 4 5 6 7 8 读/ 写 D7 D6 D5 4 5 D4 D3 6 7 8 D2 D1 D0 数据字节 1 9 XX 应答 位 9 无 停止 应答 信号 位 MSB AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W 调用地址 3 2 应答 位 LSB 2 LSB MSB 9 AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W 开始 信号 SCL 2 LSB 2 3 4 5 6 7 8 9 AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W 重复 开始 信号 新的调用地址 读/ 写 无 停止 应答 信号 位 图 31-2. I2C 总线发送信号 31.4.1.1 START 信号 当无主机支配总线时(SCL 和 SDA 均为高电平),总线空闲。当总线空闲时,主机 可通过发送 START 信号启动通信。START 信号定义为在 SCL 为高电平的同时 SDA 发生高电平到低电平转换。此信号表示新数据传输的开始(每次数据传输可能 包含多个字节的数据),所有从机都会离开空闲状态。 31.4.1.2 从机地址发送 紧接着 START 信号之后,数据传输的第一个字节是主机发送的从机地址。该地址 包括一个 7 位调用地址和紧接着的一个 R/W 位。R/W 位告知从机数据传输的方 向。 • 1 = 读传输:从机向主机发送数据 • 0 = 写传输:主机向从机发送数据 只有地址与主机发送的调用地址一致的从机才会响应,发送一个应答位。从机通过 在第 9 个时钟周期拉低 SDA 来发送应答位。 系统中任意两个从机的地址不能相同。如果 I2C 模块是主机,则它不得发送一个与 其自己的从地址相同的地址。I2C 模块不能既是主机,同时又是从机。然而,若仲 裁在一个地址周期中丢失,I2C 模块将变回从机模式,即使被另一个主机寻址,它 也能正常工作。 KEA128 子系列参考手册, Rev. 2, July 2014 534 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.4.1.3 数据传输 成功实现从机寻址时,便可按照调用主机发送的 R/W 位所指定的方向,开始逐字节 的数据传输。 所有遵循一个地址周期的传输都被称为数据传输,哪怕是携带从机子地址信息的传 输。 每个数据字节为 8 位长。数据只能在 SCL 为低电平时改变。在 SCL 为高电平时, 数据必须保持稳定。对每个数据位,SCL 有一个时钟脉冲;按照 MSB 优先顺序传 输。每个数据字节之后是第 9 位(应答位),它由接收器件在第 9 个时钟脉冲拉低 SDA 而发出。总之,一个完整的数据传输需要 9 个时钟脉冲。 如果从机接收器未在第 9 位应答主机,从机必须不改变 SDA,让其保持高电平。主 机将未能应答情况解释为数据传输不成功。 一个数据字节发送完毕后,如果主机接收器未应答从机发送器,从机将把该情况解 释为数据传输结束,从而释放 SDA 线。 无论是从机还是主机未能应答,数据传输都会中止,并且主机执行以下两个操作之 一: • 产生 STOP 信号,释放总线。 • 产生重复 START 信号,开始新的调用。 31.4.1.4 停止信号 主机可通过生成停止信号释放总线的方式终止通信。停止信号定义为 SCL 的电平 变为有效值时,SDA 从低电平转为高电平。 即使从机已生成了应答信号,主机仍可生成停止信号,此时从机必须释放总线。 31.4.1.5 重复开始信号 主机可能会在生成开始信号后,随即生成调用命令,而不会先生成停止信号。此操 作称为重复开始。主机使用重复开始的方式并在不同的模式(发送/接收模式)下与 另一台从机或同一台从机进行通信,而无需释放总线。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 535 功能说明 31.4.1.6 仲裁程序 I2C 总线是真正的多主机总线,支持连接多个主机。 若有两个或更多主机同时试图控制总线,则通过一个时钟同步程序来确定总线时钟。 总线时钟的低电平周期等于主机中最长的时钟低电平周期,高电平周期等于最短的 高电平周期。 竞争主机的相对极性由数据仲裁程序决定。如果一个总线主机发送逻辑电平 1,而 另一个主机发送逻辑电平 0,则前者出局。出局的主机立即切换到从机接收模式, 并且停止驱动 SDA 输出。这种情况下,从主机到从机的模式转换不产生 STOP 条 件。与此同时,硬件设置一个状态位以指示其出局。 31.4.1.7 时钟同步 由于线“与”逻辑是在 SCL 上执行,因此 SCL 上的高到低转换会影响总线上的所有 器件。器件开始计数其低电平周期,某个器件的时钟变为低电平后,该器件将使 SCL 保持低电平,直至时钟达到高电平状态。然而,如果另一器件的时钟仍在低电 平周期内,该器件时钟的低到高变化可能不会改变 SCL 的状态。因此,同步时钟 SCL 保持低电平的时间取决于低电平周期最长的器件。低电平周期较短的器件会 在该时间内进入高电平等待状态,参见下图。当所有相关的器件都已计数完其低电 平周期时,同步时钟 SCL 被释放并变为高电平。此后,器件时钟与 SCL 状态之间 即无差异,所有器件开始计数其高电平周期。第一个计数完高电平周期的器件再次 将 SCL 拉低。 延迟 开始高电平周期计数 SCL2 SCL1 SCL 内部计数器复位 图 31-3. I2C 时钟同步 KEA128 子系列参考手册, Rev. 2, July 2014 536 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.4.1.8 握手 时钟同步机制可用作数据传输中的握手。完成单字节传输(9 位)之后,从机可能 会使 SCL 保持低电平。这种情况下,它会停止总线时钟,使主时钟强制进入等待状 态,直至该从机释放 SCL。 31.4.1.9 时钟拉伸 从机可使用时钟同步机制降低传输比特率。主机将 SCL 驱动为低电平之后,从机可 将 SCL 驱动为低电平,在经过所需的周期后将其释放。如果从机的 SCL 低电平周 期大于主机的 SCL 低电平周期,则会拉伸产生的 SCL 总线信号的低电平周期。换 言之,将增加 SCL 总线信号的低电平周期,使其与从机的 SCL 低电平周期相同。 31.4.1.10 I2C 分频器和保持值 注 对于某些器件,在某些情况下,当 ICR 的值在 00h 到 0Fh 这一范围时,SCL 分频器的值可能存在±2 或±4 的差异。下 表突出显示了这些可能存在差异的 SCL 分频器值。有关您 的器件实际的 SCL 分频器值,请参见关于 I2C 模块的芯片 特定详情。 表 31-2. I2C 分频器和保持值 ICR (十六进 制) SCL 分频 器 SDA 保持 SCL 保持 SCL 保持 值 (开始)值 (停止)值 ICR (十六进 制) SCL 分频 SDA 保持 SCL 保持 SCL 保持 器(时钟) (时钟) (开始)值 (停止)值 00 20 7 6 11 20 160 17 78 81 01 22 7 7 12 21 192 17 94 97 02 24 8 8 13 22 224 33 110 113 03 26 8 9 14 23 256 33 126 129 04 28 9 10 15 24 288 49 142 145 05 30 9 11 16 25 320 49 158 161 06 34 10 13 18 26 384 65 190 193 07 40 10 16 21 27 480 65 238 241 08 28 7 10 15 28 320 33 158 161 09 32 7 12 17 29 384 33 190 193 0A 36 9 14 19 2A 448 65 222 225 0B 40 9 16 21 2B 512 65 254 257 0C 44 11 18 23 2C 576 97 286 289 0D 48 11 20 25 2D 640 97 318 321 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 537 功能说明 表 31-2. I2C 分频器和保持值 (继续) ICR (十六进 制) SCL 分频 器 SDA 保持 SCL 保持 SCL 保持 值 (开始)值 (停止)值 ICR (十六进 制) SCL 分频 SDA 保持 SCL 保持 SCL 保持 器(时钟) (时钟) (开始)值 (停止)值 0E 56 13 24 29 2E 768 129 382 385 0F 68 13 30 35 2F 960 129 478 481 10 48 9 18 25 30 640 65 318 321 11 56 9 22 29 31 768 65 382 385 12 64 13 26 33 32 896 129 446 449 13 72 13 30 37 33 1024 129 510 513 14 80 17 34 41 34 1152 193 574 577 15 88 17 38 45 35 1280 193 638 641 16 104 21 46 53 36 1536 257 766 769 17 128 21 58 65 37 1920 257 958 961 18 80 9 38 41 38 1280 129 638 641 19 96 9 46 49 39 1536 129 766 769 1A 112 17 54 57 3A 1792 257 894 897 1B 128 17 62 65 3B 2048 257 1022 1025 1C 144 25 70 73 3C 2304 385 1150 1153 1D 160 25 78 81 3D 2560 385 1278 1281 1E 192 33 94 97 3E 3072 513 1534 1537 1F 240 33 118 121 3F 3840 513 1918 1921 31.4.2 10 位地址 在 10 位编址中,将对第一个地址字节的前 5 个位使用 0x11110。在包含 10 位编址 的传输中,可以有各种组合形式的读/写格式。 31.4.2.1 主发送器对从接收器进行寻址 传输方向未更改。当 START 条件后跟 10 位地址时,各从机会将从地址 (11110XX) 第一个字节的前 7 位与其自己的地址作比较并测试第八位(R/W 方向位)是否为 0。 可能会有一个以上的器件出现匹配情况并生成应答(A1)。每个出现匹配情况的从机 都会将从地址第二个字节的 8 位与其自己的地址作比较,但仅有一个从机出现匹配 情况并生成应答(A2)。匹配的从机仍由主机寻址,直至它收到 STOP 条件(P)或后跟 不同从地址的重复 START 条件(Sr)。 KEA128 子系列参考手册, Rev. 2, July 2014 538 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 表 31-3. 主发送器对具有 10 位地址的从接收器进行寻址 S 从机地址 前7位 11110 + AD10 + AD9 R/W 0 A1 从机地址 第二个字 节 AD[8:1] A2 A 数据 ... 数据 A/A P 主发送器发送 10 位地址的第一个字节后,从接收器会发现 I2C 中断。对于此中断, 用户软件必须确保忽略数据寄存器的内容,不将其视为有效数据。 31.4.2.2 主机-发送器对从机-接收器进行寻址 第二个 R/W 位之后,传输方向改变。截止应答位 A2(包括该位)的程序与针对主 机发送器寻址从机接收器所述的程序相同。重复 START 条件(Sr)之后,匹配的从机 记得它曾被寻址过。该从机随后检查 Sr 之后的从机地址的第一个字节的前 7 位是 否与 START 条件(S)之后的情形相同,并测试第 8 位(R/W)是否为 1。如果一致,从 机就会认为它已被寻址为发送器,并产生应答 A3。该从机发送器保持定址状态,直 至收到 STOP 条件(P)或后跟其他从机地址的重复 START 条件(Sr)。 重复 START 条件(Sr)之后,所有其他从机也会将从机地址的第一个字节的前 7 位与 其自己的地址相比较,并测试第 8 位(R/W) 。然而,它们中的任何一个器件都不会 被寻址,因为 R/W = 1(对于 10 位器件),或者 11110XX 从机地址(对于 7 位器 件)不匹配。 表 31-4. 主机接收器用 10 位地址寻址从机发送器 S 从机地址 R/W 前7位 0 11110 + AD10 + AD9 A1 从机地址 A2 第二个字 节 AD[8:1] Sr 从机地址 R/W 前7位 1 11110 + AD10 + AD9 A3 数据 A ... 数据 A P 主机接收器发送 10 位地址的第一个字节之后,从机发送器收到一个 I2C 中断。对于 此中断,用户软件必须确保忽略数据寄存器的内容,不将其当作有效数据对待。 31.4.3 地址匹配 对于所有接收到的地址,都能够以 7 位或 10 位地址格式请求。 • 地址寄存器 1(包含 I2C 第一从机地址)中的 AD[7:1]始终参与地址匹配过程。 它提供一个 7 位地址。 • 如果 ADEXT 位置位,控制寄存器 2 中的 AD[10:8]将参与地址匹配过程。它将 I2C 第一从机地址扩展为一个 10 位地址。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 539 功能说明 影响地址匹配的其他条件包括: • 如果 GCAEN 位置位,通用广播地址将参与地址匹配过程。 • 如果 ALERTEN 位置位,警告地址将参与地址匹配过程。 • 如果 SIICAEN 位置位,地址寄存器 2 将参与地址匹配过程。 • 如果 RMEN 位置位,当范围地址寄存器编程为非零值时,地址寄存器 1(不包 含)和范围地址寄存器(包含)的值范围内的任何地址都将参与地址匹配过程。 范围地址寄存器的值必须编程为大于地址寄存器 1 的值。 I2C 模块响应这些地址中的任一地址时,将充当从机接收器,并且 IAAS 位将在地 址周期结束后置位。软件必须在第一个字节传输后读取数据寄存器,以确定地址已 匹配。 31.4.4 系统管理总线规范 SMBus 提供系统和电源管理相关任务的控制总线。系统可使用 SMBus 向设备发送 报文和从设备接收报文,而不是跳变单个控制线路。 取消单个控制线路可减少引脚数量。接受报文可确保未来的可扩展性。使用系统管 理总线,设备可实现以下功能:提供制造商信息、告知系统其型号/设备编号、保存 挂起事件的状态、报告不同类型的错误、接受控制参数、返回其状态。 31.4.4.1 定时溢出 根据 TTIMEOUT,MIN 参数,允许主机或者从机结束故障器件无限的拉低电平或者主机 无限尝试抢占总线。从机检测到任意单个时钟保持在低电平的时间长于 TTIMEOUT,MIN 时,必须释放总线 (停止驱动总线并使 SCL 和 SDA 悬空为高电平)。 已检测到此条件的器件必须复位其通信并且能在 TIMEOUT,MAX 的时间范围内接收新 的 START 条件。 SMBus 定义 35 ms 的时钟低电平定时溢出 TTIMEOUT,将 TLOW:SEXT 指定为从机的累 积时钟低电平延长时间,将 TLOW:MEXT 指定为主机的累积时钟低电平延长时间。 31.4.4.1.1 SCL 低电平定时溢出 如果 SCL 线路通过总线上的从机保持为低电平,则无法开展进一步通信。此外,主 机无法将 SCL 线路强制变为高电平以纠正该错误状况。为了解决这个问题,SMBus 协议要求参与传输的器件必须检测时钟周期保持低电平的时间是否超过某一定时溢 出值。检测到定时溢出状况的器件必须复位通信。当 I2C 模块是有效主机时,若它 检测到 SMBCLK 低电平时间已超过 TTIMEOUT,MIN 的值,它必须在传输过程的当前 数据字节内或之后产生停止条件。当 I2C 模块是从机时,若它检测到 TTIMEOUT,MIN 状况,它将复位通信,然后便能接收新的起始(START)条件。 KEA128 子系列参考手册, Rev. 2, July 2014 540 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.4.4.1.2 SCL 高电平定时溢出 I2C 模块确定 SMBCLK 和 SMBDAT 信号已处于高电平状态至少 THIGH:MAX 时间 后,它假设总线处于闲置状态。 当总线上出现 START 条件,并且 STOP 条件未出现前,高电平定时溢出会出现。 满足下列任一条件时,任何检测到该情况的主机都可假设总线处于空闲状态。 • SHTF1 上升。 • BUSY 位处于高电平状态,SHTF1 也处于高电平状态。 当有一段时间 SMBDAT 信号处于低电平状态且 SMBCLK 信号处于高电平状态时, 会发生另一种定时溢出。必须在软件中定义该时间周期。SHTF2 在已达到时间限 制的情况下作为标志。该标志也是一个中断资源,因此它会触发 IICIF。 31.4.4.1.3 CSMBCLK TIMEOUT MEXT 和 CSMBCLK TIMEOUT SEXT 下图说明定时溢出间隔 TLOW:SEXT 和 TLOW:MEXT 的定义。在主机模式下,在一个字 节之内,I2C 模块时钟周期的累计延长时间不得超过 TLOW:MEXT;各字节定义为 START 至 ACK、ACK 至 ACK 或 ACK 至 STOP。发生 CSMBCLK TIMEOUT MEXT 时,SMBus MEXT 上升,同时会触发 SLTF。 停止 T LOW:SEXT 开始 T LOW:MEXT ClkAck T LOW:MEXT ClkAck T LOW:MEXT SCL SDA 图 31-4. 定时溢出测量间隔 主机可中止正在进行的任何违反 TLOW:SEXT 或 TTIMEOUT,MIN 要求的从机的处理。 要中止处理,主机应在当前字节传输结束时发送 STOP 条件。作为从机,在从初始 START 到 STOP 的任何报文传输期间,I2C 模块时钟周期的累计延长时间不得超过 TLOW:SEXT。发生 CSMBCLK TIMEOUT SEXT 时,SEXT 上升,同时会触发 SLTF。 注 CSMBCLK TIMEOUT SEXT 和 CSMBCLK TIMEOUT MEXT 是在第二步中实现的可选功能。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 541 功能说明 31.4.4.2 FAST ACK 和 NACK 为了提高可靠性和通信的稳定性,SMBus 设备是否实现数据包差错校验(PEC)是可 选的,但对于参与地址解析协议(ARP)过程的器件,PEC 则是必需的,并且仅在该 过程中需要。PEC 是一个基于所有报文字节的 CRC-8 错误校验字节。PEC 由提供 最后一个数据字节的器件追加到报文中。如果 PEC 存在但不正确,接收器将发送 NACK,否则发送 ACK。为了通过软件计算 CRC-8,在接收到第 8 个 SCL(第 8 位)之后,如果该字节是数据字节,此模块将使 SCL 线保持低电平。这样,软件就 能确定应当向总线发送 ACK 还是 NACK,即置位还是清除 TXAK 位(如果快速 ACK/NACK 使能位 FACK 已使能)。 SMBus 要求设备始终应答其自己的地址,作为检测总线上可移除设备(如电池或插 接站)存在与否的机制。除了指示从设备繁忙条件以外,SMBus 还使用 NACK 机 制来表示接收到无效命令或数据。由于这种条件可能出现在最后一个字节时,因此 SMBus 设备必须有能力在传输每个字节之后及完成处理之前产生不应答信号。因 为 SMBus 不提供其他重新发送命令,所以这一要求非常重要。使用 NACK 信令中 的这一差别对 SMBus 端口的具体实现有影响,尤其是对于 SMBus 主机和 SBS 器件 等处理关键系统数据的设备。 注 在主机接收从机发送模式的最后一个字节中,主机必须向总 线发送一个 NACK,因此在发送最后一个字节之前必须关闭 FACK。 31.4.5 复位 复位后,I2C 模块禁用。I2C 模块无法引发内核复位。 31.4.6 中断 假定 IICIE 位置位,当发生此处表格中的任一事件时,I2C 模块都会生成中断。 中断由(I2C 状态寄存器的)IICIF 位驱动,通过(I2C 控制寄存器 1 的)IICIE 位屏 蔽。在中断程序中,必须通过向 IICIF 位写入 1 的方式由软件清零 IICIF 位。SMBus 定时溢出中断由 SLTF 驱动并通过 IICIE 位屏蔽。在中断程序中,必须通过向 SLTF 位写入 1 的方式由软件清零 SLTF 位。 可通过对状态寄存器进行读操作确定中断 类型。 注 在主机接收模式下,最后一个字节传输之前,FACK 位必须 设为零。 KEA128 子系列参考手册, Rev. 2, July 2014 542 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 表 31-5. 中断汇总 中断源 状态 标志 本地使能 完成 1 个字节的传输 TCF IICIF IICIE 已接收的调用地址与主/从机地址匹配 IAAS IICIF IICIE 仲裁丢失 ARBL IICIF IICIE 总线停止检测 STOPF IICIF IICIE & SSIE 总线起始位检测 STARTF IICIF IICIE & SSIE SMBus SCL 低电平定时溢出 SLTF IICIF IICIE SMBus SCL 高电平 SDA 低电平定时溢出 SHTF2 IICIF IICIE & SHTF2IE 从 Stop 或 Wait 模式中唤醒 IAAS IICIF IICIE 和 WUEN I2C I2C 31.4.6.1 字节传输中断 传输完成标志(TCF)位在第九个时钟的下降沿处置位,以表示字节和应答传输完成。 启用 FACK 后,TCF 在第八个时钟的下降沿处置位 ,以表示字节完成。 31.4.6.2 地址检测中断 当调用地址与所设置的从机地址(I2C 地址寄存器)一致时,或者当 GCAEN 位置 位且收到广播时,状态寄存器的 IAAS 位置位。如果 IICIE 位置位,则 CPU 中断。 CPU 必须检查 SRW 位,并相应地设置其 Tx 模式。 31.4.6.3 停止检测中断 当在 I2C 总线上检测到停止状态时,SSIE 位置 1。如果 IICIE 和SSIE 位均置 1,则 会中断 CPU。 31.4.6.4 退出低功耗/Stop 模式 在低功耗模式(Wait 和 Stop)下,从机接收输入检测电路和地址匹配功能仍然有 效。如果中断未被屏蔽,与从机地址或广播地址匹配的异步输入将使 CPU 离开低功 耗/Stop 模式。因此,TCF 和 IAAS 均可触发该中断。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 543 功能说明 31.4.6.5 仲裁丢失中断 I2C 模块不能既是主器件,同时又是从器件。如果两个或两个以上主机要同时控制 总线,则进行竞争的主机的相对极性由数据仲裁程序决定。I2C 模块在其丢失数据 仲裁进程且状态寄存器的 ARBL 位置位时会使仲裁-丢失中断的电平变为有效。 仲裁在下列情形时丢失: 1. 在地址或数据发送周期内,主机驱动为高电平时以低电平采样 SDA。 2. 在应答位的数据接收周期内,主机驱动为高电平时以低电平采样 SDA。 3. 总线繁忙时尝试采用 START 周期。 4. 从机模式请求重复的 START 周期。 5. 主机未请求该周期时检测到 STOP 条件。 必须通过将 1 写入 ARBL 位由软件将此位清零。 31.4.6.6 SMBus 中的定时溢出中断 当 IICIE 位置位时,一旦检测到上述任一定时溢出条件,I2C 模块就会将定时溢出 中断的电平变为有效值(输出 SLTF 和 SHTF2),但有一个例外。SCL 高电平和 SDA 高电平 TIMEOUT 机制不得用来影响定时溢出中断输出,因为该定时溢出指示总线 空闲条件。当与 SCL 高电平和 SDA 高电平 TIMEOUT 匹配时,SHTF1 上升,并自 动下降以指示总线状态。SHTF2 的定时溢出周期与 SHTF1 相同,比 SLTF 要短,因 此增加了另一个控制位 SHTF2IE 来使能或禁用它。 KEA128 子系列参考手册, Rev. 2, July 2014 544 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 31.4.7 可编程输入去抖滤波器 I2C 去抖滤波器已添加到传统 I2C 模块的外部,而非 I2C 封装内。该过滤器可吸附 I2C 时钟和 I2C 模块数据线路上的毛刺。 可根据(半)I2C 模块时钟周期数指定待吸收毛刺的宽度。提供单个可编程输入去 抖滤波器控制寄存器。实际上,I2C 模块通常会忽略数据线路上的任意下降-上升-下 降或上升-下降-上升转换(在该寄存器编程的时钟周期数范围内)。程序员必须指定 毛刺的大小(根据 I2C 模块时钟周期),以便过滤器吸收毛刺,并且阻止毛刺通过。 噪声 抑制 电路 SCL、SDA 外部信号 DFF DFF DFF SCL、SDA 内部信号 DFF 图 31-5. 可编程输入去抖滤波器示意图 31.4.8 地址匹配唤醒 当 I2C 模块处于从机接收模式时,如果发生主要、范围、或通用调用地址匹配,则 MCU 从低功耗模式(此时所有外设总线均处于非运行状态)唤醒。 置位地址匹配 IAAS 位后,地址匹配结束时,发送一条中断指令以唤醒内核。 注 唤醒过程中,如果某个外部主机继续向从机发送数据,则 Stop 模式下的波特率必须低于 50 kbit/s。为避免在 Stop 模 式下出现速度较低的波特率,主机可在固件中增加一个短时 延迟,直至唤醒过程完成,然后再发送数据。 注 SMBus 模式不支持地址匹配引起的唤醒。 31.5 初始化/应用信息 模块初始化(从机) 1. 写入:控制寄存器 2 • 使能或禁用通用调用命令 • 选择 10 位或 7 位编址模式 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 545 初始化/应用信息 2. 3. 4. 5. 写入:地址寄存器 1,以置位从机地址 写入:控制寄存器 1,以使能 I2C 模块和中断 初始化发送数据的 RMA 变量(IICEN = 1 和 IICIE = 1) 初始化用于达到下图所示程序的 RAM 变量 模块初始化(主机) 1. 2. 3. 4. 5. 6. 7. 写入:分频器寄存器,以置位 I2C 波特率(参见 ICR 说明中的示例) 写入:控制寄存器 1,以使能 I2C 模块和中断 初始化发送数据的 RMA 变量(IICEN = 1 和 IICIE = 1) 初始化用于实现下图所示程序的 RAM 变量 写入:控制寄存器 1,以使能 TX 写入:控制寄存器 1,以使能 MST(主机模式) 写入:数据寄存器和目标从机地址(该字节的 LSB 确定是主机接收还是发送通 信) 下图程序显示了主机和从机 I2C 操作。对于从机操作,包含正确地址的 I2C 传入报 文开始 I2C 通信。对于主机操作,通信初始化必须通过写入数据寄存器的方式完成。 可在 AN4342:ColdFire+和 Kinetis I2C 的使用中查看执行此处所述许多步骤的 I2C 驱动器示例。 KEA128 子系列参考手册, Rev. 2, July 2014 546 Freescale Semiconductor, Inc. 第 31 章 I2C 模块 STOPF 是否已置位? ISR入口 是 清除STOPF 清除IICIF 零开始计数 N 是 清除STARTF 清除IICIF 日志开始计数++ STARTF 是否已置位? N N 是否为重复START (开始计数 > 1)? 清零IICIF 是 是 Tx 是否采用主机 模式? 否 Rx Tx/Rx? 是 是 是否发送 最后一个字节? 仲裁是否 丢失? 否 清零ARBL 否 否 RXAK=0? 是否读取 最后一个字节? 否 IIAAS=1? 是 否 是 地址周期 是否结束 (主机Rx)? 是 是 是 是否读取倒数 第二个字节 ? 将下一 字节写入数据寄存器 设置TXACK 地址传输请参见附注1 Tx 是 是(读取) SRW=1? 否(写入) 数据传输请参见附注2 否 Tx/Rx? 读取 数据寄存器中的地址 并存储 生成停止 信号(MST=0) IIAAS=1? Rx 是否存在多个 地址? N 是 否 否 是 接收器是否 应答? 否 从数据寄存器 读取数据并 存储 发送下一 字节 设置Tx模式 切换到 Rx模式 切换到 Rx模式 将数据写入 数据寄存器 设置Rx模式 从数据寄存器 执行空读取 生成停止 信号(MST=0) 从数据寄存器 读取数据并 存储 从数据寄存器 执行空读取 从数据寄存器 执行空读取 RTI 注释: 1. 如果已使能通用调用,则检查以确定接收到的地址是否是通用调用地址(0x00)。 如果接收到的地址是通用调用地址,则通用调用必须由用户软件处理 。 2. 如果10位寻址进行的是从机寻址,则在扩展地址的首个字节后,该从机会遭遇中断。 对于此中断,必须确保忽略数据寄存器的内容,且不将其当作有效数据传输。 图 31-6. 典型 I2C 中断程序 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 547 初始化/应用信息 ISR入口 是 SLTF=1或是 SHTF2=1? 否 否 FACK=1? 参见典型的I2C 中断程序 流程图 是 清零IICIF 是 Tx 是否采用主机 模式? 否 Rx 是 Tx/Rx? 是 是否发送 最后一个字节? 是否读取 最后一个字节? 是否读取倒数 第二个字节 ? 是 否 RXAK=0? 否 否 是 是 (读取) 读取数据并 执行软CRC 否 延迟(注释2) SRW=1? 将TXAK设置为 合适的值 清零IICIF 设置Tx模式 延迟(注释2) 生成停止 信号(MST=0) IAAS=1? 否 Tx/Rx? Tx 接收器是否 应答? 否 将TXAK设置为 合适的值, 清零IICIF 延迟(注释2) 切换到 Rx模式 Rx 从数据寄存器 读取数据并 执行软CRC 生成停止 信号(MST=0) 使TXACK置1, 将FACK清零 将下一 字节写入数据寄存器 地址传输 (参见注释1) 否(写入) 将TXAK设置为 合适的值 清零IICIF 是 IAAS=1? 是 从数据寄存器 读取数据并 执行软CRC 地址周期 是否结束 (主机Rx)? 从数据寄存器 执行空读取 否 清零ARBL 否 否 是 是 仲裁是否 丢失? 从数据寄存器 读取数据并 执行软CRC 将TXAK设置为 合适的值, 清零IICIF 是 清零IICIF 传送下一 字节 切换到 Rx模式 延迟(注释2) 从数据寄存器 读取数据并 存储 将数据写入 数据寄存器 从数据寄存器 读取数据并 存储(注释3) 从数据寄存器 执行空读取 RTI 注释: 1. 如果已使能通用调用或SIICAEN,则进行检查,以确定接收到的地址是通用调用地址(0x00)还是SMBus 器件默认地址。无论是哪一种,都必须由用户软件来处理。 2. 在接收模式下,在第一个和第二个数据读取之前,可能需要一个位时间的延迟,以等待第9个SCL周期可能的最长时间 周期(最差的情况下)。 3. 这是一个空读取,是为了复位SMBus接收器状态机。 图 31-7. 典型 I2C SMBus 中断程序 KEA128 子系列参考手册, Rev. 2, July 2014 548 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.1 简介 MSCAN 是一款实施 Bosch 规范(1991 年 9 月)所定义的 CAN 2.0A/B 协议的通信 控制器。为方便用户全面理解 MSCAN 规范,建议首先阅读 Bosch 规范,以便熟悉 本文件所含的术语和概念。 CAN 协议尽管并非专为汽车应用而设计,但它满足车辆串行数据总线的特定要求: 实时处理、在车辆的 EMI 环境中可靠工作、高性价比以及带宽要求。 MSCAN 采用先进的缓冲区排列来实现可预测的实时特性并简化应用软件。 32.1.1 术语表 表 32-1. 术语 术语 说明 ACK 对 CAN 报文的应答 CAN 控制器局域网 CRC 循环冗余校验码 EOF 帧结束 FIFO 先进先出存储器 IFS 帧间序列 SOF 帧开始 CPU 总线 CPU 相关的读/写数据总线 CAN 总线 CAN 协议相关的串行总线 振荡器时钟 外部振荡器直接提供的时钟 总线时钟 CPU 总线相关的时钟 CAN 时钟 CAN 协议相关的时钟 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 549 简介 32.1.2 结构框图 下图是 MSCAN 的结构框图 MSCAN 振荡器时钟 总线时钟 发送中断请求 接收中断请求 错误中断请求 CANCLK 多路复用器 预分频器 Tq Clk 接收/ 发送 引擎 控制 和 状态 TXCAN 报文 滤波 和 缓冲 唤醒中断请求 配置 寄存器 RXCAN 唤醒 低通滤波器 图 32-1. MSCAN 结构框图 32.1.3 特性 MSCAN 具有如下基本特性: • 实施了 CAN 协议 - 2.0A/B 版 • 标准和扩展数据帧 • 0 到 8 字节的数据长度 • 最高 1 Mbps 的可编程比特率 1 • 支持远程帧 • 采用 FIFO 存储方案的五个接收缓冲区 • 3 个发送缓冲区,采用“本地优先级”概念进行内部排序 • 灵活的可屏蔽标识符滤波器支持两个全尺寸(32 位)扩展的标识符滤波器,或 者四个 16 位滤波器,或者八个 8 位滤波器 • 带集成式低通滤波器的可编程唤醒功能 • 可编程回环模式支持自检操作 • 用于监控 CAN 总线的可编程仅监听模式 • 可编程总线关闭恢复功能 • 所有的 CAN 接收器和发送器错误状态(警告、错误被动状态、总线关闭)都有 独立的信号和中断功能 1. 取决于实际位定时和 PLL 的时钟抖动 KEA128 子系列参考手册, Rev. 2, July 2014 550 Freescale Semiconductor, Inc. 第 32 章 MSCAN • • • • 可编程 MSCAN 时钟源,总线时钟或振荡器时钟 内部定时器用于已接收和已发送报文的时间标志 三种低功耗模式:睡眠、关机和 MSCAN 使能 配置寄存器的全局初始化 32.1.4 工作模式 32.1.4.1 系统正常工作模式 MSCAN 模块在所有系统正常工作模式下都按照本规范所述方式工作。某些寄存器 存在写操作限制。 32.1.4.2 系统特殊工作模式 MSCAN 模块在所有系统特殊工作模式下都按照本规范所述方式工作。为了在特殊 模式下进行测试,解除了正常模式下在特定寄存器上存在的写操作限制。 32.1.4.3 仿真模式 在所有仿真模式下,MSCAN 模块就像在本规范所述系统正常工作模式下一样工作。 32.1.4.4 仅监听模式 在可选的 CAN 总线监控模式(仅监听)下,CAN 节点能够接收有效数据帧和有效 远程帧,但它在 CAN 总线上只发送“隐性”位。此外,它不能启动发送。 如果要求 MAC 子层发送一个“显性”位(ACK 位、过载标志或主动错误标记),那 么在内部会按新路线重新发送该位,以便 MAC 子层监控该“显性”位,不过 CAN 总 线在外部可能仍然处于隐性状态。 32.1.4.5 MSCAN 初始化模式 MSCAN 在使能(CANE=1)时进入初始化模式。 在工作期间进入初始化模式时,任何正在进行的发送或接收都会立即中止,与 CAN 总线的同步丢失,从而可能导致违反 CAN 协议的情况发生。为防止因违规而使 CAN 总线系统遭受严重影响,MSCAN 会立即驱动 TXCAN,使其进入隐性状态。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 551 外部信号说明 注 进入初始化模式时,用户有责任确保 MSCAN 不处于激活状 态。建议流程是先让 MSCAN 进入睡眠模式(SLPRQ = 1 且 SLPAK = 1),然后再在 CANCTL0 寄存器中置位 INITRQ 位。否则,中止正在传输的报文可能会导致出错并影响其他 CAN 总线器件。 初始化模式下,MSCAN 停止工作。不过,接口寄存器仍然处于可访问状态。该模 式用于将 CANCTL0、CANRFLG、CANRIER、CANTFLG、CANTIER、 CANTARQ、CANTAAK 和 CANTBSEL 寄存器复位到默认值。此外,MSCAN 支持 对 CANBTR0、CANBTR1 位定时寄存器、CANIDAC 以及 CANIDAR、CANIDMR 报文滤波器的配置。 总线时钟域 CAN时钟域 INITRQ SYNC 同步 INITRQ 同步 INITAK SYNC INITAK CPU 初始化请求 INITAK 标志 INIT 标志 图 32-2. 初始化请求/应答周期 由于 MSCAN 内存在独立时钟域,必须采用特殊的握手机制使 INITRQ 与所有域都 同步。该握手会引起额外的同步延迟(参见图 32-2 )。 如果 CAN 总线上没有进行任何报文传输,那么最短延迟将是再增加 2 个总线时钟 和 3 个 CAN 时钟。当 MSCAN 的所有部分都处于初始化模式时,INITAK 标志置 位。应用软件必须将 INITAK 用作请求(INITRQ)进入初始化模式的握手指示。 注 在初始化模式(INITRQ = 1 且 INITAK = 1)有效之前,CPU 无法清除 INITRQ。 32.2 外部信号说明 MSCAN 使用两个外部引脚。 KEA128 子系列参考手册, Rev. 2, July 2014 552 Freescale Semiconductor, Inc. 第 32 章 MSCAN 注 在集成了 CAN 物理接口(收发器)的 MCU 上,MSCAN 接 口内部连接到收发器接口。在这类情况下,信号 TXCAN 和 RXCAN 在外部是否可用是可选的。 表 32-2. MSCAN 信号说明 信号 I/O 说明 功能 RXCAN CAN 接收器输入引脚 I - TXCAN CAN 发送器输出引脚 O TXCAN 输出引脚代表 CAN 总线的逻辑电平: • 0 = 显性状态 • 1 = 隐性状态 32.2.1 CAN 系统 采用 MSCAN 的典型 CAN 系统如下图所示。各 CAN 站通过收发器设备物理连接 到 CAN 总线线路。收发器能够驱动 CAN 总线所需的大电流,并具有电流保护功 能,可免受有缺陷的 CAN 或 CAN 站影响。 CAN节点2 CAN节点1 CAN节点n MCU CAN控制器 (MSCAN) RXCAN TXCAN 收发器 CANH CANL CAN总线 图 32-3. CAN 系统 32.3 存储器映像和寄存器定义 32.3.1 程序员报文存储模型 每个接收和发送报文缓冲区在存储器映像中分配 16 个字节,其中包含一个 13 字节 的数据结构。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 553 存储器映像和寄存器定义 另外还为发送缓冲区定义了一个发送缓冲区优先级寄存器(TBPR)。在该存储器映 像的最后两个字节中,MSCAN 存储一个特殊的 16 位时间标志,它是在成功发送或 接收报文后从一个内部定时器采样得到的。该特性仅可用于发送和接收缓冲区,并 且要求 CANCTL0[TIME]置位。 时间标志寄存器的写操作由 MSCAN 执行。CPU 只能对这些寄存器进行读操作。 下表显示了扩展标识符和标准标识符的接收和发送缓冲区数据结构所映射到的寄存 器。 表 32-3. 报文缓冲区结构 偏移地址 扩展标识符 标准标识符 0x0020 REIDR0 RSIDR0 0x0021 REIDR1 RSIDR1 0x0022 REIDR2 0x0023 REIDR3 0x0024 REDSR0 0x0025 REDSR1 0x0026 REDSR2 0x0027 REDSR3 0x0028 REDSR4 0x0029 REDSR5 0x002A REDSR6 0x002B REDSR7 0x002C RDLR 0x0030 TEIDR0 TSIDR0 0x0031 TEIDR1 TSIDR1 0x0032 TEIDR2 0x0033 TEIDR3 0x0034 TEDSR0 0x0035 TEDSR1 0x0036 TEDSR2 0x0037 TEDSR3 0x0038 TEDSR4 0x0039 TEDSR5 0x003A TEDSR6 0x003B TEDSR7 0x003C TDLR 注 读操作: KEA128 子系列参考手册, Rev. 2, July 2014 554 Freescale Semiconductor, Inc. 第 32 章 MSCAN • 对于发送缓冲区,当 CANTFLG[TXE]标志置位且在 CANTBSEL 中选中对应的发送缓冲区时,可以随时执 行。 • 对于接收缓冲区,仅当 CANRFLG[RXF]标志置位时才 能执行。 写操作: • 对于发送缓冲区,当 CANTFLG[TXE]标志置位且在 CANTBSEL 中选中对应的发送缓冲区时,可以随时执 行。 • 对于接收缓冲区,未实施。 复位:因基于 RAM 实施而未定义 MSCAN 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4002_4000 MSCAN 控制寄存器 0 (MSCAN_CANCTL0) 8 R/W 01h 32.3.2/558 4002_4001 MSCAN 控制寄存器 1 (MSCAN_CANCTL1) 8 R/W 11h 32.3.3/560 4002_4002 MSCAN 总线定时寄存器 0 (MSCAN_CANBTR0) 8 R/W 00h 32.3.4/561 4002_4003 MSCAN 总线定时寄存器 1 (MSCAN_CANBTR1) 8 R/W 00h 32.3.5/562 4002_4004 MSCAN 接收器标志寄存器 (MSCAN_CANRFLG) 8 R/W 00h 32.3.6/563 4002_4005 MSCAN 接收器中断使能寄存器 (MSCAN_CANRIER) 8 R/W 00h 32.3.7/565 4002_4006 MSCAN 发送器标志寄存器 (MSCAN_CANTFLG) 8 R/W 07h 32.3.8/566 4002_4007 MSCAN 发送器中断使能寄存器 (MSCAN_CANTIER) 8 R/W 00h 32.3.9/567 4002_4008 MSCAN 发送器报文中止请求寄存器 (MSCAN_CANTARQ) 8 R/W 00h 32.3.10/ 568 4002_4009 MSCAN 发送器报文中止应答寄存器 (MSCAN_CANTAAK) 8 R 00h 32.3.11/ 568 4002_400A MSCAN 发送缓冲区选择寄存器 (MSCAN_CANTBSEL) 8 R/W 00h 32.3.12/ 569 4002_400B MSCAN 标识符验收控制寄存器 (MSCAN_CANIDAC) 8 R/W 00h 32.3.13/ 570 4002_400D MSCAN 其他寄存器 (MSCAN_CANMISC) 8 R/W 00h 32.3.14/ 571 4002_400E MSCAN 接收错误计数器 (MSCAN_CANRXERR) 8 R 00h 32.3.15/ 572 4002_400F MSCAN 发送错误计数器 (MSCAN_CANTXERR) 8 R 00h 32.3.16/ 572 4002_4010 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR0) 8 R/W 00h 32.3.17/ 573 4002_4011 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR1) 8 R/W 00h 32.3.17/ 573 4002_4012 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR2) 8 R/W 00h 32.3.17/ 573 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 555 存储器映像和寄存器定义 MSCAN 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4002_4013 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR3) 8 R/W 00h 32.3.17/ 573 4002_4014 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR0) 8 R/W 00h 32.3.18/ 574 4002_4015 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR1) 8 R/W 00h 32.3.18/ 574 4002_4016 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR2) 8 R/W 00h 32.3.18/ 574 4002_4017 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR3) 8 R/W 00h 32.3.18/ 574 4002_4018 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR4) 8 R/W 00h 32.3.19/ 574 4002_4019 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR5) 8 R/W 00h 32.3.19/ 574 4002_401A 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR6) 8 R/W 00h 32.3.19/ 574 4002_401B 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDAR7) 8 R/W 00h 32.3.19/ 574 4002_401C 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR4) 8 R/W 00h 32.3.20/ 575 4002_401D 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR5) 8 R/W 00h 32.3.20/ 575 4002_401E 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR6) 8 R/W 00h 32.3.20/ 575 4002_401F 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMR7) 8 R/W 00h 32.3.20/ 575 4002_4020 接收扩展标识符寄存器 0 (MSCAN_REIDR0) 8 R/W 未定义 32.3.21/ 576 4002_4020 接收标准标识符寄存器 0 (MSCAN_RSIDR0) 8 R/W 未定义 32.3.22/ 576 4002_4021 接收扩展标识符寄存器 1 (MSCAN_REIDR1) 8 R/W 未定义 32.3.23/ 577 4002_4021 接收标准标识符寄存器 1 (MSCAN_RSIDR1) 8 R/W 未定义 32.3.24/ 578 4002_4022 接收扩展标识符寄存器 2 (MSCAN_REIDR2) 8 R/W 未定义 32.3.25/ 579 4002_4023 接收扩展标识符寄存器 3 (MSCAN_REIDR3) 8 R/W 未定义 32.3.26/ 579 4002_4024 接收扩展数据段寄存器 N (MSCAN_REDSR0) 8 R/W 未定义 32.3.27/ 580 4002_4025 接收扩展数据段寄存器 N (MSCAN_REDSR1) 8 R/W 未定义 32.3.27/ 580 4002_4026 接收扩展数据段寄存器 N (MSCAN_REDSR2) 8 R/W 未定义 32.3.27/ 580 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 556 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4002_4027 接收扩展数据段寄存器 N (MSCAN_REDSR3) 8 R/W 未定义 32.3.27/ 580 4002_4028 接收扩展数据段寄存器 N (MSCAN_REDSR4) 8 R/W 未定义 32.3.27/ 580 4002_4029 接收扩展数据段寄存器 N (MSCAN_REDSR5) 8 R/W 未定义 32.3.27/ 580 4002_402A 接收扩展数据段寄存器 N (MSCAN_REDSR6) 8 R/W 未定义 32.3.27/ 580 4002_402B 接收扩展数据段寄存器 N (MSCAN_REDSR7) 8 R/W 未定义 32.3.27/ 580 4002_402C 接收数据长度寄存器 (MSCAN_RDLR) 8 R/W 未定义 32.3.28/ 580 4002_402E 接收时间标志寄存器高位 (MSCAN_RTSRH) 8 R 未定义 32.3.29/ 581 4002_402F 接收时间标志寄存器低位 (MSCAN_RTSRL) 8 R 未定义 32.3.30/ 581 4002_4030 发送扩展标识符寄存器 0 (MSCAN_TEIDR0) 8 R/W 未定义 32.3.31/ 582 4002_4030 发送标准标识符寄存器 0 (MSCAN_TSIDR0) 8 R/W 未定义 32.3.32/ 583 4002_4031 发送扩展标识符寄存器 1 (MSCAN_TEIDR1) 8 R/W 未定义 32.3.33/ 583 4002_4031 发送标准标识符寄存器 1 (MSCAN_TSIDR1) 8 R/W 未定义 32.3.34/ 584 4002_4032 发送扩展标识符寄存器 2 (MSCAN_TEIDR2) 8 R/W 未定义 32.3.35/ 585 4002_4033 发送扩展标识符寄存器 3 (MSCAN_TEIDR3) 8 R/W 未定义 32.3.36/ 585 4002_4034 发送扩展数据段寄存器 N (MSCAN_TEDSR0) 8 R/W 未定义 32.3.37/ 586 4002_4035 发送扩展数据段寄存器 N (MSCAN_TEDSR1) 8 R/W 未定义 32.3.37/ 586 4002_4036 发送扩展数据段寄存器 N (MSCAN_TEDSR2) 8 R/W 未定义 32.3.37/ 586 4002_4037 发送扩展数据段寄存器 N (MSCAN_TEDSR3) 8 R/W 未定义 32.3.37/ 586 4002_4038 发送扩展数据段寄存器 N (MSCAN_TEDSR4) 8 R/W 未定义 32.3.37/ 586 4002_4039 发送扩展数据段寄存器 N (MSCAN_TEDSR5) 8 R/W 未定义 32.3.37/ 586 4002_403A 发送扩展数据段寄存器 N (MSCAN_TEDSR6) 8 R/W 未定义 32.3.37/ 586 4002_403B 发送扩展数据段寄存器 N (MSCAN_TEDSR7) 8 R/W 未定义 32.3.37/ 586 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 557 存储器映像和寄存器定义 MSCAN 存储器映射 (继续) 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4002_403C 发送数据长度寄存器 (MSCAN_TDLR) 8 R/W 未定义 32.3.38/ 586 4002_403D 发送缓冲区优先级寄存器 (MSCAN_TBPR) 8 R/W 未定义 32.3.39/ 587 4002_403E 发送时间标志寄存器高位 (MSCAN_TTSRH) 8 R 未定义 32.3.40/ 588 4002_403F 发送时间标志寄存器低位 (MSCAN_TTSRL) 8 R 未定义 32.3.41/ 588 32.3.2 MSCAN 控制寄存器 0 (MSCAN_CANCTL0) CANCTL0 寄存器提供 MSCAN 模块的各种控制位。 注 写操作:退出初始化模式后随时可执行;例外情况是只读的 RXACT 和 SYNCH、RXFRM(仅由该模块设置)以及 INITRQ(在初始化模式下也可写入) 初始化模式有效(INITRQ = 1 且 INITAK = 1)时,CANCTL0 寄存器除 WUPE、INITRQ 和 SLPRQ 以外均保持在复位状 态。只要退出初始化模式(INITRQ = 0 且 INITAK = 0),就 能再次对该寄存器进行写操作。 地址: 4002_4000h 基准 + 0h 偏移 = 4002_4000h 位 读 写 复位 7 6 RXFRM 0 5 RXACT 0 4 CSWAI 0 SYNCH 3 2 1 0 TIME WUPE SLPRQ INITRQ 0 0 0 1 0 MSCAN_CANCTL0 字段描述 字段 7 RXFRM 描述 接收帧标志 该位只能读取和清零。该位在接收器正确接收到有效报文时置位,与滤波器配置无关。置位后,它将保持置 位状态,直到被软件清零或复位。写入 1 即可清零。写入 0 会被忽略。该位在回环模式下无效。 0 1 6 RXACT 上次清零该标志以来,未接收到任何有效报文。 上次清零该标志以来,接收到一条有效报文。 接收器活动状态 该只读标志指示 MSCAN 正在接收报文。该标志由接收器前端控制。该位在回环模式下无效。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 558 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANCTL0 字段描述 (继续) 字段 描述 注: 有关发送器和接收器状态的详细定义,请参见 Bosch CAN 2.0A/B 规范。 0 1 5 CSWAI MSCAN 正在发送或空闲。 MSCAN 正在接收报文,包括仲裁丢失时。 CAN 在 Wait 模式下停止 使能该位可实现 Wait 模式下的更低功耗,方法是禁用 MSCAN 模块在 CPU 总线接口处的所有时钟。 注: 为防止意外违反 CAN 协议,在 CPU 进入 Wait (CSWAI = 1)或 Stop 模式时,会立即强制使 TXCAN 进 入隐性状态 0 1 4 SYNCH 同步状态 该只读标志指示 MSCAN 是否与 CAN 总线同步,并且能参与通信过程。它由 MSCAN 置位和清零。 0 1 3 TIME MSCAN 未与 CAN 总线同步。 MSCAN 已与 CAN 总线同步。 定时器使能 该位激活一个根据位时钟速率进行计时的内部 16 位宽自由运行定时器。如果该定时器使能,那么有效 TX/RX 缓冲区中每条已发送/已接收的报文都会分配到一个 16 位时间标志。就在 CAN 总线上有效报文的 EOF 之后,时间标志会立即被写入相应缓冲区的最高字节(0x000E,0x000F)。在回环模式下,不会生成任 何接收时间标志。内部定时器在禁用时复位(所有位置 0)。该位在初始化模式下保持置 0。 0 1 2 WUPE 该模块在 Wait 模式期间不受影响。 该模块的时钟在 Wait 模式期间停止。 禁用内部 MSCAN 定时器。 使能内部 MSCAN 定时器。 唤醒使能 在检测到 CAN 上有流量时,该配置位使 MSCAN 从睡眠模式或掉电模式(从睡眠模式进入)重启。为使所 选功能生效,必须在进入睡眠模式之前对该位进行配置。 注: 如果需要从停止或等待状态恢复的机制,CPU 必须确保 WUPE 寄存器和 WUPIE 唤醒中断使能寄存器 已使能。 0 1 1 SLPRQ 唤醒禁用 - MSCAN 忽略 CAN 上的通讯。 唤醒使能 - MSCAN 能够重启。 睡眠模式请求 该位请求 MSCAN 进入睡眠模式,它是一种内部省电模式。睡眠模式请求在 CAN 总线空闲,即该模块未在 接收报文且所有发送缓冲区皆空时予以处理。该模块通过设置 SLPAK = 1 来指示已进入睡眠模式。SLPRQ 在 WUPIF 标志置位时无法置位。直到 SLPRQ 被 CPU 清零之前,睡眠模式将一直有效。或者根据 WUPE 的置位情况,MSCAN 检测到 CAN 总线上有活动并将 SLPRQ 清零为止。 注: CPU 在 MSCAN 进入睡眠模式(SLPRQ = 1 且 SLPAK = 1)之前无法将 SLPRQ 清零。 0 1 0 INITRQ 运行 - MSCAN 正常工作。 睡眠模式请求 - MSCAN 在 CAN 总线空闲时进入睡眠模式。 初始化模式请求 当该位由 CPU 置位时,MSCAN 跳转到初始化模式。正在进行中的任何发送或接收活动都会中止并且与 CAN 总线的同步丢失。该模块通过设置 INITAK = 1 来指示已进入初始化模式。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 559 存储器映像和寄存器定义 MSCAN_CANCTL0 字段描述 (继续) 字段 描述 以下寄存器进入其硬复位状态并恢复其默认值:CANCTL0(不包括 WUPE、INITRQ 和 SLPRQ)、CANRFLG (TSTAT1 和 TSTAT0 不受初始化模式影响)、CANRIER(RSTAT1 和 RSTAT0 不受初始化模式影响)、 CANTFLG、CANTIER、CANTARQ、CANTAAK 和 CANTBSEL。寄存器 CANCTL1、CANBTR0、 CANBTR1、CANIDAC、CANIDAR0-7 和 CANIDMR0-7 在 MSCAN 处于初始化模式(INITRQ = 1 且 INITAK = 1)时只能由 CPU 对其进行写操作。错误计数器的值不受初始化模式的影响。 当该位被 CPU 清零时,MSCAN 重启,然后尝试与 CAN 总线同步。如果 MSCAN 未处于总线关闭状态,它 将在 CAN 总线上出现 11 个连续隐性位之后同步;如果 MSCAN 处于总线关闭状态,它将继续等待直到 11 个连续隐性位出现 128 次。 要写入 CANCTL0、CANRFLG、CANRIER、CANTFLG 或 CANTIER 中的其它位,必须在退出初始化模式 (INITRQ = 0 且 INITAK = 0)之后执行。 注: CPU 在 MSCAN 进入初始化模式(INITRQ = 1 且 INITAK = 1)之前无法将 INITRQ 清零。 为防止意外违反 CAN 协议,在 CPU 请求初始化模式时,会立即强制使 TXCAN 进入隐性状态。因此, 建议流程是先让 MSCAN 进入睡眠模式(SLPRQ = 1 且 SLPAK = 1),再请求初始化模式。 0 1 正常工作。 MSCAN 处于初始化模式。 32.3.3 MSCAN 控制寄存器 1 (MSCAN_CANCTL1) CANCTL1 寄存器提供 MSCAN 模块的各种控制位和握手状态信息。 注 写操作:除 CANE 在正常模式下只能写入一次外,初始化 模式下(INITRQ=1 且 INITAK=1)随时可执行;处于初始 化模式时的特殊系统工作模式也可随时执行。 地址: 4002_4000h 基准 + 1h 偏移 = 4002_4001h 位 读 写 复位 7 6 5 4 3 2 CANE CLKSRC LOOPB LISTEN BORM WUPM 0 0 0 1 0 0 1 0 SLPAK INITAK 0 1 MSCAN_CANCTL1 字段描述 字段 7 CANE 6 CLKSRC 描述 MSCAN 使能 0 1 MSCAN 禁用。 MSCAN 模块使能。 MSCAN 时钟源 该位定义 MSCAN 模块的时钟源(仅适用于具有时钟产生模块的系统)。 0 1 MSCAN 时钟源是振荡器时钟。 MSCAN 时钟源是总线时钟。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 560 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANCTL1 字段描述 (继续) 字段 5 LOOPB 描述 回环自测模式 该位置位时,MSCAN 执行可用于自测操作的内部回环。发送器的位流输出在内部反馈到接收器。RXCAN 输入被忽略,TXCAN 输出变为隐性状态(逻辑 1)。MSCAN 如同发送时一样正常工作,并将其自己发送的 报文视为从远程节点接收到的报文。在该状态下,MSCAN 会忽略 CAN 帧应答字段中 ACK 槽期间传送的位, 从而确保正确接收到自己的报文。发送中断和接收中断均会生成。 0 1 4 LISTEN 仅监听模式 该位将 MSCAN 配置为 CAN 总线监控器。LISTEN 置位时,它会接收所有具有匹配 ID 的有效 CAN 报文,但 不会发出应答或错误帧。此外,错误计数器冻结。仅监听模式支持需要“热插拔”或吞吐量分析的应用。 MSCAN 在仅监听模式有效时无法发送任何报文。 0 1 3 BORM 该位配置 MSCAN 的总线关闭状态恢复模式。 如果 CANCTL0 中的 WUPE 使能,该位将决定是否采用集成式低通滤波器来防止 MSCAN 受杂散唤醒影响。 MSCAN 在 CAN 总线上出现任何显性电平时唤醒。 MSCAN 仅当 CAN 总线上出现长度为 Twup 的显性脉冲时才会唤醒。 睡眠模式应答 该标志指示 MSCAN 模块是否已进入睡眠模式。它用作 SLPRQ 睡眠模式请求的握手标志。睡眠模式在 SLPRQ = 1 且 SLPAK = 1 时有效。根据 WUPE 的置位情况,如果 MSCAN 在睡眠模式下检测到 CAN 总线 上有活动,它会将该标志清零。 0 1 0 INITAK 总线关闭自动恢复(参见 Bosch CAN 2.0A/B 协议规范)。 用户请求时总线关闭恢复。 唤醒模式 0 1 1 SLPAK 正常工作。 仅监听模式激活。 总线关闭恢复模式 0 1 2 WUPM 回环自测禁用。 回环自测使能。 运行 - MSCAN 正常工作。 睡眠模式有效 - MSCAN 已进入睡眠模式。 初始化模式应答 该标志指示 MSCAN 模块是否处于初始化模式。它用作 INITRQ 初始化模式请求的握手标志。初始化模式在 INITRQ = 1 且 INITAK = 1 时有效。寄存器 CANCTL1、CANBTR0、CANBTR1、CANIDAC、CANIDAR0CANIDAR7 和 CANIDMR0-CANIDMR7 在 MSCAN 处于初始化模式时只能由 CPU 对其进行写操作。 0 1 运行 - MSCAN 正常工作。 初始化模式有效 - MSCAN 已进入初始化模式。 32.3.4 MSCAN 总线定时寄存器 0 (MSCAN_CANBTR0) CANBTR0 寄存器配置 MSCAN 模块的各种 CAN 总线时序参数。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 561 存储器映像和寄存器定义 注 写操作:初始化模式(INITRQ = 1 且 INITAK = 1)下随时 可执行。 地址: 4002_4000h 基准 + 2h 偏移 = 4002_4002h 位 读 写 复位 7 6 5 4 3 SJW 0 2 1 0 0 0 0 BRP 0 0 0 0 MSCAN_CANBTR0 字段描述 字段 7–6 SJW 描述 同步跳转宽度 同步跳转宽度定义的是,为了实现与 CAN 总线上数据转换的重新同步,一位中最多可被缩短或延长的时间 量子(Tq)时钟周期的数目。 00 01 10 11 BRP 1 个 Tq 时钟周期。 2 个 Tq 时钟周期。 3 个 Tq 时钟周期。 4 个 Tq 时钟周期。 波特率预分频器 这些位确定用于建立位定时的时间量子(Tq)时钟。 000000 000001 000010 000011 111110 111111 1 2 ...... ...... 63 64 32.3.5 MSCAN 总线定时寄存器 1 (MSCAN_CANBTR1) CANBTR1 寄存器配置 MSCAN 模块的各种 CAN 总线时序参数。 注 写操作:初始化模式(INITRQ = 1 且 INITAK = 1)下随时 可执行。 地址: 4002_4000h 基准 + 3h 偏移 = 4002_4003h 位 读 写 复位 7 6 SAMP 0 5 4 3 2 TSEG2 0 0 1 0 0 0 TSEG1 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 562 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANBTR1 字段描述 字段 7 SAMP 描述 采样 该位确定每位时间采集的 CAN 总线样本数。 如果 SAMP = 0,那么作为结果的位值等于位于采样点的单个位的值。如果 SAMP = 1,那么作为结果的位值 的确定方法是对总共三个样本采用多数决定原则。比特率较高时,建议每位时间仅采集一个样本(SAMP = 0)。 0 1 6–4 TSEG2 每位一个样本。 每位三个样本。在该情况下,PHASE_SEG1 必须至少为 2 个时间量子(Tq)。 时间段 2 位时间内的时段确定每位时间的时钟周期数和采样点的位置。 000 001 010 011 100 101 110 111 TSEG1 1 个 Tq 时钟周期(无效) 2 个 Tq 时钟周期 3 个 Tq 时钟周期 4 个 Tq 时钟周期 5 个 Tq 时钟周期 6 个 Tq 时钟周期 7 个 Tq 时钟周期 8 个 Tq 时钟周期 时段 1 位时间内的时段确定每位时间的时钟周期数和采样点的位置。 位时间由振荡器频率、波特率预分频器和每位的时间量子(Tq)时钟周期数决定。 位时间 = (1 + 时段 1 + 时段 2) * (预分频器值)/ fCANCLK 0000 0001 0010 0011 ...... 1110 1111 1 个 Tq 时钟周期(无效) 2 个 Tq 时钟周期(无效) 3 个 Tq 时钟周期(无效) 4 个 Tq 时钟周期 ...... 15 个 Tq 时钟周期 16 个 Tq 时钟周期 32.3.6 MSCAN 接收器标志寄存器 (MSCAN_CANRFLG) 当引起标志置位的条件不再有效时,只能通过软件将标志清零(将 1 写入对应的位 位置)。每个标志在 CANRIER 寄存器中都有相应的中断使能位。 注 写操作:除了只读标志 RSTAT[1:0]和 TSTAT[1:0]外,不在 初始化模式时随时可执行;写入 1 会将标志清零,写入 0 会 被忽略。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 563 存储器映像和寄存器定义 CANRFLG 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。只要该寄存器退出初始化 模式(INITRQ = 0 且 INITAK = 0),就能再次对其进行写操 作。 地址: 4002_4000h 基准 + 4h 偏移 = 4002_4004h 位 读 写 复位 7 6 WUPIF CSCIF 0 0 5 4 3 RSTAT 0 2 TSTAT 0 0 0 1 0 OVRIF RXF 0 0 MSCAN_CANRFLG 字段描述 字段 7 WUPIF 描述 唤醒中断标志 如果 MSCAN 在处于睡眠模式且 CANTCTL0[WUPE] = 1 的同时检测到 CAN 总线上有活动,那么该模块将 置位 WUPIF。如果未被屏蔽,那么唤醒中断在该标志置位的同时挂起。 0 1 6 CSCIF CAN 状态变更中断标志 当 MSCAN 因发送错误计数器(TEC)和接收错误计数器(REC)的实际值而改变其当前 CAN 总线状态时,该标 志置位。另有一个 4 位(RSTAT[1:0]、TSTAT[1:0])状态寄存器(TEC 和 REC 各有对应的部分)会将 CAN 总线的实际状态告知系统。如果未被屏蔽,那么错误中断在该标志置位的同时挂起。CSCIF 提供一个阻塞中 断。它保证仅当无任何 CAN 状态变更中断挂起时,才会更新接收器/发送器状态位(RSTAT/TSTAT)。如果 TEC/REC 在 CSCIF 的电平变为有效值后改变其当前值,导致 RSTAT/TSTAT 位又发生状态变化,那么这些 位将保持其状态,直到当前 CSCIF 中断再次被清除为止。 0 1 5–4 RSTAT 睡眠模式下未观察到任何唤醒活动。 MSCAN 检测到 CAN 总线上有活动并请求唤醒。 CAN 总线状态自上次中断以来无任何变化。 MSCAN 改变了 CAN 总线当前状态。 接收器状态 错误计数器的值控制 MSCAN 的 CAN 总线实际状态。只要状态变更中断标志(CSCIF)置位,这些位就会指示 MSCAN 与相应接收器相关的 CAN 总线状态。 注: 该字段不受初始化模式的影响。 00 01 10 11 3–2 TSTAT RxOK:0≤接收错误计数器<96 RxWRN:96≤接收错误计数器<128 RxERR:128≤接收错误计数器 总线关闭:256≤发送错误计数器(有关最重要的 CAN 总线状态(“总线关闭”)的冗余信息。仅当发送 错误计数器的错误数超过 255 时,才会发生这种情况。总线关闭影响接收器状态。只要发送器离开其总 线关闭状态,接收器状态就同样会跳转到 RxOK。另请参见该寄存器中的 TSTAT[1:0]编码。) 发送器状态 错误计数器的值控制 MSCAN 的 CAN 总线实际状态。只要状态变更中断标志(CSCIF)置位,这些位就会指示 MSCAN 与相应发送器相关的 CAN 总线状态。 注: 该字段不受初始化模式的影响。 00 TxOK:0≤发送错误计数器<96 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 564 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANRFLG 字段描述 (继续) 字段 描述 01 10 11 1 OVRIF 溢出中断标志 该标志在发生数据溢出状况时置位。如果未被屏蔽,那么错误中断在该标志置位的同时挂起。 0 1 0 RXF TxWRN:96≤发送错误计数器<128 TxERR:128≤发送错误计数器<256 总线关闭:256≤发送错误计数器 无数据溢出状况。 检测到数据溢出。 接收缓冲区满标志 有新报文移入接收器 FIFO 时,RXF 由 MSCAN 置位。该标志指示移入的缓冲区是否加载了正确接收的报文 (标识符匹配、循环冗余校验码(CRC)匹配且未检测到其它错误)。CPU 从接收器 FIFO 的 RxFG 缓冲区读取 该报文之后,必须将 RXF 标志清零以释放缓冲区。已置位的 RXF 标志会禁止将下一个 FIFO 条目移入前台 缓冲区(RxFG)。如果未被屏蔽,那么接收中断在该标志置位的同时挂起。 注: 为确保数据完整性,在将 RXF 标志清零的同时请勿对接收缓冲区寄存器进行读操作。对于具有双 CPU 的 MCU,在将 RXF 标志清零的同时读取接收缓冲区寄存器可能会导致 CPU 故障。 0 1 RxFG 中无任何新报文可用。 接收器 FIFO 非空。RxFG 中有新报文可用。 32.3.7 MSCAN 接收器中断使能寄存器 (MSCAN_CANRIER) 该寄存器包含 CANRFLG 寄存器中所述中断标志的中断使能位。 注 CANRIER 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。不处于初始化模式 (INITRQ=0 且 INITAK=0)时,可对该寄存器进行写操作。 RSTATE[1:0]、TSTATE[1:0]位不受初始化模式的影响。 地址: 4002_4000h 基准 + 5h 偏移 = 4002_4005h 位 读 写 复位 7 6 WUPIE CSCIE 0 0 5 4 3 RSTATE 0 2 TSTATE 0 0 0 1 0 OVRIE RXFIE 0 0 MSCAN_CANRIER 字段描述 字段 7 WUPIE 描述 唤醒中断使能 如果需要从停止或等待状态恢复的机制,WUPIE 和 WUPE 均必须使能。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 565 存储器映像和寄存器定义 MSCAN_CANRIER 字段描述 (继续) 字段 描述 0 1 6 CSCIE 5–4 RSTATE CAN 状态变更中断使能 0 1 该事件不生成任何中断请求。 CAN 状态变更事件引起错误中断请求。 接收器状态变更使能 这些 RSTAT 使能位控制接收器状态变更引起 CSCIF 中断的灵敏度水平。无论选择何种灵敏度水平,RSTAT 标志都会持续指示接收器实际状态,并且仅在没有 CSCIF 中断挂起时更新。 00 01 10 11 3–2 TSTATE 该事件不生成任何中断请求。 唤醒事件引起唤醒中断请求。 不生成由接收器状态变更而引起的任何 CSCIF 中断。 仅当接收器进入或退出“总线关闭”状态时生成 CSCIF 中断。放弃其它接收器状态变更以便生成 CSCIF 中断。 仅当接收器进入或退出“RxErr”或“总线关闭”状态时生成 CSCIF 中断 1 状态。放弃其它接收器状态变更 以便生成 CSCIF 中断。 对所有状态变更都生成 CSCIF 中断。 发送器状态变更使能 这些 TSTAT 使能位控制发送器状态变更引起 CSCIF 中断的灵敏度水平。无论选择何种灵敏度水平,TSTAT 标志都会持续指示发送器实际状态,并且仅在没有 CSCIF 中断挂起时更新。 00 01 10 11 不生成由发送器状态变更引起的任何 CSCIF 中断。 仅当发送器进入或退出“总线关闭”状态时生成 CSCIF 中断。放弃其它发送器状态变更以便生成 CSCIF 中断。 仅当发送器进入或退出“TxErr”或“总线关闭”状态时生成 CSCIF 中断。放弃其它发送器状态变更以便生 成 CSCIF 中断。 对所有状态变更都生成 CSCIF 中断。 1 OVRIE 溢出中断使能 0 RXFIE 接收器满中断使能 0 1 0 1 该事件不生成任何中断请求。 溢出事件引起错误中断请求。 该事件不生成任何中断请求。 接收缓冲区满(报文接收成功)事件引起接收器中断请求。 1. CAN 标准仅针对发送器定义了总线关闭状态(参见 Bosch CAN 2.0A/B 协议规范)。由于发送器从总线关闭到 TxOK 的唯一可 能的状态变更也会强制使接收器从当前状态跳转到 RxOK,因此 RXSTAT[1:0]标志的编码针对接收器状态定义了又一个总线关 闭 32.3.8 MSCAN 发送器标志寄存器 (MSCAN_CANTFLG) 发送缓冲区空标志在 CANTIER 寄存器中都有相应的中断使能位。 注 写操作:不处于初始化模式时随时可执行;写入 1 会将标志 清零,写入 0 会被忽略。 KEA128 子系列参考手册, Rev. 2, July 2014 566 Freescale Semiconductor, Inc. 第 32 章 MSCAN CANTFLG 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。该寄存器不处于初始化模 式(INITRQ = 0 且 INITAK = 0)时,可对其进行写操作。 地址: 4002_4000h 基准 + 6h 偏移 = 4002_4006h 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 TXE 0 0 1 1 1 MSCAN_CANTFLG 字段描述 字段 描述 7–3 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 TXE 发送器缓冲区空 该标志指示相关的发送报文缓冲区为空,因此无发送安排。当有报文移入发送缓冲区且应予以发送时,CPU 必须将该标志清零。MSCAN 在报文成功传送后置位该标志。该标志在发送请求因挂起的中止请求而成功中 止时也会由 MSCAN 置位。如果未被屏蔽,那么发送中断在该标志置位的同时挂起。 将 TXEx 标志清零也会将对应的 ABTAKx 清零。TXEx 标志置位时,会将对应的 ABTRQx 位清零。 监听模式有效时,无法将 TXEx 标志清零且不会开始发送。 如果将对应的 TXEx 位清零(TXEx = 0)且安排缓冲区发送报文,那么对发送缓冲区的读写访问将受阻。 0 1 相关的报文缓冲区已满(载入了要发送的报文)。 相关的报文缓冲区为空(无发送安排)。 32.3.9 MSCAN 发送器中断使能寄存器 (MSCAN_CANTIER) 该寄存器包含发送缓冲区空中断标志的中断使能位。 注 CANTIER 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。该寄存器不处于初始化模 式(INITRQ = 0 且 INITAK = 0)时,可对其进行写操作。 不处于初始化模式时,随时可写入。 地址: 4002_4000h 基准 + 7h 偏移 = 4002_4007h 位 读 写 复位 7 6 5 4 3 2 0 0 0 0 1 0 TXEIE 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 567 存储器映像和寄存器定义 MSCAN_CANTIER 字段描述 字段 7–3 保留 TXEIE 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 发送器空中断使能 0 1 该事件不生成任何中断请求。 发送器空(发送缓冲区可用于发送)事件引起发送器空中断请求。 32.3.10 MSCAN 发送器报文中止请求寄存器 (MSCAN_CANTARQ) CANTARQ 寄存器用于对排队的报文提出中止请求。 注 写操作:不处于初始化模式时,随时可写入。 CANTARQ 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。该寄存器不处于初始化模 式(INITRQ = 0 且 INITAK = 0)时,可对其进行写操作。 地址: 4002_4000h 基准 + 8h 偏移 = 4002_4008h 位 读 写 复位 7 6 5 4 3 2 0 0 0 0 1 0 ABTRQ 0 0 0 0 0 MSCAN_CANTARQ 字段描述 字段 7–3 保留 ABTRQ 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 中止请求 CPU 置位 ABTRQx 位以请求中止一个已安排的报文缓冲区(TXEx = 0)。如果该报文尚未开始发送,或者发 送不成功(仲裁丢失或错误),MSCAN 就会批准该请求。报文中止时,相关的 TXE 和中止应答标志 ABTAK 置位,并且会生成发送中断(若已使能)。CPU 无法复位 ABTRQx。只要相关的 TXE 标志置位,ABTRQx 就会复位。 0 1 无中止请求。 中止请求挂起。 32.3.11 MSCAN 发送器报文中止应答寄存器 (MSCAN_CANTAAK) CANTAAK 寄存器指示成功中止排队报文(如果请求由 CANTARQ 寄存器中的相应 位发出)。 KEA128 子系列参考手册, Rev. 2, July 2014 568 Freescale Semiconductor, Inc. 第 32 章 MSCAN 注 CANTAAK 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。 地址: 4002_4000h 基准 + 9h 偏移 = 4002_4009h 位 7 6 5 读 4 3 2 0 1 0 ABTAK 写 复位 0 0 0 0 0 0 0 0 MSCAN_CANTAAK 字段描述 字段 7–3 保留 ABTAK 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 中止应答 该标志确认某条报文因挂起的来自 CPU 的中止请求而中止。特定报文缓冲区的空标志置位后,应用软件可 利用该标志来确定该报文是被成功中止还是已经传送出去。只要将对应的 TXE 标志清零,就会将 ABTAKx 标志清零。 0 1 报文未被中止。 报文已被中止。 32.3.12 MSCAN 发送缓冲区选择寄存器 (MSCAN_CANTBSEL) CANTBSEL 寄存器用于选择实际的发送报文缓冲区,然后便可在 CANTXFG 寄存 器空间中访问它。 注 读操作:找到置 1 的位序最低位,所有其它位将被读作 0。 写操作:不处于初始化模式时,随时可写入。 CANTBSEL 寄存器在初始化模式有效(INITRQ = 1 且 INITAK = 1)时保持在复位状态。该寄存器不处于初始化模 式(INITRQ = 0 且 INITAK = 0)时,可对其进行写操作。 下面是有关 CANTBSEL 寄存器使用的一个简短编程示例: 为了获得下一个可用的发送缓冲区,应用软件必须对 CANTFLG 寄存器进行读操 作,并将该值写回到 CANTBSEL 寄存器中。本例中,Tx 缓冲区 TX1 和 TX2 可用。 因此,从 CANTFLG 读取的值为 0b0000_0110。将该值写回到 CANTBSEL 时, CANTXFG 选择 Tx 缓冲区 TX1,因为置 1 的位序最低位在位置 1 处。从 CANTBSEL 读回该值的结果为 0b0000_0010,因为仅显示置 1 的位序最低位位置。 该机制可简化应用软件选择下一个可用 Tx 缓冲区的过程。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 569 存储器映像和寄存器定义 如果取消选择所有发送报文缓冲区,则不允许对 CANTXFG 寄存器进行任何访问。 地址: 4002_4000h 基准 + Ah 偏移 = 4002_400Ah 位 读 写 复位 7 6 5 4 3 2 0 0 0 1 0 TX 0 0 0 0 0 0 MSCAN_CANTBSEL 字段描述 字段 7–3 保留 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 发送缓冲区选择 TX 位序最低位将相应的发送缓冲区置于 CANTXFG 寄存器空间(例如,TX1 = 1 且 TX0 = 1 选择发送缓冲区 TX0;TX1 = 1 且 TX0 = 0 选择发送缓冲区 TX1)。如果对应的 TXEx 位被清零且安排缓冲区发送报文,那么 对所选发送缓冲区的读写访问将受阻。 0 1 取消选择相关的报文缓冲区。 如果是位序最低位,则选择相关的报文缓冲区。 32.3.13 MSCAN 标识符验收控制寄存器 (MSCAN_CANIDAC) CANIDAC 寄存器用于标识符验收控制,如下所述。 注 写操作:初始化模式(INITRQ = 1 且 INITAK = 1)下随时 可执行,只读位 IDHITx 除外。 地址: 4002_4000h 基准 + Bh 偏移 = 4002_400Bh 位 7 读 6 5 0 0 3 0 0 2 0 IDAM 写 复位 4 0 0 1 0 IDHIT 0 0 0 MSCAN_CANIDAC 字段描述 字段 描述 7–6 保留 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 5–4 IDAM 标识符验收模式 CPU 置位这些标志以定义标识符验收滤波器结构。在滤波器关闭模式下,不接受任何报文,前台缓冲区因此 也不会重新加载。 00 01 两个 32 位验收滤波器。 四个 16 位验收滤波器。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 570 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANIDAC 字段描述 (继续) 字段 描述 10 11 3 保留 IDHIT 八个 8 位验收滤波器。 滤波器关闭。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 标识符验收命中指示器 MSCAN 置位这些标志以指示标识符验收命中情况。IDHIT 指示器始终与前台缓冲区(RxFG)中的报文相关。 当报文移入接收器 FIFO 的前台缓冲区时,指示器也会更新。 000 001 010 011 100 101 110 111 滤波器 0 命中。 滤波器 1 命中。 滤波器 2 命中。 滤波器 3 命中。 滤波器 4 命中。 滤波器 5 命中。 滤波器 6 命中。 滤波器 7 命中。 32.3.14 MSCAN 其他寄存器 (MSCAN_CANMISC) 该寄存器提供附加特性。 注 写操作:随时;写入“1”会将标志清零,写入“0”会被忽略。 地址: 4002_4000h 基准 + Dh 偏移 = 4002_400Dh 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 BOHOLD 0 0 0 0 0 MSCAN_CANMISC 字段描述 字段 7–1 保留 0 BOHOLD 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 总线关闭状态保持到用户请求为止 如果 MSCAN 控制寄存器 1 (CANCTL1)的 BORM 置位,那么该位指示该模块是否已进入总线关闭状态。将 该位清零会发出从总线关闭状态恢复的请求。 0 1 模块不处于总线关闭状态,或者用户在总线关闭状态下已请求恢复。 模块处于总线关闭状态,且会保持到用户请求为止。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 571 存储器映像和寄存器定义 32.3.15 MSCAN 接收错误计数器 (MSCAN_CANRXERR) 该寄存器反映 MSCAN 接收错误计数器的状态。 注 读操作:只能在睡眠模式(SLPRQ = 1 且 SLPAK = 1)或初 始化模式(INITRQ = 1 且 INITAK = 1)下进行。 在非睡眠或初始化模式下对该寄存器进行读操作可能会返 回不正确的值。对于具有双 CPU 的 MCU,这可能导致 CPU 发生故障。 地址: 4002_4000h 基准 + Eh 偏移 = 4002_400Eh 位 7 6 5 4 读 3 2 1 0 0 0 0 0 RXERR 写 复位 0 0 0 0 MSCAN_CANRXERR 字段描述 字段 RXERR 描述 接收错误计数器 该字段只能在睡眠模式(SLPRQ = 1 且 SLPAK = 1)或初始化模式(INITRQ = 1 且 INITAK = 1)下读取。 32.3.16 MSCAN 发送错误计数器 (MSCAN_CANTXERR) 该寄存器反映 MSCAN 发送错误计数器的状态。 注 在非睡眠或初始化模式下对该寄存器进行读操作可能会返 回不正确的值。对于具有双 CPU 的 MCU,这可能导致 CPU 发生故障。 地址: 4002_4000h 基准 + Fh 偏移 = 4002_400Fh 位 7 6 5 4 读 3 2 1 0 0 0 0 0 TXERR 写 复位 0 0 0 0 MSCAN_CANTXERR 字段描述 字段 TXERR 描述 发送错误计数器 KEA128 子系列参考手册, Rev. 2, July 2014 572 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANTXERR 字段描述 (继续) 字段 描述 该字段只能在睡眠模式(SLPRQ = 1 且 SLPAK = 1)或初始化模式(INITRQ = 1 且 INITAK = 1)下读取。 32.3.17 第一群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDARn) 接收时,每条报文都被写入后台接收缓冲区。CPU 被告知对报文进行读取的唯一条 件是,该报文符合标识符验收和标识符屏蔽寄存器中的标准(已接受) ;不符合标准 的报文会被下一条报文覆盖(已丢弃)。 MSCAN 的验收寄存器以逐位方式应用于 REIDR0-REIDR3 寄存器来检查传入报文 的扩展标识符,并应用于 RSIDR0-RSIDR1 寄存器来检查标准标识符。 对于扩展标识符,应用所有四个验收和屏蔽寄存器。对于标准标识符,仅应用前两 个(CANIDAR0/1、CANIDMR0/1)寄存器。 Address: 4002_4000h base + 10h offset + (1d × i), where i=0d to 3d 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 AC 0 0 0 0 MSCAN_CANIDARn 字段描述 字段 AC 描述 验收代码位 AC[7:0]包含用户定义的位序列,它与接收报文缓冲区的相关标识符寄存器(RSIDRn 或 REIDRn)的对应位 作比较。该比较的结果随后用对应的标识符屏蔽寄存器进行屏蔽。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 573 存储器映像和寄存器定义 32.3.18 第一群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMRn) 标识符屏蔽寄存器指定标识符验收寄存器中哪些对应的位与验收滤波相关。要在 32 位滤波器模式下接收标准标识符,须将屏蔽寄存器 CANIDMR1 和 CANIDMR5 的最后三位(AM[2:0])编程为“无关位”。要在 16 位滤波器模式下接收标准标识符, 须将屏蔽寄存器 CANIDMR1、CANIDMR3、CANIDMR5 和 CANIDMR7 的最后三 位(AM[2:0])编程为“无关位”。 Address: 4002_4000h base + 14h offset + (1d × i), where i=0d to 3d 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 AM 0 0 0 0 MSCAN_CANIDMRn 字段描述 字段 描述 验收屏蔽位 AM 该寄存器中的特定位被清零时,表示标识符验收寄存器中的对应位必须与其标识符位相同,才能检测到匹配。 如果所有此类位都匹配,则接受报文。如果某位置位,这表示标识符验收寄存器中对应位的状态不影响报文 的接受与否。 0 1 匹配对应的验收代码寄存器和标识符位。 忽略对应的验收代码寄存器位。 32.3.19 第二群组中的 MSCAN 标识符验收寄存器 n (MSCAN_CANIDARn) 接收时,每条报文都被写入后台接收缓冲区。CPU 被告知对报文进行读取的唯一条 件是,该报文符合标识符验收和标识符屏蔽寄存器中的标准(已接受) ;不符合标准 的报文会被下一条报文覆盖(已丢弃)。 MSCAN 的验收寄存器以逐位方式应用于 REIDR0-REIDR3 寄存器来检查传入报文 的扩展标识符,并应用于 RSIDR0-RSIDR1 寄存器来检查标准标识符。 对于扩展标识符,应用所有四个验收和屏蔽寄存器。对于标准标识符,仅应用前两 个(CANIDAR4/5、CANIDMR4/5)寄存器。 Address: 4002_4000h base + 18h offset + (1d × i), where i=0d to 3d 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 AC 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 574 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_CANIDARn 字段描述 字段 描述 验收代码位 AC AC[7:0]包含用户定义的位序列,它与接收报文缓冲区的相关标识符寄存器(RSIDRn 或 REIDRn)的对应位 作比较。该比较的结果随后用对应的标识符屏蔽寄存器进行屏蔽。 32.3.20 第二群组中的 MSCAN 标识符屏蔽寄存器 n (MSCAN_CANIDMRn) 标识符屏蔽寄存器指定标识符验收寄存器中哪些对应的位与验收滤波相关。要在 32 位滤波器模式下接收标准标识符,须将屏蔽寄存器 CANIDMR1 和 CANIDMR5 的最后三位(AM[2:0])编程为“无关位”。要在 16 位滤波器模式下接收标准标识符, 须将屏蔽寄存器 CANIDMR1、CANIDMR3、CANIDMR5 和 CANIDMR7 的最后三 位(AM[2:0])编程为“无关位”。 Address: 4002_4000h base + 1Ch offset + (1d × i), where i=0d to 3d 位 读 写 复位 7 6 5 4 3 2 1 0 0 0 0 0 AM 0 0 0 0 MSCAN_CANIDMRn 字段描述 字段 AM 描述 验收屏蔽位 该寄存器中的特定位被清零时,表示标识符验收寄存器中的对应位必须与其标识符位相同,才能检测到匹配。 如果所有此类位都匹配,则接受报文。如果某位置位,这表示标识符验收寄存器中对应位的状态不影响报文 的接受与否。 0 1 匹配对应的验收代码寄存器和标识符位。 忽略对应的验收代码寄存器位。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 575 存储器映像和寄存器定义 32.3.21 接收扩展标识符寄存器 0 (MSCAN_REIDR0) 扩展格式标识符的寄存器总共有 32 位:REID[28:0]、RSRR、RIDE 和 RRTR。 地址: 4002_4000h 基准 + 20h 偏移 = 4002_4020h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* REID28_REID21 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_REIDR0 字段描述 字段 描述 REID28_REID21 扩展格式标识符 扩展格式标识符由 29 位(REID[28:0])组成。REID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 32.3.22 接收标准标识符寄存器 0 (MSCAN_RSIDR0) 标准格式标识符的寄存器总共有 13 位:RID[10:0]、RRTR 和 RSIDE。 地址: 4002_4000h 基准 + 20h 偏移 = 4002_4020h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* RSID10_RSID3 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_RSIDR0 字段描述 字段 描述 RSID10_RSID3 标准格式标识符 标准格式标识符由 11 位(RSID[10:0])组成。RSID10 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 KEA128 子系列参考手册, Rev. 2, July 2014 576 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.3.23 接收扩展标识符寄存器 1 (MSCAN_REIDR1) 扩展格式标识符的寄存器总共有 32 位:REID[28:0]、RSRR、REIDE 和 RRTR。 地址: 4002_4000h 基准 + 21h 偏移 = 4002_4021h 位 读 写 复位 7 6 5 REID20_REID18 x* x* x* 4 3 RSRR REIDE x* x* 2 1 0 REID17_REID15 x* x* x* * 注: • x = 复位时未定义。 MSCAN_REIDR1 字段描述 字段 描述 7–5 扩展格式标识符 20-18 REID20_REID18 扩展格式标识符由 29 位(REID[28:0])组成。EID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 4 RSRR 替代远程请求 3 REIDE ID 扩展 该固定隐性位只能用于扩展格式。对于发送缓冲区,用户必须将其置 1;对于接收缓冲区,将其如同在 CAN 总线上接收到一样存储。 该标志指示该缓冲区应用的是扩展格式标识符还是标准格式标识符。对于接收缓冲区,该标志按接收值设置, 并告知 CPU 如何处理缓冲区标识符寄存器。对于发送缓冲区,该标志告知 MSCAN 应传送何种类型的标识 符。 0 1 标准格式(11 位)。 扩展格式(29 位)。 REID17_REID15 扩展格式标识符 17-15 扩展格式标识符由 29 位(REID[28:0])组成。RID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 577 存储器映像和寄存器定义 32.3.24 接收标准标识符寄存器 1 (MSCAN_RSIDR1) 标准格式标识符的寄存器总共有 13 位:RSID[10:0]、RRTR 和 REIDE。 地址: 4002_4000h 基准 + 21h 偏移 = 4002_4021h 位 读 写 复位 7 6 5 RSID2_RSID0 x* x* x* 4 3 RSRTR RSIDE x* x* 2 1 0 x* Reserved Reserved x* x* * 注: • x = 复位时未定义。 MSCAN_RSIDR1 字段描述 字段 7–5 RSID2_RSID0 4 RSRTR 描述 标准格式标识符 2-0 标准格式标识符由 11 位(RID[10:0])组成。RID10 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 远程发送请求 该标志反映 CAN 帧中远程发送请求位的状态。对于接收缓冲区,它指示接收帧的状态,支持通过软件发送 回应帧。对于发送缓冲区,该标志定义要传送的 RRTR 位的置位。 0 1 3 RSIDE ID 扩展 该标志指示该缓冲区应用的是扩展格式标识符还是标准格式标识符。对于接收缓冲区,该标志按接收值设置, 并告知 CPU 如何处理缓冲区标识符寄存器。对于发送缓冲区,该标志告知 MSCAN 应传送何种类型的标识 符。 0 1 Reserved 数据帧。 远程帧。 标准格式(11 位)。 扩展格式(29 位)。 此字段为保留字段。 KEA128 子系列参考手册, Rev. 2, July 2014 578 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.3.25 接收扩展标识符寄存器 2 (MSCAN_REIDR2) 扩展格式标识符的寄存器总共有 32 位:REID[28:0]、RSRR、REIDE 和 RRTR。 地址: 4002_4000h 基准 + 22h 偏移 = 4002_4022h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* REID14_REID7 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_REIDR2 字段描述 字段 描述 REID14_REID7 扩展格式标识符 14-7 扩展格式标识符由 29 位(REID[28:0])组成。REID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 32.3.26 接收扩展标识符寄存器 3 (MSCAN_REIDR3) 扩展格式标识符的寄存器总共有 32 位:REID[28:0]、RSRR、REIDE 和 RRTR。 地址: 4002_4000h 基准 + 23h 偏移 = 4002_4023h 位 读 写 复位 7 6 5 4 3 2 1 REID6_REID0 x* x* x* 0 RERTR x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_REIDR3 字段描述 字段 7–1 REID6_REID0 0 RERTR 描述 扩展格式标识符 6-0 扩展格式标识符由 29 位(REID[28:0])组成。REID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 远程发送请求 该标志反映 CAN 帧中远程发送请求位的状态。对于接收缓冲区,它指示接收帧的状态,支持通过软件发送 回应帧。对于发送缓冲区,该标志定义要传送的 RTR 位的置位。 0 1 数据帧。 远程帧。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 579 存储器映像和寄存器定义 32.3.27 接收扩展数据段寄存器 N (MSCAN_REDSRn) 8 个数据段寄存器(各有位 RDB[7:0])包含要接收的数据。要接收的字节数由对应 RDLR 寄存器中的数据长度码决定。 Address: 4002_4000h base + 24h offset + (1d × i), where i=0d to 7d 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* 2 1 0 x* x* RDB x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_REDSRn 字段描述 字段 RDB 描述 数据位 要接收的数据 32.3.28 接收数据长度寄存器 (MSCAN_RDLR) 该寄存器保存 CAN 帧的数据长度字段。 地址: 4002_4000h 基准 + 2Ch 偏移 = 4002_402Ch 位 读 写 复位 7 6 5 4 3 Reserved Reserved x* x* RDLC x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_RDLR 字段描述 字段 7–4 Reserved RDLC 描述 此字段为保留字段。 数据长度码位 数据长度码包含相应报文的字节数(数据字节计数)。发送远程帧时,数据长度码按编程值发送,而发送的数 据字节数始终是 0。对于一个数据帧,数据字节数范围是 0 到 8。 0000 0001 0 1 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 580 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_RDLR 字段描述 (继续) 字段 描述 0010 0011 0100 0101 0110 0111 1000 其他 2 3 4 5 6 7 8 保留 32.3.29 接收时间标志寄存器高位 (MSCAN_RTSRH) 如果 TIME 位使能,则在 CAN 总线上出现有效报文的 EOF 之后,MSCAN 会立即 将时间标志写入有效接收缓冲区中的相应寄存器。 用作时间标志的定时器值来自一个自由运行的 CAN 内部位时钟。MSCAN 不会指 示定时器溢出。该定时器在初始化模式期间复位(所有位都置 0)。CPU 只能对时间 标志寄存器进行读操作。 地址: 4002_4000h 基准 + 2Eh 偏移 = 4002_402Eh 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* RTS x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_RTSRH 字段描述 字段 RTS 描述 时间标志 时间标志 7 至 0。 32.3.30 接收时间标志寄存器低位 (MSCAN_RTSRL) 如果 TIME 位使能,则在 CAN 总线上出现有效报文的 EOF 之后,MSCAN 会立即 将时间标志写入有效接收缓冲区中的相应寄存器。 用作时间标志的定时器值来自一个自由运行的 CAN 内部位时钟。MSCAN 不会指 示定时器溢出。该定时器在初始化模式期间复位(所有位都置 0)。CPU 只能对时间 标志寄存器进行读操作。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 581 存储器映像和寄存器定义 注 当 TXEx 标志置位且在 CANTBSEL 中选中对应的发送缓冲 区时,可随时对该寄存器进行读写操作。 地址: 4002_4000h 基准 + 2Fh 偏移 = 4002_402Fh 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* RTS x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_RTSRL 字段描述 字段 RTS 描述 时间标志 时间标志 15 至 8。 32.3.31 发送扩展标识符寄存器 0 (MSCAN_TEIDR0) 扩展格式标识符的寄存器总共有 32 位:TEID[28:0]、TSRR、TIDE 和 TRTR。 地址: 4002_4000h 基准 + 30h 偏移 = 4002_4030h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* TEID28_TEID21 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TEIDR0 字段描述 字段 描述 TEID28_TEID21 扩展格式标识符 扩展格式标识符由 29 位(TEID[28:0])组成。TEID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 KEA128 子系列参考手册, Rev. 2, July 2014 582 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.3.32 发送标准标识符寄存器 0 (MSCAN_TSIDR0) 标准格式标识符的寄存器总共有 13 位:TID[10:0]、TRTR 和 TSIDE。 地址: 4002_4000h 基准 + 30h 偏移 = 4002_4030h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* TSID10_TSID3 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TSIDR0 字段描述 字段 TSID10_TSID3 描述 标准格式标识符 标准格式标识符由 11 位(TSID[10:0])组成。TSID10 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 32.3.33 发送扩展标识符寄存器 1 (MSCAN_TEIDR1) 扩展格式标识符的寄存器总共有 32 位:TEID[28:0]、TSRR、TEIDE 和 TRTR。 地址: 4002_4000h 基准 + 31h 偏移 = 4002_4031h 位 读 写 复位 7 6 5 TEID20_TEID18 x* x* x* 4 3 TSRR TEIDE x* x* 2 1 0 TEID17_TEID15 x* x* x* * 注: • x = 复位时未定义。 MSCAN_TEIDR1 字段描述 字段 描述 7–5 扩展格式标识符 20-18 TEID20_TEID18 扩展格式标识符由 29 位(TEID[28:0])组成。TEID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 4 TSRR 替代远程请求 3 TEIDE ID 扩展 该固定隐性位只能用于扩展格式。对于发送缓冲区,用户必须将其置 1;对于接收缓冲区,将其如同在 CAN 总线上接收到一样存储。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 583 存储器映像和寄存器定义 MSCAN_TEIDR1 字段描述 (继续) 字段 描述 该标志指示该缓冲区应用的是扩展格式标识符还是标准格式标识符。对于接收缓冲区,该标志按接收值设置, 并告知 CPU 如何处理缓冲区标识符寄存器。对于发送缓冲区,该标志告知 MSCAN 应传送何种类型的标识 符。 0 1 标准格式(11 位)。 扩展格式(29 位)。 TEID17_TEID15 扩展格式标识符 17-15 扩展格式标识符由 29 位(TEID[28:0])组成。TID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 32.3.34 发送标准标识符寄存器 1 (MSCAN_TSIDR1) 标准格式标识符的寄存器总共有 13 位:TEID[10:0]、TRTR 和 TEIDE。 地址: 4002_4000h 基准 + 31h 偏移 = 4002_4031h 位 读 写 复位 7 6 5 TSID2_TSID0 x* x* x* 4 3 TSRTR TSIDE x* x* 2 1 0 x* Reserved Reserved x* x* * 注: • x = 复位时未定义。 MSCAN_TSIDR1 字段描述 字段 7–5 TSID2_TSID0 4 TSRTR 描述 标准格式标识符 2-0 标准格式标识符由 11 位(TID[10:0])组成。ID10 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发送。 二进制数最小的标识符,其优先级最高。 远程发送请求 该标志反映 CAN 帧中远程发送请求位的状态。对于接收缓冲区,它指示接收帧的状态,支持通过软件发送 回应帧。对于发送缓冲区,该标志定义要传送的 TRTR 位的置位。 0 1 3 TSIDE ID 扩展 该标志指示该缓冲区应用的是扩展格式标识符还是标准格式标识符。对于接收缓冲区,该标志按接收值设置, 并告知 CPU 如何处理缓冲区标识符寄存器。对于发送缓冲区,该标志告知 MSCAN 应传送何种类型的标识 符。 0 1 Reserved 数据帧。 远程帧。 标准格式(11 位)。 扩展格式(29 位)。 此字段为保留字段。 KEA128 子系列参考手册, Rev. 2, July 2014 584 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.3.35 发送扩展标识符寄存器 2 (MSCAN_TEIDR2) 扩展格式标识符的寄存器总共有 32 位:TEID[28:0]、TSRR、TEIDE 和 TRTR。 地址: 4002_4000h 基准 + 32h 偏移 = 4002_4032h 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* TEID14_TEID7 x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TEIDR2 字段描述 字段 TEID14_TEID7 描述 扩展格式标识符 14-7 扩展格式标识符由 29 位(TEID[28:0])组成。TEID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 32.3.36 发送扩展标识符寄存器 3 (MSCAN_TEIDR3) 扩展格式标识符的寄存器总共有 32 位:TEID[28:0]、TSRR、TEIDE 和 TRTR。 地址: 4002_4000h 基准 + 33h 偏移 = 4002_4033h 位 读 写 复位 7 6 5 4 3 2 1 TEID6_TEID0 x* x* x* 0 TERTR x* x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TEIDR3 字段描述 字段 7–1 TEID6_TEID0 0 TERTR 描述 扩展格式标识符 6-0 扩展格式标识符由 29 位(TEID[28:0])组成。TEID28 是最高有效位,在仲裁程序中,它最先通过 CAN 总线发 送。二进制数最小的标识符,其优先级最高。 远程发送请求 该标志反映 CAN 帧中远程发送请求位的状态。对于接收缓冲区,它指示接收帧的状态,支持通过软件发送 回应帧。对于发送缓冲区,该标志定义要传送的 TRTR 位的置位。 0 1 数据帧。 远程帧。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 585 存储器映像和寄存器定义 32.3.37 发送扩展数据段寄存器 N (MSCAN_TEDSRn) 8 个数据段寄存器(各有位 TDB[7:0])包含要发送的数据。要发送的字节数由对应 TDLR 寄存器中的数据长度码决定。 Address: 4002_4000h base + 34h offset + (1d × i), where i=0d to 7d 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* 2 1 0 x* x* TDB x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TEDSRn 字段描述 字段 TDB 描述 数据位 要接收的数据 32.3.38 发送数据长度寄存器 (MSCAN_TDLR) 该寄存器保存 CAN 帧的数据长度字段。 地址: 4002_4000h 基准 + 3Ch 偏移 = 4002_403Ch 位 读 写 复位 7 6 5 4 3 Reserved Reserved x* x* TDLC x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TDLR 字段描述 字段 7–4 Reserved TDLC 描述 此字段为保留字段。 数据长度码位 数据长度码包含相应报文的字节数(数据字节计数)。发送远程帧时,数据长度码按编程值发送,而发送的数 据字节数始终是 0。对于一个数据帧,数据字节数范围是 0 到 8。 0000 0001 0 1 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 586 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN_TDLR 字段描述 (继续) 字段 描述 0010 0011 0100 0101 0110 0111 1000 其他 2 3 4 5 6 7 8 保留 32.3.39 发送缓冲区优先级寄存器 (MSCAN_TBPR) 该寄存器定义相关报文缓冲区的本地优先级。本地优先级用于 MSCAN 的内部优 先排序处理,最小二进制数的优先级最高。MSCAN 实施了如下的内部优先排序机 制: • 在传送 SOF(帧开始)的前一刻,所有已清除 TXEx 标志的发送缓冲区都要参 与优先排序。 • 本地优先级字段最低的发送缓冲区将获得优先安排。 若有多个缓冲区具有相同的最低优先级字段,则索引号较低的报文缓冲区胜出。 注 当 TXEx 标志置位且在 CANTBSEL 中选中对应的发送缓冲 区时,可随时对该寄存器进行读写操作。 地址: 4002_4000h 基准 + 3Dh 偏移 = 4002_403Dh 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* PRIO x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TBPR 字段描述 字段 PRIO 描述 优先级 相关报文缓冲区的本地优先级。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 587 存储器映像和寄存器定义 32.3.40 发送时间标志寄存器高位 (MSCAN_TTSRH) 如果 TIME 位使能,则在 CAN 总线上出现有效报文的 EOF 之后,MSCAN 会立即 将时间标志写入有效发送缓冲区中的相应寄存器。对于发送,CPU 只能在相应的发 送缓冲区空标志置位后读取时间标志。 用作时间标志的定时器值来自一个自由运行的 CAN 内部位时钟。MSCAN 不会指 示定时器溢出。该定时器在初始化模式期间复位(所有位都置 0)。CPU 只能对时间 标志寄存器进行读操作。 注 对于发送缓冲区,当 TXEx 标志置位且在 CANTBSEL 中选 中对应的发送缓冲区时,可以随时对该寄存器进行读操作。 地址: 4002_4000h 基准 + 3Eh 偏移 = 4002_403Eh 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* TTS x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TTSRH 字段描述 字段 TTS 描述 时间标志 时间标志 7 至 0。 32.3.41 发送时间标志寄存器低位 (MSCAN_TTSRL) 如果 TIME 位使能,则在 CAN 总线上出现有效报文的 EOF 之后,MSCAN 会立即 将时间标志写入有效发送缓冲区中的相应寄存器。对于发送,CPU 只能在相应的发 送缓冲区空标志置位后读取时间标志。 用作时间标志的定时器值来自一个自由运行的 CAN 内部位时钟。MSCAN 不会指 示定时器溢出。该定时器在初始化模式期间复位(所有位都置 0)。CPU 只能对时间 标志寄存器进行读操作。 注 当 TXEx 标志置位且在 CANTBSEL 中选中对应的发送缓冲 区时,可随时对该寄存器进行读写操作。 KEA128 子系列参考手册, Rev. 2, July 2014 588 Freescale Semiconductor, Inc. 第 32 章 MSCAN 地址: 4002_4000h 基准 + 3Fh 偏移 = 4002_403Fh 位 读 写 复位 7 6 5 4 3 2 1 0 x* x* x* x* TTS x* x* x* x* * 注: • x = 复位时未定义。 MSCAN_TTSRL 字段描述 字段 TTS 描述 时间标志 时间标志 15 至 8。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 589 功能说明 32.4 功能说明 32.4.1 报文存储 CAN接收/发送引擎 存储器映射I/O Rx0 Rx1 Rx2 Rx3 Rx4 RxBG MSCAN CPU总线 RxFG 接收器 TxBG Tx0 MSCAN TxFG Tx1 TxBG Tx2 发送器 RXF TXE0 PRIO TXE1 CPU总线 PRIO TXE2 PRIO 图 32-4. 报文缓冲区组织的用户模型 MSCAN 可简化复杂的报文存储系统,该系统满足各种网络应用的要求。 KEA128 子系列参考手册, Rev. 2, July 2014 590 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.4.2 报文发送后台 现代应用层软件建立在两个基本假设之上: • 任何 CAN 节点都能在不释放两条报文之间 CAN 总线的情况下发出一连串预定 报文。这些节点在发出先前的报文后会立即为该 CAN 总线仲裁,并且仅在仲裁 丢失的情况下释放 CAN 总线。 • 任何 CAN 节点中的内部报文队列都是如此组织的,即如果有一条以上报文准备 要发送,则首先发送优先级最高的报文。 以上项目中描述的行为不能在单一发送缓冲区实现。在发出先前的报文后,必须立 即重新加载该缓冲区。该加载过程持续时间有限,并且必须在内置帧序列(IFS)中完 成,这样才能发送一连串不中断的报文。即使这对受限的 CAN 总线速度可行,也 需要 CPU 以短延迟对发送中断作出反应。 双缓冲区方案使发送缓冲区的重新加载与报文的实际发送脱钩,从而降低 CPU 的反 应性要求。如果在完成报文发送的同时 CPU 重新加载第二个缓冲区,则可能会引发 问题。之后由于没有准备好要发送报文的缓冲区,CAN 总线将被释放。 无论如何,要满足上述第一个要求至少需要三个发送缓冲区。MSCAN 有三个发送 缓冲区。 第二个要求需要某种内部优先次序,该次序由 MSCAN 根据“本地优先级”概念进行 实施。 32.4.3 发送结构 MSCAN 三重发送缓冲区方案通过允许提前设置多条报文来优化实时性能。三个缓 冲区的安排如图 32-4 所示。 三个缓冲器都有一个 13 字节数据结构,类似于接收缓冲器的大致结构。其他发送缓 冲器优先寄存器(TBPR)包含一个 8 位的本地优先字段(PRIO)。如果需要,剩余的两 个字节用于报文的时间标记。 要发送报文,CPU 必须要识别一个由一组发送缓冲区空(TXEx)标志指示的可用发送 缓冲器。如果发送缓冲器可用,那么 CPU 必须通过对 CANTBSEL 寄存器进行写操 作为该缓冲器设置一个指针。这样对应的缓冲器在 CANTXFG 地址空间中就是可 访问的。与 CANTBSEL 寄存器相关的算法特性可简化发送缓冲器选择。此外,因 为只有一个地址区适用于发送过程,并且所需的地址空间也得到最大限度降低,所 以该方案还可简化处理程序软件。 CPU 随后将标识符、控制位和数据内容存储到其中的某个发送缓冲器中。最后,通 过清零相关 TXE 标志,缓冲器被标志为准备用于发送。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 591 功能说明 MSCAN 之后将报文调度为用于发送,并通过设置相关 TXE 标志,发出缓冲器成功 发送的信号。当 TXEx 置位并可用于驱动应用软件去重载缓冲器时,一个发送中断 被产生 3 TXEx 置位且可用于驱动应用软件以重新加载缓冲器时。 CAN 总线变为可用于仲裁时,如果将一个以上的缓冲器调度用于发送,那么 MSCAN 会使用这三个缓冲器的本地优先级设置来决定优先次序。为此,每个发送 缓冲器都有一个 8 位本地优先级字段(PRIO)。应用软件在该报文被设置时对该字段 进行编程。本地优先级反映的是该特定报文相对于正从该节点发送的报文组的优先 级。PRIO 字段的最低二进制值被定义为最高优先级。每当 MSCAN 为 CAN 总线 进行仲裁时,都会发生内部调度流程。在发生发送错误后,也是如此。 高优先级报文由应用软件调度时,可能需要在其中某个发送缓冲器中中止较低优先 级报文。由于无法中止处于发送过程中的报文,因此用户必须通过设置相应的中止 请求位(ABTRQ)来请求中止。MSCAN 随后同意该请求,可能的方法为: 1. 在 CANTAAK 寄存器中设置相应的中止应答标志(ABTAK)。 2. 设置关联的 TXE 标志以释放缓冲器。 3. 生成发送中断。发送中断发送处理程序软件可根据 ABTAK 标志的设置确定报 文是被中止(ABTAK = 1)还是被发送(ABTAK = 0)。 32.4.4 接收结构 接收的报文存储在五级输入 FIFO。五个报文缓冲区被交替地映射入单个存储器区 域。后台接收缓冲区(RxBG)仅与 MSCAN 关联,但前台接收缓冲区(RxFG)可由 CPU 寻址。因为仅有一个地址区域适用于接收流程,所以该方案可简化处理程序软 件。 所有接收缓冲区均有 15 字节大小可存储 CAN 控制位、标识符(标准或扩展)、数 据内容和时间标志(如使能)。 接收器完整标志(RXF)用信号通知前台接收缓冲区的状态。该缓冲区包含相匹配标 识符的正确接收报文时,该标志置位。 接收时,对每一报文进行检查以查看其是否通过滤波器,并将其同时写入活动的 RxBG。成功接收有效报文之后,MSCAN 将 RxBG 的内容移入接收器 FIFO,使 RXF 标志置位,并生成接收中断 4 至 CPU。用户接收处理程序必须从 RxFG 读取接 收的报文,然后复位 RXF 标志以应答中断和释放前台缓冲器。可紧跟在 CAN 帧的 IFS 字段后的新报文被接收到下一可用的 RxBG。如果 MSCAN 在其 RxBG(错误的 标识符、发送错误等)中接收无效的报文,该缓冲区的实际内容将由下一报文重写。 该缓冲区随后将不会移位进入 FIFO。 3. 发送中断仅在未屏蔽时发生。轮询方案在 TXEx 上也适用。 4. 接收中断仅在未屏蔽的情况下发生。还可将轮询方案应用到 RXF 上。 KEA128 子系列参考手册, Rev. 2, July 2014 592 Freescale Semiconductor, Inc. 第 32 章 MSCAN MSCAN 模块处于发送状态时,MSCAN 接收其自身发送到后台接收缓冲区 RxBG 的报文,但不会移入接收器 FIFO,生成接收中断或在 CAN 总线上应答其自身报 文。此规则的异常情况是:MSCAN 处于回环模式时如同处理所有其他传入报文一 样处理其自身报文。MSCAN 在丢失仲裁的情况下接收其自身发送的报文。如果丢 失仲裁,则必须准备将 MSCAN 变为接收器。 当所有位于 FIFO 的接收报文缓冲区由带有接受标识符的正确接收报文填充,且另 一报文从使用带有接受标识符的 CAN 总线正确接收时,会发生溢出情况。如果使 能,会放弃后一则报文并生成带溢出指示的错误中断。在填满接收器 FIFO 时, MSCAN 仍然能够发送报文,但会放弃所有传入的报文。只要位于 FIFO 中的接收缓 冲区再次可用,就将接受新的有效报文。 32.4.5 标识符验收滤波器 MSCAN 标识符验收寄存器定义标准或扩展标识符(ID[10:0]或 ID[28:0])的可接受 模式。任何这些位均可在 MSCAN 标识符屏蔽寄存器中标记为“无关”位。 滤波器命中通过设置接收缓冲器满标志位和三个 CANIDAC 寄存器位去指示应用 软件。这些标识符命中标志位(IDHIT[2:0])清楚地识别导致验收的滤波器区段。它 们简化了应用软件的任务以便识别接收器中断的原因。如果发生一个以上的命中 (两个或多个滤波器匹配),则较低的命中具有优先级。 已引入一个极为灵活的可编程通用标识符验收滤波器以减轻 CPU 中断负荷。滤波 器经编程后可在四个不同的模式中工作: • 两个标识符验收滤波器,每个都将用于: • 扩展标识符的完整 29 位和 CAN 2.0B 帧的下列位: • 远程发送请求(RTR) • 标识符扩展(IDE) • 替代远程请求(SRR) • 标准标识符的 11 位以及 CAN 2.0A/B 报文的 RTR 位和 IDE 位。该模式针 对具有完整长度且兼容 CAN 2.0B 的扩展标识符实施两个滤波器。尽管该 模式可用于标准标识符,但仍建议使用四个或八个标识符验收滤波器。 图 32-5 显示首个 32 位滤波器组(CANIDAR0–CANIDAR3, CANIDMR0– CANIDMR3)如何产生滤波器 0 命中。类似地,第二个滤波器组 (CANIDAR4–CANIDAR7, CANIDMR4–CANIDMR7)产生滤波器 1 命中。 • 四个标识符验收滤波器,每个都将用于: • 扩展标识符的 14 个最高有效位以及 CAN 2.0B 报文的 SRR 位和 IDE 位。 • 标准标识符的 11 位以及 CAN 2.0A/B 报文的 RTR 位和 IDE 位。图 32-6 显 示首个 32 位滤波器组(CANIDAR0-CANIDAR3, CANIDMR0-CANIDMR3) 如何产生过滤器 0 和 1 命中。类似地,第二个滤波器组(CANIDAR4– CANIDAR7, CANIDMR4–CANIDMR7)产生滤波器 2 和 3 命中。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 593 功能说明 • 八个标识符验收滤波器,每个都将用于标识符的前 8 位。该模式实施八个独立 滤波器,用于兼容 CAN 2.0A/B 的标准标识符或兼容 CAN 2.0B 的扩展标识符的 前 8 位。图 32-7 显示首个 32 位滤波器组(CANIDAR0-CANIDAR3, CANIDMR0-CANIDMR3)如何产生滤波器 0 到 3 的命中。类似地,第二个滤波 器组(CANIDAR4-CANIDAR7, CANIDMR4-CANIDMR7)产生滤波器 4 到 7 的 命中。 • 封闭式滤波器。无 CAN 报文复制到前台缓冲区 RxFG,且 RXF 标志从不置位。 CAN 2.0B 扩展标识符 CAN 2.0A/B 标准标识符 ID21 ID20 IDR1 ID10 IDR0 ID3 ID2 IDR1 AM7 CANIDMR0 AM7 CANIDMR1 AM0 AM7 CANIDMR2 AM0 AM7 CANIDMR3 AM0 AC7 CANIDAR0 AC0 AC7 CANIDAR1 AC0 AC7 CANIDAR2 AC0 AC7 CANIDAR3 AC0 ID7 ID6 IDR3 RTR ID10ID3 IDR3 AM0 ID15 ID7 IDR0 ID28 IDE ID14 IDR2 ID10ID3 IDR2 ID6 IDR3 ID10ID3 IDR3 RTR ID已验收(滤波器0已命中) 图 32-5. 32 位可屏蔽标识符验收滤波器 CAN 2.0B 扩展标识符 CAN 2.0A/B 标准标识符 ID28 IDR0 ID21 ID20 IDR1 ID10 IDR0 ID3 ID2 IDR1 AM7 CANIDMR0 AM0 AM7 CANIDMR1 AM0 AC7 CANIDAR0 AC0 AC7 CANIDAR1 AC0 ID15 IDE ID14 IDR2 ID10ID3 IDR2 ID已验收(滤波器0已命中) AM7 CANIDMR2 AM0 AM7 CANIDMR3 AM0 AC7 CANIDAR2 AC0 AC7 CANIDAR3 AC0 ID已验收(滤波器1已命中) 图 32-6. 16 位可屏蔽标识符验收滤波器 KEA128 子系列参考手册, Rev. 2, July 2014 594 Freescale Semiconductor, Inc. 第 32 章 MSCAN CAN 2.0B 扩展标识符 CAN 2.0A/B 标准标识符 ID28 IDR0 ID21 ID20 IDR1 ID10 IDR0 ID3 ID2 IDR1 AM7 CIDMR0 AM0 AC7 CIDAR0 AC0 ID15 IDE ID14 IDR2 ID10ID3 IDR2 ID7 ID6 IDR3 ID10ID3 IDR3 RTR ID已验收(滤波器0已命中) AM7 CIDMR1 AM0 AC7 CIDAR1 AC0 ID已验收(滤波器1已命中) AM7 CIDMR2 AM0 AC7 CIDAR2 AC0 ID已验收(滤波器2已命中) AM7 CIDMR3 AM0 AC7 CIDAR3 AC0 ID已验收(滤波器3已命中) 图 32-7. 8 位可屏蔽标识符验收滤波器 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 595 功能说明 32.4.5.1 协议违规保护 MSCAN 可防止用户在进行错误编程时意外违反 CAN 协议。保护逻辑包含下列特 性: • 不能对接受和发送错误计数器进行写操作或其他方面的处理。 • MSCAN 在线时不能对控制 MSCAN 配置的所有寄存器进行改动。MSCAN 必 须处于初始化模式。CANCTL0/CANCTL1 寄存器对应的 INITRQ/INITAK 握手 位用作锁定以保护下列寄存器: • MSCAN 控制 1 寄存器(CANCTL1) • MSCAN 总线定时寄存器 0 和 1 (CANBTR0, CANBTR1) • MSCAN 标识符验收控制寄存器(CANIDAC) • MSCAN 标识符验收寄存器(CANIDAR0-CANIDAR7) • MSCAN 标识符屏蔽寄存器(CANIDMR0-CANIDMR7) • MSCAN 转入掉电模式或初始化模式时,TXCAN 会被立即强制进入隐性状态。 • MSCAN 使能位(CANE)在正常系统工作模式下只能写入一次,可进一步防止对 MSCAN 的无意禁用。 32.4.5.2 时钟系统 下图显示 MSCAN 时钟生成电流的结构。 MSCAN 总线时钟 CANCLK CLKSRC 振荡器时钟 预分频器 (1 .. 64) 时间量子时钟(Tq) CLKSRC 图 32-8. MSCAN 计时方案 CANCTL1 寄存器中的时钟源位(CLKSRC)定义内部 CANCLK 是连接到晶振(振荡 器时钟)还是总线时钟。 时钟源必须选择有严格公差要求的振荡器(最大 0.4%)以满足 CAN 协议。此外, 对于高 CAN 总线率(1 Mbps),要求时钟的占空比在 45%到 55%之间。 如果总线时钟从 PLL 生成,则出于抖动方面的考虑,建议选择振荡器时钟而非总线 时钟,尤其在处于更快的 CAN 总线速率时。 对于无时钟和复位生成器(CRG)的微控制器,从晶振(振荡器时钟)驱动 CANCLK。 KEA128 子系列参考手册, Rev. 2, July 2014 596 Freescale Semiconductor, Inc. 第 32 章 MSCAN 可编程的预分频器从 CANCLK 生成时间量子(Tq)时钟。时间量子是 MSCAN 处理 的原子单位时间。 Γq = fCANCLK /(预分频器值) 位时间可细分为三个区段,如 Bosch CAN 2.0A/B 规范所述。(参见图 32-9 ): • SYNC_SEG:该区段有一个固定长度的时间量子。在该部分内预期发生信号边 沿。 • 时间段 1:该区段包括 PROP_SEG 和 CAN 标准的 PHASE_SEG1。通过将参数 TSEG1 设置为由 4 到 16 个时间量子组成可对该区段进行编程。 • 时间段 2:该区段代表 CAN 标准的 PHASE_SEG2。通过将参数 TSEG2 设置为 2 到 8 个时间量子长可对该区段进行编程。 比特率=fΓq/(时间量子数) NRZ信号 SYNC_SEG 1 时间段2 (PHASE_SEG2) 时间段1 (PROP_SEG + PHASE_SEG1) 4 ... 16 2 ... 8 8 ... 25个时间量子 = 1个位时间 采样点 (单次或三次采样) 发送点 图 32-9. 位时间内的区段 表 32-4. 时间段句法 句法 SYNC_SEG 说明 系统期望在该周期内在 CAN 总线上发生转换。 发送点 处于发送模式的节点于此时将新值传输到 CAN 总线。 采样点 处于接收模式的节点于此时对 CAN 总线采样。如果选择每位三样本选项,那么该点标志第三个 样本的位置。 通过设置 SJW 参数可将同步跳转宽度(有关详情,请参见 Bosch CAN 2.0A/B 规范) 编程为位于 1 到 4 个时间量子范围内。 设定 SYNC_SEG、TSEG1、TSEG2 和 SJW 参数的方法是对 MSCAN 总线定时寄存 器(CANBTR0,CANBTR1)进行编程。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 597 功能说明 表 32-5 概述了符合 Bosch CAN 2.0A/B 规范的段设置以及相关参数值。 表 32-5. 符合 Bosch CAN 2.0A/B 规范的位时间段设置 时间段 1 TSEG1 时间段 2 TSEG2 同步跳转宽度 SJW 5 .. 10 4 .. 9 2 1 1 .. 2 0 .. 1 4 .. 11 3 .. 10 3 2 1 .. 3 0 .. 2 5 .. 12 4 .. 11 4 3 1 .. 4 0 .. 3 6 .. 13 5 .. 12 5 4 1 .. 4 0 .. 3 7 .. 14 6 .. 13 6 5 1 .. 4 0 .. 3 8 .. 15 7 .. 14 7 6 1 .. 4 0 .. 3 9 .. 16 8 .. 15 8 7 1 .. 4 0 .. 3 32.4.6 低功耗选项 如果 MSCAN 禁用 (CANE = 0),则会停止 MSCAN 时钟以便节能。 如果 MSCAN 使能 (CANE = 1),则与正常模式相比,MSCAN 有另外两个可减少功 耗的模式:睡眠模式和降耗模式。在睡眠模式中,降低功耗的方法是停止所有时钟 (那些从 CPU 侧访问寄存器的除外)。在降耗模式中,所有时钟都停止且无功耗。 表 32-6 总结了 MSCAN 和 CPU 模式的组合。根据 CSWAI 和 SLPRQ/SLPAK 位上 给定的设置会进入特定的模式组合。 表 32-6. CPU 与 MSCAN 工作模 式 CPU 模式 MSCAN 模式 正常 降低功耗 睡眠 RUN • • • CSWAI = X1 SLPRQ = 0 SLPAK = 0 • • • CSWAI = X SLPRQ = 1 SLPAK = 1 等待 • • • CSWAI = 0 SLPRQ = 0 SLPAK = 0 • • • CSWAI = 0 SLPRQ = 1 SLPAK = 1 停止 降耗 禁用(CANE=0) • • • CSWAI = X SLPRQ = X SLPAK = X • • • CSWAI = 1 SLPRQ = X SLPAK = X • • • CSWAI = X SLPRQ = X SLPAK = X • • • CSWAI = X SLPRQ = X SLPAK = X • • • CSWAI = X SLPRQ = X SLPAK = X 1. X 表示无关紧要。 KEA128 子系列参考手册, Rev. 2, July 2014 598 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.4.6.1 Run 模式下的操作 如表 32-6 所示,CPU 处于 Run 模式时,仅 MSCAN 睡眠模式可用作低功耗选项。 32.4.6.2 Wait 模式下的操作 WAI 指令将 MCU 置于低功耗待机模式。如果 CSWAI 位置位,那么由于 CPU 时钟 停止,因而可在降耗模式下节省额外电能。离开该降耗模式后,MSCAN 重启并再 次进入正常模式。 CPU 处于 Wait 模式时,MSCAN 可在正常模式下工作并生成中断(通过 Background Debug 模式可访问寄存器)。 32.4.6.3 Stop 模式下的操作 STOP 指令将 MCU 置于低功耗待机模式。在 Stop 模式下,MSCAN 都被置于降耗 模式,而无论 SLPRQ/SLPAK 位和 CSWAI 位的值如何(表 32-6)。 32.4.6.4 MSCAN 正常模式 这是非节能模式。使能 MSCAN 会使禁用模式中的模块进入正常模式。在该模式 下,模块可处于初始化模式或退出初始化模式。请参见 MSCAN 初始化模式 。 32.4.6.5 MSCAN 睡眠模式 CPU 可通过在 CANCTL0 寄存器中使 SLPRQ 位的电平变为有效值而请求 MSCAN 进入此低功耗模式。MSCAN 进入睡眠模式的时间取决于固定同步延迟和其当前的 活动: • 如果有一个或多个报文缓冲器经调度后用于发送(TXEx = 0),则 MSCAN 将继续 发送,直到所有发送报文缓冲器为空(TXEx = 1,成功发送或中止),然后进入 睡眠模式。 • 如果 MSCAN 正处于接收状态,其将继续接收并当 CAN 总线下一次进入空闲状 态时进入睡眠模式。 • 如果 MSCAN 既不发送也不接收,就会立即进入睡眠模式。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 599 功能说明 总线时钟域 CPU 睡眠请求 SLPAK 标志 CAN时钟域 SLPRQ SYNC 同步 SLPAK SYNC 同步 SLPRQ SLPAK SLPRQ 标志 MSCAN 睡眠模式 下的 图 32-10. 睡眠请求/应答周期 注 应用软件必须避免设置发送(通过清零一个或多个 TXEx 标 志)并立即请求睡眠模式(通过设置 SLPRQ)。MSCAN 开 始发送还是直接进入睡眠模式取决于操作的确切顺序。 如果睡眠模式处于有效状态,则 SLPRQ 位和 SLPAK 位置位 (图 32-10)。应用软件 必须将 SLPAK 用作请求(SLPRQ)进入睡眠模式的握手指示。 处于睡眠模式(SLPRQ = 1 且 SLPAK = 1)时,MSCAN 停止其内部时钟。但是, 允许从 CPU 一侧访问寄存器的时钟继续运行。 如果 MSCAN 处于总线关闭状态,则其会因时钟停止而停止对 11 个连续隐性位 128 次出现进行计数。TXCAN 保持隐性状态。如果 RXF = 1,则可读取报文和清零 RXF。将新报文移位到接收器 FIFO (RxFG)的前台缓冲区中在睡眠模式下不发生。 可以访问发送缓冲器和清零关联的 TXE 标志位。在睡眠模式下不发生报文中止。 如果未使 CANCTL0 中 WUPE 位的电平变为有效,则 MSCAN 将屏蔽其在 CAN 上 检测的任何活动。RXCAN 因此在内部被保持在隐性状态。这将 MSCAN 锁定在睡 眠模式中。WUPE 在进入睡眠模式生效之前必须置位。 MSCAN 能够离开睡眠模式(唤醒)的唯一条件是: • CAN 总线活动发生并且 WUPE=1 或 • CPU 清零 SLPRQ 位 注 CPU 在睡眠模式(SLPRQ = 1 和 SLPAK=1)处于有效状态 之前无法清零 SLPRQ 位。 唤醒之后,MSCAN 等待 11 个连续的隐性位,以便与 CAN 总线同步。因此,如果 CAN 帧唤醒 MSCAN,则不接收此帧。 KEA128 子系列参考手册, Rev. 2, July 2014 600 Freescale Semiconductor, Inc. 第 32 章 MSCAN 接收报文缓冲器(RxFG 和 RxBG)包含其在进入睡眠模式之前是否被接收的报文。 一旦唤醒就会执行所有挂起操作;RxBG 复制到 RxFG、报文中止和报文发送。如 果在退出睡眠模式之后 MSCAN 保持在总线关闭状态,其会继续对 11 个连续隐性 位 128 次出现进行计数。 32.4.6.6 MSCAN 降耗模式 MSCAN 处于降耗模式(表 32-6)的条件是: • CPU 处于 Stop 模式或 • CPU 处于 Wait 模式且 CSWAI 位置位 进入降耗模式时,MSCAN 会立即停止所有正在进行的发送和接收,从而而可能导 致违反 CAN 协议。为防止 CAN 总线系统发生违反上述规则的致命后果,MSCAN 立即驱动 TXCAN,使其进入隐性状态。 注 用户负责确保在进入降耗模式时 MSCAN 不处于有效状态。 建议的步骤是在执行 STOP 或 WAI 指令前使 MSCAN 进入 睡眠模式(如果 CSWAI 置位)。否则,中止正在进行的报 文可能会导致错误情况并影响其他 CAN 总线器件。 在降耗模式下,会停止所有时钟且不访问寄存器。如果 MSCAN 在降耗模式变为有 效状态前不处于睡眠模式,则该模块在上电后执行内部恢复周期。这在该模块再次 进入正常模式之前会导致某个固定延迟。 32.4.6.7 禁用模式 MSCAN 在退出复位后处于禁用模式(CANE=0)。所有模块时钟都停止以便省电,但 仍可根据规定访问寄存器映像。 32.4.6.8 可编程唤醒功能 只要检测到 CAN 总线活动,便可将 MSCAN 编程为从睡眠或降耗模式中唤醒(参 见 MSCAN 控制寄存器 0 (CANCTL0)中的控制位 WUPE。)对现有 CAN 总线动作的 敏感度是可以修改的,方法是:将低通过滤波器功能应用到 RXCAN 输入线路。 该特性可用于防止 MSCAN 因 CAN 总线线路上的短时毛刺而唤醒。这类毛刺可能 由噪杂环境中的电磁干扰等情况而引起。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 601 功能说明 32.4.7 复位初始化 每一独立位的复位状态列示在详细介绍所有寄存器及其位字段的存储器映像和寄存 器定义 中。 32.4.8 中断 本节介绍由 MSCAN 引起的所有中断。它记录使能位和生成的标志。每个中断都 分别列示和介绍。 32.4.8.1 中断操作说明 MSCAN 支持四个中断向量(参见 表 32-7 ),其中任何一个都可被单独屏蔽。 请参阅设备概述一节以确定专用的中断向量地址。 表 32-7. 中断向量 CCR 掩码 中断源 本地使能 唤醒中断(WUPIF) I位 CANRIER (WUPIE) 错误中断中断(CSCIF, OVRIF) I位 CANRIER (CSCIE, OVRIE) 接收中断(RXF) I位 CANRIER (RXFIE) 发送中断(TXE[2:0]) I位 CANTIER (TXEIE[2:0]) 32.4.8.2 发送中断 三个发送缓冲器中至少有一个为空(未经调度)并且经加载后可将报文调度用于发 送。空报文缓冲器的 TXEx 标志置位。 32.4.8.3 接收中断 成功接收一则报文并将其移位到接收器 FIFO 的前台缓冲区(RxFG)中。接收 EOF 符号后立即生成该中断。RXF 标志置位。如果接收器 FIFO 中有多则报文,则只要 下一则报文移位到前台缓冲区,RXF 标志就为置位。 KEA128 子系列参考手册, Rev. 2, July 2014 602 Freescale Semiconductor, Inc. 第 32 章 MSCAN 32.4.8.4 唤醒中断 如果在 MSCAN 睡眠或电源中断模式期间在 CAN 总线上发生活动,则会生成唤醒 中断。 注 该中断发生的条件仅限于以下三种:MSCAN 在进入降耗模 式之前处于睡眠模式(SLPRQ = 1 且 SLPAK = 1)、唤醒选 项使能(WUPE = 1)以及唤醒中断使能(WUPIE = 1)。 32.4.8.5 错误中断 如果发生接收器 FIFO 溢出、错误、警告或者总线关闭情况,则会生成错误中断。 MSCAN 接收器标志寄存器(CANRFLG)指示下列情况之一: • 溢出—接收结构 中所述的接收器 FIFO 溢出情况。 • CAN 状态变更—发送和接收错误计时器的实际值控制 MSCAN 的 CAN 总线状 态。只要错误计数器直接进入临界范围(发送/接收警告、发送/接收错误、总线 关闭),MSCAN 就会标记错误情况。引起错误情况的状态变更由 TSTAT 标志 和 RSTAT 标志指示。 32.4.8.6 中断应答 中断与 MSCAN 接收器标志位寄存器(CANRFLG)或 MSCAN 发送器标志位寄存器 (CANTFLG)中的一个或多个状态标志位直接关联。只要其中一个相应标志置位,中 断就会挂起。必须在中断处理程序中复位 CANRFLG 和 CANTFLG 中的标志以使 能下一次中断信号。复位这些标志的方法是将 1 写入相应的位位置。如果相关条件 生效,则无法清零该标志。 注 必须保证 CPU 只清零引起当前中断的位。因此,位操作指 令(BSET)不得用于清零中断标志。这些指令可能会意外清 零在进入当前中断服务程序后置位的中断标志。 32.4.9 初始化/应用信息 32.4.9.1 MSCAN 初始化 初始启动离开复位状态的 MSCAN 模块的步骤如下所示: 1. 使 CANE 的电平变为有效 2. 对初始化模式下的配置寄存器进行写操作 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 603 初始化/应用信息 3. 清零 INITRQ 以退出初始化模式 如果要更改仅在初始化模式下可写入的寄存器配置: 1. 通过在 CAN 总线变为空闲状态后设置 SLPRQ 并等待 SLPAK 的电平变为有效 使该模块进入睡眠模式。 2. 进入初始化模式:使 INITRQ 的电平变为有效并等待 INITAK 3. 对初始化模式下的配置寄存器进行写操作 4. 清零 INITRQ 以退出初始化模式并继续 32.4.9.2 总线关闭恢复 总线关闭恢复可由用户配置。可自动或者根据用户请求离开总线关闭状态。 由于向后兼容性原因,MSCAN 在复位后默认为自动恢复。在这种情况下,在 CAN 总线上出现 128 次 11 个连续隐性位后,MSCAN 将再次进入错误激活状态(有关详 情,请参见 Bosch CAN 2.0 A/B 规范)。 如果针对用户请求配置 MSCAN(BORM 在 MSCAN 控制寄存器 1 (CANCTL1)中置 位) ,那么从总线关闭的恢复在两个独立事件变为有效后启动: • 监测到 CAN 总线上出现 128 次 11 个连续隐性位 • MSCAN 其他寄存器(CANMISC)中的 BOHOLD 已被用户清除 这两个事件可以任意顺序发生。 KEA128 子系列参考手册, Rev. 2, July 2014 604 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.1 简介 33.1.1 特性 UART 模块的特性包括: • 全双工标准不归零(NRZ)格式 • 具有单独使能的双缓冲发送器和接收器 • 可编程波特率(13 位模数分频器) • 中断驱动或轮询操作: • 发送数据寄存器为空且发送完成 • 接收数据寄存器已满 • 接收溢出、奇偶错误、成帧错误和噪声错误 • 空闲接收器检测 • 接收引脚上的活动边沿 • 支持 LIN 的分割符检测 • 硬件奇偶生成和校验 • 可编程 8 位或 9 位字符长度 • 可编程 1 位或 2 位停止位 • 由闲置线路或地址标志唤醒接收器 • 可选 13 位分隔字符生成/11 位分隔字符检测 • 可选择发送器输出极性 33.1.2 工作模式 有关这些模式下的相关 UART 操作,请参见章节功能说明 : • 8 位和 9 位数据模式 • Stop 模式操作 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 605 简介 • 循环模式 • 单线模式 33.1.3 结构框图 下图显示 UART 的发送器部分。 内部总线 (只写) LOOPS UART_D – Tx Buffer RSRC 环路 控制 停止 M 8 7 6 5 4 3 2 1 0 至TxD引脚 L lsb H 1 波特 率时钟 至接收 数据输入 起始 11位传送移位寄存器 移位方向 PT 断点(全0) 奇偶 生成 前同步码(全1) PE 移位使能 T8 加载自 UARTx_D TXINV UART控制TxD TE SBK 至TxD 引脚逻辑 传送控制 TxD方向 TXDIR BRK13 TDRE TIE TC Tx中断 请求 TCIE 图 33-1. UART 发送器结构框图 下图显示 UART 的接收器部分。 KEA128 子系列参考手册, Rev. 2, July 2014 606 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 内部总线 (只读) 来自RxD引脚 M LBKDE H 数据恢复 RXINV 8 7 6 5 WAKE ILT 4 3 2 起始 RSRC 11位接收移位寄存器 单线 环路控制 停止 LOOPS UART_D – Rx Buffer lsb 来自 发送器 16 分频 全1 msb 16 x 波特 率时钟 0 L 1 移位方向 唤醒 逻辑 RWU RWUID RDRF RIE IDLE ILIE LBKDIF Rx中断 请求 LBKDIE 来自RxD引脚 有效边沿 检测 RXEDGIF RXEDGIE OR ORIE FE FEIE NF 错误中断 请求 NEIE PE PT 奇偶 校验 PF PEIE 图 33-2. UART 接收器结构框图 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 607 UART 信号说明 33.2 UART 信号说明 UART 信号如此表所示。 表 33-1. UART 信号说明 信号 说明 I/O RxD 接收数据 I TxD 发送数据 I/O 33.2.1 详细信号说明 UART 的详细信号说明如下表所示。 表 33-2. UART—详细信号说明 信号 I/O 说明 RxD I 接收数据。接收器的串行数据输入。 状态含义 时序 TxD I/O RxD 是被解析为 1 还是 0 取决于位编码方法以及其他配置设置。 以模块时钟除以波特率所得频率进行采样。 发送数据。发送器的串行数据输出。 状态含义 时序 TxD 是被解析为 1 还是 0 取决于位编码方法以及其他配置设置。 根据位编码方法以及其他配置设置,在开始时或位时间内驱动。否则, 发送与接收时序无关。 33.3 寄存器定义 UART 拥有 8 位寄存器以控制波特率,选择 UART 选项,报告 UART 状态,以及发 送/接收数据。 有关所有 UART 寄存器,请参见本文档存储器章节中的直接页面寄存器摘要和寄存 器的绝对地址分配。该部分仅按其名称参考寄存器和控制位。Freescale 提供的等 同或头文件用于将这些名称转换为正确的绝对地址。 KEA128 子系列参考手册, Rev. 2, July 2014 608 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) UART 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4006_A000 UART 波特率寄存器:高位 (UART0_BDH) 8 R/W 00h 33.3.1/609 4006_A001 UART 波特率寄存器:低位 (UART0_BDL) 8 R/W 04h 33.3.2/610 4006_A002 UART 控制寄存器 1 (UART0_C1) 8 R/W 00h 33.3.3/611 4006_A003 UART 控制寄存器 2 (UART0_C2) 8 R/W 00h 33.3.4/612 4006_A004 UART 状态寄存器 1 (UART0_S1) 8 R C0h 33.3.5/613 4006_A005 UART 状态寄存器 2 (UART0_S2) 8 R/W 00h 33.3.6/615 4006_A006 UART 控制寄存器 3 (UART0_C3) 8 R/W 00h 33.3.7/617 4006_A007 UART 数据寄存器 (UART0_D) 8 R/W 00h 33.3.8/618 4006_B000 UART 波特率寄存器:高位 (UART1_BDH) 8 R/W 00h 33.3.1/609 4006_B001 UART 波特率寄存器:低位 (UART1_BDL) 8 R/W 04h 33.3.2/610 4006_B002 UART 控制寄存器 1 (UART1_C1) 8 R/W 00h 33.3.3/611 4006_B003 UART 控制寄存器 2 (UART1_C2) 8 R/W 00h 33.3.4/612 4006_B004 UART 状态寄存器 1 (UART1_S1) 8 R C0h 33.3.5/613 4006_B005 UART 状态寄存器 2 (UART1_S2) 8 R/W 00h 33.3.6/615 4006_B006 UART 控制寄存器 3 (UART1_C3) 8 R/W 00h 33.3.7/617 4006_B007 UART 数据寄存器 (UART1_D) 8 R/W 00h 33.3.8/618 4006_C000 UART 波特率寄存器:高位 (UART2_BDH) 8 R/W 00h 33.3.1/609 4006_C001 UART 波特率寄存器:低位 (UART2_BDL) 8 R/W 04h 33.3.2/610 4006_C002 UART 控制寄存器 1 (UART2_C1) 8 R/W 00h 33.3.3/611 4006_C003 UART 控制寄存器 2 (UART2_C2) 8 R/W 00h 33.3.4/612 4006_C004 UART 状态寄存器 1 (UART2_S1) 8 R C0h 33.3.5/613 4006_C005 UART 状态寄存器 2 (UART2_S2) 8 R/W 00h 33.3.6/615 4006_C006 UART 控制寄存器 3 (UART2_C3) 8 R/W 00h 33.3.7/617 4006_C007 UART 数据寄存器 (UART2_D) 8 R/W 00h 33.3.8/618 33.3.1 UART 波特率寄存器:高位 (UARTx_BDH) 该寄存器与 UART_BDL 一起控制 UART 波特率生成的预分频因子。要更新 13 位 波特率设置 SBR[12:0],首先应写入 UART_BDH 以缓存新值的高半部分,然后写入 UART_BDL。UART_BDH 中的工作值要等到写入 UART_BDL 之后才改变。 地址: 基址 基准 + 0h 偏移 位 读 写 复位 7 6 5 LBKDIE RXEDGIE SBNS 0 0 0 4 3 2 1 0 0 0 SBR 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 609 寄存器定义 UARTx_BDH 字段描述 字段 7 LBKDIE 6 RXEDGIE 5 SBNS 描述 LIN 断点检测中断使能(用于 LBKDIF) 0 1 RxD 输入有效边沿中断使能(用于 RXEDGIF) 0 1 来自 UART_S2[RXEDGIF]的硬件中断禁用(使用轮询)。 UART_S2[RXEDGIF]标志为 1 时,请求硬件中断。 停止位数选择 SBNS 决定数据字符是一个停止位还是两个停止位。 0 1 SBR 来自 UART_S2[LBKDIF]的硬件中断禁用(使用轮询)。 UART_S2[LBKDIF]标志为 1 时,请求硬件中断。 一个停止位。 两个停止位。 波特率模数分频因子。 SBR[12:0]中的 13 位统称为 BR,用于设置 UART 波特率发生器的模数分频比。清除 BR 时,UART 波特率 发生器禁用以降低供电电流。BR 为 1 - 8191 时,UART 波特率等于 BUSCLK/(16×BR)。 33.3.2 UART 波特率寄存器:低位 (UARTx_BDL) 该寄存器与 UART_BDH 一起控制 UART 波特率生成的预分频因子。要更新 13 位 波特率设置[SBR12:SBR0],首先应写入 UART_BDH 以缓存新值的高半部分,然后 写入 UART_BDL。UART_BDH 中的工作值要等到写入 UART_BDL 之后才改变。 UART_BDL 复位为非零值,因此在复位后,波特率发生器保持禁用到首次使能接收 器或发送器时为止,也就是向 UART_C2[RE]或 UART_C2[TE]位写入 1。 地址: 基址 基准 + 1h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 0 1 0 0 SBR 0 0 0 0 UARTx_BDL 字段描述 字段 SBR 描述 波特率模数分频因子 SBR[12:0]中的这 13 位统称为 BR,用于设置 UART 波特率发生器的模数分频比。清除 BR 时,UART 波特 率发生器禁用以降低供电电流。BR 为 1 - 8191 时,UART 波特率等于 BUSCLK/(16×BR)。 KEA128 子系列参考手册, Rev. 2, July 2014 610 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.3.3 UART 控制寄存器 1 (UARTx_C1) 该读/写寄存器控制 UART 系统的各种可选特性。 地址: 基址 基准 + 2h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 LOOPS UARTSWAI RSRC M WAKE ILT PE PT 0 0 0 0 0 0 0 0 UARTx_C1 字段描述 字段 7 LOOPS 描述 环路模式选择 选择环路模式或正常 2 引脚全双工模式。LOOPS 置位时,发送器输出内部连接到接收器输入。 0 1 6 UARTSWAI 5 RSRC UART 在等待模式下停止 0 1 该字段无意义或无效,除非 LOOPS 设置为 1。当 LOOPS 置位时,接收器输入内部连接到 TxD 引脚,RSRC 决定此连接是否同时连接到发送器输出。 该字段配置 UART 以 9 位或 8 位数据模式工作。 正常 - 起始 + 8 数据位(LSB 优先)+ 停止。 接收器和发送器使用 9 位数据字符:起始 + 8 数据位(LSB 优先)+ 第 9 数据位 + 停止。 接收器唤醒方法选择 该字段选择接收器唤醒方法。 0 1 2 ILT 如果 LOOPS 置位且 RSRC 被清除,则选择内部回环模式,UART 不使用 RxD 引脚。 单线 UART 模式,TxD 引脚连接到发送器输出和接收器输入。 9 位或 8 位模式选择 0 1 3 WAKE UART 时钟在等待模式下继续运行,UART 因此可用作唤醒 CPU 的中断源。 CPU 处于等待模式的同时 UART 时钟冻结。 接收器源选择 0 1 4 M 正常工作 - RxD 和 TxD 使用不同的引脚。 环路模式或单线模式,发送器输出内部连接到接收器输入。(参见 RSRC 位。)UART 不使用 RxD 引脚。 空闲线路唤醒。 地址标记唤醒。 空闲线路类型选择 该字段置 1 可确保字符结束时的停止位和逻辑 1 位不计数到空闲线路检测逻辑所需的 10 或 11 位逻辑高电 平时间。 0 1 空闲字符位计数开始于起始位之后。 空闲字符位计数开始于停止位之后。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 611 寄存器定义 UARTx_C1 字段描述 (继续) 字段 描述 奇偶校验使能 1 PE 使能硬件奇偶生成和校验。使能奇偶校验时,数据字符的最高有效位(第 8 或第 9 数据位)被视为奇偶校验 位。 0 1 无硬件奇偶生成或校验。 使能奇偶校验。 奇偶校验类型 0 PT 奇偶校验使能时(PE = 1),该字段选择偶数或奇数校验。奇数校验是指数据字符中 1 的总数(包括奇偶校验 位)为奇数。偶数校验是指数据字符中 1 的总数(包括奇偶校验位)为偶数。 0 1 偶数校验。 奇数校验。 33.3.4 UART 控制寄存器 2 (UARTx_C2) 可随时对该寄存器进行读写操作。 地址: 基址 基准 + 3h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 TIE TCIE RIE ILIE TE RE RWU SBK 0 0 0 0 0 0 0 0 UARTx_C2 字段描述 字段 7 TIE 描述 用于 TDRE 的发送中断使能 0 1 来自 TDRE 的硬件中断禁用;使用轮询。 TDRE 标志为 1 时,请求硬件中断。 6 TCIE 用于 TC 的发送完成中断使能 5 RIE 用于 RDRF 的接收器中断使能 4 ILIE 用于 IDLE 的空闲线路中断使能 3 TE 发送器使能 0 1 0 1 0 1 来自 TC 的硬件中断禁用;使用轮询。 TC 标志为 1 时,请求硬件中断。 来自 S1[RDRF]的硬件中断禁用;使用轮询。 S1[RDRF]标志为 1 时,请求硬件中断。 来自 S1[IDLE]的硬件中断禁用;使用轮询。 S1[IDLE]标志为 1 时,请求硬件中断。 要使用 UART 发送器,TE 必须为 1。TE 置位时,UART 将 TxD 引脚强制用作 UART 系统的输出。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 612 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) UARTx_C2 字段描述 (继续) 字段 描述 当 UART 配置为单线工作(LOOPS = RSRC = 1)时,TXDIR 控制单一 UART 通信线路(TxD 引脚)上的流量 方向。 在发送进行的同时,TE 也可将某个空闲字符加入队列,方法是将 TE 先清零再置位。 将 0 写入 TE 时,发送器一直保持对端口 TxD 引脚的控制,直到数据、排队空闲或断点字符的发送完成后, 才允许该引脚恢复为通用 I/O 引脚。 0 1 发送器关闭。 发送器开启。 接收器使能 2 RE UART 接收器关闭时,RxD 引脚恢复为通用端口 I/O 引脚。如果 C1[LOOPS]置位,即使 RE 置位,RxD 引 脚也会恢复为通用 I/O 引脚。 0 1 1 RWU 接收器唤醒控制 可将 1 写入该字段以将 UART 接收器置于待机状态,令其等待硬件自动检测选定的唤醒条件。唤醒条件是报 文之间有空闲线路、WAKE = 0、空闲线路唤醒,或者字符的最高有效位为逻辑 1、WAKE = 1、地址标记唤 醒。应用软件置位 RWU,选定的硬件条件一般会自动将 RWU 清零。 0 1 0 SBK 接收器关闭。 接收器开启。 UART 接收器正常工作。 UART 接收器处于待机状态,等待唤醒条件。 发送断点 先将 1 写入 SBK 然后再将 0 写入,可让一个断点字符在发送数据流中排队。只要 SBK 置位,就可将其他断 点字符加入队列,比如逻辑 0 的 10、11、12 或 13、14、15(若 BRK13 = 1)位时间。根据 SBK 置位和清 零相对于当前发送信息的时序,可在软件将 SBK 清零前,将第二个断点字符加入队列。 0 1 发送器正常工作。 将断点字符加入发送队列。 33.3.5 UART 状态寄存器 1 (UARTx_S1) 该寄存器有 8 个只读状态标志。写操作无效。通过特殊软件序列(无需对该寄存器 进行写操作)来清除这些状态标志。 地址: 基址 基准 + 4h 偏移 位 7 6 5 4 3 2 1 0 读 TDRE TC RDRF IDLE OR NF FE PF 1 1 0 0 0 0 0 0 写 复位 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 613 寄存器定义 UARTx_S1 字段描述 字段 7 TDRE 描述 发送数据寄存器空标志 离开复位状态时,以及当发送数据值从发送数据缓冲区转移到发送移位器,使缓冲区有空间加载新字符时, TDRE 置位。要将 TDRE 清零,应在 TDRE 置位的情况下对 UART_S1 进行读操作,然后写入 UART 数据 寄存器(UART_D)。 0 1 6 TC 发送完成标志 离开复位状态时,以及当 TDRE 置位且无数据、前同步码或断点字符在发送时,TC 置位。 在 TC 置位的情况下对 UART_S1 进行读操作,然后执行以下操作之一,会自动将 TC 清零: • 写入 UART 数据寄存器(UART_D)以发送新数据 • 将一个前同步码加入队列,方法是使 TE 从 0 变为 1 • 将一个断点字符加入队列,方法是将 1 写入 UART_C2[SBK] 0 1 5 RDRF 发送器有效(发送数据、前同步码或断点)。 发送器空闲(发送活动完成)。 接收数据寄存器满标志 当一个字符从接收移位器转移到接收数据寄存器(UART_D)时,RDRF 置位。要将 RDRF 清零,应在 RDRF 置位的情况下对 UART_S1 进行读操作,然后对 UART 数据寄存器(UART_D)进行读操作。 0 1 4 IDLE 发送数据寄存器(缓冲区)满。 发送数据寄存器(缓冲区)空。 接收数据寄存器空。 接收数据寄存器满。 空闲线路标志 一段活动时间后,当 UART 接收线路变为空闲且持续整个字符时间时,IDLE 置位。当 C1[ILT]被清零时,接 收器在起始位之后开始计数空闲位时间。如果接收字符为全 1,那么这些位时间和停止位时间将计数到接收 器检测空闲线路所需的全字符逻辑高电平时间(10 或 11 位时间,具体取决于 M 控制位)。当 ILT 置位时, 接收器在停止位之后开始计数空闲位时间。前一字符结束时的停止位和任何逻辑高电平位时间不计数到接收 器检测空闲线路所需的全字符逻辑高电平时间。 要将 IDLE 清零,应在 IDLE 置位的情况下对 UART_S1 进行读操作,然后对 UART 数据寄存器(UART_D)进 行读操作。将 IDLE 清零后,要再次将其置位,必须等到接收到新字符且 RDRF 置位之后。即使接收线路长 时间空闲,IDLE 也只会置位一次。 0 1 3 OR 接收器溢出标志 如果已经准备好将一个新的串行字符转移到接收数据寄存器(缓冲区),但尚未从 UART_D 读取之前接收的 字符,则 OR 置位。这种情况下,新字符和所有相关的错误信息都会丢失,因为没有空间可将其转移到 UART_D。要将 OR 清零,应在 OR 置位的情况下对 UART_S1 进行读操作,然后对 UART 数据寄存器 (UART_D)进行读操作。 0 1 2 NF 未检测到空闲线路。 检测到空闲线路。 未溢出。 接收溢出(新 UART 数据丢失)。 噪声标志 接收器采用的先进采样技术会在起始位期间采集 7 个样本,在各数据位和停止位期间采集 3 个样本。在帧中 的任何位时间内,如果任一样本与其余样本不一致,则对于该字符,在 RDRF 置位的同时,标志 NF 也置 位。要将 NF 清零,应先对 UART_S1 进行读操作,再对 UART 数据寄存器(UART_D)进行读操作。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 614 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) UARTx_S1 字段描述 (继续) 字段 描述 0 1 未检测到噪声。 在 UART_D 的接收字符中检测到噪声。 帧传输错误标志 1 FE 当接收器在预期出现停止位的地方检测到逻辑 0 时,FE 与 RDRF 同时置位。这表示接收器与字符帧未正确 对齐。要将 FE 清零,应在 FE 置位的情况下对 UART_S1 进行读操作,然后对 UART 数据寄存器(UART_D) 进行读操作。 0 1 未检测到帧传输错误。这并不保证帧传输正确。 帧传输错误 奇偶校验错误标志 0 PF 当奇偶校验使能且接收字符中的奇偶位与预期奇偶值不一致时,PF 与 RDRF 同时置位。要将 PF 清零,应先 对 UART_S1 进行读操作,再对 UART 数据寄存器(UART_D)进行读操作。 0 1 无奇偶校验错误。 奇偶校验错误。 33.3.6 UART 状态寄存器 2 (UARTx_S2) 该寄存器包含一个只读状态标志。 当 LIN 系统使用内部振荡器时,需要将断点检测阈值提高一个位时间。在 LIN 允许 的最差时序情况下,如果从机的运行速度比主机快 14%,0x00 数据字符可能表现为 10.26 位时间长。这会触发设计用于检测 10 位断点符号的正常断点检测电路。当 LBKDE 位置位时,帧传输错误被抑制,断点检测阈值从 10 位变为 11 位,防止误 将 0x00 数据字符检测为 LIN 断点符号。 地址: 基址 基准 + 5h 偏移 位 读 写 复位 7 6 5 LBKDIF RXEDGIF 0 0 0 0 4 3 2 1 RXINV RWUID BRK13 LBKDE 0 0 0 0 0 RAF 0 UARTx_S2 字段描述 字段 7 LBKDIF 描述 LIN 断点检测中断标志 当 LIN 断点检测电路使能且检测到 LIN 断点字符时,LBKDIF 置位。将 LBKDIF 清零的方法是将 1 写入该位。 0 1 6 RXEDGIF 未检测到 LIN 断点字符。 已检测到 LIN 断点字符。 RxD 引脚有效边沿中断标志 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 615 寄存器定义 UARTx_S2 字段描述 (继续) 字段 描述 当 RxD 引脚上出现一个有效边沿(RXINV = 0 时为下降沿,RXINV = 1 时为上升沿)时,RXEDGIF 置位。 将 RXEDGIF 清零的方法是将 1 写入该位。 0 1 5 保留 4 RXINV 接收引脚上未出现有效边沿。 接收引脚上已出现有效边沿。 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 接收数据反转 置位该字段会反转接收数据输入的极性。 注: 置位 RXINV 会反转所有字符的 RxD 输入:数据位、起始和停止位、断点及空闲。 0 1 3 RWUID 接收唤醒空闲检测 RWUID 控制唤醒接收器的空闲字符是否置位 S1[IDLE]位。 0 1 2 BRK13 BRK13 选择较长的发送断点字符长度。帧传输错误检测不受该字段状态的影响。 1 断点字符以 10 位时间(M = 0、SBNS = 0)、11 位时间(M = 1、SBNS = 0 后 M = 0、SBNS = 1)或 12 位时间(M = 1、SBNS = 1)的长度发送。 断点字符以 13 位时间(M = 0、SBNS = 0)、14 位时间(M = 1、SBNS = 0 后 M = 0、SBNS = 1)或 15 位时间(M = 1、SBNS = 1)的长度发送。 LIN 断点检测使能 LBKDE 使能断点检测。LBKDE 置位时,禁止 S1[FE]和 S1[RDRF]标志置位。 0 1 0 RAF 在接收待机状态(RWU = 1)期间,检测到空闲字符时,S1[IDLE]不置位。 在接收待机状态(RWU = 1)期间,检测到空闲字符时,S1[IDLE]置位。 断点字符生成长度 0 1 LBKDE 接收数据不反转。 接收数据反转。 断点检测禁用。 断点检测使能,断点字符以 11 位时间(C1[M] = 0、BDH[SBNS] = 0)、12 位时间(C1[M] = 1、BDH[SBNS] = 0 或 C1[M] = 0、BDH[SBNS] = 1)或 13 位时间(C1[M] = 1、BDH[SBNS] = 1)长度进行检测。 接收器有效标志 当 UART 接收器检测到一个有效起始位的开始时,RAF 置位;当接收器检测到空闲线路时,RAF 被自动清 零。该状态标志在 MCU 受令进入 Stop 模式之前,可用于检查是否正在接收 UART 字符。 0 1 UART 接收器空闲,等待起始位。 UART 接收器有效(RxD 输入非空闲)。 KEA128 子系列参考手册, Rev. 2, July 2014 616 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.3.7 UART 控制寄存器 3 (UARTx_C3) 地址: 基址 基准 + 6h 偏移 位 7 读 R8 写 复位 0 6 5 4 3 2 1 0 T8 TXDIR TXINV ORIE NEIE FEIE PEIE 0 0 0 0 0 0 0 UARTx_C3 字段描述 字段 描述 7 R8 接收器的第 9 数据位 6 T8 发送器的第 9 数据位 5 TXDIR 当 UART 针对 9 位数据(C1[M] = 1)进行配置时,可将 R8 视作 UART_D 寄存器中缓存数据 MSB 左边的第 9 接收数据位。读取 9 位数据时,先对 R8 进行读操作,再对 UART_D 进行读操作,因为对 UART_D 进行读 操作会完成标志自动清除序列,R8 和 UART_D 因此可能会被新数据覆盖。 当 UART 针对 9 位数据(C1[M] = 1)进行配置时,可将 T8 视作 UART_D 寄存器中数据 MSB 左边的第 9 发送 数据位。写入 9 位数据时,在写入 UART_D 之后,9 位值整体转移到 UART 移位寄存器。因此,应先写入 T8(如果它与先前的值不同),再写入 UART_D。如果新值中的 T8 保持不变,例如用于传号或空号校验,则 无需在每次写入 UART_D 时写入 T8。 单线模式下的 TxD 引脚方向 当 UART 配置为单线半双工工作模式(LOOPS = RSRC = 1)时,该字段决定 TxD 引脚的数据方向。 0 1 4 TXINV TxD 引脚在单线模式下为输入。 TxD 引脚在单线模式下为输出。 发送数据反转 置位该字段会反转发送数据输出的极性。 注: 置位 TXINV 会反转所有字符的 TxD 输出:数据位、起始和停止位、断点及空闲。 0 1 3 ORIE 溢出中断使能 使能溢出标志(OR)以生成硬件中断请求。 0 1 2 NEIE OR 中断禁用;使用轮询。 OR 置位时,请求硬件中断。 噪声错误中断使能 使能噪声标志(NF)以生成硬件中断请求。 0 1 1 FEIE 发送数据不反转。 发送数据反转。 NF 中断禁用;使用轮询。 NF 置位时,请求硬件中断。 帧传输错误中断使能 使能帧传输错误标志(FE)以生成硬件中断请求。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 617 寄存器定义 UARTx_C3 字段描述 (继续) 字段 描述 0 1 0 PEIE FE 中断禁用;使用轮询。 FE 置位时,请求硬件中断。 奇偶校验错误中断使能 使能奇偶校验错误标志(PF)以生成硬件中断请求。 0 1 PF 中断禁用;使用轮询。 PF 置位时,请求硬件中断。 33.3.8 UART 数据寄存器 (UARTx_D) 此寄存器实际上是两个独立的寄存器。读操作返回只读接收数据缓冲区的内容,写 操作将内容写入只写发送数据缓冲区。UART 状态标志的标志自动清除机制还涉及 到对该寄存器的读写操作。 地址: 基址 基准 + 7h 偏移 位 读 写 复位 7 6 5 4 3 2 1 0 R7T7 R6T6 R5T5 R4T4 R3T3 R2T2 R1T1 R0T0 0 0 0 0 0 0 0 0 UARTx_D 字段描述 字段 描述 7 R7T7 读取接收数据缓冲区 7 或写入发送数据缓冲区 7。 6 R6T6 读取接收数据缓冲区 6 或写入发送数据缓冲区 6。 5 R5T5 读取接收数据缓冲区 5 或写入发送数据缓冲区 5。 4 R4T4 读取接收数据缓冲区 4 或写入发送数据缓冲区 4。 3 R3T3 读取接收数据缓冲区 3 或写入发送数据缓冲区 3。 2 R2T2 读取接收数据缓冲区 2 或写入发送数据缓冲区 2。 1 R1T1 读取接收数据缓冲区 1 或写入发送数据缓冲区 1。 0 R0T0 读取接收数据缓冲区 0 或写入发送数据缓冲区 0。 KEA128 子系列参考手册, Rev. 2, July 2014 618 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.4 功能说明 UART 允许在 MCU 和远程设备(包括其他 MCU)之间进行全双工、异步、NRZ串 行通信。 UART 包含波特率发生器、发送器和接收器模块。尽管发送器和接收器使用相同的 波特率发生器,但它们是独立运行的。在正常操作中,MCU 监控 UART 的状态, 写入要发送的数据,并处理接收到的数据。以下介绍 UART 的各个模块。 33.4.1 波特率生成 如下图所示,UART 波特率发生器的时钟源是总线速率时钟。 模数分频系数 (1至8191) UART模块时钟 16 分频 16 SBR[12:0] Tx波特率 Rx采样时钟 (16 × 波特率) 波特率发生器 关闭(如果[SBR12:SBR0] =0) 波特率 = UART模块时钟 SBR[12:0] × 16 图 33-3. UART 波特率生成 UART 通信通常要求发送器和接收器从独立的时钟源获得相同的波特率。此波特频 率上允许的公差取决于接收器与起始位的前沿的同步方式以及执行位采样的方式。 MCU 在每次高电平跃迁到低电平时与位边界重新同步。在最糟糕的情况下,完整 的 10、11 或 12 位时间字符帧中没有此类传输,因此整个字符时间内将累积起任何 波特率的不匹配情况。对于总线频率由晶振驱动的 FreescaleUART 系统,允许的波 特率不匹配在 8 位数据格式中约为±4.5%,9 位数据格式中约为±4%。尽管波特率模 数分频器设置并不始终产生与标准波特率完全匹配的波特率,但通常可以将误差限 制在几个百分点内,可视为可靠的通信。 33.4.2 发送器功能说明 本节说明 UART 发送器的总体结构框图,以及发送断点和空闲字符的特殊功能。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 619 功能说明 发送器输出(TxD)空闲状态默认处于逻辑高电平,UART_C3[TXINV]在复位后被清 零。发送器输出通过 UART_C3[TXINV]置位反相。发送器通过 UART_C2 中的 TE 位置位使能。这将把作为闲置状态的一个全角字符帧的报头字符排入队列。然后, 发送器继续空闲,直到发送数据缓冲区中有数据可用。程序通过对 UART 数据寄存 器(UART_D)进行写操作而将数据存储到发送数据缓冲区。 UART 发送器的核心部分是发送移位寄存器,它有 10、11 或 12 位,具体取决于 UART_C1[M]控制位和 UART_BDH[SBNS]位的设置。本节其余部分假设 UART_C1[M]清零,UART_BDH[SBNS]也清零,选择常规 8 位数据模式。在 8 位数 据模式下,移位寄存器占用一个起始位、八个数据位和一个停止位。当发送移位寄 存器可载入新 UART 字符时,在发送数据寄存器中等待的值会被传输到移位寄存 器,与波特率时钟同步,并且发送数据寄存器空(UART_S1[TDRE])状态标志置位, 指示可将另一个字符写入 UART_D 处的发送数据缓冲区。 注 务必先对 UART_S1 进行读操作,再对 UART_D 进行写操 作,以便能够发送数据。 TxD 引脚传出一个停止位后,如果发送数据缓冲区中没有新字符在等待,那么发送 器会置位发送完成标志并进入空闲模式,且 TxD 为高电平,等待发送更多字符。 向 UART_C2[TE]写入 0 不会立即将此引脚释放为通用 I/O 引脚。必须首先完成所 有正在进行的发送任务。这包括正在发送的数据字符、排队的空闲字符和断点字符。 33.4.2.1 发送分隔和已排队的闲置 UART_C2[SBK]发送断点字符,其原始用途是引起旧式电传打字接收机的注意。分 隔字符是逻辑 0 的全角字符时间,包括起始位和停止位在内共 10 位时间。可通过设 置 UART_S2[BRK13]启用更长的 13 位时间的分隔字符。通常情况下,程序会等待 UART_S1[TDRE]置位以指示报文的最后一个字符已被移入发送移位器,然后向 UART_C2[SBK]写入 1,再写入 0。一旦移位器可用,此操作就将要发送的分隔字符 排入队列。当排入队列的分隔字符移入移位器,与波特率时钟进行同步时,如果 UART_C2[SBK]保持为 1,则将把另一个分割字符排入队列。如果接收设备是另一 个 Freescale SemiconductorUART,在所有 8 数据位中分隔字符都将作为 0 被接受, 并且发生成帧错误(UART_S1[FE] = 1)。 使用空闲线路唤醒时,报文之间需要具有完整字符时间的空闲(逻辑 1)以唤醒任 何处于睡眠状态的接收器。通常,程序将等待 UART_S1[TDRE]变为设置状态,以 指示报文的最后一个字符已移至发送移位器,向 UART_C2[TE]位写入 0,然后写入 1。一旦移位器可用,此操作就将要发送的闲置字符排入队列。清除 UART_C2[TE] 时,只要移位器中的字符还未完成, 发送器绝不会真正释放对 UART 引脚的控制。 如果存在这样一种可能性:清除 UART_C2[TE]的同时移位器正在完成发送,那么 KEA128 子系列参考手册, Rev. 2, July 2014 620 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 设置通用 I/O 控制,这样与 TxD 共用的引脚就是一个驱动逻辑 1 的输出。如此一 来,即使在向 UART_C2[TE]先写入 0 再写入 1 期间 UART 失去对端口引脚的控制, TxD 线路看起来也是正常的空闲线路。 断点字符的长度受 UART_S2[BRK13]和 UART_C1[M]影响,如下表所示。 表 33-3. 分隔字符长度 BRK13 M SBNS 断点字符长度 0 0 0 10 位时间 0 0 1 11 位时间 0 1 0 11 位时间 0 1 1 12 位时间 1 0 0 13 位时间 1 0 1 14 位时间 1 1 0 14 位时间 1 1 1 15 位时间 33.4.3 接收器功能说明 在本节中,以接收器功能框图为指南来说明接收器的整体功能。 然后将更详细地说明用来重新构建接收器数据的数据采样技术。最后将介绍接收器 唤醒功能的两种方式。 可通过置位 UART_S2[RXINV]反转接收器输入。可通过置位 UART_C2[RE]位启用 接收器。字符帧由一个逻辑 0 起始位、八个(或九个)数据位(LSB 优先)以及一 个(或二个)逻辑 1 停止位组成。有关 9 位数据模式的信息,请参见 8 位和 9 位数 据模式 。有关此讨论的剩余部分,假设为正常的 8 位数据模式配置了 UART。 将停止位接收到接收移位器中后,如果接收数据寄存器未满,数据字符将传输到此 接收数据寄存器,并设置接收数据寄存器已满 (UART_S1[RDRF]) 状态标志。如果 UART_S1[RDRF]置位,说明此接收数据寄存器(缓冲器)已满,溢出(OR)状态标 志会置位且新数据丢失。由于 UART 接收器采用双缓冲区,因此程序在 UART_S1[RDRF]置位后,以及在读取接收数据缓冲区中的数据之前,有一个完整 字符的时间,以免接收器溢出。 当某个程序检测到接收数据寄存器已满 (UART_S1[RDRF] = 1) 时,它通过读取 UART_D 以从此接收数据寄存器中获取数据。通过管理接收数据的用户程序的流 程中通常满足的两步序列自动清除 UART_S1[RDRF]标志。有关标志清除的更多详 情,请参见 中断和状态标志 。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 621 功能说明 33.4.3.1 数据采样技术 UART 接收器使用 16 倍波特率时钟进行采样。过采样比是固定值 16。接收器启动 后,以 16 倍的波特率采集逻辑电平样本,寻找 RxD 串行数据输入引脚上的下降沿。 下降沿被定义为三个连续的逻辑 1 样本后的逻辑 0 样本。16 倍波特率时钟将位时 间分割为 16 段,标记为 UART_D[RT1]至 UART_D[RT16]。定位到一个下降沿后, 将在 UART_D[RT3]、UART_D[RT5]和 UART_D[RT7]上再采三个样本,以确保这 是真实的起始位,而非仅仅是噪声。如果这三个样本至少有两个为 0,接收器将视 为已经与接收字符同步。 然后此接收器将在 UART_D[RT8]、UART_D[RT9]和 UART_D[RT10]对各个位时间 (包括起始位和停止位)进行采样,以确定该位的逻辑电平。此逻辑电平被认为是相 关的位时间内所采的大部分样本的逻辑电平。如果是开始位,如果 UART_D[RT3]、 UART_D[RT5]和 UART_D[RT7]中至少两个样本为 0,则此位将被假定为 0,即便 UART_D[RT8]、UART_D[RT9]和 UART_D[RT10]中的一个或所有样本为 1。如果 在某个字符帧中,任何位时间(包括起始位和停止位)中的任何样本未与此位的逻 辑电平保持一致,则当接收的字符传输到接收数据缓冲区时,噪声标志 (UART_S1[NF])置位。 下降沿检测逻辑继续寻找下降沿。检测到一个下降沿时,采样时钟便与位时间重新 同步。在有噪声或波特率不匹配的情况下,这可以提高接收器的可靠性。它不能改 善最差情况分析,因为某些字符在字符帧中的任何地方都没有多余的下降沿。 发生帧传输错误时,如果已接收到的字符不是断点字符,那么寻找下降沿的采样逻 辑将用三个逻辑 1 样本填充,这样就几乎能立即检测到新起始位。 发生成帧错误时,将禁止接收器接收任何新字符,直至清除成帧错误标志。接收移 位寄存器继续正常工作,但如果 UART_S1[FE]仍保持置位状态,则完整的字符无法 传输到接收数据缓冲区。 33.4.3.2 接收器唤醒操作 接收器唤醒是一种硬件机制,使 UART 接收器能忽略用于其他 UART 接收器的报文 中的字符。在此类系统中,各接收器都会评估每条报文的首字符,一旦确定其用于 其他接收器,就会将逻辑 1 写入接收器唤醒控制字段(UART_C2[RWU])。当 UART_C2[RWU]置位时,禁止与接收器相关的状态标志(UART_S2[RWUID]置位 时空闲位 IDLE 除外)置位,从而消除软件处理不重要报文字符的开销。报文结束 时,或下一报文开始时,所有接收器都自动将 UART_C2[RWU]强制为 0,因此所有 接收器都会及时醒来,以便检查下一报文的首字符。 KEA128 子系列参考手册, Rev. 2, July 2014 622 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.4.3.2.1 空闲线路唤醒 清除唤醒后,将为接收器配置闲置线路唤醒。在此模式中,当接收器检测到闲置线 路级别的全角字符时间时,将自动清除 UART_C2[RWU]。UART_C1[M]控制字段 选择 8 位或 9 位数据模式,UART_BDH[SBNS]选择 1 个或 2 个停止位,从而确定需 要多少位时间的空闲才能构成完整字符时间:10 位、11 位或 12 位时间(包括起始 位和停止位)。 当 UARTI_C2[RWU]为 1 且 UART_S2[RWUID]为 0 时,唤醒接收器的空闲条件不 会置位 UART_S1[IDLE]。接收器唤醒后,等待下一报文的第一个数据字符,由后者 置位 UART_S1[RDRF]并成生中断(若使能)。当 UART_S2[RWUID]为 1 时,任何 空闲条件都会置位 UART_S1[IDLE]标志并生成中断(若使能),无论 UART_C2[RWU]是 0 还是 1。 闲置线路类型(UART_C1[ILT])控制位可选择两种方式检测闲置线路。 UART_C1[ILT]清零后,闲置位计数器从起始位之后开始计数,以便字符末尾的的 停止位和任何逻辑 1 都计入闲置的全角字符时间。UART_C1[ILT]置位后,闲置位 计数器在停止位时间之后才开始计数,因此闲置检测不受上一条报文的最后一个字 符中的数据影响。 33.4.3.2.2 地址标记唤醒 设置唤醒后,会针对地址标记唤醒配置接收器。在该模式中,如果 UART_BDH[SBNS] = 1,则当接收器检测到已接收字符的最高有效位 (UART_C1[M]清零时为第八位, UART 置位时为第九位)中有一到两个逻辑 1 时, 将自动清除 UART_C2[RWU]。 地址标记唤醒允许报文包含闲置字符,但需要保留 MSB 以用于地址帧中。如果 UART_BDH[SBNS] = 1,则地址帧 MSB 中的这一到两个逻辑 1 会在接收到停止位 之前清除 UART_C2[RWU]位并使 UART_S1[RDRF]标志置位。在这种情况下,即使 在大部分字符时间里接收器都处于休眠状态,MSB 置位的字符被接收。 33.4.4 中断和状态标志 UART 系统具有一个中断向量,它有三种不同的中断类型。一个中断向量类型在 UART_S1[TDRE]和 UART_S1[TC]事件上与发送器相关联。另一个中断类型与接 收器相关,用于 RDRF、IDLE、RXEDGIF 和 LBKDIF 事件。第三个类型用于 OR、 NF、FE 和 PF 错误条件。这十个中断源各自都可以通过本地中断使能掩码加以屏 蔽。当清除本地掩码以禁用硬件中断请求的生成时,可由软件轮询标志。 UART 发送器有两个状态标志,可选择性地生成硬件中断请求。发送数据寄存器空 (UART_S1[TDRE]) 说明发送数据缓冲区中有空间将另一个发送字符写入 UART_D。如果发送中断启用(UART_C2[TIE])位置位,则 UART_S1[TDRE]置位时 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 623 功能说明 请求硬件中断。发送完成(UART_S1[TC])说明发送器已完成所有数据、前同步码和 断点字符的发送,现处于空闲状态,且 TxD 处于无效电平。此标志通常用于带调制 解调器的系统,用于确定安全关闭此调制解调器的时间。如果发送完成中断启用 (UART_C2[TCIE])位置位,则 UART_S1[TC]置位时请求硬件中断。如果相应的 UART_C2[TIE]或 UART_C2[TCIE]本地中断掩码清零,则可使用软件轮询而非硬件 中断以监控 UART_S1[TDRE]和 UART_S1[TC]状态标志。 当某个程序检测到接收数据寄存器已满 (UART_S1[RDRF] = 1) 时,它通过读取 UART_D 以从此接收数据寄存器中获取数据。当 UART 置位时,可以通过读取 UART_S1 然后读取 UART_D 来清除 UART_S1[RDRF]标志。 使用轮询时,用户程序的正常过程使用的就是此序列。如果使用硬件中断,则必须 在中断服务程序(ISR)中读取 UART_S1。通常都是在 ISR 中完成此步骤,以检查接 收错误,因此可自动满足此序列。 IDLE 状态标志包括一种逻辑,可避免在 RxD 线路保持闲置状态更长的时间时重复 设置此标志。当 UART_S1[IDLE]置位时,可以通过读取 UART_S1 然后读取 UART_D 来清除 IDLE。UART_S1[IDLE]清零后,在接收器接收到至少一个新字符 并已使 UART_S1[RDRF]置位前,都不可重新置位。 如果接收到的字符中检测到导致 UART_S1[RDRF]置位的相关错误,则在 UART_S1[RDRF]置位的同时使错误标志(即噪声标志(UART_S1[NF])、成帧错误 (UART_S1[FE])和奇偶错误标志(UART_S1[PF]))置位。溢出情况下这些标志不置 位。 当准备将新字符从接收移位器传输到接收数据缓冲区时,如果 UART_S1[RDRF]置 位,则溢出的(UART_S1[OR])标志置位而非数据,同时丢失任何相关 NF、FE 或 PF 情况。 RxD 串行数据输入引脚上的活动边沿随时都可导致 UART_S2[RXEDGIF]标志置 位。可通过向其中写入 1 清除 UART_S2[RXEDGIF]标志。此功能需要启用接收器 (UART_C2[RE] = 1)。 33.4.5 波特率公差 发送器件工作时的波特率可能低于或高于接收器工作时的波特率。 累积的位时间偏差可导致三个停止位数据样本(RT8、RT9 和 RT10)之一超出实际 停止位之外。如果 RT8、RT9 和 RT10 样本的逻辑值不全相同,就会产生噪声误差。 如果接收器时钟发生偏差,即大部分 RT8、RT9 和 RT10 停止位样本值为逻辑零, 则将产生成帧错误。 当接收器对传入的帧进行采样时,它在此帧的任何有效上升沿上重新与 RT 时钟进 行同步。在帧中进行重新同步将纠正发送位时间与接收位时间之间的偏差。 KEA128 子系列参考手册, Rev. 2, July 2014 624 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.4.5.1 慢速数据公差 图 33-4 显示了慢速接收帧最多可以有多大的对齐误差而不引起噪声错误或帧传输 错误。慢速停止位开始于 RT8,而非 RT1,但会及时到达,以便在 RT8、RT9 和 RT10 进行停止位数据采样。 RT16 RT15 RT14 RT13 RT11 数据 样本 RT10 RT9 RT8 RT7 RT6 RT5 RT4 RT3 RT2 RT1 接收器 RT时钟 RT12 停止 MSB 图 33-4. 慢速数据 对于 8 位数据和 1 停止位的字符,停止位的数据采样需要接收器 9 位时间 x 16 RT 周期 + 10 RT 周期 = 154 RT 周期。 对于图 33-4 所示的未对齐字符,当发送器计数到 9 位时间 x 16 RT 周期 + 3 RT 周期 = 147 RT 周期时,接收器计数到 154 RT 周期。 在无误差的情况下,慢速 8 位数据和 1 停止位的字符的接收器计数与发送器计数之 间的最大百分比差异为: ((154 - 147) / 154) x 100 = 4.54% 对于 9 位数据或 2 停止位的字符,停止位的数据采样需要接收器 10 位时间 x 16 RT 周期 + 10 RT 周期 = 170 RT 周期。 对于图 33-4 所示的未对齐字符,当发送器计数到 10 位时间 x 16 RT 周期 + 3 RT 周 期 = 163 RT 周期时,接收器计数到 170 RT 周期。 在无误差的情况下,慢速 9 位或 2 停止位的字符的接收器计数与发送器计数之间的 最大百分比差异为: ((170 - 163) / 170) X 100 = 4.12% 对于 9 位数据和 2 停止位的字符,停止位的数据采样需要接收器 11 位时间 x 16 RT 周期 + 10 RT 周期 = 186 RT 周期。 对于图 33-4 所示的未对齐字符,当发送器计数到 11 位时间 x 16 RT 周期 + 3 RT 周 期 = 179 RT 周期时,接收器计数到 186 RT 周期。 在无误差的情况下,慢速 9 位和 2 停止位的字符的接收器计数与发送器计数之间的 最大百分比差异为:((186 - 179) / 186) X 100 = 3.76% KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 625 功能说明 33.4.5.2 快速数据公差 图 33-5 显示了快速接收帧允许的最大对齐误差。快速停止位结束于 RT10,而非 RT16,不过仍然在 RT8、RT9 和 RT10 进行采样。 RT16 RT15 RT14 RT13 RT12 RT11 数据 样本 RT10 RT9 RT8 RT7 RT6 空闲或下一帧 RT5 RT4 RT3 RT2 接收器 RT时钟 RT1 停止 图 33-5. 快速数据 对于 8 位数据和 1 停止位的字符,停止位的数据采样需要接收器 9 位时间 x 16 RT 周期 + 10 RT 周期 = 154 RT 周期。 对于图 33-5 所示的未对齐字符,当发送器件计数到 10 位时间 x 16 RT 周期 = 160 RT 周期时,接收器计数到 154 RT 周期。 一个快速 8 位和 1 停止位的无错误字符的接收器计数与发送器计数之间的最大百分 比差异为: ((154 - 160) / 154) x 100 = 3.90% 对于 9 位数据或 2 停止位的字符,停止位的数据采样需要接收器 10 位时间 x 16 RT 周期 + 10 RT 周期 = 170 RT 周期。 对于所示的未对齐字符,当发送器件计数到 11 位时间 x 16 RT 周期 = 176 RT 周期 时,接收器计数到 170 RT 周期。 一个快速 9 位或 2 停止位的无错误字符的接收器计数与发送器计数之间的最大百分 比差异为: ((170 - 176) / 170) x 100 = 3.53% 对于 9 位数据和 2 停止位的字符,停止位的数据采样需要接收器 11 位时间 x 16 RT 周期 + 10 RT 周期 = 186 RT 周期。 对于所示的未对齐字符,当发送器件计数到 12 位时间 x 16 RT 周期 = 193 RT 周期 时,接收器计数到 186 RT 周期。 一个快速 9 位和 2 停止位的无错误字符的接收器计数与发送器计数之间的最大百分 比差异为: ((186 - 192) / 186) x 100 = 3.23% KEA128 子系列参考手册, Rev. 2, July 2014 626 Freescale Semiconductor, Inc. 第 33 章 通用异步收发器(UART) 33.4.6 其他 UART 功能 以下各节介绍其他 UART 功能。 33.4.6.1 8 位和 9 位数据模式 通过使 UART_C1[M]置位,可将 UART 系统、发送器和接收器配置为以 9 位数据模 式工作。在 9 位模式下,UART 数据寄存器的最高有效位左边有一个第九数据位。 对于发送数据缓冲区,此位存储在 UART_C3 中的 T8 中对于接收器,此第九位保留 在 UART_C3[R8]中。 为了一致地写入发送数据缓冲区,应先写入 UART_C3[T8],再写入UART_D。 如果要作为新字符的第九位传输的位值与上一个字符相同,则无需再次写入 UART_C3[T8]。当数据从发送数据缓冲区传输到发送移位器时,将在数据从 UART_D 传输到移位器的同时复制 UART_C3[T8]中的值。 9 位数据模式通常配合奇偶校验使用,以支持 8 位数据并将第九位用于奇偶校验, 或者配合地址标记唤醒使用,第九数据位用作唤醒位。在自定义协议中,第九位也 可用作软件控制标记。 33.4.6.2 Stop 模式操作 在所有 Stop 模式中,UART 模块的时钟都会暂停。 在 Stop 模式下, UART 模块寄存器不受影响。 接收输入活动边沿检测电路在 Stop 模式中保持活动状态,但在 模式下不保持活动 状态。如果中断未屏蔽(UART_BDH[RXEDGIE] = 1),接收输入上的活动边沿将使 CPU 退出 Stop 模式。 由于时钟已停止,UART 模块在退出 Stop 模式(仅在 Stop模式中)时恢复操作。当 UART 模块正在发送或接收字符(包括前同步码、断点和普通数据)时,软件必须 确保它不进入 Stop 模式,也就是说,要进入 Stop 模式,必须满足以下全部条件: UART_S1[TC] =1、UART_S1[TDRE] = 1 和 UART_S2[RAF]。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 627 功能说明 33.4.6.3 循环模式 UART_C1[LOOPS]置位后,相同寄存器中的 UART_C1[RSRC]位将在循环模式 (UART_C1[RSRC] = 0)或单线模式(UART_C1[RSRC] = 1)中进行选择。循环模式有 时用于检查软件(与外部系统中的连接无关)以帮助隔离系统问题。在此模式下, 从发送器到接收器的内部回环连接会导致接收器接收由发送器发出的字符。 33.4.6.4 单线操作 UART_C1[LOOPS]置位后,UART_C1[RSRC]将在循环模式(UART_C1[RSRC] = 0) 或单线模式(UART_C1[RSRC] = 1)中进行选择。单线模式实施半双工串行连接。接 收器内部连接到发送器输出和 TxD 引脚。RxD 引脚不使用,并恢复成通用端口 I/O 引脚。 在单线模式中,UART_C3[TXDIR]位控制 TxD 引脚上串行数据的方向。 UART_C3[TXDIR]清零后,TxD 引脚成为 UART 接收器的输入,且发送器暂时与 TxD 引脚断开,使外部设备可向此接收器发送串行数据。UART_C3[TXDIR]置位 后,TxD 引脚是由此发送器驱动的输出。在单线模式中,发送器输出从内部连接到 接收器输入,且 RxD 未由 UART 使用,因此它恢复为通用端口 I/O 引脚。 KEA128 子系列参考手册, Rev. 2, July 2014 628 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) 34.1 简介 注 关于与具体芯片相关的本模块详细操作示例,请参见芯片配 置信息。 通用输入和输出(GPIO)模块可通过外设总线访问,还能通过零等待状态接口 (IOPORT)与处理器内核通信,实现最高的引脚性能。 GPIO 寄存器支持 8 位、16 位 或 32 位访问。 当引脚配置为用于 GPIO 功能时,GPIO 数据方向和输出数据寄存器控制每个引脚的 方向和输出数据。假设引脚相应的端口控制和中断模块已使能,则当引脚配置为任 意数字功能时,GPIO 输入数据寄存器显示每个引脚上的逻辑值。 通过为每个端口输出数据寄存器增加针对只写寄存器的置位、清零和跳变操作,使 通用输出模块支持高效的位操作。 34.1.1 特性 • GPIO 模块的特性包括: • 端口数据输入寄存器适用于所有数字引脚多路复用模式 • 端口数据输出寄存器带对应的置位/清零/跳变寄存器 • 端口数据方向寄存器 • 通过 IOPORT 实现对 GPIO 寄存器的零等待状态访问 注 GPIO 模块的时钟源为系统时钟。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 629 简介 34.1.2 工作模式 下表介绍了 GPIO 模块的不同工作模式及其在这些模式下的行为。 表 34-1. 工作模式 工作模式 说明 运行 GPIO 模块正常运行。 等待 GPIO 模块正常运行。 停止 GPIO 模块被禁用。 调试 GPIO 模块正常运行。 34.1.3 GPIO 信号说明 表 34-2. GPIO 信号说明 GPIO 信号说明 说明 I/O PTA7–PTA0 通用输入/输出 I/O PTB7–PTB0 通用输入/输出 I/O PTC7–PTC0 通用输入/输出 I/O PTD7–PTD0 通用输入/输出 I/O PTE7–PTE0 通用输入/输出 I/O PTF7–PTF0 通用输入/输出 I/O PTG7–PTG0 通用输入/输出 I/O PTH7–PTH0 通用输入/输出 I/O PTI7–PTI01 通用输入/输出 I/O 1. 该器件仅提供 PTI6–PTI0。 注 并非所有端口的所有引脚都绑定到所有封装上。有关设备 上的可用 GPIO 端口数量信息,请参见信号多路复用一章。 34.1.3.1 详细信号说明 表 34-3. GPIO 接口详细信号说明 信号 I/O 说明 PTA7–PTA0 I/O 通用输入/输出 状态含义 PTB7–PTB0 电平有效:该引脚为逻辑 1。 电平无效:该引脚为逻辑 0。 PTC7–PTC0 PTD7–PTD0 PTE7–PTE0 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 630 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) 表 34-3. GPIO 接口详细信号说明 (继续) I/O 信号 说明 PTF7–PTF0 时序 有效电平:输出时,该信号发生 在系统时钟的上升沿。就输入 而言,它可能在任何时刻发生, 且输入信号可能和系统时钟不 同步。 PTG7–PTG0 PTH7–PTH0 PTI7–PTI01 无效电平:输出时,该信号发生 在系统时钟的上升沿。就输入 而言,可能在任何时刻发生,且 输入信号可能和系统时钟不同 步。 1. 该器件仅提供 PTI6–PTI0。 注 并非每个端口内的所有引脚都会在设备上实施。有关器件 的可用 GPIO 端口数量,请参见信号多路复用的相关章节。 34.2 存储器映像和寄存器定义 GPIO 模块在 AIPS-Lite 外设联接器上有两个地址插槽,能够保持 Freescale 产品之间 的软件兼容性。所有 GPIO 寄存器均可通过基地址 0x400F_F000 或 0x4000_F000 进行访问。建议将 0x400F_F000 用作 GPIO 模块的基地址,本章所述的寄存器存储 器映像同样基于基地址0x400F_F000。 在有效存储器映像外对 GPIO 存储器空间进行任何读写访问都将导致总线错误。 34.2.1 GPIO/FGPIO 寄存器位分配 在该器件中,所有 8 位端口引脚都映射到 32 位 GPIO/FGPIO 寄存器,如表中所示。 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 PTA7 PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 0 PTA0 1 5 PTB0 PTC7 1 6 PTB1 PTD0 1 7 PTB2 PTD1 1 8 PTB3 PTD2 1 9 PTB4 PTD3 2 0 PTB5 PTD4 2 1 PTB6 PTD5 2 2 PTB7 2 3 PTC0 2 4 PTC1 2 5 PTC2 2 6 PTC3 2 7 PTC4 2 8 PTC5 2 9 PTC6 3 0 PTD6 寄存器位 端口引脚 3 1 PTD7 表 34-4. GPIOA/FGPIOA 寄存器位分配 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 631 存储器映像和寄存器定义 PTE1 PTE0 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0 PTI1 PTI0 PTF1 PTE2 PTF2 2 7 PTI2 PTF3 PTE3 PTF4 2 8 PTI3 PTF5 PTE4 PTF6 PTE5 PTF7 2 9 PTI4 PTG0 3 0 PTI5 PTG1 PTE6 PTG2 3 1 PTI6 0 PTE7 1 保留位 2 PTF0 3 保留位 4 保留位 5 保留位 6 保留位 7 保留位 8 保留位 9 保留位 1 0 保留位 1 1 保留位 1 2 保留位 1 3 保留位 1 4 PTG3 PTG7 1 5 保留位 PTH0 1 6 PTG4 PTH1 1 7 PTG5 PTH2 1 8 保留位 PTH3 1 9 保留位 PTH4 2 0 PTG6 PTH5 2 1 保留位 PTH6 2 2 保留位 2 3 保留位 2 4 保留位 2 5 保留位 2 6 保留位 2 7 保留位 2 8 保留位 2 9 保留位 寄存器位 端口引脚 3 0 保留位 3 1 PTH7 表 34-5. GPIOB/FGPIOB 寄存器位分配 端口引脚 寄存器位 表 34-6. GPIOC/FGPIOC 寄存器位分配 GPIO 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 R/W 0000_0000h 34.2.2/633 400F_F000 端口数据输出寄存器 (GPIOA_PDOR) 32 400F_F004 端口置位输出寄存器 (GPIOA_PSOR) 32 W(始终 0000_0000h 读 0) 34.2.3/633 400F_F008 端口清零输出寄存器 (GPIOA_PCOR) 32 W(始终 0000_0000h 读 0) 34.2.4/634 400F_F00C 端口跳变输出寄存器 (GPIOA_PTOR) 32 W(始终 0000_0000h 读 0) 34.2.5/634 400F_F010 端口数据输入寄存器 (GPIOA_PDIR) 32 R 0000_0000h 34.2.6/635 400F_F014 端口数据方向寄存器 (GPIOA_PDDR) 32 R/W 0000_0000h 34.2.7/635 400F_F018 端口输入禁用寄存器 (GPIOA_PIDR) 32 R/W FFFF_FFFFh 34.2.8/636 400F_F040 端口数据输出寄存器 (GPIOB_PDOR) 32 R/W 0000_0000h 34.2.2/633 400F_F044 端口置位输出寄存器 (GPIOB_PSOR) 32 W(始终 0000_0000h 读 0) 34.2.3/633 400F_F048 端口清零输出寄存器 (GPIOB_PCOR) 32 W(始终 0000_0000h 读 0) 34.2.4/634 400F_F04C 端口跳变输出寄存器 (GPIOB_PTOR) 32 W(始终 0000_0000h 读 0) 34.2.5/634 400F_F050 端口数据输入寄存器 (GPIOB_PDIR) 32 R 0000_0000h 34.2.6/635 400F_F054 端口数据方向寄存器 (GPIOB_PDDR) 32 R/W 0000_0000h 34.2.7/635 400F_F058 端口输入禁用寄存器 (GPIOB_PIDR) 32 R/W FFFF_FFFFh 34.2.8/636 400F_F080 端口数据输出寄存器 (GPIOC_PDOR) 32 R/W 0000_0000h 34.2.2/633 400F_F084 端口置位输出寄存器 (GPIOC_PSOR) 32 W(始终 0000_0000h 读 0) 34.2.3/633 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 632 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) GPIO 存储器映射 (继续) 绝对地址(十 六进制) 宽度(单 位:位) 寄存器名称 访问 复位值 小节/页 端口清零输出寄存器 (GPIOC_PCOR) 32 W(始终 0000_0000h 读 0) 34.2.4/634 400F_F08C 端口跳变输出寄存器 (GPIOC_PTOR) 32 W(始终 0000_0000h 读 0) 34.2.5/634 400F_F088 400F_F090 端口数据输入寄存器 (GPIOC_PDIR) 32 R 0000_0000h 34.2.6/635 400F_F094 端口数据方向寄存器 (GPIOC_PDDR) 32 R/W 0000_0000h 34.2.7/635 400F_F098 端口输入禁用寄存器 (GPIOC_PIDR) 32 R/W FFFF_FFFFh 34.2.8/636 34.2.2 端口数据输出寄存器 (GPIOx_PDOR) 该寄存器配置在各通用输出引脚上驱动的逻辑电平。 注 请勿修改选定封装中未绑定引脚的配置寄存器。封装中未 绑定的引脚将默认处于禁用状态,以实现最低功耗。 地址: 基址 基准 + 0h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GPIOx_PDOR 字段描述 字段 描述 端口数据输出 PDO 读取未绑定引脚的寄存器位将返回无效值。 0 1 假设引脚配置为通用输出,则在引脚上驱动逻辑电平 0。 假设引脚配置为通用输出,则在引脚上驱动逻辑电平 1。 34.2.3 端口置位输出寄存器 (GPIOx_PSOR) 该寄存器可以将 PDOR 字段置位。 地址: 基址 基准 + 4h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTSO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 633 存储器映像和寄存器定义 GPIOx_PSOR 字段描述 字段 描述 端口置位输出 PTSO 如下所示对该寄存器进行写操作将更新 PDOR 中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为逻辑 1。 34.2.4 端口清零输出寄存器 (GPIOx_PCOR) 该寄存器可以将 PDOR 字段清零。 地址: 基址 基准 + 8h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTCO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GPIOx_PCOR 字段描述 字段 描述 端口清零输出 PTCO 如下所示对该寄存器进行写操作将更新端口数据输出寄存器(PDOR)中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为逻辑 0。 34.2.5 端口跳变输出寄存器 (GPIOx_PTOR) 地址: 基址 基准 + Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTTO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GPIOx_PTOR 字段描述 字段 PTTO 描述 端口跳变输出 如下所示对该寄存器进行写操作将更新 PDOR 中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为当前逻辑状态的反相电平。 KEA128 子系列参考手册, Rev. 2, July 2014 634 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) 34.2.6 端口数据输入寄存器 (GPIOx_PDIR) 注 请勿修改选定封装中未绑定引脚的配置寄存器。封装中未 绑定的引脚将默认处于禁用状态,以实现最低功耗。 地址: 基址 基准 + 10h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDI R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GPIOx_PDIR 字段描述 字段 描述 端口数据输入 PDI 读取器件的未绑定引脚将返回 0。读取未配置为数字功能的引脚将返回 0。如果禁用端口控制和中断模块, 那么 PDIR 中的对应位不更新。 0 1 引脚逻辑电平为逻辑 0,或者未配置为数字功能。 引脚逻辑电平为逻辑 1。 34.2.7 端口数据方向寄存器 (GPIOx_PDDR) PDDR 将各个端口引脚配置为输入或输出。 地址: 基址 基准 + 14h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GPIOx_PDDR 字段描述 字段 PDD 描述 端口数据方向 将各个端口引脚配置为输入或输出。 0 1 引脚配置为通用输入,用于 GPIO 功能。若在 GPIOx_PIDR 寄存器中禁用端口输入,则引脚将为高阻 态。 引脚配置为通用输出,用于 GPIO 功能。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 635 FGPIO 存储器映像和寄存器定义 34.2.8 端口输入禁用寄存器 (GPIOx_PIDR) 地址: 基址 基准 + 18h 偏移 位 R W 31 复位 1 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 PID 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 GPIOx_PIDR 字段描述 字段 描述 端口输入禁用 PID 0 1 假设引脚配置为数字功能,则该引脚配置为通用输入。 引脚未配置为通用输入。读取对应的 PDIR 字段将返回 0。 34.3 FGPIO 存储器映像和寄存器定义 GPIO 寄存器也可另外命名,并指向 Cortex-M0+上地址 0xF800_0000 处的 IOPORT 接口。 通过 IOPORT 接口执行的访问与任何指令的获取保持同步,因此可在一个周期内完 成。该另外命名的快速 GPIO 存储器映像称为 FGPIO。 对超出有效存储器映像范围的 FGPIO 存储器空间进行任何读写访问都会导致总线 错误。所有对寄存器的访问均为零等待,但对错误地址的访问会有一个等待状态。 34.3.1 GPIO/FGPIO 寄存器位分配 在该器件中,所有 8 位端口引脚都映射到 32 位 GPIO/FGPIO 寄存器,如表中所示。 7 6 5 4 3 2 1 0 PTA0 8 PTA1 9 PTA2 1 0 PTA3 1 1 PTA4 1 2 PTA5 1 3 PTA6 1 4 PTA7 1 5 PTB0 PTC7 1 6 PTB1 PTD0 1 7 PTB2 PTD1 1 8 PTB3 PTD2 1 9 PTB4 PTD3 2 0 PTB5 PTD4 2 1 PTB6 PTD5 2 2 PTB7 2 3 PTC0 2 4 PTC1 2 5 PTC2 2 6 PTC3 2 7 PTC4 2 8 PTC5 2 9 PTC6 3 0 PTD6 寄存器位 端口引脚 3 1 PTD7 表 34-7. GPIOA/FGPIOA 寄存器位分配 KEA128 子系列参考手册, Rev. 2, July 2014 636 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) PTE1 PTE0 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0 PTI1 PTF1 PTE2 PTF2 2 7 PTI2 PTF3 PTE3 PTF4 2 8 PTI3 PTF5 PTE4 PTF6 PTE5 PTF7 2 9 PTI4 PTG0 3 0 PTI5 PTG1 PTE6 PTG2 3 1 PTI6 0 PTE7 1 保留位 2 PTF0 3 保留位 4 保留位 5 保留位 6 保留位 7 保留位 8 保留位 9 保留位 1 0 保留位 1 1 保留位 1 2 保留位 1 3 保留位 1 4 PTG3 PTG7 1 5 保留位 PTH0 1 6 PTG4 PTH1 1 7 PTG5 PTH2 1 8 保留位 PTH3 1 9 保留位 PTH4 2 0 PTG6 PTH5 2 1 保留位 PTH6 2 2 保留位 2 3 保留位 2 4 保留位 2 5 保留位 2 6 保留位 2 7 保留位 2 8 保留位 2 9 保留位 寄存器位 端口引脚 3 0 保留位 3 1 PTH7 表 34-8. GPIOB/FGPIOB 寄存器位分配 PTI0 端口引脚 寄存器位 表 34-9. GPIOC/FGPIOC 寄存器位分配 FGPIO 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 R/W 0000_0000h 34.3.2/638 F800_0000 端口数据输出寄存器 (FGPIOA_PDOR) 32 F800_0004 端口置位输出寄存器 (FGPIOA_PSOR) 32 W(始终 0000_0000h 读 0) 34.3.3/638 F800_0008 端口清零输出寄存器 (FGPIOA_PCOR) 32 W(始终 0000_0000h 读 0) 34.3.4/639 F800_000C 端口跳变输出寄存器 (FGPIOA_PTOR) 32 W(始终 0000_0000h 读 0) 34.3.5/639 F800_0010 端口数据输入寄存器 (FGPIOA_PDIR) 32 R 0000_0000h 34.3.6/640 F800_0014 端口数据方向寄存器 (FGPIOA_PDDR) 32 R/W 0000_0000h 34.3.7/640 F800_0018 端口输入禁用寄存器 (FGPIOA_PIDR) 32 R/W FFFF_FFFFh 34.3.8/640 F800_0040 端口数据输出寄存器 (FGPIOB_PDOR) 32 R/W 0000_0000h 34.3.2/638 F800_0044 端口置位输出寄存器 (FGPIOB_PSOR) 32 W(始终 0000_0000h 读 0) 34.3.3/638 F800_0048 端口清零输出寄存器 (FGPIOB_PCOR) 32 W(始终 0000_0000h 读 0) 34.3.4/639 F800_004C 端口跳变输出寄存器 (FGPIOB_PTOR) 32 W(始终 0000_0000h 读 0) 34.3.5/639 F800_0050 端口数据输入寄存器 (FGPIOB_PDIR) 32 R 0000_0000h 34.3.6/640 F800_0054 端口数据方向寄存器 (FGPIOB_PDDR) 32 R/W 0000_0000h 34.3.7/640 F800_0058 端口输入禁用寄存器 (FGPIOB_PIDR) 32 R/W FFFF_FFFFh 34.3.8/640 F800_0080 端口数据输出寄存器 (FGPIOC_PDOR) 32 R/W 0000_0000h 34.3.2/638 F800_0084 端口置位输出寄存器 (FGPIOC_PSOR) 32 W(始终 0000_0000h 读 0) 34.3.3/638 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 637 FGPIO 存储器映像和寄存器定义 FGPIO 存储器映射 (继续) 绝对地址(十 六进制) 宽度(单 位:位) 寄存器名称 访问 复位值 小节/页 端口清零输出寄存器 (FGPIOC_PCOR) 32 W(始终 0000_0000h 读 0) 34.3.4/639 F800_008C 端口跳变输出寄存器 (FGPIOC_PTOR) 32 W(始终 0000_0000h 读 0) 34.3.5/639 F800_0088 F800_0090 端口数据输入寄存器 (FGPIOC_PDIR) 32 R 0000_0000h 34.3.6/640 F800_0094 端口数据方向寄存器 (FGPIOC_PDDR) 32 R/W 0000_0000h 34.3.7/640 F800_0098 端口输入禁用寄存器 (FGPIOC_PIDR) 32 R/W FFFF_FFFFh 34.3.8/640 34.3.2 端口数据输出寄存器 (FGPIOx_PDOR) 该寄存器配置在各通用输出引脚上驱动的逻辑电平。 地址: 基址 基准 + 0h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PDOR 字段描述 字段 描述 端口数据输出 PDO 特定器件的未实施引脚读取为零。 0 1 假设引脚配置为通用输出,则在引脚上驱动逻辑电平 0。 假设引脚配置为通用输出,则在引脚上驱动逻辑电平 1。 34.3.3 端口置位输出寄存器 (FGPIOx_PSOR) 该寄存器可以将 PDOR 字段置位。 地址: 基址 基准 + 4h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTSO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PSOR 字段描述 字段 PTSO 描述 端口置位输出 KEA128 子系列参考手册, Rev. 2, July 2014 638 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) FGPIOx_PSOR 字段描述 (继续) 字段 描述 如下所示对该寄存器进行写操作将更新 PDOR 中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为逻辑 1。 34.3.4 端口清零输出寄存器 (FGPIOx_PCOR) 该寄存器可以将 PDOR 字段清零。 地址: 基址 基准 + 8h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTCO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PCOR 字段描述 字段 描述 端口清零输出 PTCO 如下所示对该寄存器进行写操作将更新端口数据输出寄存器(PDOR)中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为逻辑 0。 34.3.5 端口跳变输出寄存器 (FGPIOx_PTOR) 地址: 基址 基准 + Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 R 0 W PTTO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PTOR 字段描述 字段 PTTO 描述 端口跳变输出 如下所示对该寄存器进行写操作将更新 PDOR 中对应位的内容: 0 1 PDORn 中的对应位不变。 PDORn 中的对应位置为当前逻辑状态的反相电平。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 639 FGPIO 存储器映像和寄存器定义 34.3.6 端口数据输入寄存器 (FGPIOx_PDIR) 地址: 基址 基准 + 10h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDI R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PDIR 字段描述 字段 描述 端口数据输入 PDI 读取器件的未绑定引脚将返回 0。读取未配置为数字功能的引脚将返回 0。如果禁用端口控制和中断模块, 那么 PDIR 中的对应位不更新。 0 1 引脚逻辑电平为逻辑 0,或者未配置为数字功能。 引脚逻辑电平为逻辑 1。 34.3.7 端口数据方向寄存器 (FGPIOx_PDDR) PDDR 将各个端口引脚配置为输入或输出。 地址: 基址 基准 + 14h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PDD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FGPIOx_PDDR 字段描述 字段 描述 端口数据方向 PDD 将各个端口引脚配置为输入或输出。 0 1 引脚配置为通用输入,用于 GPIO 功能。若在 FPIOx_PIDR 寄存器中禁用端口输入,则引脚将为高阻态。 引脚配置为通用输出,用于 GPIO 功能。 34.3.8 端口输入禁用寄存器 (FGPIOx_PIDR) 地址: 基址 基准 + 18h 偏移 位 R W 31 复位 1 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 PID 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 KEA128 子系列参考手册, Rev. 2, July 2014 640 Freescale Semiconductor, Inc. 第 34 章 通用输入/输出(GPIO) FGPIOx_PIDR 字段描述 字段 PID 描述 端口输入禁用 0 1 假设引脚配置为数字功能,则该引脚配置为通用输入。 引脚未配置为通用输入。读取对应的 PDIR 字段将返回 0。 34.4 功能说明 34.4.1 通用输入 当引脚配置为数字功能,且对应的端口控制和中断模块已使能时,可通过端口数据 输入寄存器得到该引脚的逻辑状态。 34.4.2 通用输出 当引脚配置为 GPIO 功能时,可通过端口数据输出寄存器和端口数据方向寄存器来 控制每个引脚的逻辑状态。下表介绍了如何把引脚配置为输入/输出。 结果 条件 引脚已配置为 GPIO,并且已将对应的端口数据方向寄存器位清 引脚配置为输入。 零。 引脚已配置为 GPIO,并且已将对应的端口数据方向寄存器位置 引脚配置为输出,并且引脚的逻辑状态与对应的端口数据输出寄 位。 存器相同。 为了让用户可以对通用输出模块实现高效的位操作,我们提供了端口置位、端口清 零、以及端口跳变寄存器,以便通过单次寄存器的写操作来置位、清零或切换一个 端口内的一个或多个输出。 无需启用对应的端口控制和中断模块来更新端口数据方向寄存器和端口数据输出寄 存器(包括置位/清零/跳变寄存器)的状态。 34.4.3 IOPORT GPIO 寄存器也可另外命名,并指向 Cortex-M0+上地址 0xF800_0000 处的 IOPORT 接口。通过 IOPORT 接口执行的访问与任何指令的获取保持同步,因此可在一个周 期内完成。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 641 功能说明 KEA128 子系列参考手册, Rev. 2, July 2014 642 Freescale Semiconductor, Inc. 第 35 章 键盘中断(KBI) 35.1 简介 35.1.1 特性 KBI 特性包括: • 最多 32 个具有单个引脚使能位的键盘中断引脚 • 各键盘中断引脚可编程为: • 仅下降沿触发 • 仅上升沿触发 • 下降沿加低电平触发 • 上升沿加高电平触发 • 一个软件使能的键盘中断 • 退出低功耗模式 35.1.2 工作模式 本节定义以下模式中的 KBI 操作: • Wait 模式 • Stop 模式 • Background Debug 模式 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 643 外部信号说明 35.1.2.1 Wait 模式下的 KBI 执行等待指令,将 MCU 置于 Wait 模式。如果需要,则在执行等待指令之前应先使 能 KBI 中断(KBI_SC[KBIE] = 1),使 KBI 在 MCU 处于 Wait 模式时能够继续工作。 如果已使能 KBI 中断(KBI_SC[KBIE] = 1),则已使能的 KBI 引脚(KBI_PE[KBIPEn] = 1)可被用于使 MCU 退出 Wait 模式。 35.1.2.2 Stop 模式下的 KBI 执行停止指令可将 MCU 置于 Stop 模式(当已选定 Stop 时),在此模式中 KBI 可异 步操作。如果这是所需行为,则在执行停止指令前必须先使能 KBI 中断 (KBI_SC[KBIE] = 1),使 KBI 在 MCU 处于 Stop 模式时能够继续工作。如果已使能 KBI 中断(KBI_SC[KBIE] = 1),则已使能的 KBI 引脚(KBI_PE[KBIPEn] = 1)可被用 于使 MCU 退出 Stop 模式。 35.1.3 结构框图 键盘中断模块的结构框图如下所示。 BUSCLK KBACK 1 KBIxP0 0 VDD S KBIPE0 复位 D CLR KBF Q 同步器 CK KBEDG0 键盘 中断FF 1 KBIxPn 0 S KBIPEn 停止 停止旁路 KBIx 中断 请求 KBMOD KBIE KBEDGn 图 35-1. KBI 结构框图 35.2 外部信号说明 KBI 输入引脚可用于检测下降沿或同时检测下降沿和低电平中断请求。KBI 输入引 脚还可用于检测上升沿,或同时检测上升沿加高电平中断请求。 KEA128 子系列参考手册, Rev. 2, July 2014 644 Freescale Semiconductor, Inc. 第 35 章 键盘中断(KBI) KBI 的信号属性如下表所示: 表 35-1. 外部信号说明 信号 KBIxPn I/O 功能 I 键盘中断引脚 35.3 寄存器定义 KBI 包括以下寄存器: • 单个引脚状态和控制寄存器,KBIx_SC • 单个引脚使能寄存器,KBIx_PE • 单个边沿选择寄存器, KBIx_ES • 单个源引脚寄存器,KBIx_SP 有关所有 KBI 寄存器的绝对地址分配信息,请参见“存储器”章节中的直接页面寄存 器汇总。该部分仅按其名称参考寄存器和控制位。 某些 MCU 可能具有不止一个 KBI,因此,寄存器名称中包括用于标识所参考的 KBI 的占位字符。 35.4 存储器映像和寄存器 KBI 存储器映射 绝对地址(十 六进制) 寄存器名称 宽度(单 位:位) 访问 复位值 小节/页 4007_9000 KBI 引脚使能寄存器 (KBI0_PE) 32 R/W 0000_0000h 35.4.1/646 4007_9004 KBI 边沿选择寄存器 (KBI0_ES) 32 R/W 0000_0000h 35.4.2/646 4007_9008 KBI 状态和控制寄存器 (KBI0_SC) 32 R/W 0000_0000h 35.4.3/647 4007_900C KBI 源引脚寄存器 (KBI0_SP) 32 R 0000_0000h 35.4.4/648 4007_A000 KBI 引脚使能寄存器 (KBI1_PE) 32 R/W 0000_0000h 35.4.1/646 4007_A004 KBI 边沿选择寄存器 (KBI1_ES) 32 R/W 0000_0000h 35.4.2/646 4007_A008 KBI 状态和控制寄存器 (KBI1_SC) 32 R/W 0000_0000h 35.4.3/647 32 R 0000_0000h 35.4.4/648 4007_A00C KBI 源引脚寄存器 (KBI1_SP) KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 645 存储器映像和寄存器 35.4.1 KBI 引脚使能寄存器 (KBIx_PE) KBI_PE 包含引脚使能控制位。 地址: 基址 基准 + 0h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KBIPE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KBIx_PE 字段描述 字段 描述 KBI 引脚使能 KBIPE 每个 KBIPEn 位使能对应 KBI 中断引脚。 0 1 引脚未使能为 KBI 中断。 引脚已使能为 KBI 中断。 35.4.2 KBI 边沿选择寄存器 (KBIx_ES) KBI_ES 包含边沿选择控制位。 地址: 基址 基准 + 4h 偏移 位 R W 31 复位 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KBEDG 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KBIx_ES 字段描述 字段 KBEDG 描述 KBI 边沿选择 每个 KBEDGn 位选择对应引脚的下降沿/低电平或上升沿/高电平功能。 0 1 下降沿/低电平。 上升沿/高电平。 KEA128 子系列参考手册, Rev. 2, July 2014 646 Freescale Semiconductor, Inc. 第 35 章 键盘中断(KBI) 35.4.3 KBI 状态和控制寄存器 (KBIx_SC) KBI_SC 包含用于配置 KBI 的状态标志和控制位。 地址: 基址 基准 + 8h 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 R 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 KBIE KBMOD W 0 0 0 0 KBACK KBSPEN KBF RSTKBSP 0 R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 KBIx_SC 字段描述 字段 31–6 保留 5 RSTKBSP 4 KBSPEN 3 KBF 描述 此字段为保留字段。 此只读字段为保留字段且值始终为 0。 复位 KBI_SP 寄存器 在 RSTKBSP 中写入 1 即可清零 KBIxSP 寄存器。此位始终读为 0。 实际 KBI_SP 寄存器使能 0 1 KBI 中断标志 表示检测到 KBI 中断请求的时间。写操作对 KBF 无效。 0 1 2 KBACK 要读取的键盘源引脚的实时值 当中断标志出现时要读取的 KBxSP 寄存器中的锁存值 未检测到的 KBI 中断请求。 检测到的 KBI 中断请求。 KBI 应答 在 KBACK 中写入 1 是标志清零机制的一部分。 下一页继续介绍此表... KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 647 功能说明 KBIx_SC 字段描述 (继续) 字段 描述 KBI 中断使能 1 KBIE 确定 KBI 中断是否已使能。 0 1 KBI 中断未使能。 KBI 中断已使能。 KBI 检测模式 0 KBMOD KBMOD(与 ES[KBEDG]一起)控制 KBI 中断引脚的检测模式。 0 1 键盘仅检测边沿。 键盘检测边沿和电平。 35.4.4 KBI 源引脚寄存器 (KBIx_SP) KBIx 源引脚寄存器表示 KBI 的源引脚。其复位值来自系统复位。 地址: 基址 基准 + Ch 偏移 位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SP R W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KBIx_SP 字段描述 字段 SP 描述 KBI 源引脚 该字段为只读,它表示定义为键盘中断的活动引脚是否被按下,当有效按下对应键盘引脚时,相应的位将置 1,仅系统复位或在 RSTKBSP 位中写入 1 才能清零此寄存器。 35.5 功能说明 该片上外设模块被称为键盘中断模块,因为其最初设计用于简化键盘开关行列式矩 阵的连接和使用。但是,这些输入可以作为有用的额外的外部中断的输入,成为一 个很好的将 MCU 从停止或等待低功耗模式唤醒的外部方式。 KBI 模型最多允许 8 个引脚用作为额外的中断源。在 KBIx_PE[KBIPEn]位中单独 写入将使能或禁用各 KBI 引脚。各 KBI 引脚可在 KBIx_SC[KBMOD]位上配置为 基于边沿触发或基于边沿和电平触发。边沿触发可通过软件编程为下降沿出发或上 升沿触发;电平可配置为低电平触发或高电平触发。边沿极性或边沿和电平敏感度 可使用 KBIx_ES[KBEDGn]位选择。 KEA128 子系列参考手册, Rev. 2, July 2014 648 Freescale Semiconductor, Inc. 第 35 章 键盘中断(KBI) 35.5.1 边沿触发 同步逻辑用于检测边沿。当已使能的键盘中断(KBIx_PE[KBIPEn]=1)输入信号在一 个总线周期中被采集为逻辑 1(无效电平)并且在下一个周期中被采集为逻辑 0(有 效电平),则会检测到下降沿。当该输入信号在一个总线周期中被采集为逻辑 0(无 效电平)并且在下一个周期中被采集为逻辑 1(有效电平),则会检测到上升沿。 检测到第一个边沿之前,所有已使能的键盘中断输入信号必须处于无效逻辑电平。 检测到任何边沿后,在检测任何新边沿前,所有已启用的键盘中断输入信号必须返 回到无效电平。 已使能 KBI 引脚上的有效边沿将置位 KBIx_SC[KBF]。如果 KBIx_SC[KBIE]已置 位,则 MPU 中会出现中断请求。在 KBIx_SC[KBACK]中写入 1 将会清零 KBIx_SC[KBF]。 35.5.2 边沿和电平触发 已使能 KBI 上的有效边沿或电平将置位 KBIx_SC[KBF]。如果 KBIx_SC[KBIE]已 置位,则 MCU 中会出现中断请求。如果所有已使能的键盘输入处于其无效电平, 则在 KBIx_SC[KBACK]中写入 1 将会清零 KBIx_SC[KBF]。当尝试通过在 KBIx_SC[KBACK]中写入 1 来清零 KBIx_SC[KBF]时,如果任何已使能的 KBI 引脚 电平变为有效值,则 KBIx_SC[KBF]将保持置位。 35.5.3 KBI 上拉电阻 各 KBI 引脚(如已由 KBIx_PE 使能)可通过关联 I/O 端口的拉使能寄存器进行配 置,请参见“端口控制(PORT)”部分,以使用: • 使用内部上拉电阻 • 无电阻 如果内部上拉电阻已被使能的 KBI 引脚使能,则相关 I/0 端口的拉选择寄存器(参 见“I/O 端口”一章)可用于选择内部上拉电阻。 35.5.4 KBI 初始化 首次使能键盘中断时,可能会获得错误的键盘中断标志。要在键盘初始化期间防止 虚假的中断请求,用户应执行以下操作: KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 649 功能说明 1. 2. 3. 4. 5. 6. 7. 通过清除 KBIx_SC[KBIE]屏蔽键盘中断。 通过设置适当的 KBIx_ES[KBEDGn]位置位而使能 KBI 极性。 使用内部上拉电阻之前,先配置 PORT_PUE0 和 PORT_PUE1 中的关联位。 通过设置适当的 KBIx_PE[KBIPEn]位置位而使能 KBI 引脚。 在 KBIx_SC[KBACK]中进行写操作将清除任何错误中断。 在 KBIx_SC[RSTKBSP]中进行写操作将清除 KBIx_SP 中的任何错误。 使 KBIx_SC[KBIE]置位以使能中断。 KEA128 子系列参考手册, Rev. 2, July 2014 650 Freescale Semiconductor, Inc. 第 36 章 第 2 版的版本记录 表 36-1. 通篇改动 • 更新了支持的器件。 表 36-2. “关于本文”一章的改动 无实质性的内容改动。 表 36-3. “简介”一章的改动 • 文字性改动。 • 存储器和存储器接口 更新以显示 64/128 KB Flash 存储器。 • 更新了可订购部件编号 部分。 表 36-4. “芯片配置”一章的改动 • 增加了备用非易失性 IRC 用户微调说明 部分。 • 下列部分更新以显示所有支持的器件: • 更新了 Flash 存储器大小 部分。 • 更新了 SRAM 大小 部分 • 更新了 ADC 实例化信息 部分。 表 36-5. “存储器映射”一章的改动 • 更新了外设 ID 寄存器 (ROM_PERIPHIDn) 和组件 ID 寄存器 (ROM_COMPIDn) 寄存器的注释。 表 36-6. “时钟分布”一章的改动 • FTM 和 PWT 计时 部分中更新了注释。 表 36-7. “复位和引导”一章的改动 无实质性的内容改动。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 651 表 36-8. “电源管理”一章的改动 无实质性的内容改动。 表 36-9. “加密”一章的改动 • Flash 加密 部分中更新了注释。 表 36-10. “调试”一章的改动 无实质性的内容改动。 表 36-11. “信号多路复用和信号说明”一章的改动 无实质性的内容改动。 表 36-12. “端口控制(PORT)”一章的改动 无实质性的内容改动。 表 36-13. “系统集成模块”一章的改动 无实质性的内容改动。 表 36-14. “电源管理控制器”一章的改动 无实质性的内容改动。 表 36-15. “杂项控制模块”一章的改动 无实质性的内容改动。 表 36-16. “外设桥”一章的改动 无实质性的内容改动。 表 36-17. “WDOG 定时器”一章的改动 • 更新了特性 部分。 表 36-18. “位操作引擎”一章的改动 无实质性的内容改动。 KEA128 子系列参考手册, Rev. 2, July 2014 652 Freescale Semiconductor, Inc. 第 36 章 第 2 版的版本记录 表 36-19. “Flash 存储器模块”一章的改动 • • • • • • 更新了 Flash 存储器特性 部分中的特性列表。 更新了 Flash 存储器映射 部分 更新了系统复位之后的 Flash 初始化 部分 增加了图图 18-3 。 Flash 命令汇总 中增加了文本“这还会触发非法访问异常情况” 更新了寄存器 FTMRE_FSEC 中位“SEC”的位说明 表 36-20. “Flash 存储器控制器”一章的改动 无实质性的内容改动。 表 36-21. “内部时钟源”一章的改动 • • • • • • 更新了特性 更新了寄存器 ICS_C1 中位“RDIV”的位说明 更新了寄存器 ICS_C3 中位“SCTRIM”的位说明 更新了寄存器 ICS_C4 中位“SCFTRIM”的位说明 寄存器 ICS_S 中的 LOCK 位从 TRIM[7:0]变更为 SCTRIM[7:] 更新了下列部分中的代码段: • 初始化 FEI 模式 • 初始化 FBI 模式 • 初始化 FEE 模式 • 初始化 FBE 模式 表 36-22. “振荡器”一章的改动 • 更新了寄存器 OSC_CR 中位“RANGE”的位说明 表 36-23. “循环冗余校验”一章的改动 • 更新了 CRC 初始化/重新初始化 部分。 表 36-24. “中断”一章的改动 无实质性的内容改动。 表 36-25. “模数转换器”一章的改动 • 更新了 FIFO 操作 部分。 • 图 24-3 中作了小幅度的文字性更新 表 36-26. “模拟比较器”一章的改动 无实质性的内容改动。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 653 表 36-27. “FlexTimer 模块”一章的改动 • • • • • • • • • • • • • • • • • • • • • • • • • • • • 更新了 FlexTimer 的基本理念 部分 FTMx_CnSC 寄存器下的表“模式、边沿和电平选择”作了小幅的文字性更新。 FlexTimer 的基本理念 部分作了小幅的文字性更新。 更新了向上-向下计数 部分中的注释。 删除了输入捕捉模式 部分中的注释。 删除了输出比较模式 部分中的注释。 更新了边沿对齐 PWM (EPWM)模式 部分中的注释。 删除了中心对齐 PWM (CPWM)模式 部分中的注释。 移除了组合模式 部分中的列表项“FTMEN = 1” 更新了互补模式 部分 删除了 PWM 同步 部分中的注释 移除了反相 部分中的列表项“FTMEN = 1”、“COMBINE = 1”和“CPWMS = 0”,并更新了注释 删除了软件输出控制 部分中的注释 更新了死区插入 部分中的注释 故障控制 部分中的“如果(FTMEN = 1)且(FAULTM[1:0] ≠ 0:0),则故障控制使能”改动为“如果(FAULTM[1:0] ≠ 0:0),则故 障控制使能”。 更新了初始化 部分中的注释 删除了通道触发器输出 部分中的注释 删除了初始化触发 部分中的注释 从双沿捕捉模式 部分中的“如果 FTMEN = 1 且 DECAPEN = 1,则选择双沿捕获模式”移除了“FTMEN=1”。 从一次性捕捉模式 和连续捕捉模式 部分中的“当(FTMEN = 1)、(DECAPEN = 1)且(MS(n)A = 0)时,选择单次捕获模式”移 除了“FTMEN=1”。 Debug 模式 部分中增加了注释。 删除了中间加载 部分中的注释 全局时基(GTB) 部分作了小幅的文字性更新 增加了初始化流程 部分 移除了 STATUS 寄存器的注释。 更新了 MODE 寄存器中 FTMEN 的位字段说明。 更新了 COMBINE 寄存器的位字段说明。 删除了 FlexTimer 的基本理念 部分中的注释。 表 36-28. “脉宽定时器”一章的改动 • • • • 功能框图 中作了小幅更新 功能框图 部分中增加了注释 更新了 PWT_R1 寄存器中 PCLKS 位的位字段说明。 更新了图 27-2 表 36-29. “周期性中断定时器”一章的改动 • 简介 部分中作了小幅的文字性更新。 • 更新了链接定时器配置示例 部分。 表 36-30. “实时计数器”一章的改动 无实质性的内容改动。 表 36-31. “串行外设接口”一章的改动 无实质性的内容改动。 KEA128 子系列参考手册, Rev. 2, July 2014 654 Freescale Semiconductor, Inc. 第 36 章 第 2 版的版本记录 表 36-32. “I2C”一章的改动 • 特性 部分中作了小幅的文字性更新。 表 36-33. “MSCAN”一章的改动 • 更新了“MSCAN 发送缓冲区选择寄存器”部分。 • 发送结构 部分增加图“报文缓冲区组织用户模型”的交叉参考 表 36-34. “UART”一章的改动 • 快速数据公差 部分中作了小幅的文字性更新 表 36-35. “通用输入/输出(GPIO)”一章的改动 • 更新了特性 部分。 • 详细信号说明 部分中增加了注释。 表 36-36. “键盘中断”一章的改动 无实质性的内容改动。 KEA128 子系列参考手册, Rev. 2, July 2014 Freescale Semiconductor, Inc. 655 KEA128 子系列参考手册, Rev. 2, July 2014 656 Freescale Semiconductor, Inc. How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support 本文档中的信息仅供系统和软件实施方使用 Freescale 产品。本文并未明 示或暗示授予利用本文档信息进行设计或者加工集成电路的版权许可。 Freescale 保留对本文档中所述任何产品进行更改的权利,恕不另行通知。 Freescale 对其产品在任何特定用途方面的适用性不做任何担保、表示或 保证,也不承担因为应用或使用产品或电路所产生的任何责任,明确拒绝 承担包括但不局限于因果性或附带损害在内的所有责任。Freescale 的数 据表和/或规格中所提供的“典型”参数在不同应用中可能并且确实不同,实 际性能会随时间而有所变化。所有操作参数,包括“典型值”在内,在每个 客户应用中必须经由技术专家进行验证。Freescale 未转让与其专利权及 其他权利相关的许可。Freescale 根据标准销售条款和条件出售产品,该 标准条款和条件可参考如下网址:freescale.com/ SalesTermsandConditions 。 Freescale、Freescale 标志以及 Kinetis 是 Freescale Semiconductor, Inc. 的商标,已在美国专利商标局注册的商标。所有其他产品或服务名称都是 其各自所有者的财产。ARM 和 Cortex-M0+是 ARM 有限公司的注册商 标。 ©2014 Freescale Semiconductor, Inc. Document Number S9KEA128Z80M48SF0RM Revision 2, July 2014