0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
MC9S08AC16MBE

MC9S08AC16MBE

  • 厂商:

    NXP(恩智浦)

  • 封装:

    SDIP42

  • 描述:

    MICROCONTROLLER IC 8-BIT 40MHZ 1

  • 数据手册
  • 价格&库存
MC9S08AC16MBE 数据手册
MC9S08AC16 MC9S08AC8 MC9S08AW16 MC9S08AW8 数据手册:技术数据 HCS08 微控制器 MC9S08AC16 第6版 2008 年 9 月 飞思卡尔半导体 MC9S08AC16 系列产品的特性 MC9S08AC16 系列 MCU • 消费 & 工业 — MC9S08AC16 — MC9S08AC8 • 汽车 — MC9S08AW16A — MC9S08AW8A 8 位 HCS08 中央处理单元 (CPU) 40-MHz HCS08CPU( 中央处理单元 ) 20-MHz 内部总线频率 HC08 指令集,增加了 BGND 指令 背景调试系统 在线调试 (in-circuit debugging)期间可以设置单 个断点 (在片上调试模式时可以再增加两个断点) • 调试模式包括 2 个比较仪和 9 个触发器模式。8 个 FIFO 来存储流控制地址和事件数据。调试模式支 持标签和强制断点 • 支持高达 32 个中断 / 复位源 • • • • • 存储器选项 • 高达 16KB 的片上在线可编程 FLASH 存储器,有块 保护和安全选项 • 高达 1KB 的片上 RAM 时钟源选项 • 时钟源选项包括晶体,振荡器,外部时钟,或能 够 NVM 调整的精确的内部集成时钟 系统保护 可选的看门狗 (COP)复位,使用运行于独立的 内部时钟源或总线时钟 • 低压检测复位或中断 • 非法操作符检测复位 • 非法地址检测复位 • 省电模式 • 等待模式,以及两种停止模式 外围设备 • ADC-8 通道,10 位 AD 转换器,包含自动比较功能 • SCI- 两个串行通信接口模块,可选的 13 位间断字 符通讯模式 • SPI- 串行外设接口模块 IIC- 内部集成电路总线模块,最大总线负载时,传 输速度可达 100kps,减少负载将会允许更高的波 特率 • 定时器 -3 个 16 位定时器 /PWM(TPM)模块 -2 个 2 通道和 1 个 4 通道;每个定时器在每个通道上都有 可选的输入捕捉,输出比较, PWM。每个定时器 在每个通道上都可以配置为边沿对齐。每一个定时 器 /PWM (TPM)可以在其所有通道产生中心对 齐的 PWM (CPWM)。 • KBI-7 引脚键盘中断模块 • 输入 / 输出 • • • • • • 高达 38 个通用输入 / 输出 (I/O)引脚 输入时,每个端口都有软件选择的上拉电阻 输出时,每个端口都有软件选择的输出斜率控制 输出时,每个端口都有软件选择的驱动强度 主复位引脚和上电复位 (POR) RESET,IRQ,BKGD/MS 引脚在内部上拉以减小 客户系统成本。 封装选择 • 48 引脚 QFN • 44 引脚 LQFP • 42 引脚 SDIP • 32 引脚 LQFP MC9S08AC16 系列 数据手册 包括 MC9S08AC16 MC9S08AC8 MC9S08AW16 MC9S08AW8 MC9S08AC16 第6版 2008 年 9 月 版本记录 我们在互联网上提供手册的最新版本,而您的纸件版本可能是较早版本。请登录以下网站来确认您拥有 最新的产品信息: http://freescale.com/ 以下为本手册的修订记录: 版本号 出版日期 6 9/11/2008 更新描述 中文版第 1 次正式发布,对应于英文第 6 版。 This product incorporates SuperFlash® technology licensed from SST. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. © Freescale Semiconductor, Inc., 2008. All rights reserved. MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 章节号 标题 页 第 1 章 绪论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 第 2 章 引脚及其连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 第 3 章 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 第 4 章 片上存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 第 5 章 复位、中断和系统配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 第 6 章 并行输入和输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 第 7 章 中央处理单元 (S08CPUV2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 第 8 章 键盘中断 (S08KBIV1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 9 章 内部时钟发生器 (S08ICGV4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 第 10 章 定时器 /PWM (S08TPMV3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 第 11 章 串行通信接口 (S08SCIV4). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 第 12 章 串行外设接口 (S08SPIV3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 第 13 章 IIC 总线 (S08IICV2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 第 14 章 AD 转换器 (S08ADC0V1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 第 15 章 开发支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 附录 A 电气特性和时序规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 附录 B 订购信息和机械制图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 手册目录 章节号 标题 页码 第 1 章绪论 1.1 1.2 1.3 概述 ................................................................................................................................. 19 MCU 结构框图 ................................................................................................................. 20 系统时钟分配 ................................................................................................................... 22 2.1 2.2 2.3 简介 ................................................................................................................................. 25 MCU 的管脚分配 .............................................................................................................. 25 推荐的系统连接 ...............................................................................................................29 2.3.1 电源 (VDD、 2 × VSS、 VDDAD 和 VSSAD) ...................................................... 31 2.3.2 振荡器 (XTAL 与 EXTAL) ................................................................................ 31 2.3.3 复位 ..................................................................................................................... 31 2.3.4 背景 / 模式选择 (BKGD/MS) ............................................................................... 31 2.3.5 ADC 参考引脚 (VREFH 与 VREFL) .................................................................... 32 2.3.6 外部的中断引脚 (IRQ) ..................................................................................... 32 2.3.7 通用 I/O 及外设端口 ............................................................................................ 32 3.1 3.2 3.3 3.4 3.5 3.6 简介 ................................................................................................................................. 33 特征 ................................................................................................................................. 33 运行模式 .......................................................................................................................... 33 背景调试模式 ................................................................................................................... 33 等待模式 .......................................................................................................................... 34 停止模式 .......................................................................................................................... 34 3.6.1 Stop2 模式 .......................................................................................................... 34 3.6.2 Stop3 模式 .......................................................................................................... 35 3.6.3 停止模式下激活 BDM 使能 .................................................................................. 35 3.6.4 停止模式下 LVD 使能 ..........................................................................................36 3.6.5 停止模式下的片上外设模块 ................................................................................. 36 4.1 MC9S08AC16 系列存储映像简介 .................................................................................... 39 4.1.1 复位和中断向量分配 ........................................................................................... 39 寄存器地址和位分配 ........................................................................................................41 RAM ................................................................................................................................. 47 Flash ................................................................................................................................ 47 4.4.1 特征 ..................................................................................................................... 47 4.4.2 写入和擦除时间 ................................................................................................... 48 4.4.3 写入和擦除命令的执行 ........................................................................................ 48 第 2 章引脚及其连接 第 3 章工作模式 第 4 章片上存储器 4.2 4.3 4.4 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体 9 4.5 4.6 4.4.4 突发模式写入的执行 ........................................................................................... 50 4.4.5 访问错误 ............................................................................................................. 51 4.4.6 Flash 块保护 ....................................................................................................... 51 4.4.7 向量重定向 .......................................................................................................... 52 保护机制 .......................................................................................................................... 52 Flash 寄存器和控制位 ...................................................................................................... 53 4.6.1 Flash 时钟分频寄存器 (FCDIV) ........................................................................... 53 4.6.2 Flash 选项寄存器 (FOPT 和 NVOPT) ................................................................. 54 4.6.3 flash 配置寄存器 (FCNFG) .................................................................................. 55 4.6.4 Flash 保护寄存器 (FPROT 和 NVPROT) ............................................................ 55 4.6.5 Flash 状态寄存器 (FSTAT) .................................................................................. 56 4.6.6 Flash 命令寄存器 (FCMD) .................................................................................. 57 第 5 章复位、中断和系统配置 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 简介 ................................................................................................................................. 59 特征 ................................................................................................................................. 59 MCU 复位 ........................................................................................................................ 59 计算机正常操作监控模块 (COP) 看门狗 .......................................................................... 60 中断 ................................................................................................................................. 60 5.5.1 中断堆栈结构 ...................................................................................................... 61 5.5.2 外部中断请求 (IRQ) 引脚 .................................................................................... 62 5.5.3 中断向量、中断源和局部屏蔽 ............................................................................. 62 低电压检测系统 (LVD) ..................................................................................................... 64 5.6.1 上电复位操作 ...................................................................................................... 64 5.6.2 LVD 复位操作 ...................................................................................................... 64 5.6.3 LVD 中断操作 ...................................................................................................... 64 5.6.4 低电压警告 (LVW) ............................................................................................... 64 实时中断 (RTI) ................................................................................................................. 64 MCLK 输出 ....................................................................................................................... 65 复位、中断以及系统控制寄存器和控制位 ........................................................................ 65 5.9.1 中断请求状态和控制寄存器 (IRQSC) .................................................................. 65 5.9.2 系统复位状态寄存器 (SRS) ................................................................................. 66 5.9.3 系统背景调试强制复位寄存器 (SBDFR) ............................................................. 67 5.9.4 系统选项寄存器 (SOPT) ..................................................................................... 67 5.9.5 系统 MCLK 控制寄存器 (SMCLK) ....................................................................... 68 5.9.6 系统设备识别寄存器 (SDIDH、 SDIDL) ..............................................................69 5.9.7 系统实时中断状态和控制寄存器 (SRTISC) ......................................................... 69 5.9.8 系统电源管理状态控制寄存器 1(SPMSC1) ......................................................... 70 5.9.9 系统电源管理状态和控制寄存器 2 (SPMSC2) .................................................... 71 5.9.10 系统系统选项寄存器 2 (STOP2) ......................................................................... 72 第 6 章并行输入和输出 6.1 6.2 6.3 简介 ................................................................................................................................. 73 特征 ................................................................................................................................. 73 引脚描述 .......................................................................................................................... 73 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 6.4 6.5 6.6 6.7 6.3.1 A 口 ..................................................................................................................... 73 6.3.2 B 口 ..................................................................................................................... 74 6.3.3 C 口 ..................................................................................................................... 74 6.3.4 D 口 ..................................................................................................................... 75 6.3.5 E 口 ..................................................................................................................... 75 6.3.6 F 口 ..................................................................................................................... 76 6.3.7 G 口 .................................................................................................................... 76 并行 I/O 控制 .................................................................................................................... 76 引脚控制 .......................................................................................................................... 77 6.5.1 内部上拉电阻使能 ............................................................................................... 77 6.5.2 输出斜率控制使能 ............................................................................................... 78 6.5.3 输出驱动强度选择 ............................................................................................... 78 停止模式下的 I/O 口 ......................................................................................................... 78 并行 I/O 与引脚控制寄存器 .............................................................................................. 78 6.7.1 A 口 I/O 寄存器 (PTAD 和 PTADD) .................................................................. 78 6.7.2 A 口引脚控制寄存器 (PTAPE、 PTASE、 PTADS) .........................................79 6.7.3 B 口 I/O 寄存器 (PTBD 和 PTBDD) ................................................................. 80 6.7.4 B 口引脚控制寄存器 (PTBPE、 PTBSE、 PTBDS) ........................................ 81 6.7.5 C 口 I/O 寄存器 (PTCD 和 PTCDD) ................................................................. 82 6.7.6 C 口引脚控制寄存器 (PTCPE、 PTCSE、 PTCDS) ....................................... 83 6.7.7 D 口 I/O 寄存器 (PTDD 和 PTDDD) ................................................................. 84 6.7.8 D 口引脚控制寄存器 (PTDPE、 PTDSE、 PTDDS) ....................................... 85 6.7.9 E 口 I/O 寄存器 (PTED 和 PTEDD) ................................................................. 86 6.7.10 E 口引脚控制寄存器 (PTEPE、 PTESE、 PTEDS) ........................................ 87 6.7.11 F 口 I/O 寄存器 (PTFD 和 PTFDD) .................................................................. 88 6.7.12 F 口引脚控制寄存器 (PTFPE、 PTFSE、 PTFDS) .........................................89 6.7.13 G 口 I/O 寄存器 (PTGD 和 PTGDD) ................................................................ 90 6.7.14 G 口引脚控制寄存器 (PTGPE、 PTGSE、 PTGDS) ...................................... 91 第 7 章中央处理单元 (S08CPUV2) 7.1 7.2 7.3 概述 ................................................................................................................................. 93 7.1.1 特性 ..................................................................................................................... 93 编程模型和 CPU 寄存器 .................................................................................................. 93 7.2.1 累加器 (A) ........................................................................................................... 94 7.2.2 变址寄存器 (H:X) ............................................................................................. 94 7.2.3 堆栈指针 (SP) .................................................................................................94 7.2.4 程序计数器 (PC) .............................................................................................. 95 7.2.5 条件码寄存器 (CCR) ........................................................................................... 95 寻址模式 .......................................................................................................................... 96 7.3.1 固有寻址模式 (INH) ......................................................................................... 96 7.3.2 相对寻址模式 (REL) ........................................................................................ 96 7.3.3 立即寻址模式 (IMM) ............................................................................................ 96 7.3.4 直接寻址模式 (DIR) ............................................................................................. 96 7.3.5 扩展寻址模式 (EXT) ............................................................................................ 96 7.3.6 变址寻址模式 ...................................................................................................... 96 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 7.4 7.5 特殊操作 .......................................................................................................................... 97 7.4.1 复位序列 ............................................................................................................. 97 7.4.2 中断序列 ............................................................................................................. 97 7.4.3 等待模式 ............................................................................................................. 98 7.4.4 停止模式 ............................................................................................................. 98 7.4.5 背景模式 ............................................................................................................. 98 HCS08 指令设置摘要 ....................................................................................................... 99 第 8 章键盘中断 (S08KBIV1) 8.1 8.2 8.3 8.4 8.5 简介 ............................................................................................................................... 111 键盘引脚复用 ................................................................................................................. 111 特性 ............................................................................................................................... 111 8.3.1 KBI 模块结构图 ................................................................................................. 113 寄存器定义 ..................................................................................................................... 113 8.4.1 KBI 状态控制寄存器 (KBISC) ........................................................................ 113 8.4.2 KBI 引脚使能寄存器 (KBIPE) ........................................................................ 114 功能描述 ........................................................................................................................ 114 8.5.1 引脚使能 ........................................................................................................... 114 8.5.2 边沿和电平触发 ................................................................................................. 114 8.5.3 KBI 中断控制 ..................................................................................................... 115 第 9 章内部时钟发生器 (S08ICGV4) 9.1 9.2 9.3 9.4 概述 ............................................................................................................................... 119 9.1.1 特性 ................................................................................................................... 119 9.1.2 操作模式 ........................................................................................................... 119 9.1.3 功能结构图 ........................................................................................................ 120 外部信号描述 ................................................................................................................. 121 9.2.1 EXTAL— 外部参考时钟 / 振荡器输入 ................................................................ 121 9.2.2 XTAL—振荡器输出 ........................................................................................... 121 9.2.3 外部时钟连接 .................................................................................................... 121 9.2.4 外部晶振 / 谐振器连接 ....................................................................................... 121 寄存器定义 ..................................................................................................................... 122 9.3.1 ICG 控制寄存器 1 (ICGC1) ........................................................................... 122 9.3.2 ICG 控制寄存器 2 (ICGC2) ........................................................................... 123 9.3.3 ICG 状态寄存器 1 (ICGS1) ............................................................................ 124 9.3.4 ICG 状态寄存器 2 (ICGS2) ............................................................................ 125 9.3.5 ICG 滤波器寄存器 (ICGFLTU、 ICGFLTL) ................................................... 126 9.3.6 ICG 调整寄存器 (ICGTRM) ........................................................................... 127 功能描述 ........................................................................................................................ 127 9.4.1 OFF 模式 .......................................................................................................... 127 9.4.2 自时钟模式 (SCM) ......................................................................................... 128 9.4.3 FLL 内部时钟模式 (FEI) ................................................................................ 129 9.4.4 FLL 内部未锁定 ................................................................................................. 129 9.4.5 FLL 内部锁定 .................................................................................................... 130 9.4.6 FLL 旁路外部时钟模式 (FBE) ........................................................................ 130 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 9.5 9.4.7 FLL 外部时钟模式 (FEE) ............................................................................... 130 9.4.8 FLL 锁定和失锁检测 ......................................................................................... 130 9.4.9 FLL 时钟丢失检测 ............................................................................................. 131 9.4.10 时钟模式必要条件 ............................................................................................. 132 9.4.11 固定频率时钟 .................................................................................................... 133 9.4.12 高增益振荡器 .................................................................................................... 133 初始化 / 应用信息 ........................................................................................................... 133 9.5.1 概述 ................................................................................................................... 133 9.5.2 例 1:外部晶振 = 32 kHz,总线频率 = 4.19 MHz ............................................ 135 9.5.3 例 2:外部晶振 = 4 MHz,总线频率 = 20 MHz ................................................ 136 9.5.4 例 3:无外部晶振,总线频率 = 5.4 MHz .......................................................... 138 9.5.5 例 4:内部时钟产生器调整 ............................................................................... 139 第 10 章定时器 /PWM (S08TPMV3) 10.1 简介 ............................................................................................................................... 141 10.2 特征 ............................................................................................................................... 141 10.3 TPMV3 与以前版本的区别 ............................................................................................. 143 10.3.1 从 TPMV1 移植 ................................................................................................. 144 10.3.2 特性 ................................................................................................................... 145 10.3.3 操作模式 ........................................................................................................... 145 10.3.4 结构框图 ........................................................................................................... 146 10.4 信号描述 ........................................................................................................................ 148 10.4.1 信号详细描述 .................................................................................................... 148 10.5 寄存器定义 ..................................................................................................................... 150 10.5.1 TPM 状态和控制寄存器 (TPMxSC) ............................................................... 150 10.5.2 TPM 计数器寄存器 (TPMxCNTH:TPMxCNHTL) ........................................... 152 10.5.3 TPM 计数器模寄存器 (TPMxMODH:TPMxMODL) ........................................ 152 10.5.4 TPM 通道 n 状态和控制寄存器 (TPMxCnSC) ............................................... 153 10.5.5 TPM 通道值寄存器 (TPMxCnVH : TPMxCnVL) ............................................ 155 10.6 功能描述 ........................................................................................................................ 156 10.6.1 计数器 ............................................................................................................... 156 10.6.2 通道模式选择 .................................................................................................... 157 10.7 复位概述 ........................................................................................................................ 159 10.7.1 概要 ................................................................................................................... 159 10.7.2 复位操作 ........................................................................................................... 160 10.8 中断 ............................................................................................................................... 160 10.8.1 概述 ................................................................................................................... 160 10.8.2 中断操作描述 .................................................................................................... 160 第 11 章串行通信接口 (S08SCIV4) 11.1 简介 ............................................................................................................................... 163 11.1.1 特性 ................................................................................................................... 165 11.1.2 操作模式 ........................................................................................................... 165 11.1.3 框图 ................................................................................................................... 165 11.2 寄存器定义 ..................................................................................................................... 168 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 11.2.1 SCI 波特率寄存器 (SCIxBDH、 SCIxBDL) ................................................... 168 11.2.2 SCI 控制寄存器 1 (SCIxC1) ..........................................................................169 11.2.3 SCI 控制寄存器 2 (SCIxC2) ..........................................................................170 11.2.4 SCI 状态寄存器 1 (SCIxS1) ........................................................................... 171 11.2.5 SCI 状态寄存器 2 (SCIxS2) ........................................................................... 172 11.2.6 SCI 控制寄存器 3 (SCIxC3) ..........................................................................173 11.2.7 SCI 数据寄存器 (SCIxD) ............................................................................... 174 11.3 功能描述 ........................................................................................................................ 174 11.3.1 波特率产生 ........................................................................................................ 175 11.3.2 发送功能描述 .................................................................................................... 175 11.3.3 接收功能描述 .................................................................................................... 176 11.3.4 中断和状态标志 ................................................................................................. 177 11.3.5 其他 SCI 功能 .................................................................................................... 178 第 12 章串行外设接口 (S08SPIV3) 12.1 简介 ............................................................................................................................... 181 12.1.1 特征 ................................................................................................................... 183 12.1.2 框图 ................................................................................................................... 183 12.1.3 SPI 波特率发生器 ............................................................................................. 185 12.2 外部信号描述 ................................................................................................................. 185 12.2.1 SPSCK — SPI 串行时钟 ................................................................................... 185 12.2.2 MOSI — 主出从入引脚 ..................................................................................... 185 12.2.3 MISO — 主入从出引脚 ..................................................................................... 185 12.2.4 SS — 从机选择引脚 .......................................................................................... 185 12.3 操作模式 ........................................................................................................................ 186 12.3.1 停止模式中的 SPI ............................................................................................. 186 12.4 寄存器定义 ..................................................................................................................... 186 12.4.1 SPI 控制寄存器 1 (SPIC1) ............................................................................. 186 12.4.2 SPI 控制寄存器 2 (SPIC2) ............................................................................. 187 12.4.3 SPI 比特率寄存器 (SPIBR) ........................................................................... 188 12.4.4 SPI 状态寄存器 (SPIS) .................................................................................. 189 12.4.5 SPI 数据寄存器 (SPID) .................................................................................190 12.5 功能性描述 ..................................................................................................................... 190 12.5.1 SPI 时钟格式 ..................................................................................................... 191 12.5.2 SPI 中断 ............................................................................................................ 193 12.5.3 模式故障检测 .................................................................................................... 193 第 13 章 IIC 总线 (S08IICV2) 13.1 简介 ............................................................................................................................... 195 13.1.1 特征 ................................................................................................................... 197 13.1.2 操作模式 ........................................................................................................... 197 13.1.3 框图 ................................................................................................................... 197 13.2 外部信号描述 ................................................................................................................. 198 13.2.1 SCL—串行时钟线 ............................................................................................. 198 13.2.2 SDA—串行数据线 ............................................................................................. 198 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 13.3 寄存器定义 ..................................................................................................................... 198 13.3.1 IIC 地址寄存器 (IICA) .................................................................................... 199 13.3.2 IIC 频率分频寄存器 (IICF) ............................................................................. 199 13.3.3 IIC 控制寄存器 (IICC1) .................................................................................. 201 13.3.4 IIC 状态寄存器 (IICS) .................................................................................... 202 13.3.5 IIC 数据输入输出寄存器 (IICD) ..................................................................... 203 13.3.6 IIC 控制寄存器 2 (IICC2) ............................................................................... 204 13.4 功能描述 ........................................................................................................................ 204 13.4.1 IIC 协议 .............................................................................................................204 13.4.2 10- 位地址 ......................................................................................................... 207 13.4.3 一般寻址 ........................................................................................................... 208 13.5 复位 ............................................................................................................................... 208 13.6 中断 ............................................................................................................................... 208 13.6.1 字节传送中断 .................................................................................................... 208 13.6.2 地址检测中断 .................................................................................................... 209 13.6.3 仲裁丢失中断 .................................................................................................... 209 13.7 初始化 / 应用信息 ........................................................................................................... 210 第 14 章 AD 转换器 (S08ADC0V1) 14.1 概述 ............................................................................................................................... 213 14.2 通道分配 ........................................................................................................................ 215 14.2.1 交替时钟 ........................................................................................................... 215 14.2.2 硬件触发器 ........................................................................................................ 216 14.2.3 温度传感器 ........................................................................................................ 216 14.2.4 特点 ................................................................................................................... 217 14.2.5 框图 ................................................................................................................... 217 14.3 外部信号描述 ................................................................................................................. 218 14.3.1 模拟电源 (VDDAD) .......................................................................................... 218 14.3.2 模拟地 (VSSAD) ............................................................................................. 219 14.3.3 参考高电压 (VREFH) ...................................................................................... 219 14.3.4 参考低电压 (VREFL) ....................................................................................... 219 14.3.5 模拟通道输入 (ADx) ...................................................................................... 219 14.4 寄存器定义 ..................................................................................................................... 219 14.4.1 状态和控制寄存器 1 (ADCSC1) .................................................................... 219 14.4.2 状态和控制寄存器 2 (ADCSC2) .................................................................... 221 14.4.3 数据高结果寄存器 (ADCRH) ......................................................................... 222 14.4.4 数据低结果寄存器 (ADCRL) ..........................................................................222 14.4.5 比较值高寄存器 (ADCCVH) ..........................................................................223 14.4.6 比较值低寄存器 (ADCCVL) ........................................................................... 223 14.4.7 配置寄存器 (ADCCFG) .................................................................................223 14.4.8 引脚控制 1 寄存器 (APCTL1) ........................................................................ 224 14.4.9 引脚控制 2 寄存器 (APCTL2) ........................................................................ 225 14.4.10引脚控制 3 寄存器 (APCTL3) ....................................................................... 226 14.5 功能描述 ........................................................................................................................ 227 14.5.1 时钟选择和分频控制 ......................................................................................... 227 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 14.5.2 输入选择和引脚控制 ......................................................................................... 228 14.5.3 硬件触发 ........................................................................................................... 228 14.5.4 转换控制 ........................................................................................................... 228 14.5.5 自动比较功能 .................................................................................................... 230 14.5.6 MCU 等待模式操作 ........................................................................................... 230 14.5.7 MCU stop3 模式操作 ........................................................................................230 14.5.8 MCU stop1 和 stop2 模式操作 ..........................................................................231 14.6 初始化信息 ..................................................................................................................... 231 14.6.1 ADC 模块初始化举例 ........................................................................................231 14.7 应用信息 ........................................................................................................................ 233 14.7.1 外部引脚和安排 ................................................................................................. 233 14.7.2 错误源 ............................................................................................................... 234 第 15 章开发支持 15.1 介绍 ............................................................................................................................... 237 15.1.1 特性 ................................................................................................................... 239 15.2 背景调试控制器 (BDC) .................................................................................................. 239 15.2.1 BKGD 引脚描述 ................................................................................................ 240 15.2.2 通信详细介绍 .................................................................................................... 240 15.2.3 BDC 命令 .......................................................................................................... 242 15.2.4 BDC 硬件断点 ................................................................................................... 245 15.3 片上调试系统 (DBG) ......................................................................................................246 15.3.1 比较器 A 和 B .................................................................................................... 246 15.3.2 总线捕获信息和 FIFO 操作 ............................................................................... 246 15.3.3 流变化信息 ........................................................................................................ 247 15.3.4 标记 vs. 强制断点和触发器 ............................................................................... 247 15.3.5 触发模式 ........................................................................................................... 247 15.3.6 硬件断点 ........................................................................................................... 248 15.4 寄存器定义 ..................................................................................................................... 249 15.4.1 BDC 寄存器和控制位 ........................................................................................249 15.4.2 系统背景调试强制复位寄存器 (SBDFR) ........................................................... 251 15.4.3 DBG 寄存器和控制位 ........................................................................................251 附录 A 电气特性和时序规范 概述................................................................................................................................................257 参数分类........................................................................................................................................257 最大绝对额定值............................................................................................................................257 热特性............................................................................................................................................258 ESD 保护和闭锁抗扰度...............................................................................................................259 DC 特性 .........................................................................................................................................260 电源电流特性................................................................................................................................263 ADC 特性 ......................................................................................................................................266 内部时钟产生模块特性................................................................................................................269 A.9.1 ICG 频率规格 .................................................................................................................270 A.10 AC 特性 .........................................................................................................................................272 A.1 A.2 A.3 A.4 A.5 A.6 A.7 A.8 A.9 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 A.10.1 控制时序 .........................................................................................................................272 A.10.2 定时器 /PWM(TPM) 模块时序 .....................................................................................274 A.11 SPI 特性 ........................................................................................................................................275 A.12 Flash 规格 .....................................................................................................................................278 A.13 EMC 性能.....................................................................................................................................279 附录 B 订购信息和机械制图 B.1 订购信息........................................................................................................................................281 B.2 可订购部件编号系统....................................................................................................................281 B.3 机械图............................................................................................................................................281 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第1章 1.1 绪论 概述 MC9S08AC16 系列属于 8 位微控制单元 (MCU),是高性能低成本的 HCS08 家族中的成员。这个家族 中的所有的 MCU 都使用 HCS08 核,并且可以使用多种模块、内存容量、内存类型和封装类型。 注意 MC9S08AC16 和 MC9S08AC8 面向消费和工业应用。 MC9S08AW16 和 MC9S08AW8 面向汽车电子应用。 表 1-1 概括了各种 MCU 性能配置。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 1-1. MCU 的特征和封装 消费工业类的 “AC”系列 性能 MC9S08AC16 MC9S08AC8 flash 容量 (字节) 16K 8K 内存容量 (字节) 1024 768 引脚数量 48 44 42 48 44 42 ADC 通道 8 8 6 8 8 6 TPM1 通道 4 4 2 4 4 2 TPM2 通道 2 2 2 2 2 2 TPM3 通道 2 2 2 2 2 2 KBI 引脚 7 6 4 7 6 4 GPIO 引脚 38 34 22 38 34 22 适用于消费工业领域 yes yes 适用于汽车领域 no no 汽车电子的 “AW”系列 性能 MC9S08AW16 MC9S08AW8 flash 容量 (字节) 16K 8K 内存容量 (字节) 1024 768 引脚数量 48 44 42 48 44 42 ADC 通道 8 8 6 8 8 6 TPM1 通道 4 4 2 4 4 2 TPM2 通道 2 2 2 2 2 2 - - - - - TPM3 通道 1.2 KBI 引脚 7 6 4 7 6 4 GPIO 引脚 38 34 22 38 34 22 适用于消费工业领域 no no 适用于汽车领域 yes yes MCU 结构框图 MC9S08AC16 系列 MCU 的结构框图如图 1-1 所示。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 10 位 A/D 转换模块 (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A VDDAD VSSAD VREFL VREFH PORT B Running H/F 2 PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 串行外设接口模块 (SPI) 16K 或 8K 片内 Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 1-1. MC9S08AC16 结构框图 表 1-2 列举了片上模块的版本。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 1-2. 片上模块版本 模块 版本 模数转换 (ADC) 1 内部时钟发生器 (ICG) 4 内部 IIC 总线 (IIC) 2 键盘中断 (KBI) 1 串行通信接口 (SCI) 4 串行外设接口 (SPI) 3 定时器脉宽调制 (TPM) 3 中央处理单元 (CPU) 2 系统时钟分配 1.3 ICGERCLK TPMCLK SYSTEM CONTROL LOGIC RTI FFE TPM1 TPM2 IIC1 SCI1 SCI2 SPI RAM flash ³2 ICG XCLK** COP ICGOUT ³2 1 kHz BUSCLK ICGLCLK* CPU BDC TPM3*** ADC 1 ICGLCLK 是 MC9S08 系列的 BDC 的可选时钟源。 XCLK 是固定频率时钟。 3 TPM3 在 S9S08AWxxA 设备中不可用。 4 ADC 有最高最低频率要求。参见电气附录和 ADC 一章。 5 Flash 在写入和擦除时有频率要求。参见电气附录。 2 图 1-2. 系统时钟分配图 MCU 内部的一些模块可以选择时钟源。图 1-2 表示了一个简化的时钟接线图。 ICG 提供了时钟源: • ICGOUT 是 ICG 模块的输出,它是下列各项中的一个: • 外部的晶体振荡器 • 外部的时钟脉冲源 • 锁频环子模块中数控振荡器 (DCO)的输出 • ICG 内的控制位决定它与那个时钟源相连 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 • FFE 是在 ICG 里面产生的一个控制信号。如果 ICGOUT 的频率 >4* (ICGERCLK 的频率,该信号为 逻辑 1,固定频率的时钟信号是 ICGERCLK/2。否则固定频率的时钟信号是 BUSCLK • ICGLCLK——在总线时钟比较慢的系统中,开发工具可以选择内部自发生时钟源 (~8MHz)来加速 系统的 BDC 通信 • ICGERCLK——外部引用时钟可以作为实时中断的时钟源,也可以作为 ADC 模块的 ALTCLK 的输入 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第2章 2.1 引脚及其连接 简介 本章描述了连接到封装引脚上的信号,包括管脚图,信号表和信号的具体描述。 2.2 MCU 的管脚分配 37 PTG4/KB1IP4 38 VREFH 39 VREFL 40 BKGD/MS 41 PTG5/XTAL 42 PTG6/EXTAL PTC4 1 43 VSS 44 PTC0/SCL1 45 PTC1/SDA1 46 PTC2/MCLK 47 PTC3/TxD2 48 PTC5/RxD2 图 2-1 表示了 MC9S08AC16 系列 MCU 的 48 引脚 QFN 引脚排列。 36 PTG3/KBIP3 IRQ/TPMCLK 2 35 PTD3/KBIP6/AD1P11 RESET 3 34 PTD2/KBIP5/AD1P10 PTF0/TPM1CH2 4 33 VSSAD PTF1/TPM1CH3 5 32 VDDAD PTF4/TPM2CH0 6 31 PTD1/AD1P9 48-Pin QFN PTA2 24 25 PTA7 PTA1 23 PTE3/TPM1CH1 12 PTA0 22 26 PTB0/TPM3CH0/AD1P01 PTG2/KBIP2 21 PTE2/TPM1CH0 11 PTG1/KBIP1 20 27 PTB1/TPM3CH1/AD1P11 PTG0/KBIP0 19 PTE1/RxD1 10 VDD 18 28 PTB2/AD1P2 VSS 17 PTE0/TxD1 9 PTE7/SPSCK1 16 29 PTB3/AD1P3 PTE6/MOSI1 15 PTF6 8 PTE5/MISO1 14 30 PTD0/AD1P8 PTE4/SS1 13 PTF5/TPM2CH1 7 图 2-1. MC9S08AC16 系列 48 引脚 QFN 封装1 图 2-2 为 MC9S08AC16 系列设备的 44 引脚 LQFP 引脚排列。 1. S9S08AwxxA 没有提供 TPM3。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # PTC2/MCLK PTC1/SDA1 PTC0/SCL1 VSS PTG6/EXTAL PTG5/XTAL BKGD/MS VREFL 42 41 40 39 38 37 36 35 PTC4 1 VREFH PTC3/TxD2 PTC5/RxD2 43 34 44 33 PTG3/KBIP3 IRQ/TPMCLK 2 32 PTD3/KBIP6/AD1P11 RESET 3 31 PTD2/KBIP5/AD1P10 PTF0/TPM1CH2 4 30 VSSAD PTF1/TPM1CH3 5 29 VDDAD 28 PTD1/AD1P9 44-Pin LQFP PTF4/TPM2CH0 6 PTF5/TPM2CH1 7 27 PTD0/AD1P8 PTE0/TxD1 8 26 PTB3/AD1P3 PTE1/RxD1 9 25 PTB2/AD1P2 PTE2/TPM1CH0 10 24 PTB1/TPM3CH1/AD1P11 PTE3/TPM1CH1 11 13 14 15 16 17 18 19 20 PTA0 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 VDD VSS PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTA1 22 12 PTE4/SS1 1 23 PTB0/TPM3CH0/AD1P0 21 图 2-2. MC9S08AC16 系列 44 引脚 LQFP 封装1 图 2-3 为 MC9S08AC16 系列设备的 32 引脚 LQFP 引脚排列。 1. S9S08AwxxA 没有提供 TPM3。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 PTC0/SCL1 VSS PTG6/EXTAL PTG5/XTAL BKGD/MS VREFL VREFH PTC1/SDA1 Running H/F 2 31 30 29 28 27 26 25 32 IRQ/TPMCLK 1 24 PTD3/AD1P11/KBIP6 RESET 2 23 PTD2/AD1P10/KBIP5 PTF4/TPM2CH0 3 22 VSSAD PTF5/TPM2CH1 4 21 VDDAD PTE0/TxD1 5 20 PTB3/AD1P3 PTE1/RxD1 6 19 PTB2/AD1P2 PTE2/TPM1CH0 7 18 PTB1/TPM3CH1/AD1P11 PTE3/TPM1CH1 8 17 PTB0/TPM3CH0/AD1P01 11 12 13 14 PTE6/MOSI1 PTE7/SPSCK1 VSS VDD PTG0/KBIP0 16 PTG1/KBIP1 10 15 PTE5/MISO1 32-Pin LQFP PTE4/SS1 9 图 2-3. MC9S08AC16 系列 32 引脚 LQFP 封装 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 2-1. 各封装的引脚列表 管脚号 48 1 44 1 最低 最高 48 Alt 2 26 — PTC4 2 2 1 3 3 2 44 IRQ 23 最低 最高 Alt 1 Alt 2 1 AD1P0 1 AD1P1 TPM3CH0 TPMCLK 27 24 18 PTB1 TPM3CH1 RESET 28 25 19 PTB2 AD1P2 26 20 PTB3 AD1P3 4 4 — PTF0 TPM1CH2 29 5 5 — PTF1 TPM1CH3 30 27 — PTD0 AD1P8 6 6 3 PTF4 TPM2CH0 31 28 — PTD1 AD1P9 7 7 4 PTF5 TPM2CH1 32 29 21 VDDAD 33 30 22 VSSAD 8 — — PTF6 9 8 5 PTE0 TxD1 34 31 23 PTD2 AD1P10 KBIP5 10 9 6 PTE1 RxD1 35 32 24 PTD3 AD1P11 KBIP6 11 10 7 PTE2 TPM1CH0 36 33 — PTG3 TPM1CH1 37 — — PTG4 SS1 38 34 25 VREFH 26 VREFL KBIP3 KBIP4 12 11 8 PTE3 13 12 9 PTE4 14 13 10 PTE5 MISO1 39 35 15 14 11 PTE6 MOSI1 40 36 27 BKGD MS 37 28 PTG5 XTAL EXTAL 16 15 12 PTE7 SPSCK1 41 17 16 13 VSS 42 38 29 PTG6 18 17 14 VDD 43 39 30 VSS 19 18 15 PTG0 KBIP0 44 40 31 PTC0 SCL1 41 32 PTC1 SDA1 20 19 16 PTG1 KBIP1 45 21 20 — PTG2 KBIP2 46 42 — PTC2 MCLK 22 21 — PTA0 47 43 — PTC3 TxD2 23 22 — PTA1 48 44 — PTC5 RxD2 24 — — PTA2 25 — — PTA7 1 S9S08AwxxA 没有提供 TPM3 表 2-2. 引脚功能参考 信号功能 举例 参考 端口引脚 PTAx、 PTBx 第 6 章 “并行输入输出” SPI SS、 MISO、 MOSI、 SPSCK 第 12 章 “SPI” 键盘中断 KBIPx 第 9 章 “键盘中断” 定时器 /PWM TCLK、 TPMCHx 第 10 章 “定时器 /PWM IIC SCL、 SDA 第 13 章 “内部集成电路总线” 内部集成电路 TxD、 RxD 第 11 章 “串行通信接口” 串行通信接口 EXTAL、 XTAL 第 8 章 “内部时钟发生器” MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 2-2. 引脚功能参考 ( 续 ) 2.3 信号功能 举例 参考 晶振 / 时钟 ADPx 第 14 章 “AD 转换转换器” 电源 / 核 BKGD/MS、 VDD、 VSS 第 2 章 “引脚和连接” 复位和中断 RESET、 IRQ 第 5 章 “复位,中断和系统配置” 推荐的系统连接 图 2-4 显示了适用于几乎所有 MC9S08AC16 系列应用系统典型的引脚连接。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # VREFH CBYAD 0.1 μF PTA0 VSSAD VREFL VDD VDD 系统供电 + 5V MC9S08AC16 VDDAD CBLK + 10 μF PORT A CBY 0.1 μF PTA1 PTA2 PTA7 PTB0/AD1P0/TPM3CH0 NOTE 4 VSS (x2) PORT B PTB1/AD1P1/TPM3CH1 NOTE 4 PTB2/AD1P2 PTB3/AD1P3 注1 RF C1 RS C2 X1 PTC0/SCL1 XTAL 注2 PTC1/SDA1 EXTAL 注2 PORT C PTC2/MCLK PTC3/TxD2 PTC4 BACKGROUND HEADER PTC5/RxD2 VDD BKGD/MS PTD0/AD1P8 PORT D VDD 手工复位(可选) RESET 注3 VDD 4.7 kΩ– 10 kΩ 异步中断 输入 0.1 μF PTD1/AD1P9 PTD2/AD1P10/KBIP5 PTD3/AD1P11/KBIP6 4.7 kΩ–10 kΩ 0.1 μF 应用系统 的 I/O 和 外围设备 接口 PTE0/TxD1 PTE1/RxD1 PTE2/TPM1CH0 TPMCLK/IRQ 注3 PORT E PTE3/TPM1CH1 PTE4/SS1 PTE5/MISO1 PTE6/MOSI1 PTE7/SPSCK1 PTG0/KBIP0 PTG1/KBIP1 PTG2/KBIP2 PTG3/KBIP3 PORT G PTG4/KBIP4 PTG5/XTAL PTF0/TPM1CH2 PORT F PTF1/TPM1CH3 PTF4/TPM2CH0 PTF5/TPM2CH1 PTF6 PTG6/EXTAL 注意 :: 1 如果使用内部振荡器,这是不需要的。 2 XTAL 和 EXTAL 分别是 PTG5、 PTG6。 3 为了得到较好的电磁兼容性能,推荐将 RESET 和 IRQ 接上 RC 过滤器。 4 S9S08AwxxA 没有提供 TPM3。 图 2-4. 基本系统连接 下面将详细介绍系统连接。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 2.3.1 电源 (VDD、 2 × VSS、 VDDAD 和 VSSAD) VDD 和 VSS 是 MCU 的主要供电引脚。该电压源对所有的输入 / 输出 (I/O) 缓冲电路和内部电压调节器供 电。内部电压调节器向 CPU 和其他 MCU 内部电路提供稳定的低压源。 通常应用系统有两个单独的电容器和电源引脚相连。一个大容量电解电容器,如 10 μF 的钽电容,用来 为全体系统提供大电流充电存储,和一个 0.1 μF 的陶瓷旁路电容,尽可能的靠近 MCU 电源引脚 VDD 和 VSS,用以抑制高频噪声。 MC9S08AC16 还有一个次要 VSS 引脚。这个引脚连接到系统地或经过一个低阻抗 连接到主要的 VSS 引脚。 VDDAD 和 VSSAD 也是 MCU 的电源引脚。该电压源给 ADC 模块提供电源。一个 0.1 μF 的陶瓷旁路电容 应尽可能靠近 MCU 的这两个电源引脚,用来抑制高频噪声。 2.3.2 振荡器 (XTAL 与 EXTAL) 复位后, MCU 采用内部产生的频率 (自时钟模式)相当于 8MHz 晶体频率。这个频率源在复位启动时使 用,也可以作为时钟源以避免长时间的晶振启动延时。 MCU 也包含了一个可微调的内部时钟产生器 (ICG) 模块,这个模块用来运行 MCU。关于 ICG 的更多信息参考第八章 “内部时钟产生器 (S08ICGV4)”。 MCU 中的振荡器为传统的皮尔斯振荡器,它可容纳一个晶体或陶瓷谐振器,其频率范围可通过 ICGC1 寄存器中的 RANGE 位在两个频率范围里进行选择。除了晶体或陶瓷谐振器,也可采用外部振荡器和 EXTAL 输入引脚相连。 下面的讨论将参考图 2-4。 RS( 如果使用 ) 和 RF 应该是低电感的电阻,如碳合成物电阻。绕线电阻和一 些金属薄膜电阻有很大的电感值。 C1 和 C2 应该是为高频应用专门设计的高品质陶瓷电容。 RF 在晶振启动时被用来提供一个偏压电路以保持 EXTAL 输入在其线性范围内,它的值通常不是关键的。 典型的系统使用 1 M Ω到 10 M Ω,对湿度和低值减小增益很敏感, ( 在极端地情况下 ) 可能导致无法启动。 C1 和 C2 通常在 5pF 到 25pF 的范围内,并按照要求和特定的晶体和谐振器相匹配。在给 C1 和 C2 选定 大小时一定要考虑到 PCB 板电容和 MCU 引脚电容。晶体制造商通常指定一个负载电容,该电容值应等于 C1 和 C2 的串联值, C1 和 C2 一般选用同样大小的电容。作为首选的近似值,每个振荡器引脚 (EXTAL 和 XTAL) 与 PCB 的组合电容约为 10pF。 2.3.3 复位 复位引脚是一个有上拉电阻的专用引脚。它有输入滞后,一个大的电流输出驱动,没有输出斜率控制。 因为有内部上电复位和低压复位电路,所以通常不需要外部的复位电路。这个引脚通常连接到标准 6 引脚的 背景调试连接器上,这样开发系统能够直接复位 MCU 系统。如果需要,可以通过附加一个简单的接地开关手 动复位 ( 下拉复位引脚强制复位 )。 每当有复位产生 ( 无论来自外部信号还是来自内部系统 ),复位引脚被拉低约 34 总线周期。复位电路解 析复位的原因并且在复位状态寄存器 (SRS) 中设置相应的位。 在对 EMC 敏感的应用中,在复位引脚上推荐一个外部的 RC 过滤器。参见图 2-4 的例子。 2.3.4 背景 / 模式选择 (BKGD/MS) 在复位时,背景 / 模式选择 (BKGD/MS) 引脚的功能是模式选择。在复位升起后,这个引脚立即变为背景 脚,可用作背景调试。作为背景 / 模式选择引脚时,这个引脚包括一个内部上拉设备,输入滞后,一个标准的 输出驱动和无输出斜率控制。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 若这个引脚没有连接,则 MCU 在复位的上升沿进入正常的操作模式。如果调试系统被连接到 6 引脚的标 准背景调试接口,它可以在复位上升沿时保持 BKGD/MS 为低,强制 MCU 进入背景模式。 BKGD 引脚主要被背景调试控制器 (BDC) 使用,它使用约定好的协议进行通信,该协议使用目标 MCU 的 16 个 BDC 时钟周期来传送每一位。目标 MCU 的 BDC 时钟频率可以和总线时钟频率一样快,因此不要将 任何大的电容和 BKGD/MS 引脚相连,那会干扰背景串行通信。 虽然 BKGD 引脚是一个伪开漏引脚,但是背景调试通信协议提供了简短的,主动驱动,高加速脉冲以确 保快速上升时间。电缆上的小电容和内部上拉设备的绝对值对决定 BKGD 引脚上上升和下降时间几乎不起任 何作用。 2.3.5 ADC 参考引脚 (VREFH 与 VREFL) VREFH 和 VREFL 分别对应输入到 ADC 模块的参考高电压和参考低电压。 2.3.6 外部的中断引脚 (IRQ) IRQ 引脚既是 IRQ 中断的输入源也是 BIH 和 BIL 指令的输入。如果没有使能 IRQ,该引脚不会产生任何作 用。 在对 EMC 敏感的应用中,在复位引脚上推荐一个外部的 RC 过滤器。参见图 2-4 的例子。 2.3.7 通用 I/O 及外设端口 其他的引脚分配给通用 I/O 和片上的外围功能,例如定时器和串行 I/O 系统。一旦复位,所有这些引脚都 设定为高阻通用输入口,内部上拉设备无效。 注意 为了避免来自浮动输入引脚上的额外的电流消耗,应用程序中的复位初始化程序应 使能片上上拉设备或将闲置引脚的方向改变为输出,使引脚不浮动。 有关使用这些引脚作为通用 I/O 引脚的信息,参考第六章 “并行输入输出”。或者有关片上外设系统如何 以及何时用这些引脚的信息,请参考表 2-2 中适当的章节。 当一个片上外设系统使用一个引脚时,即使外设模块通过控制引脚输出缓冲使能来控制引脚方向,但是 数据方向控制位仍决定从端口数据寄存器读出的是什么。参考第 6 章 并行输入和输出获取更多信息。 只要引脚作为输入,即使这些引脚被片上外设模块控制,但是它们的上拉使能位仍然可以控制这些引脚 是否有片上的上拉设备。当 PTD3, PTD3 和 PTG4 引脚被 KBI 模块控制并且被设定为上升沿 / 高电平敏感 时,上拉使能控制位使能下拉设备而不是上拉设备。相似的,当 IRQ 作为 IRQ 引脚而且被规定为检测上升 沿,上拉使能控制位使能下拉设备而不是使能上拉设备。 注意 当一个可选的功能第一次被使能时,模块可能会得到一个伪边沿。用户软件应该在 中断使能前清除任何相关的标志位。当多个模块被使能,表 2-1 说明了优先级关 系。最高优先级的模块将会控制引脚。在引脚上有一个较低优先级的功能下,选择 这个引脚更高优先级的功能会产生伪边沿给较低优先级模块。建议在使能一个模块 前关闭其他共用同一引脚的所有的模块。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第3章 工作模式 简介 3.1 本章讲述了 MC9S08AC16 系列的工作模式,并描述了如何进入和退出各个模式及各个模式的功能。 特征 3.2 • 普通用户在运行模式下操作 • 等待模式: • • CPU 关闭以节能 • 系统时钟仍然运行 • 维持完全的电压稳压 停止模式: • 系统时钟停止;电压调节器待命 • 停止 2:内部电路的部分断电, RAM 内容保留 • 停止 3:所有内部电路供电,以快速恢复 运行模式 3.3 这是 MC9S08AC16 的正常操作模式。当 BKGD/MS 在复位的上升沿时是高电平,此模式被选择。在此 模式下复位之后, CPU 从存储器中的 $FFFE:$FFFF 处取出程序执行的起始地址,执行内存中的代码。 背景调试模式 3.4 背景调试模式的功能由 HCS08 核中的背景调试控制器 (BDC, Background Debug Controller) 管理。 BDC 和片上调试模块 (DBG) 一起,提供了在软件运行时分析 MCU 的操作的方法。 可通过以下五种方式进入背景调试模式: • BKGD/MS 引脚在复位的上升沿时是低电平 • 从 BKGD 引脚接收到 BACKGROUND 命令 • 当执行 BGND 指令时 • 当遇到 BDC 断点时 • 当遇到 DBG 断点时 进入背景调试模式后, CPU 被置于挂起状态,等待串行背景命令而不是执行用户应用程序的指令。 背景命令有两种类型: • • 非插入命令,定义为可在用户程序运行时发出的指令。当 MCU 在运行模式下时,非插入命令可经由 BKGD 引脚发出。当 MCU 在背景调试模式下也可执行非插入命令。非插入命令包括: • 存储器访问命令 • 存储器访问状态命令 • BDC 寄存器访问命令 • BACKGROUND 命令 背景命令,只有当 MCU 在背景调试模式下才可以执行。背景命令包括以下命令: MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # • 读写 CPU 寄存器 • 单步调试指令 • 离开背景调试模式,返回用户应用程序 (GO) 背景调试模式通常用于在 MCU 第一次在运行模式下运行之前向 flash 存储器写入一个引导程序 (bootloader) 或者用户应用程序。当 MC9S08AC16 从 Freescale 出厂时,除非特别指明, flash 存储器默认为 擦除的,在 flash 存储器初次编程之前,由于 flash 存储器中没有程序,因此在运行模式下没有程序可以运行。 背景调试模式也可用于在 flash 存储器已经写入程序后擦除和重新写入程序。 更多有关背景调试模式的信息可见第十五章开发支持部分。 等待模式 3.5 执行到 WAIT 指令时,即可进入等待模式。在执行 WAIT 指令后, CPU 进入没有时钟的低功耗状态。当 CPU 进入等待模式时,CCR 寄存器里面的 I 位将被清零并允许中断。当有中断请求发生,CPU 就会脱离等待 模式,继续正常运行,从相应的中断服务程序栈操作开始运行。 在等待模式下,有些些背景调试命令的使用限制,只有 BACKGROUND 命令和存储器访问状态命令可 用。虽然存储器访问状态命令不允许访问存储器,但是它会报出错误来说明 MCU 在停止模式或等待模式。 BACKGROUND 命令可用于使 MCU 从等待模式唤醒进入背景调试模式。 停止模式 3.6 在系统选择寄存器中的 STOPE 位置位时,当执行到一个 STOP 指令就进入了两种停止模式中的一种。 在这两种停止模式中,所有的内部时钟被停止。如果 STOPE 位在 CPU 执行 STOP 指令时没有置位, MCU 将不会进入任何停止模式,并强制产生一个非法指令复位。可以通过设置 SPMSC2 里的相应标志位来选择进 入哪种停止模式。 HCS08 设备被设计成低压操作 (1.8 V 到 3.6 V),也包括停止模式 1。 MC9S08AC16 系列设备不包括停 止模式 1。 表 3-1 总结了 MCU 在每种停止模式下的行为。 表 3-1. 停止模式下的行为 模式 1 3.6.1 PPDC CPU,数字 RAM 外设, flash 时钟 模块 ADC 电压调 节器 I/O RTI STOP2 1 关 待命 关 不可用 待命 维持状态 可选开 STOP3 0 待命 待命 关1 可选开 待命 维持状态 可选开 STOP3 模式下晶振可以设置为运行,参见 ICG 寄存器。 Stop2 模式 STOP2 模式提供非常低的待命电压能保持 RAM 内容和所有 I/O 端口状态的待命功耗。为了进入 STOP2 模式,在执行 STOP 指令前必须选择停止模式 2 (PPDC=1)和使能停止模式 (STOPE=1)。另外, LVD 在 停止模式 (LVDSE=LVDE=1)下不能操作。如果 LVD 在停止模式下使能,不管 PPDC 的状态是什么, MCU 在执行 STOP 指令后都会进入停止模式 3。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 进入 STOP2 模式之前,用户可以在 RAM 中保存 I/O 口寄存器的内容,和其它想在退出 STOP2 模式后 恢复的寄存器的内容。在离开 STOP2 模式后,这些内容可在闭锁的端口开放之前被用户软件恢复。 当 MCU 处于 STOP2 模式下时,所有由电压调节器供电的内部电路都是关闭的,除了 RAM。电压调节 器处于低功耗待命状态,就像 ADC 模块一样。进入 STOP2 模式后, I/O 端口的状态被锁定。这些状态将在 STOP2 模式中被保持,直到在退出 STOP2 模式后 SPMSC2 寄存器中的 PPDACK 标志位被写 1。 通过 MCU 的唤醒端口 (RESET 或者 IRQ/TPMCLK) 或者 RTI 中断可离开 STOP2 模式。不管在进入 STOP2 之前 IRQ/TPMCLK 是如何设置的,它在 STOP2 模式下总是低电平输入有效。 当从 STOP2 模式中被唤醒后, MCU 将以类似上电复位 (POR)的方式启动,但是端口状态仍然保持锁 定。 CPU 将取复位向量。系统和所有外设将处于它们的默认复位状态,且必须被初始化。 从 STOP2 模式中唤醒之后 SPMSC2 寄存器中的 PPDF 标志位将置位。该标志位也许用于指示用户代码 执行 STOP2 恢复程序。 PPDF 保持置位并且 I/O 端口状态保持闭锁,直到 SPMSC2 寄存器中的 PPDACK 标 志位写 1。 为保持设置为通用 I/O 引脚的状态,在向 PPDACK 标志位写入之前,用户必须用存储在 RAM 中的 I/O 端口寄存器中的内容来恢复端口寄存器。如果在写入 PPDACK 之前,没有从 RAM 恢复端口寄存器,当 I/O 端口闭锁打开时,寄存器中的内容将是它们的复位默认状态的值, I/O 端口转换成复位状态。 对于设置为外设 I/O 口的引脚,在向 PPDACK 标志位写入之前,用户必须重新配置外设模块的接口引 脚。如果在写入 PPDACK 之前,外设模块不可用,当 I/O 端口闭锁打开时,引脚将被它们的相关端口控制寄 存器控制。 3.6.2 Stop3 模式 为了进入 STOP3 模式,在执行 STOP 指令前必须选择停止模式 3 (PPDC=1)和使能停止模式 (STOPE=1)。进入 STOP3 模式后,所有 MCU 的时钟、包括振荡器本身都停止了。时钟模块 (ICG),电压 调节器和 ADC 都在待命状态。所有内部寄存器和逻辑,也包括 RAM 的内容都被保持。 I/O 端口的状态不像 STOP2 模式中一样被锁定。取而代之的是,使用内部逻辑的状态控制需要保持的引脚的特点来保持它们的状 态。 退出 STOP3 模式的方法有:复位 RESET,或者一个由实时中断 (RTI), LVD 系统, ADC, IRQ, KBI 或 SCI 产生的中断。 如果通过 RESET 退出 STOP3 模式, MCU 将复位,并从复位向量处执行。如果通过异步中断或实时中 断退出, MCU 将从相应的中断向量处执行。 实时中断的单独时钟脉冲源 ( 约等于 1KHz) 允许在没有额外部件的情况下将 MCU 从 STOP2 或 STOP3 模式唤醒。当 RTIS2:RTIS1:RTIS0=0:0:0,实时中断功能和 1 kHz 的时钟源不可用。当 1 kHz 的时钟源不可 用时,功耗更低,但此种情况下实时中断不可以将 MCU 从 STOP 模式中唤醒。 3.6.3 停止模式下激活 BDM 使能 如果 BDCSCR 寄存器里的 ENBDM 标志位被置位,从运行模式进入背景调试模式是可能的。 BDCSCR 寄存器将在第十五章开发支持部分介绍。如果当 CPU 执行 STOP 指令时, ENBDM 被置位,这样当 MCU 进 入到停止模式后背景调试逻辑的系统时钟仍然在工作,所以背景调试的通信仍然是可以的。另外电压调节器没 有进入低功耗待命状态,而是在满负荷工作中。如果用户尝试通过置 ENBDM 位进入 STOP2 模式, MCU 会 进入到 STOP3 模式而不是 STOP1 或 STOP2 模式。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 大部分背景命令在停止模式下不可用。存储器存取状态指令不允许存储器存取,但它们会报告一个错误 标志,标志 MCU 在停止或等待模式。如果 ENBDM 置位, BACKGROUND 指令可以用于将 MCU 从停止模 式中唤醒进入背景调试模式。一旦设备进入背景调试模式,所有背景命令都可用。表 3-2 总结了当背景调试模 块使能时 MCU 在 STOP 模式下的行为。 表 3-2. MCU 在启用背景调试模块的 STOP 模式下的行为 模式 PPDC CPU,数字 外设, flash RAM ICG ADC 电压调节 器 I/O 引脚 RTI STOP3 任意 待命 待命 活跃 不可用 活跃 状态保持 可选开 停止模式下 LVD 使能 3.6.4 当供应电压下降到 LVD 电压值以下时, LVD 系统能够产生中断或复位。当 CPU 执行到 STOP 指令时, 如果此时已经通过置位 SPMSC1 寄存器中的 LVDE 和 LVDSE 位使能 LVD,则在停止模式下电压调节器仍然 保持工作。当 LVD 可用时 (LVDSE=1),用户尝试进入 STOP2 模式, MCU 会进入到 STOP3 模式而不是 STOP1 或 STOP2 模式。表 3-3 总结了在 LVD 使能时 MCU 在 STOP 模式下的行为。 表 3-3. MCU 在启用 LVD 的 STOP 模式下的行为 模式 PPDC CPU、数字外设、 flash RAM ICG ADC 电压调节器 I/O RTI STOP3 任意 待命 待命 关闭 可选开 活跃 状态保持 可选开 停止模式下的片上外设模块 3.6.5 当 MCU 进入任何停止模式,内部外设模块的系统时钟会停止。即使在例外情况下 (ENBDM=1),背景调 试逻辑的时钟继续工作,外设的时钟也被停止以减少功耗。见 3.6.2 节 Stop3 模式以获得停止模式下系统行为 的更多信息。 • • I/O 引脚: • 当 MCU 在 STOP3 模式下,所有 I/O 端口状态保持不变。 • 如果 MCU 配置为进入 STOP2 模式,所有 I/O 端口状态在进入停止模式前锁定。 存储器: • 所有 RAM 和寄存器内容在 STOP3 模式下都是被保存的。 • 从 STOP2 模式下唤醒后,所有寄存器都将复位,但 RAM 内容保存,端口状态保持锁定直到 PPDACK 位被写入。用户可以在进入 STOP2 模式之前,将寄存器的内容保存在 RAM 中,并在离 开 STOP2 模式后恢复这些数据。 • Flash 的内容是非易失的,在任何停止模式下都会保存。 • ICG——在 STOP3 模式下, ICG 进入低功耗待命状态。当 ICG 在待命状态时,通过设置适当的控制 位 (OSCSTEN),振荡器可以保持工作。在 STOP2 模式下, ICG 是关闭的。即使 OSCSTEN 使能, 振荡器也不能在 STOP2 下工作。MCU 从 STOP2 模式退出时从停止模式中唤醒,TPM 模块被复位并 且必须被重新初始化。 • TPM——当 MCU 进入停止模式时, TPM1 和 TPM2 模块的时钟停止。模块停止工作。如果 MCU 配 置成进入 STOP2 模式,当从停止模式唤醒以后 TPM 模块被复位并且必须被重新初始化。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 • ADC——当 MCU 进入停止模式时,除非异步时钟源, ADACK 无效,否则 ADC 将进入低功耗待命状 态。如果 MCU 配置为进入 STOP2,当从停止模式唤醒以后 ADC 模块被复位并且必须被重新初始 化。 • KBI——在 STOP3 模式中, KBI 引脚仍然可用,并且作为一个中断源可以将 MCU 从 STOP3 模式唤 醒。 KBI 在 STOP2 中不可用,当从 STOP 模式中唤醒时, KBI 不能使用必须重新初始化。 • SCI——当 MCU 进入停止模式时, SCI1 和 SCI2 的时钟停止。模块停止操作。如果 MCU 配置为进入 STOP2 或者 STOP1 模式,当从停止模式唤醒以后 SCI 模块被复位并且必须被重新初始化。 • SPI——当 MCU 进入停止模式时, SPI 的时钟停止。模块停止操作。如果 MCU 配置为进入 STOP2 模式,当从停止模式唤醒以后 SPI 模块被复位并且必须被重新初始化。 • IIC——当 MCU 进入停止模式时, IIC 的时钟停止。模块停止操作。如果 MCU 配置为进入 STOP2 模 式,当从停止模式唤醒以后 IIC 模块被复位并且必须被重新初始化。 • 电压调节器——当 MCU 进入任何停止模式时,电压调节器将进入低功耗待命状态,除非 LVD 在停止 模式下使能或者 BDM 使能。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第4章 片上存储器 MC9S08AC16 系列存储映像简介 4.1 图 4-1 描述了 MC9S08AC16 系列 MCU 的存储映像, MC9S08AC16 的片上存储器由 RAM、非易失的 flash 存储器、输入 / 输出 (I/O) 和控制 / 状态寄存器组成。 这些寄存器分成三组: • 直接页寄存器 (0x0000-0x006F) • 高地址页寄存器 (0x1800-0x185F) • 非易失性寄存器 (0xFFB0-0xFFBF) 0x0000 0x006F 0x0070 0x046F 0x0470 直接页寄存器 RAM 1024 字节 无效区域 0x17FF 0x1800 5008 字节 0x0000 0x006F 0x0070 0x036F 0x0370 0x046F 0x0470 直接页寄存器 RAM 768 字节 保留 256 字节 无效区域 5008 字节 0x17FF 0x1800 高页寄存器 高页寄存器 0x185F 0x1860 0x185F 0x1860 无效区域 无效区域 42,912 字节 42,912 字节 0xBFFF 0xC000 0xBFFF 0xC000 保留 8192 字节 0xDFFF 0xE000 flash flash 16,384 字节 8192 字节 0xFFFF MC9S08AC16 和 MC9S08AW16 0xFFFF MC9S08AC8 和 MC9S08AW8 图 4-1. MC9S08AC16 系列内存映像 4.1.1 复位和中断向量分配 表 4-1 描述了复位与中断向量的地址分配,至于其他 HCS08 系列 MCU 的向量名字和地址分配,请参考 相关的数据手册。表中所示向量名是 Freescalse 公司提供的 MC9S08AC16 文档中给出的名字。有关复位、 中断、中断优先权和中断屏蔽控制的详细信息,请参阅第 5 章 复位、中断和系统配置。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 4-1. 复位和中断向量表 1 地址 ( 高 / 低 ) 向量 向量名称 0xFFC0:FFC1 ↑ ↓ 0xFFC4:FFC5 不用的向量空间 ( 可用于用户程序 ) — 0xFFC6:FFC7 TPM31 溢出 Vtpm3ovf 0xFFC8:FFC9 TPM31 通道 1 Vtpm3ch1 0xFFCA:FFCB TPM31 通道 0 Vtpm3ch0 0xFFCC:FFCD RTI1 Vrti 0xFFCE:FFCF IIC1 Viic1 0xffD0:FFD1 ADC 模数转换 VADC 0xFFD2:FFD3 KBI Vkeyboard1 0xFFD4:FFD5 SCI2 发送 Vsci2tx 0xFFD6:FFD7 SCI2 接收 Vsci2rx 0xFFD8:FFD9 SCI2 错误 Vsci2err 0xFFDA:FFDB SCI1 发送 Vsci1tx 0xFFDC:FFDD SCI1 接收 Vsci1rx 0xFFDE:FFDF SCI1 错误 Vsci1err 0xFFE0:FFE1 SPI VSPI 0xFFE2:FFE3 TPM2 溢出 Vtpm2ovf 0xFFE4:FFE5 TPM2 通道 1 Vtpm2ch1 0xFFE6:FFE7 TPM2 通道 0 Vtpm2ch0 0xFFE8:FFE9 TPM1 溢出 Vtpm1ovf 0xFFEA:FFEB 未使用 — 0xFFEC:FFED 未使用 — 0xFFEE:FFEF TPM1 通道 3 Vtpm1ch3 0xFFF0:FFF1 TPM1 通道 2 Vtpm1ch2 0xFFF2:FFF3 TPM1 通道 1 Vtpm1ch1 0xFFF4:FFF5 TPM1 通道 0 Vtpm1ch0 0xFFF6:FFF7 ICG Vicg 0xFFF8:FFF9 低电压检测 Vlvd 0xFFFA:FFFB IRQ Virq 0xFFFC:FFFD SWI Vswi 0xFFFE:FFFF RESET Vreset S9S08AWxxA 中不提供 TPM3 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 寄存器地址和位分配 4.2 MC9S08AC16 系列中的寄存器分为以下三组: • 直接页寄存器位于存储空间前 112 字节处,所以可由高效的直接寻址指令访问。 • 高地址页寄存器较少被使用,所以它们位于存储器的 $1800 地址之后,这样就可以在直接页中留出更 多的空间给经常使用的寄存器和变量。 • 非易失性寄存器由 flash 存储器中位于 $FFB0 – $FFBF 地址处的 16 个位置组成。 非易失性寄存器的位置包括: • 在复位时加载到工作寄存器的三个值 • 一个 8 字节的密码,用于取得加密存储器的使用权 因为非易失性寄存器是存储在 flash 存储器中的,所以它必须像其他的 flash 存储器那样擦除和写入。 直接页寄存器可以被高效的直接寻址方式指令访问。位操作指令可用于访问直接页寄存器中的任何一位。 表 4-2 总结了所有用户可访问的直接页寄存器及其控制位。 表 4-2 中的寄存器可以使用比较高效的直接寻址方式访问,这种方式只需要地址的低位字节。因此,第一 纵列中地址的低位字节用粗体字表示。表 4-3 和表 4-4 中,第一纵列中完整的地址用粗体字表示。表 4-2, 表 4-3,表 4-4 中,第二纵列的寄存器的名称亦用粗体字表示,以与右边的位名称区分。没有定义的位单元格 以阴影表示。有 0 的阴影单元格表示不使用的字节总是读作 0。有横线的阴影单元格表示无效或保留的字节, 读到的值是 1 或 0。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 4-2. 直接页寄存器概述 ( 第 1 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 PTAD7 R R R R PTAD2 PTAD1 PTAD0 PTADD7 R R R R PTADD2 PTADD1 PTADD0 0x0000 PTAD 0x0001 PTADD 0x0002 PTBD R R R R PTBD3 PTBD2 PTBD1 PTBD0 0x0003 PTBDD R R R R PTBDD3 PTBDD2 PTBDD1 PTBDD0 0x0004 PTCD 0 R PTCD5 PTCD4 PTCD3 PTCD2 PTCD1 PTCD0 0x0005 PTCDD 0 R PTCDD5 PTCDD4 PTCDD3 PTCDD2 PTCDD1 PTCDD0 0x0006 PTDD R R R R PTDD3 PTDD2 PTDD1 PTDD0 0x0007 PTDDD R R R R PTDDD3 PTDDD2 PTDDD1 PTDDD0 0x0008 PTED PTED7 PTED6 PTED5 PTED4 PTED3 PTED2 PTED1 PTED0 0x0009 PTEDD PTEDD7 PTEDD6 PTEDD5 PTEDD4 PTEDD3 PTEDD2 PTEDD1 PTEDD0 0x000A PTFD R PTFD6 PTFD5 PTFD4 R R PTFD1 PTFD0 0x000B PTFDD R PTFDD6 PTFDD5 PTFDD4 R R PTFDD1 PTFDD0 0x000C PTGD 0 PTGD6 PTGD5 PTGD4 PTGD3 PTGD2 PTGD1 PTGD0 0x000D PTGDD 0 PTGDD6 PTGDD5 PTGDD4 PTGDD3 PTGDD2 PTGDD1 PTGDD0 0x000E– 0x000F 保留 — — — — — — — — — — — — — — — — 0x0010 ADCSC1 COCO AIEN ADCO 0x0011 ADCSC2 ADACT ADTRG ACFE ACFGT 0 0 R R 0x0012 ADCRH 0 0 0 0 0 0 ADR9 ADR8 0x0013 ADCRL ADR7 ADR6 ADR5 ADR4 ADR3 ADR2 ADR1 ADR0 0x0014 ADCCVH 0 0 0 0 0 0 ADCV9 ADCV8 0x0015 ADCCVL ADCV7 ADCV6 ADCV5 ADCV4 ADCV3 ADCV2 ADCV1 ADCV0 0x0016 ADCCFG ADLPC 0x0017 APCTL1 ADPC7 ADPC6 ADPC5 ADPC4 ADPC3 ADPC2 ADPC1 ADPC0 0x0018 APCTL2 ADPC15 ADPC14 ADPC13 ADPC12 ADPC11 ADPC10 ADPC9 ADPC8 0x0019 APCTL3 ADPC23 ADPC22 ADPC21 ADPC20 ADPC19 ADPC18 ADPC17 ADPC16 0x001A– 0x001B 保留 — — — — — — — — — — — — — — — — ADIV ADCH ADLSMP MODE ADICLK 0x001C IRQSC 0 IRQPDD IRQEDG IRQPE IRQF 0 IRQIE IRQMOD 0x001D 保留 — — — — — — — — 0x001E KBISC KBEDG7 KBEDG6 KBEDG5 KBEDG4 KBF KBACK KBIE KBIMOD 0x001F KBIPE KBIPE7 KBIPE6 KBIPE5 KBIPE4 KBIPE3 KBIPE2 KBIPE1 KBIPE0 0x0020 TPM1SC TOF TOIE CPWMS CLKSB CLKSA PS2 PS1 PS0 0x0021 TPM1CNTH Bit 15 14 13 12 11 10 9 Bit 8 0x0022 TPM1CNTL Bit 7 6 5 4 3 2 1 Bit 0 0x0023 TPM1MODH Bit 15 14 13 12 11 10 9 Bit 8 0x0024 TPM1MODL Bit 7 6 5 4 3 2 1 Bit 0 0x0025 TPM1C0SC CH0F CH0IE MS0B MS0A ELS0B ELS0A 0 0 0x0026 TPM1C0VH Bit 15 14 13 12 11 10 9 Bit 8 0x0027 TPM1C0VL Bit 7 6 5 4 3 2 1 Bit 0 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 4-2. 直接页寄存器概述 ( 第 2 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 0x0028 TPM1C1SC CH1F CH1IE MS1B MS1A ELS1B ELS1A 0 0 0x0029 TPM1C1VH Bit 15 14 13 12 11 10 9 Bit 8 0x002A TPM1C1VL Bit 7 6 5 4 3 2 1 Bit 0 0x002B TPM1C2SC CH2F CH2IE MS2B MS2A ELS2B ELS2A 0 0 0x002C TPM1C2VH Bit 15 14 13 12 11 10 9 Bit 8 0x002D TPM1C2VL Bit 7 6 5 4 3 2 1 Bit 0 0x002E TPM1C3SC CH3F CH3IE MS3B MS3A ELS3B ELS3A 0 0 0x002F TPM1C3VH Bit 15 14 13 12 11 10 9 Bit 8 0x0030 TPM1C3VL Bit 7 6 5 4 3 2 1 Bit 0 0x0031– 0x0037 保留 — — — — — — — — 0x0038 SCI1BDH LBKDIE RXEDGIE 0 SBR12 SBR11 SBR10 SBR9 SBR8 0x0039 SCI1BDL SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 0x003A SCI1C1 LOOPS SCISWAI RSRC M WAKE ILT PE PT 0x003B SCI1C2 TIE TCIE RIE ILIE TE RE RWU SBK 0x003C SCI1S1 TDRE TC RDRF IDLE OR NF FE PF 0x003D SCI1S2 LBKDIF RXEDGIF 0 RXINV RWUID BRK13 LBKDE RAF 0x003E SCI1C3 R8 T8 TXDIR TXINV ORIE NEIE FEIE PEIE 0x003F SCI1D Bit 7 6 5 4 3 2 1 Bit 0 0x0040 SCI2BDH LBKDIE RXEDGIE 0 SBR12 SBR11 SBR10 SBR9 SBR8 0x0041 SCI2BDL SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 0x0042 SCI2C1 LOOPS SCISWAI RSRC M WAKE ILT PE PT 0x0043 SCI2C2 TIE TCIE RIE ILIE TE RE RWU SBK 0x0044 SCI2S1 TDRE TC RDRF IDLE OR NF FE PF 0x0045 SCI2S2 LBKDIF RXEDGIF 0 RXINV RWUID BRK13 LBKDE RAF 0x0046 SCI2C3 R8 T8 TXDIR TXINV ORIE NEIE FEIE PEIE 0x0047 SCI2D Bit 7 6 5 4 3 2 1 Bit 0 0x0048 ICGC1 HGO RANGE REFS OSCSTEN LOCD 0 0x0049 ICGC2 LOLRE 0x004A ICGS1 0x004B ICGS2 0 0x004C ICGFLTU 0 0x004D ICGFLTL FLT 0x004E ICGTRM TRIM 0x004F 保留 0x0050 0x0051 CLKS MFD CLKST LOCRE RFD REFST LOLS LOCK LOCS ERCS ICGIF 0 0 0 0 0 0 DCOS 0 0 0 — — — CPHA SSOE LSBFE FLT — — — — — SPIC1 SPIE SPE SPTIE MSTR CPOL SPIC2 SPMIE 0 0 MODFEN BIDIROE 0x0052 SPIBR 0 SPPR2 SPPR1 SPPR0 0 SPR2 SPR1 SPR0 0x0053 SPIS SPRF SPIMF SPTEF MODF 0 0 0 0 0x0054 SPIDH Bit 15 14 13 12 11 10 8 Bit 8 SPIMODE SPISWAI SPC0 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 4-2. 直接页寄存器概述 ( 第 3 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 0x0055 SPIDL Bit 7 6 5 4 3 2 1 Bit 0 0x0056 SPIMH Bit 15 14 13 12 11 10 8 Bit 8 0x0057 SPIML Bit 7 6 5 4 3 2 1 Bit 0 0x0058 IIC1A AD7 AD6 AD5 AD4 AD3 AD2 AD1 0 0x0059 IIC1F 0x005A IIC1C IICEN IICIE MST TX TXAK RSTA 0 0 0x005B IIC1S TCF IAAS BUSY ARBL 0 SRW IICIF RXAK 0x005C IIC1D 0x005D IIC1C2 0x005E– 0x005F 保留 0x0060 TPM2SC 0x0061 TPM2CNTH 0x0062 TPM2CNTL 0x0063 TPM2MODH MULT ICR DATA GCAEN ADEXT 0 0 0 AD10 AD9 AD8 — — — — — — — — — — — — — — — — TOF TOIE CPWMS CLKSB CLKSA PS2 PS1 PS0 Bit 15 14 13 12 11 10 9 Bit 8 Bit 7 6 5 4 3 2 1 Bit 0 Bit 15 14 13 12 11 10 9 Bit 8 0x0064 TPM2MODL Bit 7 6 5 4 3 2 1 Bit 0 0x0065 TPM2C0SC CH0F CH0IE MS0B MS0A ELS0B ELS0A 0 0 0x0066 TPM2C0VH Bit 15 14 13 12 11 10 9 Bit 8 0x0067 TPM2C0VL Bit 7 6 5 4 3 2 1 Bit 0 0x0068 TPM2C1SC CH1F CH1IE MS1B MS1A ELS1B ELS1A 0 0 0x0069 TPM2C1VH Bit 15 14 13 12 11 10 9 Bit 8 0x006A TPM2C1VL Bit 7 6 5 4 3 2 1 Bit 0 0x006B– 0x006F 保留 — — — — — — — — — — — — — — — — 表 4-3 中所示的高地址页寄存器比其他的 I/O 和控制寄存器的访问频率低,所以它们位于可直接寻址的存 储器空间之外,开始于 $1800。 表 4-3. 高地址页寄存器概要 ( 第 1 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 POR PIN COP ILOP ILAD ICG LVD 0 0 0 0 0 0 0 0 BDFR 0 — — 0x1800 SRS 0x1801 SBDFR 0x1802 SOPT COPE COPT STOPE — 0 0x1803 SMCLK 0 0 0 MPE 0 0x1804 – 0x1805 保留 — — — — — — — — — — — — — — — — 0x1806 SDIDH REV3 REV2 REV1 REV0 ID11 ID10 ID9 ID8 MCSEL 0x1807 SDIDL ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 0x1808 SRTISC RTIF RTIACK RTICLKS RTIE 0 RTIS2 RTIS1 RTIS0 0x1809 SPMSC1 LVDF LVDACK LVDIE LVDRE LVDSE LVDE 01 BGBE 0x180A SPMSC2 LVWF LVWACK LVDV LVWV PPDF PPDACK — PPDC MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 4-3. 高地址页寄存器概要 ( 第 2 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 — — — — — — — — COPCLKS — — — — — — — — — — — — — — — — — — — — — — — 0x180B 保留 0x180C SOPT2 0x180D– 0x180F 保留 0x1810 DBGCAH Bit 15 14 13 12 11 10 9 Bit 8 0x1811 DBGCAL Bit 7 6 5 4 3 2 1 Bit 0 0x1812 DBGCBH Bit 15 14 13 12 11 10 9 Bit 8 0x1813 DBGCBL Bit 7 6 5 4 3 2 1 Bit 0 0x1814 DBGFH Bit 15 14 13 12 11 10 9 Bit 8 0x1815 DBGFL Bit 7 6 5 4 3 2 1 Bit 0 0x1816 DBGC DBGEN ARM TAG BRKEN RWA RWAEN RWB RWBEN 0x1817 DBGT TRGSEL BEGIN 0 0 TRG3 TRG2 TRG1 TRG0 0x1818 DBGS AF BF ARMF 0 CNT3 CNT2 CNT1 CNT0 0x1819– 0x181F 保留 — — — — — — — — — — — — — — — — 0x1820 FCDIV DIVLD PRDIV8 DIV5 DIV4 DIV3 DIV2 DIV1 DIV0 0x1821 FOPT KEYEN FNORED 0 0 0 0 SEC01 SEC00 0x1822 Reserved — — — — — — — — 0x1823 FCNFG 0 0 KEYACC 0 0 0 0 0 0x1824 FPROT FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS 0x1825 FSTAT FCBEF FCCF FPVIOL FACCERR 0 FBLANK 0 0 0x1826 FCMD FCMD7 FCMD6 FCMD5 FCMD4 FCMD3 FCMD2 FCMD1 FCMD0 0x1827– 0x182F 保留 — — — — — — — — — — — — — — — — 0x1830 TPM3SC2 TOF TOIE CPWMS CLKSB CLKSA PS2 PS1 PS0 2 0x1831 TPM3CNTH Bit 15 14 13 12 11 10 9 Bit 8 0x1832 TPM3CNTL2 Bit 7 6 5 4 3 2 1 Bit 0 0x1833 TPM3MODH2 Bit 15 14 13 12 11 10 9 Bit 8 0x1834 TPM3MODL 2 Bit 7 6 5 4 3 2 1 Bit 0 0x1835 2 TPM3C0SC CH0F CH0IE MS0B MS0A ELS0B ELS0A 0 0 0x1836 TPM3C0VH2 Bit 15 14 13 12 11 10 9 Bit 8 0x1837 TPM3C0VL2 Bit 7 6 5 4 3 2 1 Bit 0 0x1838 2 CH1F CH1IE MS1B MS1A ELS1B ELS1A 0 0 2 TPM3C1SC 0x1839 TPM3C1VH Bit 15 14 13 12 11 10 9 Bit 8 0x183A TPM3C1VL2 Bit 7 6 5 4 3 2 1 Bit 0 0x183B 0x183F 保留 — — — — — — — — — — — — — — — — 0x1840 PTAPE PTAPE7 R R R R PTAPE2 PTAPE1 PTAPE0 0x1841 PTASE PTASE7 R R R R PTASE2 PTASE1 PTASE0 0x1842 PTADS PTADS7 R R R R PTADS2 PTADS1 PTADS0 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 4-3. 高地址页寄存器概要 ( 第 3 页,共 3 页 ) 地址 寄存器名称 Bit 7 6 5 4 3 2 1 Bit 0 0x1843 保留 — — — — — — — — 0x1844 PTBPE R R R R PTBPE3 PTBPE2 PTBPE1 PTBPE0 0x1845 PTBSE R R R R PTBSE3 PTBSE2 PTBSE1 PTBSE0 0x1846 PTBDS R R R R PTBDS3 PTBDS2 PTBDS1 PTBDS0 0x1847 保留 — — — — — — — — 0x1848 PTCPE 0 R PTCPE5 PTCPE4 PTCPE3 PTCPE2 PTCPE1 PTCPE0 0x1849 PTCSE 0 R PTCSE5 PTCSE4 PTCSE3 PTCSE2 PTCSE1 PTCSE0 0x184A PTCDS 0 R PTCDS5 PTCDS4 PTCDS3 PTCDS2 PTCDS1 PTCDS0 0x184B 保留 — — — — — — — — 0x184C PTDPE R R R R PTDPE3 PTDPE2 PTDPE1 PTDPE0 0x184D PTDSE R R R R PTDSE3 PTDSE2 PTDSE1 PTDSE0 0x184E PTDDS R R R R PTDDS3 PTDDS2 PTDDS1 PTDDS0 0x184F 保留 — — — — — — — — 0x1850 PTEPE PTEPE7 PTEPE6 PTEPE5 PTEPE4 PTEPE3 PTEPE2 PTEPE1 PTEPE0 0x1851 PTESE PTESE7 PTESE6 PTESE5 PTESE4 PTESE3 PTESE2 PTESE1 PTESE0 0x1852 PTEDS PTEDS7 PTEDS6 PTEDS5 PTEDS4 PTEDS3 PTEDS2 PTEDS1 PTEDS0 0x1853 保留 — — — — — — — — 0x1854 PTFPE R PTFPE6 PTFPE5 PTFPE4 R R PTFPE1 PTFPE0 0x1855 PTFSE R PTFSE6 PTFSE5 PTFSE4 R R PTFSE1 PTFSE0 0x1856 PTFDS R PTFDS6 PTFDS5 PTFDS4 R R PTFDS1 PTFDS0 0x1857 保留 — — — — — — — — 0x1858 PTGPE 0 PTGPE6 PTGPE5 PTGPE4 PTGPE3 PTGPE2 PTGPE1 PTGPE0 0x1859 PTGSE 0 PTGSE6 PTGSE5 PTGSE4 PTGSE3 PTGSE2 PTGSE1 PTGSE0 0x185A PTGDS 0 PTGDS6 PTGDS5 PTGDS4 PTGDS3 PTGDS2 PTGDS1 PTGDS0 0x185B– 0x185F 保留 — — — — — — — — — — — — — — — — 1 2 保留的位必须写入 0。 这些表格仅适用于 MC9S08AC16 和 MC9S08AC8。 表 4-4 中所示的非易失性 flash 寄存器位于 flash 存储器中。它包括一个 8 字节的后门密钥,这个密钥用 于获得对加密存储器的访问权。在复位后, flash 存储器的非易失性寄存器中 NVPROT 和 NVOPT 的内容被转 移到相应的位于高页面寄存器中的 FPROT 和 FOPT 工作寄存器中,从而控制加密存储块保护功能。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 4-4. 非易失性寄存器概要 地址 寄存器名称 Bit 7 6 5 0xFFB0 – NVBACKKEY 0xFFB7 0xFFB8 – 保留 0xFFBC 0xFFBD NVPROT 1 0xFFBE 保留 0xFFBF NVOPT 1 4 3 2 1 Bit 0 8-Byte Comparison Key — — — — — — — — — — — — — — — — FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS — — — — — — — — KEYEN FNORED 0 0 0 0 SEC01 SEC00 这个位置可用于存储 ICG 的工厂预设值。 如果密钥使能位 (KEYEN) 为 “1”, 8 字节的密钥将被用于暂时解除存储器的安全保护机制。密钥机制只 能通过在安全存储区域的用户代码访问 ( 密钥不可直接通过背景调试命令键入 )。当 KEYEN 标志位为 0 时, 密钥功能失效。如果密钥失效,去除安全保护机制的唯一途径就是整体擦除 flash 存储器 ( 通常通过背景调试 接口 ),并且校验 flash 存储器为空。为避免在下一次复位后又返回安全保护模式,向安全位 (SEC01:SEC00) 写入 (1:0) 进入非安全保护状态即可。 4.3 RAM MC9S08AC16 系列包含静态 RAM。可以使用更高效的直接地址寻址方式访问 RAM 中低于 0x0100 的地 址。这一区域的每一位都可以用位操作指令 (BCLR, BSET, BRCLR, BRSET)来访问。通常,将访问最 频繁的程序变量放在这个区域。 当 MCU 处于低功耗的等待、 STOP2、 STOP3 模式时, RAM 保持数据。上电时, RAM 的内容不会被重 新初始化。如果所提供的电压高于 RAM 所需的最小电压, RAM 数据不会受任何复位的影响。 为了和以前的 M68HC05 MCU 兼容, HCS08 初始化时栈指针定为 0x00FF。在 MC9S08AC16 系列中, 通常重新初始化栈指针指向 RAM 的顶端,这样直接页 RAM 可以用于存储频繁访问的 RAM 变量和可位寻址 的程序变量。在重启初始化程序中添加下来的两条指令 (在 Freescale 提供的文件中 RamLast 等于 RAM 的 最高地址)。 LDHX #RamLast+1 ; 指向 RAM 最高地址 +1 TXS ;SP 期望值 500 ( 运行太快 ) ICGTRM = ICGTRM - 128 / (2**n) ( 减少 ICGTRM 提高频率 ) ICGTRM = ICGTRM + 128 / (2**n) ( 增加 ICGTRM 降低频率 ) 存储 ICGTRM 值到 非易失性存储器 继续 n = n+1 IS n > 8? 是 否 图 9-17. 调整程序 在这个特殊情况中, MCU 贴片到 PCB 上,整个装配正在用自动化测试工具进行最终测试。当用户使用 软件控制时,一个单独的信号或信息提供给 MCU 操作。当测试者提供了一个准确的参考信号, MCU 根据 图 9-17 流程所示,初始化调整程序。 如果希望总线频率接近设备所允许的最大值,推荐使用两倍于最终值的分频因子 (R)。调整程序完成 后,恢复分频因子。这可以避免意外地超过最大时钟频率。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 10 章 定时器 /PWM (S08TPMV3) 简介 10.1 MC9S08AC16 系列包含三个独立定时器 /PWM 模块,支持传统的输入捕捉,输出捕捉以及带缓冲的边沿 对齐 PWM。每个 TPM 有一个控制位配置所有的通路产生中心对齐的 PWM 信号。在每一个 TPM 中,定时功 能是基于对独立的带分频器以及模块化的 16 位计数器来控制频率和范围 ( 溢出周期 )。这个计时系统非常适 于多种控制应用, TPM 的中心对齐 PWM 能力使其能应用于更加广泛的领域,如小家电的电机控制。 由于可以采用固定的系统时钟 XCLK 作为任何 TPM 模块的时钟源,这使得 TPM 分频器可以运行于振荡 器频率的一半 (ICGERCLK/2)。当然此时 ICG 必须是 FEE 模式配置且满足适当的条件 (见 9.4.11 节 固定频 率时钟)。这样的选择在其它 ICG 模式下是多余的,因为 XCLK 等于 BUSCLK。 外部时钟源可以连接到 TPMCLK 引脚上。 TPMCLK 最大频率是总线时钟频率的四分之一。所有这三个 TPM 模块可独立选择 TPMCLK 作为时钟源。 注意 MC9S08AW16 和 MC9S08AW8 不提供 TPM3。这些 MCU 只具备 2 通道 TPM1 和 2 通道 TPM2 的 44 或 48 脚封装。和只有 2 通道 TPM1 和 TPM2 的 32 脚封装。 特征 10.2 MC9S08AC16 系列定时器系统包括 4 通道 TPM1 (32 脚封装为 2 通道 TPM1),一个单独的 2 通道 TPM2 和一个单独的 2 通道 TPM3。定时器系统特征如下: • 总共最多能达到 8 个通道 • 每个通道可用作输入捕捉,输出比较或带缓冲的边沿对齐 PWM • 上升沿,下降沿,或任何边沿输入捕捉触发 • 置位,清零或触发输出比较 • PWM 输出的极性可选 • 在所有通道上,每个 TPM 可配置带缓冲的,中心对齐 PWM (CPWM) • 每个 TPM 可运行于独立的时钟源,这些时钟源可以是总线时钟、固定系统时钟或通过引脚引入的外 部时钟 • 分频因子可以是 1、 2、 4, 8、 16、 32、 64 或 128 • 外部时钟输入:通过 TPM1、 TPM2 和 TPM3 使用 TPMCLK • 16 位自由运行或累加 / 递减 (CPWM)等计数操作 • 16 位模计数寄存器用来控制计数范围 • 计时系统使能 • 每个通道有一个中断,每一个 TPM 模块有一个终端计数中断 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A 10 位 A/D 转换模块 PORT B VDDAD VSSAD VREFL VREFH PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 16K 或 8K 片内 串行外设接口模块 (SPI) Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 10-1. 显亮 TPM 模块及其引脚的 MC9S08AC16 框图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 10.3 TPMV3 与以前版本的区别 TPMV3 是定时 /PWM 模块的最新版本,它解决了先前版本勘误表中涉及的问题。下一节概述了 TMPV3 和 TMPV2 模块的区别,以及移植代码时需要考虑的因素。 表 10-1. TPMV2 和 TPMV3 移植条件 作用 TPMV3 写入到 TPMxCnTH:L TPMV2 寄存器1 写入到 TPMxCNTH 或 TPMxCNTL 寄存 清 TPM 计数器 (TPMxCNTH:L)和分频 清 TPM 计数器 (TPMxCNTH:L) 器 计数器 读 TPMxCNTH:L 寄存器 1 在 BDM 模式下,读 TPMxCNTH:L 寄存 TPM 计数器的返回值不可修改 器 在 BDM 模式有效之前,如果读取只有一字节 的 TPMxCNTH:L 寄存器, 读到的是缓冲区 锁存的值 (而不是固定的 TPM 计数器值) 在 BDM 模式下,写 TPMxSC, TPMxCNTH, TPMxCNTL 不清除读一致机制 清除读一致机制 读 TPMxCnVH:L 寄存器2 在 BDM 模式下,读 TPMxCnVH:L 寄存 返回 TPMxCnVH:L 寄存器的值 器 在 BDM 模式有效之前,如果读取只有一字节 的 TPMxCnVH:L 寄存器,读到的是缓冲区的 锁存的值 (而不是 TPMxCnVH:L 寄存器的 值) 在 BDM 模式下,写 TPMxCnSC 不清除读一致机制 清除读一致机制 写 TPMxCnVH:L 寄存器 在输入捕捉模式下,写 TPMxCnVH:L3 不允许 在输出比较模式下,当 (CLKSB:CLKSA 在写入第二个字节后,使用 TPM 计数器 ≠ 0:0),写 TPMxCnVH:L 寄存器 3 (分频计数结束)下个变化时的写缓冲区 的值更新 TPMxCnVH:L 寄存器内容 允许 在第二字节内容被写入后,立即更新其寄存器 内容 在边沿对齐模式下,当 (CLKSB:CLKSA 当 TPM 计数器值从 (TPMxMODH:L-1) 到 两字节内容被写入后, TPM 计数器值从 TPMxMODH:L 到 $0000,执行更新操作 ≠ 00) 写 TPMxCnVH:L 寄存器 TPMxMODH:L,两个字节被写入后,用 写缓冲区的值更新 TPMxCnH:L 值 注: 如果 TPM 计数器用作自由运行计数 器,那么当 TPM 计数器值从 $FFEE 变化 到 $FFFF,发生更新操作 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 10-1. TPMV2 和 TPMV3 移植条件 ( 续 ) 作用 TPMV3 TPMV2 在中心对齐模式下,当 (CLKSB:CLKSA 当 TPM 计数器值从 (TPMxMODH:L-1) 两字节内容被写入后, TPM 计数器值从 ≠ 00),写 TPMxCnVH:L 寄存器4 TPMxMODH:L,两个字节被写入后,用 TPMxMODH:L 到 (TPMxMODH:L-1),执行更 写缓冲区的值更新 TPMxCnH:L 值 新操作 注:如果 TPM 计数器用作自由运行的计 数器,那么当 TPM 计数器值从 $FFEE 变 化到 $FFFF,发生更新操作 中心对齐 PWM TPMxCnVH:L = TPMxMODH:L5 产生 100%占空比 产生 0%占空比 TPMxCnVH:L = (TPMxMODH:L - 1)6 产生近 100%占空比 产生 0%占空比 TPMxCnVH:L 从 0x0000 变到非零值7 在一个新的 PWM 周期中开始使用新的占 空比设置 在当前 PWM 周期中期 (当计数为 0x0000) 改变通道输出 TPMxCnVH:L 从非零值变到 0x00008 用旧占空比设置完成当前 PWM 周期 用新占空比设置完成当前 PWM 周期 清除 TPMxMODH:L 寄存器写一致机制 不清除写一致机制 在 BDM 模式下写 TPMxMODH:L 寄存器 在 BDM 模式下写 TPMxSC 寄存器 1 2 3 4 5 6 7 8 更多信息参考 更多信息参考 更多信息参考 更多信息参考 更多信息参考 更多信息参考 更多信息参考 更多信息参考 10.5.2 节 TPM 计数器寄存器 (TPMxCNTH:TPMxCNHTL) 10.5.5 节 TPM 通道值寄存器 (TPMxCnVH : TPMxCnVL) 10.6.2.1 节 输入捕捉模式 10.6.2.4 节 中心对齐 PWM 模式 10.6.2.4 节 中心对齐 PWM 模式 【SE110-TPM 案例 1】 10.6.2.4 节 中心对齐 PWM 模式 【SE110-TPM 案例 2】 10.6.2.4 节 中心对齐 PWM 模式 【SE110-TPM 案例 3, 5】 10.6.2.4 节 中心对齐 PWM 模式 【SE110-TPM 案例 4】 10.3.1 从 TPMV1 移植 作为 10.3 节 TPMV3 与以前版本的区别的补充,当从带 TPMV1 的 MCU 移植时,必须考虑以下事项。 • 当定时器是 TPMV2 不在输入捕捉模式下,而不是 TPMV3 时,可以写通道值寄存器 (TPMxCnV)。 • 在边沿或中心对齐 PWM 模式下,当定时器从 TPMMOD-1 变换到 TPMMOD 或者一个自由运行的定 时器从 0XFFFE 到 0XFFFF 时,通道值寄存器在更新后导入。 • 在配置 TPM 模块时,最好先写 TPMxSC 再写 TPMxCnV,因为写 TPMxSC 会复位 TPMxCnV 寄存器 的一致机制。 表 10-2. 移植到 TPMV3 的条件表 条件 操作 / 经验教训 写入通道值寄存器 (TPMxCnV)导入 定时器必须在输入捕捉模式下 更新记录在中心对齐或边缘对齐模式下的通道值寄存器 (TPMxCnV) 复位通道值寄存器 (TPMxCnV)导入一致机制 仅发生在定时器从 TPMMOD-1 变换到 TPMMOD 时或者一个 自由运行的定时器从 0XFFFE 到 0XFFFF 时 写 TPMxSC 配置 TPM 模式 先写 TPMxSC 再写 TPMxCnV 寄存器 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 特性 10.3.2 TPM 的主要特性如下: • 1 到 8 通道: • 每个通道可以是输入捕捉,输出比较,边沿对齐 PWM • 上升沿、下降沿、或任何边沿输入捕捉触发 • 置位、清零、输出比较功能 • PWM 输出极性选择 • 在所有通道上,模块可被设置带缓冲的中心对齐 PWM • 定时器时钟源可选:分频总线时钟,固定系统时钟,或外部时钟引脚 • 分频因子可以是 1、 2、 4、 8、 16、 32、 64 或 128 • 通过片上同步电路固定式系统时钟和总线时钟同步 • 外部时钟引脚可以与其它任何定时器通道或独立输入引脚共享 • 16 位自运行可调值计数操作 • 定时器系统使能 • 每通道一个中断和计数溢出中断 10.3.3 操作模式 一般来说, TPM 通道可以被独立设置为输入捕捉、输出比较或边沿对齐模式。设置一个控制位,可以使 整个 TPM 通道转换为中心对齐 PWM 模式。当使能中心对齐 PWM 模式,在这个 TPM 模块的其它通道上, 输入捕捉、输出比较和边沿对齐 PWM 功能将被禁用。 当微控制器处在活跃 BDM 后台调试模式或 BDM 前台调试模式下。 TPM 暂停所有计数直到微控制器返回 到正常的用户操作模式。在停止模式下时,所有的系统时钟,包括主要的振荡器,都被停止,因此直到时钟信 号重启, TPM 都处于关闭状态。在等待模式下时, TPM 可正常工作。假如 TPM 不需产生一个实时参考时间 或提供中断源从等待模式唤醒 MCU,用户可以通过在进入等待模式前禁止 TPM 功能来节省功耗。 • 输入捕捉模式 当一个设定的边缘事件发生在相关的 MCU 引脚上时, 16 位定时器的当前计数器值被采集到通道值寄 存器和置位中断标志位。上升沿,下降沿,任意边沿或无边沿 (禁用通道)可被选作为触发输入比较 事件的活跃边沿。 • 输出比较模式 当定时计数寄存器的值匹配通道值寄存器值时,将置位中断标志位,且相应的 MCU 引脚产生一个可 选择输出行为。该输出比较行为可被选来迫使引脚为 0,为 1,锁存它,或忽略该引脚 (用于软件定 时功能)。 • 边沿对齐 PWM 模式 16 位模块寄存器的值加 1 设置 PWM 输出信号的周期。通道值寄存器设置 PWM 输出信号的占空比。 用户也可以选择 PWM 输出信号的极性。在该周期末尾和占空比转换临界点,可以产生中断。这种类 型的 PWM 信号被称作边沿对齐 PWM 是因为所有 PWM 主要边沿信号与周期开始时对齐,同时一个 TPM 的所有通道都相同。 • 中心对齐 PWM 模式 16 位模块寄存器值的两倍设置 PWM 输出周期,同时通道值寄存器设置一半占空比的延时。定时器计 数递增直到它达到模块值然后计数递减直到 0。当计数值递减并与通道值寄存器相匹配时, PWM 输出 活跃。当计数值递增并与通道值寄存器相匹配时, PWM 输出不活跃。这种类型的 PWM 信号被称作 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 中心对齐 PWM 是因为所有通道活跃占空比周期的中心与计数值零对齐。这种类型的 PWM 被广泛应 用于小家电的电机。 这仅是一个概述,在稍后章节将进行详细介绍。 10.3.4 结构框图 TPM 每个通道使用一个输入 / 输出引脚, TPMxCHn (定时器通道 n) n 是通道号 (1-8)。 TPM 输入输 出引脚与通用输入输出引脚复用 (请参考相应微控制器的输入输出引脚描述)。图 10-2 是 TPM 结构图。 TPM 的主要组成部分是 16 位计数器,可以作为一个自运行计数器或一个递增 / 递减计数器。 TPM 计数器 (运行于递增模式时)为输入捕捉,输出比较,边沿对齐 PWM 功能提供参考时钟。定时器计数模块寄存器 TPMxMODH:TPMxMODL 控制计数器因子值 (值 0x0000 或 0xFFFF 可使计数器自运行)。软件可以任意读 取计数器值,而不影响计数器的值。 TPMxCNT 计数器的任意一半被写入将复位计数器,而不管写入的是什 么。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 总线时钟 固定系统时钟 SYNC 时钟源选择关 总线、固定系统时钟, 外部时钟 分频选择因子 1, 2, 4, 8, 16, 32, 64, 或者 128 外部时钟 PS2:PS1:PS0 CLKSB:CLKSA CPWMS 16 位计数器 TOF 计数器复位 逻辑中断 TOIE 16 位比较器 TPMxMODH:TPMxMODL ELS0B 通道 0 ELS0A 端口逻辑 TPMxCH0 16 位比较器 CH0F TPMxC0VH:TPMxC0VL 16 位锁存器 逻辑中断 通道 1 MS0B MS0A ELS1B ELS1A CH0IE 端口逻辑 TPMxCH1 内部总线 16 位比较器 CH1F TPMxC1VH:TPMxC1VL 16 位锁存器 逻辑中断 MS1B CH1IE MS1A 最多 8 通道 ELS7B 通道 7 ELS7A 端口逻辑 TPMxCH7 16 位比较器 CH7F TPMxC7VH:TPMxC7VL 16 位锁存器 逻辑中断 MS7B MS7A CH7IE 图 10-2. TPM 结构图 TPM 通道和输入捕捉,输出比较或边沿对齐 PWM 通道一样是可独立编程设置的。另一种情况是, TPM 可将所有通道配置成 CPWM 输出。当 TPM 被配置成 CPWM 时,递增计数器 / 递减计数器,输入捕捉,输出 比较、 EPWM 等功能无效。 如果通道被配置成输入捕捉模式,则内接一个上拉设备。因为 I/O 口引脚和相关通用 I/O 口控制位不是模 块的一部分,模块如何利用引脚相互作用主要取决于芯片的执行情况。可参阅微控制器关于输入输出端口逻辑 的描述。 因为中心边沿 PWM 通常被用于驱动 3 相交流电机和直流无刷电机,所以通常使用三通道或六通道。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 10.4 信号描述 表 10-3 显示用户可访问的 TPM 信号。通道的数量可以是 1 到 8 个。所有的 TPM 通道都可以复用同一个 外部时钟,而且外部时钟只需连接到单独的输入引脚。具体实现可参阅微控制器 I/O 口的描述。 表 10-3. 信号特性 名称 功能 EXTCLK1 TPMxCHn 2 外部时钟源可被选来驱动 TPM 计数器 TPM 通道 n 相关的 I/O 引脚 1 若提前预设,该信号可复用给任何通道引脚;然而根据微控制器的实 现情况,该信号可被连接到独立的外部引脚。 2 n = 通道数量 (1 ~ 8) 关于复位状态,端口连接,和这些引脚是否有上拉电阻的详情请参阅该微控制器的说明。 TPM 通道引脚 可与通用 I/O 口引脚相关联且有被动上拉电阻,当 TPM 或通用 I/O 控制配置相关引脚为输入时,上拉电阻可 以用一个控制位使能。当没有使能 TPM,相应的引脚可应用于 I/O 控制,包括端口数据,数据方向寄存器。 复位后,默认没有使能 TPM,所以所有相关引脚被通用 I/O 控制。 10.4.1 信号详细描述 本节将详细描述每个用户可访问的引脚信号。虽然表 10-3 已经列出所有引脚,任何 TPM 引脚可复用外 部时钟源信号。因为 I/O 引脚逻辑不是 TPM 的一部分,关于 TPM 引脚功能交互和通用 I/O 控制包括端口数 据、数据方向和上拉控制的具体实现可参阅本微控制器的说明。 10.4.1.1 EXTCLK——外部时钟源 位于定时器状态和控制寄存器中的控制位无效 ( 此时定时器无效 ),总线速率时钟 (默认时钟),晶振时 钟,或外部时钟可以作为驱动 TPM 分频器和 16 位计数器的时钟。在 TPM 中,外部时钟源是同步的。总线时 钟设定时钟同步器;外部时钟频率不能超过总线速率时钟频率的四分之一,满足奈奎斯特准则,并允许抖动。 外部时钟信号和通道 I/O 引脚复用相同引脚。所以当被选做外部时钟源时,引脚通道 I/O 功能不可用。用 户应避免产生上述情况。如果这个引脚可用作外部时钟源 (CLKSB:CLKSA),该通道能在输出比较模式下用 作软件定时器 (ELSnB:ELSnA=0:0)。 10.4.1.2 TPMxCHn——TPM 通道 n 输入输出引脚 MCU 的每个 TPM 通道与一个 I/O 引脚相关联。引脚功能依赖于通道配置。 TPM 引脚与通用 I/O 引脚复 用,它的每个引脚对应一个端口数据寄存器位,一个数据方向控制位,并且作为输入时,端口具有可使能的被 动上拉电阻。 当 (ELSnB:ELSnA = 0:0)或 (CLKSB:CLKSA = 0:0)时, TPM 通道不能控制 I/O 引脚。所以通常转为 通用 I/O 控制。当 CPWMS = 1 (ELSnB:ELSnA ≠ 0:0)时,所有带有 TPM 的通道被配置成中心对齐 PWM 且 TPMxCHn 引脚被 TPM 控制。当 CPWMS = 0 时, MSnB: MSnA 控制位决定该通道配置为输入捕捉,输出 比较或边沿对齐 PWM。 当一个通道被配置为输入捕捉模式 (CPWMS = 0, MSnB:MsnA = 0:0, ELSnB:ELSnA ≠ 0:0)时, TPMxCHn 引脚被作为 TPM 的边沿有效输入。 ELSnB:ELSnA 控制位决定触发输入捕捉事件的极性边沿或者 边沿。基于总线时钟的同步器用于将输入边沿同步到总线时钟上。这意味着在一个输入捕捉引脚上能被可靠检 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 测到的最小脉冲宽度是总线时钟周期的四倍 (能检测接近两个总线时钟的理想时钟脉宽)。 TPM 把这个引脚 当作输入捕捉的输入,而忽略端口数据和数据方向控制。 当通道被配置为输出比较模式(CPWMS = 0,MSnB: MsnA = 0:1,ELSnB:ELSnA = 0:0)时,忽略相关 数据方向控制, TPMxCHn 引脚被认为是由 TPM 控制输出, ELSnB:ELSnA 控制位决定该引脚如何被控制。 ELSnB:ELSnA 剩余的三种组合决定 TPMxCHn 引脚是否被锁存,清空或每次 16 位通道值寄存器匹配定时器 计数器时置位。当输出比较模式被选中,引脚上的前值被清除直到下个输出比较事件来临然后引脚被锁存。 当一个通道被配置为边沿对齐 PWM 模式(CPWMS = 0,MSnB = 1,ELSnB:ELSnA ≠ 0:0)时,数据方 向被忽略, TPMxCHn 引脚被强制为由 TPM 控制输出, ELSnA 控制引脚上 PWM 输出信号的极性。当 ELSnB:ELSnA = 1:0 时, TPMxCHn 引脚在每个新周期 (TPMxCNT = 0x0000)开始被强制拉高,当通道值 寄存器等于定时器的计数器时引脚被强制拉低。当 ELSnA = 1 时,TPMxCHn 引脚在每个新周期(TPMxCNT = 0x0000)开始被强制拉低,当通道寄值存器等于定时器的计数器时引脚被强制拉高。 TPMxMODH:TPMxMODL = 0x0008 TPMxMODH:TPMxMODL = 0x0005 TPMxCNTH:TPMxCNTL... 0 1 2 3 4 5 6 7 8 0 1 2 ... 0 1 2 ... TPMxCHn CHnF 位 TOF 位 图 10-3. 边缘对齐 PWM 模式的高真脉冲 TPMxMODH:TPMxMODL = 0x0008 TPMxMODH:TPMxMODL = 0x0005 TPMxCNTH:TPMxCNTL... 0 1 2 3 4 5 6 7 8 TPMxCHn CHnF 位 TOF 位 图 10-4. 边缘对齐 PWM 模式的低真脉冲 当 TPM 被配置为中心对齐 PWM 模式 (ELSnB:ELSnA ≠ 0:0),在 TPM 模式下,所有通道的数据方向 被忽略, TPMxCHn 引脚被强制转换为由 TPM 控制输出, ELSnA 位控制每个 TPMxCHn 输出的极性。如果 ELSnB:ELSnA = 1:0,当定时器计数器值上升,通道值寄存器等于定时器计数器时 TPMxCHn 引脚被清零; 当定时器计数器值下降,通道值寄存器等于定时器计数器值时, TPMxCHn 引脚被置位。如果 ELSnA = 1,当 定时器计数器值上升且通道值寄存器等于定时器计数器时, TPMxCHn 引脚被置位;当定时器计数器值下降且 通道值寄存器等于定时器计数器时 TPMxCHn 引脚被清零。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # TPMxMODH:TPMxMODL = 0x0008 TPMxMODH:TPMxMODL = 0x0005 TPMxCNTH:TPMxCNTL ... 7 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 7 6 5 ... 4 5 6 7 8 7 6 5 ... TPMxCHn CHnF BIT TOF BIT 图 10-5. 中心对齐 PWM 模式的高真脉冲 TPMxMODH:TPMxMODL = 0x0008 TPMxMODH:TPMxMODL = 0x0005 TPMxCNTH:TPMxCNTL ... 7 8 7 6 5 4 3 2 1 0 1 2 3 TPMxCHn CHnF BIT TOF BIT 图 10-6. 中心对齐 PWM 模式的低真脉冲 10.5 寄存器定义 本节将按地址顺序描述寄存器。一个典型 MCU 可能包含若干 TPM,每个 TPM 有八个通道,所以寄存器 的命名包含占位符字用来明确哪个 TPM 和哪个通道被选用了。例如 TPMxCnSC 涉及到 (TPM)x,通道 n。 TPM1C2SC 可能是定时器 1 通道 2 的状态和控制寄存器。 10.5.1 TPM 状态和控制寄存器 (TPMxSC) TPMxSC 包含溢出状态标记和用来配置中断使能、 TPM 配置、时钟源、分频因子的控制位。这些控制涉 及到此定时器模块的所有通道。 7 读 TOF 写 0 复位 0 6 5 4 3 2 1 0 TOIE CPWMS CLKSB CLKSA PS2 PS1 PS0 0 0 0 0 0 0 0 图 10-7. TPM 状态和控制寄存器 (TPMxSC) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 10-4. TPMxSC 位描述 位 描述 7 TOF 定时器溢出标志,当 TPM 计数器达到在 TPM 计数器模寄存器中预设值后 , 复位为 0x0000, 然后置位这个读写标志。当 TOF 被置位,可以通过读 TPM 状态和控制寄 存器,然后向 TOF 写 0 清除 TOF。如果在彻底清除序列前发生了另一个 TPM 溢 出,该序列复位,并在先前清除序列完成后, TOF 还将保持置位。这样在清序列时 TOF 中断请求不会丢失。复位清零 TOF。对 TOF 写 1 无效。 0 TPM 计数器未达到模值或未溢出 1 TPM 计数器溢出 6 TOIE 定时器溢出中断使能。这个读写位使能 TPM 溢出中断。如果 TOIE 被置位,当 TOF 等于 1 中断产生。复位清除 TOIE。 0 TOF 中断禁止 (用于软件轮询) 1 TOF 中断使能 5 CPWMS 中心对齐 PWM 选择位。这个读写位选择 CPWM 操作模式。默认情况下, TPM 提 供输入捕捉,输出比较和边沿对齐 PWM 功能,并提供递增计数器操作。设置 CPWMS 重新配置 TPM 操作于上升 / 下降模式计数器,实现 CPWM 功能。复位清 零 CPWMS。 0 所有通道可作输入捕捉,输出比较,边沿对齐 PWM 模式,由 MSnB: MsnA 控制 每个通道的状态和控制寄存器中的相应位来选择 1 所有通道都可运行在中心对齐 PWM 模式下 4-3 CLKS[B:A] 时钟源选择位,如表 10-5 所示,这 2 个位用来禁止 TPM 系统或选择三个时钟源中 的一个来驱动计数器分频器。固定系统时钟源在带有一个基于系统 PLL 时钟的系统 中是唯一有效的。若没有 PLL,固定系统时钟与总线速率时钟相同。外部时钟源通 过 TPM 模块同步总线时钟,固定系统时钟源通过片上同步电路同步总线时钟。当 有 PLL 但无效时,固定系统时钟与总线速率时钟相同。 2-0 PS[2:0] 分频因子选择位。这三位选择 8 个分频因子中的一个用来分频 TPM 时钟输入,如 表 10-6 所示。在任意时钟源同步或时钟源选择后,分频器被定位,所以它影响用 来驱动 TPM 系统的时钟源。在新值被更新到寄存器后,新的分频因子将对下个系 统时钟周期产生影响。 表 10-5. TPM 时钟源选择 CLKSB:CLKSA TPM 时钟源分频输入 00 无时钟选择 01 总线速率时钟 10 固定系统时钟 11 外部时钟源 表 10-6. 分频因子选择 PS2:PS1:PS0 分频因子 000 1 001 2 010 4 011 8 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 10-6. 分频因子选择 ( 续 ) 10.5.2 PS2:PS1:PS0 分频因子 110 16 101 32 110 64 111 128 TPM 计数器寄存器 (TPMxCNTH:TPMxCNHTL) 这两个只读 TPM 计数器寄存器包含其高位和低位字节内容。在读 TPMxCNTH 或 TPMxCNHTL 中的一个 字节时,两字节内容都被锁存到一个缓冲区,直到剩下的一个字节内容也被读出。这使得 16 位连读而更方便 于各种编译器编译。这种一致机制是通过一个 MCU 复位或任意写定时器状态和控制寄存器 (TPMxSC)自 动重新开始的。复位清空 TPM 计数器寄存器。写任意值到 TPMxCNTH 或 TPMxCNHTL 同样清空 TPM 计数 器 (TPMxCNTH:TPMxCNHTL)和复位一致机制,不管是否涉及到写数据。 读 7 6 5 4 3 2 1 0 Bit 15 14 13 12 11 10 9 Bit 8 0 0 写 复位 任意写 TPMxCNTH 将清零该 16 位计数器 0 0 0 0 0 0 图 10-8. TPM 计数器寄存器高位 (TPMxCNTH) 读 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 Bit 0 0 0 0 写 复位 任意写 TPMxCNTL 将清零该 16 位计数器 0 0 0 0 0 图 10-9. TPM 计数器寄存器低位 (TPMxCNTL) 当 BDM 被激活,定时器计数器被暂停 (这个值将被用户读取);当 BDM 被激活时,一致机制被暂停, 缓冲区保持在原来的状态,即使计数器的部分或全部内容在 BDM 活跃时被读取。这保证了当 BDM 被激活时 如果用户正在读 16 位寄存器时,在返回到正常执行状态下它将会读 16 位的其它相关值。 在 BDM 模式下,写任意值到 TPMxSC、 TPMxCNTH、 TPMxCNTL 寄存器将复位 TPMxCNTH:L 寄存器 读一致机制,不管是否涉及写的数据。 10.5.3 TPM 计数器模寄存器 (TPMxMODH:TPMxMODL) 该读写 TPM 模寄存器包含其模值。当 TPM 计数器达到模值之后, TPM 计数器在下个时钟重新开始从 0X0000 计数,溢出标志 (TOF)被置位。写 TPMxMODH 或 TPMxMODL 禁止 TOF 位和溢出中断直到其他 字节被写完。复位设置 TPM 计数器模寄存器为 0X0000,由一个自运行定时器计数器产生 (模块禁止)。 写 TPMxMODH:TPMxMODL 其中的一个字节锁存该值到一个缓冲区里,同时寄存器被依据 CLKSB:CLKSA 位值决定的写缓冲区值所更新,所以: • 如果 (CLKSB:CLKSA = 0:0),则寄存器在第二个字节被写后更新 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 如果 (CLKSB:CLKSA!=0:0)则寄存器在两个字节被写后更新, TPM 计数器从 (TPMxMODH:TPMxMODL - 1)改变为 (TPMxMODH:TPMxMODL)。如果 TPM 计数器是一个自运 行计数器,则更新发生在 TPM 计数器值从 0XFFFE 变为 0XFFFF。 • 该闭锁机制可通过写 TPMxSC 地址 (不论 BDM 是否活跃)手动复位。 当 BDM 活跃时,一致机制被暂停 (除非通过写 TPMxSC 寄存器来复位),即使模寄存器的一半或者全 部在 BDM 活跃时被写,缓冲锁仍保持在 BDM 激活时的状态。当 BDM 活跃时,任何写模块寄存器将越过缓 冲锁存而直接写模块寄存器。 7 6 5 4 3 2 1 0 位 15 14 13 12 11 10 9 位8 0 0 0 0 0 0 0 0 读 写 复位 图 10-10. TPM 计数器模寄存器高位 (TPMxMODH) 7 6 5 4 3 2 1 0 位7 6 5 4 3 2 1 位0 0 0 0 0 0 0 0 0 读 写 复位 图 10-11. TPM 计数器模寄存器低位 (TPMxMODL) 在写 TPM 模寄存器前复位 TPM 计数器,以避免混淆计数器第一次溢出发生的时间。 10.5.4 TPM 通道 n 状态和控制寄存器 (TPMxCnSC) TPMxCnSC 包含通道中断状态标志和控制位用来配置中断使能,通道配置和引脚功能。 7 读 6 5 4 3 2 CHnIE MSnB MSnA ELSnB ELSnA 0 0 0 0 0 CHnF 写 0 复位 0 1 0 0 0 0 0 = 保留或未使用 图 10-12. TPM 通道 n 状态和控制寄存器 (TPMxCnSC) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 10-7. TPMxCnSC 位描述 位 描述 7 CHnF 通道 n 标志。 当通道 n 为输入捕捉通道时,通道 n 上的有效边沿触发该位置位。当通道 n 为输出比较或边沿 / 中心对齐 PWM 通道时,当 TPM 计数器的值等于 TPM 通道 n 寄存器的值时 CHnF 被置位。当通道 n 为边沿对齐 / 中心对齐 PWM 通道且占空比被设为 0% 或 100% 时,即使当 TPM 计数器的值等于 TPM 通道 n 寄存器的值时, CHnF 也 不会被置位。当 CHnF 被置位且中断允许 (ChnIE=1)时,产生相应的中断请求。当 CHnF 被置位时通过读 TPMxCnSC,并向 CHnF 写 0 清空 CHnF。在清空序列完成前如果另一个中断请求发生,该序列复位,并且在 清空前一个中断序列之后, CHnF 仍保持置位。这样,不会因为清除前一个中断标志,而丢失新的 CHnF 中断请 求。复位清空 CHnF 位。向 CHnF 写 1 不产生影响。 0 无输入捕捉或输出比较事件发生在通道 n 上 1 输入捕捉或输出比较事件发生在通道 n 上 6 ChnIE 通道 n 中断使能位。该读写位使能通道 n 的中断。复位清空 ChnIE。 0 禁止通道 n 中断请求 1 允许通道 n 中断请求 5 MSnB TPM 通道 n 的 B 模式。当 CPWMS = 0,MSnB = 1 时配置 TPM 通道 n 为边沿对齐 PWM 模式。参阅表 10-8 中 通道模式和设置控制。 4 MSnA TPM 通道 n 的 A 模式。当 CPWMS=0, MSnB=0 时, MSnA 配置 TPM 通道 n 为输入捕捉模式或输出比较模 式。参阅表 10-8 中通道模式和设置控制。 注:在转变为输入捕捉模式之前,如果相关端口引脚在至少两个总线时钟周期内不稳定,将会出现意外的边沿 触发。 3-2 ELSnB ELSnA 边沿 / 电平选择位。 取决于定时器通道的操作模式,通过 CPWMS:MSnB:MSnA 来设置,详细可参照表 10-8。这些位选择输入边沿 的极性来触发一个输入捕捉事件,选择电平驱动一个输出比较匹配或选择 PWM 输出极性。通过设置 ELSnB:ELSnA = 0:0 配置相关定时器引脚作为通用 I/O 引脚。这种功能用于暂时禁止输入捕捉,或当相关定时器 通道被设为不需使用引脚的软定时器时 , 使定时器引脚作通用 I/O 脚。 表 10-8. 模式、边沿和电位选择 CPWMS MSnB:MsnA ELSnB:ELSnA X XX 00 CPWMS MSnB:MsnA ELSnB:ELSnA 模式 配置 引脚不用于 TPM 转换为通用 I/O 或其它外围控制 模式 配置 仅在上升沿捕捉 01 00 10 输入捕捉 仅在下降沿捕捉 11 上升沿或下降沿捕捉 01 比较时锁存输出 0 01 10 输出比较 比较时清空输出 比较时设置输出 11 高保真脉宽 (比较时清空输出) 10 1X X1 边沿对齐 PWM 高保真脉宽 (比较时清空输出) 10 1 XX X1 低保真脉宽 (比较时设置输出) 中心对齐 PWM 低保真脉宽 (比较时设置输出) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 10.5.5 TPM 通道值寄存器 (TPMxCnVH : TPMxCnVL) 这些读写寄存器包含通过输入捕捉功能被捕获的 TPM 计数器值或输出比较的值或 PWM 功能。复位清空 通道寄存器。 7 6 5 4 3 2 1 0 Bit 15 14 13 12 11 10 9 Bit 8 0 0 0 0 0 0 0 0 R W Reset 图 10-13. TPM 通道值寄存器高位 (TPMxCnVH) 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 Bit 0 0 0 0 0 0 0 0 0 R W Reset 图 10-14. TPM 通道值寄存器低位 (TPMxCnVL) 在输入捕捉模式下,在读 (TPMxCnVH : TPMxCnVL)任一字节过程中,寄存器两个字节的内容将被锁 存到缓冲器中,直至读取另外一个字节。当 TPMxCnSC 寄存器被写 (BDM 模式是否活跃)时,这个锁机制 可被复位 (变为非锁定)。任何对通道寄存器的写操作在输入捕捉模式下将被忽略。当 BDM 活跃时,该一致 机制被暂停 (除非通过写 TPMxCnSC 寄存器复位),这样,即使读部分或全部通道寄存器,缓冲器锁存值保 持在 BDM 变为活跃时的状态。这确保了正在读 16 位寄存器时,用户使能 BDM,而在返回到正常执行后,仍 能正确读取 16 位值的另一半。在 BDM 模式下从 TPMxCnVH : TPMxCnVL 寄存器读取的值是寄存器的值而不 是缓冲区的值。 在输出比较或 PWM 模式下,写 (TPMxCnVH : TPMxCnVL)其中的一个字节,并锁存到缓冲区。在两 个都被写完后,根据 CLKSB:CLKSA 位的值和所选的模式被转换成一个 16 位值放入到定时器通道寄存器,所 以: • 如果 CLKSB:CLKSA=0:0,当第二个字节被写入时寄存器被更新。 • 如果 CLKSB:CLKSA!=0:0 且在输出比较模式下,在第二个字节被写后,并且在 TPM 计数器下个变化 时 (分频计数结束)寄存器被更新。 • 如果 CLKSB:CLKSA!=0:0 并且在 EPWM 或 CPWM 模式下,在两个字节被写后, TPM 计数器从 (TPMxMODH : TPMxMODL - 1)变为 (TPMxMODH : TPMxMODL),寄存器被更新。如果 TPM 计 数器是自运行计数器,则当 TPM 计数器从 0XFFFE 变为 0XFFFF 时发生更新操作。 该锁机制可以通过写 TPMxCnSC 寄存器 (不论 BDM 是否活跃)进行手动复位。该锁机制允许以升序或 降序写入 16 位值,方便各种编译器执行。 当 BDM 活跃,该一致机制被暂停 (除非通过写 TPMxCnSC 寄存器复位),该缓冲锁存保持在原状态, 即使部分或全部通道寄存器被写。当 BDM 活跃时,任何写通道寄存器将越过缓冲锁存而直接写通道寄存器。 在 BDM 活跃时且恢复正常执行时,写入通道寄存器的值被用于 PWM 和输出比较操作。当 BDM 活跃,写通 道寄存器不需一致序列的干预。在一致机制被完全实行,用用户写入缓冲的值 (BDM 不活跃时)来更新通道 寄存器。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 10.6 功能描述 所有的 TPM 功能与 16 位计数器相关,此计数器允许灵活的选择时钟源和分频因子。同时还有一个 16 位 模寄存器相应于此主计数器。 CPWMS 控制位为 TPM 的所有通道选择中心对齐 PWM (CPWMS=1)或通用定时功能 (CPWMS=0),该功能可以独立配置使之工作在输入捕捉、输出比较或边沿对齐 PWM 模式下。该 CPWMS 控制位位于主 TPM 状态和控制寄存器,因为它对影响 TPM 的所有通道,并决定主计数器的操作方式。(在 CPWM 模式下,作为通用计数器功能计数器通常为增 / 减模式)。 下面各节将描述核心计数器和每个定时器的操作模式 (输入捕捉,输出比较,边沿对齐 PWM,中心对齐 PWM)。因为引脚操作的细节和中断活跃取决于操作模式,相应的内容在相关模式章节进行讲述。 10.6.1 计数器 所有定时器功能建立在核心 16 位计数器基础之上 (TPMxCNTH : TPMxCNTL)。本节将讨论时钟源的选 择、计数结束溢出、计数增 / 减、计数器复位。 10.6.1.1 计数器时钟源 CLKSB:CLKSA 位于定时器状态和控制寄存器 (TPMxSC),用来选择三个时钟源中的一个或 OFF (能 有效禁止 TPM)。见表 10-5。MCU 在复位后,CLKSB:CLKSA = 0:0,没有时钟源被选择,TPM 处于低功耗 状态。这些控制位可在任意时间被读或写,禁止定时器 (写 00 到 CLKSB:CLKSA)不影响计数器或其它定时 器寄存器中的值。 总线速率时钟是 MCU 的主要系统总线时钟。该时钟源无需同步,因为该时钟用于所有内部 MCU 活动包 括 CPU 和总线操作。 在不带 PLL 电路的 MCU 中或不使用 PLL 电路时,固定系统时钟源和和总线速率时钟源相同,不需要使 用同步器。当使用 PLL 或者 FLL 电路时,在二分频时钟源和定时器计数器之间需要一个同步装置,以保证计 数器转换和总线时钟转换相一致。一个同步装置将被用在芯片层,使与晶振相关的时钟和总线时钟同步。 外部时钟可被接到 TPM 通道的任意脚。该时钟源通过一个同步装置来确保计数器转换和总线时钟转换能 一致。总线速率时钟驱动同步装置;为满足奈奎斯特定理 (Nyquist)采集信号的要求,外部时钟源的频率不 得比总线速率时钟的四分之一更快。理想情况下外部时钟等于总线时钟除以 4。 当外部时钟源复用 TPM 通道引脚时,该引脚不能被用于其它通道的定时功能。例如,当 TPM 通道 0 引 脚被用作定时器外部时钟源时,不能再把它配置成输入捕捉 (用户应尽量避免)。 TPM 通道仍然能在输出比 较模式中使用软件定时功能 (引脚控制设置不影响 TPM 通道引脚)。 10.6.1.2 计数器溢出和模复位 一个中断标志和中断使能与 16 位核心计数器相关。软件可访问的 TOF 用来标识定时器计数器溢出。该 使能信号可选择软件轮询 (TOIE = 0,即无硬件中断产生)或中断驱动 (TOIE = 1,即一个硬件中断产生)。 TOF 是否置位取决于 TPM 是否配置为中心对齐 PWM 模式 (CPWMS=1)。在简单模式下,没有模数限 制, TPM 不是中心对齐 PWM 模式。在这种情况下,该 16 位计数器从 0x0000 计数到 0xFFFF,在下个计数 时钟溢出为 0X0000。当从 0xFFF 变为 0x000 时 TOF 置位。当 TPM 处于中心对齐 PWM 模式时 (CPWMS = 1),当计数器达到模数寄存器中到预设值,并改变计数方向时, TOF 置位。这依据于 PWM 周 期结束时的值。(0x000 计数值对应于一个周期的中间值)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 10.6.1.3 计数模式 该核心定时器计数器有两种计数模式。当选择中心对齐 PWM 模式时 (CPWMS = 1),计数器在增 / 减 模式下操作。在其它情况下,计数器用作单增计数器。作为单增计数器,定时器计数器从 0x0000 计数直到终 点值然后再从 0x0000 重新开始计数。该终端计数是 0xFFFF 或是 TPMxMODH : TPMxMODL 设定的模数值。 当被指定为中心对齐 PWM 模式操作时,定时器计数器从 0x0000 计数直到终点值然后再下降到 0x0000 循环计数。 0x0000 和终点计数值都是正常长度计数值 (一个定时器周期长)。在该模式下,定时器溢出标志 (TOF)在终点计数周期结束时 (计数变为下个更小的计数值时)被置位。 10.6.1.4 手动计数器复位 在任何时候核心定时器计数器可通过写任意值到 TPMxCNTH : TPMxCNTL 其中之一来手动复位。用这种 方式复位计数器同时也复位了一致机制,以防止在复位计数前仅读取部分计数器值。 通道模式选择 10.6.2 若 CPWMS=0,通道 n 状态和控制寄存器中的 MSnB 和 MSnA 控制位决定相关通道操作的基本模式。包 含输入捕捉,输出比较和边沿对齐 PWM。 10.6.2.1 输入捕捉模式 在输入捕捉模式中, TPM 能够捕捉一个外部事件发生的时间。当一个活跃边沿发生在输入捕捉通道引脚 上时, TPM 锁存其计数器内容到通道值寄存器 (TPMxCnVH : TPMxCnVL)。上升沿、下降沿或任意边沿可 被选作活跃边沿触发一个输入捕捉。 在输入捕捉模式下, TPMxCNTH : 和 TPMxCNTL 寄存器只读。 当 16 位捕捉寄存器任一半被读时,另一半被锁存到缓冲中来保证 16 位被一致存取。该一致序列可通过 写通道状态和控制寄存器 (TPMxCnSC)来手动复位。 一个输入捕捉事件设置一个标志位 (CHnF)可产生一个 CPU 中断请求。 在 BDM 模式时,输入捕捉功能可由用户来配置。当一个外部事件发生时, TPM 锁存其计数器内容 (在 BDM 模式下被暂停计数)到通道值寄存器并设置标志位。 10.6.2.2 输出比较模式 有输出比较功能时, TPM 可以根据预设的位置、极性、周期、频率来产生定时脉冲。当计数器达到输出 比较通道的通道值寄存器中设置的值时,该 TPM 可置位、清空或锁存通道引脚。 在输出比较模式下,仅在 16 位寄存器的两个 8 位都被写后,参考 CLKSB: CLKSA 位的值,数值被传递 到相应定时器通道寄存器。所以: • 如果 (CLKSB: CLKSA=0:0),当写入第二个字节,寄存器被更新 • 如果 (CLKSB: CLKSA!=0:0),第二个字节被写后,在 TPM 计数器下个改变时寄存器被更新。 该一致序列可通过写通道状态和控制寄存器 (TPMxCnSC)来手动复位。 一个输出比较事件设置一个标志位 (CHnF),可产生一个 CPU 中断请求。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 10.6.2.3 边沿对齐 PWM 模式 这种 PWM 输出类型使用定时器计数器单增计数模式 (CPWMS=0)且当 TPM 中的其它通道被配置为输 入捕捉或输出比较功能时被使用。该 PWM 信号周期由模寄存器值 (TPMxMODH : TPMxMODL)加 1 决定。 占空比由设置在定时器通道寄存器 (TPMxCnVH : TPMxCnVL)的值来决定。该 PWM 信号的极性由 ELSnA 控制位来决定。 1%和 100%占空比是可能的。 在 TPM 通道值寄存器中的输出比较值决定 PWM 信号的脉宽 (占空比)(图 10-15)。模数溢出和输出 比较之间的时间为脉冲宽度。如果 ELSnA = 0,计数器溢出强制 PWM 信号为高,输出比较强制 PWM 信号为 低。如果 ELSnA = 1,计数器溢出强制 PWM 信号为低,输出比较强制 PWM 信号为高。 溢出 溢出 溢出 周期 脉冲宽度 TPMxCHn 输出比较 输出比较 输出比较 图 10-15. PWM 周期和脉冲宽度 (ELSnA= 0) 当通道值寄存器被设为 0x0000 时,占空比为 0%。通过设置定时器寄存器 (TPMxCnVH : TPMxCnVL) 为一个大于模数设置的值,可达到 100% 占空比。这表明为了获得 100% 占空比模数设置必须小于 0xFFFF。 因为 TPM 可用于 8 位 MCU,定时器通道寄存器中的设置被放到缓冲以确保 16 位一致更新和避免不可预 料的脉宽。写 TPMxCnVH 和 TPMxCnVL 寄存器实际上是写缓冲寄存器。在边沿对齐 PWM 模式下,参考 CLKSB: CLKSA 位的值,数值可以传递到相应定时器通道寄存器。所以: • 如果 (CLKSB:CLKSA = 0:0),当写第二个字节时,寄存器被更新 • 如果 (CLKSB:CLKSA != 0:0),在两个字节都被写入后, TPM 计数器从 (TPMxMODH : TPMxMODL -1)变为 (TPMxMODH : TPMxMODL),寄存器被更新。如果 TPM 计数器是一个自运 行计数器则当 TPM 计数器从 0XFFFE 变为 0XFFFF 时,更新被执行。 10.6.2.4 中心对齐 PWM 模式 这种 PWM 输出类型使用定时器计数器增 / 减计数模式 (CPWMS = 1)。当周期是由 TPMxMODH TPMxMODL 中的值决定时, TPMxCnVH : TPMxCnVL 中的输出比较值决定了 PWM 信号的脉宽 (占空比)。 TPMxMODH:TPMxMODL 应该被保持在 0x0000 到 0x7FFF 范围之间,因为这个范围之外的值易产生不确定 结果。 ELSnA 决定 CPWM 输出的极性。 脉宽 = 2 × (TPMxCnVH : TPMxCnVL) 周期 = 2 × (TPMxMODH:TPMxMODL); TPMxMODH:TPMxMODL = 0x0001- 0x7FFF 如果通道值寄存器 TPMxCnVH : TPMxCnVL 为零或负数 (位 15 置位),占空比将为 0%。如果 TPMxCnVH : TPMxCnVL 为正数 (位 15 清空)且大于模数设定值 (非负),占空比为 100%,这是因为绝不 会发生占空比相比。这表明由模数寄存器设定的可用周期范围是从 0x0001 到 0x7FFE。这不是一个重要的限 制。产生结果的周期将比一般应用的周期长很多。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 TPMxMODH:TPMxMODL = 0x0000 是一个特殊情况,通常不用于中心对齐 PWM 模式。当 CPWMS = 0 时,计数器将从 0x0000 到 0xFFFF 自动运行,但当 CPWMS = 1 时,为了改变计数方向从单增计数转为单减 计数,该计数器需要在大于 0x0000 的某处给模数寄存器一个有效的匹配。 TPM 通道寄存器中的输出比较值决定 CPWM 信号 (图 10-16)的脉宽 (占空比)。如果 ELSnA = 0, 当计数增大强制 CPWM 输出信号为低时进行一个比较,当计数减小强制输出为低时进行一个比较。计数器计 数增加直到它达到 TPMxMODH:TPMxMODL 中的模数设定值,然后计数下降直至为零。这将设置周期等于两 倍 TPMxMODH:TPMxMODL。 输出比较 计数器 = TPMxMODH:TPMxMODL ( 递减计数 ) 计数器 = 0 输出比较 ( 递增计数 ) 计数器 = TPMxMODH:TPMxMODL TPMxCHn 脉冲宽度 2 x TPMxCnVH:TPMxCnVL 周期 2 x TPMxMODH:TPMxMODL 图 10-16. 16CPWM 周期和脉冲宽度 (ELSnA=0) 中心对齐 PWM 输出比边沿对齐 PWM 模式产生更少的噪音,这是因为较少的 I/O 引脚转换被列队在同一 个系统时钟边沿。某些需要电机驱动的类型也需要这种 PWM 类型。 当计数器操作在增 / 减计数模式时,输入捕捉、输出比较和边沿对齐 PWM 功能无意义,这表明当 CPWMS = 1 时,所有带 TPM 的活跃通道必须运行于 CPWM 模式。 TPM 可被用在 8 位 MCU。定时器通道寄存器中的设置被缓存以确保 16 位一致更新和避免产生不可预料 的 PWM 脉宽。写 TPMxMODH、 TPMxMODL、 TPMxCnVH 和 TPMxCnVL 实际上就是写缓冲寄存器。 在中心对齐 PWM 模式下,根据 CLKSB: CLKSA 位的值用写缓冲里的值来更新 TPMxCnVH:L 寄存器。 所以: • 如果 (CLKSB: CLKSA=0:0),当第二个字节被写时寄存器被更新 • 如果(CLKSB: CLKSA!=0:0),在两个字节都被写后,TPM 计数器从(TPMxMODH : TPMxMODL 1 )变为 (TPMxMODH : TPMxMODL)时寄存器被更新。如果 TPM 计数器是一个自运行计数器则当 TPM 计数器从 0XFFFE 变为 0XFFFF 时更新被执行。 写 TPMxSC 会取消任何写入 TPMxMODH 和 / 或 TPMxMODL 的值,并且复位模寄存器一致机制。写 TPMxCnSC 会取消写入通道值寄存器的值,并且复位 TPMxCnVH : TPMxCnVL 的一致机制。 10.7 10.7.1 复位概述 概要 MCU 复位会导致 TPM 复位。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 复位操作 10.7.2 复位清零 TPMxSC 寄存器并禁止 TPM 时钟和定时器溢出中断 (TOIE=0)。 CPWMS、 MSnB、MSnA、 ELSnB、 ELSnA 被清零,为不带 I/O 引脚逻辑的相关引脚的输入捕捉操作配置所有 TPM 通道 (所以所有与 TPM 相关的 MCU 引脚恢复为通用 I/O 引脚)。 10.8 中断 10.8.1 概述 TPM 给核心计数器提供一个溢出中断,并给每个通道提供一个中断。该通道中断意义取决于每个通道的 操作模式。如果通道被配置为输入捕捉,则每次设定的输入捕捉边沿被确认时中断标志被置位。如果通道被配 置为输出比较或 PWM 模式,当核心定时器计数器等于 16 位通道值寄存器值,中断被置位。 所有 TPM 中断被列在表 10-9,包括中断名称,中断使能。这些中断使能可阻塞离开 TPM 的中断请求和 通过独立中断处理逻辑获得确认。 表 10-9. 中断 中断名称 中断使能名称 触发源 描述 TOF TOIE 计数器溢出 每次定时器计数器达到它的最终计数值时置位 (可转向下个计数值通常为 0x0000) CHnF ChnIE 通道事件 一个输入捕捉或输出比较事件发生在通道 n TPM 模块将提供一个高保真中断信号。中断向量和优先级由终端模块芯片集成时间决定,可参考用户手 册的中断模块章节或芯片完整文档了解相关的细节。 10.8.2 中断操作描述 对于 TPM 的每个中断源,当中断情形,如定时器溢出,通道输入捕捉,或输出比较事件被确定,将对一 个标志位置位。该标志位可通过软件读取,以确定事件已发生,或者设置相关使能为允许硬件中断。当中断使 能位被置位,只要相关中断标志等于 1,将产生一个相应的中断。用户软件必须执行一些步骤序列,用以在终 端服务例程返回之前清空中断标志。 清空 TPM 中断标志的流程包括两个步骤,即当标志位为 1 时读出它然后将它置 0。如果在这两步处理之 间检测到新事件,该序列被复位,在第二步后中断标志位保持置位以避免丢失新事件。 10.8.2.1 定时器溢出中断 (TOF) TOF 中断操作的细节和方式取决于 TPM 系统操作的模式 (通用定时功能对应于中心对齐 PWM)。该标 志位可通过上述两步处理来清零。 10.8.2.1.1 通常情形 通常情况下,当定时器计数器从 0xFFFF 变为 0x0000 时 TOF 被置位。当 TPM 未被配置为中心对齐 PWM 模式 (CPWMS=0)时,在定时器计数值从终点值 (模数寄存器中的值)变为 0x0000 时 TOF 置位。 这种情形为计数器溢出一般方式。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 10.8.2.1.2 中心对齐 PWM 情形 CPWMS = 1 时,当定时器计数器在终点值 (模数寄存器中的值)处改变计数方向从递增转为递减时, TOF 置位。这种情形下, TOF 对应一个 PWM 周期的末尾。 10.8.2.2 通道事件中断描述 通道中断方式取决于通道当前模式 (输入捕捉,输出比较,边对齐 PWM。中心对齐 PWM)。 10.8.2.2.1 输入捕捉事件 当通道被配置为输入捕捉通道时, ELSnB:ELSnA 控制位选择无边沿,上升沿,下降沿或任意边沿作为触 发输入捕捉事件边沿。当检测到被选择边沿时,中断标志位被置位。该标志位可通过在 10.8.2 节 中断操作描 述中的两步流程来清零。 10.8.2.2.2 输出比较事件 若通道被配置为输出比较通道,当核心定时器计数器值等于通道值寄存器 16 位值时,中断标志位被置 位。该标志位可通过 10.8.2 节 中断操作描述中的两步流程来清零。 10.8.2.2.3 PWM 结束占空比事件 若通道被配置为 PWM,则可能的操作有两种。当通道被配置为边沿对齐 PWM 时,在定时器计数器等于 通道值寄存器 ( 标记活跃占空比周期末尾 ) 时通道标志被置位。当通道被配置为中心对齐 PWM 时,在每个 PWM 周期内,定时器计数器两次等于通道值寄存器的值。在这种 CPWM 情形下,在占空比周期的开始和结 尾时通道标志被置位,此时,定时器计数器的值等于通道寄存器的值。该标志位可通过在 10.8.2 节 中断操作 描述中的两步流程来清零。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 11 章 11.1 串行通信接口 (S08SCIV4) 简介 MC9S08AC16 系列包含两个独立的串行通信接口模块 (SCI),也被称为通用异步收发器 (UART)。 通常,这些系统连接到个人计算机或工作站的 RS232 串行输入输出口 (I/O),但也可以和其他嵌入式控制器 通信。 灵活的 13 位模块化的波特率产生器支持超过 115.2 kB 的标准波特率。SCI 的发送和接收使用相同的波特 率,并且每个 SCI 模块都有各自独立的波特率产生器。 本 SCI 提供了多种高级特性,这些特性很少在其他嵌入式控制器的异步串行 (I/O)设备中出现。接收器 使用先进的数据采样技术确保可靠的通信和噪音检测。也包括硬件奇偶校验,接收器唤醒,发送和接收的双缓 冲。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A 10 位 A/D 转换模块 PORT B VDDAD VSSAD VREFL VREFH PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 16K 或 8K 片内 串行外设接口模块 (SPI) Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 11-1. 显亮 SCI 模块和引脚的 MC9S08AC16 模块结构图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 特性 11.1.1 SCI 模块具有以下特性: • 全双工,标准的不归零 (NRZ)格式。 • 发送器和接收器内具有各自的双缓冲,并可分别使能。 • 可编程的波特率 (13 位模因子)。 • 中断驱动或轮询操作: • 发送数据寄存器空和发送完成 • 接收数据寄存器满 • 接收溢出,奇偶校验错误,帧错误,和干扰错误 • 接收器空闲检测 • 接收引脚上的有效边沿 • 间断检测支持 LIN • 硬件奇偶产生和校验。 • 可编程的 8 位或 9 位的字符长度。 • 空闲线或地址标记唤醒接收器。 • 可选的 13 位间断字符产生或 11 位的间断字符检测。 • 可选的发送器输出极性。 11.1.2 操作模式 在下列模式中 SCI 操作的细节,参见第 11.3 节 功能描述。 • 8 位或 9 位的数据模式 • 停止模式操作 • 轮询模式 • 单线模式 11.1.3 框图 图 11-2 为 SCI 的发送器部分。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 内部总线 (只写) LOOPS SCID – Tx 缓冲 RSRC 11 位发送移位寄存器 开始 循环控制 停止 M H 8 7 6 5 4 3 2 1 0 去 TxD 引脚 L LSB 1 × 波特率时钟 TO RECEIVE DATA IN 移位方向 产生奇偶校验 PT 终止 ( 全 0) 前导 ( 全 1) PE 移位允许 T8 从 SCIxD 导入 TXINV SCI 控制 TxD TE SBK 传输控制 TXDIR 去 TxD 引脚逻辑 TxD 方向 BRK13 TDRE TIE TC Tx 中断请求 TCIE 图 11-2. SCI 发送器原理结构图 图 11-3 为 SCI 的接收器部分。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 内部总线 ( 只读 ) 16 × 波特率 时钟 16 分频 SCID – Rx 缓冲 发送器 LBKDE H 数据恢复 WAKE 8 7 6 5 4 3 2 1 开始 RxD 引脚 RXINV LSB RSRC MSB 结束 11 位接收移位寄存器 M 单线循环控制 ALL 1s LOOPS 0 L 移位方向 唤醒逻辑 RWU ILT RWUID 有效边沿检测 RDRF RIE IDLE ILIE Rx 中断请求 LBKDIF LBKDIE RXEDGIF RXEDGIE OR ORIE FE FEIE 错误中断请求 NF NEIE PE PT 奇偶校验 PF PEIE 图 11-3. SCI 接收器原理结构图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 寄存器定义 11.2 SCI 有 8 个 8 位寄存器,分别用于控制波特率、选择 SCI 选项、报告 SCI 状态和发送 / 接收数据。 SCI 寄存器的绝对地址参见本数据手册内存一章中的直接页寄存器的概述。这里通过这些寄存器和控制位 的名称来引用它们。通常, Freescale 提供一个头文件把它们的名称翻译为绝对地址。 11.2.1 SCI 波特率寄存器 (SCIxBDH、 SCIxBDL) 这两个寄存器控制产生 SCI 波特率的预分频因子。设置 13 位的波特率 [SBR12:SBR0],先写新值的高半 部分到 SCIxBDH,然后写 SCIxBDL。直到写完 SCIxBDL, SCIxBDH 的值,波特率才改变。 SICxBDL 复位后的值非零,所以复位后波特率产生器仍然禁止,直到接收或发送第一次被允许 (SCIxC2 的 RE 或 TE 置 1)。 7 6 LBKDIE RXEDGIE 0 0 5 读 写 复位 4 3 2 1 0 SBR12 SBR11 SBR10 SBR9 SBR8 0 0 0 0 0 0 0 = 保留或未使用 图 11-4. SCI 波特率寄存器 (SCIxBDH) 表 11-1. SCIxBDH 寄存器域描述 域 7 LBKDIE 描述 LIN 中止检测中断使能 (对于 LBKDIF) 0 禁止来自 LBKDIF 的硬件中断 (使用轮询)。 1 当 LBKDIF 标志为 1 时,发送硬件中断请求。 6 RXEDGIE RxD 输入有效边中断使能 (对 RXEDGIF) 0 禁止来自 RXEDGIF 的硬件中断 (使用轮询)。 1 当 RXEDGIF 标志为 1 时,发送硬件中断请求。 4:0 SBR[12:8] 波特率分配因子——13 位的 SBR[12:0] 记作 BR,可以设置 SCI 波特率产生器的分频率。当 BR=0 时, SCI 波 特率产生器被禁止以减少电路消耗。 BR 可以从 1 到 8191, SCI 波特率 =BUSCLK/(16*BR)。其他的 BR 位请参 见表 11-2。 7 6 5 4 3 2 1 0 SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 0 0 0 0 0 1 0 0 R W Reset 图 11-5. SCI 波特率寄存器 (SCIxBDL) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 11-2. SCIxBDL 寄存器域描述 域 描述 7:0 SBR[7:0] 波特率分配因子——13 位的 SBR[12:0] 记作 BR,可以设置 SCI 波特率产生器的分频率。当 BR=0 时, SCI 波特 率产生器被禁止以减少电路消耗。 BR 可以从 1 到 8191, SCI 波特率 =BUSCLK/(16*BR)。其他的 BR 位请参考 表 11-1。 11.2.2 SCI 控制寄存器 1 (SCIxC1) 可读写寄存器,用于控制多个 SCI 的可选功能。 7 6 5 4 3 2 1 0 LOOPS SCISWAI RSRC M WAKE ILT PE PT 0 0 0 0 0 0 0 0 读 写 复位 图 11-6. SCI 控制寄存器 1 (SCIxC1) 表 11-3. SCIxC1 寄存器域描述 域 7 LOOPS 6 SCISWAI 5 RSRC 4 M 3 WAKE 2 ILT 描述 循环模式选择——选择循环模式和正常的全双工模式。当 LOOPS=1 时,此时发送器的输出连接到接收器的输 入。 0 正常操作 --- RxD 和 TxD 采用不同的引脚。 1 循环或者单线模式,此时发送器的输出连接到接收器的输入。 等待模式下 SCI 停止位 0 在等待模式下, SCI 时钟继续运行,所以 SCI 可以作为唤醒 CPU 的中断源。 1 在等待模式下, SCI 时钟停止运行。 接收源选择——仅在 LOOPS 位为 1 时有意义。当 LOOPS=1 时,接收器输入在内部连接到 TxD 引脚上, RSRC 决定引脚是否连接到发送器输出。 0 如果 LOOPS=1, RSRC=0 时,内部循环模式和 SCI 不使用 RxD 引脚。 1 单线 SCI 模式, TxD 引脚连接到发送器输出和接收器输入。 9 位或 8 位模式选择 0 正常——开始位 +8 位数据位 (首先传输最低有效位 LSB) + 停止位。 1 接收和发送使用 9 位数据字符 开始位 +8 位数据位 (首先传输最低有效位 LSB) +9 位数据位 + 停止位。 接收器唤醒方式选择——更多信息参见 11.3.3.2 节 接收唤醒。 0 空闲线唤醒。 1 地址符号唤醒。 空闲线类型选择——设置这个位为 1 保证字符后面的停止位和逻辑 1 的个数不超过 10 或 11 位 (空闲线检测逻 辑需要的高电平)。更多信息参见 11.3.3.2.1 节 空闲线唤醒 0 空闲字符位从 “开始位”开始计数。 1 空闲字符位从 “停止位”开始计数。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 11-3. SCIxC1 寄存器域描述 ( 续 ) 域 描述 1 PE 奇偶校验允许——允许硬件奇偶校验产生和校验。当允许奇偶校验时,数据字符 (第 8 或 9 位)的最高有效位 (MSB)作为校验位。 0 不允许奇偶校验。 1 允许奇偶校验。 0 PT 奇偶校验类型——如果奇偶校验允许 (PE=1),这个位选择奇校验或偶校验。奇校验是数据字符中 1 的总数 (包括奇偶位)是奇数。偶校验是数据字符中 1 的总数 (包括奇偶位)是偶数。 0 偶校验。 1 奇校验。 11.2.3 SCI 控制寄存器 2 (SCIxC2) 可读写寄存器,用于控制多个 SCI 的可选功能。 7 6 5 4 3 2 1 0 TIE TCIE RIE ILIE TE RE RWU SBK 0 0 0 0 0 0 0 0 读 写 复位 图 11-7. SCI 控制寄存器 2 (SCIxC2) 表 11-4. SCIxC2 寄存器域描述 域 7 TIE 6 TCIE 描述 发送中断允许 (用于 TDRE) 0 TDRE 的硬件中断禁止 (使用轮询)。 1 当 TDRE 标志位是 1,发送硬件中断请求。 发送完成中断允许 (用于 TC) 0 TC 的硬件中断禁止 (使用轮询)。 1 当 TC 标志位是 1,发送硬件中断请求。 5 RIE 接收中断允许 (用于 RDRE) 0 RDRE 的硬件中断禁止 (使用轮询)。 1 当 RDRE 标志位是 1,发送硬件中断请求。 4 ILIE 空闲线中断允许 (用于 IDLE) 0 IDLE 的硬件中断禁止 (使用轮询)。 1 当 IDLE 标志位是 1,发送硬件中断请求。 3 TE 发送允许 0 发送器关。 1 发送器开。 使用 SCI 发送器则 TE 要置 1,当 TE=1 时, SCI 强制 TxD 引脚作为 SCI 系统的输出。 当 SCI 设置位单线操作 (LOOPS=RSRC=1), TXDIR 控制单个 SCI 传输线 (TxD 引脚)的传输方向。 TE=0 也可以表示一个空闲字符在排队, TE=1 则传输在处理中。更多细节参见 11.3.2.1 节 发送间隔和等待空 闲。 当 TE=0 时,在引脚变回通用 I/O 引脚前,发送器一直控制 TxD 引脚,直到有数据,等待空闲或等待间隔符排队 完成传输。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 11-4. SCIxC2 寄存器域描述 域 描述 2 RE 接收允许——当接收器关时, RxD 引脚变回通用 I/O 引脚。如果 LOOPS=1,即使 RE 等于 1RxD 也会变回通用 I/O 引脚。 0 接收关。 1 接收开。 1 RWU 接收唤醒控制——该位置 1, SCI 接收器进入待命状态,等待扫描到唤醒条件。唤醒条件是信息之间的空闲线 (WAKE=0,空闲线唤醒)或者字符的最高有效位是逻辑 1 (WAKE=1,地址符号唤醒)。应用软件置位 RWU, (通常)硬件唤醒条件自动清零 RWU。更多信息参见 11.3.3.2 节 接收唤醒。 0 正常 SCI 接收操作。 1 待命的 SCI 接收器等待唤醒条件。 0 SBK 发送终止——向 SBK 写一个 1 然后一个 0,一个间隔符插入传输数据流。只要 SBK=1、 10 或 11 (13 或 14)个 逻辑 0 的间隔符也会插入传输数据流。第二个间隔符可能在软件清 SBK 前产生,这依赖于 SBK 在正传输的信息 时复位和清零的时间选择。更多信息参见 11.3.2.1 节 发送间隔和等待空闲。 0 正常发送操作。 1 发送对了终止字符。 11.2.4 SCI 状态寄存器 1 (SCIxS1) 该寄存器有 8 个只读状态标志。写无影响。专门的软件序列 (不是写该寄存器)用来清零这些状态位。 读 7 6 5 4 3 2 1 0 TDRE TC RDRF IDLE OR NF FE PF 1 1 0 0 0 0 0 0 写 复位 = 保留或未使用 图 11-8. SCI 状态寄存器 1 (SCIxS1) 表 11-5. SCIxS1 域描述 域 描述 7 TDRE 发送缓冲区空标志——TDRE 在复位时置位。而且当发送数据从发送数据缓冲区传到发送移位寄存器为新字符留 出空间时, TDRE 也置位。 SCIxS1 的 TDRE=1 然后写 SCI 数据寄存器可以清零 TDRE。 0 发送数据寄存器 (缓冲区)满。 1 发送数据寄存器 (缓冲区)空。 6 TC 发送完成标志——TC 在复位时置位。而且当 TDRE=1 并且没有数据,前导符或间隔符发送时, TC 也置位。 0 发送器忙 (发送数据,前导符或间隔符)。 1 发送器空闲。 读 SCIxS1 的 TC=1 然后做下面的 3 件事情之一, TC 就会自动清零。 • 写 SCI 数据寄存器 (SCIxD)发送新数据。 • 改变 TE 从 0 到 1 插入前导符。 • 置 1SCIxC2 的 SBK 插入间隔符。 5 RDRF 接收器满标志——当字符从接受移位寄存器传输到接收数据寄存器 (SCIxD)时, RDRF 置位。读 SCIxS1 的 RDRF=1 然后读 SCI 数据寄存器 (SCIxD)可以清 RDRF。 0 接收数据寄存器空。 1 接收数据寄存器满。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 11-5. SCIxS1 域描述 ( 续 ) 域 描述 4 IDLE 接收器空闲标志——SCI 工作一段时间后,如果接收线空闲, IDLE 则置位。当 ILT=0 时,接收器开始计数开始 位后的空闲时间。所以如果接收字符全 1,这些位的时间和停止位的时间达到了一个字符的逻辑高 (10 或 11 位 依赖于 M 控制位),这会导致接收器认为检测到空闲,当 ILT=1 时,接收器直到停止位后才开始数空闲时间。 所以停止位和先前字符的逻辑高不会到达一个字符逻辑高的时间,从而不会被检测为空闲线。 读 SCIxS1 的 IDLE=1 然后读 SCI 数据寄存器 (SCIxD)可以清零 IDLE。 IDLE 清零后,直到接收到一个新的字 符并且 RDRF 被置位, IDLE 才能再次置位。即使接收线长时间保持空闲, IDLE 也只会被置位一次。 0 未检测到空闲线。 1 检测到空闲线。 3 OR 接收器溢出标志——当新的字符准备传到接收数据寄存器,而前面接收的数据还没有从 SCIxD 中读走, OR 置 位。在这种情况下,因为没有空间把这些数据移到 SCIxD 中,所以新的字符 (和所有的相关错误信息)丢失。 读 SCIxS1 的 OR=1 然后读 SCI 数据寄存器 (SCIxD)可以清零 OR。 0 未溢出。 1 接收溢出 (新数据丢失)。 2 NF 噪音标志位——在接受器中使用先进的采样技术,开始位采样 7 次,每个数据位和停止位采样 3 次。在接收到 数据时, RDRF 置位的同时,如果在帧中某个采样和其他的采样不同,则标志 NF 置位。读 SCIxS1 然后读 SCI 数据寄存器 (SCIxD)可以清零 NF。 0 未检测到噪音。 1 SCIxD 中接收到的字符检测到噪音。 1 FE 帧错误标志——接收器在停止位检测到逻辑 0 时, FE 和 RDRF 置位。这表明接收器没有对齐字符帧。读 SCIxS1 的 FE=1 然后读 SCI 数据寄存器 (SCIxD)可以清零 FE。 0 未检测到帧错误。这并不确保帧时正确的。 1 帧错误。 0 PF 奇偶错误标志——当奇偶校验使能 (PE=1)并且接收到的数据中的校验位和正确的校验位不同, PE 和 RDRF 置位。读 SCIxS1 然后读 SCI 数据寄存器 (SCIxD)可以清零 PF。 0 无奇偶校验错误。 1 有奇偶校验错误。 11.2.5 SCI 状态寄存器 2 (SCIxS2) 该寄存器有 1 个只读状态标志。 7 6 LBKDIF RXEDGIF 0 0 5 R 4 3 2 1 0 RXINV RWUID BRK13 LBKDE 0 0 0 0 0 RAF W Reset 0 0 = 保留或未使用 图 11-9. SCI 状态寄存器 2 (SCIxS2) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 11-6. SCIxS2 域描述 域 1 描述 7 LBKDIF LIN 终止检测中断标志——当使能 LIN 间隔检测电路,并且检测到一个 LIN 间隔符, LBKDIF 置位。向 LBKDIF 写 1, LBKDIF 清零。 0 未检测到 LIN 间隔符。 1 检测到 LIN 间隔符。 6 RXEDGIF RxD 引脚有效边沿中断标志——当 RxD 引脚上一个有效边沿发生时 (如果 RXINV=0,下降沿,如果 RXINV=1,上升沿) RXEDGIF 置位。向其写 1, RXEDGIF 清零。 0 在接收引脚上无有效边沿发生。 1 在接收引脚上有效边沿发生。 4 RXINV1 接收数据反转——该位置位则接受的数据输入的极性反转。 0 接收的数据未反转。 1 接收的数据反转。 3 RWUID 接收唤醒空闲检测——RWUID 控制空闲字符是否置位 IDLE 位。 0 在接收待命状态 (RWU=1)期间,检测到空闲字符时, IDLE 不置位。 1 在接收待命状态 (RWU=1)期间,检测到空闲字符时, IDLE 置位。 2 BRK13 间隔符长度——BRK13 可以选择更长的发送间隔符长度。该位的状态不影响帧错误的检测。 0 间隔符长度是 10 字节 (M=1 则为 11)。 1 间隔符长度是 13 字节 (M=1 则为 14)。 1 LBKDE LIN 间隔检测使能——LBKDE 可以选择更长的间隔符检测长度。当 LBKDE 置位时,可以防止帧错误 (FE) 和接收数据寄存器满 (RDRF)标志置位。 0 间隔符的检测长度是 10 字节 (M=1 则为 11)。 1 间隔符的检测长度是 11 字节 (M=1 则为 12)。 0 RAF 接收器有效标志——当 SCI 接收器检测到有效位的开始, RAF 置位;当接收器检测到空闲线, RAF 清零。该 状态位可以用来检查 MCU 进入停止模式前, SCI 字符是否正被接收。 0 SCI 接收器空闲等待开始位。 1 SCI 处于活动中 (RxD 输入无效)。 置位 RXINV 反转 RxD 输入的各种情况:数据位,开始位和停止位,终止和空闲。 当在 LIN 系统中使用内部振荡器时,有必要把间断检测极限值增加一位。在最坏的情况下, LIN 允许的的 定时条件可能把 0x00 数据字符看做 10.26 位字节,因为在从机上运行比主机快 14%。这将触发正常的间隔检 测电路 (用来检测 10 位间隔标志)。当 LBKDE 位置位时,帧错误可以减少,间隔检测阈从 10 位变成 11 位 以防止把 0x00 数据字符错误地检测成 LIN 间隔符号。 11.2.6 SCI 控制寄存器 3 (SCIxC3) 7 读 5 4 3 2 1 0 T8 TXDIR TXINV ORIE NEIE FEIE PEIE 0 0 0 0 0 0 0 R8 写 复位 6 0 = 保留或未使用 表 11-7. SCI 控制寄存器 3 (SCIxC3) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 11-8. SCIxC3 域描述 1 域 描述 7 R8 接收器的第九数据位——当 SCI 设置为 9 位数据时 (M=1), R8 可以看作 SCIxD 寄存器中数据的最高有效位左 边的第九位接收数据。当读 9 位数据时,因为读 SCIxD 会自动完成清零标志 (允许在 R8 和 SCIxD 中写入新数 据),在读 SCIxD 之前先读 R8。 6 T8 发送器的第九数据位——当 SCI 设置为 9 位数据时 (M=1), T8 可以看作 SCIxD 寄存器中数据的最高有效位左 边的第九位发送数据。当写 9 位数据时,在写 SCIxD 之后整个 9 位值传到 SCI 移位寄存器,所以 T8 应该在写 SCIxD 之前先写 (如果 T8 需要改变它的值)。如果 T8 不需要改变值 (比如当它用于产生标记或空间奇偶校 验)则不需要每次写 SCIxD 都重写。 5 TXDIR 单线模式 TxD 引脚方向——当 SCI 被设置为单线半双工操作时 (LOOPS=RSRC=1),该位决定 TxD 引脚上的 数据方向。 0 单线模式下 TxD 引脚为输入。 1 单线模式下 TxD 引脚位输出。 4 TXINV1 发送数据反转——该位置位则发送数据的输出的极性反转。 0 发送数据未反转。 1 发送数据反转。 3 ORIE 溢出中断使能——该位使能溢出标志 (OR),产生硬件中断请求。 0 禁止 OR 中断 (使用轮询)。 1 当 OR=1 时,发出硬件中断请求。 2 NEIE 噪音错误中断使能——该位使能溢出标志 (NF),产生硬件中断请求。 0 禁止 NF 中断 (使用轮询)。 1 当 NF=1 时,发出硬件中断请求 1 FEIE 帧错误中断使能——该位使能帧错误标志 (FE),产生硬件中断请求。 0 禁止 FE 中断 (使用轮询)。 1 当 FE=1 时,发出硬件中断请求 0 PEIE 奇偶校验错误中断使能——该位使能奇偶校验错误标志 (PF),产生硬件中断请求。 0 禁止 PF 中断 (使用轮询)。 1 当 PF=1 时,发出硬件中断请求 置位 TXINV 反转 TxD 输出的各种情况:数据位,开始位和停止位,终止和空闲。 11.2.7 SCI 数据寄存器 (SCIxD) 该寄存器实际上是两个独立的寄存器。读操作读到只读接收数据缓冲区的内容,写操作写入发送数据缓 冲区。该寄存器的读和写也和 SCI 状态标志的标识自动清零机制有关。 7 6 5 4 3 2 1 0 读 R7 R6 R5 R4 R3 R2 R1 R0 写 T7 T6 T5 T4 T3 T2 T1 T0 0 0 0 0 0 0 0 0 复位 图 11-10. SCI 数据寄存器 (SCIxD) 11.3 功能描述 SCI 是一种全双工,异步, NRZ 的串行通信。用于 MCU 和其他远程设备 (包括其他 MCU)通信。 SCI 包括一个波特率产生器,发送器和接收器。虽然使用相同的波特率产生器,发送器和接收器独立工作。正常工 作时, MCU 监控 SCI 的状态,写数据发送,处理接收的数据。接下来描述每个 SCI 模块。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 11.3.1 波特率产生 如图 11-11 所示, SCI 波特率产生器的时钟源时总线时钟。 取模(从 1 到 8191) BUSCLK SBR12:SBR0 16 分频 Tx 波特率 Rx 采样时钟 (16 × 波特率 ) 如果 [SBR12:SBR0] = 0 波特率产生器停止工作 波特率 = BUSCLK [SBR12:SBR0] × 16 图 11-11. SCI 波特率产生 SCI 通信要求发送器和接收器 (通常从独立的时钟源获得波特率)使用相同的波特率。所允许的波特频 率由两个部分决定,接收器怎样同步开始位的有效沿和位采样怎样操作。 MCU 在每个高到低转换时都会重新同步位边界。但是在最坏的情况下,在 10 或 11 位的字符帧中没有这 种转换,所以在整个字符期间任何波特率的不匹配都会积累起来。在飞思卡尔半导体的 SCI 系统中,其总线 频率有一个晶振得到,所允许的波特率不匹配是 4.5% (8 位数据格式)和 4% (9 位数据格式)。虽然波特 率分频因子的设置并不总是产生正好匹配标准的波特率,但是通常偏差都在很小的百分比,可以保障可靠的通 信。 11.3.2 发送功能描述 本节描述 SCI 接收器的框图和发送终止和空闲字符的功能。发送器的框图图 11-2 所示。 发送器输出 (TxD)空闲状态默认是逻辑高 (复位后 TXINV=0)。设置 TXINV=1,发送器输出被反转。 置位 SCIxC2 的 TE,发送器使能。发送器发出一个前导符 (一个空闲状态的满字符帧)。直到发送数据缓冲 区的数据准备好,发送器保持空闲。写 SCI 数据寄存器 (SCIxD)可以将数据存到发送数据缓冲区。 SCI 发送器的主要部分是发送移位寄存器, 10 位或 11 位长 (由 M 控制位决定)。在本节以后的部分, 我们假定 M=0 (选择正常的 8 位数据模式)。在 8 位数据模式下,移位寄存器包含 1 个开始位, 8 个数据位, 1 个停止位。当发送移位寄存器允许接受新的 SCI 字符时,等待在发送数据寄存器的值传到移位寄存器 (由 波特率时钟同步)并且发送数据空 (TDRE)状态标志置位以表示 SCIxD 内的发送数据缓冲区可以写入另一 个字符。 TxD 引脚发出停止位后,如果没有数据等待发送数据缓冲区,发送器置位发送完成标志并进入空闲状态, TxD 逻辑高,等待传输字符。 写 0 到 TE 并不能立即使引脚成为通用 I/O 引脚,必须先完成正在进行的发送过程。这包括正在处理的数 据,等待空闲字符和等待间隔符。 11.3.2.1 发送间隔和等待空闲 SCIxC2 的 SBK 用于发送间隔符 (原来用于与电传打字机进行通信初始化)。间隔符是一个字符的逻辑 0 (10 位包含开始位和停止位)。置位 BRK13=1,则间隔符可以达到 13 位的长度。通常,程序等待 TDRE 置位 (表示信息的最后一个字符移到发送移位寄存器),然后向 SBK 位先后写 1 和 0。这样的话,只要移位 寄存器可用,就会发送间隔符。如果当间隔符进入移位寄存器 (由波特率时钟同步) SBK 仍为 1,则有另外 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 一个间隔符在等待。如果接收设备是另一个飞思卡尔半导体的 SCI,则接受的 8 位间隔符全 0,并且产生帧错 误 (FE=1)。 当使用空闲线唤醒时,两个信息之间需要一个空闲 (逻辑 1)的字符,以唤醒处于睡眠状态的接收器。 通常,程序等待 TDRE 置位 (表示信息的最后一个字符移到发送移位寄存器),然后向 TE 位先后写 0 和 1。 这样的话,只要移位寄存器可用,就会发送空闲符。只要移位寄存器的字符没有完成 (TE=0), SCI 发送器 就不会释放对 TxD 引脚的控制。如果移位寄存器有完成的可能性 (TE=0),设置为通用 I/O 控制,则引脚和 TxD 复用,输出逻辑 1。这确保了 TxD 线看起来像正常的空闲线,即使 SCI 在向 TE 写 0 和写 1 之间失去对 引脚的控制。 间隔符的长度受 BRK13 和 M 位影响,如表 11-9 所示。 表 11-9. 间隔符长度 11.3.3 BRK13 M 间隔符长度 0 0 10 位 0 1 11 位 1 0 13 位 1 1 14 位 接收功能描述 在该节中,接收器框图 (图 11-3)是全面描述接收器的功能一个指南。然后,更详细地描述数据采样技 术 (用于得到接收器的数据)。最后,解释了两种接收器唤醒功能。 通过置位 RXINV=1,接收器输入被反转。置位 SCIxC2 的 RE,接收器使能。字符帧包括一个开始位 (逻辑 0), 8 (或 9)数据位 (首先最低有效位),和停止位 (逻辑 1)。关于 9 位数据模式的信息,参 见 11.3.5.1 节 8 位和 9 位数据模式。在以后的讨论中,我们假定 SCI 设置为正常的 8 位数据模式。 接受移位寄存器接收到停止位后,如果接收数据还未满,数据字符传到接收数据寄存器并且接收数据寄 存器满 (RDRF)状态标志置位。如果 RDRF 已经置位表明接收数据寄存器 (缓冲区)已经满了,溢出 (OR),状态标志置位并且新数据丢失。因为 SCI 接收器时双缓冲,在 RDRF 置位后和读接收数据缓冲区的 数据前,程序有一个字符的时间避免接收器溢出。 当程序检测到接收数据寄存器满时 (RDRF=1),读 SCIxD 可以得到接收数据寄存器的数据。 RDRF 通 过两步骤的序列 (通常在控制接收数据的用户程序中)自动清零,更多关于标志清零的信息参见 11.3.4 节 中 断和状态标志。 11.3.3.1 数据采样技术 SCI 接收器使用 16 倍的波特率时钟进行采样。接收器以 16 倍波特率采样逻辑电平,发现 RxD 串行输入 引脚上的下降沿。下降沿被定义为 3 个逻辑 1 采样后的逻辑 0 采样。 16 倍波特率时钟把位时间分成 16 段 (从 RT1 到 RT16)。当定位了一个下降沿时,有 3 个采样 (RT3、 RT5、 RT7)确保这是开始位而不是噪 音。如果 3 个采样中不少于 2 个是 0,则接收器假定与接收字符同步。 然后接收器采样每个位时间,包括开始位和停止位 (在 RT8、 RT9、 RT10 决定改为的电平)。逻辑电平 由位时间的采样结果的多数采样决定。采样开始位时,如果 RT3、 RT5、 RT7 这三个中至少两个是 0,则可以 认为该位为 0,即使 RT8、 RT9、 RT10 中的一个或全部为 1。如果在字符帧中任何一个位时间 (包括开始位 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 和停止位)的任何一个采样无法得到一致的逻辑电平,当接收的字符传到接收数据缓冲区时,噪音标志 (NF)置位。 下降沿检测逻辑不断检测下降沿,如果检测到了,采样时钟同步到位时间。这提高了接收器在噪音和波 特率不匹存在时的可靠性。这不能提高最糟情况的分析,因为有一些字符在字符帧中都不会出现下降沿。 在帧错误的情况下,如果接收的字符不是间隔符,查找下降沿的采样逻辑填充了 3 个逻辑 1,如此以至于 几乎可以立即检测一个新的开始位。 在帧错误的情况下,直到帧错误清零,接收器都会被阻止接收新的字符。接受移位寄存器继续工作,但 是如果 FE 置位,一个完成的字符不能转移到接收数据缓冲区。 11.3.3.2 接收唤醒 接收器唤醒是一种硬件机制,它允许 SCI 接收器忽略那些供不同 SCI 接收器使用的信息中的字符。在这 个系统中,所有的接收器判断每个信息的第一个字符,只要认为信息是提供给不同 SCI 的,则将 SCIxC2 中 的接受唤醒 (RWU)置 1。当 RWU 置位,和接收器相关的状态 (除了空闲位 (IDLE),当 RWUID 位置 位)禁止置位,因此消除控制不重要字符的软件开支。在信息的最后,或者是下一个信息的开始,所有的接收 器自动强制 RWU 为 0,所以所有的接收器按时唤醒,查看下一个信息的第一个字符。 11.3.3.2.1 空闲线唤醒 当 WAKE=0,接收器被设置为空闲线唤醒。在这种模式中,当接收器检测到一个满字符的空闲线电平 时, RWU 自动清零。 M 控制位选择 8 位或 9 位数据模式,这决定了多少个空闲位组成了一个满字符时间 (加上开始位和停止位共 10 位或 11 位)。 当 RWU 为 1 和 RWUIN 为 0 时,唤醒接收器的空闲条件不置位 IDLE。接收器唤醒并等待下一个信息的 第一个字符 (将会置位 RDRF,如果允许可以产生一个中断),当 RWUID 为 1 时,无论 RWU 是 0 还是 1, 任何空闲条件置位 IDLE 标志并产生一个中断 (如果允许)。 空闲线类型 (ILT)控制位选择两种检测空闲线方法中的一种。 ILT=0,空闲位从开始位开始计数,停止 位和字符后面的逻辑 1 的个数组成了空闲线满字符。 ILT=1,空闲位不是从开始位而是停止位,所以空闲线检 测不受前一个信息的最后的字符的数据的影响。 11.3.3.2.2 地址标志唤醒 当 WAKE=1,接收器被设置为地址标志唤醒。在这种模式中,当接收器检测到接收数据的大多数有意义 位是逻辑 1 时 (M=0,第 8 位; M=1,第 9 位), RWU 自动清零。 地址标识唤醒允许信息包含空闲位,但是需要 MSB 保留为地址帧使用。在接收到停止位并且置位 RDRF 标志前,地址帧的 MSB 逻辑 1 清零 RWU 位。在这种情况下,即使接收器在大多数字符时间都在休眠, MSB 字符仍被接收。 11.3.4 中断和状态标志 SCI 系统有三个独立的中断向量,减少了分析中断原因的软件编程。一个中断向量和发送器的 TDRE 和 TC 事件相关。另一个中断向量和接收器的 RDRF、 IDLE、 RXEDGIF 和 LBKDIF 事件相关。第三个向量用于 OR、 NF、 FE 和 PD 错误条件。通过本地中断使能掩码,这十个中断源可以独立掩码。当本地掩码被清零, 禁止中断请求的产生时,这个标志可以通过软件轮询的方式得到。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # SCI 发送器有两个状态标志,可以产生硬件中断请求。发送数据寄存器空 (TDRE)表示什么时候发送数 据缓冲区有空间可以写另一个发送字符到 SCIxD。如果发送中断使能 (TIE)位置位,只要 TDRE=1,就会 产生一个硬件中断请求。发送完成 (TC)表示所有的数据,前导符和间隔符都发送完成,发送器空闲 (TxD 处于无效电平)。该标志位通常用于有调制解调器的系统,用于决定何时关闭调制解调器是安全的。如果发送 完成中断使能位 (TCIE)置位,只要 TC=1,就会产生一个硬件中断请求。如果 TIE 或 TCIE 本地中断掩码 是 0,软件轮询可以代替硬件中断请求,可以用于检测 TDRE 和 TC 状态位。 当程序检测到接收数据寄存器满 (RDRF=1),程序读 SCIxD 可以得到接收数据寄存器的数据。当 RDRF=1 并且读了 SCIxD 后,读 SCIxS1 可以清零 RDRF 标志。 当使用轮询方式时,这个顺序可以很自然的满足用户程序的一般过程。如果使用硬件中断方式, SCIxS1 必须在中断服务例程 (ISR)中读。通常这必须在 ISR 中完成已检测接收错误,所以这个顺序可以自动满足。 当 RxD 线在一段时间保持空闲, IDLE 状态标志包含了可以避免重复置位的情况。当 IDLE=1 并且读了 SCIxD 后,读 SCIxS1 可以清零 IDLE。 IDLE 清零后,直到接收器至少接收了一个新字符并且 RDRF 置位, 才能再次置位。 如果在导致 RDRF 置位的接收字符中检测到了相应的错误,错误标志——噪音标志 (NF),帧错误 (FE)和奇偶校验错误标志 (PF)将会和 RDRF 同时置位。在溢出情况,这些标志不置位。 如果 RDRF 置位,当一个新字符准备从接收移位寄存器到接收数据缓冲区,溢出标志 (OR)置位,和 数据相关的 NF、 FE 或 PF 条件丢失。 在任何时候, RxD 串行数据输入引脚上的有效边沿会导致 RXEDGIF 标志置位。向 RXEDGIF 标志写 1, 可以清零 RXEDGIF。这个功能不依赖于接收器被允许 (RE=1)。 11.3.5 其他 SCI 功能 下面描述其他的 SCI 功能。 11.3.5.1 8 位和 9 位数据模式 通过置位 SCIxC1 的 M 控制位, SCI 系统 (发送器和接收器)可以被设置为 9 位数据模式。在 9 位数据 模式中,第九位数据位在 SCI 数据寄存器的最高有效位的左边。对于发送数据缓冲区,该位存储在 SCIxC3 的 T8。对于接收器,该位存储在 SCIxC3 的 T8。 为了一致地写发送数据缓冲区,在写 SCIxD 以前写 T8 位。 如果要发送的新字符的第九位的值和前一个字符相同,没有必要再写 T8。当数据从发送数据缓冲区传到 发送移位寄存器中时,在数据从 SCIxD 传到移位寄存器的同时, T8 的值被复制。 9 位数据模式通常用于连接奇偶校验位,可以允许 8 位的数据加上第九位的奇偶校验位。或用于地址标志 唤醒,所以第九位也可以作为唤醒位。在定制协议中,第九位也作为一个由软件控制的掩码器。 11.3.5.2 停止模式操作 在所有的停止模式中, SCI 模块的时钟暂停。 在 stop1 和 stop2 模式中,所有的 SCI 寄存器数据丢失。当从这两种停止模式中恢复时,所有的寄存器 必须重新初始化。在 stop3 模式中, SCI 模块寄存器不会受影响。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 在 stop3 模式中,接收输入有效边沿检测电路仍然有效,但是在 stop2 模式下无效。如果中断没有被屏蔽 (RXEDGIE=1),接收输入上的一个可以将 CPU 从 stop3 模式中唤醒。 注意,因为时钟暂停,当从停止模式 (仅在 stop3 模式中)中退出, SCI 模块将重新开始操作。当有字 符正在被发送出或接收进 SCI 模块,软件应该确保不进入停止模式。 11.3.5.3 循环模式 当 LOOPS=1 时,同一个寄存器的 RSRC 位选择循环模式 (RSRC=0)或单线模式 (RSRC=1)。循环 模式有时用于检测软件,独立于外部系统的连接,可以帮助分析系统问题。在这个模式中,发送器的输出在内 部连接到接收器的输入, RxD 不使用,所以它作为通用 I/O 引脚。 11.3.5.4 单线操作 当 LOOPS=1 时,同一个寄存器的 RSRC 位选择循环模式 (RSRC=0)或单线模式 (RSRC=1)。单线 模式半双工的串行连接。接收器在内部连接到发送器的输出 TxD 引脚。 RxD 引脚不使用,作为通用 I/O 引 脚。 在单线模式中, SCIxC3 的 TXDIR 位控制 TxD 引脚上数据的方向。当 TXDIR=0, TxD 引脚作为接收器 的输入并且发送器和 TxD 引脚临时断开,所以一个外部设备可以向接收器发送数据。当 TXDIR=1, TxD 作为 接收器的输出。在单线模式中,从发送器到接收器的内部环路使接收器接收发送器所发送的字符。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 12 章 12.1 串行外设接口 (S08SPIV3) 简介 MC9S08AC16 系列含有一个串行外设接口 (SPI)模块。与 SPI 功能相关的四个引脚复用端口 E 引脚 4-7。见附录 A 电气特性和时序规范。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A 10 位 A/D 转换模块 PORT B VDDAD VSSAD VREFL VREFH PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 16K 或 8K 片内 串行外设接口模块 (SPI) Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 12-1. 显亮 SPI 模块和引脚的 MC9S08AC16 框图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 特征 12.1.1 SPI 模块特征如下: • 主从工作方式 • 全双工或半双工 • 可编程的发送比特率 • 双缓存发送和接受 • 串行时钟相位和极性选择 • 从设备选择输出 • MSB 优先或 LSB 优先移位 12.1.2 框图 这部分包括结框图显示 SPI 系统连接,模块内部组织,和控制主模式比特率的 SPI 时钟分频器。 12.1.2.1 SPI 系统框图 图 12-2 显示两个 MCU 的 SPI 模块以主从方式连接。主设备发起所有 SPI 数据发送。在一个发送过程 中,主机送出数据 (从 MOSI 脚)给从机,但同时从机数据发送 (从 MISO 脚)到主机。发送有效地交换了 两个 SPI 系统中 SPI 移位寄存器的数据。 SPSCK 信号来自主机的一个时钟输出,同时作为从机的一个时钟输 入。从机设备必须由从机选择输出脚上的低电平来被选中。在这种系统中,主机设备配置它的 SS 引脚作为一 个可选择的从机选择输出。 从机 主机 MOSI MOSI SPI 移位寄存器 7 6 5 4 3 2 SPI 移位寄存器 1 0 MISO SPSCK 时钟 发生器 SS MISO 7 6 5 4 3 2 1 0 SPSCK SS 图 12-2. SPI 系统连接 SPI 系统最常见的用途包括连接简单的移位寄存器用于加入输入或输出端口内容或连接一个小型的外围 设备如串行 A/D, D/A 转换。虽然图 12-2 显示了一个如何在两个 MCU 之间交换数据的系统,但在很多实际 应用系统中在主从机之间的数据单向交换更为简单。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # SPI 模块框图 12.1.2.2 图 12-3 是一个 SPI 模块框图。 SPI 的中心组成部分是 SPI 移位寄存器。数据写入双缓存发射器 (写给 SPID)并在一个数据发送开始时获得数据传送给 SPI 移位寄存器。在移出一个字节数据后,数据被送入双缓 存接收器 (从 SPID 读出)在这数据可被读出。引脚多路技术逻辑控制 MCU 引脚和 SPI 模块之间的联系。 当把 SPI 作为主机,该时钟输入被发送到 SPSCK 引脚,移位寄存器的输出发送到主出从入引脚 (MOSI),移位寄存器的输入来自主入从出引脚 (MISO)。 当把 SPI 作为从机, SPI 引脚作为 SPI 的时钟输入,移位寄存器输出发送到主入从出引脚 (MISO),移 位寄存器输入来自主出从入引脚 (MOSI)引脚。 在外围 SPI 系统中,所有 SPSCK 引脚简单地相互连接,所有主入从出引脚在一起,主出从入引脚在一 起。外围设备经常用略有不同的名字命名这些引脚。 引脚控制 M SPE MOSI (MOMI) S Tx 缓存 ( 写 SPID) 使能 SPI 系统 M 输出 移位 SPI 移位寄存器 输入 移位 MISO (SISO) S SPC0 Rx 缓存 ( 读 SPID) BIDIRO LSBFE 移位 方向 移位 时钟 Rx 缓存 满 Tx 缓存 空 主机时钟 总线速率 时钟 MSTR SPIBR 时钟发生器 时钟 逻辑 从机时钟 主机 / 从机 M SPSCK S 主机 / 从机 模式选择 MODFE SSOE 模式故障 检测 SPRF SS SPTEF SPTIE MODF SPIE SPI 中断 请求 图 12-3. SPI 模块框图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 12.1.3 SPI 波特率发生器 如图 12-4 所示 SPI 波特率发生器时钟源是总线时钟。三个分频位 (SPPR2 :SPPR21:SPPR0)选择一 个分频约数 1、 2、 3、 4、 5、 6、 7 和 8。该三位速率位 SPPR2 :SPPR21:SPPR0)组合在 2、 4、 8、 16、 32、 64 和 128, 256 选择分频系数获得 SPI 内部主机模式位率时钟。 总线时钟 分频器 时钟速率分割器 分频比为 1, 2, 3, 4, 5, 6, 7, or 8 分割比为 2, 4, 8, 16, 32, 64, 128, 256, or 512 SPPR2:SPPR1:SPPR0 SPR3:SPR2:SPR1:SPR0 主机 SPI 比特率 图 12-4. SPI 波特率发生器 12.2 外部信号描述 该 SPI 可复用四个端口引脚。这些引脚的功能取决于 SPI 控制位的设置。当 SPI 禁止时 (SPE=0),该 四个引脚作为通用 I/O 端口引脚,不被 SPI 控制。 12.2.1 SPSCK — SPI 串行时钟 当 SPI 工作于从机方式,该引脚为串行时钟输入。当 SPI 工作于主机方式,该引脚为串行时钟输出。 12.2.2 MOSI — 主出从入引脚 当 SPI 工作于主机方式时 SPI 引脚控制的零脚为 0 (非双向模式),该引脚为串行数据输出。 当 SPI 工作于从机方式且 SPC0=0 时,该引脚为串行数据输入。如果 SPC0=1 选择单线双向模式,选择 为主机模式,该引脚转变为双向数据 I/O (MOMI)引脚。同样双向模式输出使能位决定该引脚是作为输出还 是输入。如果 SPC0=1 并选择从机模式,该引脚不被 SPI 使用并作为通用 I/O 端口引脚。 12.2.3 MISO — 主入从出引脚 当 SPI 工作于主机方式且 SPI 引脚控制零脚 SPC0 为 0 (非双向模式),该引脚为串行数据输入。当 SPI 工作于从机方式且 SPC0=0 时,该引脚为串行数据输出。如果 SPC0=1 选择单线双向模式,从机模式被 选,该引脚变为双向数据 I/O 引脚 (SISO)同时双向模式使能位决定该引脚为输出 (BIDIROE=0)还是输入 (BIDIROE=1)。如果 SPC0=1 且主机模式被选中,该引脚不被 SPI 使用作为一个通用 I/O 端口引脚。 12.2.4 SS — 从机选择引脚 当 SPI 工作于从机方式时,该引脚为低电平选择输出脚。当 SPI 工作于主机方式且模式故障功能禁止 (MODFEN=0),该引脚不被 SPI 使用作为一个通用 I/O 端口引脚。当 SPI 工作于主机方式且 NODFEN=1 时,从机选择输出使能位决定该引脚是否作为默认输入 (SSOE=0)或作为从机选择输出 (SSOE=1)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 12.3 12.3.1 操作模式 停止模式中的 SPI SPI 在所有停止模式中被禁止,无论在执行停止指令之前作了什么设置。在停止模式 1 或停止模式 2 期 间,该 SPI 模块被完全关断。若从停止模式 1 或停止模式 2 中唤醒, SPI 模块将进行复位。在停止模式 3 期 间, SPI 模块时钟被禁止,而所有寄存器的内容被保持。如果停止模式 3 通过复位退出, SPI 将进入复位状 态。如果停止模式 3 通过一个中断退出, SPI 将从进入模式 3 时的状态开始。 12.4 寄存器定义 SPI 有五个 8 位寄存器来选择 SPI 选项,控制比特率,报告 SPI 状态,发送 / 接受数据。 参阅存储器章节所有 SPI 寄存器绝对地址分配数据表中的直接页寄存器摘要。这部分通过名称来检索寄 存器和控制位,飞斯卡尔定义的头文件翻译这些名称为相应的绝对地址。 12.4.1 SPI 控制寄存器 1 (SPIC1) 该读 / 写寄存器包括 SPI 使能控制,中断使能和配置选项。 7 6 5 4 3 2 1 0 SPIE SPE SPTIE MSTR CPOL CPHA SSOE LSBFE 0 0 0 0 0 1 0 0 读 写 复位 图 12-5. SPI 控制寄存器 1 (SPIC1) 表 12-1. SPIC1 位描述 位 描述 7 SPIE SPI 中断使能位 (SPRF 和 MODF)— 这是一个中断使能位用来控制 SPI 响应缓存满和模式错误事件。 0 禁止 SPRF 和 MODF 中断 (使用轮询检测) 1 当 SPRF 或 MODF 为 1 时,请求一个硬件中断 6 SPE SPI 系统允许位 — 禁止 SPI,并停止进程中任何传送,清除数据缓存,初始化内部状态。 SPRF 被清零, SPTEF 被置位已表示 SPI 传送数据缓存为空。 0 SPI 系统禁止 1 SPI 系统允许 5 SPTIE SPI 发送中断允许位 — 该位使能用于 SPI 发送缓存空中断 0 禁止 SPTE 中断 (使用轮询检测) 1 当 SPTE 为 1 时,硬件中断请求 4 MSTR 主机 / 从机模式选择位 0 SPI 模块配置为一个从机 SPI 设备 1 SPI 模块配置为一个主机 SPI 设备 3 CPOL 时钟极性位 — 该位有效放置一个变极器串联来自主机 SPI 或给从机 SPI 的时钟信号。详情参阅 12.5.1 节 SPI 时 钟格式 0 SPSCK 空闲时为低电平 1 SPSCK 空闲时为高电平 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 12-1. SPIC1 位描述 位 描述 2 CPHA 时钟相位位 — 该位为不同类型的同步串行外设选择一个时钟形式。详情参阅 12.5.1 节 SPI 时钟格式 0 SPSCK 第一次沿跳变发生在 8 个数据发送周期的第一个周期中期 1 SPSCK 第一次沿跳变发生在 8 个数据发送周期的第一个周期开始 1 SSOE 从机选择输出使能位 — 该位用于连接 SPCR2 模式故障使能位 (MODFEN)和主机 / 从机控制位 (MSTR)决 定表 12-2 中 SS 脚功能 0 LSBFE LSB 优先 (移位寄存器方向) 0 开始时即以最多显著位进行 SPI 串行数据传送 1 开始时即以最少显著位进行 SPI 串行数据传送 表 12-2. SS 引脚功能 MODFEN SSOE 主机模式 从机模式 0 0 通用 I/O (非 SPI) 从机选择输入 0 1 通用 I/O (非 SPI) 从机选择输入 1 0 SS 引脚输入用于模式故障 从机选择输入 1 1 SS 引脚自动输出 从机选择输入 注意 确保 SPI 被禁止 (SPE=0)同时改变 CPHA 位。这些改变应表现为独立操作或突 发行为发生。 12.4.2 SPI 控制寄存器 2 (SPIC2) 该读 / 写寄存器用于控制 SPI 系统选项特征。位 7, 6, 5, 2 是无效的,一直读为 0 读 7 6 5 0 0 0 写 复位 0 0 0 4 3 MODFEN BIDIROE 0 0 2 1 0 SPISWAI SPC0 0 0 0 0 = 保留或未使用 图 12-6. SPI 控制寄存器 2 (SPIC2) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 12-3. SPIC2 寄存器位描述 位 描述 4 MODFEN 主机模式 - 故障功能使能位 - 当 SPI 工作于从机模式,该位无意义, ( SS 引脚是从机选择输出引脚 ) 在主机模 式下该位决定 SS 引脚如何使用 (详情参阅表 12-2) 0 模式故障功能禁止,主机 SS 引脚作为通用 I/O 引脚不受 SPI 控制 1 模式故障功能允许,主机 SS 引脚作为模式故障输入或从机选择输出 3 BIDIROE 双向模式输出允许—当设置 SPI 引脚控制 (SPC0)=1,允许双向模式,BIDIROE 将决定该 SPI 数据输出是否采 用单线双向 SPI I/O 引脚。根据 SPI 工作于主机模式还是从机模式,它使用 MOSI(MOMI) 或 MISO(SISO) 引脚 中的一个,作为 SPI 数据 I/O 引脚。当 SPC0=0 时, BIDIROE 无意义。 0 输出驱动禁止 SPI 数据 I/O 引脚作为输入引脚 1 SPI I/O 引脚允许作为输出引脚 1 SPISWAI 在等待模式下 SPI 停止 0 SPI 时钟继续工作于等待模式下 1 当 MCU 进入等待模式时, SPI 时钟停止 0 SPC0 12.4.3 SPI 控制引脚 0—SPC0 引脚选择单线双向模式。如果 MSTR=0 (从机模式),该 SPI 使用 MISO 引脚用于双 向 SPI 数据发送。如果 MSTR=1, BIDIROE 用来允许或禁止用于单线双向 SPI I/O 引脚的输出驱动。 0 SPI 使用独立引脚用于数据输入,输出 1 SPI 配置为单线双向模式 SPI 比特率寄存器 (SPIBR) 该寄存器为工作于主机方式 SPI 设置分频器和位率因子,可在任何时候被读或写。 7 读 5 4 3 2 1 0 SPPR2 SPPR1 SPPR0 SPR3 SPR2 SPR1 SPR0 0 0 0 0 0 0 0 0 写 复位 6 0 = 保留或未使用 图 12-7. SPI 比特率寄存器 (SPIBR) 表 12-4. SPIBR 寄存器位描述 位 6:4 SPPR[2:0] 2:0 SPR[2:0] 描述 SPI 波特率分频因子—这三位为 SPI 波特率分频器选择表 12-5 中的八个因子中的一个。该分频器的输入是 总线速率时钟 (BUSCLK)。该分频器的输出驱动 SPI 波特率分割器的输入 (见图 12-4) SPI 波特率因子—这三位为 SPI 波特率分割器选择表 12-6 中的八个因子中的一个。该分割器的输入来自 SPI 波特率分频器 (见图 12-4)。该分割器的输出为主机模式下的 SPI 位率时钟。 表 12-5. SPI 波特率分频器因子 SPPR2:SPPR1:SPPR0 分频器因子 0:0:0 1 0:0:1 2 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 12-5. SPI 波特率分频器因子 ( 续 ) SPPR2:SPPR1:SPPR0 分频器因子 0:1:0 3 0:1:1 4 1:0:0 5 1:0:1 6 1:1:0 7 1:1:1 8 表 12-6. SPI 波特率因子 12.4.4 SPPR2:SPPR1:SPPR0 位率因子 0:0:0 2 0:0:1 4 0:1:0 8 0:1:1 16 1:0:0 32 1:0:1 64 1:1:0 128 1:1:1 256 SPI 状态寄存器 (SPIS) 该寄存器有三个只读状态位。位 6, 3, 2, 0 不被执行,通常读为 0。对它们写无意义或影响。 读 7 6 5 4 3 2 1 0 SPRF 0 SPTEF MODF 0 0 0 0 0 0 1 0 0 0 0 0 写 复位 = 保留或未使用 图 12-8. SPI 状态寄存器 (SPIS) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 12-7. SPI 状态寄存器 (SPIS) 位 描述 7 SPRF SPI 读缓冲区满标志—SPRF 在 SPI 完成数据发送时被置位表明收到的数据可能来自 SPI 数据寄存器 (SPID)。通过读 SPRF 可以清零它,然后读 SPI 数据寄存器。 0 在接受数据缓存中无可用数据 1 在接受数据缓存中数据可用 5 SPTEF SPI 发送缓冲区空标志—当传送数据缓冲区里有空间时该标志位被置位。它可通过读 SPIS 来清零,然后写 一个数据值给 SPID 中的传送缓冲区。在 SPTEF=1,写数据给 SPID 之前必须读 SPIS 否则写 SPID 将被忽 略。如果 SPIC1 中的 SPTIE 位也被置位 SPTEF 产生一个 SPTEF CPU 中断请求。当一个字节的数据从传 送缓冲区里发送到发送移位寄存器时, SPTEF 被自动置位。对于闲置的 SPI (无数据在发送缓冲区或移位 寄存器中,无发送动作),被写到 SPID 的数据被立即发送到移位寄存器,所以 SPTEF 在两个总线周期内 被置位允许第二个 8 位值排队进入发送缓冲区。完成移位寄存器中的值的发送后,来自发送缓冲区的排队值 将自动移入到移位寄存器, SPTEF 将被置位以表明发送缓冲区里还有空间存放新数据。如果没有新数据在 缓冲区里, SPTEF 保持置位,无数据从缓冲区移到移位寄存器。 0 SPI 发送缓冲区非空 1 SPI 发送缓冲区空 4 MODF 主机模式故障标志—如果 SPI 工作于主机方式且从机选择输入脚为低, MODF 被置位,表明其它一些 SPI 设备也工作于方式。仅当 MSTR=1, MODFEN=1, SSOE=0 时该 SS 引脚用于模式故障输入;否则 MODF 将从不被置位。通过读 MODF 可以清零它,然后写 SPI 控制寄存器 1 (SPIC1) 0 无模式故障错误 1 模式故障错误检测 12.4.5 SPI 数据寄存器 (SPID) 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 Bit 0 0 0 0 0 0 0 0 0 读 写 复位 图 12-9. SPI 数据寄存器 (SPID) 读该寄存器返回数据缓冲区里的数据。写该寄存器将写数据到发送数据缓冲区。当 SPI 工作于主机方式 时,写数据到发送数据缓冲区表明一个 SPI 发送开始。 数据不应该被写入发送数据缓冲区除非该 SPI 发送缓冲区空标志 (SPTEF)置位,表明发送缓冲区里有 空间来排队一个新的发送字节。 在 SPRF 被置位后和在另一个发送结束之前可在任意时间从 SPID 读取数据。在一个新的发送尾期导致 接受溢出和新发送的数据丢失之前读出接受数据缓冲区中过的数据失败。 12.5 功能性描述 通过检测 SPI 发送缓冲区空标志 (SPTEF=1)开始一个 SPI 传送,然后写一个字节数据给工作于主机方 式 SPI 数据寄存器。当 SPI 移位寄存器可用时,该字节数据从发送数据缓冲区移到移位寄存器, SPTEF 被置 位以表明缓冲区里还有空间可利用, SPI 串行发送开始。 在 SPI 发送数据期间,数据在 MISO 脚上的一个 SPSCK 时钟边沿被读取和转移,在稍后的一个半 SPSCK 时钟周期,改变 MOSI 引脚上的位值。在八个 SPSCK 时钟周期后主机移位寄存器中的数据通过 MOSI 引脚发送给从机,同时八位的数据通过 MISO 引脚从从机转移到主机移位寄存器。在这次传送过程最 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 后,接受到的数据从移位寄存器移到接收数据缓冲区里且 SPRF 被置位以表明可通过读 SPID 来获取数据。 如果另一个字节的数据在发送缓冲区里等待,它将被转移到移位寄存器, SPTEF 被置位且一个新的传送开 始。 通常 SPI 数据首先被发送最高有效位 (MSB)。如果最低有效位 (LSB)优先允许,则优先发送最小 位。 当 SPI 工作于从机方式,其 SS 引脚被拉低并在整个传送过程中保持低电平。如果 CPHA=0,在连续传 送时 SS 引脚被置位逻辑 1. 如果 CPHA=1,在连续传送时 ss 引脚保持低电平。详情参阅 12.5.1 节 SPI 时钟 格式。 因为发送器和接收器都是双缓冲,所以第二个字节可以被立即移出排队进入发送数据缓冲区,先前接受 到的数据放到接收数据缓冲区里同时一个新数据正在移入。 SPTEF 标志表明发送缓冲区是否有空间给新数据 使用。接收到的数据必须在下个传送结束之前从接收缓冲区里读出,否则产生一个接受溢出错误。 在接收溢出情况下,新数据将丢失因为接收缓冲区仍然保持先前的数据还未准备接收新数据。目前还无 现象来显示这样一个溢出情况,因此应用系统的设计者必须确保以前的数据在一个新的传送过程开始之前已经 被读出接收缓冲区。 12.5.1 SPI 时钟格式 为适应来自不同厂商不同种类的同步串行外设,, SPI 系统含有一个时钟极性位 (CPOL)和一个时钟相 位控制位 (CPHA)来选择四种数据传输形式中的一种。 CPOL 选择性的插入以个变极器串联时钟。 CPHA 在时钟和数据之间选择两个不同时钟相位关系。 图 12-10 显示 CPHA=1 时的时钟形式。在该图的顶部,八个位时间间被显示位 1 在第一个 SPSCK 边沿 开始在第十六个 SPSCK 边沿后的一个半 SPSCK 周期位 8 结束。最高有效位优先和最低有效位优先排列显示 SPI 数据位的顺序,取决于 LSBFE 中的设置。 SPSCK 极性的 两种不同变化被显示出来,但这些波形中只有一种应用于具体的传送,取决于 CPOL 的值。 SAMPLE IN 波形应用于一个从机的 MOSI 引脚输入或一个主机的 MISO 引脚输出。MOSI 波形应用于来自主机的 MOSI 输 出引脚而 MISO 波形应用于来自从机的 MISO 输出引脚。该 SS 输出波形应用于来自主机的从机选择输出 (假设 MODFEN=SSOE=1)。该主机的 SS 引脚输出在传送的第一个位时间开始为低电平,在八个位时间后 变为高电平并保持一个半 SPSCK 时钟周期。 SS 输入波形应用于一个从机的从机选择输入。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # BIT TIME # (REFERENCE) 1 2 ... 6 7 8 BIT 7 BIT 0 BIT 6 BIT 1 ... ... BIT 2 BIT 5 BIT 1 BIT 6 BIT 0 BIT 7 SPSCK (CPOL = 0) SPSCK (CPOL = 1) SAMPLE IN (MISO OR MOSI) MOSI (MASTER OUT) MSB FIRST LSB FIRST MISO (SLAVE OUT) SS OUT (MASTER) SS IN (SLAVE) 图 12-10. SPI 时钟格式 (CPHA=1) 当 CPHA=1 时, SS 引脚走低时从机开始驱动其 MISO 引脚输出,当直到第一个 SPSCK 边沿数据才被识 别。在第一个 SPSCK 边沿从移位寄存器移出数据的第一位到主机的 MOSI 输出引脚和从机的 MISO 输出引 脚。下个 SPSCK 边沿主机和从机分别采样 MISO 和 MOSI 输入引脚上的数据。在第三个 SPSCK 边沿,该 SPI 移位寄存器移出一位,移入该位的值恰是移位寄存器采样和移位得到的第二个数据位值分别输给主机和从 机的 MOSI 和 MISO 输出引脚。当 CPHA=1 时,该从机的 SS 引脚输入在传送期间不需要变为高电平。 图 12-11 显示 CPHA=0 时的时钟格式。八个位时间显示在图的顶部。当从机被选中 (SS 引脚输入拉底) 时位 1 开始,在最后的 SPSCK 边沿位 8 结束。 MSB 优先和 LSB 优先显示 SPI 数据位的顺序,这些取决于 LSBFE 中的设置。 SPSCK 极性的两种变化都被显示,但只只有其中的一种波形应用于具体的传送过程,该 波形取决于 CPOL 的值。 SAMPLE IN 波形应用于一个从机的 MOSI 引脚输入或一个主机的 MISO 输入。 MOSI 波形应用于来自主机的 MOSI 引脚输出, MISO 波形应用于来自从机的 MISO 引脚输出。 SS OUT 波形 应用于来自主机 (假设 MODFEN=SSOE=1)的从机选择输出。该主机的 SS 引脚输出在传送的第一个位时 间开始时拉低,在八个传送位时间之后的一个半 SPSCK 周期被拉高。 SSIN 引脚波形应用于一个从机的从机 选择输入。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 BIT TIME # (REFERENCE) 1 2 BIT 7 BIT 0 BIT 6 BIT 1 ... 6 7 8 BIT 2 BIT 5 BIT 1 BIT 6 BIT 0 BIT 7 SPSCK (CPOL = 0) SPSCK (CPOL = 1) SAMPLE IN (MISO OR MOSI) MOSI (MASTER OUT) MSB FIRST LSB FIRST ... ... MISO (SLAVE OUT) SS OUT (MASTER) SS IN (SLAVE) 图 12-11. SPI 时钟格式 (CPHA=0) 当 CPHA=0, SS 引脚为低时,从机开始驱动它的 MISO 引脚输出第一个数据位值 (取决于 LSBFE 的 MSB 或 LSB)。第一个 SPSCK 边沿时主机和从机各自采样 MISO 和 MOSI 引脚上的数据。在第二个 SPSCK 边沿,该 SPI 移位寄存器移出一位,移入该位的值恰是移位寄存器采样和移位得到的第二个数据位值分别输 给主机和从机的 MOSI 和 MISO 引脚。当 CPHA=0 时,该从机的 SS 引脚在传送时必须为高电平。 12.5.2 SPI 中断 与 SPI 系统相关的有三个标志位,两个中断屏蔽位和一个中断向量。 SPI 中断屏蔽使能位 (SPIE)允许 来自 SPI 接受缓存满标志 (SPRF)中断和模式故障标志 (MODF)中断。 SPI 发送中断使能屏蔽位 (SPTIE)允许来自 SPI 发送换缓存空标志 (SPTEF)中断。的那个这些标志位中的一个被置位和相应的中 断屏蔽位被置位时,一个硬件中断被发送给 CPU。如果中断屏蔽位被清零,软件可以轮询相关的标志位来代 替使用中断。该 SPI 中断服务例程 (ISR)应该检查其标志位以获知是什么事件引发的中断。在中断服务例 程返回之前应该清零这些标志位。 12.5.3 模式故障检测 一个模式故障发生,模式故障标志位被置位在一个主机 SPI 设备检测到 SS 引脚上的错误时 (假设该 SS 引脚被设置成模式故障输入信号)。当 MSTR=1 时该 SS 引脚被配置为模式故障输入信号,模式故障使能位 被置位 (MODFEN=1),从机选择输出使能位被清零 (SSOE=0)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 模式故障检测特征可被用于多 SPI 设备系统。当主机的 SS 引脚为低时,表示检测到错误,此时其它一些 先前为从机的 SPI 设备正试图掌握这个主机。这可能表明输出驱动冲突,因此当这样的一个错误被检测到时, 模式故障逻辑可以停止所有的 SPI 输出驱动器。 当一个模式故障被检测到时, MODF 被置位且 MSTR 被清零以改变 SPI 配置,并返回到从机模式。 SPSCK、 MOSI、 MISO (如果不是双向模式)引脚上的输出驱动被禁止。 通过读 MODF 可清零 MODF,然后,设置 SPI 控制寄存器 (SPIC)。在把 SPI 改回到主机模式之前用 户软件应确保错误已被纠正。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 13 章 13.1 IIC 总线 (S08IICV2) 简介 MC9S08AC16 系列微控制器包含一个 IIC 模块用于内部电路的通信连接。该模块相关的两个引脚 SCL 和 SDA 复用端口 C 引脚 0 和 1。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A 10 位 A/D 转换模块 PORT B VDDAD VSSAD VREFL VREFH PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 16K 或 8K 片内 串行外设接口模块 (SPI) Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 13-1. 显亮 IIC 模块和引脚的 MC9S08AC16 框图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 13.1.1 特征 IIC 以下显著特征: • 兼容 IIC 总线标准 • 支持多主控 • 软件可编程 64 种不同串行时钟频率 • 软件可选择应答位 • 字节传送中断 • 仲裁自动模式转换从主机到从机丢失的中断 • 调用地址识别中断 • 开始和停止信号发生 / 检测 • 重复产生开始信号 • 识别位发生 / 检测 • 总线忙检测 • 一般调用识别 • 10 位地址扩展 13.1.2 操作模式 下面简述不同 MCU 模式下的 IIC: • 运行模式 — 这是基本的操作模式。为了节约能量,在此模式下,禁用该模块。 • 等待模式 — 该模块继续运作,而 MCU 是在等待模式,并能提供一个唤醒中断。 • 停止模式 — IIC 在停止模式 3 下是停止的以降低功耗。停止指令不影响 IIC 寄存器状态。停止模式 2 和停止模式 1 复位该寄存器内容。 13.1.3 框图 图 13-2 是 IIC 框图。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 地址 数据总线 中断 ADDR_DECODE CTRL_REG DATA_MUX FREQ_REG ADDR_REG STATUS_REG DATA_REG 输入同步 Sync 输入输出 数字移位寄存器 Shift Register 开始 停止 仲裁控制 Control 时钟控制 Control 地址比较 Compare SCL SDA 图 13-2. IIC 功能框图 13.2 外部信号描述 这部分描述每个用户可访问的引脚信号。 13.2.1 SCL—串行时钟线 该双向 SCL 是 IIC 系统的串行时钟线。 13.2.2 SDA—串行数据线 该双向 SDA 是 IIC 系统的串行数据线。 13.3 寄存器定义 这部分按地址顺序描述 IIC 寄存器。参阅存储器章节的所有 IIC 寄存器绝对地址分配文件关于直接页寄存 器摘要。这部分通过寄存器和控制位的名字来使用。飞思卡尔提供头文件用来把这些名字转换成相应的绝对地 址。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 13.3.1 IIC 地址寄存器 (IICA) 7 6 5 4 3 2 1 AD7 AD6 AD5 AD4 AD3 AD2 AD1 0 0 0 0 0 0 0 读 写 复位 0 0 0 = 保留或未使用 图 13-3. IIC 地址寄存器 (IICA) 表 13-1. IICA 位描述 位 描述 7-1 从机地址。 AD[7:1] 包含被 IIC 模块使用的从机地址。该位使用 7 位地址方案和 10 位地址方案中的低七位。 AD[7:1] 13.3.2 IIC 频率分频寄存器 (IICF) 7 6 5 4 3 2 1 0 0 0 0 读 MULT 写 复位 0 ICR 0 0 0 0 图 13-4. IIC 频率分频寄存器 表 13-2. IICF 位描述 位 7-6 MULT 5-0 ICR 描述 IIC 增频因子。 MULT 位定义了增频因子,该因子和 SCL 分频因子配合使用设置 IIC 的波特率。 Mul 定义如 下: 00 mul=01 01 mul=02 10 mul=04 11 不使用 IIC 时钟速率。 ICR 被用来分频总线时钟化作位率选择。这些位和 MULT 决定了 IIC 波特率, SDA 保持时间, SCL 开始保持时间和 SCL 停止保持时间。 表 13-4 提供了 SCL 因子和保持值。 SCL 分频因子乘以 MULT 增频因子得到 IIC 波特率 IC 波特率 = 总线速度 /( 倍频因子 * 分频因子 ) SDA 保持时间是从 SCL 线上时钟的下降沿开始到 SDA 线上数据稳定这段时间。 SDA 保持时间 = 总线周期 *mul*SDA 保持值 SCL 开始保持时间是从 SDA 下降沿开始,从高 (开始条件)到 SCL 下降沿 (IIC 时钟 ) SCL 开始保持时间 = 总线周期 *mul*SCL 开始保持值 SCL 停止保持时间是从 SCL 上升沿开始到 SDA 上升沿,此时 SCL 为高 (停止条件)。 SCL 停止保持时间 =CPU 总线周期 *mul*SCL 停止保持值 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 例如,如果总线速度是 8 MHz,下表显示可能的保持时间值用不同的 ICR 和 MULT 选择获得 100 kbps 的 IIC 波特率。 表 13-3. 8MHz 总线速度保持时间值 保持时间 (微秒) MULT ICR SDA SCL 开始 SCL 停止 0x2 0x00 3.500 3.000 5.500 0x1 0x07 2.500 4.000 5.250 0x1 0x0B 2.250 4.000 5.250 0x0 0x14 2.126 4.25. 5.125 0x0 0x18 1.125 4.750 5.125 表 13-4. IIC 分频因子和保持值 SCL 保持 SCL 保持 值 (开 值 (停 始) 止) ICR (hex) SCL 分 频因子 SDA 保 持值 00 20 7 6 01 22 7 02 24 03 SCL 保持 SCL 保持 值 (开 值 (停 始) 止) ICR (hex) SCL 分频 因子 SDA 保 持值 11 20 160 17 78 81 7 12 21 192 17 94 97 8 8 13 22 224 33 110 113 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 19 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 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 510 513 13 72 13 30 37 33 1024 129 510 513 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 13-4. IIC 分频因子和保持值 ( 续 ) SCL 保持 SCL 保持 值 (开 值 (停 始) 止) ICR (hex) SCL 分 频因子 SDA 保 持值 14 80 17 34 15 88 17 16 104 17 SCL 保持 SCL 保持 值 (开 值 (停 始) 止) ICR (hex) SCL 分频 因子 SDA 保 持值 41 34 1152 193 638 641 38 45 35 1280 193 574 577 21 46 53 36 1536 257 766 769 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 13.3.3 IIC 控制寄存器 (IICC1) 7 6 5 4 3 IICEN IICIE MST TX TXAK 读 写 复位 2 1 0 0 0 0 0 0 RSTA 0 0 0 0 0 0 = 保留或未使用 图 13-5. IIC 控制寄存器 (IICC1) 表 13-5. IICC1 位描述 位 描述 7 IICEN IIC 使能位。该 IICEN 位决定 IIC 模块是否允许。 0 IIC 不允许 1 IIC 允许 6 IICIE IIC 中断请求允许位。 IICEIE 位决定 IIC 中断请求是否被允许。 0 IIC 中断请求不允许 1 IIC 中断请求允许 5 MST 主模式选作位。当该位从 0 变到 1, IIC 总线上产生一个开始信号, MCU 被确定为主模式。 当该位从 1 到 0, MCU 将在 IIC 总线上产生停止信号,操作模式也敬爱那个从注模式变为从模式。 0 从机模式 1 主机模式 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 13-5. IICC1 位描述 ( 续 ) 位 4 TX 描述 发送模式选择位。该位用来选择主机和从机的数据传送方向。在主机模式下,该位可根据数据传送需求来确 定,虽然在整个地址周期,该位始终为 1. 当 MCU 为从机时,该位将根据状态寄存器的 SRW 位来确定 0 接受模式 1 发送模式 3 TXAK 发送应答使能位。在主机和从机接受缓存的数据识别期间该位指定驱动到 SDA 上的值 0 在接受完一个字节后发送应答信号 1 不发送应答信号 2 RSTA 重新开始 (repeat START)。若 MCU 在主机模式下,写一个 1 到该位将产生一个重新开始信号。该位读出时 总为 0。在错误的时间尝试重新开始将丢失仲裁。 13.3.4 IIC 状态寄存器 (IICS) 7 读 5 TCF 1 4 BUSY IAAS 写 复位 6 3 2 0 SRW ARBL 0 0 1 0 RXAK IICIF 0 0 0 0 0 = 保留或未使用 图 13-6. IIC 状态寄存器 (IICS) 表 13-6. IIC 位描述 位 描述 7 TCF 发送完成标志位。一个字节传送完毕后,该位将被置位。该位只在进行 IIC 模块传送时有效。在接收模式下,读 IIC 数据寄存器 IICD 或在发送模式下写 IICD 清除该位。 0 发送中 1 发送已完成 6 IAAS 地址被选择标志位。当 MCU 作为从机,并且它的地址与 IIC 总线上由主机发送的寻址地址吻合时,该位被置 位。写 IICC 寄存器清零该位。 0 MCU 未被寻址 1 MCU 作为从机被主机寻址 5 BUSY 总线忙标志。该位表明总线的状态无论是在主机模式还是从机模式。当检测到开始信号,该位被置位。当检测到 停止信号时,该位被清零 0 总线空闲 1 总线忙 4 ARBL 仲裁丢失标志位。当仲裁处理丢失,该位被硬件置位。必须通过软件的方法向该位写 1 来清除该位。 0 正常总线操作 1 仲裁丢失 2 SRW 从机读写标志位。当 MCU 作为从机被寻址时,该位被设为主机发送的寻址地址的读 / 写命令的值。 0 从机为接收模式,主机向从机写数据 1 从机为发送模式,主机从从机读数据 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 13-6. IIC 位描述 ( 续 ) 位 描述 1 IICIF IIC 中断标志位。当一个中断发生该位被置位。必须通过软件方法来向该位写 1 清除该位。下列时件之一可以置 位 IICIF:一个字节传送完毕,从地址被选中,仲裁丢失。 0 无中断未决 1 有中断未决 0 RXAK 接收应答标志。当该位为 0 时表明在总线上传送完一个字节后接收到了应答信号。如果为 1 则表示没有接收到应 答信号 0 接收应答信号 1 无接收应答信号 13.3.5 IIC 数据输入输出寄存器 (IICD) 7 6 5 4 3 2 1 0 0 0 0 0 读 DATA 写 复位 0 0 0 0 图 13-7. IIC 数据输入输出寄存器 (IICD) 表 13-7. IICD 位描述 位 描述 7-0 DATA 数据—在主机发送模式下,将数据写入 IICD 就初始化了数据发送,先发送数据字节的最高位。在主机接收模式 下,读该寄存器开始接受下个字节数据 注意 当 MCU 要从主接收模式变为主发送模式时,应在从 IICD 寄存器读取数据之前, 进行模式转换。 在从机模式下,在一个地址匹配发生后相同的功能是可用的。 在主机和从机模式下传送一开始时, IICC 中的 TX 位必须正确反映传送目标方向。例如,如果 IIC 被配置 为主机发送但一个主机接收被请求时,读 IICD 并不能开始接收。 当 IIC 被配置为主机或从机接收模式时,读 IICD 返回接收到最后一个字节数据。 IICD 并不影响在 IIC 总 线上传送的每个字节,或通过读出已写入到 IICD 中的一个字节数据来校验。 在主机发送模式下,在 MST 被用于地址传送后数据的第一个字节被写到 IICD,应该包括与必需的 R/W 位 (位 0)相关的寻址地址 (位 7- 位 1) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # IIC 控制寄存器 2 (IICC2) 13.3.6 7 6 GCAEN ADEXT 0 0 读 写 复位 5 4 3 0 0 0 0 0 0 2 1 0 AD10 AD9 AD8 0 0 0 = 保留或未使用 图 13-8. IIC 控制寄存器 2 (IICC2) 表 13-8. IICC2 位描述 位 描述 7 GCAEN 一般寻址使能位。 GCAEN 位允许或禁止一般寻址。 0 一般寻址禁止 1 一般寻址允许 6 ADEXT 地址扩展。 ADEXT 位控制用于从机地址的位数 0 7 位地址方案 1 10 位地址方案 2-0 AD[10:8] 从机地址。 AD[10:8] 包含 10 位地址方案从机地址的高三位。仅当 ADEXT 被置位该位才有效。 13.4 功能描述 这部分将提供 IIC 模块一个完整的功能描述。 13.4.1 IIC 协议 IIC 总线系统使用一个串行数据线 (SDA)和一个串行时钟线 (SCL) 用于数据传送。所有连接到它的设备 必须具有公开通道或公开手机输入。带有外部上拉电阻的两条线可执行逻辑与操作。电阻值由系统决定。 通常情况下,一个标准的通信包含以下四个部分: • 开始信号 • 从机地址传输 • 数据传输 • 停止信号 停止信号不应被 CPU 停止指令所干扰。 IIC 总线系统通信将在下面进行简要描述,并附上图 13-9。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 msb SCL 1 lsb 2 3 4 5 6 7 9 AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W SDA 开始信号 读/写 寻址地址 msb SCL SDA 8 msb 1 XXX 3 4 5 6 7 8 寻址地址 2 3 4 5 6 7 8 D7 D6 D5 D4 D3 D2 D1 D0 数据字节 读 / 写 Ack Bit 1 XX 9 No 停止信号 Ack Bit msb 9 AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W 开始信号 1 Ack Bit lsb 2 lsb lsb 3 2 4 5 6 7 8 9 AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W 重新开始 信号 新的寻址地址 读/写 No 停止信号 Ack Bit 图 13-9. IIC 总线发送信号 13.4.1.1 开始信号 当总线空闲时,无主机设备使用总线 (SCL 和 SDA 逻辑高),一个主机可以通过发送一个开始信号开始 一个通信。如图 13-9 所示,开始信号是当 SCL 为高时 SDA 从高变为低时产生的信号。该信号表明一个新的 数据传送的开始,清除所有从机空闲状态。 13.4.1.2 从机地址传送 在开始信号之后被传输数据的第一个字节是从机地址。这是跟随在 R/W 位之后的七位寻址地址。该 R/W 位告诉从机数据传送的方向。 1= 读发送,从机发送数据到主机。 0= 写发送,主机发送数据到从机。 仅当主机地址和从机地址相匹配时才返回一个应答信号。这通过在第九个时钟拉低 SDA 来完成 (见 图 13-9)。 系统中没有两个从机地址是相同的。如果 IIC 工作于主机方式,它绝不会发送一个与它自身从机地址相同 的地址。 IIC 不能同时作为主机和从机方式使用。不论怎样,如果在一个地址周期内仲裁丢失, IIC 将恢复到 从机模式并正常操作即使被另外一个主机寻址。 13.4.1.3 数据发送 在成功地完成从机寻址之前,又寻址主机发送的数据以字节为单位发送,方向由读写位 (R/W)确定。 在一个地址周期后的所有传输都可看做是数据传输,即使当中包含从机设备的地址。 每字节数据是 8 位。 SDA 上的数据在 SCL 为低时发生改变为高时保持不变,见图 13-9。 SCL 上一个时 钟脉冲对应一个数据位,最高位被先发送。每个数据字节跟随在第九 (应答)位后,应答位是由接收设备标 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 识返回的。通过在第九个时钟拉低 SDA 标识一个应答信号。简而言之一个完整的数据通信需要九个时钟脉 冲。 如果从机接收器在第九个位时间没有识别主机,那么 SDA 数据线被置高电平。主机认为该识别的失败是 一次不成功的数据传输。 如果主机接收器在一个字节数据被发送后没有识别从机发送器,那么从机认为数据传输过程结束并释放 SDA 数据线。 无论哪一种情况,数据传送是失败的,主机将会做下面两件事情之一: • 产生一个停止信号从而放弃总线 • 产生一个重新开始信号开始一个新的传输 13.4.1.4 停止信号 主机可以通过产生一个停止信号结束本次数据通信以释放总线。随后产生一个开始信号。这别称为重新 开始。停止信号被定义为当 SCL 为逻辑 1 且 SDA 由低电平转变为高电平产生停止信号。(见图 13-9)即使 从机已经产生一个应答信号主机也可产生一个停止信号结束数据通信。 13.4.1.5 重新开始信号 如图 13-9 所示,重新开始信号是一个不带结束通信停止信号的开始信号。它被用于主机与保持总线的另 一个从机或不同模式下相同的从机相互通信。 13.4.1.6 仲裁程序 IIC 总线是多主机总线允许多个主机与它连接。如果在同一时间有两个或更多主机试图取得总线控制权, 一个时钟同步程序决定该总线时钟,该总线时钟低电平周期等于最长时钟的低电平周期,高电平周期等于最短 时钟时钟的高电平周期。这些竞争主机的相对优先级是由一个数据仲裁程序,一个总线主机丢失仲裁来决定 的。未取得总先控制权的主机立即转为从机接收模式并停止 SDA 输出。在此情况下从主机模式到从机模式的 跳变不产生停止条件。同时一个状态位通过硬件被置位表明仲裁丢失。 13.4.1.7 时钟同步 因为 SDA 数据实行线与逻辑, SCL 时钟线上的一个由高到低的跳变将影响所有连接到总线上的设备。设 备开始计数其低电平周期并在一个设备时钟变低后,它将保持 SCL 时钟线为低电平直到高电平状态来到。不 论怎样,如果另一个设备时钟仍然处于低电平那么该设备时钟由低变高的转变可能不会改变 SCL 时钟线的状 态。因此同步时钟 SCL 被保持于最长低电平周期。在这期间带有较短低电平周期的设备进入高等待状态 (见 图 13-10)。当所有设备结束其低电平周期时,同步时钟 SCL 时钟线被释放并拉高。设备时钟, SCL 时钟线 状态和设备高电平周期意义上是没有区别的。第一个设备完成其高电平周期再次拉低 SCL 时钟线。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 开始计数高电平周期 延时 SCL1 SCL2 SCL 内部计数器复位 图 13-10. IIC 时钟同步 13.4.1.8 握手 时钟同步机制在数据发送中可以被用作握手机制。从设备在完成一个字节 (9 位)发送后保持 SCL 低电 平。在这种情况下,握手信号暂停总线时钟并强制主机时钟进入等待状态直到该从机释放 SCL 时钟线。 13.4.1.9 时钟扩展 时钟同步机制可被从机使用来降低发送的位速度。在主机完成驱动 SCL 时钟线为低后从机在必需的情况 下可以驱动它为低电平然后释放它。如果从机时钟线的低电平周期比主机的长那么意味着 SCL 总线信号低电 平周期被延伸。 13.4.2 10- 位地址 对于 10 位寻址, 0X11110 被用于第一个地址的头 5 位。包含 10 位寻址的传送的读 / 写形式的不同组合 是可能的。 13.4.2.1 主机发送从机接收 发送数据的方向不改变 (见表 13-9)。当在开始条件后发送一个 10 位地址时,每个从机将该地址的头七 位与自己的地址相比并测试第八位 (读写方向位)是否为 0。超过一个设备能够匹配该地址并返回一个应答 信号 (A1)。然后每个从机用自身地址与第二个字节的八位相比较。仅有一个从机匹配并产生一个应答信号 (A2)。该匹配的从机保持被主机寻址直到它接收到一个停止信号 (P)或一个重新开始信号 (Sr)。 表 13-9. 10 位地址主机发送从机接收 S 从机地址头 7 位 11110+AD10+AD9 R/W 0 A1 从机地址第二个 字节 AD[8:1] A2 数据 A … 数据 A/A P 在主机发送器发送 10 位地址的第一个字节,从机接收器见 IIC 中断。软件必须确保 IICD 的内容被忽略且 不被这次中断的有效数据。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 13.4.2.2 主机接收从机发送 发送方向在第二个读写位后被改变 (见表 13-10)。截至并包括应答位 A2,程序与主机发送从机接收方 式相同。在重新开始信号后 (Sr),一个匹配的从机记住它已被寻址。从机稍后检测从机地址的第一个字节的 头七位是否与他们的相同,然后测试第八位 (读写位)是否为 1。如果存在匹配,从机认为它已被作为发送 方被寻址并产生应答信号 A3。该从机发送器保持寻址直到它接收到停止信号 (P)或重新开始信号 (Sr)。 在重新开始信号之后 (Sr),所有其它从设备也用自身地址与该从机地址第一个字节的头七位相比较并 测试第八位 (读写位)。如果读写位为 1 (10 位地址设备)或从机地址 11110XX 未匹配的话,他们不能被寻 址。 表 13-10. 10 位地址主机接收从机发送 S 从机地址头 7位 11110+AD1 0+AD9 R/W 0 A1 从机地址 第二个字 节 AD[8:1] A2 Sr 从机地址 头7位 11110+AD 10+AD9 R/W 1 A3 数据 A … 数据 A/A P 在主机接收器发送 10 位地址的第一个字节后,从机发送器注意到一个 IIC 中断。软件必须确保 IICD 的内 容被忽略且不被这次中断的有效数据。 13.4.3 一般寻址 一般寻址被要求是 7 位或 10 位。如果 GCAEN 位被置位, IIC 匹配一般寻址即它自身的从机地址。当 IIC 响应一般寻址时,它可以作为从机接收器且在该地址周期后 IAAS 位被置位。在第一个字节传送后软件必须读 取 IICD 寄存器来决定该地址是否等于它自身的从机地址或一个一般寻址。如果该值是 00,该匹配是一般寻 址。如果 GCAEN 位被清零, IIC 忽略任何来自不带应答信号的一般寻址数据。 13.5 复位 IIC 在复位后被禁止。 IIC 不能触发一个 MCU 复位。 13.6 中断 IIC 产生一个单一中断。 若 IICIE 位被置位,当表 13-11 中任何事件发生时产生一个 IIC 中断。中断由 IICIF 位驱动,用 IICIE 位屏 蔽。在终端服务例程中 IICIF 位必须通过软件方法写一个 1 给它来清零。你可以通过读状态寄存器来决定中断 类型。 表 13-11. 中断摘要 13.6.1 中断源 状态 标志 使能 完成一个字节传送 TCF IICIF IICIE 标准寻址匹配 IAAS IICIF IICIE 仲裁丢失 ARBL IICIF IICIE 字节传送中断 TCF 位 (传送完成标志)在第九个时钟的下降沿被置位以表明一个字节传送完成。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 13.6.2 地址检测中断 当寻址地址等于预设的从机地址 (IIC 地址寄存器)或 GCAEN 位被置位接收到一般寻址时,状态寄存器 中的 IAAS 位被置位。若 IICIE 被置位,则 CPU 被中断。 CPU 必须检测 SRW 位并进入发送模式。 13.6.3 仲裁丢失中断 IIC 是一个多主机总线允许超过一个主机与它连接。如果在同一时间有两个或更多的主机试图取得总线控 制权,这些竞争主机的相对优先级由一个数据仲裁程序决定。当它丢失该数据仲裁程序且状态寄存器中的 ARBL 位被置位时, IIC 模块确认中断。 在下列情形下仲裁丢失: • 在一个地址或数据传送周期内主机为高电平时, SDA 数据线采样为低电平。 • 在一个数据接收周期的应答位内主机为高电平时, SDA 数据线采样为低电平。 • 当总线忙时试图开始一个周期。 • 在从机模式下一个重新开始周期被请求。 • 当主机没有请求停止信号时一个停止信号被检测到。 该位必须通过软件方法写 1 来清零。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 13.7 初始化 / 应用信息 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 模块初始化 (从机) 1. 写 IICC2 • 禁止或允许一般寻址 • 选择 10 位或 7 位寻址模式 2. 写 IICA • 设置从机地址 3. 写 IICCC1 • 使能 IIC 和中断 4. 为传送数据初始化 RAM 变量 (IICEN=1, IICIE=1) 5. 初始化 RAM 变量用来完成图 13-12 中所示的例程 模块初始化 (主机) 1. 写:IICF • 设置 IIC 波特率 2. 写 IICC1 • 使能 IIC 和中断 3. 为传送数据初始化 RAM 变量 (IICEN=1, IICIE=1) 4. 初始化 RAM 变量用来完成图 13-12 中所示的例程 5. 写 IICC1 • 使能 TX 6. 写:IICC1 • 使能 MST (主机模式) 7. 写:IICD • 目标从机的地址 模块使用 图 13-12 所示的例程可以处理主机和从机 IIC 操作。对于从机操作来说, 一个输入非 IIC 信息包含适当的地址开始 IIC 数据通信。对于主机操作来 说,数据通信必须通过想写 IICD 寄存器来开始。 AD[7:1] IICA 0 当作为从机被寻址时(在从机模式下),该模块响应此地址 MULT IICF ICR 波特率 = BUSCLK / (2 x MULT x (SCL DIVIDER)) IICC1 IICEN IICIE MST TX TXAK RSTA 0 0 IAAS BUSY ARBL 0 SRW IICIF RXAK 0 AD10 AD9 AD8 模块配置 IICS TCF 模块状态标识 DATA IICD 数据寄存器;发送和读取 IIC 数据 IICC2 GCAEN ADEXT Add fi 0 0 i 图 13-11. IIC 模块快速启动 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 清 IICIF 主机 模式 ? Y 发送 最后字节 已经发送 ? 否 RXAK=0 ? 是 接收 发送 / 接收 ? 仲裁丢失 ? 否 清 ARBL 是 将要 读取最后字节 ? 否 否 结束 地址周期 ( 主机发送 ) ? 是 是 SRW=1 ? 产生停止信号 向 IICD 写 下个字节 置 XACK =1 发送 是 置发送模式 接收 TX/RX ? 否( 写 ) 否 IAAS=1 ? 否 数据传送 见注 2 地址传送 见注 1 是 (读) 将要 读取倒数第二个 ? 字节? 否 是 IAAS=1 ? 是 否 是 是 N (MST = 0) ACK 来自 接收器 ? 否 跳转到 接收模式 虚读 IICD 产生停止 信号 (MST = 0) 从 IICD 读取 数据并存储 从 IICD 读取 数据并存储 发送下个字节 向 IICD 写数据 设置接收 模式 跳转到 接收模式 虚读 IICD 虚读 IICD RTI 注 1 如果一般调用允许,必须执行一个检测来决定接收到的地址是否是一个一般寻址 (0X00)。如果是的话,然后由用户软件来 处理它。 2 当 10 位地址被用来寻址从机,在扩展地址的第一个字节后从机注意到一个中断。用户软件必须确保此中断, IICD 的内容被忽 略且不作为一个有效数据传送。 图 13-12. 典型的 IIC 中断流程 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 14 章 14.1 AD 转换器 (S08ADC0V1) 概述 10 位的 AD 转换器是一个逐次逼近 ADC,可以设计在一个集成微控制器片上系统里面。 ADC 支持高达 28 个独立模拟输入 (AD0-AD27)。在 MC9S08AC16 系列的 MCU 中只实现了九个输入 (AD0-AD3、 AD8-AD11、 AD27)。这些输入可以通过 ADCH 位选择。如图 14-1 所示,一些输入和 I/O 复用。表 14-1 概 述了 MC9S08AC16 系列设备的 ADC 中所有通道的分配。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # (ADC) 4 AD1P3–AD1P0 4 AD1P11–AD1P8 HCS08 CORE 调试模块 (DBG) BKGD/MS RESET IRQ/TPMCLK CPU PTA7 PTA2 PTA1 PTA0 PTB3/AD1P3 PTB2/AD1P2 PTB1/TPM3CH1 /AD1P1 PTB0/TPM3CH0 /AD1P0 SDA1 IIC 模块 (IIC) SCL1 内部时钟发生器 ICG EXTAL XTAL HCS08 SYSTEM CONTROL RESETS AND INTERRUPTS MODES OF OPERATION POWER MANAGEMENT PORT C BDC PORT A 10 位 A/D 转换模块 PORT B VDDAD VSSAD VREFL VREFH PTC5/RxD2 PTC4 PTC3/TxD2 PTC2/MCLK PTC1/SDA1 PTC0/SCL1 2 KBIP6–KBIP5 TPMCLK 7 位键盘中断模块 (KBI) 5 KBIP4–KBIP0 串行通信接口模块 (SCI1) RxD1 TxD1 RxD2 串行通信接口模块 (SCI2) 16K 或 8K 片内 串行外设接口模块 (SPI) Flash 程序存储器 4 通道定时器 /PWM 模块 (TPM1) TxD2 SPSCK1 MOSI1 MISO1 SS1 TPM1CH1 TPM1CH0 TPM1CH3 TPM1CH2 1024 字节或 768 字节 片内 RAM 2 通道定时器 /PWM 模块 (TPM2) 电压调节模块 2 通道定时器 /PWM 模块 (TPM3) VDD VSS PORT D LVD PTD3/KBIP6/AD1P11 PTD2/KBIP5/AD1P10 PTD1/AD1P9 PTD0/AD1P8 PORT E IRQ PTE7/SPSCK1 PTE6/MOSI1 PTE5/MISO1 PTE4/SS1 PTE3/TPM1CH1 PTE2/TPM1CH0 PTE1/RxD1 PTE0/TxD1 PORT F COP PTF6 PTF5/TPM2CH1 PTF4/TPM2CH0 PTF1/TPM1CH3 PTF0/TPM1CH2 PORT G 低功耗的振荡器 RTI PTG6/EXTAL PTG5/XTAL PTG4/KBIP4 PTG3/KBIP3 PTG2/KBIP2 PTG1/KBIP1 PTG0/KBIP0 TPM2CH1 TPM2CH0 TPM3CH1 TPM3CH0 = 在 32 或 44 引脚封装的 MCU 中没有提供。 = 在 32 引脚封装的 MCU 中没有提供。 = 在 44 引脚封装的 MCU 中没有提供。 = S9S08AWxxA 设备中没有提供。 注: 1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。 2 .若 IRQ 使能 (IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测 (IRQEDG=1) , 下拉使能。 3 . IRQ 没有通过钳位二极管连向 VDD。 IRQ 不能加载高于 VDD 的电平 4 .引脚包含集成的上拉设备。 5 . PTD3、 PTD2 和 PTG4 引脚包含上拉 / 下拉设备。当 KBI 使能 (KBIPEn=1)而且上升沿被选择 (KBEDGn=1) , 下拉使能。 图 14-1. 显亮 ADC 模块和引脚的 MC9S08AC16 系列模块结构图 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 14.2 通道分配 MC9S08AC16 系列设备的 ADC 通道分配如表 14-1 所示。未实现的通道在内部连接到 VREFL。保留的通 道是未知值。连接到 I/O 引脚上的通道有一个相应的引脚控制位。 表 14-1. ADC 通道分配 ADCH 通道 输入 引脚控制 ADCH 通道 输入 引脚控制 00000 AD0 PTB0/AD1P0 ADPC0 10000 AD16 VREFL N/A 00001 AD1 PTB1/AD1P1 ADPC1 10001 AD17 VREFL N/A 00010 AD2 PTB2/AD1P2 ADPC2 10010 AD18 VREFL N/A 00011 AD3 PTB3/AD1P3 ADPC3 10011 AD19 VREFL N/A 00100 AD4 VREFL N/A 10100 AD20 VREFL N/A 00101 AD5 VREFL N/A 10101 AD21 VREFL N/A 00110 AD6 VREFL N/A 10110 AD22 Reserved N/A 00111 AD7 VREFL N/A 10111 AD23 Reserved N/A 01000 AD8 PTD0/AD1P8 ADPC8 11000 AD24 Reserved N/A 01001 AD9 PTD1/AD1P9 ADPC9 11001 AD25 Reserved N/A 01010 AD10 PTD2/AD1P10 ADPC10 11010 AD26 Temp Sensor N/A 01011 AD11 PTD3/AD1P11 ADPC11 11011 AD27 Internal Bandgap N/A 01100 AD12 VREFL N/A 11100 Reserved N/A 01101 AD13 VREFL N/A 11101 VREFH VREFH N/A 01110 AD14 VREFL N/A 11110 VREFL VREFL N/A 01111 AD15 VREFL N/A 11111 module disable None N/A 注意 选择内部的能带隙通道要求 SPMSC1 中的 BGBE=1,参见 5.9.8 节 系统电源管理 状态控制寄存器 1(SPMSC1)。更多关于能带隙电压参见 A.6 节 DC 特性。 14.2.1 交替时钟 ADC 模块能够变化地使用 MCU 总线时钟,二分频的总线时钟,模块内的异步时钟 (ADACK),或者交 替时钟, ALTCLK。 MC9S08AC16 系列 MCU 设备的交替时钟是内部时钟产生器模块的外部参考时钟 (ICGERCLK)。 因为 ICGERCLK 只有在外部时钟源允许时才有效, ICG 必须设置成 FBE 或 FEE 模式 (CLKS1=1)。 ICGERCLK 必须运行在一个频率,所以 ADC 转换时钟 (ADCK)运行在具体范围 (fADCK)的频率,在 ALTCLK 输入分频 (由 ADIV 位决定)之后。例如,如果 ADIV 位被设置到 4 分频,然后 ALTCLK (ICGERCLK)的最小频率是 fADCK 的最小值的四倍。最大值是 fADCK 的最大值的四倍。因为最小频率需 求,当一个振荡器电路使用时,它必须设置为高范围操作 (RANGE=1)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 当 MCU 处于等待模式时,如果以上描述的条件满足, ALTCLK 有效。当 MCU 处于等待模式时,这允许 ALTCLK 可以作为 ADC 的转换时钟源使用。当 MCU 处于 stop3, ALTCLK 不能用作 ADC 转换时钟源 硬件触发器 14.2.2 ADC 硬件触发器, ADHWT,是实时中断计数器的输出。 RTI 计数器可以使用 ICGERCLK 或 RTI 时钟内 的 1 kHz 时钟源作为时钟。 MCU 处于运行,等待, stop3 模式时, 1 kHz 时钟源可以使用。 ICG 设置为 FBE 或 FEE 模式, MCU 处于允许或等待模式时, ICGERCLK 可以使用。 RTI 的周期可以由输入时钟和 RTIS 位决定。当允许 ADC 硬件触发器时, RTI 计数器溢出时,初始化一 个转换。 RTI 计数器是一个自由运行计数器,按照 RTIS 位决定的 RTI 率产生一个溢出。 14.2.2.1 模拟引脚使能 MC9S08AC16 系列的 ADC 只包含两个模拟引脚使能寄存器, APCTL1 和 APCTL2。 14.2.2.2 低功耗模式操作 ADC 能够在 stop3 模式下运行,但是要求 SPMSC1 中的 LVDSE 和 LVDE 置位。 温度传感器 14.2.3 ADC 模块包含一个温度传感器,它的输出连接到一个 ADC 模拟通道输入。等式 14-1 提供了温度传感器 的近似转换函数。 Temp=25- ((VTEMP -VTEMP25) /m) 公式 14-1 其中: • VTEMP 是温度传感器通道在周围温度时的电压。 • VTEMP25 是温度传感器通道在 25 ℃时的电压。 • M 是冷或热温度斜率 (V/ ℃)。 计算温度时,使用 ADC 电气表中的 VTEMP25 和 m 的值。 在应用代码中,用户读温度传感器通道,计算 VTEMP 并且和 VTEMP25 比较。如果 VTEMP 大于 VTEMP25 在等式 14-1 中使用冷斜率值。如果 VTEMP 小于 VTEMP25 在等式 14-1 中使用热斜率值。 更多使用温度传感器的信息参考 AN3031。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 14.2.4 特点 ADC 模块特点包括: • 线性逐次逼近算法, 10 位精度。 • 多达 28 个模拟输入。 • 8 位或 10 位右对齐格式输出 • 单个或连续的转换 (单个转换后自动返回到空闲) • 设置采样时间和转换速度 (功率) • 转换完成标志和中断 • 输入时钟可以选择高达四个时钟源 • 在等待或 stop3 模式中操作为低噪音操作 • 异步时钟源的低噪音操作 • 可选的异步硬件转换触发 • 自动比较小于,大于或等于编程值 • 温度传感器 14.2.5 框图 图 14-2 提供了 ADC 模块的框图。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # ADICLK ADLPC MODE ADLSMP ADTRG 2 ADCO ADCH 1 ADCCFG complete COCO ADCSC1 ADIV 比较真 AIEN 3 异步时钟 发送器 ADACK MCU STOP ADCK ÷2 ALTCLK abort transfer sample initialize ••• AD0 convert 控制顺序 ADHWT 总线时钟 时钟 分频 AIEN 1 COCO 2 ADVIN 中断 SAR 转换器 AD27 VREFH 数据寄存器 Sum VREFL 比较真 3 ACFGT Value 比较逻辑 ADCSC2 比较值寄存器 图 14-2. ADC 框图 14.3 外部信号描述 ADC 模块支持高达 28 个独立模拟输入。也需要 4 个电源 / 参考 / 地连接。 表 14-2. 信号属性 14.3.1 名称 功能 AD27-AD0 模拟通道输入 VREFH 高参考电压 VREFL 低参考电压 VDDAD 模拟电压供电 VSSAD 模拟地 模拟电源 (VDDAD) ADC 模拟部分使用作为它的电源连接。在相同的封装中, VDDAD 在内部连接到 VDD。如果外部可能,连 接到 VDDAD 的引脚和 VDD 到相同电压。外部滤波对 VDDAD 可能是必要的。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 14.3.2 模拟地 (VSSAD) ADC 模拟部分使用作为它的地连接。在相同的封装中, VSSAD 在内部连接到 VSS。如果外部可能,连接 到 VSSAD 引脚和 VSS 到相同电压。 14.3.3 参考高电压 (VREFH) VREFH 是转换器的参考高电压,在相同的封装中, VREFH 在内部连接到 VDDAD,如果外部可能,连接到 VREFH 的引脚和 VDDAD 到相同电压。或者被外部源 (在最小的 VDDAD 规格和 VDDAD 电压之间)驱动。 14.3.4 参考低电压 (VREFL) VREFL 是转换器的参考低电压,在相同的封装中, VREFL 在内部连接到 VSSAD,如果外部可能,连接到 VREFL 的引脚和 VSSAD 到相同电压。 14.3.5 模拟通道输入 (ADx) ADC 模块支持高达 28 个独立的模拟输入。通过 ADCH 通道选择位,一个输入被选择用于转换。 14.4 寄存器定义 这些内存映像寄存器控制和管理 ADC 的操作: • 状态和控制寄存器, ADCSC1 • 状态和控制寄存器, ADCSC2 • 数据结果寄存器, ADCRH 和 ADCRL • 比较值寄存器, ADCCVH 和 ADCCVL • 配置寄存器, ADCCFG • 引脚使能寄存器, APCTL1、 APCTL2、 APCTL3 14.4.1 状态和控制寄存器 1 (ADCSC1) 本节描述 ADC 状态和控制寄存器 (ADCSC1)的功能。写 ADCSC1 可以终止当前的转换并初始化一个 新的转换 (如果 ADCH 等于一个不是全 1 的值)。 7 读 6 5 AIEN ADCO 0 0 4 3 2 1 0 1 1 COCO 写 复位 0 ADCH 1 1 1 = 保留或未使用 图 14-3. 状态和控制寄存器 (ADCSC1) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 14-3. ADCSC1 寄存器域描述 域 描述 7 COCO 转换完成标志——COCO 标志是一个只读位。当比较功能禁止 (ACFE=0)时,每次转换完成时置位。当比较 功能允许 (ACFE=1)时,转换完成后,只要比较结果为真,则 COCO 置位。只要写 ADCSC1 或读 ADCRL, 该位清零。 0 转换未完成。 1 转换完成。 6 AIEN 中断允许——AIEN 用于使能转换完成中断。当 AIEN 为高, COCO 置位时,确认一个中断。 0 禁止转换完成中断。 1 允许转换完成中断。 5 ADCO 连续转换使能——ADCO 用于使能连续转换。 0 当选择软件触发中断时,写 ADCSC1 后开始一个转换。当选择硬件触发中断时,确认了 ADHWT 后开始一个 中断。 1 当选择软件触发中断时,写 ADCSC1 后初始化连续转换。当选择硬件触发中断时,连续转换被 ADHWT 事件 初始化。 4:0 ADCH 输入通道选择——ADCH 包括 5 位,用于选择输入通道中的一个。输入通道在表 14-4 中描述。 当通道选择位设置为全 1 时,逐次逼近转换器子系统关闭。这个特点允许禁止 ADC 和从所有的源中孤立输入通 道。 表 14-4. 输入通道选择 ADCH 输入选择 00000 AD0 00001 AD1 00010 AD2 00011 AD3 00100 AD4 00101 AD5 00110 AD6 00111 AD7 01000 AD8 01001 AD9 01010 AD10 01011 AD11 01100 AD12 01101 AD13 01110 AD14 01111 AD15 10000 AD16 10001 AD17 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 14-4. 输入通道选择 ( 续 ) 14.4.2 ADCH 输入选择 10010 AD18 10011 AD19 10100 AD20 10101 AD21 10110 AD22 10111 AD23 11000 AD24 11001 AD25 11010 AD26 11011 AD27 11100 保留 11101 VREFH 11110 VREFL 11111 模块被禁止 状态和控制寄存器 2 (ADCSC2) ADCSC2 寄存器用于控制比较功能,转换触发和 ADC 模块的转换行为。 7 读 6 5 4 ADTRG ACFE ACFGT 0 0 0 ADACT 写 复位 0 3 2 0 0 0 0 1 0 R1 R1 0 0 = 保留或未使用 1 位 1 和位 0 为保留位,必须写为 0. 图 14-4. 状态和控制寄存器 (ADCSC2) 表 14-5. ADCSC2 寄存器域描述 域 7 ADACT 描述 转换行为——ADACT 表示转换正在进行中。当初始化转换时, ADACT 置位;当转 换完成或终止时, ADACT 清零。 0 转换未进行。 1 转换处理中。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 14-5. ADCSC2 寄存器域描述 6 ADTRG 5 ACFE 4 ACFGT 转换触发选择——ADTRG 用于选择初始化转换的触发的类型。两种触发类型可选: 软件触发和硬件触发。选择软件触发,写 ADCSC1 后初始化一个转换。选择硬件触 发,确认了 ADHWT 输入后初始化转换。 0 选择软件触发。 1 需安装硬件触发。 比较功能使能——ACFE 用于使能比较功能。 0 禁止比较功能。 1 允许比较功能。 比较功能更大使能——当监控的输入的转换结果大于或等于比较结果时, ACFGT 用 于设置比较功能的触发。当监控的输入的转换结果小于比较结果时,比较功能默认触 发。 0 当输入小于比较电平时,比较触发。 1 当输入大于或等于比较电平时,比较触发。 数据高结果寄存器 (ADCRH) 14.4.3 ADCRH 包含 10 位转换结果的高 2 位。当设置为 8 位转换时, ADR8 和 ADR9 都等于 0。每次转换完 成,除非自动比较被允许而且不满足比较结果,ADCRH 将被更新,。在 10 位数据模式中,读 ADCRH 将暂 时禁止下一次转换,直到读取了 ADCRL 中的内容。如果直到下一个转换完成都没有读 ADCRL,这个中间转 换结果将会丢失。在 8 位数据模式中,没有对 ADCRL 的互锁。在这种情况下, MODE 位被改变, ADCRH 中 的任何数据都无效。 读 7 6 5 4 3 2 1 0 0 0 0 0 0 0 ADR9 ADR8 0 0 0 0 0 0 0 0 写 复位 = 保留或未使用 图 14-5. 数据高结果寄存器 (ADCRH) 数据低结果寄存器 (ADCRL) 14.4.4 ADCRL 包含 10 位转换结果的低 8 位,一个 8 位转换的所有 8 位。每次转换完成,这个寄存器都被更 新,除非自动比较被允许而且不满足比较结果。在 10 位数据模式中,读 ADCRH 将暂时禁止下一次转换,直 到读取了 ADCRL 中的内容。如果直到下一个转换完成都没有读 ADCRL,这个中间转换结果将会丢失。在 8 位数据模式中,没有对 ADCRH 的互锁。在这种情况下, MODE 位被改变, ADCRL 中的任何数据都无效。 读 7 6 5 4 3 2 1 0 ADR7 ADR6 ADR5 ADR4 ADR3 ADR2 ADR1 ADR0 0 0 0 0 0 0 0 0 写 复位 = 保留或未使用 图 14-6. 数据低结果寄存器 (ADCRL) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 比较值高寄存器 (ADCCVH) 14.4.5 该寄存器包含了 10 位比较值的高 2 位。当允许比较功能时,这些位和 10 位模式中的转换结果的高 2 位 比较。在 8 位操作中, ADCCVH 在比较过程中不使用。 读 7 6 5 4 0 0 0 0 3 2 写 复位 0 0 0 0 0 1 0 ADCV9 ADCV8 0 0 0 = 保留或未使用 图 14-7. 比较值高寄存器 (ADCCVH) 比较值低寄存器 (ADCCVL) 14.4.6 该寄存器包含了 10 位比较值的低 8 位,或者 8 位比较值的所有 8 位。在 10 位或 8 位模式中, ADCV7:ADCV0 转换结果的低 8 位比较。 7 6 5 4 3 2 1 0 ADCV7 ADCV6 ADCV5 ADCV4 ADCV3 ADCV2 ADCV1 ADCV0 0 0 0 0 0 0 0 0 读 写 复位 图 14-8. 比较值低寄存器 (ADCCVL) 14.4.7 配置寄存器 (ADCCFG) ADCCFG 用于选择操作模式,时钟源,时钟分频和低功耗或长采样时间的设置。 7 6 5 4 3 2 1 0 读 写 ADLPC 复位 0 ADIV 0 ADLSMP 0 MODE 0 0 ADICLK 0 0 0 图 14-9. 配置寄存器 (ADCCFG) 表 14-6. ADCCFG 寄存器域描述 域 描述 7 ADLPC 低功耗配置——ADLPC 控制逐次渐进转换器的速度和功耗配置。当不需要更高采样 速率时,可以优化功耗。 0 高速配置。 1 低功耗配置:以最大化时钟速率的代价降低功耗。 6:5 ADIV 时钟分频选择——ADIV 选择 ADC 使用的分频因子,产生内部时钟 ADCK。表 14-7 描述了时钟配置。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 14-6. ADCCFG 寄存器域描述 4 ADLSMP 3:2 MODE 1:0 ADICLK 长采样时间配置——ADLSMP 选择长和短采样时间。这可以调整采样周期,使在更 高阻抗的输入下也能得到精确的采样,也可以在低阻抗时最大化转换速度。如果连续 采样允许而且不需要高输出斜率,更长的采样时间可以用于更低的总功耗。 0 短采样时间。 1 长采样时间。 转换模式选择——MODE 位用于选择 8 位或 10 位操作。参见表 14-8。 输入时钟选择——ADICLK 选择产生内部时钟 ADCK 的输入时钟源。参见表 14-9。 表 14-7. 时钟分频选择 ADIV 分频因子 时钟 00 1 输入时钟 01 2 输入时钟 /2 10 4 输入时钟 /4 11 8 输入时钟 /8 表 14-8. 转换模式 模式 模式描述 00 8 位转换 (N=8) 01 保留 10 10 位转换 (N=10) 11 保留 表 14-9. 输入时钟选择 14.4.8 ADICLK 时钟源选择 00 总线时钟 01 总线时钟 /2 10 交替时钟 (ALTCLK) 11 异步时钟 (ADACK) 引脚控制 1 寄存器 (APCTL1) 引脚控制寄存器用于禁止 MCU 引脚的 I/O 口用作模拟输入。 APCTL1 用于控制和 ADC 模块的通道 0-7 相关的位。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 7 6 5 4 3 2 1 0 ADPC7 ADPC6 ADPC5 ADPC4 ADPC3 ADPC2 ADPC1 ADPC0 0 0 0 0 0 0 0 0 读 写 复位 图 14-10. 引脚控制 1 寄存器 (APCTL1) 表 14-10. APCTL1 寄存器域描述 域 14.4.9 描述 7 ADPC7 ADC 引脚控制 7——ADPC7 用于控制和通道 AD7 相关的位。 0 允许 AD7 引脚 I/O 控制。 1 禁止 AD7 引脚 I/O 控制。 6 ADPC6 ADC 引脚控制 6——ADPC6 用于控制和通道 AD6 相关的位。 0 允许 AD6 引脚 I/O 控制。 1 禁止 AD6 引脚 I/O 控制。 5 ADPC5 ADC 引脚控制 5——ADPC5 用于控制和通道 AD5 相关的位。 0 允许 AD5 引脚 I/O 控制。 1 禁止 AD5 引脚 I/O 控制。 4 ADPC4 ADC 引脚控制 4——ADPC4 用于控制和通道 AD4 相关的位。 0 允许 AD4 引脚 I/O 控制。 1 禁止 AD4 引脚 I/O 控制。 3 ADPC3 ADC 引脚控制 3——ADPC3 用于控制和通道 AD3 相关的位。 0 允许 AD3 引脚 I/O 控制。 1 禁止 AD3 引脚 I/O 控制。 2 ADPC2 ADC 引脚控制 2——ADPC2 用于控制和通道 AD2 相关的位。 0 允许 AD2 引脚 I/O 控制。 1 禁止 AD2 引脚 I/O 控制。 1 ADPC1 ADC 引脚控制 1——ADPC1 用于控制和通道 AD1 相关的位。 0 允许 AD1 引脚 I/O 控制。 1 禁止 AD1 引脚 I/O 控制。 0 ADPC0 ADC 引脚控制 0——ADPC0 用于控制和通道 AD0 相关的位。 0 允许 AD0 引脚 I/O 控制。 1 禁止 AD0 引脚 I/O 控制。 引脚控制 2 寄存器 (APCTL2) APCTL2 用于控制和 ADC 模块的通道 8-15 相关的位。 7 6 5 4 3 2 1 0 ADPC15 ADPC14 ADPC13 ADPC12 ADPC11 ADPC10 ADPC9 ADPC8 0 0 0 0 0 0 0 0 读 写 复位 图 14-11. 引脚控制 2 寄存器 (APCTL2) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 14-11. APCTL2 寄存器域描述 域 14.4.10 描述 7 ADPC15 ADC 引脚控制 15——ADPC15 用于控制和通道 AD15 相关的位。 0 允许 AD15 引脚 I/O 控制。 1 禁止 AD15 引脚 I/O 控制。 6 ADPC14 ADC 引脚控制 14——ADPC14 用于控制和通道 AD14 相关的位。 0 允许 AD14 引脚 I/O 控制。 1 禁止 AD14 引脚 I/O 控制。 5 ADPC13 ADC 引脚控制 13——ADPC13 用于控制和通道 AD13 相关的位。 0 允许 AD13 引脚 I/O 控制。 1 禁止 AD13 引脚 I/O 控制。 4 ADPC12 ADC 引脚控制 12——ADPC12 用于控制和通道 AD12 相关的位。 0 允许 AD12 引脚 I/O 控制。 1 禁止 AD12 引脚 I/O 控制。 3 ADPC11 ADC 引脚控制 11——ADPC11 用于控制和通道 AD11 相关的位。 0 允许 AD11 引脚 I/O 控制。 1 禁止 AD11 引脚 I/O 控制。 2 ADPC10 ADC 引脚控制 10——ADPC10 用于控制和通道 AD10 相关的位。 0 允许 AD10 引脚 I/O 控制。 1 禁止 AD10 引脚 I/O 控制。 1 ADPC9 ADC 引脚控制 9——ADPC9 用于控制和通道 AD9 相关的位。 0 允许 AD9 引脚 I/O 控制。 1 禁止 AD9 引脚 I/O 控制。 0 ADPC8 ADC 引脚控制 8——ADPC8 用于控制和通道 AD8 相关的位。 0 允许 AD8 引脚 I/O 控制。 1 禁止 AD8 引脚 I/O 控制。 引脚控制 3 寄存器 (APCTL3) APCTL3 用于控制和 ADC 模块的通道 16-23 相关的位。 7 6 5 4 3 2 1 0 ADPC23 ADPC22 ADPC21 ADPC20 ADPC19 ADPC18 ADPC17 ADPC16 0 0 0 0 0 0 0 0 读 写 复位 图 14-12. 引脚控制 3 寄存器 (APCTL3) 表 14-12. APCTL3 寄存器域描述 域 7 ADPC23 描述 ADC 引脚控制 23——ADPC23 用于控制和通道 AD23 相关的位。 0 允许 AD23 引脚 I/O 控制。 1 禁止 AD23 引脚 I/O 控制。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 14-12. APCTL3 寄存器域描述 14.5 6 ADPC22 ADC 引脚控制 22——ADPC22 用于控制和通道 AD22 相关的位。 0 允许 AD22 引脚 I/O 控制。 1 禁止 AD22 引脚 I/O 控制。 5 ADPC21 ADC 引脚控制 21——ADPC21 用于控制和通道 AD21 相关的位。 0 允许 AD21 引脚 I/O 控制。 1 禁止 AD21 引脚 I/O 控制。 4 ADPC20 ADC 引脚控制 20——ADPC20 用于控制和通道 AD20 相关的位。 0 允许 AD20 引脚 I/O 控制。 1 禁止 AD20 引脚 I/O 控制。 3 ADPC19 ADC 引脚控制 19——ADPC19 用于控制和通道 AD19 相关的位。 0 允许 AD19 引脚 I/O 控制。 1 禁止 AD19 引脚 I/O 控制。 2 ADPC18 ADC 引脚控制 18——ADPC18 用于控制和通道 AD18 相关的位。 0 允许 AD18 引脚 I/O 控制。 1 禁止 AD18 引脚 I/O 控制。 1 ADPC17 ADC 引脚控制 17——ADPC17 用于控制和通道 AD17 相关的位。 0 允许 AD17 引脚 I/O 控制。 1 禁止 AD17 引脚 I/O 控制。 0 ADPC16 ADC 引脚控制 16——ADPC16 用于控制和通道 AD16 相关的位。 0 允许 AD16 引脚 I/O 控制。 1 禁止 AD16 引脚 I/O 控制。 功能描述 当复位或 ADCH 位全高时,禁止 ADC 模块。当转换完成而且另一个转换还未初始化时,该模块空闲。空 闲时,模块处于最小功耗状态。 ADC 可以通过软件选择任何一个通道进行模数转换。选择的通道电压可以被逐次渐进算法转换成 11 位数 字的结果。在 8 位模式中,选择的通道电压可以被逐次渐进算法转换成 9 位数字的结果。 当转换完成,结果放在数据寄存器中 (ADCRH 和 ADCRL)。在 10 位模式中,结果四舍五入成 10 位放 在 ADCRH 和 ADCRL 中。在 8 位模式中,结果四舍五入成 8 位放在 ADCRL 中。转换完成标志置 1 并且如果 允许转换完成中断 (AIEN=1),产生一个中断。 ADC 模块能够自动比较转换结果和比较寄存器的内容。通过置位 ACFE 位,允许比较功能。该功能和任 何转换模式和设置协力完成操作。 14.5.1 时钟选择和分频控制 可以选择 4 个时钟源中的一个作为 ADC 模块的时钟源。这个时钟源除以一个设置值就可以产生转换器的 输入时钟 (ADCK)。时钟选择下面源中的一个,由 ADICLK 位决定。 • 总线时钟,等于软件执行时的频率。这是复位后的默认值。 • 总线时钟 /2。对于更高的时钟,可以允许最大除以 16。 • ALTCLK,由 MCU 定义 (参见模块一节的介绍) • 异步时钟 (ADACK)——该时钟由 ADC 模块内部的时钟源产生。当选择这个时钟源时,若 MCU 处 于等待或 stop3 模式时,该时钟仍有效,允许在这些模式中以更低的噪音操作来进行转换。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 无论选择哪个时钟,它的频率都必须低于规定的 ADCK 频率范围。如果可用的时钟太慢,根据规定 ADC 将不会工作。如果可用的时钟太快,时钟必须分频到适当的频率。分频因子由 ADIV 位决定,可以除以 1, 2, 4, 8。 输入选择和引脚控制 14.5.2 引脚控制寄存器 (APCTL3、 APCTL2、 APCTL1)可以禁止引脚的 I/O 控制用于模拟输入。当引脚控制 寄存器位置位时,相应的 MCU 位将会服从接下来的条件: • 输出缓冲区强制为高阻抗状态。 • 禁止输入缓冲区。读这些禁止的缓冲区的任何位返回 0。 • 禁止上拉电阻。 硬件触发 14.5.3 ADC 模块有一个可选的异步硬件转换触发器, ADHWT,当 ADTRG 位置位时,它被允许。关于该 MCU 的 ADHWT 源的具体细节参考模块介绍。 当 ADHWT 源可用并且硬件触发被允许 (ADTRG=1),在 ADHWT 的上升沿初始化转换。如果当一个上 升沿产生,一个转换正在处理中,上升沿被忽略。在连续转换设置中,只有引起连续转换的首次上升沿可以被 发现。硬件触发功能和任何转换模式和设置协力完成操作。 转换控制 14.5.4 可以使用 8 位或 10 位模式转换,由 MODE 位决定。一个软件或硬件触发可以初始化转换。另外, ADC 模块可以设置为低功耗操作,长采样时间,连续采样,自动比较转换值和软件决定的比较值。 14.5.4.1 初始化转换 满足以下条件,即初始化转换: • 如果选择软件触发操作,在写 ADCSC1 之后 (ADCH 不是全 1)。 • 如果选择硬件触发操作,在一个硬件触发 (ADHWT)事件之后。 • 当允许连续转换时,在将数据传到数据寄存器之后。 如果允许连续转换,当前转换完成后,一个新的转换可以自动初始化。在软件触发中,连续转换在写 ADCSC1 后开始,并继续直到终止。在硬件触发操作中,连续转换在硬件触发事件后开始,并继续直到终 止。 14.5.4.2 完成转换 当转换的结果传到数据结果寄存器, ADCRH 和 ADCRL 后,转换完成。通过置位 COCO 表示。如果 AIEN 是高,在 COCO 置位时会产生一个中断。 在 10 位模式中,如果数据正在被读 (ADCRH 已经被读但是 ADCRL 还未被读),闭锁机制保护新的数 据不会重写在 ADCRH 和 ADCRL 中以前的数据。当锁有效,数据传送被锁, COCO 不能置位,新的数据丢 失。在允许比较功能的单个转换的情况下,并且比较条件为假,锁没有作用, ADC 操作被终止。在其他情况 下,当数据传送被锁,除非 ADCO 的状态 (允许单个或连续转换),另一个转换被初始化。 如果允许单个转换,闭锁机制可能导致丢弃几个转换并且额外的功耗。为了避免这种情况,在初始化一 个单个转换后,数据寄存器直到转换完成才能读。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 14.5.4.3 终止转换 下列情况发生时,任何正在出来的转换都会终止: • 写 ADCSC1 发生 (如果 ADCH 不是全 1,当前的转换被取消并开始了一个新的转换,)。 • 写 ADCSC2、ADCCFG、ADCCVH 或 ADCCVL 发生。这表明转换模式发生改变,因此当前的转换无 效。 • MCU 复位。 • MCU 进入停止模式并且禁止 ADACK。 当一个转换终止,数据寄存器 (ADCRH 和 ADCRL)的内容不会改变,而是上次转换后完成后的传送的 值。在因复位导致的转换终止情况中, ADCRH 和 ADCRL 返回到它们的复位值。 14.5.4.4 电源控制 直到初始化一个转换, ADC 模块都保持空闲。如果 ADACK 被选作转换时钟源, ADACK 时钟产生器也 被允许。 当有效时功耗可以通过设置 ADLPC 减小。这导致更小的 fADCK 最大值 (参考电气描述)。 14.5.4.5 总转换时间 总转换时间依赖于抽样时间 (由 ADLSMP 决定), MCU 总线频率,转换模式 (8 位或 10 位),转换时 钟的频率 (fADCD)。模块有效后,输入的采样开始。 ADLSMP 用于选择长或短采样时间。当转换完成,转换 器和输入通道隔离,用逐次渐进算法将模拟信号转换成数字值。转换算法完成后,转换结果传送到 ADCRH 和 ADCRL。 如果总线频率小于 fADCK 频率,当允许短采样 (ADLSMP=0)时,无法保证连续转换的精确采样时间。 如果总线频率小于 fADCK 频率的 1/11,当允许长采样 (ADLSMP=1)时,无法保证连续转换的精确采样时 间。 表 14-13 中总结了不同条件下的最大的总转换时间。 表 14-13. 不同控制条件的总转换时间 转换类型 ADICLK ADLSMP 最大总转换时间 单个或第一个连续转换 8 位 0x, 100 0 20ADCK 周期 +5 总线时钟周期 单个或第一个连续转换 10 位 0x, 100 0 23ADCK 周期 +5 总线时钟周期 单个或第一个连续转换 8 位 0x, 100 1 40ADCK 周期 +5 总线时钟周期 单个或第一个连续转换 10 位 0x, 100 1 40ADCK 周期 +5 总线时钟周期 单个或第一个连续转换 8 位 11 0 5s+20ADCK +5 总线时钟周期 单个或第一个连续转换 10 位 11 0 5s+23ADCK +5 总线时钟周期 单个或第一个连续转换 8 位 11 1 5s+40ADCK +5 总线时钟周期 单个或第一个连续转换 10 位 11 1 5s+43ADCK +5 总线时钟周期 后来的连续转换 8 位 fBUS ≥ fADCK xx 0 17ADCK 周期 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 14-13. 不同控制条件的总转换时间 ( 续 ) 后来的连续转换 10 位 fBUS ≥ fADCK xx 0 20ADCK 周期 后来的连续转换 8 位 fBUS ≥ fADCK/11 xx 1 37ADCK 周期 后来的连续转换 10 位 fBUS ≥ fADCK/11 xx 1 40ADCK 周期 最大的总转换时间由转换时钟和分频因子决定。时钟源由 ADICLK 位决定,分频因子由 ADIV 描述。例如, 在 10 位模式中,选择总线时钟作为输入时钟源,输入时钟除以 1 分频, 8MHz 总线时钟,则单个转换的转换 时间是: 转换时间 23 ADCK 周期 8 MHz 1 = + 5 总线周期 8 MHz = 3 .5 μ s 公式 14-2 总线时钟的个数 =3.5 μs × 8 MHz = 28 (周期) 注意 ADCK 频率必须在 ADC 说明书中的 fADCK 最小值和 fADCK 最大值之间。 14.5.5 自动比较功能 比较功能可以设置为检测上限或下限。采样和转换输入后,结果和比较值 (ADCCVH 和 ADCCVL)的 补数相加。比较上限时 (ACFGT = 1),如果结果大于或等于比较值, COCO 置位。比较下限时 (ACFGT=0),如果结果小于比较值, COCO 置位。转换结果和比较值的补数相加后产生的值传送到 ADCRH 和 ADCRL。 注意 当 MCU 在等待或 stop3 模式时,比较功能用于监控通道上的电压。满足比较条件 时, ADC 中断将唤醒 MCU。 14.5.6 MCU 等待模式操作 WAIT 指令使 MCU 进入低功耗待命模式。因为时钟源仍然活动,这种模式可以很快恢复。如果 MCU 进 入等待模式时,有一个转换正在处理,它将继续直到完成。当 MCU 处于等待模式时,通过硬件触发的方式或 者如果允许连续转换,可以初始化转换。 处于等待模式时,总线时钟,总线时钟的一半和 ADACK 可以作为转换时钟源。在等待模式时, ALTCLK 作为转换时钟源使用是由该 MCU 的 ALTCLK 的定义决定的。参考该 MCU 中模块说明中关于 ALTCLK 说明的 信息。 14.5.7 MCU stop3 模式操作 在 MCU 中禁止了大多数或所有的时钟源期间, STOP 指令可以使 MCU 进入低功耗待命模式。 14.5.7.1 禁止 ADACK 的 stop3 模式 如果不选择异步时钟 ADACK 作为转换时钟,执行 STOP 指令终止当前转换并且使 ADC 进入空闲状态。 stop3 模式不影响 ADCRH 和 ADCRL 的值。从 stop3 模式退出后,需要一个软件或硬件触发重新开始转换。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 允许 ADACK 的 stop3 模式 14.5.7.2 如果选择 ADACK 作为转换时钟,在 stop3 模式时, ADC 继续工作。为了保证 ADC 操作, MCU 的电源 调整器在 stop3 模式时必须仍然有效。参考该 MCU 模块介绍中的配置信息。 如果 MCU 进入 stop3 模式时,有一个转换正在处理,它将继续直到完成。当 MCU 处于 stop3 模式时, 通过硬件触发的方式或者如果允许连续转换,可以初始化转换。 转换完成事件置位 COCO,并且如果中断允许 (AIEN=1)还会产生一个 ADC 中断将 MCU 从等待模式 唤醒。 注意 ADC 可能将系统从低功率停止中唤醒,导致 MCU 开始强烈的运行电平电流而没 有产生一个系统电平中断。为了避免这种情况,当进入 stop3 模式并继续 ADC 转 换时,软件应该确保数据传输闭锁机制 (在第 14.5.4.2 节 完成转换)清零。 MCU stop1 和 stop2 模式操作 14.5.8 当 MCU 进入 stop1 或 stop2 模式时,自动禁止 ADC 模块。从 stop1 或 stop2 退出时,所有的模块寄存 器存放的是复位值。因此从 stop1 或 stop2 退出时,模块必须被重新使能和重新配置。 14.6 初始化信息 该节举例说明了用户如何初始化和配置 ADC 模块的一些基本方用法。用户可以灵活地选择配置模块, 8 位或 10 位精度,单个或连续转换,循环或中断方式,还有其他选项。在该例中的信息可以参见表 14-7、 表 14-8 和表 14-9。 注意 十六进制的前缀是 0x,二进制的前缀是 %,十进制没有前缀。 14.6.1 14.6.1.1 ADC 模块初始化举例 初始化顺序 在 ADC 模块执行转换操作前,必须初始化。典型的初始化顺序是: 1. 更新配置寄存器 (ADCCFG)选择输入时钟源和产生内部时钟 (ADCK)的分频因子。这个寄存器也 可以用来选择采样时间和低功耗配置。 2. 更新状态和控制寄存器 2 (ADCSC2)选择转换触发器 (硬件或软件)和比较功能选项 (如果允 许)。 3. 更新状态和控制寄存器 1 (ADCSC1)可以选择转换是否是连续的还是仅一次完成,并且允许或禁止 转换完成中断。选择哪路输入通道完成转换也是在这里操作。 14.6.1.2 伪代码举例 在该例中, ADC 模块将提供允许中断产生一个单个 10 位转换,低功耗,输入通道 1 上的长采样时间, 内部的 ADCK 时钟将由总线时钟除以 1 得到 ADCCFG=0x98 (%10011000) Bit 7 ADLPC 1 配置为低功耗 (降低最大的时钟速率) Bit 6:5 ADIV 00 设置 ADCK 为输入时钟 /1 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # Bit 4 ADLSMP 1 设置位长采样时间 Bit 3:2 MODE 10 设置位 10 位转换模式 Bit 1:0 ADICLK 00 选择总线时钟作为输入时钟 ADCSC2=0x00 (%00000000) Bit 7 ADACT 0 标志表示转换是否在处理中 Bit 6 Bit 5 ADTRG ACFE 0 0 选择软件触发器 禁止比较功能 Bit 4 ACFGT 0 在该例中未使用 Bit 3:2 00 未实现或保留,读为 0 Bit 1:0 00 保留为 Freescale 使用;写为 0 ADCSC1=0x41 (%01000001) Bit 7 COCO 0 只读标志当转换完成时置位 Bit 6 AIEN 1 转换完成中断使能 Bit 5 ADCO 0 仅一次转换 (禁止连续转换) Bit 4:0 ADCH 00001 选择通道 1 作为 ADC 输入通道 ADCRH/L = 0xxx 保存转换结果。在低字节前读高字节,所以转换数据不会被下一次转换的数据重写。 ADCCVH/L = 0xxx 当允许比较功能时,保存比较值 APCTL1=0x02 禁止 AD1 引脚 I/O 控制。其他 AD 引脚仍然位通用 I/O 引脚 APCTL2=0x00 其他 AD 引脚仍然时通用 I/O 引脚。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 复位 初始化 ADC ADCCFG = $98 ADCSC2 = $00 ADCSC1 = $41 检测 COCO=1? 否 是 读 ADCRH 然后读 ADCRL 来清 COCO 位 继续 图 14-13. 举例的初始化流程 14.7 应用信息 该节包含了在应用中使用 ADC 模块的信息。 ADC 被设计集成了一个微控制器可以使用在需要 A/D 转换 器的嵌入式控制应用中。 14.7.1 外部引脚和安排 下面讨论了和 ADC 模块相关的外部引脚和如何最好的使用它们。 14.7.1.1 模拟电源引脚 ADC 模块有电源和地引脚 (VDDAD 和 VSSAD),在一些设备中有独立的引脚。在其他设备, VSSAD 和 MCU VSS 复用相同的引脚。在一些设备中, VSSAD 和 VDDAD 共享数字供电引脚。在这些情况中,有独立模拟 供电,和相应的数字电源绑定在相同的引脚。所以这两个电源在一定程度上保持隔离。 当作为独立的引脚时, VDDAD 和 VSSAD 必须和相应的 MCU 数字电源 (VDD 和 VSS)连接相同的电压, 谨慎布线避免干扰,旁路电容离封装尽可能近。 在模拟和数字电源单独供电时的情况,这两个电源的接地连接必须是 VSSAD 引脚。如果可能这应该是这 两个电源的唯一接地连接。 VSSAD 接单个的地位置。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 14.7.1.2 模拟参考引脚 除了模拟电源, ADC 模块连接了两个参考电压输入。高参考电源是 VREFH,在有些设备中,可能和 VDDAD 复用相同的引脚。地参考电压是 VREFL,在有些设备中和 VSSAD 复用相同的引脚。 当作为单独引脚时, VREFH 可能和 VDDAD 连到相同的电压。或可能是由外部得到 (介于 VDDAD 最小值 和 VDDAD 之间, VREFH 绝对不能大于 VDDAD)。当作为单独引脚时, VREFL 可能和 VDDAD 连到相同的电压。 VREFH 和 VREFL 必须谨慎布线防止最大干扰度和旁路电容离封装尽可能近。 在每次逐次渐进步骤,电流尖峰组成的交流 (AC)电流通过 VREFH 和 VREFL 循环位电容阵列提供电荷。 满足这个电流要求的最好的外部元件是 0.1μF 的电容 (高频特性)。这个电容连接到 VREFH 和 VREFL 之间, 离封装尽可能近。不推荐使用电阻,因为电流导致电压泄露,这可能导致转换错误。该路径上的电磁感应应最 小化。 14.7.1.3 模拟输入引脚 外部模拟输入通常和 MCU 设备的 I/O 引脚复用。通过置位引脚控制寄存器的相应位可以禁止引脚 I/O 控 制。相应的引脚控制寄存器位没有置位,可以进行转换操作。当引脚作为模拟输入时,推荐置位引脚控制寄存 器位。这避免了连接问题,因为输入缓冲区处于高阻抗状态并且禁止上拉电阻。而且,当输入既不是 VDD 也 不是 VSS,输入缓冲吸收直流 (DC)电流。置位引脚控制位,所有的引脚作为模拟输入,可以达到最低的操 作电路。 试验数据表明,当存在噪音或源阻抗高时,模拟输入上的电容可以提高性能。试验 0.01 μ F 的电容 (有 高频特性)完全可以满足。这些电容并不是在所有的情况下都需要,但是它们必须放在离封装尽可能近的地 方,作为 VSSA 的参考。 为正确转换,输入电压必须在 VREFH 和 V REFL 之间。如果输入等于或大于 VREFH 转换电路把信号转换 成 $3FF (共 10 位表示)或 $FF (共 8 位表示),如果输入等于或小于 VREFH,转换电路把信号转换成 $000,在 VREFH 和 VREFL 之间的输入电压是线性转换。当采样电容正在充电时,将会有一个和 VREFL 相关的 短暂电流。当 ADLSMP 低,将会采样以 ADCK 为源的 3.5 个周期,当 ADLSMP 高,则是 23.5 个周期。 为了减少因电流进入而引起的正确度减小,连接到模拟输入的引脚在转换期间不应该传输。 14.7.2 错误源 A/D 转换中存在几种错误源。它们在该节的后面讨论。 14.7.2.1 采样错误 为正确转换,输入必须被采样足够长时间才能达到合适的精度。如果最大输入电阻 7 kΩ 和输入电容 5.5 pF,外部模拟源 (RAS)的电阻小于 5 kΩ,则采样 1/4LSB (10 位精度)可以在最小的采样窗口完成 (3.5 周期, 8MHz 最大 ADCK 频率)。 更高电阻或更高精度的采样可以通过置位 ADLSM (增加采样窗口到 23.5 个周期)或通过减少 ADCK 频 率来增加采样时间。 14.7.2.2 引脚漏电流误差 如果外部模拟源 (RAS)为高, I/O 引脚上的漏电流导致转换误差。如果在应用中不能容忍这个错误,保 持 RAS 小于 VDDAD /(2N*ILEAK) 将会后更少漏电流误差 (8 位模式 N = 8, 10 位模式 N = 10) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 14.7.2.3 噪音误差 在采样或转换过程中产生的系统噪音会影响转换的正确性。只要满足下面指定的条件才能保证 ADC 采样 的正确性。 • VREFH 和 VREFL 之间有一个 0.1 μF 的低内阴电容。 • VDDAD 和 VSSAD 之间有一个 0.1 μF 的低内阴电容。 • 如果电源使用感应隔离,一个 1 μF 的电容放在 VDDAD 和 VSSAD 之间。 • VSSAD (和 VREFL,如果连接)连接到 VSS (连着地平面的点)。 • 初始化 (硬件触发转换)前或刚初始化 (软件或硬件触发转换) ADC 转换, MCU 处于等待或 stop3 状态。 • • 对于软件触发转换,用 WAIT 或 STOP 指令写 ADCSC1 后。 • 对于 stop3 模式操作,选择 ADACK 作为时钟源。在 stop3 模式的操作减少 VDD 噪音但是因为停 止复原增加了有效转换时间。 MCU 处于转换时,没有 I/O 选择,输入或输出。 在一些情况,外部系统行为导致辐射或噪音发射或伴随 ADC 的过多 VDD 噪音。在这些情况,或当 MCU 不能在等待状态或 I/O 行为停止,上述操作可能减少影响正确性的噪音: • 在选择的输入通道和 VREFH 或 VREFL 之间放置一个 0.01 μF 的电容 (CAS)(这将增加噪音问题但是 影响基于外部的模拟源电阻的采样率)。 • 求多次转换模拟值的平均。需要四次采样减少 1LSB 的影响以及一次误差。 • 通过关闭异步时钟 (ADACK)和求平均,减少同步噪音的影响。和 ADCK 同步的噪音无法达到平均 数。 14.7.2.4 编码宽度和量化误差 ADC 可以将输入的线性值量化成 1024 个块 (在 10 位模式)。每块有相同的高度 (1 个代码)和宽度。 宽度定义为 dleta,在一个代码到下一个之间。 N 位转换器 (N 是 8 或 10)的理想代码宽度,定义为 1LSB, 为: 1LSB= (VREFH - VREFL) /2N 公式 14-3 数字化结果存在固有的量化误差。对于 8 位或 10 位转换。用两点的中点表示电压,代码被转化。因此在 8 位或 10 位模式中,量化误差 ±1/2LSB。因此,第一个转化的编码宽度 ($000)只有 1/2LSB 并且最后一个 转化的宽度时 1.5LSB。 14.7.2.5 线性误差 ADC 可能存在几种非线性的情况。各种方法减少这些错误,但是系统仍然会存在,因为它们影响全局的 精度。这些错误是: • 归零误差 (EZS)(也称作偏移量)——指第一个转换的实际编码宽度和理想编码宽度的不同 (1/2LSB)。注意如果第一个转换是 $001,则采用了然后实际的 $001 编码宽度和理想情况 (1LSB) 的不同。 • 满标误差 (EFS)——指最后一个转换的实际编码宽度和理想编码宽度的不同 (1.5LSB)。注意如果 最后一个转换是 $3FE,采用了实际的 $001 编码宽度和理想情况 (1LSB)的不同。 • 微分非线性 (DNL)——指所有转换中实际编码宽度和理想编码宽度最大误差。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # • 积分非线性 (INL)—— 指 DNL 总和所能达到的最大值。更简单的,所有编码中,编码所给的实际的 转换电压和和相应的理想电压的最大误差。 • 总非校准误差 (TUE)——这个错误定义为实际转换函数和理想线性转换函数的不同,因此包含所有 形式的错误。 14.7.2.6 编码抖动、非单调性和遗编码 ADC 易受三种特殊形式的错误影响。它们是代码抖动,非单调性,遗编码。 代码抖动,在某一点时,当重复采样时,一个确定的输入电压转化成两个值中的一个。理想的,当输入 电压比转换电压只小很少时,转换器产生更低的编码 (反之亦然)。然而,即使很小的系统噪音也会导致转换 器对于转换电压周围一定范围的输入电压不确定 (在两个编码之间)。这个范围通常是 1/2LSB,并且随噪音 而增加。这个误差可以通过重复采样和对结果求均值来减少。另外在 14.7.2.3 节 噪音误差节中的技巧可以减 少该误差。 非单调性可以定义为,除了代码抖动,转换器可能转换一个较高电压位较低编码。遗编码是那些对于任 何输入都不会转换的值。 在 8 位或 10 位模式中, ADC 将确保单调并且不遗失编码。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 第 15 章 15.1 开发支持 介绍 HCS08 中的开发支持系统包括背景调试控制器 (BDC) 和片上调试模块 (DBG)。BDC 提供单线调试接口, 与目标连接,通过这个接口可以方便地进行片上闪存和其它非易失性存储器的编程 。BDC 也是开发用的主要 调试接口,允许以非侵入式方式存取存储器数据和传统调试功能,如 CPU 寄存器修改、断点和单指令跟踪命 令等。 在 HCS08 产品系列中,外部引脚不包括地址和数据总线信号 (即使在测试模式也不包括)。调试的执行 是通过单线背景调式接口向目标 MCU 传输命令来实现的。调试模块提供了一种有选择性地触发和捕获总线信 息的方式,这样外部开发系统可以对 MCU 内发生的事件按周期进行重现,而不需要从外部存取 MCU 的地址 和数据信号。 ICGLCLK 是 MC9S08AC16 的可选 BDC 时钟源。关于此时钟源的详细信息以及如何选择时钟源请参见第 9 章 内部时钟发生器 (S08ICGV4)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 特性 15.1.1 BDC 模块的特性包括: • 单引脚进行模式选择和背景调试通信 • BDC 的寄存器不位于存储器地址中 • SYNC 命令确定目标通信速率 • 非侵入式命令进行存储器存取 • 供 CPU 寄存器存取的激活背景调试模式命令 • GO 和 TRACE1 命令 • 背景调试命令可以将 CPU 从停止模式或等待模式中唤醒 • BDC 内置一个硬件地址断点 • 如果 BDC 使能,则振荡器运行在停止模式 • 处于激活背景调试模式时 , COP 看门狗禁止 ICE 系统的特性包括: • 两个触发比较器:两个地址 + 读 / 写 (R/W) 或一个完整地址 + 数据 + R/W • 灵活的 8-word x 16-bit FIFO ( 先进先出 ) 缓存 , 用于捕获信息: • • 15.2 • 流程变化的地址 或 • 纯事件数据 两个类型的断点: • 指令操作码的标记断点 • 任何地址存取的强制断点 九个触发模式: • 基本:只有 A,A 或 B • 顺序:A 然后 B • 全部:A 和 B 数据 , A 和非 B 数据 • 事件 ( 存储数据 ): 纯事件 B, A 然后纯事件 B • 范围:在范围以内 (A ≤ 地址≤ B), 在范围以外 ( 地址 < A 或地址 > B) 背景调试控制器 (BDC) HCS08 系列中的所有 MCU 都包含一个单线背景调试接口,它支持片上非易失性存储器的在线编程和先 进的非侵入式调试功能。与早期的 8- 位 MCU 的调试接口不同 , 这个系统不干扰正常的应用资源。它不使用任 何用户存储器或存储器映射中的地址,也不分享任何片上外设。 BDC 命令分为两大组: • 激活背景调试模式命令要求目标 MCU 处于激活背景调试模式 ( 用户程序未运行 )。激活背景调试模式 命令允许读写 CPU 寄存器,允许用户一次跟踪一个用户指令,或从激活背景调试模式进入用户程序。 • 非侵入式命令可以随时执行,即使用户的程序正在运行。 非侵入式命令允许用户在背景调试控制器中读写 MCU 存储器位置或存取状态和控制寄 存器。 一般地,可以用相当简单的接口盒将来自主机的命令转换为与单线背景调试系统连接所需的串行命令。 根据开发工具供应商的不同,这个接口盒可以采用标准 232 串行端口,或是并行打印端口,或是其它类型的 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 通信端口,如用来与 PC 通信的 USB 接口。这个接口盒一般通过接地、 BKGD 引脚、 RESET,有时还有 VDD 与目标系统连接。 RESET 引脚的开漏连接允许主机强制目标系统复位,这有助于重新获得对已失目标系 统的控制,或在片上非易失性存储器重新编程之前,控制目标系统的启动。有时可以用 VDD 来允许接口盒使 用目标系统的电源,避免再使用一个电源。但是,如果单独对接口盒供电,它可以连接到一个正在运行的目标 系统,而不必强制目标系统复位,否则会干扰正在运行的应用程序。 BKGD 1 2 GND NO CONNECT 3 4 RESET NO CONNECT 5 6 VDD 图 15-1. 工具接口 15.2.1 BKGD 引脚描述 BKGD 是单线背景调试接口引脚。这个引脚的主要功能是实现激活背景调试模式命令和数据的双向串行 通信。在复位过程中,这个引脚用来选择激活背景调试模式启动或启用用户的应用程序。这个引脚还用来请求 定时同步响应脉冲,允许主机开发工具确定背景调试串行通信的正确时钟频率。 BDC 串行通信采用首先引入在微处理器 M68HC12 系列上的定制串行协议。这个协议假定主机知道通信 时钟速率,这个速率按目标 BDC 所有通信通过主机启动和控制所有通信,主机驱动高到低边沿发出每个位时 间开始信号。命令和数据以最重要的位先发 (MSB 先发 ) 的方式发送。有关通信协议的详细信息,请参见 15.2.2 节 通信详细介绍。 如果主机偿试与 BDC 时钟速率未知的目标 MCU 沟通,可以发送 SYNC 命令给目标 MCU ,请求定时同 步响应信号,通过这个信号,主机可以判断正确的通信速率。 BKGD 是伪开漏引脚,有一个片上上拉,因此不需要外部上拉电阻。与典型的开漏引脚不同,引脚上的 外部 RC 时间常数 (受外部容性的影响),在信号上升时间上几乎不起作用。定制协议提供瞬态加速脉冲,强 制提高这个引脚的上升时间,而没有驱动电平冲突风险。参见 15.2.2 节 通信详细介绍,了解更多详情。 当没有调试盒连接 6- 引脚的 BDM 接口连接器时,BKGD c 的内部上拉会选择正常的操作模式。当调试盒 连接到 BKGD 时,可以在 MCU 复位后强制它进入激活背景调试模式。强制激活背景调试的具体条件取决于 HCS08 衍生产品 ( 参见 “开发支持”小节的介绍 )。不必复位目标 MCU 来通过背景调试接口来与之通信。 15.2.2 通信详细介绍 BDC 串行接口需要外部控制器来生成 BKGD 引脚上的下降沿,指示每个位时间的开始。无论数据是发送 或接收,外部控制器都会提供这个下降边沿。 BKGD 是伪开漏引脚,可以被外部控制器或 MCU 来驱动。数据以 MSB 先发的形式且以每位 16 个 BDC 时钟周期的速率 ( 标定速率 ) 发送。如果来自主机的下降边沿之间产生 512 BDC 时钟周期,则该接口超时。 出果出现超时,任何正在进行的 BDC 命令被中止,对目标 MCU 系统的存储器或操作模式没有影响。 定制串行协议要求调试盒知道目标 BDC 通信时钟速率。 BDC 状态和控制寄存器中的时钟开关 (CLKSW) 控制位允许用户选择 BDC 时钟源。BDC 时钟源可以是总 线,或备用的 BDC 时钟源。 BKGD 引脚可以接收高或低电平,或发送高或低电平。下图显示了每种情况的时序。接口时序与目标 BDC 中的时钟同步,但是与外部主机异步。显示的内部 BDC 时钟信号是计数周期的参考。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 图 15-2 显示了外部主机将逻辑 1 或 0 发送到目标 HCS08 MCU 的 BKGD 引脚。主机与目标异步,因此 主机生成的 BKGD 下降边沿与目标所认为的位时间起始点有 0- 到 -1 周期的延迟。 10 个目标 BDC 时钟周期 后,目标获得 BKGD 引脚的电平。一般地,主机在主机到目标方向的传输过程中驱动 BKGD 引脚 ,以加快上 升边沿。由于目标在主机至目标方向的传输周期中不驱动 BKGD 引脚,因此没有必要在此期间将线路作为开 漏信号。 BDC 时钟 ( 目标 MCU) 主机 发送 1 主机 发送 0 10 个 周期 同步 不确定性 下一个位 最早开始 目标获得位电平 位时间开始 图 15-2. BDC 主机到目标方向串行位时序 图 15-3 显示主机从目标 HCS08 MCU 收到逻辑 1。由于主机与目标异步,因此主机生成的 BKGD 上的下 降边沿与目标 MCU 所认为的位时间起始点有 0 到 1 个周期的延迟。主机保持低 BKGD 引脚足够长的时间, 使目标识别它 (至少两个目标 BDC 周期)。主机必须在目标 MCU 在其认为的位计时开始后驱动瞬时高态加 速脉冲七个周期前,释放低电平驱动。主机应该在其启动位时间约 10 个周期后采样位电平。 BDC 时钟 ( 目标 MCU) HOST DRIVE TO BKGD PIN TARGET MCU SPEEDUP PULSE HIGH-IMPEDANCE HIGH-IMPEDANCE HIGH-IMPEDANCE 位时间开始 R-C RISE BKGD PIN 10 个 周期 10 个 周期 下一个位 最早开始 HOST SAMPLES BKGD PIN 图 15-3. BDC 目标 - 到 - 主机串行位时序 ( 逻辑 1) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 图 15-4 显示了主机从目标 HCS08 MCU 收到逻辑 0。由于主机与目标异步,因此主机生成的 BKGD 上的 下降边沿与目标 MCU 所认为的位时间起始点有 0 到 1 个周期的延迟。主机启动位时间,但是目标 HCS08 MCU 完成它。由于目标希望主机接收逻辑 0,它保持低 BKGD 引脚 13 个 BKGD 引脚周期,然后驱动引脚置 高,加速上升沿。主机在启动位时间约 10 个周期后采样位电平。 BDC 时钟 ( 目标 MCU) HOST DRIVE TO BKGD PIN HIGH-IMPEDANCE SPEEDUP PULSE TARGET MCU DRIVE AND SPEED-UP PULSE 位时间开始 BKGD PIN 10 个 周期 10 个 周期 下一个位 最早开始 HOST SAMPLES BKGD PIN 图 15-4. BDM 目标 - 到 - 主机串行位时序 ( 逻辑 0) 15.2.3 BDC 命令 BDC 命令以串行形式从主机发送到目标 HCS08 MCU 的 BKGD 引脚。所有命令和数据都采用定制 BDC 通信协议以 MSB- 先发的形式发送。激活背景调试模式命令要求目标 MCU 当前处于激活背景调试模式,而非 侵入式命令可以随时发出,无论目标 MCU 是处于激活背景调试模式还是运行用户应用程序。 表 15-1 显示了所有 HCS08 BDC 命令,并简要描述了它们的编码结构,以及每个命令的含义。 15.2.3.1 编码结构术语 表 15-1 中所用的术语描述了 BDC 命令的编码结构。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 / d AAAA RD WD RD16 WD16 SS CC RBKP WBKP = = = = = = = = = = = 命令在主机 - 到 - 目标方向上始于一个 8- 位十六进制命令代码 (MSB 先发) 将命令的各部分分开 延迟 16 个目标 BDC 时钟周期 主机 - 到 - 目标方向上的一个 16- 位地址 目标 - 到 - 主机方向上的 8- 位读数据 主机 - 到 - 目标方向上的 8- 位写数据 目标 - 到 - 主机方向上的 16 位读数据 主机 - 到 - 目标方向上的 16 位写数据 目标 - 到 - 主机方向 (STATUS) 上的 BDCSCR 内容 主机 - 到 - 目标方向 (CONTROL) 方向上的 8 位写数据 目标 - 到 - 主机方向 ( 从 BDCBKPT 断点寄存器 ) 上的 16 位读数据 主机 - 到 - 目标方向 ( 至 BDCBKPT 断点寄存器 )16 位写数据 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 15-1. BDC 命令一览 命令术语 1 激活 BDM/ 非侵入式 编码结构 描述 SYNC 非侵入式 n/a1 要求定时参考脉冲来确定目标 BDC 通信速率 ACK_ENABLE 非侵入式 D5/d 使能响应协议。参见飞思卡尔文档编号 HCS08RMv1/D。 ACK_DISABLE 非侵入式 D6/d 禁止响应协议。参见飞思卡尔文档编号 HCS08RMv1/D。 BACKGROUND 非侵入式 90/d 如果使能,则进入激活背景调试模式 ( 如果 ENBDM 位等于 0,则忽略 ) READ_STATUS 非侵入式 E4/SS 从 BDCSCR 读取 BDC 状态 WRITE_CONTROL 非侵入式 C4/CC 向 BDCSCR 中写入对 BDC 的控制 READ_BYTE READ_BYTE_WS READ_LAST WRITE_BYTE WRITE_BYTE_WS 非侵入式 非侵入式 非侵入式 非侵入式 非侵入式 E0/AAAA/d/RD E1/AAAA/d/SS/RD E8/SS/RD C0/AAAA/WD/d C1/AAAA/WD/d/SS READ_BKPT 非侵入式 E2/RBKP 从目标存储器读取字节 读字节和报告状态 从地址重新读字节,仅读和报告状态 将字节写入到目标存储器 写入字节和报告状态 读 BDCBKPT 断点寄存器 WRITE_BKPT 非侵入式 C2/WBKP 写 BDCBKPT 断点寄存器 GO 激活 BDM 08/d 从 PC 当前的地址执行用户应用程序 TRACE1 激活 BDM 10/d TAGGO 激活 BDM 18/d READ_A 激活 BDM 68/d/RD 读累积器 (A) READ_CCR 激活 BDM 69/d/RD 读条件代码寄存器 (CCR) READ_PC 激活 BDM 6B/d/RD16 程序计数器 (PC) READ_HX 激活 BDM 6C/d/RD16 读 H 和 X 寄存器对 (H:X) READ_SP 激活 BDM 6F/d/RD16 读堆栈指针 (SP) READ_NEXT 激活 BDM 70/d/RD READ_NEXT_WS 激活 BDM 71/d/SS/RD WRITE_A 激活 BDM 48/WD/d 以 1 为基数递增 H:X ,然后读位于 H:X 的存储 器字节 以 1 为基数递增 H:X,然后读位于 H:X. 的存储 器字节。报告状态和数据。 写累积器 (A) WRITE_CCR 激活 BDM 49/WD/d 写条件代码寄存器 (CCR) WRITE_PC 激活 BDM 4B/WD16/d 写程序计数器 (PC) WRITE_HX 激活 BDM 4C/WD16/d 写 H 和 X 寄存器对 (H:X) WRITE_SP 激活 BDM 4F/WD16/d 写堆栈指针 (SP) WRITE_NEXT 激活 BDM 50/WD/d WRITE_NEXT_WS 激活 BDM 51/WD/d/SS 在 PC 的地址跟踪 1 条用户指令,然后返回到 激活后台模式 与 GO 相同,但激活外部标签 (HCS08 器件没 有外部标签引脚 ) 以 1 为基数递增 H:X ,然后写位于 H:X 的存储 器字节。 以 1 为基数递增 H:X ,然后写位于 H:X 的存储 器字节。报告状态和数据。 1 SYNC 命令是特 殊操作,不需要命令代码。 SYNC 命令是特殊操作,不需要命令代码。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 SYNC 命令与其它 BDC 命令不同,因为主机不必要知道 BDC 通信的正确通信速率,直到它分析完 SYNC 命令的响应后。 要发出 SYNC 命令,主机: • 保持 BKGD 引脚为低电平至少 128 周期,而且是以最慢的 BDC 时钟来计 ( 最慢的时钟一般是参考振 荡器 /64 或自时钟速率 /64。 ) • 驱动 BKGD 达到高电平,实现瞬态加速,快速上升时间 ( 这个加速脉冲一般是系统中最快的时钟的一 个周期 ) • 去除 BKGD 引脚的所有驱动,这样它可回复到高阻抗。 • 监视 BKGD 引脚得到同步响应脉冲 当检测到主机的 SYNC 请求 (比在正常 BDC 通信过程中发生的慢时钟要长),则目标: • 等待 BKGD 返回到逻辑高电平 • 延迟 16 个周期,允许主机停止驱动高电平加速脉冲 • 驱动 BKGD 低态 128 BDC 时钟周期 • 驱动一个周期的高电平加速脉冲,在 BKGD 上实现快速上升时间 • 去除 BKGD 引脚的所有驱动,这样它可回复到高阻抗。 主机测量这个 128 周期的响应脉冲的低电平时间,判断速率,进行后续的 BDC 通信。主机一般可以确定 正确的通信速率,与实际目标速率的误差只有百分之几,通信协议能够接受百分之几的速率误差。 15.2.4 BDC 硬件断点 BDC 包括一个相对简单的硬件断点,将 CPU 地址总线与 BDCBKPT 寄存器中的 16- 位匹配值进行比较。 这个断点可以生成强制断点或标记断点。强制断点使 CPU 在存取断点地址后的第一个指令边界进入激活背景 调试模式。标记的断点使指令操作码在断点地址被标记,这样当 CPU 到达指令队列的终点时,将进入激活后 台模式,而不是执行该指令。这意味着标记的断点可能放置在指令操作代码的地址上,而强制断点可以设置在 任何地址。 BDC 状态和控制寄存器 (BDCSCR) 中的断点使能 (BKPTEN) 控制位用来激活断点逻辑 (BKPTEN = 1)。 当 BKPTEN = 0 (复位后它的默认值),断点逻辑禁止,无论其它 BDC 断点中的值是多少,也不管控制位如 何,均不请求断点。 BDCSCR 中的强制 / 标记选择 (FTS)控制位用来选择强制 (FTS = 1) 或标记 (FTS = 0) 类型断点。 片上调试模块 (DBG) 包括两个额外的硬件断点的电路,这两个硬件断点比 BDC 模块中的简单断点更灵 活。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 15.3 片上调试系统 (DBG) 由于 HCS08 器件没有外部地址和数据总线,在线仿真器最重要的功能已经构建在 MCU 的芯片上。这种 调试系统包含可以灵活地存储地址或数据总线信息的 8- 级 FIFO,和一个确定何时捕获总线信息以及捕获哪些 总线信息的灵活触发系统。这个系统依赖单线背景调试系统来存取调试控制寄存器,读取 8 级阶 FIFO 的结 果。 调试模块包括控制和状态寄存器,可以在用户存储器映射中存取。这些寄存器位于高地址寄存器空间中, 避免使用宝贵的直接页面存储器空间。 大多数调试模块的功能在开发过程使用,用户程序很少存取调试模块的任何控制和状态寄存器。一个例 外就是调试系统可以提供一种手段来实施某种形式的 ROM 补丁。 15.3.6 节 硬件断点中对此有更详细的描 述。 15.3.1 比较器 A 和 B 两个 16- 位比较器器 (A 和 B) 可以选择用 R/W 信号或一个操作码跟踪电路来鉴定。比较器单独的控制位 允许你忽略每个比较器的 R/W。操作码跟踪电路可选地允许你规定,如果操作码在规定的地址实际执行,而 不是只从存储器读到指令队列中,则触发将发生。比较器还能够进行庞大的比较,支持范围内和范围外触发模 式。在所有 BDC 存取过程中,比较器临时禁止。 比较器 A 总是与 16- 位 CPU 地址相关联。比较器 B 根据所选的触发模式比较 CPU 地址或 8- 位 CPU 数据总 线。由于 CPU 数据总线分为只读数据和写数据总线, RWAEN 和 RWA 控制位有一个额外的目的,在完整地 址加上数据比较中,它们被用来确定其中哪些总线用在比较器 B 数据总线比较中。如 RWAEN = 1 ( 激活 ), RWA = 0 ( 写 ), 则使用 CPU 的写数据总线,否则用 CPU 的只读数据。 当前选择触发模式确定当比较器检测到合格的匹配条件时,调试器逻辑做什么。匹配可以导致以下情况: • 生成 CPU 断点 • 将数据总线值存储到 FIFO 中 • 开始将流变化地址存储到 FIFO 中 ( 开始类型跟踪 ) • 停止将流变化地址存储到 FIFO 中 (结束类型跟踪) 15.3.2 总线捕获信息和 FIFO 操作 使用 FIFO 的通常方式是建立触发模式和其它控制选项,然后打开调试器。当 FIFO 填满后,或调试器停 止将数据存储到 FIFO 后,你可以按信息存储的顺序从中读取信息。状态位指示数据所在的 FIFO 中的有效信 息的字数。如果在 满 (CNT = 1:0:0:0)之前将 ARM 写为 0,以人工停止跟踪,信息移动一个位置,主机必 须执行 ((8 - CNT) - 1)FIFO 虚读操作,使信息进入到 FIFO 中的第一个重要入口。 在大多数触发模式中,存储在 FIFO 中的信息包含 16- 位流变化地址。在这些情况中,先读 DBGFH 然后 读 DBGFL,从 FIFO 中获得一个一致的信息字。读 DBGFL (FIFO 数据端口的低阶字节 ) 会使 FIFO 移动,这 样下一个信息字可以在 FIFO 数据端口提供。在纯事件触发模式 (参见 15.3.5 节 触发模式)中, 8 位数据信 息存储在 FIFO 中。在这些情况中, FIFO(DBGFH) 的上半部分没有被使用,仅仅通过读 DBGFL 来从 FIFO 中读出数据。每次读 DBGFL 时, FIFO 都会移动,这样通过 DBGFL 的 FIFO 数据端口可以获得下一个数据 值。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 在触发模式中, FIFO 保存流变化地址, CPU 地址与 FIFO 的输入端有一个延迟。由于这个延迟,如果触 发事件本身是一个流变化地址或在触发事件启动 FIFO 后下两个周期中出现了流变化地址,它将不保存在 FIFO 中。如果是结束 - 跟踪的情况,当触发事件是一个流变化,则它将保存为运行的调试器的最后一个流变 化入口。 当调试器没有打开时,FIFO 还可以用来生成所执行指令地址的分析。当 ARM = 0, 读 DBGFL 会使最近获 取的操作码的地址保存在 FIFO 中。采用分析功能,主机调试器将从 FIFO 中读取地址,即以常规的间隔先读 DBGFH 然后读 DBGFL,。前 8 个值将被丢弃,因为它们对应于初始需要填充 FIFO 的 8 个 DBGFL 读取。 DBGFH 和 DBGFL 的其它周期读取则返回关于所执行指令的延迟信息,这样主机调试器可以对执行指令地址 进行分析。 15.3.3 流变化信息 为了减少存储在 FIFO 中的信息数量,只保存与使正常的指令执行顺序发生变化的指令相关的信息。知道 存储在目标系统中的源和对象代码程序后,外部调试器可以通过来自 FIFO 中存储的大量流变化信息的许多指 令来重现执行路径。 对于采用了分支的条件分支指令 (分支条件为真),则保存源地址 ( 条件分支操作码的地址 )。由于 BRA 和 BRN 指令不是条件的,这些事件不会使流变化信息存储在 FIFO 中。 间接 JMP 和 JSR 指令采用 H:X 间址寄存器对的当前内容,确定目的地址,这样调试系统为任何间接 JMP 或 JSR 保存运行时的目的地址。对于中断, RTI 或 RTS, 目的地址作为流变化信息存储在 FIFO 中。 15.3.4 标记 vs. 强制断点和触发器 标记一词指当指令操作码被取到指令队列时识别它,但是不采取任何其它操作,直到且除非指令被 CPU 真正执行。这种区分非常重要,因为任何因跳转、分支、子例程调用、或中断而发生的流变化都会导致一些指 令被取到指令队列,未执行就被丢弃。 强制类型的断点等待当前指令完成,然后执行断点请求操作。通常操作是进入激活背景调试模式,而不 是继续用户应用程序中的下一个指令。 标记 vs. 强制这一术语在调试模块的两种情况下使用。第一种情况指从调试模块向 CPU 发送断点请求。 第二种情况指从比较器向调试控制逻辑发送匹配信号。当标记类断点发送给 CPU 时,信号与操作码一起进入 指令队列,这样当这个操作码被执行时, CPU 将有效地用 BGND 操作码代替被标记的操作码,这样 CPU 进 入激活背景调试模式,而不是执行被标记的指令。当 DBGT 寄存器中的 TRGSEL 控制位被设置为选择标记类 操作,比较器 A 或 B 的输出被调试模块中的逻辑块鉴定,这个逻辑块跟踪操作码,如果比较地址的操作码被 实际执行,则只向该调试器生成一个触发。每个比较器都有单独的操作码跟踪逻辑,这样整个指令队列一次不 只一个比较事件被跟踪。 15.3.5 触发模式 触发模式控制调试器运行的整体行为。DBGT 寄存器中的 4- 位 TRG 字段选择九个触发模块中的一个。当 DBGT 寄存器中的 TRGSEL = 1, 比较器的输出必须在触发 FIFO 操作前通过操作码跟踪电路传播。DBGT 中的 BEGIN 位选择当检测到合格的触发时 FIFO 是否开始存储数据 (开始跟踪),或 FIFO 从其打开之时开始循环 存储数据,直到检测到合格的触发 (结束触发)。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 将 1 写入到寄存器中的 ARM 位便可启动调试运行,它设置 DBGS 中的 ARMF 标记,并清除 AF 和 BF 标记及 CNT 位。开始跟踪调试运行当 FIFO 满时结束。结束跟踪运行则在所选触发事件发生时结束。任何调 试运行均可通过将 0 写入到 DBGC 中的 ARM 或 DBGEN 位停止。 除纯事件模式外的所有触发模式中,FIFO 都存储流变化地址。在纯事件触发模式中,FIFO 将数据存储在 FIFO 的八低八位。 控制位在纯事件触发模式中被忽略,而且所有这样的调试运行都是开始类型跟踪。当 TRGSEL = 1 选择 操作码获取触发器,没有必要在比较中使用 R/W ,因为操作码标签只应用于操作码获取,而这一直都是读周 期。在采用全模式触发器时,规定 TRGSEL = 1 也是不正常的,因为操作码的值通常在特定的地址可以知道。 下面的触发模式描述只说明了导致触发的主要比较器条件。比较器 A 或 B 通常都可以被 R/W 进一步鉴 定,通过将 RWAEN (RWBEN) 和相应的 RWA (RWB) 值设置为与 R/W 相匹配。如果 BRKEN = 1,来自比较 器的带可选 R/W 鉴定的信号,用来请求 CPU 断点, TAG 决定 CPU 请求是标记请求还是强制请求。 只 A— 当地址匹配比较器 A 的值时触发 A 或 B — 当地址匹配比较器 A 或 B 的值时触发 A 然后 B — 当地址匹配比较器 B 但只能在另一个周期的地址匹配比较器 A 的值以后,触发。可能在 A 匹 配后 B 匹配前有许多周期。 A 和 B 数据 (全模式)— 这称为全模式,因为地址,数据和 R/W ( 可选 ) 必须在同一个总线周期内匹 配,才能产生触发事件。比较器 A 检查地址,比较器的低阶字节检查数据,如果 RWAEN = 1, R/W 对照 RWA 进行检查。比较器 B 的高半部分没有使用。 在全触发模式中,规定标签类 CPU 断点 (BRKEN = TAG = 1) 没有用,但是如果你这样做了,就会忽略比 较器 B 数据匹配,以例向 CPU 发送标签请求,当比较器 A 地址匹配时发送 CPU 断点。 A 但非 B 数据 (全模式)— 地址必须匹配比较器 A, 数据必须不能匹配比较器 B 的低阶部分,如果 RWAEN = 1, R/W 必须匹配 RWA。所有三个条件必须在同一个总线周期中达到才能引起触发。 在全触发模式中,规定标签类 CPU 断点 (BRKEN = TAG = 1) 没有用,但是如果你这样做了,就会忽略比 较器 B 数据匹配,以例向 CPU 发送标签请求,当比较器 A 地址匹配时发送 CPU 断点。 纯事件 B (存储数据)— 当地址每次匹配比较器 B 的值时,触发事件发生。触发事件导致数据被捕获到 FIFO 中。当 FIFO 满时调试运行结束。 A 然后纯事件 B (存储数据)— 当地址匹配比较器 A 中的值后,每次地址匹配比较器 B 中的值时,触发 事件发生。触发事件导致数据被捕获到 FIFO 中。当 FIFO 满时调试运行结束。 范围内 (A ≤ 地址≤ B)— 当地址大于或等于比较器 A 的值,且小于等于比较器 B 的值时,触发发生。 范围外 (地址 < A 或 地址 > B) — 当地址小于比较器 A 的值,或大于比较器 B 的值时,触发发生。 15.3.6 硬件断点 DBGC 寄存器中的 BRKEN 控制位可以设置为 1,来允许使用 15.3.5 节 触发模式所描述的任何触发条件 , 向 CPU 生成硬件断点请求。 DBGC 中的 TAG 控制断点请求是否处理为标记类断点或强制类断点。标记断点 使当前的操作码进入指令队列时被标记。如果标记的操作码达到队列的末端, CPU 执行 BGND 指令,进入激 活背景调试模式,而不是执行被标记的操作码。强制类断点使 CPU 完成当前指令,然后进入激活背景调试模 式。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 如果背景调试模式没有被通过 BKGD 引脚的串行 WRITE_CONTROL 命令激活 (ENBDM = 1), CPU 将执 行 SWI 指令,而不是进入激活背景调试模式。 寄存器定义 15.4 本小节描述了 BDC 和 DBG 寄存器及控制位。 参见本文的器件概述章节中的 high-page 寄存器一览,了解所有 DBG 寄存器的绝对地址分配。本小节只 按名字参考了寄存器和控制位。使用飞思卡尔提供的等式或头文件,将这些名称翻译为相应的绝对地址。 BDC 寄存器和控制位 15.4.1 BDC 有两个寄存器: • 状态和控制寄存器 (BDCSCR) 是一个包含背景调试控制器控制和状态位的 8- 位寄存器。 • BDC 断点匹配寄存器 (BDCBKPT) 拥有一个 16- 位断点匹配地址。 这些寄存器通过专门的串行 BDC 命令接入,没有位于目标 MCU 的存储器空间中 ( 因此,它们没有地址, 用户程序不能接入 )。 BDCSCR 中的一些位有写限制,否则这些寄存器可以随时被读或写。例如,当 MCU 处于激活背景调试 模式中时,ENBDM 控制位不能被写。 ( 这防止了在 MCU 已经处于激活后台模式时,禁止激活后台模式的控 制位的模糊条件 ) 而且,有四个状态位 (BDMACT, WS, WSF, 和 DVF) 是只读状态指示符,永远也不能被 WRITE_CONTROL 串行 BDC 命令写。时钟开关 (CLKSW) 控制位随时都可读或写。 15.4.1.1 BDC 状态和控制寄存器 (BDCSCR) 这个寄存器可以被串行 BDC 命令 (READ_STATUS 和 WRITE_CONTROL) 读或写,但是用户程序不能存 取它,因为它不位于 MCU 的正常的存储器映射空间中。 7 R 6 5 4 3 BKPTEN FTS CLKSW BDMACT ENBDM 2 1 0 WS WSF DVF W 正常 复位 0 0 0 0 0 0 0 0 在激活 BDM 中复位 1 1 0 0 1 0 0 0 = 未实施或预留 图 15-5. BDC 状态和控制寄存器 (BDCSCR) MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 15-2. BDCSCR 寄存器字段描述 字段 描述 7 ENBDM 激活 BDM ( 允许激活背景调试模式 ) — 一般而言,这个位在调试开始后不久,或只要调试主机复位目标,由调 试主机写为 1,并保留 1,直到通过正常的复位清除它。 0 BDM 不能激活 ( 非侵入式命令仍然被允许 ) 1 BDM 可以激活,允许激活后台模式命令 6 BDMACT 背景调试模式激活状态 — 这是只读状态位。 0 BDM 未激活 ( 用户应用程序运行 ) 1 BDM 激活并等待串行命令 5 BKPTEN BDC 断点激活 — 如果这个位清零,BDC 断点处于处活状态,FTS ( 强制标签选择 ) 控制位和 BDCBKPT 匹配寄 存器被忽略。 0 BDC 断点禁止 1 BDC 断点激活 4 FTS 强制 / 标签选择 — 当 FTS = 1, 只要 CPU 地址总线匹配 BDCBKPT 匹配寄存器,则请求断点。当 FTS = 0, CPU 地址总线与 BDCBKPT 寄存器之间的匹配会造成获取的操作码被标记。如果标记的操作码到达指令队列的末 端, CPU 则进入激活后台模式,而不是执行标记的操作码。 0 在断点地址标记操作码,如果 CPU 试图执行该指令,则进入激活后台模式 1 断点匹配强制在下一个指令边界进入激活后台模式 ( 地址不必是操作码 ) 3 CLKSW 2 WS 选择 BDC 通信时钟的源 — CLKSW 默认 0,选择其它 BDC 时钟源。 0 其它 BDC 时钟源 1 MCU 总线时钟表 等待或停止状态 — 当目标 CPU 处于等待或停止状态时,大多数 BDC 命令不起作用。但是可以用后台命令来强 制目标 CPU 从等待或停止状态进入激活后台模式,这样所有 BDC 命令都可以起作用。只要主机强制目标 MCU 进入激活背景调试模式 , 主机应该发出 READ_STATUS 命令,在偿试其它 BDC 命令前,检查 BDMACT = 1 。 0 目标 CPU 运行用户应用代码,或处于激活背景调试模式 ( 当后台激活时,它不处于等待或停止模式 ) 1 目标 CPU 处于等待或停止模式,或者后台命令用来将其从等待或停止状态改变为激活背景调试模式 1 WSF 等待或停止失败状态 — 如果这存储器存取命令因目标 CPU 在大约相同时间执行等待或停止指令而失败,则设 置这个状态位。通常的恢复策略是发出后台命令,从等待或停止模式进入激活后台模式,重复失败的命令,然 后返回到用户程序。 ( 一般地,主机应该恢复 CPU 寄存器 ,准备值,重新执行等待或停止指命。 ) 0 存储器存取与等待或停止指令不冲突 1 存储器存取命令失败,因为 CPU 已进入等待或停止模式 0 DVF 数据有效失败状态 — 这个状态位没有在 MC9S08DZ60 系列中使用,因为它没有慢存取存储器。 0 存储器存取与慢存储器接入不冲突 1 存储器存取命令失败,因为 CPU 没有完成慢存储器接入 15.4.1.2 BDC 断点匹配寄存器 (BDCBKPT) 6- 位 寄存器保留 BDC 中的硬件断点的地址。 BDCSCR 中的 BKPTEN 和 FTS 控制位用来使能和配置断 点逻辑。专门的串行 BDC 命令 (READ_BKPT 和 WRITE_BKPT) 用来读和写 BDCBKPT 寄存器,但是用户程 序不能存取它,因为它不位于 MCU 的普通存储器映射空间中。当目标 MCU 处于激活背景调试模式时,断点 一般在运行用户应用程序前设置。关于建立和使用 BDC 中的硬件断点逻辑的更多信息,请参见 15.2.4 节 BDC 硬件断点。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 15.4.2 系统背景调试强制复位寄存器 (SBDFR) 这个寄存器包含单个只写控制位。必须要用一个串行后台模式命令,如 WRITE_BYTE,来写 SBDFR。 从用户程序写该寄存器的偿试被忽略。读总是返回 0x00。 R 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 BDFR1 W 复位 0 0 0 0 0 0 0 0 = 未实施或预留 1 BDFR 只有通过串行后台模式调试命令才可写,不能通过用户程序来写。 图 15-6. 系统背景调试强制复位寄存器 (SBDFR) 表 15-3. 寄存器字段描述 字段 描述 0 BDFR 背景调试强制复位 — 一系列激活后台模式命令,如 WRITE_BYTE 等,允许外部调试主机强制目标系统复位。 将 1 写到这个位,强制 MCU 复位。这个位 不能从用户程序写。 15.4.3 DBG 寄存器和控制位 这个调试模块包括 9 个字节的寄存器空间,用于三个 16- 位寄存器和三个 8- 位控制和状态寄存器。这些 寄存器位于存储器空间的高地址空间中,这样它们可以存取正常的应用程序。普通用户应用程序几乎从不接入 这些寄存器,除了使用断点逻辑的 ROM patching 机制。 15.4.3.1 调试比较器 A 高寄存器 (DBGCAH) 这个寄存器包含比较器 A 的高 8 位的比较值位。在复位时,这个寄存器被强制设置为 0x00,可以随时被 读或写,除非 ARM = 1。 15.4.3.2 调试比较器 A 低寄存器 (DBGCAL) 这个寄存器包含比较器 A 的低 8 位的比较值位。在复位时,这个寄存器被强制设置为 0x00,可以随时被 读或写,除非 ARM = 1。 15.4.3.3 调试比较器 B 高寄存器 (DBGCBH) 这个寄存器包含比较器 B 的高 8 位的比较值位。在复位时,这个寄存器被强制设置为 0x00,可以随时被 读或写,除非 ARM = 1。 15.4.3.4 调试比较器 B 低寄存器 (DBGCBL) 这个寄存器包含比较器 B 的低 8 位的比较值位。在复位时,这个寄存器被强制设置为 0x00,可以随时被 读或写,除非 ARM = 1。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 15.4.3.5 调试 FIFO 高寄存器 (DBGFH) 这个寄存器提供对 FIFO 的高 8 位的只读接入。写到这个寄存器没有意义或无效果。在纯事件触发模式 中,FIFO 只将数据存储在每个 FIFO 字的低字节,因此这个寄存器不能使用,将读 0x00。 读 DBGFH 不会导致 FIFO 移动到下一个字。当从 FIFO 中读出 16- 位字时,在读 DBGFL 前先读 DBGFH ,因为读 DBGFL 会导致 FIFO 先于下个字的信息。 15.4.3.6 调试 FIFO 低寄存器 (DBGFL) 这个寄存器提供对 FIFO 的低 8 位的只读存取。写到这个寄存器没有意义或无效果。 读 DBGFL 会导致 FIFO 移动到下一个字的信息。当调试模块以纯事件模式运行时,只有 8- 位数据存储 在 FIFO (每个 FIFO 字的高字节部分没有使用)。当从 FIFO 中读出 8- 位字时,只需重复地读 BDGFL,从 FIFO 中获得数据的连续的字节。在这种情况下,没有必要读 DBGFH。 当 FIFO 仍然打开时 (打开后,但 FIFO 充满或 ARMF 被清除前)不要试图从其中读数据,因为在 DBGL 读取过程中, FIFO 不能进一步操作。这可以干扰正常的 FIFO 的读取顺序。 在调试器没有打开的情况下读 会使最近获取的操作码的地址存储到 FIFO 中的最后的位置。读取 DBGFL,然后定期 DBGFL,外部主机软件可以开发程序执行的概况。在对 FIFO 进行八次读取后,第九次读 取将返回第一次读取结果的信息。要使用分析功能,则需要读取 FIFO 八次,且不使用启动顺序的数据,然后 开始使用数据来获取已执行地址的延迟概貌。存储在 FIFO 中的关于 DBGFL ( 且 FIFO 没有打开 ) 读取的信息 就是最近所获操作码的地址。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 15.4.3.7 调试控制寄存器 (DBGC) 这个寄存器可以在任何时间读或写。 7 6 5 4 3 2 1 0 DBGEN ARM TAG BRKEN RWA RWAEN RWB RWBEN 0 0 0 0 0 0 0 0 R W 复位 图 15-7. 调试控制寄存器 (DBGC) 表 15-4. DBGC 寄存器字段描述 字段 7 DBGEN 描述 调试模块启用 — 来用启用调试模块。 DBGEN 不能设置为 1,如果 MCU 是安全的。 0 DBG 禁用 1 DBG 启用 6 ARM 打开控制 — 控制调试器是否在 FIFO 中比较和存储信息。采用写操作来设置该位 ( 和 ARMF) ,完成调试运行就 是自动清除它。将 ARM 或 DBGEN 写为 0,可以停止任何调试运行。 0 调试器没有打开 1 调试器被打开 5 TAG 标记 / 强制选择 — 控制送到 CPU 的中断请求是否为标签或强制型请求。如果 BRKEN = 0,这个位就没有意义 或无效。 0 CPU 中断请求作为强制型请求 1 CPU 中断请求作为标签型请求 4 BRKEN 中断启用 — 控制触发事件是否向 CPU 生成中断请求。触发事件可以使信息存储在 FIFO 中而不必向 CP 生成中 断请求。对于结束跟踪,如果比较器 (s) 和 R/W 满足触发条件,则发出 CPU 中断请求。对于起始跟踪,则当 FIFO 满时发出 CPU 中断请求。 TRGSEL 不影响 CPU 中断请求的定时。 0 CPU 不断请求未启用 1 触发器触发向 CPU 发出中断请求 3 RWA 2 RWAEN 1 RWB 0 RWBEN 比较器 A 的 R/W 比较值 — 当 RWAEN = 1, 这个位确定是否用读或写接入来鉴定比较器 A,当 RWAEN = 0, , RWA 和 R/W 信号不影响比较器 A。 0 比较器 A 只在写周期上匹配 1 比较器 A 只在读周期上匹配 启用比较器 A 的 R/W — 控制比较器 A 的匹配是否考虑这个水平的 R/W 。 0 R/W 未用在比较 A 中 1 R/W 用在比较 A 中 比较器 B 的 R/W 比较值 — 当 RWBEN = 1, 这个位确定是否用读或写接入来鉴定比较器 B。当 RWBEN = 0, RWA 和 R/W 信号不影响比较器 B。 0 比较器 B 只在写周期上匹配 1 比较器 B 只在读周期上匹配 启用比较器 B 的 R/W B — 控制比较器 B 的匹配是否考虑这个水平的 R/W 。 0 R/W 未用在比较 B 中 1 R/W 用在比较 B 中 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 调试触发寄存器 (DBGT) 15.4.3.8 这个寄存器在任何时候都可以读,但是只有当 ARM = 0 时才可以写,除非位 4 和位 5 硬件线与至 0。 7 6 TRGSEL BEGIN 0 0 R 5 4 0 0 3 2 1 0 TRG3 TRG2 TRG1 TRG0 0 0 0 0 W 复位 0 0 = 未实施或预留 图 15-8. 调试触发寄存器 (DBGT) 表 15-5. DBGT 寄存器字段描述 字段 描述 7 TRGSEL 触发类型 — 控制比较器 A 和 B 的匹配输入是否与调试模块中的操作码跟踪逻辑匹配。如果 TRGSEL 已设置, 比较器 A 或 B 的匹配信号必须通过操作码跟踪逻辑传播,如果匹配地址的操作码实际已执行,则只有触发事件 发送到 FIFO 逻辑。 0 存取比较地址时触发 ( 强制 ) 1 如果比较地址的操作码已执行 ( 标签 ),则触发 6 BEGIN 开始 / 结束触发选择 — 控制 FIFO 在触发时开始填充还是以循环形式填充直到触发结束信息的捕获。在纯事件触 发模式中,忽略这个位,所有调试运用都假定为起始跟踪。 0 数据存储在 FIFO,直到触发 (结束跟踪) 1 触发启动数据存储 ( 起始跟踪 ) 3:0 TRG[3:0] 15.4.3.9 选择触发模式 — 选择下面 9 个触发模式中的一个。 0000 只有 A 0001 A 或 B 0010 A 然后 B 0011 只有事件 B ( 存储数据 ) 0100 A 然后只有事件 B ( 存储数据 ) 0101 A 和 B 数据 ( 满模式 ) 0110 A 和非 B 数据 ( 满模式 ) 0111 I 范围内:A ≤ 地址≤ B 1000 范围外:地址 < A 或 地址 > B 1001 – 1111 ( 无触发 ) 调试状态寄存器 (DBGS) 这是一个只读状态寄存器。 R 7 6 5 4 3 2 1 0 AF BF ARMF 0 CNT3 CNT2 CNT1 CNT0 0 0 0 0 0 0 0 0 W 复位 = 未实施或预留 图 15-9. 调试状态寄存器 (DBGS) MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 表 15-6. DBGS 寄存器字段描述 字段 描述 7 AF 触发匹配 A 标记 — 在调试运行开始时请除 AF,指示武装后是否满足触发 匹配 A 条件。 0 比较器 A 未匹配 1 比较器 A 匹配 6 BF 触发匹配 B 标记 — 在调试运行开始时请除 BF,指示武装后是否满足触发 匹配 B 条件。 0 比较器 B 未匹配 1 比较器 B 匹配 5 ARMF 3:0 CNT[3:0] 打开标记 — 当 DBGEN=1 时,这个位为 DBGC 中 ARM 的只读镜像。将 DBGC 中的 ARM 控制位写为 1 (当 DBGEN = 1)可设置该位,在调试运行结束时自动清除它。当 FIFO 为满时 (始起跟踪),或当探测到触发事件 时 (结束跟踪),调度运行完成。将 DBGC 中的 ARM 或 DBGEN 写为 0,可以人工停止调试运行 。 0 调试器没有打开 1 调试器被打开 FIFO 有效计数 — 这些位在调试运行开始时清除,指示调试运行结束时 FIFO 中的有效数据的字数。当数据大 FIFOO 中读出时, CNT 中的值不减少。当信息从 FIFO 中读出时,外部调试主机负责计数的跟踪。 0000 FIFO 中的有效字数 = 无有效数据 0001 FIFO 中的有效字数 = 1 0010 FIFO 中的有效字数 = 2 0011 FIFO 中的有效字数 = 3 0100 FIFO 中的有效字数 = 4 0101 FIFO 中的有效字数 = 5 0110 FIFO 中的有效字数 = 6 0111 FIFO 中的有效字数 = 7 1000 FIFO 中的有效字数 = 8 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 附录 A 电气特性和时序规范 A.1 概述 该节包含了电气和时序规范。 A.2 参数分类 在该附录的电气参数被多种方法保证。为了让客户更好的理解,使用了下面的分类,在适当的地方使用 表中相应的标记。 表 A-1. 参数分类 P 这些参数被保证,在每个产品设备上测试产品 C 这些参数通过设计描述完成,测量了统计的相关试样量 (包含了过程变化)。 T 这些参数通过设计描述完成,测量一个小的典型条件的试样量,除非另有说明,所有显 示在典型列里面的数据在此分类中。 D 这些参数主要通过仿真得到。 注意 在表中用适当的地方 “C”标记来标注。 A.3 最大绝对额定值 最大绝对额定值只是压力值。最大值时的功能操作不能保证。压力值超过了表 A-2 所描述的限制可能影 响设备的可靠性或导致设备的永久性损坏。关于功能操作条件参见该节的其他表格。 该设备中包含了保护电路,可以避免因高静态电压或电子磁场产生的损坏。然而,建议采取正常的预防 避免任何大于最大额定电压进入该高阻抗电路。如果不将输入连到一个低电压电平 (例如, VSS 或 VDD)可 以加强操作的可靠性。 MC9S08AC16 系列微控制器数据手册 , 第 6 版 飞思卡尔半导体公司 # 表 A-2. 最大绝对额定值 额定值 标志 值 单位 电源电压 VDD –0.3 到 5.8 V 输入电压 Vin –0.3 to VDD + 0.3 V 单个引脚限制 (应用到所有引 脚)1 ,2 ,3 的瞬间最大电流 IDD ± 25 mA VDD 的最大电流 IDD 120 mA 存储温度 Tstg –55 to 150 °C 最大连接温度 TJ 150 °C 1 输入必须是限制描述值中的电流。为了决定限流电阻器的值,计算正 (VDD)和负 (VSS)的箝位 电压的电阻系数。然后使用两个电阻系数中较大的一个。 2 所有功能的非电源引脚在内部箝位至 V SS 和 VDD。 3 电源必须维持调节操作 V 的瞬间范围和操作最大电流情况。如果正的注入电流 (Vin>VDD)大于 DD IDD,注入电流可能溢过可能导致外部电压失去调节。确保外荷载 VDD 将分路电流比最大注入电流 还大。当 MCU 不耗电时,这是最大的危险。例如:如果没有系统时钟存在,或如果时钟率很小, 这可能减小总的耗电。 A.4 热特性 该节提供了关于操作温度范围,功率消耗和封装的热敏电阻的信息。和芯片逻辑的功耗相比,在 I/O 引脚 上的功率消耗通常很小,并且它是由用户决定而不是有 MCU 设计来控制。为了在功率计算中考虑 PI/O,确定 实际的引脚电压和 VSS 或 VDD 的不同,加倍每个 I/O 引脚的电流。除了异常的高引脚电流 (重载荷),引脚 电压和 VSS 或 VDD 的不同很小。 表 A-3. 热特性 额定值 操作温度范围 (已封装) 标志 值 单位 TA TL 到 TH 0 to 70 °C 热敏电阻1 ,2 ,3 ,4 48 引脚 QFN 84 27 1s 2s2p 44 引脚 LQFP 1s 2s2p θJA 73 56 °C/W 32 引脚 LQFP 1s 2s2p 85 56 1 连接温度是模具,片上功耗,封装的热敏电阻,底座 (板)温度,周围环境温度,气流,板上其他 元件的功耗和板上热敏电阻之间的功能。 2 外部自然转换的连接。 3 4 1s——单层板,单层信号层。 2s2p——4 层板, 2 层信号层和 2 层电源层。 芯片连接的平均温度 (TJ)(以 °C 为单位)从等式 A-1 中得到: MC9S08AC16 系列微控制器数据手册 , 第 6 版 # 飞思卡尔半导体公司 Running H/F 2 TJ = TA + (PD × θJA) 等式 . A-1 其中: TJ = 周围环境温度, °C TA = 封装的热敏电阻,连接到周围环境, °C/W PD = Pint+ PI/O Pint = IDD × VDD,瓦特——芯片内部电源 PI/O = 输入和输出引脚上的功耗——用户决定 在大多数应用中, PI/O 4MHz fADCK
MC9S08AC16MBE 价格&库存

很抱歉,暂时无法提供与“MC9S08AC16MBE”相匹配的价格&库存,您可以联系我们找货

免费人工找货