MC9S08AW16 [NXP]
微控制器;型号: | MC9S08AW16 |
厂家: | NXP |
描述: | 微控制器 微控制器 |
文件: | 总296页 (文件大小:5517K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
MC9S08AC16
MC9S08AC8
MC9S08AW16
MC9S08AW8
数据手册:技术数据
HCS08
微控制器
MC9S08AC16
第6 版
2008 年9 月
飞思卡尔半导体
MC9S08AC16 系列产品的特性
•
IIC- 内部集成电路总线模块,最大总线负载时,传
输速度可达100kps,减少负载将会允许更高的波
特率
MC9S08AC16 系列MCU
• 消费& 工业
—
—
MC9S08AC16
MC9S08AC8
• 定时器-3个16位定时器/PWM(TPM)模块 -2个2
通道和1 个4 通道;每个定时器在每个通道上都有
可选的输入捕捉,输出比较,PWM。每个定时器
在每个通道上都可以配置为边沿对齐。每一个定时
器/PWM (TPM)可以在其所有通道产生中心对
齐的PWM (CPWM)。
• 汽车
—
—
MC9S08AW16A
MC9S08AW8A
•
KBI-7 引脚键盘中断模块
8 位HCS08 中央处理单元(CPU)
输入/ 输出
•
•
•
40-MHz HCS08CPU( 中央处理单元)
20-MHz 内部总线频率
HC08 指令集,增加了BGND 指令
• 高达38 个通用输入/ 输出(I/O)引脚
• 输入时,每个端口都有软件选择的上拉电阻
• 输出时,每个端口都有软件选择的输出斜率控制
• 输出时,每个端口都有软件选择的驱动强度
• 主复位引脚和上电复位(POR)
• 背景调试系统
• 在线调试(in-circuit debugging)期间可以设置单
个断点(在片上调试模式时可以再增加两个断点)
• 调试模式包括2 个比较仪和9 个触发器模式。8 个
FIFO 来存储流控制地址和事件数据。调试模式支
持标签和强制断点
•
RESET,IRQ,BKGD/MS 引脚在内部上拉以减小
客户系统成本。
• 支持高达32 个中断/ 复位源
封装选择
存储器选项
•
•
•
48 引脚QFN
44 引脚LQFP
42 引脚SDIP
• 高达16KB的片上在线可编程FLASH存储器,有块
保护和安全选项
• 32 引脚LQFP
• 高达1KB 的片上RAM
时钟源选项
• 时钟源选项包括晶体,振荡器,外部时钟,或能
够NVM 调整的精确的内部集成时钟
系统保护
• 可选的看门狗(COP)复位,使用运行于独立的
内部时钟源或总线时钟
• 低压检测复位或中断
• 非法操作符检测复位
• 非法地址检测复位
省电模式
• 等待模式,以及两种停止模式
外围设备
• ADC-8 通道,10 位AD 转换器,包含自动比较功能
•
SCI- 两个串行通信接口模块,可选的13 位间断字
符通讯模式
•
SPI- 串行外设接口模块
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 概述 .................................................................................................................................19
1.2 MCU 结构框图 .................................................................................................................20
1.3 系统时钟分配 ...................................................................................................................22
第2 章引脚及其连接
2.1 简介 .................................................................................................................................25
2.2 MCU 的管脚分配 ..............................................................................................................25
2.3 推荐的系统连接 ...............................................................................................................29
2.3.1 电源(V 、2 ×V 、V
和V
)......................................................31
DD
SS
DDAD
SSAD
2.3.2 振荡器(XTAL 与EXTAL)................................................................................31
2.3.3 复位.....................................................................................................................31
2.3.4 背景/ 模式选择(BKGD/MS) ...............................................................................31
2.3.5 ADC 参考引脚(V
与V )....................................................................32
REFH
REFL
2.3.6 外部的中断引脚(IRQ).....................................................................................32
2.3.7 通用I/O 及外设端口 ............................................................................................32
第3 章工作模式
3.1 简介 .................................................................................................................................33
3.2 特征 .................................................................................................................................33
3.3 运行模式 ..........................................................................................................................33
3.4 背景调试模式 ...................................................................................................................33
3.5 等待模式 ..........................................................................................................................34
3.6 停止模式 ..........................................................................................................................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 章片上存储器
4.1 MC9S08AC16 系列存储映像简介 ....................................................................................39
4.1.1 复位和中断向量分配 ...........................................................................................39
4.2 寄存器地址和位分配 ........................................................................................................41
4.3 RAM .................................................................................................................................47
4.4 Flash ................................................................................................................................47
4.4.1 特征.....................................................................................................................47
4.4.2 写入和擦除时间...................................................................................................48
4.4.3 写入和擦除命令的执行 ........................................................................................48
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体
9
4.4.4 突发模式写入的执行 ...........................................................................................50
4.4.5 访问错误 .............................................................................................................51
4.4.6 Flash 块保护 .......................................................................................................51
4.4.7 向量重定向 ..........................................................................................................52
4.5 保护机制 ..........................................................................................................................52
4.6 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 简介 .................................................................................................................................59
5.2 特征 .................................................................................................................................59
5.3 MCU 复位 ........................................................................................................................59
5.4 计算机正常操作监控模块(COP) 看门狗 ..........................................................................60
5.5 中断 .................................................................................................................................60
5.5.1 中断堆栈结构 ......................................................................................................61
5.5.2 外部中断请求(IRQ) 引脚 ....................................................................................62
5.5.3 中断向量、中断源和局部屏蔽 .............................................................................62
5.6 低电压检测系统(LVD) .....................................................................................................64
5.6.1 上电复位操作 ......................................................................................................64
5.6.2 LVD 复位操作 ......................................................................................................64
5.6.3 LVD 中断操作 ......................................................................................................64
5.6.4 低电压警告(LVW) ...............................................................................................64
5.7 实时中断(RTI) .................................................................................................................64
5.8 MCLK 输出 .......................................................................................................................65
5.9 复位、中断以及系统控制寄存器和控制位 ........................................................................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 简介 .................................................................................................................................73
6.2 特征 .................................................................................................................................73
6.3 引脚描述 ..........................................................................................................................73
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
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
6.4 并行I/O 控制 ....................................................................................................................76
6.5 引脚控制 ..........................................................................................................................77
6.5.1 内部上拉电阻使能 ...............................................................................................77
6.5.2 输出斜率控制使能 ...............................................................................................78
6.5.3 输出驱动强度选择 ...............................................................................................78
6.6 停止模式下的I/O 口 .........................................................................................................78
6.7 并行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 概述 .................................................................................................................................93
7.1.1 特性.....................................................................................................................93
7.2 编程模型和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
7.3 寻址模式 ..........................................................................................................................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 特殊操作 ..........................................................................................................................97
7.4.1 复位序列 .............................................................................................................97
7.4.2 中断序列 .............................................................................................................97
7.4.3 等待模式 .............................................................................................................98
7.4.4 停止模式 .............................................................................................................98
7.4.5 背景模式 .............................................................................................................98
7.5 HCS08 指令设置摘要 .......................................................................................................99
第8 章键盘中断(S08KBIV1)
8.1 简介 ............................................................................................................................... 111
8.2 键盘引脚复用 ................................................................................................................. 111
8.3 特性 ............................................................................................................................... 111
8.3.1 KBI 模块结构图 ................................................................................................. 113
8.4 寄存器定义 ..................................................................................................................... 113
8.4.1 KBI 状态控制寄存器(KBISC)........................................................................ 113
8.4.2 KBI 引脚使能寄存器(KBIPE)........................................................................ 114
8.5 功能描述 ........................................................................................................................ 114
8.5.1 引脚使能 ........................................................................................................... 114
8.5.2 边沿和电平触发................................................................................................. 114
8.5.3 KBI 中断控制 ..................................................................................................... 115
第9 章内部时钟发生器(S08ICGV4)
9.1 概述 ............................................................................................................................... 119
9.1.1 特性................................................................................................................... 119
9.1.2 操作模式 ........................................................................................................... 119
9.1.3 功能结构图 ........................................................................................................120
9.2 外部信号描述 .................................................................................................................121
9.2.1 EXTAL—外部参考时钟/ 振荡器输入 ................................................................121
9.2.2 XTAL—振荡器输出 ...........................................................................................121
9.2.3 外部时钟连接 ....................................................................................................121
9.2.4 外部晶振/ 谐振器连接.......................................................................................121
9.3 寄存器定义 .....................................................................................................................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
9.4 功能描述 ........................................................................................................................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.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
9.5 初始化/ 应用信息 ...........................................................................................................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 模拟电源(V
)..........................................................................................218
DDAD
14.3.2 模拟地(V
) .............................................................................................219
SSAD
14.3.3 参考高电压(V
)......................................................................................219
REFH
14.3.4 参考低电压(V ).......................................................................................219
REFL
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 电气特性和时序规范
A.1 概述................................................................................................................................................257
A.2 参数分类........................................................................................................................................257
A.3 最大绝对额定值............................................................................................................................257
A.4 热特性............................................................................................................................................258
A.5 ESD 保护和闭锁抗扰度...............................................................................................................259
A.6 DC 特性.........................................................................................................................................260
A.7 电源电流特性................................................................................................................................263
A.8 ADC 特性......................................................................................................................................266
A.9 内部时钟产生模块特性................................................................................................................269
A.9.1 ICG 频率规格.................................................................................................................270
A.10 AC 特性.........................................................................................................................................272
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
性能
16K
8K
768
44
8
flash 容量(字节)
内存容量(字节)
引脚数量
1024
48
8
44
8
42
6
48
8
42
6
ADC 通道
4
4
2
4
4
2
TPM1 通道
2
2
2
2
2
2
TPM2 通道
2
2
2
2
2
2
TPM3 通道
7
6
4
7
6
4
KBI 引脚
38
34
yes
no
22
38
34
yes
no
22
GPIO 引脚
适用于消费工业领域
适用于汽车领域
汽车电子的“AW”系列
MC9S08AW16
MC9S08AW8
性能
flash 容量(字节)
内存容量(字节)
引脚数量
16K
8K
768
44
8
1024
48
8
44
8
42
6
48
8
42
6
ADC 通道
TPM1 通道
4
4
2
4
4
2
TPM2 通道
2
2
2
2
2
2
TPM3 通道
-
-
-
-
-
KBI 引脚
7
6
4
7
6
4
GPIO 引脚
38
34
no
yes
22
38
34
no
yes
22
适用于消费工业领域
适用于汽车领域
1.2
MCU 结构框图
MC9S08AC16 系列MCU 的结构框图如图 1-1 所示。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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. 片上模块版本
模块
版本
1
4
2
1
4
3
3
2
模数转换(ADC)
内部时钟发生器(ICG)
内部IIC 总线(IIC)
键盘中断(KBI)
串行通信接口(SCI)
串行外设接口(SPI)
定时器脉宽调制(TPM)
中央处理单元(CPU)
1.3
系统时钟分配
TPMCLK
SYSTEM
CONTROL
LOGIC
ICGERCLK
RTI
TPM1
TPM2
IIC1
SCI1
SCI2
SPI
FFE
³2
ICG
XCLK**
COP
BUSCLK
1 kHz
ICGOUT
³2
ICGLCLK*
CPU
BDC
TPM3***
ADC
RAM
flash
1
ICGLCLK 是MC9S08 系列的BDC 的可选时钟源。
XCLK 是固定频率时钟。
2
3
4
5
TPM3 在S9S08AWxxA 设备中不可用。
ADC 有最高最低频率要求。参见电气附录和ADC 一章。
Flash 在写入和擦除时有频率要求。参见电气附录。
图 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 的管脚分配
图 2-1 表示了MC9S08AC16 系列MCU 的48 引脚QFN 引脚排列。
36 PTG3/KBIP3
35 PTD3/KBIP6/AD1P11
34 PTD2/KBIP5/AD1P10
33 VSSAD
1
PTC4
IRQ/TPMCLK
RESET
2
3
4
PTF0/TPM1CH2
PTF1/TPM1CH3
PTF4/TPM2CH0
PTF5/TPM2CH1
PTF6
5
32 VDDAD
6
PTD1/AD1P9
31
48-Pin QFN
7
30 PTD0/AD1P8
29 PTB3/AD1P3
28 PTB2/AD1P2
27
8
9
PTE0/TxD1
PTB1/TPM3CH1/AD1P11
10
11
12
PTE1/RxD1
26 PTB0/TPM3CH0/AD1P01
25 PTA7
PTE2/TPM1CH0
PTE3/TPM1CH1
1
图 2-1. MC9S08AC16 系列48 引脚QFN 封装
图 2-2 为MC9S08AC16 系列设备的44 引脚LQFP 引脚排列。
1. S9S08AwxxA 没有提供TPM3。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
34
44
43 42 41 40 39 38 37 36 35
PTC4
1
PTG3/KBIP3
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
VSSAD
33
IRQ/TPMCLK
RESET
2
3
4
5
6
7
8
9
32
31
30
29
PTF0/TPM1CH2
PTF1/TPM1CH3
PTF4/TPM2CH0
VDDAD
44-Pin LQFP
28
27
26
PTD1/AD1P9
PTD0/AD1P8
PTB3/AD1P3
PTB2/AD1P2
PTF5/TPM2CH1
PTE0/TxD1
PTE1/RxD1
25
24
PTE2/TPM1CH0
PTE3/TPM1CH1
PTB1/TPM3CH1/AD1P11
PTB0/TPM3CH0/AD1P01
10
11
23
18 19 20 21
13 14 15 16 17
22
12
1
图 2-2. MC9S08AC16 系列44 引脚LQFP 封装
图 2-3 为MC9S08AC16 系列设备的32 引脚LQFP 引脚排列。
1. S9S08AwxxA 没有提供TPM3。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
32
31 30 29 28 27 26 25
1
IRQ/TPMCLK
RESET
PTD3/AD1P11/KBIP6
PTD2/AD1P10/KBIP5
VSSAD
24
2
3
4
5
6
7
8
23
22
21
20
19
18
17
PTF4/TPM2CH0
PTF5/TPM2CH1
PTE0/TxD1
VDDAD
32-Pin LQFP
PTB3/AD1P3
PTB2/AD1P2
PTE1/RxD1
PTE2/TPM1CH0
PTE3/TPM1CH1
PTB1/TPM3CH1/AD1P11
PTB0/TPM3CH0/AD1P01
15 16
10 11 12 13 14
9
图 2-3. MC9S08AC16 系列32 引脚LQFP 封装
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表2-1. 各封装的引脚列表
管脚号
最低<-- 优先级 --> 最高
管脚号
最低<-- 优先级 --> 最高
48 44 32 Port Pin
Alt 1
Alt 2
48 44 32 Port Pin
Alt 1
Alt 2
26 23 17 PTB0
27 24 18 PTB1
28 25 19 PTB2
29 26 20 PTB3
30 27 — PTD0
31 28 — PTD1
32 29 21
TPM3CH01 AD1P0
TPM3CH11 AD1P1
AD1P2
1
2
1
2
— PTC4
1
IRQ
TPMCLK
RESET
3
3
2
AD1P3
4
4
— PTF0
— PTF1
TPM1CH2
TPM1CH3
TPM2CH0
TPM2CH1
AD1P8
5
5
AD1P9
6
6
3
4
PTF4
PTF5
VDDAD
7
7
33 30 22
VSSAD
8
—
8
— PTF6
34 31 23 PTD2
35 32 24 PTD3
36 33 — PTG3
AD1P10
AD1P11
KBIP5
KBIP6
KBIP3
9
5
6
7
8
9
PTE0
PTE1
PTE2
PTE3
PTE4
TxD1
RxD1
10
9
11 10
12 11
13 12
TPM1CH0
TPM1CH1
37
—
— PTG4
KBIP4
38 34 25
VREFH
VREFL
SS1
39 35 26
14 13 10 PTE5
15 14 11 PTE6
16 15 12 PTE7
17 16 13
MISO1
MOSI1
SPSCK1
VSS
40 36 27 BKGD
41 37 28 PTG5
42 38 29 PTG6
43 39 30
MS
XTAL
EXTAL
VSS
18 17 14
VDD
44 40 31 PTC0
45 41 32 PTC1
46 42 — PTC2
47 43 — PTC3
48 44 — PTC5
SCL1
SDA1
MCLK
TxD2
RxD2
19 18 15 PTG0
20 19 16 PTG1
21 20 — PTG2
22 21 — PTA0
23 22 — PTA1
KBIP0
KBIP1
KBIP2
1
24
25
—
—
— PTA2
— PTA7
S9S08AwxxA 没有提供TPM3
表2-2. 引脚功能参考
信号功能
举例
参考
端口引脚
PTAx、PTBx
第6 章“并行输入输出”
第12 章“SPI”
SPI
SS、MISO、MOSI、SPSCK
KBIPx
键盘中断
定时器/PWM
IIC
第9 章“键盘中断”
TCLK、TPMCHx
SCL、SDA
第10 章“定时器/PWM
第13 章“内部集成电路总线”
第11 章“串行通信接口”
第8 章“内部时钟发生器”
内部集成电路
串行通信接口
TxD、RxD
EXTAL、XTAL
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表2-2. 引脚功能参考( 续)
信号功能
举例
参考
ADPx
晶振/ 时钟
电源/ 核
第14 章“AD 转换转换器”
第2 章“引脚和连接”
BKGD/MS、VDD、VSS
RESET、IRQ
复位和中断
第5 章“复位,中断和系统配置”
2.3
推荐的系统连接
图 2-4 显示了适用于几乎所有MC9S08AC16 系列应用系统典型的引脚连接。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VREFH
VDDAD
MC9S08AC16
CBYAD
PTA0
PTA1
0.1 μF
PORT
A
VSSAD
VREFL
VDD
VDD
PTA2
PTA7
系统供电
+
+
CBY
0.1 μF
CBLK
10 μF
5 V
PTB0/AD1P0/TPM3CH0 NOTE 4
PTB1/AD1P1/TPM3CH1 NOTE 4
PTB2/AD1P2
VSS (x2)
PORT
B
PTB3/AD1P3
注1
RF
RS
PTC0/SCL1
PTC1/SDA1
XTAL
注2
C2
C1
X1
应用系统
的I/O和
外围设备
接口
PTC2/MCLK
PTC3/TxD2
PTC4
PORT
C
EXTAL
注2
BACKGROUND HEADER
PTC5/RxD2
V
DD
BKGD/MS
PTD0/AD1P8
PTD1/AD1P9
PORT
D
V
DD
PTD2/AD1P10/KBIP5
PTD3/AD1P11/KBIP6
4.7 k
0.1
Ω–10 kΩ
RESET
注3
PTE0/TxD1
μF
V
DD
PTE1/RxD1
手工复位(可选)
PTE2/TPM1CH0
PTE3/TPM1CH1
PTE4/SS1
4.7 kΩ–
异步中断
输入
PORT
E
10 kΩ
TPMCLK/IRQ
注3
0.1
μF
PTE5/MISO1
PTE6/MOSI1
PTE7/SPSCK1
PTG0/KBIP0
PTG1/KBIP1
PTG2/KBIP2
PTG3/KBIP3
PTF0/TPM1CH2
PTF1/TPM1CH3
PTF4/TPM2CH0
PORT
G
PORT
F
PTG4/KBIP4
PTG5/XTAL
PTF5/TPM2CH1
PTF6
PTG6/EXTAL
注意::
1
如果使用内部振荡器,这是不需要的。
2
3
4
XTAL 和EXTAL 分别是PTG5、PTG6。
为了得到较好的电磁兼容性能,推荐将RESET 和IRQ 接上RC 过滤器。
S9S08AwxxA 没有提供TPM3。
图 2-4. 基本系统连接
下面将详细介绍系统连接。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
2.3.1
电源(V 、2 ×V 、V
和V
)
SSAD
DD
SS
DDAD
VDD 和VSS 是MCU 的主要供电引脚。该电压源对所有的输入/ 输出(I/O) 缓冲电路和内部电压调节器供
电。内部电压调节器向CPU 和其他MCU 内部电路提供稳定的低压源。
通常应用系统有两个单独的电容器和电源引脚相连。一个大容量电解电容器,如10 μF 的钽电容,用来
为全体系统提供大电流充电存储,和一个0.1 μF 的陶瓷旁路电容,尽可能的靠近MCU 电源引脚VDD 和
VSS,用以抑制高频噪声。MC9S08AC16 还有一个次要VSS 引脚。这个引脚连接到系统地或经过一个低阻抗
连接到主要的VSS 引脚。
V
DDAD 和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 参考引脚(V
与V )
REFH REFL
V
REFH 和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. 停止模式下的行为
CPU,数字
外设,flash
时钟
模块
电压调
节器
PPDC
RAM
ADC
I/O
RTI
模式
STOP2
STOP3
1
0
关
待命
待命
关
不可用
可选开
待命
待命
维持状态
维持状态
可选开
可选开
待命
关1
1
STOP3 模式下晶振可以设置为运行,参见ICG 寄存器。
3.6.1
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 模式下的行为
CPU,数字
外设,flash
电压调节
器
PPDC
RAM
ICG
ADC
RTI
模式
I/O 引脚
STOP3
任意
待命
待命
活跃
不可用
活跃
状态保持
可选开
3.6.4
停止模式下LVD 使能
当供应电压下降到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 模式下的行为
CPU、数字外设、
PPDC
RAM
ICG
ADC
I/O
RTI
模式
电压调节器
flash
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 章 片上存储器
4.1
MC9S08AC16 系列存储映像简介
图 4-1 描述了MC9S08AC16 系列MCU 的存储映像,MC9S08AC16 的片上存储器由RAM、非易失的
flash 存储器、输入/ 输出(I/O) 和控制/ 状态寄存器组成。
这些寄存器分成三组:
• 直接页寄存器(0x0000-0x006F)
• 高地址页寄存器(0x1800-0x185F)
• 非易失性寄存器(0xFFB0-0xFFBF)
0x0000
0x0000
直接页寄存器
0x006F
0x0070
0x006F
0x0070
直接页寄存器
RAM 768 字节
保留 256 字节
0x036F
RAM 1024 字节
0x0370
0x046F
0x0470
0x046F
0x0470
无效区域
无效区域
5008 字节
5008 字节
0x17FF
0x1800
0x17FF
0x1800
高页寄存器
高页寄存器
0x185F
0x1860
0x185F
0x1860
无效区域
无效区域
42,912 字节
42,912 字节
0xBFFF
0xC000
0xBFFF
0xC000
保留 8192字节
0xDFFF
0xE000
flash
flash
16,384 字节
8192 字节
0xFFFF
0xFFFF
MC9S08AC8 和MC9S08AW8
MC9S08AC16 和MC9S08AW16
图 4-1. MC9S08AC16 系列内存映像
4.1.1
复位和中断向量分配
表 4-1 描述了复位与中断向量的地址分配,至于其他HCS08 系列MCU 的向量名字和地址分配,请参考
相关的数据手册。表中所示向量名是Freescalse 公司提供的MC9S08AC16 文档中给出的名字。有关复位、
中断、中断优先权和中断屏蔽控制的详细信息,请参阅第5 章复位、中断和系统配置。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表4-1. 复位和中断向量表
地址( 高/ 低)
向量
向量名称
0xFFC0:FFC1
—
不用的向量空间
( 可用于用户程序)
↑
↓
0xFFC4:FFC5
TPM31 溢出
TPM31 通道1
TPM31 通道0
RTI1
0xFFC6:FFC7
0xFFC8:FFC9
0xFFCA:FFCB
0xFFCC:FFCD
0xFFCE:FFCF
0xffD0:FFD1
Vtpm3ovf
Vtpm3ch1
Vtpm3ch0
Vrti
IIC1
Viic1
VADC
ADC 模数转换
0xFFD2:FFD3
0xFFD4:FFD5
0xFFD6:FFD7
0xFFD8:FFD9
0xFFDA:FFDB
0xFFDC:FFDD
0xFFDE:FFDF
0xFFE0:FFE1
0xFFE2:FFE3
0xFFE4:FFE5
0xFFE6:FFE7
0xFFE8:FFE9
0xFFEA:FFEB
0xFFEC:FFED
0xFFEE:FFEF
0xFFF0:FFF1
0xFFF2:FFF3
0xFFF4:FFF5
0xFFF6:FFF7
0xFFF8:FFF9
0xFFFA:FFFB
0xFFFC:FFFD
0xFFFE:FFFF
KBI
Vkeyboard1
Vsci2tx
Vsci2rx
Vsci2err
Vsci1tx
Vsci1rx
Vsci1err
VSPI
SCI2 发送
SCI2 接收
SCI2 错误
SCI1 发送
SCI1 接收
SCI1 错误
SPI
Vtpm2ovf
Vtpm2ch1
Vtpm2ch0
Vtpm1ovf
—
TPM2 溢出
TPM2 通道1
TPM2 通道0
TPM1 溢出
未使用
—
未使用
Vtpm1ch3
Vtpm1ch2
Vtpm1ch1
Vtpm1ch0
Vicg
TPM1 通道3
TPM1 通道2
TPM1 通道1
TPM1 通道0
ICG
Vlvd
低电压检测
IRQ
Virq
SWI
Vswi
RESET
Vreset
1
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 页)
地址
寄存器名称
PTAD
Bit 7
6
5
4
3
2
1
Bit 0
0x0000
0x0001
0x0002
0x0003
0x0004
0x0005
0x0006
0x0007
0x0008
0x0009
0x000A
0x000B
0x000C
0x000D
PTAD7
R
R
R
R
R
PTAD2
PTADD2
PTBD2
PTAD1
PTADD1
PTBD1
PTAD0
PTADD0
PTBD0
PTADD7
R
R
R
R
R
PTADD
PTBD
R
R
PTBD3
R
R
R
R
PTBDD3 PTBDD2 PTBDD1 PTBDD0
PTCD3 PTCD2 PTCD1 PTCD0
PTBDD
PTCD
0
R
PTCD5
PTCD4
0
R
R
R
PTCDD5 PTCDD4 PTCDD3 PTCDD2 PTCDD1 PTCDD0
PTCDD
PTDD
R
R
R
R
PTDD3
PTDDD3 PTDDD2 PTDDD1 PTDDD0
PTED3 PTED2 PTED1 PTED0
PTDD2
PTDD1
PTDD0
R
R
PTDDD
PTED
PTED7
PTED6
PTED5
PTED4
PTEDD7 PTEDD6 PTEDD5 PTEDD4 PTEDD3 PTEDD2 PTEDD1 PTEDD0
PTEDD
PTFD
R
R
0
PTFD6
PTFDD6 PTFDD5 PTFDD4
PTGD6 PTGD5 PTGD4
PTFD5
PTFD4
R
R
R
R
PTFD1
PTFDD1 PTFDD0
PTGD1 PTGD0
PTFD0
PTFDD
PTGD
PTGD3
PTGD2
0
PTGDD6 PTGDD5 PTGDD4 PTGDD3 PTGDD2 PTGDD1 PTGDD0
PTGDD
0x000E–
0x000F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
COCO
ADACT
0
AIEN
ADTRG
0
ADCO
ACFE
0
ADCH
0x0010
0x0011
0x0012
0x0013
0x0014
0x0015
0x0016
0x0017
0x0018
0x0019
ADCSC1
ADCSC2
ADCRH
ACFGT
0
0
0
0
0
R
R
ADR9
ADR1
ADCV9
ADCV1
ADR8
ADR0
ADCV8
ADCV0
ADR7
0
ADR6
0
ADR5
0
ADR4
0
ADR3
0
ADR2
0
ADCRL
ADCCVH
ADCCVL
ADCCFG
APCTL1
APCTL2
APCTL3
ADCV7
ADLPC
ADPC7
ADCV6
ADCV5
ADCV4
ADLSMP
ADPC4
ADCV3
ADCV2
ADIV
ADPC6
MODE
ADICLK
ADPC5
ADPC3
ADPC2
ADPC1
ADPC9
ADPC0
ADPC8
ADPC15 ADPC14 ADPC13 ADPC12 ADPC11 ADPC10
ADPC23 ADPC22 ADPC21 ADPC20 ADPC19 ADPC18 ADPC17 ADPC16
0x001A–
0x001B
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
0
IRQPDD IRQEDG
IRQPE
—
IRQF
—
0
—
IRQIE
IRQMOD
—
0x001C
0x001D
0x001E
0x001F
0x0020
0x0021
0x0022
0x0023
0x0024
0x0025
0x0026
0x0027
IRQSC
—
—
—
—
保留
KBEDG7 KBEDG6 KBEDG5 KBEDG4
KBF
KBIPE3
CLKSA
11
KBACK
KBIPE2
PS2
10
KBIE
KBIMOD
KBIPE0
PS0
KBISC
KBIPE7
TOF
KBIPE6
KBIPE5
KBIPE4
KBIPE1
KBIPE
TOIE
CPWMS
CLKSB
PS1
9
TPM1SC
Bit 15
Bit 7
14
13
5
12
4
Bit 8
TPM1CNTH
TPM1CNTL
TPM1MODH
TPM1MODL
TPM1C0SC
TPM1C0VH
TPM1C0VL
6
14
3
2
1
Bit 0
Bit 15
Bit 7
13
5
12
4
11
10
9
Bit 8
6
3
2
1
Bit 0
CH0F
Bit 15
Bit 7
CH0IE
14
MS0B
13
5
MS0A
12
4
ELS0B
11
ELS0A
10
0
0
9
Bit 8
6
3
2
1
Bit 0
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
Bit 0
表4-2. 直接页寄存器概述( 第2 页,共3 页)
地址
寄存器名称
TPM1C1SC
Bit 7
6
5
4
3
2
1
0x0028
0x0029
0x002A
0x002B
0x002C
0x002D
0x002E
0x002F
0x0030
CH1F
Bit 15
Bit 7
CH1IE
MS1B
13
MS1A
12
ELS1B
ELS1A
0
9
1
0
9
1
0
9
1
0
14
11
10
Bit 8
Bit 0
0
TPM1C1VH
TPM1C1VL
TPM1C2SC
TPM1C2VH
TPM1C2VL
TPM1C3SC
TPM1C3VH
TPM1C3VL
6
CH2IE
14
5
4
3
ELS2B
11
2
ELS2A
10
CH2F
Bit 15
Bit 7
MS2B
13
MS2A
12
Bit 8
Bit 0
0
6
5
4
3
2
CH3F
Bit 15
Bit 7
CH3IE
14
MS3B
13
MS3A
12
ELS3B
11
ELS3A
10
Bit 8
Bit 0
6
5
4
3
2
0x0031– 保留
0x0037
—
—
—
—
—
—
—
—
LBKDIE RXEDGIE
0
SBR5
RSRC
RIE
SBR12
SBR4
M
SBR11
SBR3
WAKE
TE
SBR10
SBR2
ILT
SBR9
SBR1
PE
SBR8
SBR0
PT
0x0038
0x0039
0x003A
0x003B
0x003C
0x003D
0x003E
0x003F
0x0040
0x0041
0x0042
0x0043
0x0044
0x0045
0x0046
0x0047
0x0048
0x0049
0x004A
0x004B
0x004C
0x004D
0x004E
0x004F
0x0050
0x0051
0x0052
0x0053
0x0054
SCI1BDH
SBR7
LOOPS
TIE
SBR6
SCISWAI
TCIE
SCI1BDL
SCI1C1
SCI1C2
SCI1S1
SCI1S2
SCI1C3
SCI1D
ILIE
RE
RWU
FE
SBK
PF
TDRE
TC
RDRF
0
IDLE
RXINV
TXINV
4
OR
NF
LBKDIF RXEDGIF
RWUID
ORIE
3
BRK13
NEIE
2
LBKDE
FEIE
1
RAF
PEIE
Bit 0
SBR8
SBR0
PT
R8
T8
6
TXDIR
5
Bit 7
LBKDIE RXEDGIE
0
SBR12
SBR4
M
SBR11
SBR3
WAKE
TE
SBR10
SBR2
ILT
SBR9
SBR1
PE
SCI2BDH
SCI2BDL
SCI2C1
SCI2C2
SCI2S1
SCI2S2
SCI2C3
SCI2D
SBR7
LOOPS
TIE
SBR6
SCISWAI
TCIE
SBR5
RSRC
RIE
ILIE
RE
RWU
FE
SBK
PF
TDRE
TC
RDRF
0
IDLE
RXINV
TXINV
4
OR
NF
LBKDIF RXEDGIF
RWUID
ORIE
3
BRK13
NEIE
2
LBKDE
FEIE
1
RAF
PEIE
Bit 0
0
R8
Bit 7
T8
6
TXDIR
5
HGO
LOLRE
RANGE
REFS
MFD
REFST
0
CLKS
OSCSTEN
LOCD
RFD
ERCS
0
ICGC1
LOCRE
LOCK
0
ICGC2
CLKST
LOLS
LOCS
0
ICGIF
DCOS
ICGS1
0
0
0
0
0
0
ICGS2
0
FLT
ICGFLTU
ICGFLTL
ICGTRM
保留
FLT
TRIM
—
SPIE
SPMIE
0
—
SPE
0
—
SPTIE
0
—
—
—
—
—
LSBFE
SPC0
SPR0
0
MSTR
CPOL
CPHA
SSOE
SPIC1
MODFEN BIDIROE SPIMODE SPISWAI
SPIC2
SPPR2
SPIMF
14
SPPR1
SPTEF
13
SPPR0
MODF
12
0
0
SPR2
0
SPR1
SPIBR
SPRF
Bit 15
0
8
SPIS
11
10
Bit 8
SPIDH
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表4-2. 直接页寄存器概述( 第3 页,共3 页)
地址
寄存器名称
SPIDL
Bit 7
6
5
4
3
2
1
Bit 0
0x0055
0x0056
0x0057
0x0058
0x0059
0x005A
0x005B
0x005C
0x005D
Bit 7
Bit 15
Bit 7
AD7
6
14
6
5
13
5
4
12
4
3
11
3
2
10
2
1
8
Bit 0
Bit 8
Bit 0
0
SPIMH
SPIML
IIC1A
IIC1F
1
AD6
AD5
AD4
AD3
AD2
AD1
MULT
ICR
IICEN
TCF
IICIE
IAAS
MST
TX
TXAK
0
RSTA
SRW
0
0
IIC1C
IIC1S
IIC1D
IIC1C2
BUSY
ARBL
IICIF
RXAK
DATA
GCAEN
ADEXT
0
0
0
AD10
AD9
AD8
0x005E–
0x005F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
TOF
Bit 15
Bit 7
TOIE
CPWMS
CLKSB
CLKSA
PS2
PS1
9
PS0
Bit 8
Bit 0
Bit 8
Bit 0
0
0x0060
0x0061
0x0062
0x0063
0x0064
0x0065
0x0066
0x0067
0x0068
0x0069
0x006A
TPM2SC
14
13
5
12
4
11
10
TPM2CNTH
TPM2CNTL
TPM2MODH
TPM2MODL
TPM2C0SC
TPM2C0VH
TPM2C0VL
TPM2C1SC
TPM2C1VH
TPM2C1VL
6
14
3
2
1
Bit 15
Bit 7
13
12
11
10
9
6
5
4
3
ELS0B
11
2
ELS0A
10
1
CH0F
Bit 15
Bit 7
CH0IE
14
MS0B
13
MS0A
12
0
9
Bit 8
Bit 0
0
6
5
4
3
2
1
CH1F
Bit 15
Bit 7
CH1IE
14
MS1B
13
MS1A
12
ELS1B
11
ELS1A
10
0
9
Bit 8
Bit 0
6
5
4
3
2
1
0x006B–
0x006F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
表 4-3 中所示的高地址页寄存器比其他的I/O 和控制寄存器的访问频率低,所以它们位于可直接寻址的存
储器空间之外,开始于$1800。
表4-3. 高地址页寄存器概要( 第1 页,共3 页)
地址
寄存器名称
SRS
Bit 7
6
5
4
3
2
1
Bit 0
POR
PIN
0
COP
ILOP
0
ILAD
ICG
0
LVD
0
0
BDFR
—
0x1800
0x1801
0x1802
0x1803
0
COPE
0
0
STOPE
0
0
0
0
SBDFR
SOPT
COPT
0
—
0
—
MPE
MCSEL
SMCLK
0x1804 –
0x1805
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
REV3
ID7
REV2
ID6
REV1
ID5
REV0
ID4
ID11
ID3
ID10
ID2
ID9
ID1
RTIS1
01
ID8
0x1806
0x1807
0x1808
0x1809
0x180A
SDIDH
ID0
SDIDL
RTIF
LVDF
LVWF
RTIACK RTICLKS
RTIE
0
RTIS2
LVDE
RTIS0
BGBE
PPDC
SRTISC
SPMSC1
SPMSC2
LVDACK
LVWACK
LVDIE
LVDV
LVDRE
LVWV
LVDSE
PPDF
PPDACK
—
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
Bit 0
表4-3. 高地址页寄存器概要( 第2 页,共3 页)
地址
寄存器名称
Bit 7
6
5
4
3
2
1
0x180B 保留
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
COPCLKS
0x180C
SOPT2
0x180D–
0x180F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
Bit 15
Bit 7
14
6
13
5
12
11
3
10
2
9
Bit 8
Bit 0
0x1810
0x1811
0x1812
0x1813
0x1814
0x1815
0x1816
0x1817
0x1818
DBGCAH
DBGCAL
DBGCBH
DBGCBL
DBGFH
DBGFL
DBGC
4
1
9
Bit 15
Bit 7
14
13
12
11
10
Bit 8
6
5
4
3
2
1
Bit 0
Bit 15
Bit 7
14
13
12
11
10
9
Bit 8
6
5
4
3
2
1
Bit 0
DBGEN
TRGSEL
AF
ARM
BEGIN
BF
TAG
0
BRKEN
RWA
TRG3
CNT3
RWAEN
TRG2
CNT2
RWB
TRG1
CNT1
RWBEN
TRG0
CNT0
0
0
DBGT
ARMF
DBGS
0x1819–
0x181F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
DIVLD
KEYEN
—
PRDIV8
FNORED
—
DIV5
0
DIV4
0
DIV3
DIV2
0
DIV1
SEC01
—
DIV0
SEC00
—
0x1820
0x1821
0x1822
0x1823
0x1824
0x1825
0x1826
FCDIV
FOPT
0
—
—
—
—
Reserved
FCNFG
FPROT
FSTAT
FCMD
0
0
KEYACC
FPS5
0
0
0
0
0
FPS7
FCBEF
FCMD7
FPS6
FCCF
FCMD6
FPS4
FPS3
0
FPS2
FBLANK
FCMD2
FPS1
0
FPDIS
0
FPVIOL FACCERR
FCMD5
FCMD4
FCMD3
FCMD1
FCMD0
0x1827–
0x182F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
2
TOF
Bit 15
Bit 7
TOIE
CPWMS
CLKSB
CLKSA
PS2
PS1
9
PS0
Bit 8
Bit 0
Bit 8
Bit 0
0
0x1830
0x1831
0x1832
0x1833
0x1834
0x1835
0x1836
0x1837
0x1838
0x1839
0x183A
TPM3SC
2
14
13
5
12
4
11
10
TPM3CNTH
2
6
14
3
2
1
TPM3CNTL
2
Bit 15
Bit 7
13
12
11
10
9
TPM3MODH
2
6
5
4
3
ELS0B
11
2
ELS0A
10
1
TPM3MODL
2
CH0F
Bit 15
Bit 7
CH0IE
14
MS0B
13
MS0A
12
0
TPM3C0SC
TPM3C0VH
2
9
Bit 8
Bit 0
0
2
2
6
5
4
3
2
1
TPM3C0VL
CH1F
Bit 15
Bit 7
CH1IE
14
MS1B
13
MS1A
12
ELS1B
11
ELS1A
10
0
TPM3C1SC
TPM3C1VH
2
9
Bit 8
Bit 0
2
6
5
4
3
2
1
TPM3C1VL
0x183B
0x183F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
PTAPE7
PTASE7
PTADS7
R
R
R
R
R
R
R
R
R
R
R
R
PTAPE2
PTASE2
PTADS2
PTAPE1
PTASE1
PTADS1
PTAPE0
PTASE0
PTADS0
0x1840
0x1841
0x1842
PTAPE
PTASE
PTADS
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表4-3. 高地址页寄存器概要( 第3 页,共3 页)
地址
寄存器名称
保留
Bit 7
6
5
4
3
2
1
Bit 0
0x1843
0x1844
0x1845
0x1846
0x1847
0x1848
0x1849
0x184A
—
—
—
R
—
R
—
—
—
—
R
R
PTBPE3
PTBSE3
PTBPE2
PTBSE2
PTBPE1
PTBSE1
PTBPE0
PTBSE0
PTBPE
PTBSE
PTBDS
保留
R
R
R
R
R
R
R
R
PTBDS3 PTBDS2 PTBDS1 PTBDS0
—
—
—
—
—
—
—
—
0
R
PTCPE5 PTCPE4 PTCPE3 PTCPE2 PTCPE1 PTCPE0
PTCSE5 PTCSE4 PTCSE3 PTCSE2 PTCSE1 PTCSE0
PTCDS5 PTCDS4 PTCDS3 PTCDS2 PTCDS1 PTCDS0
PTCPE
PTCSE
PTCDS
0
R
0
R
—
—
—
—
—
—
—
—
0x184B 保留
R
R
R
R
PTDPE3 PTDPE2 PTDPE1 PTDPE0
PTDSE3 PTDSE2 PTDSE1 PTDSE0
PTDDS3 PTDDS2 PTDDS1 PTDDS0
0x184C
0x184D
0x184E
0x184F
0x1850
0x1851
0x1852
0x1853
0x1854
0x1855
0x1856
0x1857
0x1858
0x1859
0x185A
PTDPE
R
R
R
R
R
R
R
R
PTDSE
PTDDS
保留
—
—
—
—
—
—
—
—
PTEPE7
PTESE7
PTEPE6
PTESE6
PTEPE5
PTESE5
PTEPE4
PTESE4
PTEPE3
PTESE3
PTEPE2
PTESE2
PTEPE1
PTESE1
PTEPE0
PTESE0
PTEPE
PTESE
PTEDS
保留
PTEDS7 PTEDS6 PTEDS5 PTEDS4 PTEDS3 PTEDS2 PTEDS1 PTEDS0
—
R
R
R
—
0
—
—
—
—
R
—
R
—
—
PTFPE6
PTFSE6
PTFDS6
—
PTFPE5
PTFSE5
PTFDS5
—
PTFPE4
PTFSE4
PTFDS4
—
PTFPE1
PTFSE1
PTFDS1
—
PTFPE0
PTFSE0
PTFDS0
—
PTFPE
PTFSE
PTFDS
保留
R
R
R
R
—
—
PTGPE6 PTGPE5 PTGPE4 PTGPE3 PTGPE2 PTGPE1 PTGPE0
PTGSE6 PTGSE5 PTGSE4 PTGSE3 PTGSE2 PTGSE1 PTGSE0
PTGDS6 PTGDS5 PTGDS4 PTGDS3 PTGDS2 PTGDS1 PTGDS0
PTGPE
PTGSE
PTGDS
0
0
0x185B–
0x185F
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
保留
1
保留的位必须写入0。
2
这些表格仅适用于MC9S08AC16 和MC9S08AC8。
表 4-4 中所示的非易失性flash 寄存器位于flash 存储器中。它包括一个8 字节的后门密钥,这个密钥用
于获得对加密存储器的访问权。在复位后,flash 存储器的非易失性寄存器中NVPROT 和NVOPT 的内容被转
移到相应的位于高页面寄存器中的FPROT 和FOPT 工作寄存器中,从而控制加密存储块保护功能。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
Bit 0
表4-4. 非易失性寄存器概要
地址
寄存器名称
Bit 7
6
5
4
3
2
1
0xFFB0 – NVBACKKEY
0xFFB7
8-Byte Comparison Key
0xFFB8 – 保留
0xFFBC
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
FPS7
—
FPS6
—
FPS5
—
FPS4
—
FPS3
—
FPS2
—
FPS1
—
FPDIS
—
0xFFBD
NVPROT
1
0xFFBE 保留
0xFFBF
KEYEN
FNORED
0
0
0
0
SEC01
SEC00
NVOPT
1
这个位置可用于存储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<-(H:X-1)
在使能保护机制的情况下,RAM 被视为受保护的存储资源,BDM 或者来自非受保护的存储区的代码不能
对其进行访问。对于保护机制的特征,请参考 4.5 节 保护机制。
4.4
Flash
Flash 主要用于程序存储。在线编程允许应用程序在最后一次汇编编译以后下载到flash 存储器中。允许
通过单一连线的背景调试接口对整个数组写入。因为对flash 的擦除和写入操作不需要特殊的电压,在线应用
程序编程(IAP)可以通过一些其他软件控制的通信方式进行下载。在线编程和IAP 的详细信息请参见
“HCS08 Family Reference Manual, Volume I”,它的飞思卡尔文档顺序号是HCS08RMv1/D。
4.4.1
特征
Flash 有以下特征:
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
•
Flash 容量
•
•
MC9S08AC16 和MC9S08AW16:16384 字节(每页512 字节,共32 页)
MC9S08AC8 和MC9S08AW8:8192 字节(每页512 字节,共16 页)
• 单电源提供写入和擦除。
• 用于快速写入和擦除操作的命令接口
• 在正常的电压和温度下,可高达100000 次写入/ 擦除
• 灵活易用的块保护
•
Flash 和RAM 的保护机制
• 自动低功耗的低频率读访问
4.4.2
写入和擦除时间
在执行任何一条擦除或者写入命令之前,必须首先设置flash 时钟分频寄存器(FCDIV),将flash 模块
的内部时钟设到150 kHz 到200 kHz 之间(fFCLK),( 见 4.6.1 节 Flash 时钟分频寄存器(FCDIV)),这个寄存
器只能被写一次,所以一般在复位初始化中设置该寄存器。如果访问错误标志位(FSTAT 的FACCERR)被
置位,FCDIV 禁止写入。所以,用户在写FCDIV 寄存器前确保FACCERR 没有置位。设置好的时钟周期
(1/ fFCLK)被命令处理器用来对擦除和写入脉冲进行计时。命令处理器完成一个擦除或者写入操作的时间是
周期的整数倍。
表4-5 描述了写入和擦除的时间。总线时钟频率和FCDIV 决定了FLCK 的频率(fFCLK)FCLK 一个周期
的时间是tFCLK=1/fFCLK。表中各操作的时间分别由所需的FCLK 时钟周期以及tFCLK = 5 μs 的绝对时间来表
示。这个时间也包括了命令状态机的消耗,以及允许与禁止写入和擦除电压使用的时间。
表4-5. 写入和擦除时间
时间
参数
FCLK 周期
(FCLK=200 kHz)
9
4
45 μs
字节写入
字节写入(突发)
页擦除
20 μs1
4000
20000
20 ms
100 ms
整体擦除
1
不包括开始/ 结束的时间消耗
4.4.3
写入和擦除命令的执行
执行任何命令的步骤如下所列。FCDIV 寄存器必须被初始化,并且在开始执行命令前要将所有的错误标
志清零。命令的执行步骤是:
• 向要擦除的flash 区域的一个地址写入一个数值。这个写入的地址和数值的信息将被放在命令缓冲区
中。命令序列的第一步就是进行这个写入操作。对擦除和空白检测命令来说,这个数据的值是不重要
的。但是对于页擦除命令,这个地址必须是要擦除的512 字节的flash 页中的任意一个地址。对于整
体擦除命令和空白检测命令,这个地址可以是flash 存储器中的任意一个地址。512 字节的一整页是
flash 中可以擦除的最小块。在60K 版本中,用户可存取的块小于512 字节的情况有两种,分别是
RAM 后面的第一页和高地址寄存器后的第一页。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
注意
完成一次写入操作后,flash 内的每个字节只能被写入一次。如果一个位已经被写
入,再次向这个字节写入一些位需要先擦除这个字节或整体擦除flash。未经擦除
而直接写入会影响存储在flash 内的数据。
• 向FCMD 写入已经设计好的命令。五个已经设计好的命令是:空白检查命令($05),写入一个字节命
令($20),突发模式写入命令($25),页擦除命令($40),整体擦除命令($41)。这些命令锁存到命令缓
冲区。
• 向FSTAT 寄存器的FCBEF 位写1,可以清FCBEF 位和启动命令( 包括它的地址和数据信息)。
在写存储器之后,写1 清零FCBEF 和命令完成之前的任何时候可以向FCBEF 手动写0,取消部分命令
序列。用这种方式取消命令可使FACCERR 存取错误标志位置位,该标志位在开始执行新命令之前必须被清
零。
必须遵守严格的监控程序,否则命令不会被接受。这降低了意外改变flash 内容的可能性。命令完成标志
(FCCF)标志完成一个命令。命令队列必须通过清零FCBEF 来开始执行命令。图 4-2 是除了突发模式写入
以外,所有命令执行的流程图。在使用任何flash 命令前,FCDIV 寄存器必须被初始化(复位后,只能执行
一次操作)。
注1:复位后,只能执行一次操作
写FCDIV(注1)
flash 写入和
擦除流程
开始
0
FACCERR ?
1
清除错误
向flash 写入来
缓存地址和数据
向FCMD 写入命令
注2:在检测FCBEF 或者FCCF
之前应至少等待4 个总线周期
向FCBEF 写入1 启动命
令和清FCBEF(注意2)
是
FPVIOL 或
FACCERR ?
错误退出
否
0
FCCF ?
1
结束
图 4-2. Flash 命令流程图
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
4.4.4
突发模式写入的执行
突发模式写入通常写入连续字节的数据,与标准写入命令相比需要更少的时间。这可能是因为写入时
flash 阵列中的高电压持续有效。通常,当发出写入或擦除命令时,必须使能flash 存储器相关的内部电荷泵来
为阵列提供高电压。命令完成后电荷泵被关闭。在突发模式写入命令中,电荷泵被启动,并在满足下面两个条
件的情况下,电荷泵保持打开,直到突发模式写入操作完成。
• 当前的写入操作完成以前,下一个突发模式写入命令正在等待。
• 下一个连续地址选择了和当前正在写入的字节具有相同的物理行的字节。flash 内存行包括64 个字
节。每行的字节通过地址的A5 到A0 选择。一个新行的起始地址中的A5 到A0 全零。
注1:必须在复位后进行
写
FCDIV(注1)
flash 突发
写入流程
开始
0
FACCERR ?
1
清除错误
FCBEF?
向flash 写入来
缓存地址和数据
向FCMD 写入命令
注2:在检测FCBEF 或者FCCF
之前应至少等待4 个总线周期
向FCBEF 写入1 启动命
令和清FCBEF(注意2)
是
FPVIOL 或
FACCERR ?
错误退出
否
是
新的突发命令?
否
0
FCCF ?
1
结束
图 4-3. Flash 突发写入流程图
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
在突发模式下,写入序列的第一个字节和在标准模式下写入一个字节花费相同的时间。如果满足上述条
件,剩下的字节也会在突发模式下写入。如果在下一个序列的地址指向新的行,那个字节的写入时间是标准时
间而不是突发模式时间。这是因为阵列的高电压必须先失效然后再使能。如果在当前的命令完成前,没有一个
突发模式命令在等待,那么电荷泵将会失效,阵列上的高电压被移除。
4.4.5
访问错误
只要违反命令执行协议,错误就会产生。
下面的任何一个操作都会置位FSTAT 中的访问错误标志(FACCERR)。一旦发生了访问错误,在执行新
的命令之前必须向FSTAT 中的FACCERR 写1 来清FACCERR 标志。
• 在写一个flash 地址之前,内部flash 时钟频率没有通过FCDIV 寄存器设置。
• 当FCBEF 没有置位时,写flash 地址( 在命令缓冲区为空之前不可以开始一个新的命令)。
• 在启动命令之前,再一次写入flash 地址( 每一个命令只写一次flash)。
• 在启动命令之前,再一次写FCMD( 对每一个命令只写一次FCMD)。
• 写入flash 地址后,设置除FCMD 外的任意其他控制寄存器。
• 向FCMD 写除了五个正确的命令(0x05、0x20、0x25、0x40, 或0x41) 之外的任何命令代码。
• 向FCMD 中写入命令字之后,设置除FSTAT( 清FCBEF 和启动命令) 之外的任意flash 控制寄存器。
• 当执行写入或者擦除命令时,MCU 进入停止模式( 这个命令是被中止的) 。
• 当MCU 处于安全状态时,用背景调试命令写字节写入、突发模式写入和页擦除这些命令( 当MCU 处
于安全状态时,背景调试控制器只能进行空白检测和整体擦除命令)。
• 向FCBEF 位写0 取消一个未完成的命令。
4.4.6
Flash 块保护
块保护防止对被保护范围的flash 存储空间进行写入或擦除操作。块保护通过块保护寄存器控制
(FPORT)控制。当使能时,块保护可以开始于任意512 字节的边界,这个边界低于flash 最后的地址
(0xFFFF)(参考 4.6.4 节 Flash 保护寄存器(FPROT 和NVPROT))。
复位后,FPROT 装入NVPROT 地址的内容。NVPROT 在flash 存储器中的非易失性寄存器块中。
FPROT 不能直接通过应用软件改变,所以一个跑飞的程序不能改变块保护设置。因为NVPROT 在flash 的最
后512 字节,只要有flash 被保护,NVPROT 本身就会被保护而不能被应用软件改变(有意或无意)。通过
背景调试命令可以写FPROT,这是擦除和重新写入一个被保护的flash 存储器的方法。
图 4-4 描述了块保护机制。FPS 定义了未被保护的最后一个地址的高字节。就像图中表示的,地址由
FPS7:FPS1 连接上逻辑1 组成。例如,保护1536 个字节(从0xFA00 到0xFFFF),FPS 位设置为
1111100,也就是未被保护的最后一个地址0xF9FF 的值。除了将FPS 写为适当的值,FPDIS (NVPROT 的
0 位)必须置0 以允许块保护。因此0xF8 必须写到NVPROT 中保护从0xFA00 到0xFFFF 的地址。
FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1
1
1
1
1
1
1
1
1
1
A15 A14
A13
A12
A11
A10
A9
A8 A7 A6 A5 A4 A3 A2 A1 A0
图 4-4. 块保护机制
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
块保护的一个用途是为引导程序(Boatloader)提供一个保护了的flash 存储区域。这样引导程序就可以
用于擦除以及重新写剩余的flash 存储器。因为引导程序被保护,所以即使MCU 在写入或者擦除操作过程中
掉电,该程序也是完整的。
4.4.7
向量重定向
无论是哪种块保护,复位和中断向量都将被保护。向量重定向允许用户修改中断向量信息而不需要取消
对引导程序和复位向量空间的保护。向NVOPT 内地址为$FFBF 的寄存器的FNORED 位写入0,可以使能
向量重定向。为了实现重定向操作,必须设置位于$FFBD 地址处的NVPROT 寄存器让flash 存储器中的一部
分而不是全部块保护。所有的中断向量($FFC0 –$FFFD) 都会重定向,除了复位向量($FFFE:$FFFF)。
举个例子,如果flash 的512 个字节被保护,保护地址区域是从$FE00 到$FFFF。则中断向量$FFC0
–$FFFD 被重定向到$FDC0 –$FDFD。以一个SPI 中断来举例,地址$FDE0: FDE1 将取代地址
$FFE0:FFE1 的值作为中断向量使用。这就允许用户将新的程序代码和新的向量值写入FALSH 中未被保护的
部分,而包含默认向量地址的被保护区域不被改写。
4.5
保护机制
MC9S08AC16 使用硬件电路来防止对flash 存储器和RAM 存储器的数据的非法访问。当使能安全机制
时,flash 和RAM 都被看作被保护资源。直接页寄存器,高地址页寄存器,背景调试控制器被看作是非保护
资源。保护区的程序执行时,可以正常访问任何位置的内存数据和资源,但通过背景调试接口或来自非保护存
储空间的程序执行来访问保护资源是被禁止的( 写操作被忽略,读时总为0)。
是否使用保护机制是由FOPT 中的非易失性的寄存器位SEC01:SEC00 来设置的。在芯片复位时,非易
失性的NVOPT 的内容从flash 中复制到工作着的高地址页寄存器FOPT 中。在写flash 时,用户通过写
NVOPT 来使用MCU 的安全机制。如果是1:0 状态,则取消MCU 保密性,其他的组合都启用MCU 保密性。
注意擦除的状态(1:1) 使能MCU 保护机制。在开发过程中,无论flash 何时被擦除,立即将NVOPT 中的
SEC00 位清0 是提倡的操作,SEC01:SEC00=1:0。这样就可以在复位以后让MCU 仍然是非保护的。
当MCU 处于保护模式时,芯片的调试模式是被禁止的。这个独立的背景调试控制器仍然用于背景存储器
访问命令,但是,MCU 不会进入背景调试模式,除非在复位的上升沿,保持BKGD/MS 引脚低电平。
用户可以通过8 字节的后门密钥来允许或者禁止安全机制。如果NVOPT 或者FOPT 中的非易失性位
KEYEN 是0,后门密钥是无效的,这时如果没有擦除整个的flash 就没有方法离开保护模式。如果KEYEN 是
1,一个在保护模式下的用户程序可以通过以下的方法暂时离开保护模式:
• 将FCNFG 的KEYACC 位置1。这使flash 模块将后门密钥地址(NVBACKKEY 到NVBACKKEY+7)
写入的数据解释为比较密钥,而不是flash 写入或擦除的第一步。
• 向NVBACKKEY 到NVBACKKEY+7 的位置依次写入8 字节的用户进入密钥值。写入顺序为
NVBACKKEY 开始,NVBACKKEY +7 结束。STHX 不在这些写入中使用,因为这些写入不能在一
个邻近的总线周期完成。通常,用户程序可以从MCU 系统外部通过一个通讯接口( 如SCI) 获得该密
钥。
• 将FCNFG 的KEYACC 位置0,如果用户写入的8 字节和其在flash 之中的8 字节位置是匹配的,
MCU 将SEC01:SEC00 改写成1:0,在下次复位前都会保护模式被取消。
安全密钥只能从保护存储器(RAM 或flash)写入。如果没有保护用户程序的协调不能由背景调试命令
进入。
后门密钥(NVBACKKEY 到NVBACKKEY+7) 分布在flash 存储器的非易失性寄存器空间中,因此用户可
以象写其他flash 寄存器一样写这些寄存器。这个非易失性的寄存器与复位和中断向量一起都位于同样的一块
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
512 字节的flash 存储区域中,所以块保护这块区域也就保护了后门密钥。块保护不能通过用户的应用程序改
变,因此,如果向量空间是块保护空间,这个后门安全密钥机制永远不能改变块保护、安全设置和后门密钥。
安全模式可以通过背景调试接口按照下面的步骤来消除:
• 通过写FPROT 来使块保护失效,FPROT 只能通过背景调试命令来写,而不是通过应用软件。
• 如果需要可以整体擦除flash 存储器。
•
flash 的空白检测,如果flash 被完全擦除,安全模式被禁止直到下一次复位。
为了避免下一次复位时返回安全模式,置NVFOPT 的SEC01:SEC00=1:0。
4.6
Flash 寄存器和控制位
Flash 模块有9 个8 位的寄存器位于高地址页寄存器空间,3 个位于flash 存储器的非易失性寄存器空间,
当复位时,内容被复制到3 个相应的高页区域的控制寄存器。同样也有一个8 字节的密钥在flash 存储器中。
表 4-3 和表 4-4 列出了所有flash 寄存器的绝对地址。这里通过这些寄存器和控制位的名称来引用它们。通
常,Freescale 提供一个头文件把它们的名称翻译为绝对地址。
4.6.1
Flash 时钟分频寄存器(FCDIV)
该寄存器的第7 位是一个只读状态标志位。第0 位到第6 位在任何时候都可以被读,但只能写一次。在
进行任何擦除或写入操作之前,向该寄存器写入内容用以设置有效范围内非易失性存储系统时钟的频率。
7
6
5
4
3
2
1
0
读
写
DIVLD
PRDIV8
DIV5
DIV4
DIV3
DIV2
DIV1
DIV0
复位
0
0
0
0
0
0
0
0
= 未使用或者保留
图 4-5. flash 时钟分频寄存器(FCDIV)
表4-6. FCDIV 寄存器域描述
描述
域
时钟分频加载位——这个只读标志位被置位时,表示FCDIV 寄存器在复位后已经被写过了。复位清零该位且第
一次向该寄存器写入导致该位置位不管数据是否写入。
7
DIVLD
0 复位后,FCDIV 没有被写过,不可以对flash 进行擦除和写入操作。
1 复位后,FCDIV 已经被写过,可以对flash 进行擦除和写入操作。
Flash 预分频设置位
1 flash 分频器的时钟输入是总线时钟频率的八分之一。
0 flash 分频器的时钟输入是总线时钟频率。
6
PRDIV8
时钟分频位——flash 时钟分频器通过DIV5:DIV0 这六位加上1 的值来对总线时钟频率( 或者当PRDIV8=1 时是
总线时钟频率的八分之一) 进行分频。在对flash 进行操作时,内部时钟必须降到150KHz~200KHz。擦除/ 写
入操作的时序脉冲是内部flash 工作时钟的一个时钟周期,所以擦/ 写的时间相应的在6.7 μs~5 μs。自动的写入
逻辑使用这个时钟周期的整数倍时间完成擦除或写入操作。参考等式 4-1,等式 4-2 和表 4-7。
5:0
DIV[5:0]
如果PRDIV8=0,则fFCLK=fBus ÷([DIV5:DIV0]+1)
公式 4-1
公式 4-2
如果PRDIV8=1,则fFCLK=fBus ÷(8 ×([DIV5:DIV0]+1))
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表 4-7 列出了对PRDIV8 和DIV5:DIV0 设置不同数值时的flash 时钟频率。
表4-7. Flash 时钟分频器设置
PRDIV8
( 二进制)
DIV5:DIV0
( 十进制)
擦除/ 写入脉冲时间
( 最少5 μs, 最多6.7 μs)
fBus
fFCLK
20 MHz
10 MHz
8 MHz
1
0
0
0
0
0
0
0
12
49
39
19
9
192.3 kHz
200 kHz
200 kHz
200 kHz
200 kHz
200 kHz
200 kHz
150 kHz
5.2 μs
5 μs
5 μs
4 MHz
5 μs
2 MHz
5 μs
1 MHz
4
5 μs
200KHz
150KHz
0
5 μs
0
6.7 μs
4.6.2
Flash 选项寄存器(FOPT 和NVOPT)
复位时,非易失性的NVOPT 的内容从flash 拷贝到FOPT。第2 到5 位为无效位,读时一直为0。该寄
存器在任何时刻可读,但是写入没有任何影响。为了改变这个寄存器的值,象平常一样擦除或者写入flash 存
储器中的NVOPT 位置,然后执行MCU 复位。
7
6
5
4
3
2
1
0
读
写
KEYEN
FNORED
0
0
0
0
SEC01
SEC00
复位
在复位时,这个寄存器从非易失性区域NVOPT 中装载
= 未使用或保留
图 4-7. Flash 选项寄存器(FOPT)
表4-8. FOPT 寄存器域描述
描述
域
后门密钥机制使能——当这位为0 时,后门密钥机制不可用于离开保护模式。后门密
钥机制只能被保护的用户固件使用。BDM 命令不能用于改变密钥的值。更多的后门
密钥机制的描述见 4.5 节 保护机制。
7
0 禁止flash 保护密钥。
KEYEN
1 如果用户固件写的一个8 字节值与非易失性的后门密钥即
NVBACKKEY~NVBACKKEY+7 相匹配,保护模式暂时失效直到下一次MCU 复
位。
向量重定向禁止位——该位为1 时,向量重定向不可用。
0 向量重定向使能。
1 向量重定向禁止。
6
FNORED
保护状态码——这两位决定MCU 的保护状态,详见表 4-9。当MCU 在保护模式时,
flash 和RAM 的内容不能被任何来自非法源( 包括背景调试接口) 的指令访问。保护
模更详细的信息参见 4.5 节 保护机制。
1:0
SEC0[1:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表4-9. 保护状态码
SEC01:SEC00
描述
0:0
0:1
1:0
1:1
保密的
保密的
非保密的
保密的
在一次成功的后门密钥进入或flash 空白检测后SEC01:SEC00 变为1:0。
4.6.3
flash 配置寄存器(FCNFG)
第5 位到第7 位可以在任何时间被读写。第0 位到第4 位通常读为0 且不能被写。
7
6
5
4
3
2
1
0
读
写
0
0
0
0
0
0
0
KEYACC
复位
0
0
0
0
0
0
0
0
= 保留或者未使用
图 4-8. flash 配置寄存器(FCNFG)
表4-10. FCNFG 寄存器域描述
域
描述
写访问密钥允许位——该位使能写访问密钥。更详细的描述见 4.5 节 保护机制。
0 写$FFB0 –$FFB7 被认为是flash 写入或擦写命令的开始。
1 写NVBACKKEY($FFB0 –$FFB7) 被认为是进行密码比较。
5
KEYACC
4.6.4
Flash 保护寄存器(FPROT 和NVPROT)
复位期间,非易失NVPROT 的内容从flash 拷贝到FPROT。该寄存器在任何时刻可读,如果
FPDIS=0,保护可以加强,例如更小的FPS 值可以被写入。如果FPDIS=1,写入不能改变保护。
7
6
5
4
3
2
1
0
读
写
FPS(1)
FPDIS(1)
复位
在复位时,这个寄存器从非易失性区域NVOPT 中装载。
1
背景命令可以改变FPROT 寄存器中的这些位
图 4-9. Flash 保护寄存器(FPROT)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表4-11. FPROT 寄存器域描述
域
描述
7:1
FPS[7:1]
Flash 保护区域选择——当FPDIS = 0,这7 位决定在高地址位的flash 末端的未被保护flash 区域的末地址,
受保护的flash 区域不可被擦写。
Flash 保护禁止位
0 禁止flash 块保护。
1 由FPS0[7:1] 决定的flash 区域被块保护( 不允许写入和擦除)。
0
FPDIS
4.6.5
Flash 状态寄存器(FSTAT)
第0,1,3 位一直读为0 且对它的写入都是无效且没有意义的。剩下的五位都是状态位,它们任何时刻
都是可读的。向这些位写入是有特殊的意义的,这些意义在下面描述。
7
6
5
4
3
2
1
0
读
写
FCCF
0
FBLANK
0
0
FCBEF
FPVIOL
FACCERR
复位
1
1
0
0
0
0
0
0
= 未使用或保留
图 4-10. flash 状态寄存器(FSTAT)
表4-12. FSTAT 寄存器域描述
描述
域
Flash 命令缓冲区空标志位——FCBEF 位通常用来开始命令。在执行突发写入时,FCBEF 位标记命令缓冲区
为空,一个新的命令序列可以被执行。向FCBEF 位写1 或一个突发写入命令进入写入数组可以清FCBEF
位。只有突发写入命令可以被缓冲。
7
FCBEF
0 命令缓冲区满(不能被另外的命令使用)。
1 可以写入新的突发写入命令到命令缓冲区。
Fash 命令完成标志位——当命令缓冲区为空而且没有命令正被处理,FCCF 自动置位。当一个新的命令开始
(通过置1FCBEF 来存入命令),FCCF 自动清零。对FCCF 的写操作没有意义。
6
FCCF
0 命令处理中。
1 所有的命令都已经完成。
保护标志位——当FCBEF 位被清除来存入一个擦写命令试图访问保护区域时,FPVIOL 位自动置1( 这个错误
命令被忽略)。向FPVIOL 写1 可以自动清FPVIOL。
0 表示侵犯保护区域。
5
FPVIOL
1 表示试图对保护区域进行擦写操作。
访问出错标志位——当正常的命令序列没有正确的执行时(错误的命令被忽略),在FCDIV 寄存器初始化之
前尝试擦除或者写入操作;或者当命令正在处理时MCU 进入停止模式,FACCERR 被置位。会引起访问出错
的行为的详细讨论见 4.4.5 节 访问错误。向 FACCERR 位写1 将清FACCERR,向 FACCERR 写入0 是没有
意义和无效的。
4
FACCERR
0 没有访问错误发生。
1 表示一个访问错误已经发生。
Flash 空白标志位——如果执行空白检测命令检测到整个flash 都是被擦除的,FBLANK 位将自动置位。通过
清除FCBEF 来写入一个新的命令可以清FBLANK 位。向该位写入是没有意义和无效的。
0 一个空白检测命令完成之后且FCCF=1,FBLANK=0 表示flash 是非空。
2
FBLANK
1 一个空白检测命令完成之后且FCCF=1,FBLANK=1 表示flash 是空的,即所有的字节为$FF。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
4.6.6
Flash 命令寄存器(FCMD)
在正常用户模式中,只有5 个命令代码可以被识别,见表 4-14。flash 的写入,擦除和空白检测操作
见 4.4.3 节 写入和擦除命令的执行。
7
6
5
4
3
2
1
0
读
写
0
0
0
0
0
0
0
0
FCMD7
0
FCMD6
0
FCMD5
0
FCMD4
0
FCMD3
0
FCMD2
0
FCMD1
0
FCMD0
0
复位
图 4-11. Flash 命令寄存器(FCMD)
表4-13. FCMD 寄存器域描述
描述
域
7:0
FCMD[7:0]
Flash 命令位——参见表 4-14。
表4-14. Flash 命令
FCMD
命令
等价的文件标志
mBlank
$05
$20
$25
空白检测
字节写入
mByteProg
mBurstProg
mPageErase
mMassErase
字节写入-快速模式
页擦除(每页512 字节)
整体擦除( 整个flash)
$40
$41
所有其他的命令都是非法的并且产生一个访问错误。
整体擦除操作之后没有必要去执行空白检测命令。只有当作为安全解锁机制的一部分时空白检测命令才
是需要的。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
第5 章 复位、中断和系统配置
5.1
简介
本章介绍了基本的复位和中断机制以及大部分MC9S08AC16 系列的各种复位和中断源,一些来自外设模
块的中断源在本手册的其他章节会做详细介绍,本章汇总了所有复位和中断源信息以方便参考。有些复位和中
断源,如系统正常操作监视模块(COP) 看门狗和定期中断定时器,不属于片上外设系统的部分,它们有单独
的章节,但是系统控制逻辑的一部分。
5.2
特征
复位和中断特征包括:
• 多种复位源使系统配置灵活和操作可靠:
• 上电复位(POR)
• 使能低压检测(LVD)
• 外部RESET 引脚
•
COP 看门狗使能和两个溢出时间选择
• 非法操作码
• 非法地址
• 背景调试主机发的连续命令
• 复位状态寄存器(SRS) 指出最近一次发生复位的原因
• 每个模块独立的中断向量( 减少查询的开销) (参见表 5-11)
5.3
MCU 复位
复位提供一种从已知的初始条件设置来启动处理的方法。在复位期间,大部分控制和状态寄存器都设为
复位默认值,从0xFFFE ~0xFFFF 取出两字节的复位向量送到程序计数器PC。片上外设模块不可用,I/O
引脚初始化设为通用的高阻抗输入引脚无上拉。条件码寄存器(CCR) 的I 位被置位来屏蔽中断,所以用户程
序有机会初始化堆栈指针(SP) 和系统控制设置。复位时,SP 被强制设为$00FF。
MC9S08AC16 系列包括下列复位源:
• 上电复位(POR)
• 低压检测(LVD)
• 计算机正常操作监控模块(COP)定时器
• 非法操作码检测
• 非法地址检测
• 背景调试强制复位
• 复位引脚(RESET)
• 时钟发生器失锁和丢失时钟复位
除了背景调试强制复位,每个源对应系统复位状态寄存器相应位。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
5.4
计算机正常操作监控模块(COP) 看门狗
当应用程序没有按照预期执行时,COP 看门狗会强制系统复位。为了防止COP 复位( 当COP 被使能),
应用软件必须周期性地复位COP 定时器。如果应用软件在COP 定时器溢出前忘记或者没有复位COP,就会
产生一个系统复位信号使系统回到可知的开始点。
在任何一个复位之后,置位SOPT 寄存器( 更多信息见 5.9.4 节 系统选项寄存器(SOPT)) 的COPE 位来
使能COP 看门狗。如果在应用中不使用看门狗,清COPE 位来禁止看门狗。写任意值到SRS 可以复位COP
计数器。写入操作不影响只读SRS 的数据。相反地,写入操作被解码并向COP 计数器发送一个复位信号。
SOPT2 寄存器的COPCLKS 位(更多信息见 5.9.10 节 系统系统选项寄存器2 (STOP2))选择用于
COP 定时器的时钟源。时钟源选项是总线周期或内部的1 kHz 时钟源。每个时钟源有相应的短和长溢出,由
SOPT 的COPT 控制。表 5-1 总结了COPCLKS 和COPT 位的控制功能。COP 看门狗默认操作是总线时钟
源和相应的长溢出(218 周期)。
表5-1. COP 配置选项
控制位
时钟源
COP 溢出计时
COPCLKS
COPT
25 周期(32 ms)
28 周期(256 ms)
213 周期
0
0
1
1
0
1
0
1
~1kHz
~1kHz
总线
总线
218 周期
表中数据基于tRTI = 1 ms 计算的。关于tRTI 以及表中数据的允许误差,参考附件A.10.1 ¾⁄ øÿ÷ýþ±–Ú。
即使应用程序使用COPE、COPCLKS 和COPT 的默认复位设置,在复位初始化时,用户仍应该向一次
性写入的SOPT 寄存器写入,来锁存这些设置,这样即使应用程序跑飞也不会被意外的改变。对SOPT 和
SOPT2 将会设置COP 计数器。
对SRS 的写入( 清零COP 定时器) 不能放到中断服务程序(ISR) 里,因为即使主程序失败,ISR 可能仍
会周期性地执行。
在背景调试模式下,COP 计数器不能增加。
选择总线时钟源后,当系统处于停止模式时COP 计数器不能增加。MCU 一退出停止模式COP 计数器就
重新开始。
选择1 kHz 源后,当系统进入停止模式时COP 计数器重新初始化为0。MCU 一退出停止模式COP 计数
器就开始计数。
5.5
中断
中断提供了一种方法来保存当前CPU 状态和各寄存器内容,执行中断服务例程(ISR),然后恢复CPU 状
态使处理器从中断发生的地方继续执行。这不同于软件中断(SWI),SWI 是一条程序指令,而这种中断都是由
IRQ 引脚边缘触发或者定时器溢出等硬件事件引起的。在特定环境下调试模块也能产生SWI 软中断。
如果一个可用中断源中一个事件发生,一个相关的只读状态标志位将被置位。当本地中断屏蔽位被置为
1( 使能中断) 时CPU 才会对这个事件作出反应。CCR 的I 位为0 允许中断。CCR 的中断屏蔽位(IMASK) 在
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
复位后被置位可以屏蔽所有的中断源。这样在清这一位以允许CPU 响应中断之前就可以让用户程序初始化堆
栈指针并执行其他系统设置。
当CPU 接收到一个有效的中断请求时,它在完成当前的指令以后响应此中断。中断的执行过程就像SWI
指令的一个周期一个周期的执行顺序一样,包括以下步骤:
• 在堆栈中保存CPU 寄存器;
• 将CCR 中的I 位置位来屏蔽中断;
• 取出当前等待的最高优先级的中断向量;
• 用从中断向量地址处取得的前三个字节的程序信息来填充指令队列;
当CPU 响应中断时,I 位自动置位以防止其他的中断进入而打断ISR( 称为嵌套中断)。通常状态下,当
CCR 恢复到进入ISR 前堆栈保留的值,I 位回复到0。在很特殊的情况下,处于ISR 时I 位可能会被中断清零
(清零后可以产生中断)让其他中断程序可以在不等待第一个中断服务程序结束后就先执行。这种做法不被推
荐,除非是非常有经验的编程人员,否则会导致一些难以调试的小程序错误。
中断服务程序由RTI 指令结束,用先前保存在堆栈中的值来恢复CCR、A、X 及PC 寄存器为中断前的
值。
注意
为了能够和HCS08 兼容,H 寄存器是不会自动的保存和恢复的。因此,好的编程
习惯是:在中断服务例程(ISR) 开始时将H 压栈,在ISR 返回指令RTI 前将其恢
复。
当I 位清零导致两个或更多中断挂起时,高优先级的中断首先响应(参见表 5-2)。
5.5.1
中断堆栈结构
图 5-1 显示了堆栈结构的内容和组织形式。中断之前,堆栈指针(SP) 指向堆栈的下一个可用的位置。
CPU 寄存器的当前值被储存在堆栈中。依次保存的是从程序计数器中低地址位(PCL) 开始到CCR 结束的部
分,在这些寄存器入栈以后,SP 指向堆栈中的下一个可用位置,这个地址是CCR 被保存的地址的低一个地
址。入栈的PC 值是主程序中的若中断没有发生所要执行的下一个指令的地址。
出栈顺序
低地址方向
7
0
中断入栈后的SP
中断入栈前的SP
5
4
3
2
1
1
2
3
4
5
CCR寄存器
累加器
*
变址寄存器的低字节X*
程序计数器的高字节
程序计数器的低字节
高地址方向
入栈顺序
*变址寄存器的高半字节(H)没有入栈
图 5-1. 中断堆栈框架
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
当一条RTI 指令被执行时,这些值都就会按照出栈的顺序从堆栈中恢复过来。作为RTI 序列的一部分,
CPU 通过读取三个字节的程序信息来装满流水线,从由堆栈中恢复的PC 地址开始。
由中断触发所修改的状态标志必须在ISR 返回前清除。一般地,这个标志应该在ISR 开始时清零,这样
另一个同源中断发生时,该状态标志可以记录这个事件,使得在完成当前ISR 后,该事件可被响应。
5.5.2
外部中断请求(IRQ) 引脚
外部中断被IRQSC 状态和控制寄存器管理。当IRQ 功能可用,同步逻辑监控引脚是边沿触发还是边沿/
电平触发。当MCU 处于停止状态并且系统时钟被关闭时,IRQ( 如果被使能) 通过异步通道可以将MCU 从停
止模式唤醒。
5.5.2.1
引脚配置选项
为了将引脚中断请求(IRQ) 输入,寄存器IRQSC 的IRQ 引脚使能控制位(IRQPE) 必须设为1。作为
IRQ 输入时,用户可以选择检测的边沿和电平的极性(IRQEDG),不论仅是边沿检测还是边沿和电平同时检
测,事件发生时是直接触发中断还是只置IRQF 标志,待软件处理。
当IRQ 引脚使能时默认使用内部的上拉/ 下拉设备(IRQPDD=0),是上拉还是下拉由选择的极性决定。
如果用户需要使用外部上拉或下拉,向IRQPDD 写1 关闭内部设备。
BIH 和BIL 指令可能在引脚设为IRQ 输入时被用做侦测IRQ 引脚的电平。
注意
引脚到V 不包含箝位二极管,因此不能输入超过V 的电压。上拉IRQ 引脚标
DD
DD
准电压必须低于V –0.7V。所有与该引脚相连的内部始终与V 相连。
DD
DD
当使能IRQ 使用时,IRQF 被置位,而且应该在使能中断之前清零。在一个5 V 的
系统中,当配置引脚为下降沿而且电平触发,有必要在清标志位和使能中断之间等
待6 个周期。
5.5.2.2
边沿/ 电平触发
IRQMOD 控制位重新配置检测逻辑,所以它负责检测时间和引脚电平。在边沿和电平检测模式下,当检
测到一个边沿(当IRQ 引脚从非指定的变成指定电平时)IRQF 状态标志位被置位,但只要IRQ 引脚保持在
指定电平,这个标志位持续置位。
5.5.3
中断向量、中断源和局部屏蔽
表 5-2 给出了所有中断源的摘要。高优先级的源被定位在表的底部。中断服务程序的高地址字节被定位到
向量地址列的首地址,中断服务程序的低地址字节被定位在向量地址列的下一个更高地址。
当中断条件发生,相关的标志位被置位。如果该相关的中断使能位为1,则中断请求发送到CPU。在
CPU 的内部,如果全局中断屏蔽位为0(CCR 的I 位),CPU 将完成当前的指令,然后将CPU 寄存器PCL、
PCH、X、A 和CCR 入栈,I 位置位,然后取最高中断优先级的中断向量。然后到中断服务程序中处理。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表5-2. 中断概述
向量名称 模块
不可用的向量空间( 对用户程序不可用)
中断优先级 中断号
地址( 高/ 低)
源
使能位
描述
29-31
0xFFC0/FFC1-
0xFFC4/FFC5
从
低
到
高
28
27
26
25
24
23
22
21
0xFFC6/FFC7
0xFFC9/FFC9
0xFFCA/FFCB
0xFFCC/FFCD
0xFFCE/FFCF
0xFFD0/FFD1
0xFFD2/FFD3
0xFFD4/FFD5
Vtpm3ovf
Vtpm3ch1
Vtpm3ch0
Vrti
TPM3
TPM3
TPM3
TOF
CH1F
CH0F
RTIF
TOIE
CH1IE
CH0IE
RTIE
TPM3 溢出
TPM3 通道1
TPM3 通道0
实时中断中断
IIC1
系统控制
IIC
Viic
IICIS
COCO
KBF
IICIE
Vatd
ATD
AIEN
KBIE
ADC
Vkeyboard
Vsci2tx
KBI
键盘引脚
SCI2
TDRE
TC
TIE
SCI2 发送
TCIE
20
19
0xFFD6/FFD7
0xFFD8/FFD9
Vsci2rx
SCI2
SCI2
IDLE
RDRF
ILIE
RIE
SCI2 接收
SCI2 错误
Vsci2err
OR
NF
FE
ORIE
NFIE
FEIE
18
17
16
0xFFDA/FFDB
0xFFDC/FFDD
0xFFDE/FFDF
Vsci1tx
Vsci1rx
Vsci1err
SCI1
SCI1
SCI1
TDRE
TC
TIE
TCIE
SCI1 发送
SCI1 接收
SCI1 错误
IDLE
RDRF
ILIE
RIE
OR
NF
FE
ORIE
NFIE
FEIE
15
0xFFE0/FFE1
Vspi
SPI
SPIF
MODF
SPTEF
SPIE
SPIE
SPTIE
SPI
14
13
12
11
10
9
0xFFE2/FFE3
0xFFE4/FFE5
0xFFE6/FFE7
0xFFE8/FFE9
0xFFEA/FFEB
0xFFEC/FFED
0xFFEE/FFEF
0xFFF0/FFF1
0xFFF2/FFF3
0xFFF4/FFF5
0xFFF6/FFF7
Vtpm2ovf
Vtpm2ch1
Vtpm2ch0
Vtpm1ovf
TPM2
TPM2
TPM2
TPM1
TOF
CH1F
CH0F
TOF
TOIE
CH1IE
CH0IE
TOIE
TPM2 溢出
TPM2 通道1
TPM2 通道0
TPM1 溢出
不可用的向量空间
不可用的向量空间
CH3F
8
Vtpm1ch3
Vtpm1ch2
Vtpm1ch1
Vtpm1ch0
Vicg
TPM1
TPM1
TPM1
TPM1
ICG
CH3IE
CH2IE
CH1IE
CH0IE
TPM1 通道3
TPM1 通道2
TPM1 通道1
TPM1 通道0
ICG
7
CH2F
6
CH1F
5
CH0F
4
ICGIF
LOLRE/LOCRE
(LOLS/LOCS)
3
2
1
0
0xFFF8/FFF9
0xFFFA/FFFB
0xFFFC/FFFD
0xFFFE/FFFF
Vlvd
Virq
LVDF
IRQF
LVDIE
IRQIE
—
系统控制
低电压检测
IRQ 引脚
软件中断
IRQ
Vswi
Vreset
SWI Instruction
核
COP
LVD
RESET pin
COPE
LVDRE
—
系统控制
看门狗定时器
低电压检测
外部引脚
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
5.6
低电压检测系统(LVD)
MC9S08AC16 系列包含一个预防低电压的保护系统,在电压变更时用来保护存储器的内容和控制MCU
系统状态。这个系统是由一个上电复位(POR) 电路和一个LVD 电路( 用户选择触发电压,高电压VLVDH 或
者低电压VLVDL)。当SPMSC1 的LVDE 为高并且触发电压通过SPMSC2 的LVDV 位被选择时,LVD 电路
被激活。如果LVDSE 位没有被置位,停止模式中不能使用LVD。如果LVDSE 和LVDE 都被置位,则MCU
不能进入停止模式1 和停止模式2,并且由于LVD 被激活的停止模式3 的功耗将会变大。
5.6.1
上电复位操作
当MCU 刚通电时,或者当供应电压降落到VPOR 以下时,POR 电路将会产生一个复位条件。随着供应
电压的升高,LVD 电路将保持芯片在复位状态直到供电电压升高到大于VLVDL。伴随着上电复位,SRS 的
POR 位和LVD 位都将被置位。
5.6.2
LVD 复位操作
此时LVD 能被设置为在侦测到一个低电压条件时( 即LVDRE 为1 时) 产生一个复位。LVD 复位发生后,
LVD 系统将会保持MCU 在复位状态直到供应电压升高到高于由LVDV 设定的电压。伴随着LVD 复位或者上
电复位,SRS 寄存器的LVD 位将被置位。
5.6.3
LVD 中断操作
当一个低电压条件被侦测到,并且LVD 电路被设置为中断操作(LVDE 置位,LVDIE 置位,LVDRE 清零
),然后LVDF 将会被置位且一个LVD 中断将发生。
5.6.4
低电压警告(LVW)
LVD 系统有一个低电压警告标志位用以告诉用户供应电压已经接近LVD 电压,但是目前还在LVD 电压以
上。LVW 没有与此相关的中断。LVW 有两个触发电压可供选择,高的VLVWH 和低的VLVWL。触发电压通过
SPMSC2 寄存器的LVWV 位选择。不推荐设置LVW 触发电压等于LVD 触发电压。LVW 的典型使用是选择
V
LVWH 和VLVWL
5.7
实时中断(RTI)
实时中断功能经常用来产生定期中断。RTI 接受两个时钟源,1 kHz 内部时钟源或外部时钟。1 kHz 内部
时钟源完全独立于任何总线时钟源,只被用于RTI 模块,在某些MCU 中也可用于COP 看门狗。使用外部时
钟源,它必须可用而且可行。SRTISC 的RTICLKS 位是用来选择RTI 时钟源。
MCU 在运行、等待或stop3 模式下,其中一个RTI 时钟源可以使用。当在stop3 下使用外部晶振,必须
在stop 下使能(OSCSTEN=1)而且配置为低带宽操作(RANGE=0)。从stop2 模式下唤醒MCU 只能选
择1 kHz 内部时钟源。
寄存器SRTISC 包括一个只读状态标志位,一个只写确认位,和一个3 位的控制值(RTIS2:
RTIS1:RTIS0),该3 位用于禁止实时中断的时钟源或者选择7 个唤醒延迟时间中的一个。RTI 的本地中断使
能RTIE 可用于屏蔽实时中断。写RTIS 的每位为0 禁止RTI,将没有中断产生。5.9.7 节 系统实时中断状态
和控制寄存器(SRTISC),给出了各寄存器的细节信息。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
5.8
MCLK 输出
PTC2 和MCLK 时钟输出共享引脚。置位引脚使能位MPE,PTC2 引脚输出内部MCU 总线时钟的除数。
除数由MCSEL 位决定。当MPE 置位,PTC2 引脚强制为输出引脚除非这个引脚用于端口数据控制位的状
态。如果MCSEL 位全0,引脚为低。引脚的输出斜率和驱动强度分别由PTCSE2 和PTCDS2 控制。如果输
出斜率控制使能,最大时钟输出频率被限制,输出斜率使能时引脚上升和下降的时间参见电气章节。
5.9
复位、中断以及系统控制寄存器和控制位
涉及到复位和中断系统的寄存器有一个在直接页寄存器区的8 位寄存器,8 个在高地址页寄存器区的8 位
寄存器。
寄存器绝对地址的分配参见本手册的第4 章片上存储器有关片上存储器直接页寄存器的介绍。本节通过
名称来引用各寄存器和控制位,Freescale 提供的通用文件或头文件习惯将这些名称转化为相应的绝对地址。
SOPT 和SPMSC2 寄存器的一些控制位涉及到操作的模式。这里只提供那些位的简要描述,而相关函数
在第3 章工作模式里有更加详细的论述。
5.9.1
中断请求状态和控制寄存器(IRQSC)
直接页寄存器包括2 个总是读为0 的无效位,4 个可读写位,一个只读状态位,和一个只写位。这些位都
是被用于设置IRQ 功能,报告状态和确认IRQ 事件。
7
6
5
4
3
2
1
0
0
IRQF
0
读
写
IRQPDD
IRQEDG
IRQPE
IRQIE
IQRMOD
IRQACK
0
0
0
0
0
0
0
0
复位
= 保留或未使用
表5-3. 中断请求状态和控制寄存器(IRQSC)
表5-4. IRQSC 寄存器域描述
域
描述
中断请求上下拉设备禁止位——当IRQ 引脚被使能允许使用外部设备,这个可读写控制位用来禁止内部上拉或
下拉设备。
6
IRQPDD
0 如果IRQPE=1,IRQ 上下拉设备允许。
1 如果IRQPE=1,IRQ 上下拉设备禁止。
中断请求(IRQ) 边沿选择——这个可读写控制位用来选择导致IRQF 被置位的IRQ 引脚的边沿极性或者电平。
IRQMOD 控制位决定IRQ 引脚是边沿/ 电平触发还是仅仅为边沿触发。当IRQ 引脚作为IRQ 输入引脚使能,
并且设置为侦测引脚上升沿时,引脚选择下拉电阻。当IRQ 引脚作为IRQ 输入引脚使能,并且设置为侦测引
脚下降沿时,引脚选择上拉电阻。
5
IRQEDG
0 下降沿或者下降沿/ 低电压触发。
1 上升沿或者上升沿/ 高电压触发。
IRQ 引脚使能——这个可读写控制位使能IRQ 引脚功能。当这位被置位,IRQ 引脚能被用做一个中断请求。
0 IRQ 引脚功能不可用。
1 IRQ 引脚功能可用。
4
IRQPE
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表5-4. IRQSC 寄存器域描述 (续)
域
描述
IRQ 标志位——当一个中断请求事件发生时该只读位被置位。
0 没有IRQ 请求。
1 侦测到IRQ 事件。
3
IRQF
2
IRQ 确认——这个只写位被用于确认中断请求事件( 写1 清IRQF 位)。写0 表示没有意义或无影响。读其通
常为0。如果选择边沿/ 电平侦测(IRQMOD=1),当IRQ 引脚还保持它的电平时IRQF 不能被清零。
IRQACK
IRQ 中断使能——这个可读写控制位决定IRQ 事件是否产生中断请求。
0 IRQF 置位不产生中断请求(使用软件查询)。
1 IRQF=1 时产生中断请求。
1
IRQIE
IRQ 监控模式——该可读写控制位选择是边沿/ 电平触发还是边沿触发。IRQED 控制位决定触发中断请求事件
的边沿和电平的极性。5.5.2.2 节 边沿/ 电平触发有更加详细的介绍。
0 仅在下降沿或者上升沿时IRQ 事件触发。
0
IRQMOD
1 在下降沿和低电压,或者上升沿和高电压时IRQ 事件触发。
5.9.2
系统复位状态寄存器(SRS)
这个寄存器包括用于指示最近复位源的7 个只读标志位。当一个调试器通过向SBDFR 寄存器的BDFR
位写入1 强制复位时,SRS 的各标志位都不会被置位。向该寄存器地址写入任意值可清零COP 看门狗计数
器但不影响寄存器的内容。这些位的复位状态取决于MCU 复位的原因。
7
6
5
4
3
2
1
0
POR
PIN
COP
ILOP
0
ICG
LVD
0
读
写
向该寄存器地址写入任意值可清零COP 看门狗计数器
1
U
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
上电复位
低电压复位
其他复位
(1)
(1)
(1)
(1)
U= 不被复位影响
在复位时任何有效的复位源都将导致相应的位被置位。同时其他位被清零。
1
表5-5. 系统复位状态(SRS)
表5-6. SRS 寄存器域描述
描述
域
上电复位——复位是由上电检测逻辑引起。因为内部供应电压在这个时候发生跳跃,低电压复位(LVD) 状态位也
被置位,用以表明当内部供应电压下降到LVD 限度时复位发生。
0 复位不是由POR 引起。
7
POR
1 复位由POR 引起。
外部复位引脚——复位由在外部复位引脚上产生的有效低电压而引发。
0 复位不是由外部复位引脚引发。
1 复位由外部复位引脚引发。
6
PIN
计算机正常操作监控(COP) 看门狗——复位因看门狗定时器溢出而引发。复位源可通过COPE=0 锁住。
0 复位不是由COP 时间溢出而引起。
1 复位原因是COP 时间溢出。
5
COP
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表5-6. SRS 寄存器域描述
域
描述
非法操作码复位——由非法操作码而引起的复位。如果stop 被通过设置SOPT 寄存器的STOPE=0 而设为不可用
的,则STOP 指令被认为是非法操作。如果主动背景调试模式通过设置BDCSC 寄存器中的ENBDM=1 设为不可
用,则BGND 指令被认为是非法操作。
4
ILOP
0 复位不是由非法操作码引起。
1 复位由非法操作码引起。
非法操作码复位——由访问未指定的非法地址而引起的复位。
0 复位不是有访问非法地址引起。
1 复位是有访问非法地址引起。
3
ILAD
MC9S08AC16 的非法地址区域:
0x0470-0x17FF——从RAM 的最后到高页寄存器的开始的区域。
0x1860-0xBFFF——从高页寄存器的开始到Flash 的开始的区域。
寄存器区域中未使用和保留的地址不被认为是非法地址也不会触发非法地址中断。
内部时钟发生模块复位——复位由ICG 模块引起。
0 复位不是由ICG 引起。
1 复位由ICG 引起。
2
ICG
低电压触发复位——如果LVD 复位可用(LVDE=LVDRE=1) 且供应电压下降到低于LVD 临界电压,就会产生LVD
复位。该位由POR 置位。
1
LVD
0 复位不是由LVD 或POR 而引起的。
1 复位由LVD 或者POR 引起。
5.9.3
系统背景调试强制复位寄存器(SBDFR)
这个寄存器包括一个只写控制位。一个连续背景命令例如WRITE_BYTE 必须被写入SBDFR。系统忽略
应用程序对该寄存器的写入。读始终返回0x00。
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
读
写
BDFR1
0
0
0
0
0
0
0
0
复位
1
BDFR 只能通过背景调试命令而不能通过用户程序写入
图 5-2. 系统背景调试强制复位寄存器(SBDFR)
表5-7. SBDFR 寄存器域描述
域
描述
0
背景调试强制复位——一个连续的背景调试模式命令例如WRITE_BYTE 允许一个外部调试器强制目标系统复位。
向该位写1 可强制MCU 复位。但用户程序不可写该位。
BDFR
5.9.4
系统选项寄存器(SOPT)
这个寄存器可能在任何时间被读。第3,2 位不被用且始终为0。这是个一次可写入寄存器所以只在复位
后的第一次写入有效。任何后来的尝试向SOPT 写入都是被忽视的,用以避免敏感设置的意外变化。SOPT
应该在用户复位初始化程序期间被写入用以实现期望的控制,即使期望的设置与复位后的设置一样。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
7
COPE
1
6
5
STOPE
0
4
3
2
1
0
0
0
读
写
COPT
1
1
0
0
1
1
复位
= 保留或未使用
图 5-3. 系统选项寄存器(SOPT)
表5-8. SOPT 寄存器域描述
描述
域
COP 看门狗使能——这个一次写入位在复位后的默认值为1
0 COP 看门狗定时器不可用。
1 COP 看门狗定时器可用( 时间溢出后复位)。
7
COPE
COP 看门狗溢出时间——这个一次写入位在复位后的默认值为1
0 选择较短溢出时间。
1 选择较长溢出时间。
6
COPT
Stop 模式使能——这个一次写入位在复位后默认值为0,使得停止模式不可用。如果停止模式不可用且用户程序
试图去执行STOP 指令,将产生一个非法操作码复位。
0 Stop 停止模式不可用。
5
STOPE
1 Stop 停止模式可用。
5.9.5
系统MCLK 控制寄存器(SMCLK)
这个寄存器用于控制MCLK 时钟输出。
7
6
5
4
3
2
1
0
0
0
0
0
读
写
MPE
MCSEL
0
0
0
0
0
0
0
0
复位
= 保留或未使用
表5-9. 系统MCLK 控制寄存器(SMCLK)
表5-10. SMCLK 寄存器域描述
描述
域
MCLK 引脚使能——这个位用于使能MCLK 功能。
0 MCLK 输出禁止。
1 PTC2 引脚上MCLK 输出允许。
4
MPE
2:0
MCSEL
MCLK 分频选择——这些位用来选择
MCLK 频率= 总线频率÷(2*MCSEL)
公式 5-1
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
5.9.6
系统设备识别寄存器(SDIDH、SDIDL)
这个只读寄存器使得开发系统可以识别HCS08 的MCU 类型和修正版本号。允许开发软件识别目标
MCU 的具体存储块,寄存器和目标MCU 中的控制位。
7
6
5
4
3
2
1
0
ID11
ID10
ID9
ID8
读
写
—
—
—
—
0
0
0
0
复位
= 保留或未使用
图 5-4. 系统标识寄存器— 高(SDIDH)
7
6
5
4
3
2
1
0
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
读
写
1
1
0
1
0
0
1
1
复位
= 保留或未使用
图 5-5. 系统标识寄存器- 低(SDIDL)
表5-11. SDIDH 寄存器域描述
描述
域
7:4
保留
位7:4 被保留。读这些位将会得到不确定值;写没有影响。
3:0
ID[11:8]
识别编号。每一个HCS08 家族的派生版本都有一个唯一识别编号。MC9S08AC16 系列编码位0x012。
参见表 5-9 的ID 位。
表5-12. SDIDL 寄存器域描述
域
描述
7:0
ID[7:0]
识别编号。每一个HCS08 家族的派生版本都有一个唯一识别编号。MC9S08AC16 系列编码位0x012。参见
表 5-9 的ID 位。
5.9.7
系统实时中断状态和控制寄存器(SRTISC)
该寄存器包含一个只读状态标志位,一个只写确认位,三个可读写延时选择,和三个总是读为0 的无效
位。
7
6
5
4
3
2
1
0
RTIF
0
0
读
写
RTICLKS
RTIE
RTIS2
RTIS1
RTIS0
RTIACK
0
0
0
0
0
0
0
0
复位
= 保留或未使用
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表5-13. SRTISC 寄存器域描述
域
描述
实时中断标志位——这个只读状态位显示周期性唤醒定时器已经溢出。
0 周期性唤醒定时器未溢出。
1 周期性唤醒定时器溢出。
7
RTIF
6
实时中断确认位——这个只写位用来确认实时中断请求( 写1 可清RTIF)。向该位写0 表示没有意义且无效。
读它总为0。
RTIACK
实时中断时钟选择——该可读写位选择实时中断的时钟源。
0 实时中断请求时钟源为内部1 kHz 振荡器。
1 实时中断请求时钟源为外部时钟。
5
RTICLKS
实时中断使能——该可读写位使能实时中断
0 实时中断不可用。
1 实时中断可用。
4
RTIE
实时中断延时选择——这些可读写位选择RTI 的唤醒延时。实时中断的时钟源是一个频率为1 kHz 的自时钟
源,它独立于MCU 的其他时钟源。
使用外部时钟源,延时为通过RTIS2:RTIS1:RTIS0 分频后的晶振频率。
2:0
RTIS[2:0]
表5-14. 实时中断频率
1=kHz 的时钟源延时1
使用外部时钟延时( 晶振频率)
RTIS2:RTIS1:RTIS0
0:0:0
0:0:1
0:1:0
0:1:1
1:0:0
1:0:1
1:1:0
1:1:1
不可用的周期性唤醒定时器
不可用的周期性唤醒定时器
divide by 256
8 ms
32 ms
divide by 1024
64 ms
divide by 2048
128 ms
256 ms
512 ms
1.024 s
divide by 4096
divide by 8192
divide by 16384
divide by 32768
1
列中的值以fRTI = 1 kHz 为基准,关于这些值的规定参附录 A 电气特性和时序规范。
5.9.8
系统电源管理状态控制寄存器1(SPMSC1)
1
7
6
5
4
3
2
1
0
LVDF
0
读
LVDIE
LVDRE2
LVDSE2
LVDE(2)
写
0
0
0
1
1
1
0
0
复位
1
2
位1 是保留,必须总是写0。
这个位复位后只能写一次。其他的写入被忽略。
图 5-6. 系统电源管理状态控制寄存器1(SPMSC1)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表5-15. SRTISC 寄存器域描述
域
描述
7
低电压检测标志位——如果LVDE = 1,这个只读状态位表示一个低电压触发事件。
LVDF
6
低电压检测确认位——这个只写位用于确认低电压监控错误( 写1 可清LVDF 位)。读它总是返回逻辑0。
LVDACK
5
低电压检测中断使能——该读写位使能从LVDF 发出的硬件中断请求。
0 硬件中断请求不可用。
LVDIE
1 当LVDF=1 时请求一个硬件中断。
低电压检测复位使能——该读写位使能LVDF 错误来产生一个硬件复位( 当LVDE=1 时)。
0 LVDF 不会产生一个硬件复位
1 当LVDF=1 时强制MCU 复位
4
LVDRE
低电压检测停止使能——当LVDE=1 时,这个可读写位决定在MCU 停机模式时低电压监控功能是否可用。
0 停止模式下禁止低电压监控。
1 停止模式下允许低电压监控。
3
LVDSE
低电压检测使能——这个可读写位使能低电压检测逻辑和限定该寄存器的其他位的操作。
0 LVD 逻辑不可用。
1 LVD 逻辑可用。
2
LVDE
能带隙缓存使能位——BGBE 位用来使能用于能带隙电压的内部缓存,参考ADC 模块内部通道的使用。
0 能带隙缓存禁止。
1 能带隙缓存使能。
0
BGBE
5.9.9
系统电源管理状态和控制寄存器2 (SPMSC2)
该寄存器被用于报告低压警告功能的状态,和设置MCU 停机模式行为。
7
6
5
4
3
2
1
0
LVWF
0
PPDF
0
读
写
PPDC1
LVDV
LVWV
02
02
02
0
0
0
0
U
U
0
U
U
0
0
0
0
0
0
0
0
0
0
0
0
上电复位
LVD 复位
其他复位
U= 复位时不受影响。
1
这个位复位后只能写一次。其他的写入被忽略。
2
在复位和VSupply 已经低于VLVW 或者VSupply 在临界以下时,LVWF 会被置位
图 5-7. 系统电源管理状态和控制寄存器2 (SPMSC2)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表5-16. SPMSC2 寄存器域描述
域
描述
低电压警告标志位——该位显示低电压警告状态。
0 低电压警告没有发生。
1 低电压警告已经发生或者正在发生。
7
LVWF
6
低电压警告确认位——该位表示低电压警告确认,如果低电压警告不是正在发生,向该位写入1,使得LVWF 清
零。
LVWACK
低电压检测电压选择——该位选择LVD 临界电压(VLVD)。
0 选择较低临界电压(VLVW=VLVWL)。
1 选择较高临界电压(VLVW=VLVWH)。
5
LVDV
低电压警告电压选择——该位选择LVW 临界电压(VLVW)。
0 选择较高临界电压(VLVW=VLVWL)。
1 选择较高临界电压(VLVW=VLVWH)。
4
LVWV
局部低功耗标志位——该位显示MCU 已退出stop2 模式。
0 没有从stop2 模式恢复。
1 从stop2 模式恢复。
3
PPDF
2
局部低功耗确认位——向该位写入1 可清零PPDF 位。
PPDACK
局部低功耗控制位——这个一次性写入PPDC 位控制进入哪种低功耗模式,stop2 还是stop3。
0 stop3 模式使能。
1 stop2 模式局部低功耗使能。
0
PPDC
5.9.10 系统系统选项寄存器2 (STOP2)
高页寄存器包括设置MC9S08AC16 系列设备的具体特征的位。
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
读
写
COPCLKS1
1
0
0
0
0
0
0
0
复位
= 保留或未使用
1
这个位复位后只能写一次。其他的写入被忽略。
图 5-8. 系统系统选项寄存器2(STOP2)
表5-17. SOPT2 寄存器域描述
域
描述
COP 看门狗时钟选择位——这个一次性写入位选择COP 看门狗时钟源。
0 内部的1 kHz。
1 总线时钟源。
7
COPCLKS
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
第6 章 并行输入和输出
6.1
简介
本章解释了软件控制相关的并行输入输出(I/O)。MC9S08AC16 有7 个并行I/O 端口,总共54 个通用
I/O 引脚。关于这些引脚的逻辑和硬件方面的更多信息参见第2 章引脚及其连接。
这些引脚中有许多于片上设备复用,比如定时器系统,通信系统,或键盘中断。当其他模块不控制这些
引脚时。他们用于通用I/O 控制。
注意
并不是所有的通用I/O 引脚在所有的封装上都可用。为了避免输入引脚上额外的电
流消耗,用户的应用程序的复位初始化程序应使能片上上拉电阻或改变为连接引脚
的方向位输出以使引脚不浮动。
6.2
特征
并行I/O 和引脚控制特征取决于封装的选择,包括:
7 个端口共38 个通用I/O 引脚。
•
• 输入缓存区滞后
• 每个引脚上的可软件控制的上拉电阻
•
•
•
•
•
•
•
4 个A 口引脚
4 个B 口引脚与ADC 和TPM3 (1)复用
6 个C 口引脚与SCI2,IIC1 和MCLK 复用
4 个D 口引脚与ADC,KBI,TPM1 和TPM2 的外部时钟复用
8 个E 口引脚与SCI1,TPM1 和SPI 复用。
5 个F 口引脚与TPM1 和TPM2 复用。
7 个G 口引脚与XTAL,EXTAL 和KBI 复用。
6.3
引脚描述
MC9S08AC16 系列总共有7 个端口(PTA-PTG)共38 个并行I/O 引脚。并不是所有的引脚都在封装上
引出来。当其他模块不控制这些引脚时。他们用于通用I/O 控制。
复位后,复用设备功能被禁止,引脚用于并行I/O。所有的并行I/O 被设置为输入(PTxDDn=0)。每个
引脚的控制功能被设置如下:输出斜率控制使能(PtxSEn=1),选择低驱动强度(PTxDSn=0)和内部上拉
电阻使能(PtxPEn=0)。
接下来讨论每个端口和软件控制每个引脚的使用。
6.3.1
A 口
7
6
5
4
3
2
1
0
PTA7
R
R
R
R
PTA2
PTA1
PTA0
MCU 引脚
图 6-1. A 口引脚名称
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
A 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTAD)和A 口数据
方向寄存器(PTADD)控制。引脚控制寄存器上拉电阻使能(PTAPE),输出斜率控制(PTASE)和驱动
强度选择(PTADS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引
脚控制的信息参见 6.5 节 引脚控制。
6.3.2
B 口
7
6
5
4
3
2
1
0
PTB3/
PM3CH0/
AD1P3
PTB2/
PM3CH1/
AD1P2
PTB1/
AD1P1
PTB0/
AD1P0
R
R
R
R
MCU 引脚
图 6-2. B 口引脚名称
B 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTBD)和B 口数据
方向寄存器(PTBDD)控制。引脚控制寄存器上拉电阻使能(PTBPE),输出斜率控制(PTBSE)和驱动
强度选择(PTBDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引
脚控制的信息参见 6.5 节 引脚控制。
B 口通用I/O 与ADC 和TPM3 定时器通道复用。任何引脚使能作为ADC 输入时将禁止通用I/O 功能。当
任何TPM3 功能使能时,TPM3 控制引脚的方向(输入或输出)而不是并行I/O 口的数据方向寄存器。更多
关于把B 口引脚用作TPM 通道的信息参见第10 章定时器/PWM (S08TPMV3),更多关于B 口用作模拟输
入的信息参见第14 章AD 转换器(S08ADC0V1)。
6.3.3
C 口
7
6
5
4
3
2
1
0
PTC5/
RxD2
PTC3/
TxD2
PTC2/
MCLK
PTC1/
SDA1
PTC0/
SCL1
0
R
PTC4
MCU 引脚
图 6-3. C 口引脚名称
C 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTCD)和C 口数据
方向寄存器(PTCDD)控制。引脚控制寄存器上拉电阻使能(PTCPE),输出斜率控制(PTCSE)和驱动
强度选择(PTCDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引
脚控制的信息参见 6.5 节 引脚控制。
C 口通用I/O 与SCI2、IIC 和MCLK 复用。当任何复用功能使能时,复用功能控制引脚方向(输入或输
出)而不是通用I/O 口的数据方向寄存器。同样,对于复用功能控制为输出的引脚,它的输出数据由复用功能
控制而不是端口的数据寄存器。
关于把C 口引脚用作SCI 引脚的更多信息参见第11 章串行通信接口(S08SCIV4)。
关于把C 口引脚用作IIC 引脚的更多信息参见第13 章IIC 总线(S08IICV2)。
关于把PTC2 引脚用作MCLK 引脚的更多信息参见第5 章复位、中断和系统配置。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
6.3.4
D 口
7
6
5
4
3
2
1
0
PTD3/
AD1P10/
KBIP6
PTD2/
AD1P10/
KBIP5
PTD1/
AD1P9
PTD0/
AD1P8
R
R
R
R
MCU 引脚
图 6-4. D 口引脚名称
D口引脚是通用I/O引脚。并行I/O功能由位于零页寄存器空间的A口数据寄存器(PTDD)和 D口数据方向
寄存器(PTDDD)控制。引脚控制寄存器上拉电阻使能(PTDPE),输出斜率控制(PTDSE)和驱动强度
选择(PTDDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引脚控
制的信息参见 6.5 节 引脚控制。
D 口通用I/O 与ADC 和KBI 复用。当任何复用功能使能时,复用功能控制引脚方向(输入或输出)而不
是通用I/O 口的数据方向寄存器。当ADC 和数字设备功能同时共享时,ADC 有较高优先级。例如ADC 和
KBI 同时使用PTD7 的情况,引脚由ADC 模块控制。
关于把D 口引脚用作TPM 引脚的更多信息参见第10 章定时器/PWM (S08TPMV3)。
关于把D 口引脚用作模拟输入的更多信息参见第14 章AD 转换器(S08ADC0V1)。
关于把D 口引脚用作键盘引脚的更多信息参见第8 章键盘中断(S08KBIV1)。
6.3.5
E 口
7
6
5
4
3
2
1
0
PTE7/
SPSCK1
PTE6/
MOSI1
PTE5/
MISO1
PTE4/
SS1
PTE3/
TPM1CH1
PTE2/
TPM1CH0
PTE1/
RxD1
PTE0/
TxD1
MCU 引脚
图 6-5. E 口引脚名称
E 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTED)和E 口数据
方向寄存器(PTEDD)控制。引脚控制寄存器上拉电阻使能(PTEPE),输出斜率控制(PTESE)和驱动
强度选择(PTEDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引
脚控制的信息参见 6.5 节 引脚控制。
E 口通用I/O 与SCI1、SPI 和TPM1 定时器通道复用。当任何复用功能使能时,复用功能控制引脚方向
(输入或输出)而不是通用I/O 口的数据方向寄存器。同样,对于复用功能控制为输出的引脚,它的输出数据
由复用功能控制而不是端口的数据寄存器。
关于把E 口引脚用作SCI 引脚的更多信息参见第11 章串行通信接口(S08SCIV4)。
关于把E 口引脚用作SPI 引脚的更多信息参见第12 章串行外设接口(S08SPIV3)。
关于把E 口引脚用作TPM 通道引脚的更多信息参见第10 章定时器/PWM (S08TPMV3)。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
6.3.6
F 口
7
6
5
4
3
2
1
0
PTF5/
TPM2CH1
PTF4/
TPM2CH0
PTF1/
TPM1CH3
PTF0/
TPM1CH2
R
PTF6
R
R
MCU 引脚
图 6-6. F 口引脚名称
F 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTFD)和F 口数据
方向寄存器(PTFDD)控制。引脚控制寄存器上拉电阻使能(PTFPE),输出斜率控制(PTFSE)和驱动
强度选择(PTFDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于引
脚控制的信息参见 6.5 节 引脚控制。
F 口通用I/O 与TPM1 和TPM2 定时器通道复用。当任何复用功能使能时,复用功能控制引脚方向(输
入或输出)而不是通用I/O 口的数据方向寄存器。同样,对于复用功能控制为输出的引脚,它的输出数据由复
用功能控制而不是端口的数据寄存器。
关于把F 口引脚用作TPM 通道引脚的更多信息参见第10 章定时器/PWM (S08TPMV3)。
6.3.7
G 口
7
6
5
4
3
2
1
0
PTG6/
EXTAL
PTG5/
XTAL
PTG4/
KBIP4
PTG3/
KBIP3
PTG2/
KBIP2
PTG1/
KBIP1
PTG0/
KBIP0
0
MCU 引脚
图 6-7. G 口引脚名称
G 口引脚是通用I/O 引脚。并行I/O 功能由位于零页寄存器空间的A 口数据寄存器(PTGD)和G 口数
据方向寄存器(PTGDD)控制。引脚控制寄存器上拉电阻使能(PTGPE),输出斜率控制(PTGSE)和驱
动强度选择(PTGDS)位于高页寄存器。更多关于通用I/O 控制的信息参见 6.4 节 并行I/O 控制,更多关于
引脚控制的信息参见 6.5 节 引脚控制。
G 口通用I/O 与KBI、XTAL 和EXTAL 复用。当引脚为KBI 输入时,引脚作为输入而不是相应PTG 数据
方向寄存器位的状态。当外部晶振使能时,PTG5 和PTG6 作为晶振引脚。在这种情况下相应的并行I/O 和引
脚控制寄存器不控制这些引脚。
关于G 口用脚用作XTAL 和EXTAL 引脚的更多信息参见第9 章内部时钟发生器(S08ICGV4)。
关于G 口用脚用作键盘输入的更多信息参见第8 章键盘中断(S08KBIV1)。
6.4
并行I/O 控制
读写并行I/O 通过端口数据寄存器完成。方向(输入或输出)通过端口数据方向寄存器控制。单个引脚
的并行I/O 功能在图 6-8 中说明。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
PTxDDn
输出使能
D
Q
PTxDn
输出数据
D
Q
1
0
端口读数据
输入数据
同步器
BUSCLK
图 6-8. 并行I/O 框图
数据方向控制位决定引脚输出驱动是否使能,而且他们控制从端口数据寄存器所读的内容。每一个端口
引脚有一个数据方向寄存器位。当PTxDDn=1 时,相应的引脚是输出,读PTxD 返回最后写道端口数据寄存
器的值。当设备模块或系统功能控制端口引脚时,即使设备系统重写了实际位方向的控制,数据方向寄存器位
读端口数据寄存器返回的内容。
当模拟输入功能与引脚复用时,所有数字引脚功能被禁止。对于复用模拟输入功能的任何位,读端口数
据寄存器返回值为0。总的来说,数字输入功能和模拟输入功能共享同一引脚时,模拟输入功能优先级更高,
也就是如果数字和模拟功能同时使能,模拟输入功能控制引脚。
在改变引脚方向为输出前,先写端口数据寄存器,这是好的编程方法。这样防止I/O 口输出寄存器中遗留
的值。
6.5
引脚控制
引脚控制寄存器位于存储器的高页寄存器。这些寄存器控制I/O 引脚的上拉电阻,输出斜率和驱动强度。
引脚控制寄存器独立于并行I/O 寄存器进行操作。
6.5.1
内部上拉电阻使能
通过设置上拉电阻使能寄存器(PTxPEn)的相应位可以使能引脚内部的上拉电阻。除非用于相应上拉电
阻使能寄存器位的状态,当并行I/O 控制逻辑或其他共享设备功能设置引脚位输出时,上拉电阻被禁止。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
6.5.2
输出斜率控制使能
通过设置输出斜率控制寄存器(PTxSEn)的相应位可以使能引脚的输出斜率控制。在使能情况下,限制
输出斜率减少EMC 辐射。输出斜率控制对设置为输入的引脚没有作用。
6.5.3
输出驱动强度选择
通过设置驱动强度寄存器(PTxDSn)的相应位,输出引脚可以选择高输出设备强度。当选择高驱动时,
引脚能够产生和接收更大的电流。即使引脚被设置为高驱动,用户也必须确保不要超过芯片的总产生和接收限
制电流。驱动强度选择会会影响I/O 引脚的直流电。然而交流电也被影响。高驱动允许引脚用同驱动小负载的
低驱动引脚一样的转换速度来驱动更高的负载。因此引脚高驱动使能时,EMC 释放会受影响。
6.6
停止模式下的I/O 口
不同的停止模式下,执行STOP 指令的结果不同后,I/O 功能不同。不同停止模式下的I/O:
•
stop2 模式是局部掉电模式,在STOP 指令执行以前I/O 保持它的状态。在STOP 指令执行MCU 进
入stop2 模式前,CPU 寄存器状态和I/O 寄存器状态保存在RAM 中。从stop2 模式返回时,访问任
何I/O 前,用户检测SPMSC2 寄存器的PPDF 位的状态。如果PPDF 为0,I/O 必须像上电复位一样
重新初始化。如果PPDF 为1,I/O 数据先前存入RAM,在执行STOP 指令以前,外围设备必须重新
初始化,重新载入先前的数据。用户必须置1SPMSC2 寄存器的PPDACK 位。然后用户应用程序就
可以访问I/O 了。
• 在stop3 模式下,因为内部逻辑电路维持上电,所有I/O 被保持。返回后,允许用户正常的I/O 功能。
6.7
并行I/O 与引脚控制寄存器
这一节介绍了与并行I/O 口和引脚控制功能相关的寄存器。并行I/O 寄存器位于存储器的零页,引脚控制
寄存器位于高页寄存器部分。
6.7.1
A 口I/O 寄存器(PTAD 和PTADD)
A 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
PTAD7
R
R
R
R
PTAD2
PTAD1
PTAD0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-9. A 口数据寄存器(PTAD)
表6-1. PTAD 寄存器域描述
描述
域
A 口数据寄存器位——A 口引脚位输入时,读操作引脚的逻辑电平。A 口为输出时,读操作返回最后写入这个寄
存器的值。
写被锁存在寄存器的所有位。A 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTAD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高阻抗
输入。
7,2:0
PTADn
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7
PTADD7
0
6
R
0
5
R
0
4
R
0
3
R
0
2
PTADD2
0
1
PTADD1
0
0
PTADD0
0
读
写
复位
1
3-6 位是保留位,必须被写为0。
图 6-10. A 口数据方向寄存器(PTADD)
表6-2. PTADD 寄存器域描述
描述
域
A 口数据方向寄存器位——这些可读写位控制A 口引脚的方向和PTAD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 A 口n 位输出使能而且PTAD 读返回PTADn 的内容。
7,2:0
PTADDn
6.7.2
A 口引脚控制寄存器(PTAPE、PTASE、PTADS)
除了I/0 控制,A 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
PTAPE7
R
R
R
R
PTAPE2
PTAPE1
PTAPE0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-11. A 口内部上拉电阻使能(PTAPE)
表6-3. PTAPE 寄存器域描述
描述
域
A 口内部上拉电阻使能位——每个控制位决定相应的PTA 引脚是否允许内部上拉电阻。当A 口设置为输出时,这
些位不起作用而且内部上拉电阻被禁止。
7,2:0
PTAPEn
0 A 口n 位禁止内部上拉电阻。
1 A 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
读
写
PTASE7
R
R
R
R
PTASE2
PTASE1
PTASE0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-12. A 口输出斜率控制使能寄存器(PTASE)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表6-4. PTASE 寄存器域描述
域
描述
A 口输出输出斜率使能位——每个控制位决定相应的PTA 引脚是否允许输出输出斜率控制。当A 口设置为输入
时,这些位不起作用。
7,2:0
PTASEn
0 A 口n 位禁止输出输出斜率控制。
1 A 口n 位允许输出输出斜率控制。
7
6
5
4
3
2
1
0
读
写
PTADS7
R
R
R
R
PTADS2
PTADS1
PTADS0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
表6-5. A 口输出驱动强度寄存器(PTADS)
表6-6. PTADS 寄存器域描述
描述
域
A 口输出驱动强度选择位——每个控制位决定相应的PTA 引脚选择低还是高输出驱动。
0 A 口n 位低输出驱动。
1 A 口n 位高输出驱动。
7,2:0
PTADSn
6.7.3
B 口I/O 寄存器(PTBD 和PTBDD)
B 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTBD3
PTBD2
PTBD1
PTBD0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-13. B 口数据寄存器(PTBD)
表6-7. PTBD 寄存器域描述
描述
域
B 口数据寄存器位——B 口引脚位输入时,读操作引脚的逻辑电平。B 口为输出时,读操作返回最后写入这个
寄存器的值。
写被锁存在寄存器的所有位。B 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTBD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高
阻抗输入。
3:0
PTBDn
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTBDD3
PTBDD2
PTBDD1
PTBDD0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-14. B 口数据方向寄存器(PTBDD)
表6-8. PTBDD 寄存器域描述
描述
域
B 口数据方向寄存器位——这些可读写位控制B 口引脚的方向和PTBD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 B 口n 位输出使能而且PTBD 读返回PTBDn 的内容。
3:0
PTBDD[3:0]
6.7.4
B 口引脚控制寄存器(PTBPE、PTBSE、PTBDS)
除了I/0 控制,B 口引脚被下列寄存器控制:
7
R
0
6
R
0
5
R
0
4
R
0
3
PTBPE3
0
2
PTBPE2
0
1
PTBPE1
0
0
PTBPE0
0
读
写
复位
1
4-7 位是保留位,必须被写为0。
图 6-15. B 口内部上拉电阻使能(PTBPE)
表6-9. PTBPE 寄存器域描述
描述
域
B 口内部上拉电阻使能位——每个控制位决定相应的PTB 引脚是否允许内部上拉电阻。当B 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
3:0
PTBPE[3:0]
0 B 口n 位禁止内部上拉电阻。
1 B 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTBSE3
PTBSE2
PTBSE1
PTBSE0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-16. B 口输出斜率控制使能寄存器(PTBSE)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表6-10. PTBSE 寄存器域描述
域
描述
B 口输出输出斜率使能位——每个控制位决定相应的PTB 引脚是否允许输出输出斜率控制。当B 口设置为输
入时,这些位不起作用。
3:0
PTBSE[3:0]
0 B 口n 位禁止输出输出斜率控制。
1 B 口n 位允许输出输出斜率控制。
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTBDS3
PTBDS2
PTBDS1
PTBDS0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-17. B 口输出驱动强度寄存器(PTBDS)
表6-11. PTBDS 寄存器域描述
描述
域
B 口输出驱动强度选择位——每个控制位决定相应的PTB 引脚选择低还是高输出驱动。
0 B 口n 位低输出驱动。
1 B 口n 位高输出驱动。
3:0
PTBDS[3:0]
6.7.5
C 口I/O 寄存器(PTCD 和PTCDD)
C 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
0
读
写
R
PTCD5
PTCD4
PTCD3
PTCD2
PTCD1
PTCD0
0
0
0
0
0
0
0
0
复位
1
6 位是保留位,必须被写为0。
图 6-18. C 口数据寄存器(PTCD)
表6-12. PTCD 寄存器域描述
域
描述
C 口数据寄存器位——C 口引脚位输入时,读操作引脚的逻辑电平。C 口为输出时,读操作返回最后写入这个
寄存器的值。
写被锁存在寄存器的所有位。C 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTCD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高
阻抗输入。
5:0
PTCD[5:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7
6
5
4
3
2
1
0
0
读
写
R
PTCDD5
PTCDD4
PTCDD3
PTCDD2
PTCDD1
PTCDD0
0
0
0
0
0
0
0
0
复位
1
6 位是保留位,必须被写为0。
图 6-19. C 口数据方向寄存器(PTCDD)
表6-13. PTCDD 寄存器域描述
描述
域
C 口数据方向寄存器位——这些可读写位控制C 口引脚的方向和PTCD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 C 口n 位输出使能而且PTCD 读返回PTCDn 的内容。
5:0
PTCDD[5:0]
6.7.6
C 口引脚控制寄存器(PTCPE、PTCSE、PTCDS)
除了I/0 控制,C 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
0
读
写
R
PTCPE5
PTCPE4
PTCPE3
PTCPE2
PTCPE1
PTCPE0
0
0
0
0
0
0
0
0
复位
1
6 位是保留位,必须被写为0。
图 6-20. C 口内部上拉电阻使能(PTCPE)
表6-14. PTCPE 寄存器域描述
描述
域
C 口内部上拉电阻使能位——每个控制位决定相应的PTC 引脚是否允许内部上拉电阻。当C 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
5:0
PTCPE[5:0]
0 C 口n 位禁止内部上拉电阻。
1 C 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
0
读
写
R
PTCSE5
PTCSE4
PTCSE3
PTCSE2
PTCSE1
PTCSE0
0
0
0
0
0
0
0
0
复位
1
6 位是保留位,必须被写为0。
图 6-21. C 口输出斜率控制使能寄存器(PTCSE)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表6-15. PTCSE 寄存器域描述
域
描述
C 口输出输出斜率使能位——每个控制位决定相应的PTC 引脚是否允许输出输出斜率控制。当C 口设置为
输入时,这些位不起作用。
5:0
PTCSE[5:0]
0 C 口n 位禁止输出输出斜率控制。
1 C 口n 位允许输出输出斜率控制。
7
6
5
4
3
2
1
0
PTCDS7
读
写
R
PTCDS5
PTCDS4
PTCDS3
PTCDS2
PTCDS1
PTCDS0
0
0
0
0
0
0
0
0
复位
1
6 位是保留位,必须被写为0。
图 6-22. C 口输出驱动强度寄存器(PTCDS)
表6-16. PTCDS 寄存器域描述
描述
域
C 口输出驱动强度选择位——每个控制位决定相应的PTC 引脚选择低还是高输出驱动。
0 C 口n 位低输出驱动。
1 C 口n 位高输出驱动。
5:0
PTCDS[5:0]
6.7.7
D 口I/O 寄存器(PTDD 和PTDDD)
D 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTDD3
PTDD2
PTDD1
PTDD0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-23. D 口数据寄存器(PTDD)
表6-17. PTDD 寄存器域描述
域
描述
D 口数据寄存器位——D 口引脚位输入时,读操作引脚的逻辑电平。D 口为输出时,读操作返回最后写入这
个寄存器的值。
写被锁存在寄存器的所有位。D 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTDD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高
阻抗输入。
3:0
PTDD[3:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTDDD3
PTDDD2
PTDDD1
PTDDD0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-24. D 口数据方向寄存器(PTDDD)
表6-18. PTDDD 寄存器域描述
描述
域
D 口数据方向寄存器位——这些可读写位控制D 口引脚的方向和PTDD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 D 口n 位输出使能而且PTDD 读返回PTDDn 的内容。
3:0
PTDDD[3:0]
6.7.8
D 口引脚控制寄存器(PTDPE、PTDSE、PTDDS)
除了I/0 控制,D 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTDPE3
PTDPE2
PTDPE1
PTDPE0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-25. D 口内部上拉电阻使能(PTDPE)
表6-19. PTDPE 寄存器域描述
描述
域
D 口内部上拉电阻使能位——每个控制位决定相应的PTD 引脚是否允许内部上拉电阻。当D 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
3:0
PTDPE[3:0]
0 D 口n 位禁止内部上拉电阻。
1 D 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTDSE3
PTDSE2
PTDSE1
PTDSE0
0
0
0
0
0
0
0
0
复位
图6-28 (1)
1
4-7 位是保留位,必须被写为0。
图 6-26. D 口输出斜率控制使能寄存器(PTDSE)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表6-20. PTDSE 寄存器域描述
域
描述
D 口输出输出斜率使能位——每个控制位决定相应的PTD 引脚是否允许输出输出斜率控制。当D 口设置为
输入时,这些位不起作用。
3:0
PTDSE[3:0]
0 D 口n 位禁止输出输出斜率控制。
1 D 口n 位允许输出输出斜率控制。
7
6
5
4
3
2
1
0
读
写
R
R
R
R
PTDDS3
PTDDS2
PTDDS1
PTDDS0
0
0
0
0
0
0
0
0
复位
1
4-7 位是保留位,必须被写为0。
图 6-27. D 口输出驱动强度寄存器(PTDDS)
表6-21. PTDDS 寄存器域描述
描述
域
D 口输出驱动强度选择位——每个控制位决定相应的PTD 引脚选择低还是高输出驱动。
0 D 口n 位低输出驱动。
1 D 口n 位高输出驱动。
3:0
PTDDS[3:0]
6.7.9
E 口I/O 寄存器(PTED 和PTEDD)
E 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
PTED7
PTED6
PTED5
PTED4
PTED3
PTED2
PTED1
PTED0
0
0
0
0
0
0
0
0
复位
图 6-28. E 口数据寄存器(PTED)
表6-22. PTED 寄存器域描述
描述
域
E 口数据寄存器位——E 口引脚位输入时,读操作引脚的逻辑电平。E 口为输出时,读操作返回最后写入这个
寄存器的值。
写被锁存在寄存器的所有位。E 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTED 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高阻
抗输入。
7:0
PTED [7:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7
6
5
4
3
2
1
0
读
写
PTEDD7
PTEDD6
PTEDD5
PTEDD4
PTEDD3
PTEDD2
PTEDD1
PTEDD0
0
0
0
0
0
0
0
0
复位
图 6-29. E 口数据方向寄存器(PTEDD)
表6-23. PTEDD 寄存器域描述
描述
域
E 口数据方向寄存器位——这些可读写位控制E 口引脚的方向和PTED 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 E 口n 位输出使能而且PTED 读返回PTEDn 的内容。
7:0
PTEDD[7:0]
6.7.10
E 口引脚控制寄存器(PTEPE、PTESE、PTEDS)
除了I/0 控制,E 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
PTEPE7
PTEPE6
PTEPE5
PTEPE4
PTEPE3
PTEPE2
PTEPE1
PTEPE0
0
0
0
0
0
0
0
0
复位
图 6-30. E 口内部上拉电阻使能(PTEPE)
表6-24. PTEPE 寄存器域描述
描述
域
E 口内部上拉电阻使能位——每个控制位决定相应的PTE 引脚是否允许内部上拉电阻。当E 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
7:0
PTEPE[7:0]
0 E 口n 位禁止内部上拉电阻。
1 E 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
读
PTESE7
0
PTESE6
PTESE5
PTESE4
PTESE3
PTESE2
PTESE1
PTESE0
写
0
0
0
0
0
0
0
复位
图 6-31. E 口输出斜率控制使能寄存器(PTESE)
表6-25. PTESE 寄存器域描述
域
描述
E 口输出输出斜率使能位——每个控制位决定相应的PTE 引脚是否允许输出输出斜率控制。当E 口设置为输
入时,这些位不起作用。
7:0
PTESE[7:0]
0 E 口n 位禁止输出输出斜率控制。
1 E 口n 位允许输出输出斜率控制。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
7
6
5
4
3
2
1
0
读
写
PTEDS7
PTEDS6
PTEDS5
PTEDS4
PTEDS3
PTEDS2
PTEDS1
PTEDS0
0
0
0
0
0
0
0
0
复位
图 6-32. E 口输出驱动强度寄存器(PTEDS)
表6-26. PTEDS 寄存器域描述
描述
域
E 口输出驱动强度选择位——每个控制位决定相应的PTE 引脚选择低还是高输出驱动。
0 E 口n 位低输出驱动。
1 E 口n 位高输出驱动。
7:0
PTEDS[7:0]
6.7.11
F 口I/O 寄存器(PTFD 和PTFDD)
F 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
R
PTFD6
PTFD5
PTFD4
R
R
PTFD1
PTFD0
0
0
0
0
0
0
0
0
复位
1
7,3-2 位是保留位,必须被写为0。
图 6-33. F 口数据寄存器(PTFD)
表6-27. PTFD 寄存器域描述
描述
域
F 口数据寄存器位——F 口引脚位输入时,读操作引脚的逻辑电平。F 口为输出时,读操作返回最后写入这个
寄存器的值。
写被锁存在寄存器的所有位。F 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTFD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高阻
抗输入。
6:4,1:0
PTFDn
7
6
5
4
3
2
1
0
读
写
R
PTFDD6
PTFDD5
PTFDD4
R
R
PTFDD1
PTFDD0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-34. F 口数据方向寄存器(PTFDD)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表6-28. PTFDD 寄存器域描述
域
描述
F 口数据方向寄存器位——这些可读写位控制F 口引脚的方向和PTFD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 F 口n 位输出使能而且PTFD 读返回PTFDn 的内容。
6:4,1:0
PTFDDn
6.7.12
F 口引脚控制寄存器(PTFPE、PTFSE、PTFDS)
除了I/0 控制,F 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
读
写
R
PTFPE6
PTFPE5
PTFPE4
R
R
PTFPE1
PTFPE0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-35. F 口内部上拉电阻使能(PTFPE)
表6-29. PTFPE 寄存器域描述
描述
域
F 口内部上拉电阻使能位——每个控制位决定相应的PTF 引脚是否允许内部上拉电阻。当F 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
6:4,1:0
PTFPEn
0 F 口n 位禁止内部上拉电阻。
1 F 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
读
写
R
PTFSE6
PTFSE5
PTFSE4
R
R
PTFSE1
PTFSE0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-36. F 口输出斜率控制使能寄存器(PTFSE)
表6-30. PTFSE 寄存器域描述
域
描述
F 口输出输出斜率使能位——每个控制位决定相应的PTF 引脚是否允许输出输出斜率控制。当F 口设置为输
入时,这些位不起作用。
6:4,1:0
PTFSEn
0 F 口n 位禁止输出输出斜率控制。
1 F 口n 位允许输出输出斜率控制。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
7
6
5
4
3
2
1
0
读
写
R
PTFDS6
PTFDS5
PTFDS4
R
R
PTFDS1
PTFDS0
0
0
0
0
0
0
0
0
复位
图 6-37. F 口输出驱动强度寄存器(PTFDS)
表6-31. PTFDS 寄存器域描述
描述
域
F 口输出驱动强度选择位——每个控制位决定相应的PTF 引脚选择低还是高输出驱动。
0 F 口n 位低输出驱动。
1 F 口n 位高输出驱动。
6:4,1:0
PTFDSn
6.7.13
G 口I/O 寄存器(PTGD 和PTGDD)
G 口并行I/O 功能被下列寄存器控制:
7
6
5
4
3
2
1
0
0
读
写
PTGD6
PTGD5
PTGD4
PTGD3
PTGD2
PTGD1
PTGD0
0
0
0
0
0
0
0
0
复位
图 6-38. G 口数据寄存器(PTGD)
表6-32. PTGD 寄存器域描述
描述
域
G 口数据寄存器位——G 口引脚位输入时,读操作引脚的逻辑电平。G 口为输出时,读操作返回最后写入这
个寄存器的值。
写被锁存在寄存器的所有位。G 口引脚为输出时,逻辑电平有相应的MCU 引脚驱动。
复位强制PTGD 为全0,但这些0 不是相应引脚驱动的,因为复位设置所有的端口引脚为禁止上拉电阻的高
阻抗输入。
6:0
PTGD[6:0]
7
6
5
4
3
2
1
0
0
读
写
PTGDD6
PTGDD5
PTGDD4
PTGDD3
PTGDD2
PTGDD1
PTGDD0
0
0
0
0
0
0
0
0
复位
图 6-39. G 口数据方向寄存器(PTGDD)
表6-33. PTGDD 寄存器域描述
描述
域
G 口数据方向寄存器位——这些可读写位控制G 口引脚的方向和PTGD 读操作时所读的内容。
0 输入(输出禁止)而且读返回引脚值。
1 G 口n 位输出使能而且PTGD 读返回PTGDn 的内容。
6:0
PTGDD[6:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
6.7.14
G 口引脚控制寄存器(PTGPE、PTGSE、PTGDS)
除了I/O 控制,G 口引脚被下列寄存器控制:
7
6
5
4
3
2
1
0
0
读
写
PTGPE6
PTGPE5
PTGPE4
PTGPE3
PTGPE2
PTGPE1
PTGPE0
0
0
0
0
0
0
0
0
复位
图 6-40. G 口内部上拉电阻使能(PTGPE)
表6-34. PTGPE 寄存器域描述
描述
域
G 口内部上拉电阻使能位——每个控制位决定相应的PTG 引脚是否允许内部上拉电阻。当G 口设置为输出
时,这些位不起作用而且内部上拉电阻被禁止。
6:0
PTGPE[6:0]
0 G 口n 位禁止内部上拉电阻。
1 G 口n 位允许内部上拉电阻。
7
6
5
4
3
2
1
0
0
读
写
PTGSE6
PTGSE5
PTGSE4
PTGSE3
PTGSE2
PTGSE1
PTGSE0
0
0
0
0
0
0
0
0
复位
图 6-41. G 口输出斜率控制使能寄存器(PTGSE)
表6-35. PTGSE 寄存器域描述
域
描述
G 口输出输出斜率使能位——每个控制位决定相应的PTG 引脚是否允许输出输出斜率控制。当G 口设置为
输入时,这些位不起作用。
6:0
PTGSE[6:0]
0 G 口n 位禁止输出输出斜率控制。
1 G 口n 位允许输出输出斜率控制。
7
6
5
4
3
2
1
0
0
读
写
PTGDS6
PTGDS5
PTGDS4
PTGDS3
PTGDS2
PTGDS1
PTGDS0
0
0
0
0
0
0
0
0
复位
1
3-6 位是保留位,必须被写为0。
图 6-42. G 口输出驱动强度寄存器(PTGDS)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表6-36. PTGDS 寄存器域描述
域
描述
G 口输出驱动强度选择位——每个控制位决定相应的PTG 引脚选择低还是高输出驱动。
0 G 口n 位低输出驱动。
1 G 口n 位高输出驱动。
6:0
PTGDS[6:0]
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
第7 章 中央处理单元(S08CPUV2)
7.1
概述
本节介绍了HCS08 系列CPU 的寄存器、寻址方式和指令集。更详细的信息请参考《HCS08 Family
Reference Manual》,该文件序号为HCS08RMV1/D。
HCS08 CPU 与M68HC08 CPU 的源和目标代码完全兼容。新增的指令和增强寻址模式提高了C 编译器
的效率,并且支持新的后台调试系统以代替早期68HC08 的监控模式。
7.1.1
特性
HCS08 CPU 具有以下特性:
• 目标代码完全兼容M68HC05 和M68HC08 家族
• 所有寄存器和存储器映射到一个独立的64 KB 的地址空间
•
•
•
16 位堆栈指针(64 K 字节地址空间内任意大小、任意地址的堆栈)
16 位变址寄存器(H:X)支持强大的索引地址模式
8 位累加器(A)
• 许多指令把X 作为第二个通用8 位寄存器
•
7 种寻址模式:
• 固有寻址模式—操作数存于内部寄存器
• 相对寻址模式—8 位有符号偏移量的分支地址
• 立即寻址模式—操作数位于下一个目标代码
• 直接寻址模式—操作数位于0x0000 到0x00FF 之间
• 扩展寻址模式—操作数位于64K 字节地址空间内
•
•
H:X 相对变址寻址模式—提供包括自动增量在内的5 种子模式
SP 相对变址寻址模式—大大提高C 语言编译的效率
• 提供四种寻址模式组合的寄存器- 寄存器数据转移指令
• 溢出、半进位、负、零和进位状况码支持根据带符号、无符号、BCD 码操作的结果进行条件转移
• 高效率的位操作指令
• 快速8 位乘8 位和16 位除8 位指令
•
STOP 和WAIT 指令调用低功耗运行模式
7.2
编程模型和CPU 寄存器
图 7-1 为5 个CPU 寄存器,微处理器的存储器不包括CPU 寄存器。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
7
0
累加器
A
16 位变址寄存器H:X
H
X
变址寄存器( 高)
变址寄存器( 低)
15
8
7
0
0
0
SP
PC
堆栈指针
15
程序计数器
7
状况码寄存器
V 1 1 H I N Z C CCR
进位标识
零标识
负标识
中断屏蔽位
半进位标识( 来自第三位)
2进制补码溢出标识
图 7-1. CPU 寄存器
7.2.1
累加器(A)
这个累加器(A) 是通用的8 位寄存器。一个操作数经过累加器输入到算术逻辑单元(ALU ),在算术和
逻辑运算后,ALU 的结果通常存放入A 累加器。累加器可以用不同的寻址模式指定地址从存储器中装载数
据,或者累加器A 中的数据可以根据不同的寻址模式指定的地址装入到存储器中。
复位对累加器中的数据无影响。
7.2.2
变址寄存器(H:X)
这个16 位寄存器实际上是由两个8 位寄存器(H,X)组成,常一起作为一个16 位地址指针。其中,H
装地址的高字节,X 装地址的低字节。所有变址寻址方式指令用H:X 中的16 位的值作为索引参考指针。但
是,为了和早期M68HC05 系列兼容,部分指令只能在低8 位(X)上运行。
许多指令把X 作为第二个通用8 位寄存器来存储8 位数据。X 可以被清零,增加,递减,取反,移位,
循环移位。在算术逻辑操作时,转移指令用于X 与累加器A 进行数据交换。
为了和早期M68HC05 系列兼容,H 在复位时被设为0X00。复位对X 无影响。
7.2.3
堆栈指针(SP)
在一个自动后进先出(LIFO) 堆栈中,该16 位地址指针寄存器指向下一个可用地址。堆栈可以映射到有
RAM 的64K 字节空间内的任意地址,它可以与所提供的RAM 大小相同。堆栈可以自动保存子程序调用的返
回地址,中断操作中的返回地址和CPU 寄存器值,以及本地变量。AIS (Add Immediate to Stack pointer)
指令赋予一个8 位有符号立即数给SP。这种方法经常被用于为本地堆栈变量在堆栈中分配或回收空间。
为了兼容早期的M68HC05 系列,SP 复位后被设为0xFF。在复位初始化时,HCS08 程序通常将SP 的
值改为RAM 最后地址值(最高地址),来释放直接页上的RAM( 片上寄存器结束处一直到0x00FF)。
RSP (复位堆栈指针)是与M68HC05 系列兼容的指令,因为它仅影响堆栈指针的低位地址,所以很少
用在HCS08 程序中。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7.2.4
程序计数器(PC)
程序计数器是一个16 位寄存器,包含下一条指令或待取操作数的地址。
通常在程序执行期间,程序计数器在每次数据或指令被取出时会自动增加到存储器的下个连续位置。跳
转、转移、中断和返回操作向程序计数器装载一个地址而不是下个连续位置。这就是流程的改变。
复位时,程序计数器从0XFFFE 和0XFFF 处装载复位向量。向量存储位置的第一个指令将在退出复位状
态后被执行。
7.2.5
条件码寄存器(CCR)
8 位条件码寄存器包含中断屏蔽位I 和5 个标识最近执行指令结果的状态标志位。第6 位和第5 位恒为逻
辑1。下图简要描述了CCR 每个位的信息及功能。关于如何使用指令设置CCR 的每个位,请参阅HCS08 系
列参考手册,第1 卷,其文档号为HCS08RMv1。
7
0
条件码寄存器
V 1 1 H
I
N Z C CCR
进位标识
零标识
负标识
中断屏蔽位
半进位标识( 来自第三位)
溢出标识
图 7-2. 条形码寄存器(CCR)
表7-1. CCR 寄存器位功能描述
描述
位置
二进制补码溢出标志位—当二进制补码溢出时,CPU 将设置溢出标志位。有符号指令BGT、BGE、
BLE、BLT 使用溢出标志。
7
V
0 无溢出
1 溢出
半进位标志—执行加法指令(ADD)和带进位加法指令(ADC)时,如果累加器第3 和第4 位有进位,
CPU 设置半进位标志。半进位标志在BCD 码算术运算中很有用。DAA 指令用H 和C 的状态来自动调整
前面ADD 或者ADC 的结果,修正结果得到有效的BCD 值。
0 第3 位和第4 位之间无进位
4
H
1 第3 位和第4 位之间进位
中断屏蔽位—当中断屏蔽位被置位时,禁止CPU 中断。当中断屏蔽位被清除,开放CPU 中断。当中断
发生时,在第一个中断服务例程被执行之前,CPU 寄存器值被保存到堆栈后中断屏蔽被自动设置。在任
何指令正在清I (CLI、TAP)时,中断不被认可。这确保了CLI 或TAP 的下一个指令执行时不被干扰。
0 允许中断
1 禁止中断
3
I
负标志—CPU 运算时,如果产生负结果则将负标志置1,设置位7 的结果。如果装载或存储值的较多重要
位为1 的话,简单的装载或存储8 位或16 位值也会引起N 置1 。
2
N
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-1. CCR 寄存器位功能描述
零标志—CPU 进行运算过程中,如果数据或运算结果为零,零标志置1,否者置零。
0 无零结果
1 有零结果
1
Z
进位/ 借位标志—当进行加法时,在最高位D7 上有进位;或在进行减法运算时需要向更高位借位,则
CPU 将进位/ 借位标志C 置1。一些指令如位测试,跳转,移位指令等也会影响该标志。
0
C
0 无进位/ 借位
1 有进位/ 借位
7.3
寻址模式
寻址模式决定CPU 存取数据和操作数的方法。在HCS08 系列芯片中,所有的存储器、状态和控制寄存
器和I/O 口共享一个64K 字节线性地址空间,所以一个16 位二进制地址可以唯一确定一个存储位置。这样,
访问RAM 变量的指令同时也能访问I/O 和控制寄存器或非易失性程序空间。
某些指令的寻址方式不止一种。例如,MOVE 指令用一种寻址方式来指定源操作数,又用另一种寻址方
式来确定目标地址。BRCLR、BRSET、CBEQ、DBNZ 等指令用一种寻址方式来确定一个操作数地址,并进
行测试,如果假设条件为真时,就用相对寻址方式来确定分支的目标地址。对于BRCLR、BRSET、CBEQ、
DBNZ,列在指令设置表上的寻址方式用于定位需要测试的操作数,相对寻址方式用来定位分支目标地址。
7.3.1
固有寻址模式(INH)
固有寻址模式所需的操作数已经存于CPU 寄存器中,所以CPU 不需要访问存储器来获取操作数。
7.3.2
相对寻址模式(REL)
相对寻址模式用于确定分支指令的目的地址。8 位有符号的偏移值在存储器中位于操作码之后。在执行指
令时,如果分支条件为真,有符号偏移值扩展为16 位有符号值且加到当前程序计数器,这样程序转移到分支
目标地址处运行。
7.3.3
立即寻址模式(IMM)
立即寻址模式中,用以完成指令的操作数包含在目标代码内,并紧跟着指令操作码存放在存储器中。在
16 位立即操作数情况下,高位字节存放在操作码之后的第一个存储位置,低位字节存放在下个存储位置。
7.3.4
直接寻址模式(DIR)
直接寻址模式中,指令包含的地址低8 位存放在直接页(0x0000-0x00FF)。在执行指令时,通过连接
0x00 作为高位地址和指令的直接地址得到一个16 位地址以获取目标操作数。这比给操作数分配一个完整的
16 位地址要更快,存取效率更高。
7.3.5
扩展寻址模式(EXT)
在扩展寻址模式中,操作数的16 位地址位于操作码后的两字节(高位在先)。
7.3.6
变址寻址模式
变址寻址模式包含七种,其中五种使用16 位H:X 变址寄存器,另两种使用堆栈作为基值参考。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
7.3.6.1
无偏移量变址模式(IX)
在这种变址模式中,变址寄存器H:X 的内容被用于访问操作数的地址。
7.3.6.2
无偏移量变址、变址自动加1 寻址模式(IX+)
在这种变址模式中,H:X 变址寄存器存储指令的操作数。当取出地址后,H:X 寄存器自动加
1(H:X=H:X+0x0001)。这种寻址模式只应用于CBEQ 和MOV 指令。
7.3.6.3
8 位偏移量变址模式(IX1)
在这种变址模式中,一个无符号的8 位偏移量与H:X 寄存器相加,得到要访问的操作数地址。
7.3.6.4
8 位偏移量变址、变址自动加1 寻址模式(IX1+)
在这种变址模式中,一个无符号的8 位偏移量与H:X 寄存器相加,得到要访问的操作数地址。在操作数
被取出后变址寄存器自动加1。CBEQ 是唯一使用这种寻址模式的指令。
7.3.6.5
16 位偏移量变址模式(IX2)
在这种变址模式中,一个无符号的16 位偏移量与H:X 寄存器相加,得到要访问的操作数地址
7.3.6.6
8 位偏移量堆栈寻址模式(SP1)
在这种变址模式中,指令集提供一个无符号的8 位偏移量与堆栈指针(SP) 中的16 位值相加,得到要访
问的操作数地址。
7.3.6.7 16 位偏移量堆栈寻址模式(SP2)
在这种变址模式中,无符号的16 位偏移量与堆栈指针(SP) 中的16 位值相加,得到要访问的操作数地
址。
7.4
特殊操作
CPU 可以执行一些操作,这些操作与其他的CPU 指令相似,只是没有操作码。另外一些指令如STOP,
WAIT 直接影响其他MCU 的电路。本节详细将讲述这些操作。
7.4.1
复位序列
复位可以由上电复位、COP 看门狗超时、外部复位引脚引起。当复位事件发生时,复位事件强制CPU
立即停止正在执行的任何事件(MCU 不会等待指令边界,再响应复位)。关于MCU 如何确认复位及其来源的
信息,可参阅复位、中断和系统配置章节。
当用以确定复位源是否来自内部的序列被执行,同时复位引脚不再有强制复位信号时,复位事件被认为
结束。然后,CPU 执行一个6 周期的序列从0XFFFE 和0XFFFF 处取出复位向量填充到指令队列,为执行程
序作好准备。
7.4.2
中断序列
当中断请求发生时,在响应中断之前CPU 先完成当前指令。这时程序计数器指向下条指令的开始位置,
这也就是CPU 中断返回地址。CPU 对中断的响应是执行与软中断(SWI)相同的操作序列,除非当中断序
列开始时,由挂起的高优先级中断决定向量获取的地址。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
CPU 中断序列如下:
1. 按顺序存储PCL、PCH、X、A、CCR 的内容到堆栈中。
2. 设置CCR 中的I 位。
3. 获取中断向量高位。
4. 获取中断向量低位。
5. 延迟一个空闲总线周期。
6. 将3 字节的程序信息( 其首地址由中断向量决定) 填入指令队列为执行中断服务例程第一条指令作准
备。
CCR 中的内容被压入堆栈后,在进行中断服务例程时设置CCR 的I 位防止响应其它中断。虽然也可以通过
指令在中断服务例程中清I,但是有可能导致嵌套中断(不推荐采用这种方法,因为这将增加程序调试和维护
的难度)。
为了和早期的M68HC05MCU 兼容,H:X 变址寄存器中的H 不作为中断序列的一部分保存到堆栈中。
用户必须在终端服务例程开始时用PSHH 指令保存H 内容,然后在RTI 返回之前用PULH 指令将H 取出。如
果能确定中断服务例程不使用任何与H 相关的指令或自增寻址方式,H 值也可以不保存。
软中断除了不能被CCR 中的I 位屏蔽,其它和硬中断一样。并且,它和程序中的一个指令操作码相关
联,所以它不是异步程序操作。
7.4.3
等待模式
WAIT 指令通过清零CCR 的I 位使能中断。然后关闭CPU 时钟以节省功耗,CPU 维持在低功耗状态直
到被中断或复位唤醒。当中断或复位发生时,CPU 从等待模式被唤醒。此时,CPU 重启内部时钟,并响应中
断以及复位。
当CPU 在等待模式时,如果一个串行的后台调试指令通过后台调试界面发送到MCU,CPU 时钟将被重
启并进入能处理其它串行背景指令的活跃背景模式。这样,即使在等待模式中主机开发系统仍能进入目标
MCU。
7.4.4
停止模式
通常,在停止模式下,系统的所有时钟包括晶振都被关闭以实现最小功耗。在这样的系统中,需要一个
外部电路来计算时间,用于在指定的时间产生信号唤醒MCU。和早期的M68HC05 和M68HC08 不同,
HCS08 在停止模式中可以设定运行最少时钟。这就允许一个内部周期信号从停止模式中唤醒MCU。
当一个主机调试系统连接到后台调试引脚(BKGD)且通过后台调试接口串行命令设置ENBDM 位时
(或者MCU 在复位时进入活跃的后台调试模式),MCU 进入停止模式时振荡器被强制活跃。在这种情况下,
当CPU 在停止模式下通过后台调试接口向MCU 发送后台调试指令,CPU 时钟将被开启并进入能处理其它串
行背景指令的活跃背景模式。这样,即使在停止模式中主机开发系统仍能进入目标MCU。
从停止模式恢复的方式取决于具体的HCS08 型号以及振荡器是否在停止模式时停止。详细信息请参阅操
作模式章节。
7.4.5
背景模式
与M68HC08 相比,HCS08 新增了BGND 指令。BGND 通常用在普通用户程序中,强迫CPU 停止处理
当前指令进入活跃的背景模式。重新继续运行用户程序的唯一方式是通过复位或主机调试系统的后台调试接口
发出GO、TRACE1 或者TAGGO 串行命令。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
可以用后台调试操作码替换目标断点地址操作码来设置软断点。当程序到达断点地址时,CPU 强制进入
活跃背景模式而不是继续用户程序。
7.5
HCS08 指令设置摘要
表 7-2 包含了HCS08 所有寻址模式的指令集。本表提供了各操作数的结构、在内部总线周期的执行时
间、以及每个指令在每种寻址模式的循环方式。
表7-2. 指令集摘要( 第1 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
ADC #opr8i
ADC opr8a
IMM
DIR
EXT
IX2
IX1
IX
A9 ii
B9 dd
C9 hh ll
D9 ee ff
E9 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
ADC opr16a
ADC oprx16,X
ADC oprx8,X
ADC ,X
ADC oprx16,SP
ADC oprx8,SP
进位加
A ← (A) + (M) + (C)
ꢀ 1 1 ꢀ – ꢀ ꢀ ꢀ
F9
SP2
SP1
9E D9 ee ff
9E E9 ff
ADD #opr8i
ADD opr8a
ADD opr16a
ADD oprx16,X
ADD oprx8,X
ADD ,X
IMM
DIR
EXT
IX2
IX1
IX
AB ii
BB dd
CB hh ll
DB ee ff
EB ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
无进位加
A ← (A) + (M)
ꢀ 1 1 ꢀ
– ꢀ ꢀ ꢀ
FB
ADD oprx16,SP
ADD oprx8,SP
SP2
SP1
9E DB ee ff
9E EB ff
将立即数(有符号)压入堆栈
SP ← (SP) + (M)
AIS #opr8i
AIX #opr8i
IMM
IMM
A7 ii
AF ii
2
2
pp
pp
– 1 1 – – – – –
– 1 1 – – – – –
将立即数(有符号)压入
编制寄存器(H:X)
H:X ← (H:X) + (M)
AND #opr8i
AND opr8a
AND opr16a
AND oprx16,X
AND oprx8,X
AND ,X
IMM
DIR
EXT
IX2
IX1
IX
A4 ii
B4 dd
C4 hh ll
D4 ee ff
E4 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
逻辑与
A ← (A) & (M)
0 1 1 – – ꢀ ꢀ –
F4
AND oprx16,SP
AND oprx8,SP
SP2
SP1
9E D4 ee ff
9E E4 ff
ASL opr8a
ASLA
ASLX
ASL oprx8,X
ASL ,X
ASL oprx8,SP
DIR
INH
INH
IX1
IX
38 dd
48
58
68 ff
78
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
算术左移
C
0
ꢀ 1 1 – – ꢀ ꢀ ꢀ
b7
b0
SP1
9E 68 ff
( 和LSL 相同)
ASR opr8a
ASRA
ASRX
ASR oprx8,X
ASR ,X
ASR oprx8,SP
DIR
INH
INH
IX1
IX
37 dd
47
57
67 ff
77
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
算术右移
ꢀ 1 1 – – ꢀ ꢀ ꢀ
C
b7
b0
SP1
9E 67 ff
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-2. 指令集摘要( 第2 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
进位位清零则转移
( 如果C = 0)
BCC rel
REL
24 rr
3
ppp
– 1 1 – – – – –
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
11 dd
13 dd
15 dd
17 dd
19 dd
1B dd
1D dd
1F dd
5
5
5
5
5
5
5
5
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
存储器中位n 清零
(Mn ← 0)
BCLR n,opr8a
– 1 1 – – – – –
进位位置1 则转移( 如果C = 1)
( 和BLO 相同)
BCS rel
BEQ rel
BGE rel
REL
REL
REL
25 rr
27 rr
90 rr
3
3
3
ppp
ppp
ppp
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
相等则转移( 如果Z = 1)
大于等于则转移
(if N ⊕ V = 0) ( 带符号)
ENBDM = 1 则进入活跃后台调试状态
等待和处理BDM 指令直到GO, TRACE1,
TAGGO
BGND
INH
82
5+
fp...ppp
– 1 1 – – – – –
BGT rel
BHCC rel
BHCS rel
BHI rel
REL
REL
REL
REL
92 rr
28 rr
29 rr
22 rr
3
3
3
3
ppp
ppp
ppp
ppp
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
大于则转移( 如果Z | (N ⊕ V) = 0) ( 带符号)
半进位清零则转移( 如果H = 0)
半进位置1 则转移( 如果H = 1)
为高则转移( 如果C | Z = 0)
高于或相同则转移( 如果C = 0)
( 和BCC 相同)
BHS rel
REL
24 rr
3
ppp
– 1 1 – – – – –
BIH rel
BIL rel
REL
REL
2F rr
2E rr
3
3
ppp
ppp
– 1 1 – – – – –
– 1 1 – – – – –
IRQ 引脚为高则转移( 如果IRQ pin = 1)
IRQ 引脚为低则转移( 如果IRQ pin = 0)
BIT #opr8i
BIT opr8a
BIT opr16a
BIT oprx16,X
BIT oprx8,X
BIT ,X
IMM
DIR
EXT
IX2
IX1
IX
A5 ii
B5 dd
C5 hh ll
D5 ee ff
E5 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
位测试
(A) & (M)
0 1 1 – – ꢀ ꢀ –
(CCR 更新但操作数不变)
F5
BIT oprx16,SP
BIT oprx8,SP
SP2
SP1
9E D5 ee ff
9E E5 ff
小于等于则转移
( 如果Z | (N ⊕ V) = 1) ( 带符号)
BLE rel
REL
93 rr
3
ppp
– 1 1 – – – – –
BLO rel
BLS rel
BLT rel
REL
REL
REL
REL
REL
REL
REL
25 rr
23 rr
91 rr
2C rr
2B rr
2D rr
26 rr
3
3
3
3
3
3
3
ppp
ppp
ppp
ppp
ppp
ppp
ppp
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
为低则转移( 如果C = 1) ( 和BCS 相同)
为低或相同则转移( 如果C | Z = 1)
小于则转移( 如果N ⊕ V = 1) ( 带符号)
中断屏蔽位清零则转移( 如果I = 0)
负则转移( 如果N = 1)
BMC rel
BMI rel
BMS rel
BNE rel
中断屏蔽位置1 则转移( 如果I = 1)
不等则转移( 如果Z = 0)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表7-2. 指令集摘要( 第3 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
BPL rel
REL
REL
2A rr
20 rr
3
3
ppp
– 1 1 – – – – –
– 1 1 – – – – –
正则转移( 如果N = 0)
一直转移( 如果I = 1)
BRA rel
ppp
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
01 dd rr
03 dd rr
05 dd rr
07 dd rr
09 dd rr
0B dd rr
0D dd rr
0F dd rr
5
5
5
5
5
5
5
5
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
BRCLR n,opr8a,rel
– 1 1 – – – – ꢀ
– 1 1 – – – – –
– 1 1 – – – – ꢀ
存储器中位n 清零( 如果(Mn) = 0)
BRN rel
REL
21 rr
3
ppp
从不转移( 如果I = 0)
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
00 dd rr
02 dd rr
04 dd rr
06 dd rr
08 dd rr
0A dd rr
0C dd rr
0E dd rr
5
5
5
5
5
5
5
5
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
rpppp
BRSET n,opr8a,rel
存储器中位n 置1 则转移( 如果(Mn) = 1)
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
10 dd
12 dd
14 dd
16 dd
18 dd
1A dd
1C dd
1E dd
5
5
5
5
5
5
5
5
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
rfwpp
BSET n,opr8a
– 1 1 – – – – –
存储器中位n 置1 (Mn ← 1)
转移到子程序
PC ← (PC) + $0002
BSR rel
push (PCL); SP ← (SP) – $0001
push (PCH); SP ← (SP) – $0001
PC ← (PC) + rel
REL
AD rr
5
ssppp
– 1 1 – – – – –
相等则比较转移
CBEQ opr8a,rel
CBEQA #opr8i,rel
CBEQX #opr8i,rel
CBEQ oprx8,X+,rel
CBEQ ,X+,rel
DIR
IMM
IMM
IX1+
IX+
31 dd rr
41 ii rr
51 ii rr
61 ff rr
71 rr
5
4
4
5
5
6
rpppp
pppp
pppp
rpppp
rfppp
prpppp
如果(A) = (M) 则转移
如果(A) = (M) 则转移
如果(X) = (M) 则转移
如果(A) = (M) 则转移
如果(A) = (M) 则转移
如果(A) = (M) 则转移
– 1 1 – – – – –
CBEQ oprx8,SP,rel
SP1
9E 61 ff rr
CLC
CLI
INH
INH
98
9A
1
1
p
p
– 1 1 – – – – 0
– 1 1 – 0 – – –
清进位位(C ← 0)
清中断屏蔽位(I ← 0)
清位
CLR opr8a
CLRA
CLRX
CLRH
CLR oprx8,X
CLR ,X
M ← $00
A ← $00
X ← $00
H ← $00
M ← $00
M ← $00
M ← $00
DIR
INH
INH
INH
IX1
IX
3F dd
4F
5F
8C
6F ff
7F
5
1
1
1
5
4
6
rfwpp
p
p
0 1 1 – – 0 1 –
p
rfwpp
rfwp
prfwpp
CLR oprx8,SP
SP1
9E 6F ff
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-2. 指令集摘要( 第4 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
CMP #opr8i
CMP opr8a
IMM
DIR
EXT
IX2
IX1
IX
A1 ii
B1 dd
C1 hh ll
D1 ee ff
E1 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
CMP opr16a
CMP oprx16,X
CMP oprx8,X
CMP ,X
CMP oprx16,SP
CMP oprx8,SP
存储器与累加器相比
A – M
ꢀ 1 1 – – ꢀ ꢀ ꢀ
(CCR 更新但操作数不变)
F1
SP2
SP1
9E D1 ee ff
9E E1 ff
求补
M ← (M)= $FF – (M)
( 一个数的补)A ← (A) = $FF – (A)
X ← (X) = $FF – (X)
M ← (M) = $FF – (M)
M ← (M) = $FF – (M)
COM opr8a
COMA
COMX
COM oprx8,X
COM ,X
COM oprx8,SP
DIR
INH
INH
IX1
IX
33 dd
43
53
63 ff
73
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
0 1 1 – – ꢀ ꢀ 1
SP1
9E 63 ff
M ← (M) = $FF – (M)
CPHX opr16a
CPHX #opr16i
CPHX opr8a
EXT
IMM
DIR
SP1
3E hh ll 6
65 jj kk 3
prrfpp
ppp
rrfpp
prrfpp
比较变址寄存器(H:X) 和存储器
(H:X) – (M:M + $0001)
ꢀ 1 1 – – ꢀ ꢀ ꢀ
75 dd
5
6
(CCR 更新但操作数不变)
CPHX oprx8,SP
9E F3 ff
CPX #opr8i
CPX opr8a
CPX opr16a
CPX oprx16,X
CPX oprx8,X
CPX ,X
IMM
DIR
EXT
IX2
IX1
IX
A3 ii
B3 dd
C3 hh ll
D3 ee ff
E3 ff
F3
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
比较X ( 低位变址寄存器) 和存储器
X – M
ꢀ 1 1 – – ꢀ ꢀ ꢀ
(CCR 更新但操作数不变)
CPX oprx16,SP
CPX oprx8,SP
SP2
SP1
9E D3 ee ff
9E E3 ff
在BCD 码ADD,ADC 操作后转换累加器内容
到十进制
DAA
INH
72
1
p
U 1 1 – – ꢀ ꢀ ꢀ
DBNZ opr8a,rel
DBNZA rel
DBNZX rel
DBNZ oprx8,X,rel
DBNZ ,X,rel
DBNZ oprx8,SP,rel
DIR
INH
INH
IX1
IX
3B dd rr
4B rr
5B rr
6B ff rr
7B rr
7
4
4
7
6
8
rfwpppp
fppp
fppp
rfwpppp
rfwppp
prfwpppp
如果不为零,则A, X, 或者M 自减并且转移
( 如果(result) ≠ 0)
DBNZX 影响X 但不影响H
– 1 1 – – – – –
SP1
9E 6B ff rr
自减
DEC opr8a
DECA
DECX
DEC oprx8,X
DEC ,X
DEC oprx8,SP
DIR
INH
INH
IX1
IX
3A dd
4A
5A
6A ff
7A
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
M ← (M) – $01
A ← (A) – $01
X ← (X) – $01
M ← (M) – $01
M ← (M) – $01
M ← (M) – $01
ꢀ 1 1 – – ꢀ ꢀ –
SP1
9E 6A ff
除
A ← (H:A)÷(X); H ← 余数
DIV
INH
52
6
fffffp
– 1 1 – – – ꢀ ꢀ
EOR #opr8i
EOR opr8a
EOR opr16a
EOR oprx16,X
EOR oprx8,X
EOR ,X
IMM
DIR
EXT
IX2
IX1
IX
A8 ii
B8 dd
C8 hh ll
D8 ee ff
E8 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
带累加器的存储器异或
A ← (A ⊕ M)
0 1 1 – – ꢀ ꢀ –
F8
EOR oprx16,SP
EOR oprx8,SP
SP2
SP1
9E D8 ee ff
9E E8 ff
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表7-2. 指令集摘要( 第5 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
自增
INC opr8a
M ← (M) + $01
A ← (A) + $01
X ← (X) + $01
M ← (M) + $01
M ← (M) + $01
M ← (M) + $01
DIR
INH
INH
IX1
IX
3C dd
4C
5C
6C ff
7C
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
INCA
INCX
INC oprx8,X
INC ,X
INC oprx8,SP
ꢀ 1 1 – – ꢀ ꢀ –
SP1
9E 6C ff
JMP opr8a
JMP opr16a
JMP oprx16,X
JMP oprx8,X
JMP ,X
DIR
EXT
IX2
IX1
IX
BC dd
CC hh ll
DC ee ff
EC ff
FC
3
4
4
3
3
ppp
pppp
pppp
ppp
跳转
PC ← 跳转地址
– 1 1 – – – – –
ppp
JSR opr8a
JSR opr16a
JSR oprx16,X
JSR oprx8,X
JSR ,X
DIR
EXT
IX2
IX1
IX
BD dd
5
6
6
5
5
ssppp
pssppp
pssppp
ssppp
ssppp
跳转到子程序
PC ← (PC) + n (n = 1, 2, or 3)
Push (PCL); SP ← (SP) – $0001
Push (PCH); SP ← (SP) – $0001
PC ← Unconditional Address
CD hh ll
DD ee ff
ED ff
– 1 1 – – – – –
FD
LDA #opr8i
LDA opr8a
LDA opr16a
LDA oprx16,X
LDA oprx8,X
LDA ,X
IMM
DIR
EXT
IX2
IX1
IX
A6 ii
B6 dd
C6 hh ll
D6 ee ff
E6 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
从存储器装入累加器
A ← (M)
0 1 1 – – ꢀ ꢀ –
0 1 1 – – ꢀ ꢀ –
0 1 1 – – ꢀ ꢀ –
F6
LDA oprx16,SP
LDA oprx8,SP
SP2
SP1
9E D6 ee ff
9E E6 ff
LDHX #opr16i
LDHX opr8a
LDHX opr16a
LDHX ,X
LDHX oprx16,X
LDHX oprx8,X
LDHX oprx8,SP
IMM
DIR
EXT
IX
IX2
IX1
SP1
45 jj kk
55 dd
32 hh ll 5
3
4
ppp
rrpp
prrpp
prrfp
pprrpp
prrpp
prrpp
装入变址寄存器
(H:X)
H:X ← (M:M + $0001)
9E AE
9E BE ee ff 6
9E CE ff
9E FE ff
5
5
5
LDX #opr8i
LDX opr8a
LDX opr16a
LDX oprx16,X
LDX oprx8,X
LDX ,X
IMM
DIR
EXT
IX2
IX1
IX
AE ii
BE dd
CE hh ll
DE ee ff
EE ff
FE
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
从存储器中装入X (低位变址寄存器)
X ← (M)
LDX oprx16,SP
LDX oprx8,SP
SP2
SP1
9E DE ee ff
9E EE ff
LSL opr8a
LSLA
LSLX
LSL oprx8,X
LSL ,X
LSL oprx8,SP
DIR
INH
INH
IX1
IX
38 dd
48
58
68 ff
78
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
逻辑左移
C
0
ꢀ 1 1 – – ꢀ ꢀ ꢀ
b7
b0
( 和ASL 相同)
SP1
9E 68 ff
LSR opr8a
LSRA
LSRX
LSR oprx8,X
LSR ,X
LSR oprx8,SP
DIR
INH
INH
IX1
IX
34 dd
44
54
64 ff
74
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
逻辑右移
ꢀ 1 1 – – 0 ꢀ ꢀ
0
C
b7
b0
SP1
9E 64 ff
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-2. 指令集摘要( 第6 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
MOV opr8a,opr8a
MOV opr8a,X+
MOV #opr8i,opr8a In IX+/DIR and DIR/IX+ Modes,
DIR/DIR
DIR/IX+
IMM/DIR
IX+/DIR
4E dd dd 5
rpwpp
移动
(M)destination ← (M)source
5E dd
5
rfwpp
pwpp
rfwpp
0 1 1 – – ꢀ ꢀ –
6E ii dd 4
MOV ,X+,opr8a
H:X ← (H:X) + $0001
7E dd
42
5
5
无符号相乘
X:A ← (X) × (A)
MUL
INH
ffffp
– 1 1 0 – – – 0
取负
M ← – (M) = $00 – (M)
( 二进制补码)A ← – (A) = $00 – (A)
X ← – (X) = $00 – (X)
M ← – (M) = $00 – (M)
M ← – (M) = $00 – (M)
NEG opr8a
NEGA
NEGX
NEG oprx8,X
NEG ,X
NEG oprx8,SP
DIR
INH
INH
IX1
IX
30 dd
40
50
60 ff
70
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
ꢀ 1 1 – – ꢀ ꢀ ꢀ
SP1
9E 60 ff
M ← – (M) = $00 – (M)
NOP
NSA
INH
INH
9D
62
1
1
p
p
– 1 1 – – – – –
– 1 1 – – – – –
空操作— 使用一个总线周期
累加器半位元组交换
A ← (A[3:0]:A[7:4])
ORA #opr8i
ORA opr8a
ORA opr16a
ORA oprx16,X
ORA oprx8,X
ORA ,X
IMM
DIR
EXT
IX2
IX1
IX
AA ii
BA dd
CA hh ll
DA ee ff
EA ff
FA
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
累加器或存储器
A ← (A) | (M)
0 1 1 – – ꢀ ꢀ –
ORA oprx16,SP
ORA oprx8,SP
SP2
SP1
9E DA ee ff
9E EA ff
把累加器压入堆栈
Push (A); SP ← (SP) – $0001
PSHA
PSHH
PSHX
PULA
PULH
PULX
INH
INH
INH
INH
INH
INH
87
8B
89
86
8A
88
2
2
2
3
3
3
sp
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
– 1 1 – – – – –
把H (高位变址寄存器)压入堆栈
Push (H); SP ← (SP) – $0001
sp
把X (低位变址寄存器)压入堆栈
Push (X); SP ← (SP) – $0001
sp
累加器出栈
SP ← (SP + $0001); Pull (A)
ufp
ufp
ufp
H (高位变址寄存器)出栈
SP ← (SP + $0001); Pull (H)
X (低位变址寄存器)出栈
SP ← (SP + $0001); Pull (X)
ROL opr8a
ROLA
ROLX
ROL oprx8,X
ROL ,X
ROL oprx8,SP
DIR
INH
INH
IX1
IX
39 dd
49
59
69 ff
79
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
进位循环左移
ꢀ 1 1 – – ꢀ ꢀ ꢀ
C
b7
b0
SP1
9E 69 ff
ROR opr8a
RORA
RORX
ROR oprx8,X
ROR ,X
ROR oprx8,SP
DIR
INH
INH
IX1
IX
36 dd
46
56
66 ff
76
5
1
1
5
4
6
rfwpp
p
p
rfwpp
rfwp
prfwpp
进位循环右移
ꢀ 1 1 – – ꢀ ꢀ ꢀ
C
b7
b0
SP1
9E 66 ff
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表7-2. 指令集摘要( 第7 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
堆栈复位( 低位)
SPL ← $FF
( 不影响高字节)
RSP
RTI
INH
INH
INH
9C
1
9
5
p
– 1 1 – – – – –
中断返回
SP ← (SP) + $0001; Pull (CCR)
SP ← (SP) + $0001; Pull (A)
SP ← (SP) + $0001; Pull (X)
SP ← (SP) + $0001; Pull (PCH)
SP ← (SP) + $0001; Pull (PCL)
80
81
uuuuufppp
ufppp
ꢀ 1 1 ꢀ
ꢀ ꢀ ꢀ ꢀ
从子程序返回
SP ← SP + $0001; Pull (PCH)
SP ← SP + $0001; Pull (PCL)
RTS
– 1 1 – – – – –
SBC #opr8i
SBC opr8a
SBC opr16a
SBC oprx16,X
SBC oprx8,X
SBC ,X
IMM
DIR
EXT
IX2
IX1
IX
A2 ii
B2 dd
C2 hh ll
D2 ee ff
E2 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
带进位减
A ← (A) – (M) – (C)
ꢀ 1 1 – – ꢀ ꢀ ꢀ
F2
SBC oprx16,SP
SBC oprx8,SP
SP2
SP1
9E D2 ee ff
9E E2 ff
进位位置位
(C ← 1)
SEC
SEI
INH
INH
99
9B
1
1
p
p
– 1 1 – – – – 1
– 1 1 – 1 – – –
中断屏蔽位置位
(I ← 1)
STA opr8a
DIR
EXT
IX2
IX1
IX
B7 dd
C7 hh ll
D7 ee ff
E7 ff
3
4
4
3
2
5
4
wpp
STA opr16a
STA oprx16,X
STA oprx8,X
STA ,X
STA oprx16,SP
STA oprx8,SP
pwpp
pwpp
wpp
wp
ppwpp
pwpp
将累加器中内容存储到存储器
M ← (A)
0 1 1 – – ꢀ ꢀ –
F7
SP2
SP1
9E D7 ee ff
9E E7 ff
STHX opr8a
STHX opr16a
STHX oprx8,SP
DIR
EXT
SP1
35 dd
96 hh ll 5
9E FF ff
4
wwpp
pwwpp
pwwpp
存储H:X ( 变址寄存器)
(M:M + $0001) ← (H:X)
0 1 1 – – ꢀ ꢀ –
5
中断使能
停止处理参考MCU 文档
I bit ← 0; Stop Processing
STOP
INH
8E
2
fp...
– 1 1 – 0 – – –
STX opr8a
DIR
EXT
IX2
IX1
IX
BF dd
CF hh ll
DF ee ff
EF ff
3
4
4
3
2
5
4
wpp
STX opr16a
STX oprx16,X
STX oprx8,X
STX ,X
STX oprx16,SP
STX oprx8,SP
pwpp
pwpp
wpp
wp
ppwpp
pwpp
存储X (变址寄存器低8 位)到存储器
M ← (X)
0 1 1 – – ꢀ ꢀ –
FF
SP2
SP1
9E DF ee ff
9E EF ff
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-2. 指令集摘要( 第8 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
SUB #opr8i
SUB opr8a
IMM
DIR
EXT
IX2
IX1
IX
A0 ii
B0 dd
C0 hh ll
D0 ee ff
E0 ff
2
3
4
4
3
3
5
4
pp
rpp
prpp
prpp
rpp
rfp
pprpp
prpp
SUB opr16a
SUB oprx16,X
SUB oprx8,X
SUB ,X
SUB oprx16,SP
SUB oprx8,SP
减
A ← (A) – (M)
ꢀ 1 1 – – ꢀ ꢀ ꢀ
F0
SP2
SP1
9E D0 ee ff
9E E0 ff
软中断
PC ← (PC) + $0001
Push (PCL); SP ← (SP) – $0001
Push (PCH); SP ← (SP) – $0001
Push (X); SP ← (SP) – $0001
Push (A); SP ← (SP) – $0001
Push (CCR); SP ← (SP) – $0001
I ← 1;
SWI
INH
83
11
sssssvvfppp
– 1 1 – 1 – – –
PCH ← 高字节中断矢量
PCL ← 低字节中断矢量
转移累加器到CCR
CCR ← (A)
TAP
TAX
TPA
INH
INH
INH
84
97
85
1
1
1
p
p
p
ꢀ 1 1 ꢀ
ꢀ ꢀ ꢀ ꢀ
转移累加器到X ( 低位变址寄存器)
X ← (A)
– 1 1 – – – – –
– 1 1 – – – – –
转移CCR 到累加器
A ← (CCR)
测试零或负数
(M) – $00
(A) – $00
(X) – $00
(M) – $00
(M) – $00
(M) – $00
TST opr8a
TSTA
TSTX
TST oprx8,X
TST ,X
TST oprx8,SP
DIR
INH
INH
IX1
IX
3D dd
4D
5D
6D ff
7D
4
1
1
4
3
5
rfpp
p
p
rfpp
rfp
prfpp
0 1 1 – – ꢀ ꢀ –
SP1
9E 6D ff
转移SP 到变址寄存器.
H:X ← (SP) + $0001
TSX
TXA
INH
INH
95
9F
2
1
fp
p
– 1 1 – – – – –
– 1 1 – – – – –
转移X (低位变址寄存器)到累加器
A ← (X)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表7-2. 指令集摘要( 第9 页,共9 页)
CCR
源格式
操作
操作码
循环细节
V 1 1 H I N Z C
转移变址寄存器到SP
SP ← (H:X) – $0001
TXS
INH
INH
94
8F
2
fp
– 1 1 – – – – –
– 1 1 – 0 – – –
中断使能,等待中断
I bit ← 0; Halt CPU
WAIT
2+
fp...
源格式栏中,除了用斜体表示的表达式外,其它信息必须以相同的格式出现在汇编源文件中。原始的3 至5 个助记符是一种文字表达。所有的
逗号,井号(#),圆括号,加号(+)都是文字字符。
n —任何估算0-7 之间的单整形数的标识或表达式
opr8i —任何估算8 位立即数值的标识或表达式
opr16i —任何估算16 位立即数值的标识或表达式
opr8a —任何估算8 位直接页地址(0x00XX)的标识或表达式。
opr16a —任何估算16 位地址的标识或表达式。
oprx8 —任何估算无符号8 位立即数值的标识或表达式, 用于变址寻址
oprx16 —任何用来估值16 位立即数值的标识或表达式,用于变址寻址
rel —任何标识或表达式所涉及地址在当前指令末子节目标操作码后的下个地址起-128 至127 之间。
操作符:
寻址模式:
A
累加器
DIR
EXT
IMM
INH
IX
直接寻址模式
CCR 条件码寄存器
H
M
n
扩展寻址模式
立即寻址模式
变址寄存器高8 位
寄存器地址
内在寻址模式
任何位
无偏移量变址模式
opr
PC
操作数(1 或2 字节)
程序计数器
IX 1
IX 2
IX+
IX1+
REL
SP1
SP2
8 位偏移量变址模式
16 位偏移量变址模式
无偏移量变址、变址加1 寻址模式
8 位偏移量变址、变址加1 寻址模式
相对寻址模式
PCH 程序计数器高8 位
PCL 程序计数器低8 位
rel
相对程序计数器偏移字节
堆栈指针
SP
8 位偏移量堆栈寻址模式
16 位偏移量堆栈寻址模式
SPL 堆栈指针低8 位
X
&
〡
⊕
( )
+
变址寄存器低8 位
布尔与
循环码:
f
布尔或
布尔异或
自由周期。在自由周期,CPU 不需要使用系统总线,
一个自由周期通常是系统总线时钟的一个周期并且
通常是一个只读周期。
寄存器或存储器内容显示在圆括号里
加
p
r
s
u
v
w
程序取回;从程序寄存器的下个连续地址读取。
读8 位操作码
把一个字节推入(写入)堆栈
从堆栈弹出(读出)一个字节
从0XFFxx 读矢量( 从高字节开始)
写8 位操作码
-
减
乘
除
立即值
被装入(读:获得)
连接
ⅹ
÷
#
¨
:
条件寄存器(CCR)位
V
H
I
N
Z
C
溢出位
半进位位
中断屏蔽标识
负标识位
零标识
CCR 常用符号:
ꢀ
设置或清零
不影响
未定义
–
U
进位/ 借位标识
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表7-3. Opcode Map ( 第1 页,共2 页)
Bit-Manipulation
10
Branch
20
Read-Modify-Write
1
Control
Register/Memory
00
5
5
3
30
5
40
50
1
60
5
70
4
80
9
90
3
A0
2
B0
3
C0
4
D0
4
E0
3
3
BRSET0 BSET0
BRA
NEG
NEGA
NEGX
NEG
NEG
RTI
BGE
SUB
SUB
SUB
SUB
SUB
3
01
DIR
5
2
11
DIR
5
2
21
REL
3
2
DIR
5
1
INH
4
1
INH
4
2
IX1
5
1
IX
5
1
81
INH
6
2
91
REL
3
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
IX
3
31
41
51
61
71
A1
B1
C1
D1
E1
BRCLR0 BCLR0
BRN
CBEQ CBEQA CBEQX CBEQ
CBEQ
RTS
BLT
CMP
CMP
CMP
CMP
CMP
CMP
3
DIR
5
2
DIR
5
2
22
REL
3
3
DIR
5
3
IMM
5
3
IMM
6
3
IX1+
1
2
IX+
1
1
82
INH
2
REL
3
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
02
12
32
42
52
62
72
5+ 92
A2
B2
C2
D2
E2
F2
BRSET1 BSET1
BHI
LDHX
MUL
DIV
NSA
DAA
BGND
BGT
SBC
SBC
SBC
SBC
SBC
SBC
3
DIR
5
2
DIR
5
2
23
REL
3
3
EXT
5
1
43
INH
1
1
53
INH
1
1
63
INH
5
1
73
INH
4
1
INH
2
REL
3
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
03
13
33
83
11 93
A3
B3
C3
D3
E3
F3
BRCLR1 BCLR1
BLS
COM
COMA
COMX
COM
COM
SWI
BLE
CPX
CPX
CPX
CPX
CPX
CPX
3
DIR
5
2
DIR
5
2
24
REL
3
2
DIR
5
1
INH
1
INH
2
IX1
5
1
IX
4
1
84
INH
1
2
94
REL
2
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
04
14
34
44
1
54
1
64
74
A4
B4
C4
D4
E4
F4
BRSET2 BSET2
BCC
LSR
LSRA
LSRX
LSR
LSR
TAP
TXS
AND
AND
AND
AND
AND
AND
3
DIR
5
2
DIR
5
2
25
REL
3
2
35
DIR
4
1
INH
3
1
INH
4
2
65
IX1
3
1
75
IX
5
1
85
INH
1
1
95
INH
2
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
05
15
45
55
A5
B5
C5
D5
E5
F5
BRCLR2 BCLR2
BCS
STHX
LDHX
LDHX
CPHX
CPHX
TPA
TSX
BIT
BIT
BIT
BIT
BIT
BIT
LDA
STA
3
DIR
5
2
DIR
5
2
26
REL
3
2
DIR
5
3
IMM
1
2
DIR
1
3
IMM
5
2
DIR
4
1
86
INH
3
1
96
INH
5
2
A6
IMM
2
2
B6
DIR
3
3
C6
EXT
4
3
D6
IX2
4
2
E6
IX1
3
1
F6
IX
3
06
16
36
ROR
46
56
66
ROR
76
ROR
BRSET3 BSET3
BNE
RORA
RORX
PULA
STHX
LDA
LDA
LDA
LDA
LDA
3
07
DIR
5
2
17
DIR
5
2
27
REL
3
2
DIR
5
1
INH
1
INH
2
IX1
5
1
IX
4
1
87
INH
2
3
97
EXT
1
2
A7
IMM
2
2
B7
DIR
3
3
C7
EXT
4
3
D7
IX2
4
2
E7
IX1
3
1
F7
IX
2
37
47
1
57
1
67
77
BRCLR3 BCLR3
BEQ
ASR
ASRA
ASRX
ASR
ASR
PSHA
TAX
AIS
STA
STA
STA
STA
3
08
DIR
5
2
18
DIR
5
2
28
REL
3
2
DIR
5
1
INH
1
1
INH
1
2
IX1
5
1
IX
4
1
88
INH
3
1
98
INH
1
2
A8
IMM
2
2
B8
DIR
3
3
C8
EXT
4
3
D8
IX2
4
2
E8
IX1
3
1
F8
IX
3
38
48
58
68
78
BRSET4 BSET4
BHCC
LSL
LSLA
LSLX
LSL
LSL
PULX
CLC
EOR
EOR
EOR
EOR
EOR
EOR
3
DIR
5
2
DIR
5
2
REL
2
39
DIR
5
1
INH
1
1
INH
1
2
69
IX1
5
1
79
IX
4
1
INH
2
1
99
INH
1
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
09
19
29
3
49
59
89
A9
B9
C9
D9
E9
F9
BRCLR4 BCLR4
BHCS
ROL
ROLA
ROLX
ROL
ROL
PSHX
SEC
ADC
ADC
ADC
ADC
ADC
ADC
3
DIR
5
2
DIR
5
2
REL
3
2
DIR
5
1
INH
1
1
INH
1
2
IX1
5
1
IX
4
1
INH
3
1
INH
1
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
0A
1A
2A
3A
4A
5A
6A
7A
8A
9A
AA
BA
CA
DA
EA
FA
BRSET5 BSET5
BPL
DEC
DECA
DECX
DEC
DEC
PULH
CLI
ORA
ORA
ORA
ORA
ORA
ORA
3
DIR
5
2
DIR
5
2
2B
REL
3
2
DIR
7
1
INH
1
INH
2
IX1
7
1
IX
6
1
INH
2
1
9B
INH
1
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
0B
1B
3B
4B
4
5B
4
6B
7B
8B
AB
BB
CB
DB
EB
FB
BRCLR5 BCLR5
BMI
DBNZ
DBNZA DBNZX
DBNZ
DBNZ
PSHH
SEI
ADD
ADD
ADD
ADD
ADD
ADD
3
DIR
5
2
DIR
5
2
2C
REL
3
3
DIR
5
2
INH
1
2
INH
1
3
IX1
5
2
IX
4
1
INH
1
9C
INH
1
2
IMM
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
0C
1C
3C
4C
5C
6C
7C
8C
1
BC
CC
DC
EC
FC
BRSET6 BSET6
BMC
INC
INCA
INCX
INC
INC
CLRH
RSP
JMP
JMP
JMP
JMP
JMP
3
DIR
5
2
DIR
5
2
REL
3
2
3D
DIR
4
1
INH
1
1
INH
1
2
6D
IX1
4
1
7D
IX
3
1
INH
1
INH
1
2
DIR
5
3
EXT
6
3
IX2
6
2
IX1
5
1
IX
5
0D
1D
2D
4D
5D
9D
AD
5
BD
CD
DD
ED
FD
BRCLR6 BCLR6
BMS
TST
TSTA
TSTX
TST
TST
NOP
BSR
JSR
JSR
JSR
JSR
JSR
3
DIR
5
2
DIR
5
2
REL
3
2
3E
DIR
6
1
INH
5
1
INH
5
2
6E
IX1
4
1
7E
IX
5
1
INH
2
REL
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
IX
3
0E
1E
2E
4E
5E
8E
2+ 9E
Page 2
AE
LDX
BE
LDX
CE
DE
EE
LDX
FE
LDX
BRSET7 BSET7
BIL
CPHX
MOV
MOV
MOV
MOV
STOP
LDX
LDX
3
0F
DIR
5
2
1F
DIR
5
2
REL
3
3
3F
EXT
3
DD
1
2
DIX+
1
3
6F
IMD
5
2
IX+D
4
1
INH
2
IMM
2
2
DIR
3
3
EXT
4
3
IX2
4
2
IX1
3
1
FF
IX
2
2F
5
4F
5F
7F
1
8F
2+ 9F
1
AF
BF
CF
DF
EF
BRCLR7 BCLR7
BIH
CLR
CLRA
CLRX
CLR
CLR
WAIT
TXA
AIX
STX
STX
STX
STX
STX
3
DIR
2
DIR
2
REL
2
DIR
1
INH
1
INH
2
IX1
IX
1
INH
1
INH
2
IMM
2
DIR
3
EXT
3
IX2
2
IX1
1
IX
INH
IMM
DIR
EXT
DD
隐含寻址
立即寻址
直接寻址
扩展寻址
REL
IX
IX1
IX2
IMD
相对寻址
SP1
SP2
IX+
8 位偏移量堆栈寻址
16 位偏移量堆栈寻址
无偏移量自动加1 变址寻址
无偏移量变址寻址
8 位偏移量变址寻址
16 位偏移量变址寻址
立即- 直接寻址
IX+D 变址-直接-变址加1寻址
IX1+ 8 位偏移量自动加1 变址寻址
直接-直接寻址
DIX+ 直接- 自动加1 变址寻址
用16 进制表示
操作码
F0
3
HCS08 指令周期
SUB
助记寻址方式
字节数
1
IX
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表7-3. Opcode Map ( 第2 页,共2 页)
Bit-Manipulation
Branch
Read-Modify-Write
9E60
Control
Register/Memory
6
9ED0
SUB
5
9EE0
4
NEG
SUB
3
SP1
6
4
SP2
5
3
SP1
4
9E61
9ED1
9EE1
CBEQ
CMP
CMP
4
SP1
4
SP2
5
3
SP1
4
9ED2
9EE2
SBC
SBC
4
SP2
5
3
SP1
4
9E63
6
9ED3
9EE3
6
COM
CPX
CPX
3
SP1
6
4
SP2
5
3
SP1
4
SP1
9E64
9ED4
9EE4
LSR
AND
AND
3
SP1
4
SP2
5
3
SP1
4
9ED5
9EE5
BIT
BIT
4
SP2
5
3
SP1
4
9E66
6
9ED6
9EE6
ROR
LDA
LDA
3
SP1
6
4
SP2
5
3
SP1
4
9E67
9ED7
9EE7
ASR
STA
STA
3
SP1
6
4
SP2
5
3
SP1
4
9E68
9ED8
9EE8
LSL
EOR
EOR
3
SP1
6
4
SP2
5
3
SP1
4
9E69
9ED9
9EE9
ROL
ADC
ADC
3
SP1
6
4
SP2
5
3
SP1
4
9E6A
9EDA
9EEA
DEC
ORA
ORA
3
SP1
8
4
SP2
5
3
SP1
4
9E6B
9EDB
9EEB
DBNZ
ADD
ADD
4
SP1
4
SP2
3
SP1
9E6C
6
INC
3
SP1
5
9E6D
TST
3
SP1
5
6
5
5
4
5
IX
IX2
IX1
SP1
5
9E6F
6
CLR
STX
STX
STHX
3
SP1
4
SP2
3
SP1
3
SP1
INH
隐含寻址
立即寻址
直接寻址
扩展寻址
直接-直接寻址
REL
IX
IX1
IX2
IMD
相对寻址
SP1
SP2
IX+
8 位偏移量堆栈寻址
IMM
DIR
EXT
DD
无偏移量变址寻址
8 位偏移量变址寻址
16 位偏移量变址寻址
立即- 直接寻址
16 位偏移量堆栈寻址
无偏移量自动加1 变址寻址
IX+D 变址-直接-变址加1寻址
IX1+
8 位偏移量自动加1 变址寻址
DIX+ 直接- 自动加1 变址寻址
用16 进制表示
9E60
3
6
HCS08 指令周期
操作码和前置位(9E)
NEG
助记寻址方式
SPI
字节数
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
第8 章 键盘中断(S08KBIV1)
8.1
简介
MC9S08AC16 系列MCU 包含一个KBI 模块,此模块支持7 个键盘中断输入,这些输入与端口D 和G
复用引脚。关于这些引脚的逻辑和硬件方面的更多信息,请参见第2 章引脚及其连接。
8.2
键盘引脚复用
KBIP7 与PTD7 和AD15 复用。当KBIP7 使能,引脚强制为输入状态。端口D 上拉使能位仍用于控制上
拉电阻。当该引脚做ADC 输入时,PTD7 和KBIP7 功能均禁止。
KBIP6 与PTD3 和AD11 复用引脚。KBIP5 与PTD2 和AD10 复用引脚。这些输入与端口和ADC 功能操
作对引脚的复用与上述KBIP7 的方式相同。
KBI 的输入KBIP4-KBIP0 和PTG4-PTG0 复用引脚。这些引脚除了不复用ADC 输入外,与上述KBIP7
的方式相同。
KBIP3-KBIP0 为下降沿/ 低电平触发。KBIP7-KBIP4 可以被设置为上升沿/ 高电平或下降沿/ 低电平触
发。当KBIP7-KBIP0 输入全部都使能。并且被设置为上升沿/ 高电平有效,则相应引脚上拉电阻使能,会被
强制为下拉电阻使能。
8.3
特性
键盘中断模块(KBI)的特性如下:
•
•
4 个下降沿/ 低电平触发
4 个上升沿/ 高电平或下降沿/ 低电平触发
• 可选择边沿触发或边沿电平触发
• 中断标志和中断使能控制
能从stop3、stop2、stop1 或等待状态唤醒MCU。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。
2 .若IRQ 使能(IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测(IRQEDG=1), 下拉使能。
3 .IRQ 没有通过钳位二极管连向VDD。IRQ 不能加载高于VDD 的电平
4 .引脚包含集成的上拉设备。
5 .PTD3、PTD2 和PTG4 引脚包含上拉/ 下拉设备。当KBI 使能(KBIPEn=1)而且上升沿被选择(KBEDGn=1), 下拉使能。
图 8-1. 显亮KBI 模块和引脚的MC9S08AC16 模块结构图
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
8.3.1
KBI 模块结构图
图 8-2 为KBI 模块的结构图。
BUSCLK
KBACK
RESET
VDD
1
KBF
0
KBIxP0
CLR
Q
S
S
KBIPE0
KBIPEn
D
同步器
CK
KBEDG0
STOP 旁路
键盘中断FF
键盘中断请
求
STOP
1
0
KBIxPn
KBMOD
KBIE
KBEDGn
图 8-2. KBI 模块结构图
8.4
寄存器定义
本节描述了KBI 模块所有的寄存器和相关控制位。
KBI 寄存器的绝对地址参见本手册内存一章中的直接页寄存器的概述。这里通过这些寄存器和控制位的名
称来引用它们。Freescale 提供一个头文件把它们的名称翻译为绝对地址。
8.4.1
KBI 状态控制寄存器(KBISC)
7
6
5
4
3
2
1
0
读
写
KBF
0
KBEDG7
KBEDG6
KBEDG5
KBEDG4
KBIE
KBMOD
KBACK
0
复位:
0
0
0
0
0
0
0
= 保留或未使用
图 8-3. KBI 状态控制寄存器(KBISC)
表8-1. KBISC 寄存器域描述
描述
域
KBI 端口边沿选择位——当引脚被设置为KBI 中断输入(KBIPEn = 1)时,每个可读写位决定相应KBI 端
口引脚的触发事件需要的边沿或边沿和电平的极性。参见KBIMOD 控制位,它决定引脚是边沿触发还是边沿
和电平触发。
0 下降沿/ 低电平。
1 上升沿/ 高电平。
7:4
KBEDG[7:4]
键盘中断标志——只要在使能的KBI 引脚上检测到选定的边沿事件,这个只读位就被设置。若KBACK 控制
位置1,则本标志位清零。如果KBIMOD = 1 选择了边沿和电平操作而且使能的KBI 引脚保持引起事件需要
的电平,标志位保持置位1。
KBF 可以用来作为软件轮询标志(KBIE =0)或向CPU 产生硬件中断请求(KBIE = 1)。
0 无KBI 中断挂起。
3
KBF
1 有KBI 中断挂起。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表8-1. KBISC 寄存器域描述
域
描述
键盘中断应答——通过置1 KBACK,本只写位(读为0)可以清KBF 状态标志。如果KBIMOD=1 选择了
边沿和电平操作而且使能的KBI 引脚保持引起事件需要的电平,KBF 保持置位1,所以置1 KBACK 不会清
KBF 标志。
2
KBACK
键盘中断使能——当KBF 状态标志位为1 时,这个可读写控制位决定是否产生硬件中断。当KBIE = 0 时,
没有硬件中断产生,但是KBF 仍可作为软件轮询使用。
0 KBF 不产生硬件中断(使用轮询)。
1
KBIE
1 当KBF=1 时,发出KBI 硬件中断请求。
键盘检测模式——这个可读写控制位决定检测仅边沿还是边沿和电平。KBI 口的0-3 位检测仅下降沿或下降
沿和低电平。KBI 口的4-7 位设置为检测下面中的一种:
0
•
•
仅上升沿或上升沿和高电平(KBEDGn=1)
仅下降沿或下降沿和低电平(KBEDGn=0)
KBIMOD
0 仅检测边沿。
1 同时检测边沿和电平。
8.4.2
KBI 引脚使能寄存器(KBIPE)
7
6
5
4
3
2
1
0
读
写
KBIPE7
KBIPE6
KBIPE5
KBIPE4
KBIPE3
KBIPE2
KBIPE1
KBIPE0
复位:
0
0
0
0
0
0
0
0
图 8-4. KBI 引脚使能寄存器(KBIPE)
表8-2. KBIPE 寄存器域描述
描述
域
KBI 端口引脚使能位——每个可读写位决定相应的KBI 口引脚作为键盘中断输入还是通用I/O 引脚。
0 KBI 口的位n 是与KBI 无关的通用I/O 引脚。
1 KBI 口的位n 作为键盘中断输入。
7:0
KBIPE[7:0]
8.5
功能描述
8.5.1
引脚使能
KBIPE 寄存器的KBIPEn 控制位允许用户使能(KBIPEn=1)所有接到KBI 模块的与KBI 相关的引脚的
组合。KBIPE 中为0 的引脚作为通用I/O 引脚,与KBI 模块无关。
8.5.2
边沿和电平触发
同步逻辑用于检测边沿。在检测边沿前,KBI 模块中使能的键盘输入不是触发需要的电平(deasserted
level)。
在一个总线周期内,使能的键盘输入信号是逻辑1,下一个总线周期为逻辑0,则下降沿被检测到。
在一个总线周期内,键盘输入信号是逻辑0,下一个总线周期为逻辑1,则上升沿被检测到。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
KBIMOD 控制位通过置位来重新配置检测逻辑来检测边沿和电平。在KBIMOD=1 时,当检测到边沿时
(当一个或多个使能引脚从1 变成0,其他使能引脚仍然是0),KBF 状态标志置位。但是只要有使能的引脚
为1,标志位保持置位(不能清零)。当MCU 进入停止模式时,由于时钟被停止,同步边沿检测逻辑被旁
路。在停止模式时,KBI 输入作为异步的电平触发输入来唤醒MCU。
8.5.3
KBI 中断控制
当KBI 输入引脚检测到边沿事件时,KBF 状态标志置1。如果KBISC 寄存器的KBIE=1,当KBF=1 时,
发出硬件中断请求。通过置1 键盘确认位(KBACK),对KBF 标志清零。
当KBIMOD=0 (选择仅边沿操作)时,通常通过对KBACK 置1 来对KBF 标志清零。当KBIMOD=1
(选择边沿和电平操作)时,只要任何键盘输入为1,KBF 标志不能清零。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
第9 章 内部时钟发生器(S08ICGV4)
内部时钟发生器模块(ICG)为MC9S08AC16 系列单片机提供系统时钟。其模拟供电线路VDD 和VSS
源自MCU 的VDD 和VSS 的引脚。ICG 的电气参数可参考附录A 电气特性和定时说明中。
SYSTEM
CONTROL
LOGIC
ICGERCLK
RTI
TPM1
TPM2
IIC1
SCI1
SCI2
SPI
FFE
÷2
ICG
XCLK*
COP
BUSCLK
1 kHz
ICGOUT
ICGLCLK*
÷2
CPU
BDC
TPM3
ADC
RAM
FLASH
* ICGLCLK 是MC9S08AC16 系列的预备时钟源。
* XCLK 是固定频率时钟。
ADC 频率有最大值和最小值要求,见附录电气特性。
Flash 包含编程和擦除操作的频率需求,见附录电气特性。
图 9-1. 系统时钟分配图
注意
Freescale 半导体公司建议闪存的位置0xFFBE 被预留存放非易失性ICGTRM。这
将允许调试器和编程器厂商进行手动调整操作及储存合成的ICGTRM 值,以便用
户访问。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
1 .端口引脚作为输入时可以通过软件设置选择内部上拉设备。
2 .若IRQ 使能(IRQPE=1),引脚包括可软件配置的上下拉设备。若选择了上升沿检测(IRQEDG=1), 下拉使能。
3 .IRQ 没有通过钳位二极管连向VDD。IRQ 不能加载高于VDD 的电平
4 .引脚包含集成的上拉设备。
5 .PTD3、PTD2 和PTG4 引脚包含上拉/ 下拉设备。当KBI 使能(KBIPEn=1)而且上升沿被选择(KBEDGn=1), 下拉使能。
图 9-2. 显亮ICG 模块和引脚的MC9S08AC16 模块结构图
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
9.1
概述
ICG 提供多个时钟源。这为用户在均衡成本、精度、电流消耗量以及性能时,提供了极大的灵活性,如
图 9-3 所示,ICG 由四个功能模块组成。下面将对这些模块进行简要的描述,详细描述请参见后续章节。
• 振荡器模块—振荡器模块用于连接外部晶振或振荡器。它提供两种可软件选择的频率范围,以获得最
佳的启动和稳定性。振荡器模块可以产生一个外部方波给系统时钟。外部时钟源可以提供非常精确的
时钟。HGO 可以配置振荡器为低功耗模式或高幅模式。
• 内部辅助发生器—内部辅助发生器由两个受控时钟源组成。一个为大约8 MHz 作为背景调试控制器的
本地时钟。另一个时钟源是典型的243 kHZ,当一个精确的定时事件输入到MCU 时,它可通过软件
进行微调(Trim) 以提高其精确度。这将提供一个非常可靠,低成本的时钟源。
• 锁频环—对内部或外部时钟源进行倍频的时候,需要用到锁频环。当电路频率锁定或失锁时,状态位
将提供标志信息。另外这个模块可以监控外部参考时钟及时钟信号是否有效。
• 时钟选择模块—时钟选择模块为不同时钟源连接到系统时钟树提供几种开关选择。ICGDCLK 是FLL
的输出倍频时钟,ICGERCLK 是源自晶振或外部时钟源的参考时钟频率,FFE( 固定频率使能) 是一
个用来控制系统固定频率时钟(XCLK)的控制信号。ICGLCLK 是背景调试控制器的时钟源。
9.1.1
特性
该模块非常易用,许多功能无需用户干预自动实现。若需要快速配置此模块,请参考 9.5 节 初始化/ 应
用信息,并选取一个与应用相似的例子。
ICG 和时钟分配系统的特性如下:
• 几种可选主时钟源提供灵活的成本,频率和精确度选择。
•
•
32 kHz ~100 kHz 的晶振或振荡器
1 MHz ~16 MHz 的晶振或振荡器
• 外部时钟
• 内部参考发生器
• 缺省设置为自时钟模式以获得最小的启动延时
• 频率锁定回路(FLL)产生8 MHz ~40 MHz 时钟( 总线时钟最高至20 MHz)—用外部或内部时钟作
参考频率。
• 自动停止非工作状态的时钟源。
• 丢失时钟或者FLL 失锁会产生复位或中断
• 数字控制振荡器(DCO)保留先前的频率设定,当从stop3 模式恢复时允许快速频率锁定。
• 在丢失或移除参考时钟时,DCO 将维持操作频率。
• 后FLL 分频器选择8 个总线分频约数(/1 到/128) 中之一。
• 实时中断的独立自时钟源。
• 可调整的内部时钟源支持串行通讯,无需额外的外部部件。
• 锁获得后自动FLL 接触。
• 外部振荡器可选择低功率或高增益
9.1.2
操作模式
本节对操作模式进行简单描述。详细描述参见 9.4 节 功能描述。
• 模式1 —OFF
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
输出时钟,ICGOUT 是静态的,当STOP 指令被执行时,将进入此模式。
• 模式2 —自时钟(SCM)
模式2 是缺省模式,在复位后立即进入此模式。内部时钟发生器的FLL 是开环的,数字控制振荡器自
由运行在设置的频率。
• 模式3 —FLL 参与模式(FEI)
在此模式下,FLL 对内部时钟源进行可编程倍频来产生频率。
• 当FLL 试图上锁时,未上锁的FEI 是一个暂态。此时,FLL 的数字控制振荡器(DCO) 频率偏离目
标频率, 而FLL 调整数字控制振荡器以达到目标频率。
• 当FLL 检测到数字控制振荡器锁定为目标倍频频率时,FLL 将上锁。
• 模式4—FLL 外部旁路
在这种模式下,ICG 被配置为旁路FLL,而使用外部时钟作为系统时钟源。
• 模式5—外部使用的FLL (FEE)
内部时钟发生器的FLL 对外部时钟源进行倍频
• 当FLL 试图上锁时,未上锁的FEI 是一个暂态。此时,FLL 的数字控制振荡器(DCO) 频率偏离目
标频率, 而FLL 调整数字控制振荡器以达到目标频率。
• 当FLL 检测到数字控制振荡器锁定为目标倍频频率时,FLL 将上锁。
9.1.3
功能结构图
图 9-3 是内部时钟发生器(ICG)模块的功能结构图。
EXTAL
ICG
振荡器(OSC)
选择
时钟
带外部参考选择时钟
ICGERCLK
输出
时钟
选择
XTAL
ICGDCLK
/R
DCO
ICGOUT
锁频环
(FLL)
参考
选择
1
V
V
DDA
时钟丢失和
时钟检测
2
SSA
固定
时钟
选择
FFE
IRG
TYP 243 kHz
ICGIRCLK
内部
参考
8 MHz
RG
本地时钟,供BDC选择使用
发生器
ICGLCLK
1
不是所有的HCS08 芯片都含有ICG 单独的电源引脚。参阅设备引脚分配。
图 9-3. ICG 框图
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
9.2
外部信号描述
该振荡器引脚用来提供一个外部时钟源给MCU。振荡器引脚在低功耗模式下(缺省)其增益受控。在低
功耗模式下振荡器振幅限制为约1 V (峰值与峰值之间)。
9.2.1
EXTAL—外部参考时钟/ 振荡器输入
若是第一次写ICGC1,无论选择FEE 模式或者FBE 模式,该引脚将由REFS 决定作为外部时钟输入或
振荡器电路输入。若是第一次写ICGC1,无论选择FEI 模式或者SCM 模式,该引脚都不被ICG 使用。
9.2.2
XTAL—振荡器输出
若是第一次写ICGC1,无论选择FEE 模式或者FBE 模式,该引脚将被作为振荡器电路输出。若是第一
次写ICGC1,无论选择FEI 模式或者SCM 模式,该引脚将不被ICG 使用。振荡器能够被配置提供更高振幅
输出,降低噪音影响。这种操作模式通过置HGO = 1 来选择。
9.2.3
外部时钟连接
若使用外部时钟,则引脚连接如图 9-4 所示。
ICG
XTAL
EXTAL
VSS
未连接
时钟输入
图 9-4. 外部时钟连接
9.2.4
外部晶振/ 谐振器连接
如果使用外部晶振/ 谐振器,那么引脚可按图 9-5 连接。推荐的元件值被列在附录 A 电气特性和时序规
范。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
ICG
EXTAL
VSS
XTAL
RS
C1
C2
RF
晶振或谐振器
图 9-5. 使用外部参考频率的连接
9.3
寄存器定义
参阅存储器节的直接页寄存器,可以找到所有ICG 寄存器绝对地址分配表。这部分通过名称检索寄存器
和控制位。飞思卡尔提供一个头文件用来把名称转换为相应的绝对地址。
9.3.1
ICG 控制寄存器1 (ICGC1)
7
6
5
4
3
2
1
0
R
0
HGO1
RANGE
REFS
CLKS
OSCSTEN
LOCD
W
Reset
0
1
0
0
0
1
0
0
= 保留或未使用
1
该位在复位后仅可写1 次。之后的写操作被忽略。
图 9-6. ICG 控制寄存器1 (ICGC1)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表9-1. ICGC1 寄存器位描述
位
描述
高增益振荡器的选择位—该位用来选择低功耗操作或高增益操作以降低噪声影响。该位复位后只可写一次。
0 振荡器配置为低功耗操作
1 振荡器配置为高增益操作
7
HGO
频率范围选择位—该位控制振荡器,参考分频器,FLL 环路分频器倍频因子(P)。它为ICG 选择频率范围。
该位复位后只可写一次。该位仅在外部使用FLL(FEE) 和FLL 外部旁路(FBE) 模式有效。
0 振荡器配置为低频率范围。P = 64
6
RANGE
1 振荡器配置为高频率范围。P = 1
外部参考源选择—该位控制ICGERCLK 的外部参考时钟源。该位复位后只可写一次。
0 外部时钟请求
1 振荡器使用晶振或振荡器请求
5
REFS
时钟模式选择—该位控制时钟模式。如果请求FLL 外部旁路模式(FBE),除非ERCS=1,否则该位将不能被选
择。如果ICG 关闭,该位将保持不变。如果先前写未完成,则写CLKS 将无效。
00 自时钟
01 内部参考使用的FLL
4:3
CLKS
10 外部参考旁路FLL
11 外部参考使用的FLL
CLKS 位在任何时间都可写,除非在复位后的第一次写为CLKS = 0X,CLKS 位不能被写为1X 直到下个复位操
作之后。
在OFF 模式下振荡器使能位—当ICG 关闭时,该位控制振荡器电路是否保持使能。如果HGO = 1 并且
RANGE = 1,该位无效。
0 当ICG 处在OFF 模式时,振荡器禁止,除非使能位为高,CLKS = 10 并且REFST = 1。
1 当ICG 处于OFF 模式时,振荡器被使能,CLKS = 1X 并且REFST = 1。
2
OSCSTEN
禁用时钟丢失检测
0 时钟丢失检测允许
1 时钟丢失检测禁止
1
LOCD
9.3.2
ICG 控制寄存器2 (ICGC2)
7
6
5
4
3
2
1
0
R
W
LOLRE
MFD
LOCRE
RFD
Reset
0
0
0
0
0
0
0
0
图 9-7. ICG 控制寄存器2 (ICGC2)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表9-2. ICGC2 寄存器位描述
位
描述
失锁复位使能位—该位决定当失锁发生的时候,ICG 发送的请求。只有当LOLS 被置位时,该位才有效。
0 失锁产生一个中断请求
1 失锁产生一个复位请求
7
LOLRE
倍频因子—该位控制环路FLL 中可编程倍频因子。由MFD 位指定的值确定应用于参考频率的倍频因子(N)。
如果先前的一个写操作未完成,则写MFD 位不产生影响。为N 选择一个充分低的值以确保fICGDCLK 不会超出
它的最大值。
000 倍频因子=4
001 倍频因子=6
010 倍频因子=8
011 倍频因子=10
100 倍频因子=12
101 倍频因子=14
110 倍频因子=16
111 倍频因子=18
6:4
MFD
时钟丢失复位使能—该位决定系统如何管理一个时钟丢失。
0 时钟丢失产生一个中断请求
1 时钟丢失产生一个复位请求
3
LOCRE
分频器—该位在时钟选择电路后控制分频器值。由RFD 位指定的值确定分频因子用于选定的输出时钟源。如果
先前的写操作未完成,则写RFD 位不产生影响。
000 分频因子=1
001 分频因子=2
010 分频因子=4
2:0
RFD
011 分频因子=8
100 分频因子=16
101 分频因子=32
110 分频因子=64
111 分频因子=128
9.3.3
ICG 状态寄存器1 (ICGS1)
7
6
5
4
3
2
1
0
R
W
CLKST
REFST
LOLS
LOCK
LOCS
ERCS
ICGIF
1
0
Reset
0
0
0
0
0
0
0
= 保留或未使用
图 9-8. ICG 状态寄存器1 (ICGS1)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表9-3. ICGS1 寄存器位描述
位
描述
时钟模式状态位—该位标识当前时钟模式。在写CLKS 位后由于需要时钟域之间的内部同步,CLKS 位不会立即
更新。
7:6
00 自时钟
CLKST
01 内部参考使用的FLL
10 外部参考旁路FLL
11 外部参考使用的FLL
参考时钟状态—该位标识时钟参考选择电路当前使用的时钟参考源。
0 选择外部时钟
1 选择晶振/ 振荡器
5
REFST
FLL 失锁状态—该位是FLL 锁状态的关联指示。
0 自从LOCS 最近一次被清零后,FLL 没有意外丢失锁。
1 自从LOCS 最近一次被清零后,FLL 出现意外失锁,LOLRE 决定将采取的行动。
4
LOLS
FLL 锁状态—该位标识FLL 是否已获锁定。在关闭、自时钟、FLL 旁路模式下该位被清零。
0 FLL 当前未锁
1 FLL 当前被锁
3
LOCK
时钟状态丢失—该位标识ICG 时钟状态丢失。
0 自从LOCS 最近一次被清零后,ICG 没有丢失时钟。
1 自从LOCS 最后一次被清零后,ICG 出现时钟丢失,LOCRE 决定后续采取的行动。
2
LOCS
外部参考时钟状态—该位标识外部参考时钟(ICGERCLK)是否满足最小频率要求。
0 外部参考时钟不稳定,频率要求未满足
1 外部参考时钟稳定,频率要求满足
1
ERCS
ICG 中断标识—当出现挂起的ICG 中断请求时,ICGIF 读/ 写标识被置位。当ICGIF 被置位时可通过复位或读
取ICG 状态寄存器,并向ICGIF 位写1 来清零。如果在清零序列完成之前另一个ICG 中断发生,该序列被复
位,因此在清零上一个中断的序列后,ICGIF 还将保持原设置。写逻辑0 给ICGIF 无影响。
0 无挂起的ICG 中断请求
0
ICGIF
1 有一个ICG 中断请求挂起
9.3.4
ICG 状态寄存器2 (ICGS2)
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
DCOS
Reset
0
0
0
0
0
0
0
0
= 保留或未使用
图 9-9. ICG 状态寄存器2 (ICGS2)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表9-4. ICGS2 寄存器位描述
位
描述
数字控制振荡器时钟稳定—当DCO 时钟(ICG2DCLK) 稳定时DCOS 位被置位,表示计数错误没被超过两次连
续采样的nunlock 所改变,并且该DCO 时钟不是静止的。当退出OFF 模式,如果CLKS=X1,该位用来决定何
时转换到请求的时钟模式。它同时也用在自时钟模式来决定何时开始监视DCO 时钟。进入OFF 模式该位被清
零。
0
DCOS
0 DCO 时钟不稳定
1 DCO 时钟稳定
9.3.5
ICG 滤波器寄存器(ICGFLTU、ICGFLTL)
7
6
5
4
3
2
1
0
R
W
0
0
0
0
FLT
Reset
0
0
0
0
0
0
0
0
= 保留或未使用
图 9-10. ICG 滤波寄存器高八位(ICGFLTU)
表9-5. ICGFLTU 寄存器位描述
描述
位
滤波器值—表明当前滤波器值,该值控制DCO 频率。除了自时钟模式(CLKS = 00),该位可读。在自时钟模
式下任何写ICGFLTU 将更新当前12 位滤波器值。如果前一个关锁序列未完成,写ICGFLTU 寄存器不会影响
FLT。
3:0
FLT
7
6
5
4
3
2
1
0
R
W
FLT
Reset
1
1
0
0
0
0
0
0
图 9-11. ICG 滤波寄存器低八位(ICGFLTL)
表9-6. ICGFLTL 寄存器位描述
描述
位
滤波器值—表明当前滤波器值,该值控制DCO 频率。除了自时钟模式(CLKS=00),该位可读。在自时钟模式下
任何写ICGFLTU 将更新当前12 位滤波器值。如果前一个关锁序列未完成,写ICGFLTU 寄存器不会影响FLT。滤
波器寄存器显示滤波器值(FLT)
7:0
FLT
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
9.3.6
ICG 调整寄存器(ICGTRM)
7
6
5
4
3
2
1
0
R
TRIM
W
POR
1
0
0
0
0
0
0
0
Reset:
U
U
U
U
U
U
U
U
U = 不受MCU 复位影响
图 9-12. ICG 调整寄存器(ICGTRM)
表9-7. ICGTRM 寄存器位描述
描述
位
7:0
TRIM
ICG 调整设置—该位控制内部参考发生器频率。允许POR 周期有25% 浮动。该位通过二进制加权改变周期
(例如,位1 调整是位0 调整的两倍)。在调整时,增加其二进制值将会增长周期,反之,减少值将缩短周期。
9.4
功能描述
本节将描述ICG 五个工作模式的功能。同时讨论时钟丢失和失锁错误及进入每个模式的必要条件。ICG
非常具有灵活性,在某些配置下它可能超越某个时钟规定。当使用FLL 时,配置ICG,则ICGDCLK 的频率
不会超出它的最大值,确保MCU 正常工作。
9.4.1
OFF 模式
通常情况下,当CPU 进入停止模式时,ICG 将停止所有时钟并进入OFF 模式。当然,在STOP 模式
下,有两种情况时钟继续工作。
9.4.1.1
活跃BDM
当BDM 允许时,ICG 继续根据最初设置运行。这将允许通过BDC 控制器访问存储器和控制寄存器。
9.4.1.2
OSCSTEN 位设置
当在停止模式下允许振荡器时(OSCSTEN=1),除了单独的时钟发生器工作外,MCU 其他部分所需的
时钟源都被关闭。这种方式避免了冗长的振荡器启动时间,或在停止模式3 下使用振荡器来运行RTI。
9.4.1.3
停止/OFF 模式恢复
如果中断从停止模式唤醒CPU,则先前设置的控制位有效,且系统时钟恢复工作。如果是FEE 模式,
ICG 将以内部参考时钟为源时钟直到外部时钟稳定。如果是FBE 模式,在使能ICGOUT 之前ICG 将等待外
部时钟稳定。
如果由复位从停止模式唤醒CPU,先前设置的ICG 控制位将被忽略,而使用缺省的复位值。因此退出
Stop 停止模式后,ICG 进入SCM 模式,并被配置为一个大约8MHz 的DCO 输出。如果使用外部晶振,在使
能ICGERCLK 之前,将先检测4096 个时钟信号。这包含在晶振的启动时间里。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
9.4.2
自时钟模式(SCM)
自时钟模式(SCM)是缺省的操作模式,当以下条件中任何一个发生时就将进入SCM 模式:
• 任何复位。
• 当CLKS 不等于10 时,从OFF 模式退出。如果CLKS = X1,ICG 将临时进入该状态直到DCO 稳定
(DCOS=1)。
•
•
CLKS 由X1 改写到00
CLKS = 1X 且ICGERCLK 未被检测到(ERCS = 0、LOCS = 1)。
在这模式下,FLL 环路是敞开的。DCO 正在运行,其输出时钟信号ICGOUT 频率为fICGDCLK /R。
ICGDCLK 频率在8 MHz 到40 MHz 之间变化,由滤波器寄存器(ICGFLTH 和ICGFLTL)决定。滤波器寄存
器仅在此模式下可写。
如果由于复位进入此模式,fICGDCLK 将缺省为8 MHz。如果从FEI 模式进入此模式,fICGDCLK 将保持先
前的频率,但如果从FEE 模式进入( 不管是设置CLKS,还是外部参考信号丢失),fICGDCLK 将保持先前的频
率,而如果FLL 失锁,ICGOUT 将变为其两倍。如果从OFF 模式(OFF) 进入此模式,在进入OFF 模式前
fICGDCLK 将等于ICGDCLK 的频率。如果在退出OFF 模式时CLKS 位被置为01 或11,那么直到ICGDCLK
稳定(DCOS=1),ICG 才进入自时钟模式。在ICGDCLK 稳定后,ICG 自动关闭环路,并切换到FLL 参与的
模式,由CLKS 决定内部信号或外部信号使用。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
CLKST
CLKS
RFD
参考分频器
(/7)
ICGIRCLK
ICGOUT
分频器
(R)
时钟选择电路
范围
ICGDCLK
FLT
MFD
1x
数字
环路
滤波器
减法器
数字控制振荡器
2x
FLL ANALOG
CLKST
锁频环
(FLL)
溢出
ICG2DCLK
脉冲
计数器
计数器使能
范围
IRQ
时钟丢失和失锁检测
复位
复位和中断控制
DCOS LOCK LOLS LOCS ERCS LOCD
ICGIF LOLRE LOCRE
图 9-13. 详细的锁频环框图
9.4.3
FLL 内部时钟模式(FEI)
当下列任一条件发生时进入FEI 模式:
CLKS 被写为01
• 当退出OFF 模式时,CLKS = 01。并进入自时钟模式,DCO 时钟稳定(DCOS = 1)
在FEI 模式下,采用内部时钟ICGIRCLK 做为参考时钟源,该FLL 环路试图锁定ICGDCLK 频率在MFD
设定的预期值。
•
9.4.4
FLL 内部未锁定
FEI 未锁定状态是一种临时状态,当计数偏差大于nunlock 最大值或小于nunlock 最小值,ICG 将进入并保
持这种状态。状态由锁状态检测器检测。
此时,ICGOUT 频率等于fICGDCLK /R。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
9.4.5
FLL 内部锁定
对于给定数目的样本,如果减法器的计数误差小于nunlock 最大值且大于nunlock 最小值,将从FEI 失锁进
入本状态。此时时钟信号输出ICGOUT 频率等于fICGDCLK /R。在锁定的FEI 模式下,滤波器值仅在每四个比
较周期更新一次。更新的值为前四次比较取样误差的平均值。
9.4.6
FLL 旁路外部时钟模式(FBE)
当下列任何一种条件发生时进入FLL 旁路外部时钟模式:
• 当CLKS = 10 且ERCS 为高时从SCM 进入
• 当CLKS = 10 时,ERCS = 1 进入OFF 模式,然后退出OFF 模式
• 如果DCO 时钟丢失,而外部时钟参考保持有效(LOCS = 1、ERCS = 1)从FLL 外部时钟模式进入
在这种模式下,DCO 和IRG 关闭,参考时钟为外部参考时钟ICGERCLK。该输出时钟信号ICGOUT 频
率为fICGDCLK /R。如果使用外部时钟源(REFS = 0),那么EXTAL 引脚上的输入频率范围:0 MHz ~40
MHz。如果使用晶振或振荡器,那么频率范围可为低频范围(RANGE = 0)或为高频范围(RANGE = 1)。
9.4.7
FLL 外部时钟模式(FEE)
当下列任何一种条件发生时进入FEE 模式:
•
CLKS = 11 并且ERCS 和DCOS 都为高
• 当退出OFF 模式时,CLKS = 11。并进入自时钟模式,DCO 时钟稳定(DCOS = 1)
在FEE 模式下,参考时钟使用外部参考时钟ICGERCLK,同时FLL 环路试图锁定ICGDCLK 频率以达到
预设值。为了在FEE 模式下运行,必须有一个32 kHz ~100 kHz 或2 MHz ~10 MHz 的外部时钟源。在
FEE 模式下外部时钟频率的最大值被限制在10 MHz,以防止DCO 溢出。FLL 的最小倍频因子从表 9-12 可
知是4。因为4 ×10 MHz 是40 MHz,这是DCO 的运行的极限,所以参考时钟不能超过10 MHz。
9.4.7.1
FLL 外部失锁
当进入FEE 模式,对于给定数目的样本,减法器的计数误差小于nunlock 最大值且大于nunlock 最小值,
将进入失锁的FEE 模式。
减法器的计数误差小于nunlock 最大值且大于nunlock 最小值,ICG 将一直处于本模式。
在这种状态下,脉冲计数器、减数器、数字环路滤波器,以及DCO 组成一个回路,根据其运行条件( 本
章后面的部分将进行讲解) 试图进行锁定。从进入该状态,到锁定FLL,ICGOUT 的频率为
fICGDCLK / (2 ×R)。这额外的除2,可以防止在锁定过程中,频率超过范围。在成功锁定FLL 后,如果在
FEE 模式下,发生意外失锁,而导致重新进入该状态,此时ICGOUT 的输出频率为fICGDCLK /R。
9.4.7.2
FLL 外部锁定
对于给定数目的样本,当减法器的计数误差小于nunlock 最大值且大于nunlock 最小值,就从FEE 未锁定
模式进入FEE 锁定模式。此时时钟信号输出ICGOUT 频率为fICGDCLK /R。在FLL 外部锁定模式,仅在每四
个比较周期,采用前四次比较取样误差的平均值更新滤波器。
9.4.8
FLL 锁定和失锁检测
为决定FLL 锁定和失锁条件,脉冲计数器累加DCO 一个比较周期的脉冲数(见表 9-9 比较周期的解
释),并把该值传给减法器。减法器把它与MFD 中的值做比较,产生一个计数误差, Δn。为达到锁定状态,
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
Δn 必须在nunlock 最大值与最小值之间。在FLL 锁定后,Δn 必须处在nunlock 最大值与最小值之间以保持锁定。
如果Δn 意外溢出此范围,LOLS 状态位被置位并保持置位直到通过软件清零或MCU 复位。LOLS 清除方法:
读ICGS1 然后写1 给ICGIF (LOLRE=0),或通过一个时钟丢失引起复位,或通过任意MCU 复位。
当ENBDM = OSCSTEN = 0 时,如ICG 由停止模式进入OFF 模式,则进入FLL 失锁状态(LOCK 被清
零),但LOLS 保持不变因为这不是一个意外的失锁条件。如果在停止模式下,ENBDM 被清为0,ICG 进入
OFF 模式,尽管这不太常见。因为这是一个意外的时钟停止,当MCU 从停止模式唤醒时LOLS 将被置位。
当MFD 或CLKS 位被改变或在FEI 模式下时,当TRIM 位被改变时,将进入失锁状态。在这些情况下,
LOCK 位将被清零直到FLL 恢复锁定,但LOLS 将不被置位。
9.4.9
FLL 时钟丢失检测
监控参考时钟和DCO 时钟的条件不同(见表 9-8)。假定参考频率正被监控,ERCS = 1 表明参考时钟
达到了最小频率值要求。当参考时钟和/ 或DCO 时钟正被监控时,如果它们中的任一个下降到某一频率下
(分别为fLOR 和fLOD ), LOLS 将通过被置位来指示错误。LOCS 将保持置位直到它被清除或直到MCU 复
位。通过读ICGS1 然后写1 给ICGIF (LOCRE=0)可清除LOCS,或通过时钟丢失引起复位,或通过任意
MCU 复位。
如果ICG 处于FEE 模式,参考时钟的丢失将导致ICG 进入SCM 模式,DCO 时钟丢失将导致ICG 进入
FBE 模式。如果ICG 处于FBE 模式下,参考时钟的丢失将导致ICG 进入SCM 模式。在上述情况下,
CLKST 和CLKS 位将被自动改变以反映当前状态。
如果时钟丢失发生在FEE 模式,同时ERCS 仍为1,那么CLKST 将被设置为10,同时ICG、转换到
FBE 模式。
在FEE 或FEI 模式,时钟丢失将导致失锁。因为清LOCS 和LOLS 位的方法相同,极少出现的LOLRE
= 1 但是LOCRE = 0 将是一个问题。在这种情形下,锁丢失引起的复位中断将被忽略。
表9-8. 时钟监控(当LOCD=0 时)
外部参考时钟监
CLKS
REFST
ERCS
模式
DCO 时钟监控?
控?
X
0
0X 或11
10
强制低
强制低
实时1
强制低
强制高
实时
无
无
无
无
OFF 模式
1
10
1
有
无
无
无
有
有
无
有
有2
0X
X
0
2
10
有
SCM 模式
(CLKST=00)
2
10
1
有
2
11
X
X
X
实时
有
0X
强制低
实时
有
有
FEI
(CLKST=01)
11
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表9-8. 时钟监控(当LOCD=0 时)
外部参考时钟监
控?
CLKS
REFST
ERCS
模式
DCO 时钟监控?
FBE
(CLKST=10)
10
10
11
0
1
强制高
实时
无
有
有
无
无
有
FEE
X
实时
(CLKST=11)
1
2
如果ENABLE 为高(在退出停止模式后等待外部晶振启动)。
从OFF 模式或FLL 旁路外部模式进入SCM 模式,在DCO = 1 之前,DCO 时钟将不被监控。
9.4.10 时钟模式必要条件
通过写CLKS1:CLKS0 请求时钟模式,同时CLKST1:CLKST0 指示当前的时钟模式。如果满足最小条
件,CLKST1:CLKST0 指示的状态应该和CLKS1:CLKS0 中请求的一致。表 9-9 列出了CLKS 和CLKST 之
间的关系。它也列出了CLKS = CLKST 的条件或CLKS ≠ CLKST 的原因。
注意
如果在下次复位之前需要使用晶振,在第一次写ICGC1 寄存器前,必须设置
REFS = 1 和CLKS = 1x。否则,将导致锁定REFS = 0,这将在下一次复位前禁用
振荡放大器。
表9-9. ICG 状态表
CLKS = CLKST CLKS1 ≠ CLKST
实际模式 期望的模式
参考频率
(fREFERENCE
ICGOUT
0
范围
X
比较周期时间
)
的条件1
的原因
CLKST
CLKS
0
0
关(XX)
—
—
—
—
OFF 模式
(XX)
FBE(10)
SCM(00)
FEI(01)
FBE(10)
FEE(11)
FEI(01)
FEE(11)
X
0
ERCS = 0
—
不从FBE 跳转到
2
1
1
1
X
f
8/f
ICGDCLK/R
ICGDCLK/R
ICGDCLK/R
ICGDCLK/R
ICGDCLK/R
ICGDCLK/R
—
ICGIRCLK /7
ICGIRCLK
SCM
0
f
8/f
DCOS = 0
ERCS = 0
—
—
ICGIRCLK /7
ICGIRCLK
SCM
(00)
X
f
8/f
ICGIRCLK /7
ICGIRCLK
DCOS = 0 或
ERCS = 0
X
f
8/f
—
ICGIRCLK /7
ICGIRCLK
0
f
8/f
DCOS=1
—
ICGIRCLK /7
ICGIRCLK
FEI(01)
X
f
8/f
ERCS = 0
—
ICGIRCLK /7
ICGIRCLK
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表9-9. ICG 状态表 (续)
CLKS = CLKST CLKS1 ≠ CLKST
的原因
实际模式 期望的模式
CLKS
参考频率
(fREFERENCE
ICGOUT
范围
比较周期时间
的条件1
CLKST
)
FBE(10)
X
X
0
1
0
ICGDCLK/R
ICGDCLK/R
ICGDCLK/R3
ICGDCLK/R2
ERCS=1
—
—
—
FBE
(10)
LOCS = 1 &
ERCS = 1
FEE(11)
0
—
ERCS = 1 且
DCOS = 1
f
2/ f
—
—
ICGIRCLK
ICGIRCLK
FEE
(11)
FEE
(11)
128/
ERCS = 1 且
DCOS = 1
f
ICGIRCLK
f
ICGIRCLK
1
2
3
写CLKS 后CLKST 不会立即更新。CLKST 更新到新值需要几个总线周期。
在SCM 模式下参考频率对ICGOUT 无效,但该参考频率仍然用在作比较,其比较误差决定DCOS 位。
在初始锁定过程中,fICGIRCLK 为ICGDCLK/2R。当MFD 位被改变后,FLL 重新锁定,此时fICGIRCLK 为ICGDCLK/R。
9.4.11 固定频率时钟
ICG 提供一个固定频率时钟输出XCLK 用于片上外设。在除FEE 以外的所有模式下,该时钟输出等于内
部总线时钟BUSCLK。在FEE 模式下,如满足下列条件,XCLK 等于ICGERCLK 除以2:
• (P×N)/R ≥ 4,P 由RANGE 决定(见表 9-11),N 和R 分别由MFD 和RFD 决定(见表 9-12)。
•
LOCK = 1
如果以上两个条件不能满足,那么XCLK 等于BUSCLK。
当ICG 在FEI 或SCM 模式时,XCLK 被关闭,任何使用XCLK 作为时钟源的外设不能使用XCLK。
9.4.12 高增益振荡器
振荡器可以运行在高增益振荡器(HGO)模式,当在FBE 或FEE 模式下时,高增益振荡器(HGO)模
式能提高振荡器对EMC 噪声的抵抗力。通过写1 到ICGC1 寄存器中的HGO 位使能该模式。HGO 可与高频
和低频振荡器一起使用,但仅当ICGC1 寄存器中的REFS = 1 时有效。当HGO = 0 时,选择的是标准低功耗
振荡器。复位后该位只能写一次。
9.5
初始化/ 应用信息
9.5.1
概述
该节给出了初始化时的基本指导,以及用户可参考的配置。在一些应用中,串行通信连接需要准确的参
考时钟。在另一些应用中,最低功耗可能是时钟设置主要考虑的事项。也有一些应用,低成本是最主要的目
标。ICG 具有很大的灵活性,为不同的应用选择最佳的时钟。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表9-10. ICG 配置原则
时钟参考源= 内部
时钟参考源= 外部
FEI
FEE
4 MHz < fBus < 20 MHz
4 MHz < fBus < 20 MHz
中等功率(如果震荡范围= 高,将会小于FEE)
较高的时钟精确度(在IRG 调整后)
最低系统成本(不需要外部器件)
IRG 打开。DCO 打开1
中等功率(如果震荡范围= 低,将会小于FEI)
高时钟精确度
中等或高系统成本(需要晶振,共鸣器或外部时钟
源器件)
使用FLL
IRG 关闭。DCO 打开
SCM
FBE
该模块主要提供给迅速和可靠的系统启动。
3 MHz < fBus < 5 MHz (缺省)
3 MHz < fBus < 20 MHz (通过过滤器位)
中等功率
低精确度
IRG 关闭。DCO 打开并且开环。
当使用晶振或蜂鸣器时,fBus ≤ 8 MHz。
最低功率
最高时钟精确度
中等或高系统成本(需要晶振,共鸣器或外部时钟
源器件)
FLL 旁路
IRG 关闭。DCO 关闭。
1
IRG 通常消耗100 μA。根据输出频率,FLL 和DCO 通常消耗0.5 ~2.5 mA。为了最小功耗和最小抖动,选择尽可能小的N
和R。
下面将根据不同配置举例介绍。
注意
前缀$ 表示十六进制,前缀% 表示二进制,无前缀表示十进制。
重要的配置信息在这里列出,以供参考。
表9-11. ICGOUT 频率计算选项
1
fICGOUT
P
时钟配置
注意
SCM
fICGDCLK /R
NA
复位后通常
ICGOUT = 8 MHz
f
FBE
FEI
fext /R
fICG /R
NA
64
通常fIRG = 243 MHz
FEE
fICGOUT *P*N/R
范围= 0 ;P = 64
范围= 1 ;P = 1
1
确保fICGDCLK 等于fICGOUT*R,不要超过fICGDCLKmax
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表9-12. MFD 和RFD 编码表
RFD
MCF 值
000
倍增因子
分频因子
4
000
001
010
011
100
101
110
111
÷1
÷2
001
6
010
8
÷4
011
10
12
14
16
18
÷8
100
÷16
÷32
÷64
÷128
101
110
111
9.5.2
例1:外部晶振= 32 kHz,总线频率= 4.19 MHz
在该例中,FLL 将倍频外部32 kHz 振荡器到8.38 MHz,来产生4.19 MHz 的总线频率。
MCU 复位后,ICG 处于自时钟模式(SCM),提供大约8 MHz 的ICGOUT,对应于4 MHz 的总线频率
(fBus)。
时钟配置是使用FLL,外部(FEE)。所以有:
f
= f * P * N/R ;P = 64,f = 32 kHz
公式 9-1
ICGOUT
ext
ext
N/R:
N/R = 8.38 MHz / (32 kHz * 64)= 4 ;可以选择N = 4,R = 1
公式 9-2
为执行操作,每个寄存器需要的值如下:
ICGC1 = $38 (%00111000)
Bit 7
Bit 6
Bit 5
Bits 4:3
Bit 2
Bit 1
Bit 0
HGO
0
配置振荡器低功耗
RANGE
REFS
0
配置振荡器低频率,FLL 预分频因子为64
振荡器需要使用晶振或谐振器
使用FLL 外部参考时钟模式
禁止振荡器
1
CLKS
11
0
OSCSTEN
LOCD
0
允许丢失时钟检测
0
未使用或保留;读为0
ICGC2 = $00 (%00000000)
Bit 7
LOLRE
MFD
0
失锁时产生一个中断请求
设置MFD 倍乘因子为4
丢失时钟失产生一个中断请求
设置分频因子为÷1
Bits 6:4
000
Bit 3
LOCRE
RFD
0
Bits 2:0
000
ICGS1 = $xx
该位只读,除了清中断标志
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
ICGS2 = $xx
该位只读;执行任何时间临界任务前应该读DCOS = 1
ICGFLTLU/L = $xx
仅在自时钟模式时需要;FLT 通过回路调整产生8.38 MHz DCO 时钟
Bits 15:12 未使用0000
Bits 11:0 FLT 不需要用户初始化
ICGTRM = $xx
Bits 7:0 TRIM 当调整内部振荡器时,只需要写。采用外部晶振时不使用。
图 9-14 为需要ICG 初始化的三个条件的流程图。
从STOP 模式快速复位
STOP 模式下最小吸入电流
复位
从STOP 模式复位
OSCSTEN = 0
从STOP 模式复位
OSCSTEN = 1
初始化ICG
ICGC1 = $38
ICGC2 = $00
检查
检查
否
否
FLL 时钟状态
LOCK = 1?
FLL 时钟状态
LOCK = 1?
是
是
检查
否
FLL 时钟状态.
LOCK = 1?
继续
继续
是
继续
注::要求振荡器开始并稳定工作。实际时间取决于晶振/谐振器和外部电路
图 9-14. ICG 初始化用于FEE 在例1 情况下
9.5.3
例2:外部晶振= 4 MHz,总线频率= 20 MHz
在该例中,FLL( 在FEE 模式) 将倍频外部4 MHz 振荡器到40 MHz,来产生20 MHz 的总线频率。
MCU 复位后,ICG 处于自时钟模式(SCM),提供大约8 MHz 的ICGOUT,对应于4 MHz 的总线频率
(fBus)。
复位初始化软件时,时钟配置为使用FLL,外部(FEE)。所以
f
= f * P * N/R ;P = 1, f = 4.00 MHz
公式 9-3
公式 9-4
ICGOUT
ext
ext
N/R:
N/R = 40 MHz / (4MHz * 1)= 10 ;可以选择N = 10,R = 1
为执行操作,每个寄存器需要的值如下:
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
ICGC1 = $78 (%01111000)
Bit 7
Bit 6
Bit 5
Bits 4:3
Bit 2
Bit 1
Bit 0
HGO
0
配置振荡器低功耗
RANGE
REFS
1
配置振荡器高频率;FLL 预分频因子为1
振荡器需要使用晶振或谐振器
使用FLL 外部参考时钟模式
禁止振荡器
1
CLKS
11
0
OSCSTEN
LOCD
0
允许丢失时钟检测
0
保留或未使用;读为0
ICGC2 = $30 (%00110000)
Bit 7
LOLRE
0
失锁时产生一个中断请求
Bits 6:4
MFD
011
设置MFD 倍乘因子为10
Bit 3
LOCRE
RFD
0
丢失时钟产生一个中断请求
Bits 2:0
000
设置分频因子为÷1
ICGS1 = $xx
该位只读,除了清中断标志
ICGS2 = $xx
该位只读;执行任何时间临界任务前应该读DCOS = 1
ICGFLTLU/L = $xx
在该例中未使用
ICGTRM = $xx
在该例中未使用
从STOP 模式恢复
复位
初始化ICG
ICGC1 = $7A
ICGC2 = $30
中断服务例程
(fBus = 4 MHz)
检查
否
FLL 时钟状态
检查
否
LOCK = 1?
FLL 时钟状态
LOCK = 1?
是
是
继续
继续
图 9-15. 用于例2 情况下的ICG 初始化和从stop 模式复位
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
9.5.4
例3:无外部晶振,总线频率= 5.4 MHz
在本例中,FLL 将倍频内部243 kHz (大约)参考时钟到10.8 MHz,来产生5.4 MHz 的总线频率。该系
统使用微调功能基于外部参考信号获得更精确的频率。
MCU 复位后,ICG 处于自时钟模式(SCM),提供大约8 MHz 的ICGOUT,对应于4 MHz 的总线频率
(fBus)。
时钟配置是使用FLL,内部(FEI)。所以
f
= ( f
/ 7) * P * N/R ;P = 64,f = 243 kHz
IRG
公式 9-5
公式 9-6
ICGOUT
IRG
N/R:
N/R = 10.8 MHz / (243/7 kHz * 64 )= 4.86 ;可以选择N = 10,R = 2
需要一个调整程序调整频率到正好5.4 MHz。例4 是一个调整程序的例子。
为执行操作,每个寄存器需要的值:
ICGC1 = $28 (%00101000)
Bit 7
Bit 6
Bit 5
Bits 4:3
Bit 2
Bit 1
Bit 0
HGO
0
配置振荡器低功耗
RANGE
REFS
0
配置振荡器低频率;FLL 预分频因子为64
振荡器需要使用晶振或谐振器(不使用该位)
使用FLL 内部参考时钟模式
禁止振荡器
1
CLKS
01
0
OSCSTEN
LOCD
0
允许丢失时钟检测
0
保留或未使用;读为0
ICGC2 = $31 (%00110001)
Bit 7
LOLRE
0
失锁时产生一个中断请求
设置MFD 倍乘因子为10
丢失时钟产生一个中断请求
设置分频因子为÷2
Bits 6:4
Bit 3
MFD
011
0
LOCRE
RFD
Bits 2:0
001
ICGS1 = $xx
该位只读,除了清中断标志
ICGS2 = $xx
该位只读;执行任何时间临界任务前建议读该位。
ICGFLTLU/L = $xx
在本例中未使用
ICGTRM = $xx
Bits 7:0 TRIM 当调整内部振荡器时,只需要写。独立操作(参见例4)。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
复位
从STOP 模式恢复
初始化ICG
ICGC1 = $28
ICGC2 = $31
检查
否
FLL 时钟状态
LOCK = 1?
是
检查
否
FLL 时钟状态
LOCK = 1?
继续
是
继续
注:要求振荡器开始并稳定工作。
图 9-16. 用于例3 情况下的ICG 初始化和从stop 模式复位
9.5.5
例4:内部时钟产生器调整
内部产生的时钟源有一个± 25% 的浮动值。在一些情况,此精度能够满足要求。但在一些要求频率精度
很高的应用中,需要调整程序帮助产生更准确的时钟源。该节给出了一个调整内部振荡器的例子。除此外,还
有很多其他调整的方法可供使用。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
初始条件:
1) ATE提供的时钟工作周期为500 μs
2) ICG 设置为4 MHz 内部总线频率
开始调整程序
ICGTRM = $80, n = 1
计算输入的时钟宽度
(COUNT = # OF BUS CLOCKS / 4)
COUNT < 期望值500
( 运行太慢)
COUNT = 期望值500
.
CASE STATEMENT
COUNT > 期望值500
( 运行太快)
ICGTRM =
ICGTRM - 128 / (2**n)
( 减少ICGTRM
提高频率)
ICGTRM =
存储ICGTRM 值到
非易失性存储器
ICGTRM + 128 / (2**n)
( 增加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 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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
TPMV2
作用
写入到TPMxCnTH:L 寄存器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 计数器值从
≠ 00) 写TPMxCnVH:L 寄存器
TPMxMODH:L,两个字节被写入后,用
写缓冲区的值更新TPMxCnH:L 值
注:如果TPM 计数器用作自由运行计数
器,那么当TPM 计数器值从$FFEE 变化
到$FFFF,发生更新操作
TPMxMODH:L 到$0000,执行更新操作
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表10-1. TPMV2 和TPMV3 移植条件( 续)
TPMV3
TPMV2
作用
在中心对齐模式下,当(CLKSB:CLKSA 当TPM 计数器值从(TPMxMODH:L-1)
两字节内容被写入后,TPM 计数器值从
TPMxMODH:L 到(TPMxMODH:L-1),执行更
新操作
≠ 00),写TPMxCnVH:L 寄存器4
TPMxMODH:L,两个字节被写入后,用
写缓冲区的值更新TPMxCnH:L 值
注:如果TPM 计数器用作自由运行的计
数器,那么当TPM 计数器值从$FFEE 变
化到$FFFF,发生更新操作
中心对齐PWM
TPMxCnVH:L = TPMxMODH:L5
产生100%占空比
产生0%占空比
产生0%占空比
TPMxCnVH:L = (TPMxMODH:L - 1)6
产生近100%占空比
TPMxCnVH:L 从0x0000 变到非零值7
TPMxCnVH:L 从非零值变到0x00008
在一个新的PWM 周期中开始使用新的占 在当前PWM 周期中期(当计数为0x0000)
空比设置
改变通道输出
用旧占空比设置完成当前PWM 周期
用新占空比设置完成当前PWM 周期
在BDM 模式下写TPMxMODH:L 寄存器
在BDM 模式下写TPMxSC 寄存器
清除TPMxMODH:L 寄存器写一致机制
不清除写一致机制
1
更多信息参考 10.5.2 节 TPM 计数器寄存器(TPMxCNTH:TPMxCNHTL)
更多信息参考 10.5.5 节 TPM 通道值寄存器(TPMxCnVH : TPMxCnVL)
更多信息参考 10.6.2.1 节 输入捕捉模式
2
3
4
5
6
7
8
更多信息参考 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)
仅发生在定时器从TPMMOD-1 变换到TPMMOD 时或者一个
自由运行的定时器从0XFFFE 到0XFFFF 时
复位通道值寄存器(TPMxCnV)导入一致机制
配置TPM 模式
写TPMxSC
先写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
总线时钟
时钟源选择关
总线、固定系统时钟,
外部时钟
分频选择因子
1, 2, 4, 8, 16, 32, 64,
或者128
固定系统时钟
外部时钟
SYNC
PS2:PS1:PS0
CLKSB:CLKSA
CPWMS
16 位计数器
TOF
TOIE
计数器复位
逻辑中断
16 位比较器
TPMxMODH:TPMxMODL
ELS0B
ELS0A
通道0
16 位比较器
TPMxCH0
端口逻辑
逻辑中断
CH0F
TPMxC0VH:TPMxC0VL
16 位锁存器
CH0IE
MS0B
MS0A
ELS1B
ELS1A
通道1
TPMxCH1
端口逻辑
逻辑中断
16 位比较器
TPMxC1VH:TPMxC1VL
16 位锁存器
CH1F
CH1IE
MS1B
MS1A
最多8通道
ELS7B
MS7B
ELS7A
端口逻辑
逻辑中断
通道7
16 位比较器
TPMxCH7
TPMxC7VH:TPMxC7VL
16 位锁存器
CH7F
CH7IE
MS7A
图 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
TPMxCHn2
外部时钟源可被选来驱动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
1
2
6
...
0
3
4
5
7
8
0
1
2
...
TPMxCNTH:TPMxCNTL
TPMxCHn
CHnF 位
TOF 位
图 10-3. 边缘对齐PWM 模式的高真脉冲
TPMxMODH:TPMxMODL = 0x0008
TPMxMODH:TPMxMODL = 0x0005
1
TPMxCNTH:TPMxCNTL
2
6
...
0
3
4
5
7
8
0
1
2
...
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
4
...
7
6
5
3
2
1
0
1
2
3
4
5
6
7
8
7
6
5
...
TPMxCHn
CHnF BIT
TOF BIT
图 10-5. 中心对齐PWM 模式的高真脉冲
TPMxMODH:TPMxMODL = 0x0008
TPMxMODH:TPMxMODL = 0x0005
TPMxCNTH:TPMxCNTL
TPMxCHn
7
8
4
...
7
6
5
3
2
1
0
1
2
3
4
5
6
7
8
7
6
5
...
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
6
5
4
3
2
1
0
读
写
TOF
TOIE
CPWMS
CLKSB
CLKSA
PS2
PS1
PS0
0
0
复位
0
0
0
0
0
0
0
图 10-7. TPM 状态和控制寄存器(TPMxSC)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表10-4. TPMxSC 位描述
位
描述
定时器溢出标志,当TPM 计数器达到在TPM 计数器模寄存器中预设值后, 复位为
0x0000, 然后置位这个读写标志。当TOF 被置位,可以通过读TPM 状态和控制寄
存器,然后向TOF 写0 清除TOF。如果在彻底清除序列前发生了另一个TPM 溢
出,该序列复位,并在先前清除序列完成后,TOF 还将保持置位。这样在清序列时
TOF 中断请求不会丢失。复位清零TOF。对TOF 写1 无效。
0 TPM 计数器未达到模值或未溢出
7
TOF
1 TPM 计数器溢出
定时器溢出中断使能。这个读写位使能TPM 溢出中断。如果TOIE 被置位,当
TOF 等于1 中断产生。复位清除TOIE。
0 TOF 中断禁止(用于软件轮询)
6
TOIE
1 TOF 中断使能
中心对齐PWM 选择位。这个读写位选择CPWM 操作模式。默认情况下,TPM 提
供输入捕捉,输出比较和边沿对齐PWM 功能,并提供递增计数器操作。设置
CPWMS 重新配置TPM 操作于上升/ 下降模式计数器,实现CPWM 功能。复位清
零CPWMS。
0 所有通道可作输入捕捉,输出比较,边沿对齐PWM 模式,由MSnB: MsnA 控制
每个通道的状态和控制寄存器中的相应位来选择
5
CPWMS
1 所有通道都可运行在中心对齐PWM 模式下
时钟源选择位,如表 10-5 所示,这2 个位用来禁止TPM 系统或选择三个时钟源中
的一个来驱动计数器分频器。固定系统时钟源在带有一个基于系统PLL 时钟的系统
中是唯一有效的。若没有PLL,固定系统时钟与总线速率时钟相同。外部时钟源通
过TPM 模块同步总线时钟,固定系统时钟源通过片上同步电路同步总线时钟。当
有PLL 但无效时,固定系统时钟与总线速率时钟相同。
4-3
CLKS[B:A]
分频因子选择位。这三位选择8 个分频因子中的一个用来分频TPM 时钟输入,如
表 10-6 所示。在任意时钟源同步或时钟源选择后,分频器被定位,所以它影响用
来驱动TPM 系统的时钟源。在新值被更新到寄存器后,新的分频因子将对下个系
统时钟周期产生影响。
2-0
PS[2:0]
表10-5. TPM 时钟源选择
CLKSB:CLKSA
TPM 时钟源分频输入
00
01
10
11
无时钟选择
总线速率时钟
固定系统时钟
外部时钟源
表10-6. 分频因子选择
PS2:PS1:PS0
分频因子
000
001
010
011
1
2
4
8
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表10-6. 分频因子选择( 续)
分频因子
PS2:PS1:PS0
110
101
110
111
16
32
64
128
10.5.2
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
任意写TPMxCNTH 将清零该16 位计数器
复位
0
0
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
任意写TPMxCNTL 将清零该16 位计数器
复位
0
0
0
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
1
0
读
写
CHnF
0
0
CHnIE
MSnB
MSnA
ELSnB
ELSnA
0
0
复位
0
0
0
0
0
0
0
= 保留或未使用
图 10-12. TPM 通道n 状态和控制寄存器(TPMxCnSC)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表10-7. TPMxCnSC 位描述
位
描述
通道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 不产生影响。
7
CHnF
0 无输入捕捉或输出比较事件发生在通道n 上
1 输入捕捉或输出比较事件发生在通道n 上
通道n 中断使能位。该读写位使能通道n 的中断。复位清空ChnIE。
0 禁止通道n 中断请求
1 允许通道n 中断请求
6
ChnIE
5
TPM 通道n 的B 模式。当CPWMS = 0,MSnB = 1 时配置TPM 通道n 为边沿对齐PWM 模式。参阅表 10-8 中
通道模式和设置控制。
MSnB
TPM 通道n 的A 模式。当CPWMS=0,MSnB=0 时,MSnA 配置TPM 通道n 为输入捕捉模式或输出比较模
4
式。参阅表 10-8 中通道模式和设置控制。
注:在转变为输入捕捉模式之前,如果相关端口引脚在至少两个总线时钟周期内不稳定,将会出现意外的边沿
触发。
MSnA
边沿/ 电平选择位。
3-2
取决于定时器通道的操作模式,通过CPWMS:MSnB:MSnA 来设置,详细可参照表 10-8。这些位选择输入边沿
的极性来触发一个输入捕捉事件,选择电平驱动一个输出比较匹配或选择PWM 输出极性。通过设置
ELSnB:ELSnA = 0:0 配置相关定时器引脚作为通用I/O 引脚。这种功能用于暂时禁止输入捕捉,或当相关定时器
通道被设为不需使用引脚的软定时器时, 使定时器引脚作通用I/O 脚。
ELSnB
ELSnA
表10-8. 模式、边沿和电位选择
CPWMS MSnB:MsnA ELSnB:ELSnA
模式
配置
X
XX
00
引脚不用于TPM 转换为通用I/O 或其它外围控制
CPWMS
MSnB:MsnA
ELSnB:ELSnA
模式
配置
01
10
11
01
10
11
10
X1
10
X1
仅在上升沿捕捉
00
01
输入捕捉
仅在下降沿捕捉
上升沿或下降沿捕捉
比较时锁存输出
0
1
输出比较
比较时清空输出
比较时设置输出
高保真脉宽(比较时清空输出)
低保真脉宽(比较时设置输出)
高保真脉宽(比较时清空输出)
低保真脉宽(比较时设置输出)
1X
XX
边沿对齐PWM
中心对齐PWM
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
10.5.5
TPM 通道值寄存器(TPMxCnVH : TPMxCnVL)
这些读写寄存器包含通过输入捕捉功能被捕获的TPM 计数器值或输出比较的值或PWM 功能。复位清空
通道寄存器。
7
6
5
4
3
2
1
0
R
W
Bit 15
0
14
13
12
11
10
9
Bit 8
Reset
0
0
0
0
0
0
0
图 10-13. TPM 通道值寄存器高位(TPMxCnVH)
7
6
5
4
3
2
1
0
R
W
Bit 7
6
5
4
3
2
1
Bit 0
Reset
0
0
0
0
0
0
0
0
图 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。
计数器= 0
输出比较
输出比较
计数器=
计数器=
( 递减计数)
( 递增计数)
TPMxMODH:TPMxMODL
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 章 串行通信接口(S08SCIV4)
11.1 简介
MC9S08AC16 系列包含两个独立的串行通信接口模块(SCI),也被称为通用异步收发器(UART)。
通常,这些系统连接到个人计算机或工作站的RS232 串行输入输出口(I/O),但也可以和其他嵌入式控制器
通信。
灵活的13 位模块化的波特率产生器支持超过115.2 kB 的标准波特率。SCI 的发送和接收使用相同的波特
率,并且每个SCI 模块都有各自独立的波特率产生器。
本SCI 提供了多种高级特性,这些特性很少在其他嵌入式控制器的异步串行(I/O)设备中出现。接收器
使用先进的数据采样技术确保可靠的通信和噪音检测。也包括硬件奇偶校验,接收器唤醒,发送和接收的双缓
冲。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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
RSRC
SCID – Tx 缓冲
TO RECEIVE
DATA IN
11 位发送移位寄存器
循环控制
M
去TxD 引脚
1 × 波特率时钟
H
8
7
6
5
4
3
2
1
0
L
移位方向
TXINV
T8
PE
PT
产生奇偶校验
SCI 控制TxD
TxD 方向
TE
SBK
去TxD
引脚逻辑
传输控制
TXDIR
BRK13
TDRE
TIE
Tx 中断请求
TC
TCIE
图 11-2. SCI 发送器原理结构图
图 11-3 为SCI 的接收器部分。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
内部总线
( 只读)
16 × 波特率
时钟
16分频
SCID – Rx 缓冲
发送器
11 位接收移位寄存器
LOOPS
RSRC
单线循环控制
M
LBKDE
H
8
7
6
5
4
3
2
1
0
L
RxD 引脚
RXINV
数据恢复
移位方向
WAKE
ILT
唤醒逻辑
RWU
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
5
4
3
2
1
0
读
写
0
LBKDIE
RXEDGIE
SBR12
SBR11
SBR10
SBR9
SBR8
复位
0
0
0
0
0
0
0
0
= 保留或未使用
图 11-4. SCI 波特率寄存器(SCIxBDH)
表11-1. SCIxBDH 寄存器域描述
描述
域
LIN 中止检测中断使能(对于LBKDIF)
0 禁止来自LBKDIF 的硬件中断(使用轮询)。
1 当LBKDIF 标志为1 时,发送硬件中断请求。
7
LBKDIE
RxD 输入有效边中断使能(对RXEDGIF)
0 禁止来自RXEDGIF 的硬件中断(使用轮询)。
1 当RXEDGIF 标志为1 时,发送硬件中断请求。
6
RXEDGIE
波特率分配因子——13 位的SBR[12:0] 记作BR,可以设置SCI 波特率产生器的分频率。当BR=0 时,SCI 波
特率产生器被禁止以减少电路消耗。BR 可以从1 到8191,SCI 波特率=BUSCLK/(16*BR)。其他的BR 位请参
见表 11-2。
4:0
SBR[12:8]
7
6
5
4
3
2
1
0
R
W
SBR7
SBR6
SBR5
SBR4
SBR3
SBR2
SBR1
SBR0
Reset
0
0
0
0
0
1
0
0
图 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 寄存器域描述
描述
域
循环模式选择——选择循环模式和正常的全双工模式。当LOOPS=1 时,此时发送器的输出连接到接收器的输
入。
7
LOOPS
0 正常操作--- RxD 和TxD 采用不同的引脚。
1 循环或者单线模式,此时发送器的输出连接到接收器的输入。
等待模式下SCI 停止位
6
0 在等待模式下,SCI 时钟继续运行,所以SCI 可以作为唤醒CPU 的中断源。
1 在等待模式下,SCI 时钟停止运行。
SCISWAI
接收源选择——仅在LOOPS 位为1 时有意义。当LOOPS=1 时,接收器输入在内部连接到TxD 引脚上,
RSRC 决定引脚是否连接到发送器输出。
0 如果LOOPS=1,RSRC=0 时,内部循环模式和SCI 不使用RxD 引脚。
1 单线SCI 模式,TxD 引脚连接到发送器输出和接收器输入。
5
RSRC
9 位或8 位模式选择
0 正常——开始位+8 位数据位(首先传输最低有效位LSB)+ 停止位。
1 接收和发送使用9 位数据字符
4
M
开始位+8 位数据位(首先传输最低有效位LSB)+9 位数据位+ 停止位。
接收器唤醒方式选择——更多信息参见 11.3.3.2 节 接收唤醒。
0 空闲线唤醒。
1 地址符号唤醒。
3
WAKE
空闲线类型选择——设置这个位为1 保证字符后面的停止位和逻辑1 的个数不超过10 或11 位(空闲线检测逻
辑需要的高电平)。更多信息参见 11.3.3.2.1 节 空闲线唤醒
0 空闲字符位从“开始位”开始计数。
2
ILT
1 空闲字符位从“停止位”开始计数。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表11-3. SCIxC1 寄存器域描述( 续)
域
描述
奇偶校验允许——允许硬件奇偶校验产生和校验。当允许奇偶校验时,数据字符(第8 或9 位)的最高有效位
1
PE
(MSB)作为校验位。
0 不允许奇偶校验。
1 允许奇偶校验。
奇偶校验类型——如果奇偶校验允许(PE=1),这个位选择奇校验或偶校验。奇校验是数据字符中1 的总数
(包括奇偶位)是奇数。偶校验是数据字符中1 的总数(包括奇偶位)是偶数。
0
PT
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 寄存器域描述
描述
域
发送中断允许(用于TDRE)
0 TDRE 的硬件中断禁止(使用轮询)。
1 当TDRE 标志位是1,发送硬件中断请求。
7
TIE
发送完成中断允许(用于TC)
0 TC 的硬件中断禁止(使用轮询)。
1 当TC 标志位是1,发送硬件中断请求。
6
TCIE
接收中断允许(用于RDRE)
0 RDRE 的硬件中断禁止(使用轮询)。
1 当RDRE 标志位是1,发送硬件中断请求。
5
RIE
空闲线中断允许(用于IDLE)
0 IDLE 的硬件中断禁止(使用轮询)。
1 当IDLE 标志位是1,发送硬件中断请求。
4
ILIE
发送允许
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 节 发送间隔和等待空
闲。
3
TE
当TE=0 时,在引脚变回通用I/O 引脚前,发送器一直控制TxD 引脚,直到有数据,等待空闲或等待间隔符排队
完成传输。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表11-4. SCIxC2 寄存器域描述
域
描述
接收允许——当接收器关时,RxD 引脚变回通用I/O 引脚。如果LOOPS=1,即使RE 等于1RxD 也会变回通用
2
RE
I/O 引脚。
0 接收关。
1 接收开。
接收唤醒控制——该位置1,SCI 接收器进入待命状态,等待扫描到唤醒条件。唤醒条件是信息之间的空闲线
(WAKE=0,空闲线唤醒)或者字符的最高有效位是逻辑1 (WAKE=1,地址符号唤醒)。应用软件置位RWU,
(通常)硬件唤醒条件自动清零RWU。更多信息参见 11.3.3.2 节 接收唤醒。
0 正常SCI 接收操作。
1
RWU
1 待命的SCI 接收器等待唤醒条件。
发送终止——向SBK 写一个1 然后一个0,一个间隔符插入传输数据流。只要SBK=1、10 或11 (13 或14)个
逻辑0 的间隔符也会插入传输数据流。第二个间隔符可能在软件清SBK 前产生,这依赖于SBK 在正传输的信息
时复位和清零的时间选择。更多信息参见 11.3.2.1 节 发送间隔和等待空闲。
0 正常发送操作。
0
SBK
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 域描述
描述
域
发送缓冲区空标志——TDRE 在复位时置位。而且当发送数据从发送数据缓冲区传到发送移位寄存器为新字符留
出空间时,TDRE 也置位。SCIxS1 的TDRE=1 然后写SCI 数据寄存器可以清零TDRE。
0 发送数据寄存器(缓冲区)满。
7
TDRE
1 发送数据寄存器(缓冲区)空。
发送完成标志——TC 在复位时置位。而且当TDRE=1 并且没有数据,前导符或间隔符发送时,TC 也置位。
0 发送器忙(发送数据,前导符或间隔符)。
1 发送器空闲。
6
读SCIxS1 的TC=1 然后做下面的3 件事情之一,TC 就会自动清零。
• 写SCI 数据寄存器(SCIxD)发送新数据。
TC
• 改变TE 从0 到1 插入前导符。
• 置1SCIxC2 的SBK 插入间隔符。
接收器满标志——当字符从接受移位寄存器传输到接收数据寄存器(SCIxD)时,RDRF 置位。读SCIxS1 的
RDRF=1 然后读SCI 数据寄存器(SCIxD)可以清RDRF。
0 接收数据寄存器空。
5
RDRF
1 接收数据寄存器满。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表11-5. SCIxS1 域描述( 续)
域
描述
接收器空闲标志——SCI 工作一段时间后,如果接收线空闲,IDLE 则置位。当ILT=0 时,接收器开始计数开始
位后的空闲时间。所以如果接收字符全1,这些位的时间和停止位的时间达到了一个字符的逻辑高(10 或11 位
依赖于M 控制位),这会导致接收器认为检测到空闲,当ILT=1 时,接收器直到停止位后才开始数空闲时间。
所以停止位和先前字符的逻辑高不会到达一个字符逻辑高的时间,从而不会被检测为空闲线。
读SCIxS1 的IDLE=1 然后读SCI 数据寄存器(SCIxD)可以清零IDLE。IDLE 清零后,直到接收到一个新的字
符并且RDRF 被置位,IDLE 才能再次置位。即使接收线长时间保持空闲,IDLE 也只会被置位一次。
0 未检测到空闲线。
4
IDLE
1 检测到空闲线。
接收器溢出标志——当新的字符准备传到接收数据寄存器,而前面接收的数据还没有从SCIxD 中读走,OR 置
位。在这种情况下,因为没有空间把这些数据移到SCIxD 中,所以新的字符(和所有的相关错误信息)丢失。
读SCIxS1 的OR=1 然后读SCI 数据寄存器(SCIxD)可以清零OR。
0 未溢出。
3
OR
1 接收溢出(新数据丢失)。
噪音标志位——在接受器中使用先进的采样技术,开始位采样7 次,每个数据位和停止位采样3 次。在接收到
数据时,RDRF 置位的同时,如果在帧中某个采样和其他的采样不同,则标志NF 置位。读SCIxS1 然后读SCI
数据寄存器(SCIxD)可以清零NF。
2
NF
0 未检测到噪音。
1 SCIxD 中接收到的字符检测到噪音。
帧错误标志——接收器在停止位检测到逻辑0 时,FE 和RDRF 置位。这表明接收器没有对齐字符帧。读
SCIxS1 的FE=1 然后读SCI 数据寄存器(SCIxD)可以清零FE。
0 未检测到帧错误。这并不确保帧时正确的。
1
FE
1 帧错误。
奇偶错误标志——当奇偶校验使能(PE=1)并且接收到的数据中的校验位和正确的校验位不同,PE 和RDRF
置位。读SCIxS1 然后读SCI 数据寄存器(SCIxD)可以清零PF。
0 无奇偶校验错误。
0
PF
1 有奇偶校验错误。
11.2.5
SCI 状态寄存器2 (SCIxS2)
该寄存器有1 个只读状态标志。
7
6
5
4
3
2
1
0
R
W
0
RAF
LBKDIF
RXEDGIF
RXINV
RWUID
BRK13
LBKDE
Reset
0
0
0
0
0
0
0
0
= 保留或未使用
图 11-9. SCI 状态寄存器2 (SCIxS2)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表11-6. SCIxS2 域描述
域
描述
LIN 终止检测中断标志——当使能LIN 间隔检测电路,并且检测到一个LIN 间隔符,LBKDIF 置位。向
7
LBKDIF 写1,LBKDIF 清零。
0 未检测到LIN 间隔符。
1 检测到LIN 间隔符。
LBKDIF
RxD 引脚有效边沿中断标志——当RxD 引脚上一个有效边沿发生时(如果RXINV=0,下降沿,如果
RXINV=1,上升沿)RXEDGIF 置位。向其写1,RXEDGIF 清零。
0 在接收引脚上无有效边沿发生。
6
RXEDGIF
1 在接收引脚上有效边沿发生。
接收数据反转——该位置位则接受的数据输入的极性反转。
0 接收的数据未反转。
1 接收的数据反转。
4
RXINV1
接收唤醒空闲检测——RWUID 控制空闲字符是否置位IDLE 位。
0 在接收待命状态(RWU=1)期间,检测到空闲字符时,IDLE 不置位。
1 在接收待命状态(RWU=1)期间,检测到空闲字符时,IDLE 置位。
3
RWUID
间隔符长度——BRK13 可以选择更长的发送间隔符长度。该位的状态不影响帧错误的检测。
0 间隔符长度是10 字节(M=1 则为11)。
1 间隔符长度是13 字节(M=1 则为14)。
2
BRK13
LIN 间隔检测使能——LBKDE 可以选择更长的间隔符检测长度。当LBKDE 置位时,可以防止帧错误(FE)
和接收数据寄存器满(RDRF)标志置位。
0 间隔符的检测长度是10 字节(M=1 则为11)。
1
LBKDE
1 间隔符的检测长度是11 字节(M=1 则为12)。
接收器有效标志——当SCI 接收器检测到有效位的开始,RAF 置位;当接收器检测到空闲线,RAF 清零。该
状态位可以用来检查MCU 进入停止模式前,SCI 字符是否正被接收。
0 SCI 接收器空闲等待开始位。
0
RAF
1 SCI 处于活动中(RxD 输入无效)。
1
置位RXINV 反转RxD 输入的各种情况:数据位,开始位和停止位,终止和空闲。
当在LIN 系统中使用内部振荡器时,有必要把间断检测极限值增加一位。在最坏的情况下,LIN 允许的的
定时条件可能把0x00 数据字符看做10.26 位字节,因为在从机上运行比主机快14%。这将触发正常的间隔检
测电路(用来检测10 位间隔标志)。当LBKDE 位置位时,帧错误可以减少,间隔检测阈从10 位变成11 位
以防止把0x00 数据字符错误地检测成LIN 间隔符号。
11.2.6
SCI 控制寄存器3 (SCIxC3)
7
6
5
4
3
2
1
0
读
R8
T8
TXDIR
TXINV
ORIE
NEIE
FEIE
PEIE
写
复位
0
0
0
0
0
0
0
0
= 保留或未使用
表11-7. SCI 控制寄存器3 (SCIxC3)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表11-8. SCIxC3 域描述
域
描述
接收器的第九数据位——当SCI 设置为9 位数据时(M=1), R8 可以看作SCIxD 寄存器中数据的最高有效位左
边的第九位接收数据。当读9 位数据时,因为读SCIxD 会自动完成清零标志(允许在R8 和SCIxD 中写入新数
据),在读SCIxD 之前先读R8。
7
R8
发送器的第九数据位——当SCI 设置为9 位数据时(M=1), T8 可以看作SCIxD 寄存器中数据的最高有效位左
边的第九位发送数据。当写9 位数据时,在写SCIxD 之后整个9 位值传到SCI 移位寄存器,所以T8 应该在写
SCIxD 之前先写(如果T8 需要改变它的值)。如果T8 不需要改变值(比如当它用于产生标记或空间奇偶校
验)则不需要每次写SCIxD 都重写。
6
T8
单线模式TxD 引脚方向——当SCI 被设置为单线半双工操作时(LOOPS=RSRC=1),该位决定TxD 引脚上的
数据方向。
5
TXDIR
0 单线模式下TxD 引脚为输入。
1 单线模式下TxD 引脚位输出。
发送数据反转——该位置位则发送数据的输出的极性反转。
0 发送数据未反转。
1 发送数据反转。
4
TXINV1
溢出中断使能——该位使能溢出标志(OR),产生硬件中断请求。
0 禁止OR 中断(使用轮询)。
1 当OR=1 时,发出硬件中断请求。
3
ORIE
噪音错误中断使能——该位使能溢出标志(NF),产生硬件中断请求。
0 禁止NF 中断(使用轮询)。
1 当NF=1 时,发出硬件中断请求
2
NEIE
帧错误中断使能——该位使能帧错误标志(FE),产生硬件中断请求。
0 禁止FE 中断(使用轮询)。
1 当FE=1 时,发出硬件中断请求
1
FEIE
奇偶校验错误中断使能——该位使能奇偶校验错误标志(PF),产生硬件中断请求。
0 禁止PF 中断(使用轮询)。
1 当PF=1 时,发出硬件中断请求
0
PEIE
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
0
T6
0
T5
0
T4
0
T3
0
T2
0
T1
0
T0
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)
16分频
Tx 波特率
Rx 采样时钟
BUSCLK
SBR12:SBR0
如果[SBR12:SBR0] = 0
波特率产生器停止工作
(16 × 波特率)
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. 间隔符长度
BRK13
M
间隔符长度
0
0
1
1
0
1
0
1
10 位
11 位
13 位
14 位
11.3.3 接收功能描述
在该节中,接收器框图(图 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 章 串行外设接口(S08SPIV3)
12.1 简介
MC9S08AC16 系列含有一个串行外设接口(SPI)模块。与SPI 功能相关的四个引脚复用端口E 引脚
4-7。见附录 A 电气特性和时序规范。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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
MISO
MOSI
MISO
SPI 移位寄存器
SPI 移位寄存器
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SPSCK
SS
SPSCK
SS
时钟
发生器
图 12-2. SPI 系统连接
SPI 系统最常见的用途包括连接简单的移位寄存器用于加入输入或输出端口内容或连接一个小型的外围
设备如串行A/D,D/A 转换。虽然图 12-2 显示了一个如何在两个MCU 之间交换数据的系统,但在很多实际
应用系统中在主从机之间的数据单向交换更为简单。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
12.1.2.2
SPI 模块框图
图 12-3 是一个SPI 模块框图。SPI 的中心组成部分是SPI 移位寄存器。数据写入双缓存发射器(写给
SPID)并在一个数据发送开始时获得数据传送给SPI 移位寄存器。在移出一个字节数据后,数据被送入双缓
存接收器(从SPID 读出)在这数据可被读出。引脚多路技术逻辑控制MCU 引脚和SPI 模块之间的联系。
当把SPI 作为主机,该时钟输入被发送到SPSCK 引脚,移位寄存器的输出发送到主出从入引脚
(MOSI),移位寄存器的输入来自主入从出引脚(MISO)。
当把SPI 作为从机,SPI 引脚作为SPI 的时钟输入,移位寄存器输出发送到主入从出引脚(MISO),移
位寄存器输入来自主出从入引脚(MOSI)引脚。
在外围SPI 系统中,所有SPSCK 引脚简单地相互连接,所有主入从出引脚在一起,主出从入引脚在一
起。外围设备经常用略有不同的名字命名这些引脚。
引脚控制
M
MOSI
SPE
S
(MOMI)
Tx 缓存( 写SPID)
使能
M
S
MISO
(SISO)
SPI 系统
输出
移位
输入
移位
SPI 移位寄存器
SPC0
Rx 缓存( 读SPID)
BIDIRO
移位
方向
移位
时钟
Rx 缓存
满
Tx 缓存
空
LSBFE
主机时钟
从机时钟
M
总线速率
时钟
时钟
逻辑
SPIBR
时钟发生器
主机/从机
模式选择
SPSCK
S
主机/ 从机
MSTR
MODFE
SSOE
模式故障
检测
SS
SPTEF
SPRF
SPTIE
SPI
中断
MODF
请求
SPIE
图 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 内部主机模式位率时钟。
分频器
时钟速率分割器
主机
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
图 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 位描述
描述
位
SPI 中断使能位(SPRF 和MODF)—这是一个中断使能位用来控制SPI 响应缓存满和模式错误事件。
0 禁止SPRF 和MODF 中断(使用轮询检测)
1 当SPRF 或MODF 为1 时,请求一个硬件中断
7
SPIE
SPI 系统允许位—禁止SPI,并停止进程中任何传送,清除数据缓存,初始化内部状态。SPRF 被清零,SPTEF
被置位已表示SPI 传送数据缓存为空。
0 SPI 系统禁止
6
SPE
1 SPI 系统允许
SPI 发送中断允许位—该位使能用于SPI 发送缓存空中断
0 禁止SPTE 中断(使用轮询检测)
1 当SPTE 为1 时,硬件中断请求
5
SPTIE
主机/ 从机模式选择位
0 SPI 模块配置为一个从机SPI 设备
1 SPI 模块配置为一个主机SPI 设备
4
MSTR
时钟极性位—该位有效放置一个变极器串联来自主机SPI 或给从机SPI 的时钟信号。详情参阅 12.5.1 节 SPI 时
钟格式
3
CPOL
0 SPSCK 空闲时为低电平
1 SPSCK 空闲时为高电平
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表12-1. SPIC1 位描述
位
描述
时钟相位位—该位为不同类型的同步串行外设选择一个时钟形式。详情参阅 12.5.1 节 SPI 时钟格式
0 SPSCK 第一次沿跳变发生在8 个数据发送周期的第一个周期中期
1 SPSCK 第一次沿跳变发生在8 个数据发送周期的第一个周期开始
2
CPHA
1
从机选择输出使能位—该位用于连接SPCR2 模式故障使能位(MODFEN)和主机/ 从机控制位(MSTR)决
定表 12-2 中SS 脚功能
SSOE
LSB 优先(移位寄存器方向)
0 开始时即以最多显著位进行SPI 串行数据传送
1 开始时即以最少显著位进行SPI 串行数据传送
0
LSBFE
表12-2. SS 引脚功能
MODFEN
SSOE
主机模式
从机模式
0
0
1
1
0
1
0
1
通用I/O (非SPI)
通用I/O (非SPI)
SS 引脚输入用于模式故障
SS 引脚自动输出
从机选择输入
从机选择输入
从机选择输入
从机选择输入
注意
确保SPI 被禁止(SPE=0)同时改变CPHA 位。这些改变应表现为独立操作或突
发行为发生。
12.4.2
SPI 控制寄存器2 (SPIC2)
该读/ 写寄存器用于控制SPI 系统选项特征。位7,6,5,2 是无效的,一直读为0
7
6
5
4
3
2
1
0
读
写
0
0
0
0
MODFEN
BIDIROE
SPISWAI
SPC0
复位
0
0
0
0
0
0
0
0
= 保留或未使用
图 12-6. SPI 控制寄存器2 (SPIC2)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表12-3. SPIC2 寄存器位描述
位
描述
主机模式- 故障功能使能位- 当SPI 工作于从机模式,该位无意义,( SS 引脚是从机选择输出引脚) 在主机模
式下该位决定SS 引脚如何使用(详情参阅表 12-2)
0 模式故障功能禁止,主机SS 引脚作为通用I/O 引脚不受SPI 控制
4
MODFEN
1 模式故障功能允许,主机SS 引脚作为模式故障输入或从机选择输出
双向模式输出允许—当设置SPI 引脚控制(SPC0)=1,允许双向模式,BIDIROE 将决定该SPI 数据输出是否采
用单线双向SPI I/O 引脚。根据SPI 工作于主机模式还是从机模式,它使用MOSI(MOMI) 或MISO(SISO) 引脚
中的一个,作为SPI 数据I/O 引脚。当SPC0=0 时,BIDIROE 无意义。
0 输出驱动禁止SPI 数据I/O 引脚作为输入引脚
3
BIDIROE
1 SPI I/O 引脚允许作为输出引脚
在等待模式下SPI 停止
0 SPI 时钟继续工作于等待模式下
1 当MCU 进入等待模式时,SPI 时钟停止
1
SPISWAI
SPI 控制引脚0—SPC0 引脚选择单线双向模式。如果MSTR=0 (从机模式),该SPI 使用MISO 引脚用于双
向SPI 数据发送。如果MSTR=1,BIDIROE 用来允许或禁止用于单线双向SPI I/O 引脚的输出驱动。
0 SPI 使用独立引脚用于数据输入,输出
0
SPC0
1 SPI 配置为单线双向模式
12.4.3
SPI 比特率寄存器(SPIBR)
该寄存器为工作于主机方式SPI 设置分频器和位率因子,可在任何时候被读或写。
7
6
5
4
3
2
1
0
读
写
0
SPPR2
SPPR1
SPPR0
SPR3
SPR2
SPR1
SPR0
复位
0
0
0
0
0
0
0
0
= 保留或未使用
图 12-7. SPI 比特率寄存器(SPIBR)
表12-4. SPIBR 寄存器位描述
描述
位
6:4
SPPR[2:0]
SPI 波特率分频因子—这三位为SPI 波特率分频器选择表 12-5 中的八个因子中的一个。该分频器的输入是
总线速率时钟(BUSCLK)。该分频器的输出驱动SPI 波特率分割器的输入(见图 12-4)
2:0
SPR[2:0]
SPI 波特率因子—这三位为SPI 波特率分割器选择表 12-6 中的八个因子中的一个。该分割器的输入来自SPI
波特率分频器(见图 12-4)。该分割器的输出为主机模式下的SPI 位率时钟。
表12-5. SPI 波特率分频器因子
SPPR2:SPPR1:SPPR0
分频器因子
0:0:0
0:0:1
1
2
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表12-5. SPI 波特率分频器因子( 续)
SPPR2:SPPR1:SPPR0
分频器因子
0:1:0
0:1:1
1:0:0
1:0:1
1:1:0
1:1:1
3
4
5
6
7
8
表12-6. SPI 波特率因子
SPPR2:SPPR1:SPPR0
位率因子
0:0:0
0:0:1
0:1:0
0:1:1
1:0:0
1:0:1
1:1:0
1:1:1
2
4
8
16
32
64
128
256
12.4.4
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)
位
描述
SPI 读缓冲区满标志—SPRF 在SPI 完成数据发送时被置位表明收到的数据可能来自SPI 数据寄存器
(SPID)。通过读SPRF 可以清零它,然后读SPI 数据寄存器。
0 在接受数据缓存中无可用数据
7
SPRF
1 在接受数据缓存中数据可用
SPI 发送缓冲区空标志—当传送数据缓冲区里有空间时该标志位被置位。它可通过读SPIS 来清零,然后写
一个数据值给SPID 中的传送缓冲区。在SPTEF=1,写数据给SPID 之前必须读SPIS 否则写SPID 将被忽
略。如果SPIC1 中的SPTIE 位也被置位SPTEF 产生一个SPTEF CPU 中断请求。当一个字节的数据从传
送缓冲区里发送到发送移位寄存器时,SPTEF 被自动置位。对于闲置的SPI (无数据在发送缓冲区或移位
寄存器中,无发送动作),被写到SPID 的数据被立即发送到移位寄存器,所以SPTEF 在两个总线周期内
被置位允许第二个8 位值排队进入发送缓冲区。完成移位寄存器中的值的发送后,来自发送缓冲区的排队值
将自动移入到移位寄存器,SPTEF 将被置位以表明发送缓冲区里还有空间存放新数据。如果没有新数据在
缓冲区里,SPTEF 保持置位,无数据从缓冲区移到移位寄存器。
5
SPTEF
0 SPI 发送缓冲区非空
1 SPI 发送缓冲区空
主机模式故障标志—如果SPI 工作于主机方式且从机选择输入脚为低,MODF 被置位,表明其它一些SPI
设备也工作于方式。仅当MSTR=1,MODFEN=1,SSOE=0 时该SS 引脚用于模式故障输入;否则MODF
将从不被置位。通过读MODF 可以清零它,然后写SPI 控制寄存器1 (SPIC1)
0 无模式故障错误
4
MODF
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
送时SS 引脚被置位逻辑1. 如果CPHA=1,在连续传送时 引脚保持低电平。详情参阅 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
SPSCK
(CPOL = 0)
SPSCK
(CPOL = 1)
SAMPLE IN
(MISO OR MOSI)
MOSI
(MASTER OUT)
MSB FIRST
LSB FIRST
BIT 7
BIT 0
BIT 6
BIT 1
...
...
BIT 2
BIT 5
BIT 1
BIT 6
BIT 0
BIT 7
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
...
6
7
8
SPSCK
(CPOL = 0)
SPSCK
(CPOL = 1)
SAMPLE IN
(MISO OR MOSI)
MOSI
(MASTER OUT)
MSB FIRST
LSB FIRST
BIT 7
BIT 0
BIT 6
BIT 1
...
...
BIT 2
BIT 5
BIT 1
BIT 6
BIT 0
BIT 7
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 章 IIC 总线(S08IICV2)
13.1 简介
MC9S08AC16 系列微控制器包含一个IIC 模块用于内部电路的通信连接。该模块相关的两个引脚SCL 和
SDA 复用端口C 引脚0 和1。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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
DATA_MUX
CTRL_REG
FREQ_REG
ADDR_REG
STATUS_REG
DATA_REG
输入同步
Sync
输入输出
数字移位寄存器
开始
停止
仲裁控制
Control
Shift
Register
时钟控制
Control
地址比较
Compare
SDA
SCL
图 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
0
读
0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
写
复位
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
读
写
MULT
ICR
复位
0
0
0
0
0
0
0
0
图 13-4. IIC 频率分频寄存器
表13-2. IICF 位描述
描述
位
7-6
MULT
IIC 增频因子。MULT 位定义了增频因子,该因子和SCL 分频因子配合使用设置IIC 的波特率。Mul 定义如
下:
00 mul=01
01 mul=02
10 mul=04
11 不使用
5-0
ICR
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 开始
3.000
SCL 停止
5.500
0x2
0x1
0x1
0x0
0x0
0x00
0x07
0x0B
0x14
0x18
3.500
2.500
2.250
2.126
1.125
4.000
5.250
4.000
5.250
4.25.
5.125
4.750
5.125
表13-4. IIC 分频因子和保持值
SCL 保持 SCL 保持
SCL 保持 SCL 保持
ICR
(hex) 频因子
ICR
(hex)
SCL 分
SDA 保
持值
SCL 分频 SDA 保
值(开
值(停
值(开
值(停
因子
持值
始)
止)
始)
止)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
20
22
24
26
28
30
34
40
28
32
36
40
44
48
56
68
48
56
64
72
7
7
6
11
12
13
14
15
16
18
21
15
17
19
21
23
25
29
35
25
29
33
37
20
21
22
23
24
25
26
27
28
19
2A
2B
2C
2D
2E
2F
30
31
32
33
160
192
224
256
288
320
384
480
320
384
448
512
576
640
768
960
640
768
896
1024
17
17
78
81
7
94
97
8
8
33
110
126
142
158
190
238
158
190
222
254
286
318
382
478
318
382
510
510
113
129
145
161
193
241
161
193
225
257
289
321
385
481
321
385
513
513
8
9
33
9
10
11
13
16
10
12
14
16
18
20
24
30
18
22
26
30
49
9
49
10
10
7
65
65
33
7
33
9
65
9
65
11
11
13
13
9
97
97
129
129
65
9
65
12
13
13
13
129
129
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表13-4. IIC 分频因子和保持值( 续)
SCL 保持 SCL 保持
SCL 保持 SCL 保持
ICR
(hex) 频因子
ICR
(hex)
SCL 分
SDA 保
持值
SCL 分频 SDA 保
值(开
始)
值(停
止)
值(开
始)
值(停
止)
因子
持值
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
80
88
17
17
21
21
9
34
38
46
58
38
46
54
62
70
78
94
118
41
45
53
65
41
49
57
65
73
81
97
121
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
1152
1280
1536
1920
1280
1536
1792
2048
2304
2560
3072
3840
193
193
257
257
129
129
257
257
385
385
513
513
638
574
641
577
104
128
80
766
769
958
961
638
641
96
9
766
769
112
128
144
160
192
240
17
17
25
25
33
33
894
897
1022
1150
1278
1534
1918
1025
1153
1281
1537
1921
13.3.3
IIC 控制寄存器(IICC1)
7
6
5
4
3
2
1
0
读
0
0
0
IICEN
IICIE
MST
TX
TXAK
0
写
RSTA
0
复位
0
0
0
0
0
0
= 保留或未使用
图 13-5. IIC 控制寄存器(IICC1)
表13-5. IICC1 位描述
描述
位
7
IIC 使能位。该IICEN 位决定IIC 模块是否允许。
IICEN
0 IIC 不允许
1 IIC 允许
6
IIC 中断请求允许位。IICEIE 位决定IIC 中断请求是否被允许。
0 IIC 中断请求不允许
IICIE
1 IIC 中断请求允许
5
主模式选作位。当该位从0 变到1,IIC 总线上产生一个开始信号,MCU 被确定为主模式。
MST
当该位从1 到0,MCU 将在IIC 总线上产生停止信号,操作模式也敬爱那个从注模式变为从模式。
0 从机模式
1 主机模式
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表13-5. IICC1 位描述( 续)
位
描述
4
TX
发送模式选择位。该位用来选择主机和从机的数据传送方向。在主机模式下,该位可根据数据传送需求来确
定,虽然在整个地址周期,该位始终为1. 当MCU 为从机时,该位将根据状态寄存器的SRW 位来确定
0 接受模式
1 发送模式
3
发送应答使能位。在主机和从机接受缓存的数据识别期间该位指定驱动到SDA 上的值
0 在接受完一个字节后发送应答信号
TXAK
1 不发送应答信号
2
重新开始(repeat START)。若MCU 在主机模式下,写一个1 到该位将产生一个重新开始信号。该位读出时
总为0。在错误的时间尝试重新开始将丢失仲裁。
RSTA
13.3.4
IIC 状态寄存器(IICS)
7
6
5
4
3
2
1
0
读
写
TCF
BUSY
0
SRW
RXAK
IAAS
ARBL
IICIF
复位
1
0
0
0
0
0
0
0
= 保留或未使用
图 13-6. IIC 状态寄存器(IICS)
表13-6. IIC 位描述
描述
位
7
发送完成标志位。一个字节传送完毕后,该位将被置位。该位只在进行IIC 模块传送时有效。在接收模式下,读
TCF
IIC 数据寄存器IICD 或在发送模式下写IICD 清除该位。
0 发送中
1 发送已完成
6
地址被选择标志位。当MCU 作为从机,并且它的地址与IIC 总线上由主机发送的寻址地址吻合时,该位被置
IAAS
位。写IICC 寄存器清零该位。
0 MCU 未被寻址
1 MCU 作为从机被主机寻址
5
总线忙标志。该位表明总线的状态无论是在主机模式还是从机模式。当检测到开始信号,该位被置位。当检测到
停止信号时,该位被清零
0 总线空闲
BUSY
1 总线忙
4
仲裁丢失标志位。当仲裁处理丢失,该位被硬件置位。必须通过软件的方法向该位写1 来清除该位。
ARBL
0 正常总线操作
1 仲裁丢失
2
从机读写标志位。当MCU 作为从机被寻址时,该位被设为主机发送的寻址地址的读/ 写命令的值。
0 从机为接收模式,主机向从机写数据
SRW
1 从机为发送模式,主机从从机读数据
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表13-6. IIC 位描述( 续)
位
描述
1
IIC 中断标志位。当一个中断发生该位被置位。必须通过软件方法来向该位写1 清除该位。下列时件之一可以置
IICIF
位IICIF:一个字节传送完毕,从地址被选中,仲裁丢失。
0 无中断未决
1 有中断未决
0
接收应答标志。当该位为0 时表明在总线上传送完一个字节后接收到了应答信号。如果为1 则表示没有接收到应
答信号
RXAK
0 接收应答信号
1 无接收应答信号
13.3.5
IIC 数据输入输出寄存器(IICD)
7
6
5
4
3
2
1
0
读
写
DATA
复位
0
0
0
0
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 版
飞思卡尔半导体公司
#
13.3.6
IIC 控制寄存器2 (IICC2)
7
6
5
4
3
2
1
0
读
0
0
0
GCAEN
ADEXT
AD10
AD9
AD8
写
复位
0
0
0
0
0
0
0
0
= 保留或未使用
图 13-8. IIC 控制寄存器2 (IICC2)
表13-8. IICC2 位描述
描述
位
7
一般寻址使能位。GCAEN 位允许或禁止一般寻址。
0 一般寻址禁止
GCAEN
1 一般寻址允许
6
地址扩展。ADEXT 位控制用于从机地址的位数
0 7 位地址方案
ADEXT
1 10 位地址方案
2-0
从机地址。AD[10:8] 包含10 位地址方案从机地址的高三位。仅当ADEXT 被置位该位才有效。
AD[10:8]
13.4 功能描述
这部分将提供IIC 模块一个完整的功能描述。
13.4.1
IIC 协议
IIC 总线系统使用一个串行数据线(SDA)和一个串行时钟线(SCL) 用于数据传送。所有连接到它的设备
必须具有公开通道或公开手机输入。带有外部上拉电阻的两条线可执行逻辑与操作。电阻值由系统决定。
通常情况下,一个标准的通信包含以下四个部分:
• 开始信号
• 从机地址传输
• 数据传输
• 停止信号
停止信号不应被CPU 停止指令所干扰。IIC 总线系统通信将在下面进行简要描述,并附上图 13-9。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
msb
1
lsb
8
msb
1
lsb
8
SCL
SDA
2
3
4
5
6
7
9
2
3
4
5
6
7
9
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W
XXX
D7 D6 D5
D4 D3 D2 D1 D0
Ack
Bit
数据字节
No
Ack
Bit
停止信号
开始信号
读/ 写
寻址地址
msb
1
lsb
8
msb
lsb
SCL
SDA
2
3
4
5
6
7
9
1
2
3
4
5
6
7
8
9
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W
XX
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W
开始信号
寻址地址
读/ 写 Ack
重新开始
信号
新的寻址地址
No
Ack
Bit
读/ 写
停止信号
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
R/W
0
A1
A2
A
…
A/A
P
从机地址头7 位
11110+AD10+AD9
从机地址第二个
字节AD[8:1]
数据
数据
在主机发送器发送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
R/W
0
A1
A2 Sr
R/W A3
1
A
…
A/A
P
从机地址头
7 位
11110+AD1
从机地址
第二个字
节AD[8:1]
从机地址
头7 位
11110+AD
数据
数据
0+AD9
10+AD9
在主机接收器发送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. 中断摘要
中断源
状态
TCF
标志
IICIF
IICIF
IICIF
使能
IICIE
IICIE
IICIE
完成一个字节传送
标准寻址匹配
仲裁丢失
IAAS
ARBL
13.6.1 字节传送中断
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]
0
IICA
IICF
当作为从机被寻址时(在从机模式下),该模块响应此地址
MULT
ICR
波特率= BUSCLK / (2 x MULT x (SCL DIVIDER))
IICEN
模块配置
TCF
IICIE
IAAS
MST
TX
TXAK
0
RSTA
SRW
0
0
IICC1
IICS
BUSY
ARBL
IICIF
RXAK
模块状态标识
DATA
IICD
数据寄存器;发送和读取IIC数据
GCAEN ADEXT
0
0
0
AD10
AD9
AD8
IICC2
图 13-11. IIC 模块快速启动
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
清
IICIF
主机
模式
?
Y
N
是
仲裁丢失
发送
接收
发送/ 接收
?
?
否
最后字节
已经发送
?
清ARBL
是
否
否
将要
读取最后字节
是
否
RXAK=0
?
IAAS=1
?
IAAS=1
?
是
?
否
是
是
否
数据传送
见注2
地址传送
见注1
是
( 读)
结束
地址周期
( 主机发送)
?
将要
读取倒数第二个
是
是
SRW=1
?
TX/RX
?
接收
?
字节?
发送
( 写)
否
否
否
ACK 来自
接收器
?
是
产生停止信号
向IICD 写
下个字节
置发送模式
置XACK =1
(MST = 0)
否
从IICD读取
数据并存储
发送下个字节
向IICD 写数据
跳转到
接收模式
设置接收
模式
跳转到
接收模式
产生停止
信号
(MST = 0)
从IICD读取
数据并存储
虚读
虚读
虚读
IICD
IICD
IICD
RTI
注
1
如果一般调用允许,必须执行一个检测来决定接收到的地址是否是一个一般寻址(0X00)。如果是的话,然后由用户软件来
处理它。
2
当10 位地址被用来寻址从机,在扩展地址的第一个字节后从机注意到一个中断。用户软件必须确保此中断,IICD 的内容被忽
略且不作为一个有效数据传送。
图 13-12. 典型的IIC 中断流程
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
第14 章 AD 转换器(S08ADC0V1)
14.1 概述
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 版
飞思卡尔半导体公司
#
VDDAD
VSSAD
VREFL
VREFH
PTA7
PTA2
PTA1
PTA0
AD1P3–AD1P0
4
10 位A/D 转换模块
4
AD1P11–AD1P8
(ADC)
HCS08 CORE
PTB3/AD1P3
调试模块(DBG)
IIC 模块(IIC)
PTB2/AD1P2
PTB1/TPM3CH1 /AD1P1
PTB0/TPM3CH0 /AD1P0
BKGD/MS
BDC
CPU
SDA1
SCL1
PTC5/RxD2
PTC4
PTC3/TxD2
RESET
HCS08 SYSTEM CONTROL
PTC2/MCLK
PTC1/SDA1
PTC0/SCL1
EXTAL
XTAL
RESETS AND INTERRUPTS
MODES OF OPERATION
POWER MANAGEMENT
内部时钟发生器ICG
IRQ/TPMCLK
低功耗的振荡器
RTI
COP
LVD
PTD3/KBIP6/AD1P11
PTD2/KBIP5/AD1P10
PTD1/AD1P9
KBIP6–KBIP5
2
5
IRQ
KBIP4–KBIP0
7 位键盘中断模块(KBI)
PTD0/AD1P8
RxD1
TxD1
TPMCLK
串行通信接口模块(SCI1)
串行通信接口模块(SCI2)
PTE7/SPSCK1
PTE6/MOSI1
PTE5/MISO1
PTE4/SS1
PTE3/TPM1CH1
PTE2/TPM1CH0
RxD2
TxD2
SPSCK1
MOSI1
MISO1
PTE1/RxD1
PTE0/TxD1
串行外设接口模块(SPI)
16K 或8K 片内
Flash 程序存储器
SS1
TPM1CH1
TPM1CH0
TPM1CH3
TPM1CH2
4 通道定时器/PWM 模块
PTF6
PTF5/TPM2CH1
PTF4/TPM2CH0
PTF1/TPM1CH3
PTF0/TPM1CH2
(TPM1)
1024 字节或768 字节
片内RAM
TPM2CH1
TPM2CH0
2 通道定时器/PWM 模块
(TPM2)
PTG6/EXTAL
PTG5/XTAL
PTG4/KBIP4
PTG3/KBIP3
PTG2/KBIP2
PTG1/KBIP1
VDD
VSS
TPM3CH1
TPM3CH0
2 通道定时器/PWM 模块
电压调节模块
(TPM3)
=
=
=
=
在32 或44 引脚封装的MCU 中没有提供。
在32 引脚封装的MCU 中没有提供。
在44 引脚封装的MCU 中没有提供。
S9S08AWxxA 设备中没有提供。
PTG0/KBIP0
注:
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
通道
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD8
AD9
输入
引脚控制
ADPC0
ADPC1
ADPC2
ADPC3
N/A
通道
AD16
AD17
AD18
AD19
AD20
AD21
AD22
AD23
AD24
AD25
AD26
AD27
输入
VREFL
引脚控制
N/A
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
PTB0/AD1P0
PTB1/AD1P1
PTB2/AD1P2
PTB3/AD1P3
VREFL
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
VREFL
N/A
VREFL
N/A
VREFL
N/A
VREFL
N/A
VREFL
VREFL
N/A
N/A
VREFL
N/A
Reserved
Reserved
Reserved
Reserved
Temp Sensor
N/A
VREFL
N/A
N/A
PTD0/AD1P8
PTD1/AD1P9
PTD2/AD1P10
PTD3/AD1P11
ADPC8
ADPC9
ADPC10
ADPC11
N/A
N/A
01010 AD10
01011 AD11
N/A
Internal
N/A
Bandgap
VREFL
VREFL
VREFL
VREFL
01100 AD12
01101 AD13
01110 AD14
01111 AD15
N/A
N/A
N/A
N/A
11100
11101
11110
11111
Reserved
VREFH
VREFL
N/A
N/A
N/A
N/A
V
REFH
V
REFL
None
module
disable
注意
选择内部的能带隙通道要求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- ((V
-V
)/m)
TEMP25
公式 14-1
TEMP
其中:
•
•
•
V
V
TEMP 是温度传感器通道在周围温度时的电压。
TEMP25 是温度传感器通道在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 版
飞思卡尔半导体公司
#
比较真
ADCSC1
ADCCFG
3
异步时钟
发送器
1
2
ADACK
总线时钟
MCU STOP
ADHWT
ADCK
时钟
分频
控制顺序
÷2
ALTCLK
AD0
1
2
AIEN
中断
COCO
ADVIN
SAR 转换器
AD27
VREFH
VREFL
数据寄存器
比较真
3
比较逻辑
ADCSC2
比较值寄存器
图 14-2. ADC 框图
14.3 外部信号描述
ADC 模块支持高达28 个独立模拟输入。也需要4 个电源/ 参考/ 地连接。
表14-2. 信号属性
名称
AD27-AD0
VREFH
功能
模拟通道输入
高参考电压
低参考电压
模拟电压供电
模拟地
VREFL
VDDAD
VSSAD
14.3.1 模拟电源(V
)
DDAD
ADC 模拟部分使用作为它的电源连接。在相同的封装中,VDDAD 在内部连接到VDD。如果外部可能,连
接到VDDAD 的引脚和VDD 到相同电压。外部滤波对VDDAD 可能是必要的。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
14.3.2 模拟地(V
)
SSAD
ADC 模拟部分使用作为它的地连接。在相同的封装中,VSSAD 在内部连接到VSS。如果外部可能,连接
到VSSAD 引脚和VSS 到相同电压。
14.3.3 参考高电压(V
)
REFH
REFH 是转换器的参考高电压,在相同的封装中,VREFH 在内部连接到VDDAD,如果外部可能,连接到
REFH 的引脚和VDDAD 到相同电压。或者被外部源(在最小的VDDAD 规格和VDDAD 电压之间)驱动。
V
V
14.3.4 参考低电压(V )
REFL
REFL 是转换器的参考低电压,在相同的封装中,VREFL 在内部连接到VSSAD,如果外部可能,连接到
REFL 的引脚和VSSAD 到相同电压。
V
V
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
4
3
2
1
0
读
写
COCO
AIEN
ADCO
ADCH
复位
0
0
0
1
1
1
1
1
= 保留或未使用
图 14-3. 状态和控制寄存器(ADCSC1)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表14-3. ADCSC1 寄存器域描述
域
描述
7
转换完成标志——COCO 标志是一个只读位。当比较功能禁止(ACFE=0)时,每次转换完成时置位。当比较
COCO
功能允许(ACFE=1)时,转换完成后,只要比较结果为真,则COCO 置位。只要写ADCSC1 或读ADCRL,
该位清零。
0 转换未完成。
1 转换完成。
6
中断允许——AIEN 用于使能转换完成中断。当AIEN 为高,COCO 置位时,确认一个中断。
AIEN
0 禁止转换完成中断。
1 允许转换完成中断。
5
连续转换使能——ADCO 用于使能连续转换。
ADCO
0 当选择软件触发中断时,写ADCSC1 后开始一个转换。当选择硬件触发中断时,确认了ADHWT 后开始一个
中断。
1 当选择软件触发中断时,写ADCSC1 后初始化连续转换。当选择硬件触发中断时,连续转换被ADHWT 事件
初始化。
4:0
输入通道选择——ADCH 包括5 位,用于选择输入通道中的一个。输入通道在表 14-4 中描述。
ADCH
当通道选择位设置为全1 时,逐次逼近转换器子系统关闭。这个特点允许禁止ADC 和从所有的源中孤立输入通
道。
表14-4. 输入通道选择
ADCH
输入选择
AD0
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD8
AD9
AD10
AD11
AD12
AD13
AD14
AD15
AD16
AD17
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表14-4. 输入通道选择( 续)
ADCH
输入选择
AD18
AD19
AD20
AD21
AD22
AD23
AD24
AD25
AD26
AD27
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
保留
VREFH
VREFL
模块被禁止
14.4.2 状态和控制寄存器2 (ADCSC2)
ADCSC2 寄存器用于控制比较功能,转换触发和ADC 模块的转换行为。
7
6
5
4
3
2
1
0
读
写
ADACT
0
0
ADTRG
ACFE
ACFGT
R1
R1
复位
0
0
0
0
0
0
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 用于选择初始化转换的触发的类型。两种触发类型可选:
软件触发和硬件触发。选择软件触发,写ADCSC1 后初始化一个转换。选择硬件触
发,确认了ADHWT 输入后初始化转换。
ADTRG
0 选择软件触发。
1 需安装硬件触发。
5
比较功能使能——ACFE 用于使能比较功能。
0 禁止比较功能。
ACFE
1 允许比较功能。
4
比较功能更大使能——当监控的输入的转换结果大于或等于比较结果时,ACFGT 用
于设置比较功能的触发。当监控的输入的转换结果小于比较结果时,比较功能默认触
发。
ACFGT
0 当输入小于比较电平时,比较触发。
1 当输入大于或等于比较电平时,比较触发。
14.4.3 数据高结果寄存器(ADCRH)
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)
14.4.4 数据低结果寄存器(ADCRL)
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
14.4.5 比较值高寄存器(ADCCVH)
该寄存器包含了10 位比较值的高2 位。当允许比较功能时,这些位和10 位模式中的转换结果的高2 位
比较。在8 位操作中,ADCCVH 在比较过程中不使用。
7
6
5
4
3
2
1
0
读
写
0
0
0
0
ADCV9
ADCV8
复位
0
0
0
0
0
0
0
0
= 保留或未使用
图 14-7. 比较值高寄存器(ADCCVH)
14.4.6 比较值低寄存器(ADCCVL)
该寄存器包含了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
ADIV
ADLSMP
MODE
ADICLK
复位
0
0
0
0
0
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 选择长和短采样时间。这可以调整采样周期,使在更
高阻抗的输入下也能得到精确的采样,也可以在低阻抗时最大化转换速度。如果连续
采样允许而且不需要高输出斜率,更长的采样时间可以用于更低的总功耗。
0 短采样时间。
ADLSMP
1 长采样时间。
3:2
转换模式选择——MODE 位用于选择8 位或10 位操作。参见表 14-8。
MODE
1:0
输入时钟选择——ADICLK 选择产生内部时钟ADCK 的输入时钟源。参见表 14-9。
ADICLK
表14-7. 时钟分频选择
ADIV
分频因子
时钟
00
01
10
11
1
2
4
8
输入时钟
输入时钟/2
输入时钟/4
输入时钟/8
表14-8. 转换模式
模式
00
模式描述
8 位转换(N=8)
保留
01
10
10 位转换(N=10)
保留
11
表14-9. 输入时钟选择
ADICLK
时钟源选择
00
01
10
11
总线时钟
总线时钟/2
交替时钟(ALTCLK)
异步时钟(ADACK)
14.4.8 引脚控制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 寄存器域描述
描述
域
7
ADC 引脚控制7——ADPC7 用于控制和通道AD7 相关的位。
0 允许AD7 引脚I/O 控制。
ADPC7
1 禁止AD7 引脚I/O 控制。
6
ADC 引脚控制6——ADPC6 用于控制和通道AD6 相关的位。
0 允许AD6 引脚I/O 控制。
ADPC6
1 禁止AD6 引脚I/O 控制。
5
ADC 引脚控制5——ADPC5 用于控制和通道AD5 相关的位。
0 允许AD5 引脚I/O 控制。
ADPC5
1 禁止AD5 引脚I/O 控制。
4
ADC 引脚控制4——ADPC4 用于控制和通道AD4 相关的位。
0 允许AD4 引脚I/O 控制。
ADPC4
1 禁止AD4 引脚I/O 控制。
3
ADC 引脚控制3——ADPC3 用于控制和通道AD3 相关的位。
0 允许AD3 引脚I/O 控制。
ADPC3
1 禁止AD3 引脚I/O 控制。
2
ADC 引脚控制2——ADPC2 用于控制和通道AD2 相关的位。
0 允许AD2 引脚I/O 控制。
ADPC2
1 禁止AD2 引脚I/O 控制。
1
ADC 引脚控制1——ADPC1 用于控制和通道AD1 相关的位。
0 允许AD1 引脚I/O 控制。
ADPC1
1 禁止AD1 引脚I/O 控制。
0
ADC 引脚控制0——ADPC0 用于控制和通道AD0 相关的位。
0 允许AD0 引脚I/O 控制。
ADPC0
1 禁止AD0 引脚I/O 控制。
14.4.9 引脚控制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 寄存器域描述
域
描述
7
ADC 引脚控制15——ADPC15 用于控制和通道AD15 相关的位。
0 允许AD15 引脚I/O 控制。
ADPC15
1 禁止AD15 引脚I/O 控制。
6
ADC 引脚控制14——ADPC14 用于控制和通道AD14 相关的位。
0 允许AD14 引脚I/O 控制。
ADPC14
1 禁止AD14 引脚I/O 控制。
5
ADC 引脚控制13——ADPC13 用于控制和通道AD13 相关的位。
0 允许AD13 引脚I/O 控制。
ADPC13
1 禁止AD13 引脚I/O 控制。
4
ADC 引脚控制12——ADPC12 用于控制和通道AD12 相关的位。
0 允许AD12 引脚I/O 控制。
ADPC12
1 禁止AD12 引脚I/O 控制。
3
ADC 引脚控制11——ADPC11 用于控制和通道AD11 相关的位。
0 允许AD11 引脚I/O 控制。
ADPC11
1 禁止AD11 引脚I/O 控制。
2
ADC 引脚控制10——ADPC10 用于控制和通道AD10 相关的位。
0 允许AD10 引脚I/O 控制。
ADPC10
1 禁止AD10 引脚I/O 控制。
1
ADC 引脚控制9——ADPC9 用于控制和通道AD9 相关的位。
0 允许AD9 引脚I/O 控制。
ADPC9
1 禁止AD9 引脚I/O 控制。
0
ADC 引脚控制8——ADPC8 用于控制和通道AD8 相关的位。
0 允许AD8 引脚I/O 控制。
ADPC8
1 禁止AD8 引脚I/O 控制。
14.4.10 引脚控制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
ADC 引脚控制23——ADPC23 用于控制和通道AD23 相关的位。
0 允许AD23 引脚I/O 控制。
ADPC23
1 禁止AD23 引脚I/O 控制。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表14-12. APCTL3 寄存器域描述
6
ADC 引脚控制22——ADPC22 用于控制和通道AD22 相关的位。
0 允许AD22 引脚I/O 控制。
ADPC22
1 禁止AD22 引脚I/O 控制。
5
ADC 引脚控制21——ADPC21 用于控制和通道AD21 相关的位。
0 允许AD21 引脚I/O 控制。
ADPC21
1 禁止AD21 引脚I/O 控制。
4
ADC 引脚控制20——ADPC20 用于控制和通道AD20 相关的位。
0 允许AD20 引脚I/O 控制。
ADPC20
1 禁止AD20 引脚I/O 控制。
3
ADC 引脚控制19——ADPC19 用于控制和通道AD19 相关的位。
0 允许AD19 引脚I/O 控制。
ADPC19
1 禁止AD19 引脚I/O 控制。
2
ADC 引脚控制18——ADPC18 用于控制和通道AD18 相关的位。
0 允许AD18 引脚I/O 控制。
ADPC18
1 禁止AD18 引脚I/O 控制。
1
ADC 引脚控制17——ADPC17 用于控制和通道AD17 相关的位。
0 允许AD17 引脚I/O 控制。
ADPC17
1 禁止AD17 引脚I/O 控制。
0
ADC 引脚控制16——ADPC16 用于控制和通道AD16 相关的位。
0 允许AD16 引脚I/O 控制。
ADPC16
1 禁止AD16 引脚I/O 控制。
14.5 功能描述
当复位或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
转换类型
最大总转换时间
0
0
1
1
0
0
1
1
0
单个或第一个连续转换8 位
单个或第一个连续转换10 位
单个或第一个连续转换8 位
单个或第一个连续转换10 位
单个或第一个连续转换8 位
单个或第一个连续转换10 位
单个或第一个连续转换8 位
单个或第一个连续转换10 位
后来的连续转换8 位
0x,100
0x,100
0x,100
0x,100
11
20ADCK 周期+5 总线时钟周期
23ADCK 周期+5 总线时钟周期
40ADCK 周期+5 总线时钟周期
40ADCK 周期+5 总线时钟周期
5s+20ADCK +5 总线时钟周期
5s+23ADCK +5 总线时钟周期
5s+40ADCK +5 总线时钟周期
5s+43ADCK +5 总线时钟周期
17ADCK 周期
11
11
11
xx
f
BUS ≥fADCK
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表14-13. 不同控制条件的总转换时间 (续)
xx
xx
xx
0
1
1
后来的连续转换10 位
BUS ≥fADCK
20ADCK 周期
37ADCK 周期
40ADCK 周期
f
后来的连续转换8 位
BUS ≥fADCK/11
f
后来的连续转换10 位
BUS ≥fADCK/11
f
最大的总转换时间由转换时钟和分频因子决定。时钟源由ADICLK 位决定,分频因子由ADIV 描述。例如,
在10 位模式中,选择总线时钟作为输入时钟源,输入时钟除以1 分频,8MHz 总线时钟,则单个转换的转换
时间是:
23 ADCK 周期
5总线周期
转换时间
=
+
= 3 .5 μ s
公式 14-2
8 MHz
1
8 MHz
总线时钟的个数=3.5 μs ×8 MHz = 28 (周期)
注意
ADCK 频率必须在ADC 说明书中的f
最小值和f
最大值之间。
ADCK
ADCK
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
14.5.7.2
允许ADACK 的stop3 模式
如果选择ADACK 作为转换时钟,在stop3 模式时,ADC 继续工作。为了保证ADC 操作,MCU 的电源
调整器在stop3 模式时必须仍然有效。参考该MCU 模块介绍中的配置信息。
如果MCU 进入stop3 模式时,有一个转换正在处理,它将继续直到完成。当MCU 处于stop3 模式时,
通过硬件触发的方式或者如果允许连续转换,可以初始化转换。
转换完成事件置位COCO,并且如果中断允许(AIEN=1)还会产生一个ADC 中断将MCU 从等待模式
唤醒。
注意
ADC 可能将系统从低功率停止中唤醒,导致MCU 开始强烈的运行电平电流而没
有产生一个系统电平中断。为了避免这种情况,当进入stop3 模式并继续ADC 转
换时,软件应该确保数据传输闭锁机制(在第 14.5.4.2 节 完成转换)清零。
14.5.8
MCU stop1 和stop2 模式操作
当MCU 进入stop1 或stop2 模式时,自动禁止ADC 模块。从stop1 或stop2 退出时,所有的模块寄存
器存放的是复位值。因此从stop1 或stop2 退出时,模块必须被重新使能和重新配置。
14.6 初始化信息
该节举例说明了用户如何初始化和配置ADC 模块的一些基本方用法。用户可以灵活地选择配置模块,8
位或10 位精度,单个或连续转换,循环或中断方式,还有其他选项。在该例中的信息可以参见表 14-7、
表 14-8 和表 14-9。
注意
十六进制的前缀是0x,二进制的前缀是%,十进制没有前缀。
14.6.1
ADC 模块初始化举例
14.6.1.1
初始化顺序
在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
ADIV
1
配置为低功耗(降低最大的时钟速率)
Bit 6:5
00
设置ADCK 为输入时钟/1
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
Bit 4
ADLSMP
MODE
1
设置位长采样时间
Bit 3:2
Bit 1:0
10
00
设置位10 位转换模式
选择总线时钟作为输入时钟
ADICLK
ADCSC2=0x00 (%00000000)
Bit 7
ADACT
ADTRG
ACFE
0
标志表示转换是否在处理中
选择软件触发器
Bit 6
0
Bit 5
0
禁止比较功能
Bit 4
ACFGT
0
在该例中未使用
Bit 3:2
Bit 1:0
00
00
未实现或保留,读为0
保留为Freescale 使用;写为0
ADCSC1=0x41 (%01000001)
Bit 7
COCO
AIEN
0
只读标志当转换完成时置位
转换完成中断使能
Bit 6
1
Bit 5
ADCO
ADCH
0
仅一次转换(禁止连续转换)
选择通道1 作为ADC 输入通道
Bit 4:0
00001
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,在有些设备中,可能和
DDAD 复用相同的引脚。地参考电压是VREFL,在有些设备中和VSSAD 复用相同的引脚。
V
当作为单独引脚时,VREFH 可能和VDDAD 连到相同的电压。或可能是由外部得到(介于VDDAD 最小值
和VDDAD 之间,VREFH 绝对不能大于VDDAD)。当作为单独引脚时,VREFL 可能和VDDAD 连到相同的电压。
V
REFH 和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 采样
的正确性。
噪音误差
•
•
V
V
REFH 和VREFL 之间有一个0.1 μF 的低内阴电容。
DDAD 和VSSAD 之间有一个0.1 μF 的低内阴电容。
• 如果电源使用感应隔离,一个1 μF 的电容放在VDDAD 和VSSAD 之间。
SSAD (和VREFL,如果连接)连接到VSS (连着地平面的点)。
•
V
• 初始化(硬件触发转换)前或刚初始化(软件或硬件触发转换)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,
为:
N
1LSB= (V
-V
)/2
REFL
公式 14-3
REFH
数字化结果存在固有的量化误差。对于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 ( 先进先出) 缓存, 用于捕获信息:
• 流程变化的地址或
• 纯事件数据
• 两个类型的断点:
• 指令操作码的标记断点
• 任何地址存取的强制断点
• 九个触发模式:
• 基本:只有A,A 或B
• 顺序:A 然后B
• 全部:A 和B 数据, A 和非B 数据
• 事件( 存储数据): 纯事件B, A 然后纯事件B
• 范围:在范围以内(A ≤地址≤B), 在范围以外( 地址< A 或地址> B)
15.2 背景调试控制器(BDC)
HCS08 系列中的所有MCU 都包含一个单线背景调试接口,它支持片上非易失性存储器的在线编程和先
进的非侵入式调试功能。与早期的8- 位MCU 的调试接口不同, 这个系统不干扰正常的应用资源。它不使用任
何用户存储器或存储器映射中的地址,也不分享任何片上外设。
BDC 命令分为两大组:
• 激活背景调试模式命令要求目标MCU 处于激活背景调试模式( 用户程序未运行)。激活背景调试模式
命令允许读写CPU 寄存器,允许用户一次跟踪一个用户指令,或从激活背景调试模式进入用户程序。
• 非侵入式命令可以随时执行,即使用户的程序正在运行。
非侵入式命令允许用户在背景调试控制器中读写MCU 存储器位置或存取状态和控制寄
存器。
一般地,可以用相当简单的接口盒将来自主机的命令转换为与单线背景调试系统连接所需的串行命令。
根据开发工具供应商的不同,这个接口盒可以采用标准232 串行端口,或是并行打印端口,或是其它类型的
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
通信端口,如用来与PC 通信的USB 接口。这个接口盒一般通过接地、BKGD 引脚、RESET,有时还有
VDD 与目标系统连接。RESET 引脚的开漏连接允许主机强制目标系统复位,这有助于重新获得对已失目标系
统的控制,或在片上非易失性存储器重新编程之前,控制目标系统的启动。有时可以用VDD 来允许接口盒使
用目标系统的电源,避免再使用一个电源。但是,如果单独对接口盒供电,它可以连接到一个正在运行的目标
系统,而不必强制目标系统复位,否则会干扰正在运行的应用程序。
2
GND
BKGD
1
NO CONNECT 3
NO CONNECT 5
4 RESET
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
HIGH-IMPEDANCE
TO BKGD PIN
TARGET MCU
SPEEDUP PULSE
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
HIGH-IMPEDANCE
TO BKGD PIN
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
命令在主机- 到- 目标方向上始于一个8- 位十六进制命令代码(MSB 先发)
= 将命令的各部分分开
/
d
= 延迟16 个目标BDC 时钟周期
AAAA = 主机- 到- 目标方向上的一个16- 位地址
RD = 目标- 到- 主机方向上的8- 位读数据
WD = 主机- 到- 目标方向上的8- 位写数据
RD16 = 目标- 到- 主机方向上的16 位读数据
WD16 = 主机- 到- 目标方向上的16 位写数据
SS = 目标- 到- 主机方向(STATUS) 上的BDCSCR 内容
CC = 主机- 到- 目标方向(CONTROL) 方向上的8 位写数据
RBKP = 目标- 到- 主机方向( 从BDCBKPT 断点寄存器) 上的16 位读数据
WBKP = 主机- 到- 目标方向( 至BDCBKPT 断点寄存器)16 位写数据
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表15-1. BDC 命令一览
激活BDM/
非侵入式
命令术语
编码结构
描述
n/a1
SYNC
要求定时参考脉冲来确定目标BDC 通信速率
非侵入式
使能响应协议。参见飞思卡尔文档编号
ACK_ENABLE
ACK_DISABLE
BACKGROUND
D5/d
非侵入式
非侵入式
非侵入式
HCS08RMv1/D。
禁止响应协议。参见飞思卡尔文档编号
HCS08RMv1/D。
D6/d
90/d
如果使能,则进入激活背景调试模式( 如果
ENBDM 位等于0,则忽略)
READ_STATUS
WRITE_CONTROL
READ_BYTE
READ_BYTE_WS
READ_LAST
E4/SS
从BDCSCR 读取BDC 状态
向BDCSCR 中写入对BDC 的控制
从目标存储器读取字节
非侵入式
非侵入式
非侵入式
非侵入式
非侵入式
非侵入式
非侵入式
非侵入式
非侵入式
激活BDM
C4/CC
E0/AAAA/d/RD
E1/AAAA/d/SS/RD
E8/SS/RD
读字节和报告状态
从地址重新读字节,仅读和报告状态
将字节写入到目标存储器
写入字节和报告状态
WRITE_BYTE
WRITE_BYTE_WS
READ_BKPT
WRITE_BKPT
GO
C0/AAAA/WD/d
C1/AAAA/WD/d/SS
E2/RBKP
读BDCBKPT 断点寄存器
写BDCBKPT 断点寄存器
从PC 当前的地址执行用户应用程序
C2/WBKP
08/d
在PC 的地址跟踪1 条用户指令,然后返回到
激活后台模式
TRACE1
TAGGO
10/d
18/d
激活BDM
激活BDM
与GO 相同,但激活外部标签(HCS08 器件没
有外部标签引脚)
READ_A
68/d/RD
激活BDM
激活BDM
激活BDM
激活BDM
激活BDM
读累积器(A)
READ_CCR
READ_PC
READ_HX
READ_SP
69/d/RD
读条件代码寄存器(CCR)
程序计数器(PC)
6B/d/RD16
6C/d/RD16
6F/d/RD16
读H 和X 寄存器对(H:X)
读堆栈指针(SP)
以1 为基数递增H:X ,然后读位于H:X 的存储
器字节
READ_NEXT
70/d/RD
激活BDM
激活BDM
以1 为基数递增H:X,然后读位于H:X. 的存储
器字节。报告状态和数据。
写累积器(A)
READ_NEXT_WS
71/d/SS/RD
WRITE_A
48/WD/d
激活BDM
激活BDM
激活BDM
激活BDM
激活BDM
WRITE_CCR
WRITE_PC
WRITE_HX
WRITE_SP
49/WD/d
写条件代码寄存器(CCR)
写程序计数器(PC)
4B/WD16/d
4C/WD16/d
4F/WD16/d
写H 和X 寄存器对(H:X)
写堆栈指针(SP)
以1 为基数递增H:X ,然后写位于H:X 的存储
器字节。
WRITE_NEXT
50/WD/d
激活BDM
以1 为基数递增H:X ,然后写位于H:X 的存储
器字节。报告状态和数据。1 SYNC 命令是特
殊操作,不需要命令代码。
WRITE_NEXT_WS
51/WD/d/SS
激活BDM
1
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 寄存器的绝对地址分配。本小节只
按名字参考了寄存器和控制位。使用飞思卡尔提供的等式或头文件,将这些名称翻译为相应的绝对地址。
15.4.1
BDC 寄存器和控制位
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
6
5
4
3
2
1
0
R
BDMACT
WS
WSF
DVF
ENBDM
BKPTEN
FTS
CLKSW
W
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
正常
复位
1
在激活
BDM 中复位
= 未实施或预留
图 15-5. BDC状态和控制寄存器(BDCSCR)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表15-2. BDCSCR 寄存器字段描述
字段
描述
7
激活BDM ( 允许激活背景调试模式) —一般而言,这个位在调试开始后不久,或只要调试主机复位目标,由调
试主机写为1,并保留1,直到通过正常的复位清除它。
ENBDM
0 BDM 不能激活( 非侵入式命令仍然被允许)
1 BDM 可以激活,允许激活后台模式命令
6
背景调试模式激活状态—这是只读状态位。
0 BDM 未激活( 用户应用程序运行)
1 BDM 激活并等待串行命令
BDMACT
5
BDC 断点激活— 如果这个位清零,BDC 断点处于处活状态,FTS ( 强制标签选择) 控制位和BDCBKPT 匹配寄
存器被忽略。
BKPTEN
0 BDC 断点禁止
1 BDC 断点激活
4
FTS
强制/ 标签选择— 当FTS = 1, 只要CPU 地址总线匹配BDCBKPT 匹配寄存器,则请求断点。当FTS = 0, CPU
地址总线与BDCBKPT 寄存器之间的匹配会造成获取的操作码被标记。如果标记的操作码到达指令队列的末
端,CPU 则进入激活后台模式,而不是执行标记的操作码。
0 在断点地址标记操作码,如果CPU 试图执行该指令,则进入激活后台模式
1 断点匹配强制在下一个指令边界进入激活后台模式( 地址不必是操作码)
3
选择BDC 通信时钟的源— CLKSW 默认0,选择其它BDC 时钟源。
0 其它BDC 时钟源
CLKSW
1 MCU 总线时钟表
2
WS
等待或停止状态— 当目标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。
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
BDFR1
0
0
0
0
0
0
0
0
复位
= 未实施或预留
1
BDFR 只有通过串行后台模式调试命令才可写,不能通过用户程序来写。
图 15-6. 系统背景调试强制复位寄存器(SBDFR)
表15-3. 寄存器字段描述
字段
描述
0
背景调试强制复位— 一系列激活后台模式命令,如WRITE_BYTE 等,允许外部调试主机强制目标系统复位。
将1 写到这个位,强制MCU 复位。这个位不能从用户程序写。
BDFR
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
R
W
DBGEN
ARM
TAG
BRKEN
RWA
RWAEN
RWB
RWBEN
0
0
0
0
0
0
0
0
复位
图 15-7. 调试控制寄存器(DBGC)
表15-4. DBGC 寄存器字段描述
描述
字段
7
调试模块启用— 来用启用调试模块。DBGEN 不能设置为1,如果MCU 是安全的。
DBGEN
0 DBG 禁用
1 DBG 启用
6
打开控制— 控制调试器是否在FIFO 中比较和存储信息。采用写操作来设置该位( 和ARMF) ,完成调试运行就
ARM
是自动清除它。将ARM 或DBGEN 写为0,可以停止任何调试运行。
0 调试器没有打开
1 调试器被打开
5
TAG
标记/ 强制选择— 控制送到CPU 的中断请求是否为标签或强制型请求。如果BRKEN = 0,这个位就没有意义
或无效。
0 CPU 中断请求作为强制型请求
1 CPU 中断请求作为标签型请求
4
中断启用— 控制触发事件是否向CPU 生成中断请求。触发事件可以使信息存储在FIFO 中而不必向CP 生成中
断请求。对于结束跟踪,如果比较器(s) 和R/W 满足触发条件,则发出CPU 中断请求。对于起始跟踪,则当
FIFO 满时发出CPU 中断请求。TRGSEL 不影响CPU 中断请求的定时。
0 CPU 不断请求未启用
BRKEN
1 触发器触发向CPU 发出中断请求
3
比较器A 的R/W 比较值— 当RWAEN = 1, 这个位确定是否用读或写接入来鉴定比较器A,当RWAEN = 0, ,
RWA 和R/W 信号不影响比较器A。
RWA
0 比较器A 只在写周期上匹配
1 比较器A 只在读周期上匹配
2
启用比较器A 的R/W — 控制比较器A 的匹配是否考虑这个水平的R/W 。
0 R/W 未用在比较A 中
RWAEN
1 R/W 用在比较A 中
1
比较器B 的R/W 比较值— 当RWBEN = 1, 这个位确定是否用读或写接入来鉴定比较器B。当RWBEN = 0,
RWA 和R/W 信号不影响比较器B。
RWB
0 比较器B 只在写周期上匹配
1 比较器B 只在读周期上匹配
0
启用比较器B 的R/W B — 控制比较器B 的匹配是否考虑这个水平的R/W 。
0 R/W 未用在比较B 中
RWBEN
1 R/W 用在比较B 中
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
15.4.3.8
调试触发寄存器(DBGT)
这个寄存器在任何时候都可以读,但是只有当ARM = 0 时才可以写,除非位4 和位5 硬件线与至0。
7
6
5
4
3
2
1
0
R
W
0
0
TRGSEL
BEGIN
TRG3
TRG2
TRG1
TRG0
0
0
0
0
0
0
0
0
复位
= 未实施或预留
图 15-8. 调试触发寄存器 (DBGT)
表15-5. DBGT 寄存器字段描述
字段
描述
7
触发类型— 控制比较器A 和B 的匹配输入是否与调试模块中的操作码跟踪逻辑匹配。如果TRGSEL 已设置,
比较器A 或B 的匹配信号必须通过操作码跟踪逻辑传播,如果匹配地址的操作码实际已执行,则只有触发事件
发送到FIFO 逻辑。
TRGSEL
0 存取比较地址时触发( 强制)
1 如果比较地址的操作码已执行( 标签),则触发
6
开始/ 结束触发选择— 控制FIFO 在触发时开始填充还是以循环形式填充直到触发结束信息的捕获。在纯事件触
发模式中,忽略这个位,所有调试运用都假定为起始跟踪。
0 数据存储在FIFO,直到触发 (结束跟踪)
BEGIN
1 触发启动数据存储( 起始跟踪)
3:0
TRG[3:0]
选择触发模式— 选择下面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 ( 无触发)
15.4.3.9
调试状态寄存器(DBGS)
这是一个只读状态寄存器。
7
6
5
4
3
2
1
0
R
W
AF
BF
ARMF
0
CNT3
CNT2
CNT1
CNT0
0
0
0
0
0
0
0
0
复位
= 未实施或预留
图 15-9. 调试状态寄存器 (DBGS)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表15-6. DBGS 寄存器字段描述
字段
描述
7
触发匹配A 标记— 在调试运行开始时请除AF,指示武装后是否满足触发匹配A 条件。
AF
0 比较器A 未匹配
1 比较器A 匹配
6
触发匹配B 标记— 在调试运行开始时请除BF,指示武装后是否满足触发匹配B 条件。
BF
0 比较器B 未匹配
1 比较器B 匹配
5
打开标记— 当DBGEN=1 时,这个位为DBGC 中ARM 的只读镜像。将DBGC 中的ARM 控制位写为1 (当
DBGEN = 1)可设置该位,在调试运行结束时自动清除它。当FIFO 为满时(始起跟踪),或当探测到触发事件
时(结束跟踪),调度运行完成。将DBGC 中的ARM 或DBGEN 写为0,可以人工停止调试运行。
0 调试器没有打开
ARMF
1 调试器被打开
3:0
CNT[3:0]
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
Vin
值
单位
V
电源电压
输入电压
–0.3 到5.8
–0.3 to VDD + 0.3
V
单个引脚限制(应用到所有引
脚)1 ,2 ,3 的瞬间最大电流
IDD
mA
±25
IDD
Tstg
TJ
120
–55 to 150
150
mA
°C
V
DD 的最大电流
存储温度
°C
最大连接温度
1
输入必须是限制描述值中的电流。为了决定限流电阻器的值,计算正(VDD)和负(VSS)的箝位
电压的电阻系数。然后使用两个电阻系数中较大的一个。
2
3
所有功能的非电源引脚在内部箝位至VSS 和VDD
电源必须维持调节操作VDD 的瞬间范围和操作最大电流情况。如果正的注入电流(Vin>VDD)大于
DD,注入电流可能溢过可能导致外部电压失去调节。确保外荷载VDD 将分路电流比最大注入电流
。
I
还大。当MCU 不耗电时,这是最大的危险。例如:如果没有系统时钟存在,或如果时钟率很小,
这可能减小总的耗电。
A.4
热特性
该节提供了关于操作温度范围,功率消耗和封装的热敏电阻的信息。和芯片逻辑的功耗相比,在I/O 引脚
上的功率消耗通常很小,并且它是由用户决定而不是有MCU 设计来控制。为了在功率计算中考虑PI/O,确定
实际的引脚电压和VSS 或VDD 的不同,加倍每个I/O 引脚的电流。除了异常的高引脚电流(重载荷),引脚
电压和VSS 或VDD 的不同很小。
表 A-3. 热特性
额定值
标志
值
单位
TA
°C
操作温度范围(已封装)
T 到T
0 to 70
L
H
热敏电阻1 ,2 ,3 ,4
48 引脚QFN
1s
2s2p
84
27
44 引脚LQFP
32 引脚LQFP
θJA
°C/W
1s
2s2p
73
56
1s
2s2p
85
56
1
连接温度是模具,片上功耗,封装的热敏电阻,底座(板)温度,周围环境温度,气流,板上其他
元件的功耗和板上热敏电阻之间的功能。
2
外部自然转换的连接。
3
4
1s——单层板,单层信号层。
2s2p——4 层板,2 层信号层和2 层电源层。
芯片连接的平均温度(TJ)(以°C 为单位)从等式 A-1 中得到:
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
T = T + (P × θ )
JA
等式. A-1
J
A
D
其中:
TJ = 周围环境温度, °C
TA = 封装的热敏电阻,连接到周围环境, °C/W
PD = Pint+ PI/O
Pint = IDD ×VDD,瓦特——芯片内部电源
PI/O = 输入和输出引脚上的功耗——用户决定
在大多数应用中,PI/O << Pint ,PI/O 可以忽略。PD 和TJ (如果忽略PI/O)的近似关系是:
P = K ÷ (T + 273°C)
等式. A-2
等式. A-3
D
J
解等式 A-1 和等式 A-2,得K:
K = P × (T + 273°C) + θ × (P )
2
D
A
JA
D
其中K 是与特殊部分相关的常量。已知TA,K 可以在等式 A-3 中通过测量PD 确定。对于任何TA,使用
该K 的值,通过解等式 A-1 和等式 A-2 可以得到PD 和TJ。
A.5
ESD 保护和闭锁抗扰度
虽然在设备中静电放电的破坏比早期的CMOS 电路小得多,也应该使用正规的预防处理避免暴露在静态
放电中。通过品质测试确保这些设备能够抵挡暴露在合理的静态电平中,而不产生永久的损坏。
所有的ESD 测试和AEC-Q100 汽车级集成电路的压力品质测试一致。在设备品质时,ESD 压力通过人
体模型(HBM),机器模型(MM)和电荷设备模型(CDM)完成,如果暴露到ESD 脉冲后,设备不再满
足设备规格,一个设备定义为失败。完善DC 参数,和在高温后在室温按照每个应用设备规格完成品质测试,
在除非在设备规格中说明
表 A-4. ESD 和闭锁测试条件
模型
描述
标志
R1
C
值
1500
100
3
单位
Ω
PF
—
串联电阻
存储电容
人体
—
每个引脚的脉冲数
串联电阻
R1
C
0
Ω
PF
—
200
3
机器
闭锁
存储电容
—
每个引脚的脉冲数
最小输入电压限制
最大输入电压限制
—
-2.5
7.5
V
—
V
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表 A-5. ESD 和闭锁保护特性
C
编号
额定值
标志
VHBM
VMM
VCDM
ILAT
最小
最大
—
单位
V
1
2
3
4
C
C
C
C
人体模型(HBM)
机器模型(MM)
±2000
±200
±500
±100
—
V
—
V
电荷设备模型(CDM)
在TA=125 ℃时,闭锁电流
—
mA
A.6
DC 特性
该节包含各种电源条件,I/O 引脚特性和不同操作模式的电源电流的信息。
表 A-6. DC 特性
典型1
最大
单位
C
编号
参数
标志
最小
输出高电压——低驱动(PTxDSn=0)
5V,Iload=-2mA
VDD-1.5
VDD-1.5
VDD-0.8
VDD-0.8
3V,Iload=-0.6mA
5V,Iload=-0.4mA
3V,Iload=-0.24mA
—
—
1
P
VOH
V
输出低电压——高驱动(PTxDSn=1)
5V,Iload=-10mA
VDD-1.5
3V,Iload=-3mA
5V,Iload=-2mA
3V,Iload=-0.4 mA
VDD-1.5
VDD-0.8
VDD-0.8
—
—
—
—
—
—
输出低电压——低驱动(PTxDSn=0)
5V,Iload=-2mA
1.5
1.5
0.8
0.8
3V,Iload=-0.6mA
5V,Iload=-0.4mA
3V,Iload=-0.24mA
2
P
VOL
V
输出高电压——高驱动(PTxDSn=1)
5V,Iload=-10mA
1.5
1.5
0.8
0.8
3V,Iload=-3mA
5V,Iload=-2mA
3V,Iload=-0.4 mA
输出高电流——所有端口最大总IOH
3
4
5
P
P
P
5 V IOHT
3 V
—
—
—
—
—
100
60
mA
mA
输出高电流——所有端口最大总IOH
5 V IOLT
3 V
100
60
输入高电压;所有的数字输入
2.7 V ≤ VDD ≤ 4.5 V
4.5 V ≤ VDD ≤ 5.5 V
VIH
VIH
—
0.75 ×VDD
0.65 ×VDD
V
6
7
8
P
P
P
VIL
Vhys
|Vin|
—
—
—
输入低电压;所有的数字输入
输入滞后;所有的数字输入
输入泄露电流;仅输入引脚2
0.35 ×VDD
—
V
0.06 ×VDD
—
0.1
1
μA
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表 A-6. DC 特性 (续)
标志 最小
C
编号
9
参数
典型1
0.1
45
最大
1
单位
μA
kΩ
kΩ
pF
V
高阻抗(掉电状态)泄露电流2
内部上拉电阻3
P
P
P
C
P
D
|VOZ
RPU
RPD
CIn
|
—
20
20
—
10
11
65
65
8
内部下拉电阻4
45
12
13
14
—
输入电容;所有的非电源引脚
POR 电压
VPOR
tPOR
0.9
10
1.4
—
2.0
—
μs
POR 时间
低压检测阈——大范围
15
16
17
18
19
P
P
P
P
P
VLVDH
VLVDL
VLVWH
VLVWL
4.2
4.3
4.3
4.4
4.4
4.5
V
V
V
DD 下降
VDD 上升
低压检测阈——小范围
低压警告阈——大范围
低压警告阈——小范围
低压禁止复位/ 还原滞后
2.48
2.54
2.56
2.62
2.64
2.7
V
V
DD 下降
DD 上升
4.2
4.3
4.3
4.4
4.4
4.5
V
V
V
DD 下降
DD 上升
2.48
2.54
2.56
2.62
2.64
2.7
V
V
V
DD 下降
DD 上升
5 V Vhys
3 V
—
100
35
—
mV
1
2
3
4
除非说明,典型值为25 ℃描述的数据。
用VIn = VDD 或VSS 测量。
用VIn = VSS 测量。
用VIn = VDD 测量。
VDD–VOH (V)
Average of IOH
–6.0E-3
–5.0E-3
–4.0E-3
–3.0E-3
–2.0E-3
–1.0E-3
000E+0
–40°C
25°C
125°C
0
0.3
0.5
0.8
VSupply–VOH
图 A-1. V = 3 V 时,I ( 低驱动) 和V -V 的典型值
0.9
1.2
1.5
DD
OH
DD OH
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
VDD–VOH (V)
Average of IOH
–20.0E-3
–18.0E-3
–16.0E-3
–14.0E-3
–12.0E-3
–10.0E-3
–8.0E-3
25°C
–6.0E-3
–4.0E-3
–2.0E-3
000.0E-3
0
0.3
0.5
0.8
VSupply–VOH
0.9
1.2
1.5
图 A-2. V = 3 V 时,I ( 低驱动) 和V -V 的典型值
DD
OH
DD OH
Average of IOH
–7.0E-3
–40°C
25°C
–6.0E-3
–5.0E-3
–4.0E-3
–3.0E-3
–2.0E-3
125°C
–1.0E-3
000E+0
0.00
0.30
0.50
0.80
1.00
1.30
2.00
VDD–VOH (V)
VSupply–VOH
图 A-3. V = 5 V 时,I ( 低驱动) 和V -V 的典型值
DD
OH
DD OH
VDD–VOH (V)
Average of IOH
–30.0E-3
–25.0E-3
–40°C
25°C
–20.0E-3
–15.0E-3
–10.0E-3
–5.0E-3
125°C
000.0E+3
0.00
0.30
0.50
0.80
1.00
1.30
2.00
VSupply–VOH
图 A-4. V = 3 V 时,I ( 低驱动) 和V -V 的典型值
DD
OH
DD OH
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
A.7
电源电流特性
表 A-7. 电源电流特性
VDD (V) 典型1
最大2 单位
温度
C
编号
参数
标志
5
3
5
3
0.988
0.570
6.84
3.5
1.24
运行时电源电流3 (CPU
时钟=2 MHz,
1
C
C
RIDD
mA
-40 到125 ℃
-40 到125 ℃
0.770
fBus=1 MHz)
86
运行时电源电流5 (CPU
时钟=2MHz,
2
3
RIDD
mA
3.70
fBus=1MHz)
11
5
3
5
3
1.36
1.05
1.49
1.15
23
μA
μA
μA
μA
1304
0 到70 ℃
-40 到85 ℃
-40 到125 ℃
C
S2IDD
Stop2 模式电源电流
Stop3 模式电源电流
10.5
21
110
12
28
1404
0 到70 ℃
-40 到85 ℃
-40 到125 ℃
4
5
C
C
S3IDD
11
26
120
500
500
-40 到85 ℃
-40 到125 ℃
5
3
5
3
300
300
116
90
nA
nA
μA
μA
带有RTI 的Stop2 或
S3IDDRTI
stop37
500
500
-40 到85 ℃
-40 到125 ℃
150
180
-40 到85 ℃
-40 到125 ℃
带有LVD 的stop3
(LVDE=LVDSE=1)
6
7
C
C
S3IDDLVD
TBD
160
-40 到85 ℃
-40 到125 ℃
6
μA
μA
带有振荡器的stop38
(OSCSETN=1)
-40 到85 ℃
-40 到125 ℃
S3IDDOSC
5,3
5
TBD
1
2
基于25 ℃所描述的典型值,除非另有说明。对于电压和温度的典型曲线参见图 A-5,图 A-6,图 A-7。
这里给出的值时初步估计而不是完整描述。
3
4
除了ADC,配置为FBE 的ICG,所有的模块在引脚上不包含任何直流电输入。
这个参数在每个个体进行了测试,所有其他在最大列的值则是通过描述保证。
5
6
7
除了ADC,配置为FBE 的ICG,所有的模块在引脚上不包含任何直流电载入。
这个参数在每个个体进行了测试,所有其他在最大列的值通过描述保证。
大多数消费者希望发现从stop2 或stop3 自动唤醒可以用来代替更高电路等待模式。等待模式通常560μA,3 V,
fBus=1 MHz。
8
在下列条件下得到值,使用32.768 kHz 晶振小范围操作(RANGE=0),低功耗模式(HGO=0),禁止时钟监控
(LOCD=1)。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
18
16
20 MHz, ADC off, FEE, 25°C
20 MHz, ADC off, FBE, 25°C
14
12
10
8
IDD
8 MHz, ADC off, FEE, 25°C
8 MHz, ADC off, FBE, 25°C
6
4
1 MHz, ADC off, FEE, 25°C
1 MHz, ADC off, FBE, 25°C
2
0
3.4
3.8
5.0
5.4
2.2
2.6
3.0
4.2
4.6
VDD
注:外部时钟由功能产生器产生方波。对于FEE 模式,外部参考频率是4MHz
图 A-5. FBE 和FEE 模式中的典型运行I ,I 和V
DD
DD
DD
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
–40°C
25°C
55°C
85°C
Stop2 IDD (A)
IDD 平均测量值
–8.0E-3
–7.0E-3
–6.0E-3
–5.0E-3
–4.0E-3
–3.0E-3
–2.0E-3
–1.0E-3
000E+0
1.8
2
2.5
3
3.5
4
4.5
5
VDD (V)
图 A-6. 典型的stop2 I
DD
–40°C
25°C
55°C
85°C
Stop3 IDD (A)
IDD 平均测量值
–8.0E-3
–7.0E-3
–6.0E-3
–5.0E-3
–4.0E-3
–3.0E-3
–2.0E-3
–1.0E-3
000E+0
1.8
2
2.5
3
3.5
4
4.5
5
VDD (V)
图 A-7. 典型的stop3 I
DD
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
A.8
ADC 特性
表 A-8. 5 V 10 位ADC 转换条件
特性
条件
标志
VDDAD
ΔVDDAD
ΔVSSAD
VREFH
VREFL
IDDAD
最小
典型1
—
最大
5.5
单位
V
2.7
-100
-100
2.7
绝对
电源电压
2
0
100
100
VDDAD
VSSAD
1
mV
mV
V
Delta 到VDD (VDD - VDDAD
)
2
0
地电压
高参考电压
低参考电压
电源电流
输入电压
输入电容
输入电阻
Delta 到VSS (VSS - VSSAD)
—
—
VDDAD
VSSAD
0.011
—
VSSAD
—
V
μA
V
Stop 复位,关闭模块
—
—
—
VADIN
VREFL
—
VREFH
5.5
CADIN
RADIN
4.5
pF
kΩ
—
3
5
10 位模式
fADCK>4MHz
fADCK<4MHz
—
—
5
10
外接MCU 的
模拟源电阻
RAS
kΩ
—
—
10
8 位模式(所有有效fADCK)
0.4
0.4
—
—
8.0
8.0
高速(ADLPC=0)
低速(ADLPC=1)
ADC 转换时
钟频率
fADCK
MHz
1
2
除非另有说明,假定VDDAD = 5 V,温度= 25 °C,fADCK = 1.0 MHz,典型值指示举例,没有在产品中
测试。
DC 位差不同。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
简化的输入引脚
等效电路
ZADIN
Pad
ZAS
简化的输入选择
电路
leakage
due to
ADC SAR
启动
input
protection
RAS
RADIN
+
VADIN
–
CAS
VAS
+
–
RADIN
RADIN
RADIN
输入引脚
输入引脚
输入引脚
CADIN
图 A-8. ADC 输入电阻框图
表 A-9. 5 V 10 位ADC 转换特性(V =V
,V
=V
)
SSAD
REFL
DDAD
REFL
C
特性
电源电流ADLPC = 1
条件
标志
最小值 典型值1 最大值 单位
—
T
IDDAD
IDDAD
IDDAD
—
—
—
—
133
218
327
582
—
—
—
—
A
A
A
ADLSMP = 1 ADCO = 1
电源电流ADLPC = 1
ADLSMP =0 ADCO = 1
—
—
—
T
T
T
电源电流ADLPC = 1
ADLSMP =0 ADCO = 1
揂
电源电流 ADLPC = 0
ADLSMP =0 ADCO = 1
IDDAD
P
P
—
2
—
3.3
2
1
5
mA
V ≤5.5 V
高速
(ADLPC=0)
ADC 异步时钟源
fADACK
MHz
t
ADACK=1/fADACK
低功耗
(ADLPC=1)
1.25
—
3.3
—
—
短采样
(ADLSMP=0)
20
40
ADCK
周期
P
tADC
转换时间(包括采样时间)
长采样
(ADLSMP =1)
—
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表 A-9. 5 V 10 位ADC 转换特性(V
=V
,V
=V
)( 续)
SSAD
REFL
DDAD
REFL
最小值 典型值1 最大值 单位
C
特性
条件
标志
短采样
(ADLSMP =0)
—
—
3.5
—
—
ADCK
周期
P
tADS
采样时间
长采样
(ADLSMP =1)
23.5
—
—
10 位模式
8 位模式
±1
±2.5
±1.0
P
P
ETUE
DNL
LSB2
LSB2
总的未调整误差包括量化
微分非线性
±0.5
—
—
10 位模式
8 位模式
±0.5
±0.3
±1.0
±0.5
确保单调且无遗失编码
—
10 位模式
8 位模式
±0.5
±0.3
±0.5
±0.5
±0.5
±0.5
—
±1.0
±0.5
±1.5
±0.5
±1.5
±0.5
±0.5
±0.5
±2.5
±1
C
P
P
D
D
INL
LSB2
LSB2
LSB2
LSB2
LSB2
积分非线性
归零错误
—
—
10 位模式
8 位模式
EZS
VADIN = VSSA
—
—
10 位模式
8 位模式
满标误差
VADIN = VDDA
EFS
—
—
10 位模式
8 位模式
EQ
量化误差
—
—
—
10 位模式
8 位模式
±0.2
±0.1
3.266
3.636
1.41
输入泄露误差
焊盘泄露3 *RAS
EIL
—
—
—
-40 ℃-25 ℃
25 ℃– 125 ℃
25 ℃
D
D
m
温度传感器斜率
温度传感器电压
mV/ ℃
—
—
VTEMP25
—
—
mV
1
如果没有其他说明,假定VDDAD = 5 V,温度= 25 ℃,fADCK = 1 MHz 典型值,典型值仅供参考未在产品中
测试。
2
3
LSB = (VREFH-VREFL)/2N
基于输入焊盘泄漏电流,参考焊盘电气。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
A.9
内部时钟产生模块特性
ICG
EXTAL
XTAL
RS
RF
晶振或共振器
C1
C2
表 A-10. ICG DC 电气描述(温度范围= -40 到125 ℃)
特性
标志
最小
典型1
最大
单位
C1
C2
参见下注2
负载电容
反馈电阻
RF
低范围(32 k 到100 kHz)
高范围(1 M-16 MHz)
—
10
1
—
—
MΩ
串联电阻
低范围
低增益(HGO = 0)
高增益(HGO = 1)
高范围
0
100
RS
—
kΩ
低增益(HGO = 0)
高增益(HGO = 1)
≥8 MHz
0
0
4 MHz
1 MHz
10
20
1
2
典型值是在VDD = 5 V,25 ℃条件下取得。
参见晶振或共鸣器厂商的建议。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
A.9.1
ICG 频率规格
表 A-11. ICG 频率规格
( 最小值) 到V ( 最大值),温度范围= –40 to 125 ℃)
V
= V
DDA
DDA
DDA
编
号
特性
标志
最小
典型1
最大
单位
1
振荡器晶体或谐振器
(REFS=1)( 基谐模晶体
或陶瓷电容)
低范围
flo
32
100
kHz
—
高范围
fhi_byp
fhi_eng
flp_byp
flp_eng
1
2
1
2
16
10
8
MHz
MHz
MHz
MHz
高增益
高增益
低功耗
低功耗
8
2
输入时钟频率
(CLKS=11,REFS=0)
低范围
.
flo
fhi_eng
32
2
100
10
kHz
MHz
—
高范围
3
4
5
6
输入时钟频率
(CLKS=10,REFS=0)
fExtal
fICGIRCLK
tdc
0
—
243
—
40
303.75
60
MHz
kHz
%
内部参考频率(未对
齐)
182.25
40
输入时钟的占空因子
(REFS=0)
输出时钟ICGOUT 频率
CLKS=10,REFS=0
其他情况
fICGOUT
fExtal (min)
flo (min)
f
Extal (max)
MHz
—
fICGDCLKmax
( max)
7
8
最小DCO 时钟
(ICGDCLK)频率
fICGDCLKmin
fICGDCLKmax
fSelf
8
—
—
—
8
—
40
MHz
MHz
MHz
MHz
最小DCO 时钟
(ICGDCLK)频率
—
fICGDCLKmin
5.5
9
自时钟模式(ICGOUT)
fICGDCLKmax
频率2
10
11
自时钟模式复位
(ICGOUT)频率
fSelf_reset
10.5
丢失参考频率3
低范围
高范围
fLOR
5
50
—
—
25
500
kHz
丢失DCO 频率4
12
13
fLOD
0.5
1.5
MHz
晶振开始时序5 ,6
低范围
高范围
tCSTL
tCSTH
—
—
430
4
—
—
ms
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表 A-11. ICG 频率规格
( 最小值) 到V ( 最大值),温度范围= –40 to 125 ℃)
V
= V
DDA
DDA
DDA
编
号
特性
标志
最小
典型1
最大
单位
FLL 锁时序7
低范围
高范围
14
tLockl
tLockh
—
2
2
ms
—
15
16
17
nUnlock
nLock
–4*N
–2*N
—
—
4*N
2*N
counts
counts
FLL 频率解锁范围
FLL 频率上锁范围
8
ICGOUT 周期抖动。 以
CJitter
—
fICGOUT 测量最大抖动
(平均2ms 间隔)
—
—
0.2
% fICG
%
18
MC9S08ACxx: 内部振荡
器背离对齐的频率9
VDD = 2.7 – 5.5 V, ( 恒温
)VDD = 5.0 V ±10%,
–40 ℃to 125 ℃
ACCint
±0.5
±0.5
±2
±2
S9S08AWxxA: 内部振荡
器背离对齐的频率9
VDD = 2.7 – 5.5 V, ( 恒温
)VDD = 5.0 V ±10%,
–40 ℃to 125 ℃
ACCint
%
—
—
±0.5
±0.5
±1.5
±1.5
1
2
3
4
除非另有说明,典型值是在VDD=5V,25 ℃取得。
自时钟模式频率是当FLL 开环时,DCO 产生的频率。
丢失参考频率是参考频率在内部被检测,如果不在要求的范围,将使ICG 进入自时钟模式。
丢失DCO 频率是DCO 频率在内部被检测,如果不在要求的范围,将使ICG 进入FLL 旁路外部模式(如果
外部参考频率存在)。
5
6
7
8
该参数未100% 的测试就被描述。
适当的PC 布板程序可能会遵循到达规范。
进入到FLL 忙碌的内部或外部模式后,该规则应用到对于FLL 需要锁的时序。
抖动背离了编程的频率,经测量超过了规范的内部最大fICGOUT。测量是在有过滤供电和稳定外部时钟信号的
设备上进行。噪音经VDDAVSSA 进入FLL 电路,并且晶体振荡器频率的变化增加了Cjitter 的百分比(对于给
定的间隔)。
9
参见图 A-9。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
内部振荡器背离对齐的频率
Variable
5 V
0.0
–0.5
–1.0
3 V
–1.5
–2.0
–50
–25
0
25
50
温度
75
100
125
设备在25℃,3 V对齐。
图 A-9. 内部振荡器背离对齐的频率
A.10 AC 特性
该节描述了每个外设系统的交流时序特性。关于总线如何产生时钟的更多信息,参见第9 章内部时钟发
生器(S08ICGV4)。
A.10.1 控制时序
图 A-10. 电源电流特性
C
编号
参数
标志
fBus
tRTI
最小
dc
典型1
—
最大
20
单位
MHz
μs
1
2
总线频率(tcyc=1/fBus
)
700
—
1300
实时中断内部振荡器
周期
外部复位脉宽2 (tcyc
1/fSelf_reset
=
3
textrst 1.5 x tSelf_reset
—
—
ns
)
复位低驱动3
4
5
trstdrv
34 x tcyc
25
—
—
—
—
ns
ns
tMSSU
有效北京调试模式闭
锁准备时间
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
图 A-10. 电源电流特性( 续)
典型1
最大
单位
C
编号
参数
标志
最小
6
tMSH
25
—
—
ns
有效北京调试模式闭
锁保持时间
7
8
9
tILIH
tIHIL
,
—
—
—
—
—
ns
ns
IRQ 脉宽
异步路径2
同步路径4
100
1.5 x tcyc
KBIPx 脉宽
异步路径2
同步路径3
tILIH
,
100
1.5 x tcyc
tIHIL
tRise
tFall
,
—
3
30
端口上升和下降时间
(load = 50 pF)5
ns
禁止输出斜率控制
(PTxSE=0)
允许输出斜率控制
(PtxSE=1)
1
2
除非另有说明,典型值是在VDD = 5 V,25 ℃取得。
这是最短脉冲,可以确保作为复位引脚请求。更短的脉冲不能确保从内部时钟产生复位请
求。
3
4
5
当任何复位初始化,内部驱动复位引脚低34 个总线周期,然后在复位引脚采样38 个周期来
从内部复位请求区分外部复位请求。
这是最小的脉冲宽度,可以确保通过引脚同步电路。更短的脉冲可能或可能不会被认出。在
stop 模式,同步器被设旁路,如此以至于在那种情况下,更短的脉冲可以被认出。
所有的时序关系VDD 20% 和70% ;温度范围–40 ℃to 125 ℃。
textrst
RESET PIN
图 A-11. 复位时序
BKGD/MS
RESET
tMSH
tMSSU
图 A-12. 有效的背景调试模式的闭锁时序
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
tIHIL
IRQ/KBIP7-KBIP4
IRQ/KBIPx
tILIH
图 A-13. IRQ/KBIPx 时序
A.10.2 定时器/PWM(TPM) 模块时序
同步器电路决定了被公认为最短输入脉冲或可以用作定时器计数器的外部源的最快的时钟。这可以同当
前总线时钟同步。
表 A-12. ICG DC 电气描述(温度范围=-40 到125 ℃)
特性
标志
fTPMext
tTPMext
tclkh
最小
dc
最大
fBus/4
—
单位
MHz
tcyc
外部时钟频率
外部时钟周期
外部时钟高时间
外部时钟低时间
输入捕捉脉宽
4
1.5
1.5
1.5
—
tcyc
tclkl
—
tcyc
tICPW
—
tcyc
tTPMext
tclkh
TPMxCLK
tclkl
图 A-14. 定时器外部时钟
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
tICPW
TPMxCHn
TPMxCHn
tICPW
图 A-15. 定时器输入捕获脉冲
A.11 SPI 特性
表 A-13 和图 A-16 到图 A-19 描述SPI 系统的时序要求。
表 A-13. SPI 电气特性
特性1
标志
最小
最大
单位
C
编号
Hz
操作频率
周期时间
fop
fop
fBus/2048
dc
—
主机
从机
1
2
3
4
5
6
7
tSCK
tSCK
2
4
2048
—
tcyc
tcyc
主机
从机
允许持续时间
tLead
tLead
—
1/2
1/2
1/2
—
tSCK
tSCK
允许滞后时间
tLead
tLead
—
1/2
tSCK
tSCK
时钟(SPSCK)高时间
tSCKH
1/2
SCK-25
ns
ns
主机和从机
t
时钟(SPSCK)低时间
tSCKL
1/2
tSCK-25
—
主机
从机
数据准备时间(输入)
数据保持时间(输入)
tSI(M)
tSI(S)
30
30
—
ns
ns
主机
从机
tHI(M)
tHI(S)
30
30
—
ns
ns
主机
从机
访问时间,从机2
禁止时间,从机3
8
9
tA
0
40
40
ns
ns
tdis
—
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表 A-13. SPI 电气特性
特性1
标志
最小
最大
单位
C
编号
10
数据准备时间(输出)
数据保持时间(输出)
tSO
tSO
25
25
—
ns
ns
主机
从机
11
tHO
tHO
-10
-10
—
ns
ns
主机
从机
1
除非说明,所有的时序关系VDD20% 和70% ;100pF 在所有的SPI 引脚上。所有的时序假
定输出引脚禁止输出斜率控制和允许高驱动强度。
2
3
数据有效的时序来自高阻抗状态。
保持时间,高阻抗状态.
SS1
(OUTPUT)
1
2
3
SCK
(CPOL = 0)
(OUTPUT)
5
4
4
5
SCK
(CPOL = 1)
(OUTPUT)
6
7
MISO
(INPUT)
MSB IN2
10
BIT 6 . . . 1
10
LSB IN
11
MOSI
(OUTPUT)
MSB OUT2
BIT 6 . . . 1
LSB OUT
注:
1. SS 输出模式(MODFEN=1、SSOE=1)。
2. LSBF=0,对于LSBF=1 位的顺序是LSB,位 1,…,位6,MSB。
图 A-16. SPI 主机时序(CPHA=0)
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
SS(1)
(OUTPUT)
1
2
3
SCK
(CPOL = 0)
(OUTPUT)
5
4
5
6
SCK
(CPOL = 1)
(OUTPUT)
4
7
MISO
(INPUT)
MSB IN(2)
BIT 6 . . . 1
11
BIT 6 . . . 1
LSB IN
10
MOSI
(OUTPUT)
MSB OUT(2)
LSB OUT
注:
1. SS 输出模式(MODFEN=1、SSOE=1)。
2. LSBF=0,对于LSBF=1 位的顺序是LSB,位1,…,位6,MSB。
图 A-17. SPI 主机时序(CPHA = 1)
SS
(INPUT)
3
1
SCK
5
4
(CPOL = 0)
4
5
(INPUT)
2
SCK
(CPOL = 1)
(INPUT)
9
8
11
10
MISO
(OUTPUT)
SEE
NOTE
BIT 6 . . . 1
BIT 6 . . . 1
SLAVE LSB OUT
MSB OUT
SLAVE
7
6
MOSI
(INPUT)
MSB IN
LSB IN
注:
字符的MSB 没有定义,仅被接收。
图 A-18. SPI 从机时序(CPHA = 0)
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
SS
(INPUT)
1
3
2
SCK
(CPOL = 0)
(INPUT)
5
4
4
5
SCK
(CPOL = 1)
(INPUT)
10
SLAVE MSB OUT
11
9
MISO
(OUTPUT)
SEE
BIT 6 . . . 1
SLAVE LSB OUT
LSB IN
NOTE
6
7
8
MOSI
(INPUT)
MSB IN
BIT 6 . . . 1
注:
字符的MSB 没有定义,仅被接收。
图 A-19. SPI 从机时序(CPHA = 1)
A.12 Flash 规格
该节详细描述了写入和擦除时序及flash 存储器写入擦除的寿命。
写入和擦除不需要任何其他特殊的电源,只需普通的VDD 电源。更多关于擦除和编程操作的信息,参见
第四章“内存”。
表 A-14. Flash 特性
C
编号
特性
标志
Vprog/erase
Vread
最小
2.7
2.7
150
5
典型1
—
最大
5.5
单位
V
1
2
3
4
写入/ 擦除电压
读操作电压
—
5.5
V
内部FCLK 频率2
fFCLK
—
200
6.67
KHz
μs
tFcyc
—
内部FCLK 周期
(1/FCLK)
5
6
tprog
9
4
tFcyc
自己写入时间(随机
地址)2
tBust
tFcyc
自己写入时间(突发
模式)2
页擦除时间3
7
8
tPage
tMass
4000
tFcyc
tFcyc
整体擦除时间2
20000
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Running H/F 2
表 A-14. Flash 特性
典型1
最大
单位
C
编号
特性
标志
最小
写入/ 擦除强度4 TL 到
TH=-40 ℃
周期
9
C
10000
—
—
10000
—
到+125 ℃
T = 25
数据保持5
年
10
tD_ret
15
100
—
1
2
3
4
除非有其他说明,典型值VDD = 5 V,25 ℃取得。
时钟的频率通过软件设置来控制。
这些值由硬件状态机控制,用户代码不需要来计数周期。这个信息提供给计算写入和擦除的大约时间。
Flash 典型强度评估了在9S12Dx64 中的这个产品家族,对于其他的Freescale 如何定义典型强度,可以
参见工程公告EB619,“非易失性存储器的典型强度”。
5
典型的数据保持值基于在高温下测量所具有的固有的技术能力。使用Arrhenius 等式。对于其他的
Freescale 如何定义典型数据保持,可以参见工程公告EB618,“非易失性存储器的典型数据保持”。
A.13 EMC 性能
电磁适应性(EMC)性能高度依赖于MCU 所处的环境。板的设计和布板,电路布局选择,外部元件的
放置和特性,MCU 软件操作都对EMC 的性能有很大影响。系统设计者应该参考Freescale 应用笔记
AN2321、AN1050、AN1263、AN2764 和AN1259 的建议和指导来优化EMC 性能。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
附录 B 订购信息和机械制图
B.1
订购信息
该节包含了MC9S08AC16 系列微控制器的订购信息。
表 B-1. 微处理器编号系统
存储器
可用封装2
类型
用途
类型
设备编号1
Flash
RAM
MC9S08AC16
MC9S08AC8
16,384
8192
1024
768
48 引脚QFN
44 引脚LQFP
32 引脚LQFP
商业
工业
MC9S08AW16A
MC9S08AW16A
16,384
8192
1024
768
48 引脚QFN
44 引脚LQFP
32 引脚LQFP
汽车
1
2
参见表1-1 有每个设备所包含模块的详细描述。
封装信息参见表 B-2。
B.2
可订购部件编号系统
按照该设备家族,MC9S08AC16 系列的订购零件编号也是多样的。参见图 B-1 和图 B-2 的例子。
MC 9 S08 AC 16 C XX
状态
(MC = 商业和工业
( 见± ± B-2)
封装标识
温度范围
存储器类型
(9 = 基于flash)
内核
(C = –40°C to 85°C)
(M = –40°C to125°C)
大致的存储空间大小( 单位:Kbytes)
系列
图 B-1. AC 系列微处理器用于商业和工业时的编号系统
M
XX
S
9 S08 AW
A
16
状态
(S = 汽车业)
存储器
封装标识
温度范围
(M = –40°C to 125°C)
( 见表 B-2)
(9 = 基于flash)
芯片版本
内核
系列
大致的存储空间大小(单位:Kbytes)
图 B-2. AW 系列微处理器用于汽车业的编号系统
B.3
机械图
接下来的内容包含了MC9S08AC16 系列封装选项的机械说明。参见接下来的表中文档号与每个封装类型
相对应。
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#
表 B-2. 封装信息
引脚数
48
类型
QFN
标识
FT
文档号
98ARH99048A
98ASS23225W
98ASB42767B
98ASH70029A
44
LQFP
SDIP
LQFP
QD
BQ
QC
42
32
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司
Information in this document is provided solely to enable system and software
implementers to use Freescale Semiconductor products. There are no express or
implied copyright licenses granted hereunder to design or fabricate any integrated
circuits or integrated circuits based on the information in this document.
如何联系我们:
主页:
www.freescale.com
电子邮件:
Freescale Semiconductor reserves the right to make changes without further notice to
any products herein. Freescale Semiconductor makes no warranty, representation or
guarantee regarding the suitability of its products for any particular purpose, nor does
Freescale Semiconductor assume any liability arising out of the application or use of any
product or circuit, and specifically disclaims any and all liability, including without
limitation consequential or incidental damages. “Typical” parameters that may be
provided in Freescale Semiconductor data sheets and/or specifications can and do vary
in different applications and actual performance may vary over time. All operating
parameters, including “Typicals”, must be validated for each customer application by
customer’s technical experts. Freescale Semiconductor does not convey any license
under its patent rights nor the rights of others. Freescale Semiconductor products are
not designed, intended, or authorized for use as components in systems intended for
surgical implant into the body, or other applications intended to support or sustain life,
or for any other application in which the failure of the Freescale Semiconductor product
could create a situation where personal injury or death may occur. Should Buyer
purchase or use Freescale Semiconductor products for any such unintended or
unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and
its officers, employees, subsidiaries, affiliates, and distributors harmless against all
claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale
support@freescale.com
美国/ 欧洲或未列出的地方:
Freescale Semiconductor
Technical Information Center, CH370
1300 N. Alma School Road
Chandler, Arizona 85224
1-800-521-6274 or +1-480-768-2130
support@freescale.com
欧洲、中东和非洲:
Freescale Halbleiter Deutschland GmbH
Technical Information Center
Schatzbogen 7
81829 Muenchen, Germany
+44 1296 380 456 (English)
+46 8 52200080 (English)
+49 89 92103 559 (German)
+33 1 69 35 48 48 (French)
support@freescale.com
日本:
Semiconductor was negligent regarding the design or manufacture of the part.
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku,
Tokyo 153-0064, Japan
0120 191014 or +81 3 5437 9125
support.japan@freescale.com
RoHS-compliant and/or Pb-free versions of Freescale products have the functionality
and electrical characteristics as their non-RoHS-compliant and/or non-Pb-free
counterparts. For further information, see http://www.freescale.com or contact your
Freescale sales representative.
For information on Freescale’s Environmental Products program, go to
http://www.freescale.com/epp.
亚太地区:
飞思卡尔半导体( 中国)有限公司100022
北京市朝阳区建国路乙118 号
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners.
The Power Architecture and Power.org word marks and the Power and Power.org logos
and related marks are trademarks and service marks licensed by Power.org
京汇大厦23 层
+86 10 5879 8000
support.asia@freescale.com
仅提供印刷品:
Freescale Semiconductor Literature Distribution Center
© Freescale Semiconductor, Inc. 2008. All rights reserved.
P.O. Box 5405
Denver, Colorado 80217
1-800-441-2447 or +1-303-675-2140
Fax: +1-303-675-2150
LDCForFreescaleSemiconductor@hibbertgroup.com
文档号: MC9S08AC16
第6 版
2008 年9 月
相关型号:
MC9S08AW16CFD
8-BIT, FLASH, 40MHz, MICROCONTROLLER, QCC48, 7 X 7 MM, 1 MM HEIGHT, 0.50 MM PITCH, MO-220VKKD-2, QFN-48
NXP
MC9S08AW16CFGER
8-BIT, FLASH, 40MHz, MICROCONTROLLER, PQFP44, 10 X 10 MM, 1.40 MM HEIGHT, 0.80 MM PITCH, LEAD FREE, PLASTIC, MS-026BCB, LQFP-44
NXP
MC9S08AW16CFUER
8-BIT, FLASH, 40MHz, MICROCONTROLLER, PQFP64, 14 X 14 MM, LEAD FREE, PLASTIC, QFP-64
NXP
MC9S08AW16CPU
8-BIT, FLASH, 40MHz, MICROCONTROLLER, PQFP64, 10 X 10 MM, 1.40 MM HEIGHT, 0.50 MM PITCH, PLASTIC, MS-026BCD, LQFP-64
NXP
MC9S08AW16MFD
8-BIT, FLASH, 40MHz, MICROCONTROLLER, QCC48, 7 X 7 MM, 1 MM HEIGHT, 0.50 MM PITCH, MO-220VKKD-2, QFN-48
NXP
MC9S08AW16MFDE
8-BIT, FLASH, 40MHz, MICROCONTROLLER, QCC48, 7 X 7 MM, 1 MM HEIGHT, 0.50 MM PITCH, LEAD FREE, MO-220VKKD-2, QFN-48
NXP
MC9S08AW16MFGE
8-BIT, FLASH, 40MHz, MICROCONTROLLER, PQFP44, 10 X 10 MM, 1.40 MM HEIGHT, 0.80 MM PITCH, LEAD FREE, PLASTIC, MS-026BCB, LQFP-44
NXP
©2020 ICPDF网 联系我们和版权申明