HCS08系列微控制器参考手册(中文)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HCS08
系列微控制器参考手册
第一册
苏州大学飞思卡尔嵌入式系统研发中心翻译
2009年11月
目录
第一章通用信息与结构框图 (1)
1.1HCS08系列微控制器介绍 (1)
1.2HCS08CPU编程模型 (2)
1.3外设模块 (2)
1.4MC9S08GB60的特点 (3)
1.4.1 HCS08系列的共性 (3)
1.4.2 MC9S08GB60的特点 (3)
1.5MC9S08GB60的结构框图 (4)
第二章引脚及其连接 (5)
2.1简介 (5)
2.2推荐的系统连接 (5)
2.2.1 电源 (7)
2.2.2 MC9S08GB60振荡器 (7)
2.2.3 复位 (8)
2.2.4 背景/模式选择(BKGD/MS) (8)
2.2.5 通用I/O及外设端口 (8)
第三章工作模式 (10)
3.1简介 (10)
3.2特征 (10)
3.3运行模式 (10)
3.4背景调试模式 (11)
3.5等待模式 (12)
3.6停止模式 (12)
3.6.1 Stop1模式 (13)
3.6.2 Stop2模式 (13)
3.6.3 Stop3模式 (14)
3.6.4 停止模式下激活BDM使能 (14)
3.6.5 设置OSCSTEN位 (15)
3.6.6 停止模式下LVD使能 (15)
3.6.7 停止模式下的片上外设模块 (15)
3.6.8 系统选择寄存器(SOPT) (17)
3.6.9 系统电源管理状态和控制寄存器1(SPMSC1) (18)
3.6.10 系统电源管理状态和控制寄存器2(SPMSC2) (19)
第四章片上存储器 (21)
4.1简介 (21)
4.2HCS08核定义的存储器组织 (21)
4.2.1 HCS08存储器组织 (21)
4.2.2 MC9S08GB60存储映像 (22)
4.2.3 复位和中断向量表 (23)
4.3寄存器地址和位分配 (24)
4.4RAM (29)
4.560K字节的FLASH (29)
4.5.1 特征 (30)
4.5.2 写入、擦除和空白检测命令 (30)
4.5.3 命令时间和突发模式写入 (32)
4.5.3.1 行和FLASH的组织结构 (32)
4.5.3.2 程序命令时序 (33)
4.5.4 访问错误 (34)
4.5.5 向量重定向 (34)
4.5.6 FLASH块保护(MC9S08GB60) (34)
4.6MC9S08GB60的安全性 (35)
4.7MC9S08GB60的FLASH寄存器和控制位 (36)
4.7.1 FLASH时钟分频寄存器(FCDIV) (36)
4.7.2 FLASH选项寄存器(FOPT和NVOPT) (37)
4.7.3 FLASH配置寄存器(FCNFG) (38)
4.7.4 FLASH保护寄存器(FPROT和NVPROT) (38)
4.7.5 FLASH状态寄存器(FSTAT) (39)
4.7.6 FLASH命令寄存器(FCMD) (40)
4.8FLASH存储器应用实例 (41)
4.8.1 FLASH模块时钟的初始化 (41)
4.8.2 擦除FLASH的一页(512字节) (42)
4.8.3 DoOnStack子程序 (43)
4.8.4 SpSub子程序 (45)
4.8.5 FLASH的字节编程 (46)
第五章复位和中断 (47)
5.1简介 (47)
5.2MC9S08GB60复位和中断的特征 (47)
5.4计算机正常操作监控模块(COP)看门狗 (48)
5.5中断 (48)
5.5.1 中断堆栈结构 (49)
5.5.2 外部中断请求(IRQ)引脚 (50)
5.5.2.1 引脚配置选项 (50)
5.5.2.2 边沿/电平触发 (50)
5.5.3 中断向量、中断源和局部屏蔽 (51)
5.6低电压检测系统(LVD) (52)
5.6.1 上电复位操作 (52)
5.6.2 LVD复位操作 (52)
5.6.3 LVD中断操作 (53)
5.6.4 低电压警告(LVW) (53)
5.7实时中断(RTI) (53)
5.8复位、中断以及系统控制寄存器和控制位 (53)
5.8.1 中断请求状态和控制寄存器(IRQSC) (54)
5.8.2 系统复位状态寄存器(SRS) (55)
5.8.3 系统背景调试强制复位寄存器(SBDFR) (56)
5.8.4 系统选项寄存器(SOPT) (56)
5.8.5 系统设备识别寄存器(SDIDH、SDIDL) (57)
5.8.6 系统实时中断状态和控制寄存器(SRTISC) (57)
5.8.7 系统电源管理状态控制寄存器1(SPMSC1) (58)
5.8.8 系统电源管理状态和控制寄存器2(SPMSC2) (59)
第六章中央处理单元 (61)
6.1简介 (61)
6.2编程结构和CPU寄存器 (61)
6.2.1 累加器(A) (62)
6.2.2 变址寄存器(H:X) (63)
6.2.3 堆栈指针(SP) (64)
6.2.4 程序计数器(PC) (66)
6.2.5 条件码寄存器(CCR) (66)
6.3寻址方式 (70)
6.3.1 隐含寻址方式(INH) (71)
6.3.2 相对寻址方式(REL) (71)
6.3.3 立即寻址方式(IMM) (72)
6.3.4 直接寻址方式(DIR) (72)
6.3.5 扩展寻址方式(EXT) (72)
6.3.6.1 无偏移量变址方式(IX) (73)
6.3.6.2 无偏移量变址、变址加1寻址方式(IX+) (73)
6.3.6.3 8位偏移量变址方式(IX1) (73)
6.3.6.4 8位偏移量变址、变址加1寻址方式(IX1+) (73)
6.3.6.5 16位偏移量变址方式(IX2) (73)
6.3.6.6 8位偏移量堆栈寻址方式(SP1) (74)
6.3.6.7 16位偏移量堆栈寻址方式(SP2) (74)
6.4特殊操作 (75)
6.4.1 复位序列 (75)
6.4.2 中断 (76)
6.4.3 等待模式 (76)
6.4.4 停止模式 (76)
6.4.5 背景模式 (77)
6.4.6 总线周期的用户观点 (77)
6.5通过指令类别进行指令集描述 (78)
6.5.1 数据传送指令 (78)
6.5.1.1 加载与存储 (78)
6.5.1.2 位的置位与清零 (81)
6.5.1.3 存储器到存储器的传送 (82)
6.5.1.4 寄存器传输和半字节交换 (82)
6.5.2 算术运算指令 (83)
6.5.2.1 加、减、乘和除指令 (83)
6.5.2.2 加一、减一、清零和求补 (88)
6.5.2.3 比较和测试 (88)
6.5.2.4 BCD的计算 (88)
6.5.3 逻辑操作指令 (89)
6.5.3.1 与、或、异或与求补 (90)
6.5.3.2 位测试指令 (91)
6.5.4 移位类指令 (91)
6.5.5 跳转、转移和循环控制指令 (93)
6.5.5.1 无条件跳转和转移指令 (94)
6.5.5.2 简单转移 (95)
6.5.5.3 有符号转移 (95)
6.5.5.4 无符号转移 (95)
6.5.5.5 位条件转移 (96)
6.5.5.6 循环控制 (96)
6.5.6 相关堆栈指令 (97)
6.6指令简表 (102)
6.7汇编语言指南 (114)
6.7.1 列表行 (115)
6.7.2 汇编指令 (116)
6.7.2.1 BASE——设定编译器的缺省数进制 (116)
6.7.2.2 INCLUDE——指定附加源文件 (116)
6.7.2.3 NOLIST/LIST——关闭或打开程序列表 (116)
6.7.2.4 ORG——设置程序的起始位置 (117)
6.7.2.5 EQU——把一个标号和一个数值相关联 (118)
6.7.2.6 dc.b——定义存储器中字节化常量 (119)
6.7.2.7 dc.w——在存储器中定义16位(字)常量 (119)
6.7.2.8 ds.b——定义存储(保留)内存变量字节 (120)
6.7.3 标号 (121)
6.7.4 表达式 (122)
6.7.5 通用文件协议 (123)
6.7.6 目标代码(S19)文件 (125)
第七章开发支持 (129)
7.1介绍 (129)
7.2特点 (130)
7.3背景调试控制器(BDC) (130)
7.3.1 BKGD引脚描述 (131)
7.3.2 通信细节 (132)
7.3.2.1 BDC通信速率考虑事项 (132)
7.3.2.2 位时序细节 (133)
7.3.3 BDC寄存器和控制位 (135)
7.3.3.1 BDC状态和控制寄存器 (135)
7.3.3.2 BDC断点匹配寄存器 (137)
7.3.4 BDC命令 (137)
7.3.4.1 SYNC——要求时序参考脉冲 (138)
7.3.4.2 ACK_ENABLE (139)
7.3.4.3 ACK_DISABLE (139)
7.3.4.4 BACKGROUND (139)
7.3.4.5 READ_STATUS (140)
7.3.4.6 WRITE_CONTROL (140)
7.3.4.7 READ_BYTE (141)
7.3.4.8 READ_BYTE_WS (142)
7.3.4.10 WRITE_BYTE (143)
7.3.4.11 WRITE_BYTE_WS (143)
7.3.4.12 READ_BKPT (144)
7.3.4.13 WRITE_BKPT (144)
7.3.4.14 GO (144)
7.3.4.15 TRACE1 (145)
7.3.4.16 TAGGO (145)
7.3.4.17 READ_A (145)
7.3.4.18 READ_CCR (145)
7.3.4.19 READ_PC (146)
7.3.4.20 READ_HX (146)
7.3.4.21 READ_SP (147)
7.3.4.22 READ_NEXT (147)
7.3.4.23 READ_NEXT_WS (148)
7.3.4.24 WRITE_A (148)
7.3.4.25 WRITE_CCR (148)
7.3.4.26 WRITE_PC (149)
7.3.4.27 WRITE_HX (149)
7.3.4.28 WRITE_SP (149)
7.3.4.29 WRITE_NEXT (149)
7.3.4.30 WRITE_ NEXT_WS (150)
7.3.5 串行接口硬件握手协议 (150)
7.3.6 取消握手协议 (152)
7.3.7 BDC硬件断点 (155)
7.3.8 与M68HC12BDM的不同之处 (155)
7.3.8.1 8位体系结构 (156)
7.3.8.2 命令格式 (156)
7.3.8.3 状态位的读写 (156)
7.3.8.4 BDM与停止和等待模式 (157)
7.3.8.5 SYNC指令 (157)
7.3.8.6 硬件断点 (157)
7.4标识部分和BDC强制复位 (158)
7.4.1 系统设备识别寄存器(SDIDH:SDIDL) (158)
7.4.2 系统背景调试强制复位寄存器 (158)
7.5片上调试系统(DBG) (159)
7.5.1 比较器A和B (159)
7.5.2总线信息捕捉和FIFO操作 (160)
7.5.4 标记与强制断点和触发器 (161)
7.5.5 CPU断点请求 (162)
7.5.6 触发模式 (162)
7.5.6.1 单独A触发模式 (163)
7.5.6.2 A或B触发模式 (163)
7.5.6.3 A然后B触发模式 (163)
7.5.6.4 事件B触发模式(存储数据) (163)
7.5.6.5 A然后事件B触发模式(存储数据) (163)
7.5.6.6 A和B数据触发(全模式) (164)
7.5.6.7 A与非B数据触发(全模式) (164)
7.5.6.8 触发范围内:A≤地址≤B (164)
7.5.6.9 触发范围外:地址<A 或者地址>B (164)
7.5.7 DBG寄存器和控制位 (165)
7.5.7.1 调试比较器A的高地址页寄存器(DBGCAH) (165)
7.5.7.2 调试比较器A的低位寄存器(DBGCAL) (165)
7.5.7.3 调试比较器B的高地址页寄存器(DBGCAH) (165)
7.5.7.4 调试比较器B的低位寄存器(DBGCAL) (165)
7.5.7.5 调试FIFO高地址页寄存器(DBGFH) (165)
7.5.7.6 调试FIFO低位寄存器(DBGFL) (165)
7.5.7.7 调试控制寄存器(DBGC) (166)
7.5.7.8 调试触发寄存器(DBGT) (167)
7.5.7.9 调试状态寄存器(DBGS) (168)
7.5.8 应用信息与举例 (169)
7.5.8.1 定向的调试器例子 (171)
7.5.8.2 例1:终止对地址A的处理 (171)
7.5.8.3 例2:终止对地址A指令的处理 (172)
7.5.8.4 例3:终止在地址A或B上的指令处理 (172)
7.5.8.5 例4:开始跟踪在地址A的指令 (173)
7.5.8.6 例5:A到B顺序后停止的尾部跟踪 (173)
7.5.8.7 例6:起始跟踪数据B写入地址A (174)
7.5.8.8 例7:从地址B中读取被捕获的首八位数据 (174)
7.5.8.9 例8:捕获在读地址A后写入到地址B的值 (175)
7.5.8.10 例9:在一个例程中触发所有的执行命令 (175)
7.5.8.11 例10:通过触发来试图处理外部FLASH (176)
7.5.9 硬件断点和ROM修补 (176)
附录A 指令集详述 (177)
A.2命名规则 (177)
A.3规范定义 (180)
A.4指令集 (180)
ADC Add with Carry(带进位位加) (180)
ADD Add without Carry(无进位位加) (181)
AIS Add Immediate Value to Stack Pointer(立即数加到SP) (182)
AIX Add Immediate Value to Index Register(立即数加到HX) (182)
AND Logical AND(逻辑与) (183)
ASL Arithmetic Shift Left(算术左移) (184)
ASR Arithmetic Shift Right(算术右移) (184)
BCC Branch if Carry Bit Clear(C为0则转移) (185)
BCLR n Clear Bit n in Memory(内存单元n位清零) (185)
BCS Branch if Carry Bit Set(C为1则转移) (186)
BEQ Branch if Equal(等于则转移) (187)
BGE Branch if Greater Than or Equal To(大于或等于则转移) (187)
BGND Background(进入背景调试模式) (188)
BGT Branch if Greater Than(大于则转移) (188)
BHCC Branch if Half Carry Bit Clear(H为0则转移) (189)
BHCS Branch if Half Carry Bit Set(H为1则转移) (189)
BHI Branch if Higher(大于则转移) (190)
BHS Branch if Higher or Same(大于或等于则转移) (191)
BIH Branch if IRQ Pin High(引脚IRQ为1则转移) (191)
BIL Branch if IRQ Pin Low(引脚IRQ为0则转移) (192)
BIT Bit Test(位测试) (192)
BLE Branch if Less Than or Equal To(小于或等于则转移) (193)
BLO Branch if Lower(小于则转移) (193)
BLS Branch if Lower or Same(小于或等于则转移) (194)
BLT Branch if Less Than(小于则转移) (195)
BMC Branch if Interrupt Mask Clear(I为0则转移) (195)
BMI Branch if Minus(结果为负则转移) (196)
BMS Branch if Interrupt Mask Set(I为1则转移) (196)
BNE Branch if Not Equal(不等于则转移) (197)
BPL Branch if Plus(结果为正则转移) (197)
BRA Branch Always(无条件短转移) (198)
BRCLR n Branch if Bit n in Memory Clear(M位n为0则转移) (199)
BRN Branch Never(三个总线周期的空操作) (200)
BRSET n Branch if Bit n in Memory Set(M位n为1则转移) (200)
BSET n Set Bit n in Memory(M位n置1) (201)
BSR Branch to Subroutine(转移到子程序) (201)
CBEQ Compare and Branch if Equal(比较,等于则转移) (202)
CLC Clear Carry Bit(进位位C清零) (203)
CLI Clear Interrupt Mask Bit(中断屏蔽位I清零) (203)
CLR Clear(清零) (204)
CMP Compare Accumulator with Memory(A与M比较) (204)
COM Complement(按位取反) (205)
CPHX Compare Index Register with Memory(HX与M比较) (206)
CPX Compare X with Memory(X与M比较) (207)
DAA Decimal Adjust Accumulator(A十进制调整) (208)
DBNZ Decrement and Branch if Not Zero(减1不为0则转移) (209)
DEC Decrement(自减1) (209)
DIV Divide(无符号除法) (210)
EOR Exclusive-OR Memory with Accumulator(M与A异或) (211)
INC Increment(自加1) (211)
JMP Jump(无条件跳转) (212)
JSR Jump to Subroutine(跳转到子程序) (213)
LDA Load Accumulator form Memory(取M内容到A) (213)
LDHX Load Index Register form Memory(取M内容到HX) (214)
LDX Load X from Memory(取M内容到X) (215)
LSL Logical Shift Left(逻辑左移) (215)
LSR Logical Shift Right(逻辑右移) (216)
MOV Move(M单元间数据传送) (217)
MUL Unsigned Multiply(无符号数乘法) (218)
NEG Negate(Two’s Complement) (求补) (218)
NOP No Operation(空操作) (219)
NSA Nibble Swap Accumulator(A的高低4位对调) (219)
ORA Inclusive-OR Accumulator and Memory(逻辑或) (220)
PSHA Push Accumulator onto Stack(A进栈) (220)
PSHH Push H onto Stack(H进栈) (221)
PSHX Push X onto Stack(X进栈) (221)
PULA Pull Accumulator from Stack(A出栈) (222)
PULH Pull H from Stack(H出栈) (222)
PULX Pull X from Stack(X出栈) (223)
ROL Rotate Left through Carry(带进位位的循环左移) (223)
ROR Rotate Right through Carry(带进位位的循环右移) (224)
RSP Reset Stack Pointer(堆栈指针置$FF) (224)
RTI Return from interrupt(中断返回) (225)
RTS Return from Subroutine(子程序返回) (226)
SBC Subtract with Carry(带借位减法) (226)
SEC Set Carry Bit(进位位置位) (227)
SEI Set Interrupt Mask Bit(中断屏蔽位置位) (227)
STA Store Accumulator in Memory(A存入M) (228)
STHX Store Index Register(HX存入M) (229)
STOP Enable IRQ Pin, Stop Processing(停机) (229)
STX Store X in Memory(X存入M) (230)
SUB Subtract(无借位减法) (231)
SWI Software Interrupt(软件中断) (231)
TAP Transfer Accumulator to Processor Status Byte(写CCR) (232)
TAX Transfer Accumulator to X(A复制到X) (233)
TPA Transfer Processor Status Byte to Accumulator(读CCR) (233)
TST Test for Negative or Zero(小于或等于0测试) (234)
TSX Transfer Stack Pointer to index Register(复制SP到HX) (235)
TXA Transfer X to Accumulator(复制X到A) (235)
TXS Transfer Index Register Low to Stack Pointer(HX-1写入SP) (235)
WAIT Enable Interrupts; Stop Processor(待机) (236)
附录B 通用文件规范 (237)
B.1引言 (237)
B.2存储映射区域划分 (238)
B.3中断向量定义 (238)
B.4位定义的两种方式 (239)
B.5MC9S08GB60完整的通用文件 (240)
第一章通用信息与结构框图
1.1 HCS08系列微控制器介绍
新型的FreescaleHCS08系列微控制器,尽管包含新指令,可以执行快速调试和开发功能,但仍然和旧的M68HC08系列完全兼容。
这个参考手册使用第一个HCS08系列的成员——MC9S08GB60来描述应用程序和模块行为。
若使用HCS08系列的其他MCU时,请参照相关MCU的数据手册。
每个HCS08系列的MCU都是由HCS08核加上几个存储器以及外设模块组成。
HCS08核的组成部分如下:
①HCS08 CPU
②背景调试控制器(BDC)
③支持多达32个中断/复位源
④芯片级地址译码
该HCS08 CPU可运行HC08所有的指令、并增加了背景(BGND)调试指令和带有新的寻址方式的LDHX、STHX、CPXH指令,这提高了编译效率。
CPU的最高时钟频率是40MHz(通常由晶振或内部时钟发生器产生)。
当CPU运行在40MHz的频率下,总线最高频率是20MHz(CPU时钟频率的一半)。
更多内容见第六章中央处理器(CPU)部分。
背景调试控制器(BDC)内建于CPU核内,以便更容易地访问地址生成电路和CPU 寄存器信息。
BDC包含一个硬件断点。
其他更复杂的断点通常包含在独立的片上调试模块之中。
BDC允许通过1个MCU上的引脚访问内部寄存器和存储空间。
更多内容见第七章开发支持部分。
该核包括支持多达32个不同向量的中断或复位源。
外设模块提供本地中断使能电路和标志寄存器。
更多内容见第五章复位和中断部分。
虽然该系列的各个MCU的存储映像是不同的,但是由HCS08核内的解码逻辑控制的基本方面是相同的。
输入输出端口的寄存器和大多数外设模块控制和状态寄存器的地址起始于$0000,并延续到32、64、96或128字节。
这些直接页寄存器的结束地址到地址$107F之间的空间被保留给了静态RAM存储器。
起始于$1800的空间预留给高地址页寄存器。
它们也都是一些状态和控制寄存器,但不像直接页寄存器那样需要经常存取。
例如,系统设置寄存器在复位之后只需要写入一次,可以定在高地址页寄存器空间以便在直接寻址空间为寄存器和RAM留出更多的空间。
剩下的存储空间从$1C00到$FFFF预留给FLASH或ROM。
最后的64个单元($FFC0--$FFFF)作为向量空间(总共32个中断和复位向量)。
1
2
1.2 HCS08 CPU 编程模型
HCS08 CPU 的编程模型见图1-1所示,它包括和M68HC08相同的寄存器。
其中包括一个8位累加器(A),一个可分别存取高8位和低8位的16位变址寄存器,一个16位栈指针(SP),一个16位程序计数器(PC)和一个状态码寄存器(CCR),该CCR 包含5个处理器状态标志(V ,H ,N ,Z 和C)和全局中断屏蔽标志(I)。
图1-1 CPU 的寄存器
1.3 外设模块
一个特定型号的MCU 的外设可能是多种多样的,但是每个型号MCU 总会包含程序存储器、数据存储器、时钟模块和调试模块。
HCS08系列的一些外设模块包括:
①4K-60K 字节的FLASH 或ROM 存储器
②128-4K 字节的静态RAM
③异步串行输入/输出(SCI)
④同步串行输入/输出(SPI 和IIC)
⑤定时器/脉宽调制模块(TPM)
⑥键盘中断(KBI)
⑦模数转换器(ADC)
⑧时钟发生模块:
具备功能齐全的内部时钟发生器(ICG),可以脱离外部元件(倍频是用FLL 完成的,它不需要任何外部滤波元件)运行。
传统的没有FLL 或PLL 的皮尔斯振荡器(OSC)。
⑨有9种触发模式和总线捕捉FIFO 的调试模块(DBG)
进位/借位标志C 零标志Z
负标志N 中断屏蔽位I 半进位标志H
溢出标志V 变址寄存器HX 堆栈指针SP
程序计数器PC 条件码寄存器CCR C Z I N H 1 1 V 累加器A
关于HCS08系列各MCU的更多特征信息参考相关的数据手册。
1.4 MC9S08GB60的特点
MC9S08GB60是HCS08系列的首款产品,在这里将其作为HCS08系列MCU的一个典型实例介绍如下。
1.4.1 HCS08系列的共性
①40-MHz HCS08 CPU(中央处理器)
②HC08指令集和BGND附加指令
③背景调试系统
④在线调试时允许单个断点设置(另加片上调试模块的两个断点)
⑤调试模块包括两个比较器和九种触发模式。
八级深度的FIFO用来存储程序流程改变的地址和事件数据。
调试模块支持标志符和强制两种断点。
⑥支持多达32个中断/复位源
⑦低功耗模式:等待模式和三种停止模式
⑧系统保护特征:
可选的计算机正常操作(COP)复位
低电压检测复位或中断
非法指令码检测复位
非法地址检测复位(有些设备没有非法地址)
1.4.2 MC9S08GB60的特点
①60K带块保护和安全机制的可片上在线编程的FLASH存储器
②4K片上随机存储器(RAM)
③8通道,10位模数转换器(ATD)
④两个串行通信接口模块(SCI)
⑤串行外设接口模块(SPI)
⑥时钟源可选晶体振荡器、陶瓷谐振器、外部时钟或经精确NVM校准的内部时钟
⑦高达100 kbps的IIC总线(IIC)
⑧一个3通道和一个5通道的16位定时器/脉宽调制器(TPM)模块,每个通道可以选择输入捕捉、输出比较和边缘对齐PWM等功能。
每个定时模块的每个通道可配置为带缓冲的中心对齐的脉宽调制(CPWM)模式
⑨8引脚键盘中断模块(KBI)
⑩16个大电流引脚(受封装形式限制)
○11端口引脚作为输入时,可以通过软件设置是否有内部上拉,端口的每一位都可
3
以单独设置,输出时上拉禁止
○12RESET和IRQ引脚内部上拉可减少用户系统开销
○1356个通用输入输出引脚(I/O),和封装形式有关
○1464引脚薄型方型扁平式封装(LQFP)
1.5 MC9S08GB60的结构框图
图1-2是MC9S08GB60 MCU的整体结构框图,显示了所有主要外设系统和所有外设引脚。
MC9S08GB60是HCS08系列的典型代表。
图1-2 MC9S08GB60结构框图
PTD7/TPM2CH4 PTD6/TPM2CH3 PTD5/TPM2CH2 PTD4/TPM2CH1 PTD3/TPM2CH0 PTD2/TPM1CH2 PTD1/TPM1CH1 PTD0/TPM1CH0
PTG2/EXTAL PTG0/BKGD/MS PTF7–PTF0
1.端口引脚作为输入时可以通过软件设置选择内部上拉设备。
2.若IRQ使能(IRQPE=1),引脚包括可软件配置的上下拉设备。
3.IRQ没有通过钳位二极管连向V DD。
IRQ不能加载高于V DD的电平4.引脚包含集成的上拉设备。
5.大电流驱动。
6.PTA[7:4]引脚包含可软件配置的上拉/下拉设备。
注1,6注1
注1,5
注1 注1
注1 注1,5
RESET
IRQ
注4
注2,3
4
第二章引脚及其连接
2.1 简介
本章介绍了一些典型应用系统的基本连接方法。
另外详细介绍了电源、振荡器、复位、模式和背景接口连接。
这里以HCS08系列里具有代表性的器件——MC9S08GB60为例进行介绍。
片上外设系统某些引脚是共用的,所以当某个外设模块不使用其引脚时,那些引脚可以作为通用的输入/输出(I/O)引脚来用。
当设计系统连接时,设计者应该考虑到这些引脚复位时的情况,以及软件配置后这些引脚的特性。
例如,一个串行发送引脚TxD在SCI发送器使能后将会有一个主动驱动CMOS的输出。
然而,在复位到应用软件使能SCI发送器的时间里,该引脚会呈现明显的输入高阻态。
虽然通常认为使CMOS输入悬空是不可取的,但是从复位到引脚被重设以实现其他功能的时延非常短,因此这在大多数应用中几乎没有影响。
如果用户确定有影响,可在该引脚上连接一个外部上拉电阻。
2.2 推荐的系统连接
图2-1显示了HCS08应用系统最典型的引脚连接。
MC9S08GB60是HCS08系列最具代表性的,所以这里以它为例。
关于特殊的引脚,可参考该系列各MCU的数据手册,以得到更详细的信息。
比较详细的系统连接如下:
5
6
图2-1 基本系统连接
下面将详细介绍系统连接。
手动 复位 异步中断输入 应用系统的I/O 和外围设备接口 系统
供电
注: 1.如果使用内部振荡
器,这是不需要的。
2.这两个引脚和PTG1、PTG2是相同的引脚。
3.BKGD/MS 和PTG0是同一引脚。
注1 注2 注2 BDM 接口 注3
7
2.2.1 电源
DD V 和SS V 是HCS08 MCU 的主要供电引脚。
该电压源对所有的输入/输出(I/O)缓冲电路和内部电压调节器供电。
内部电压调节器向CPU 和其他MCU 内部电路提供2.5伏电压。
通常应用系统有两个单独的电容器和电源引脚相连。
一个大容量电解电容器,如10uF 的钽电容,用来为全体系统提供大电量存储,和一个0.1μF 的陶瓷旁路电容,尽可能的靠近MCU 电源引脚,用以抑制高频噪声。
由于亚微米工艺的应用,HCS08内部逻辑电路所需的供电电压比早期的MCU 低。
除了允许更小的版面之外,这也给降低系统功耗带来了方便。
这意味着片上的电压调节器被用来降低从外部MCU 提供电压到内部逻辑电压之间的电压。
DDAD V 和SSAD V 也是MCU 的电源引脚。
该电压源给ATD 提供电压。
一个0.1μF 的陶瓷旁路电容应尽可能靠近MCU 的这两个电源引脚,用来抑制高频噪声。
2.2.2 MC9S08GB60振荡器
本节描述MC9SGB60内的振荡器。
并不是所有该系列的MCU 都使用相同的振荡器,有些就没有外部振荡器元件。
对于该系列特定MCU 的信息可以参考其数据手册。
MC9S08GB60可以在没有任何外部晶体振荡器的情况下运行。
在这种情况下,该MCU 使用内部产生的频率,相当于大约8MHz 晶体频率。
这个频率源在复位启动时使用,以避免长时间的晶体启动延时。
MC9S08GB60中的振荡器为传统的皮尔斯振荡器,它可容纳一个晶体或陶瓷谐振器,其频率范围可通过ICGC1寄存器中的RANGE 位在两个频率范围里进行选择。
低频范围是32KHz 到100KHz ,高频范围是1MHz 到16MHz 。
除了晶体或陶瓷谐振器,频率高达40MHz 的外部振荡器也能和EXTAL 输入引脚相连,但XTAL 输出引脚必须悬空。
下面的讨论将参考图2-1。
R S (如果使用)和R F 应该是低电感的电阻,如碳合成物电阻。
绕线电阻和一些金属薄膜电阻有很大的电感值。
C1和C2应该是为高频应用专门设计的高品质陶瓷电容。
R F 在晶振启动时被用来提供一个偏压电路以保持EXTAL 输入在其线性范围内,
它的值通常不是关键的。
典型的系统使用1 M Ω到10 M Ω。
高值对湿度敏感,低值减小增益(在特殊情况下)可以阻止启动。
C1和C2通常在5pF 到25pF 的范围内,并按照要求和特定的晶体和谐振器相匹配。
在给C1和C2选定大小时一定要考虑到PCB 板电容和MCU 引脚电容。
晶体制造商通常指定一个负载电容,该电容值应等于C1和C2的串联值,C1和C2一般选用同样大小的电容。
作为首选的近似值,为每个振荡器引脚(EXTAL 和XTAL)使用约10pF 的电容作为引脚和PCB 的连接电容。
一般情况下,R S 在32kHz 到100kHz 范围时使用。
最高到10K Ω或征求晶体制造商
的意见。
通常在1MHz到16MHz范围里不需要R S,可用直接连接代替。
2.2.3 复位
并非所有的HCS08系列MCU都有一个复位引脚。
如果没有复位引脚,可以通过下电上电过程来产生上电复位,也可以通过使用背景命令向SBDFR寄存器写入BDFR 位,或者用软件的方法强制产生复位,例如非法指令码复位。
在MC9S08GB60中,复位引脚是一个有上拉电阻的专用引脚。
它有输入滞后,10mA 输出驱动,没有输出摆率控制。
因为有内部上电复位和低压复位电路,所以通常不需要外部的复位电路。
这个引脚通常连接到标准6引脚的背景调试连接器上,这样开发系统能够直接复位MCU系统。
如果需要,可以通过附加一个简单接地开关手动复位(下拉复位引脚强制复位)。
每当有复位产生(无论来自外部信号还是来自内部系统),复位引脚被拉低约4.25μs,然后释放,经过约4.75μs后再次采样。
如果是内部信号源导致复位,比如低电压复位或看门狗超时,电路等待复位引脚采样返回逻辑1。
如果引脚在这个采样点仍然是低,那么就假定复位来自外部信号源。
复位电路解析复位的原因并且在复位状态寄存器(SRS)中设置相应的位。
不要在复位引脚上接大的电容,因为那将会干扰检测复位源的电路和时序。
如果一个外部电容阻止复位引脚在复位采样点之前上升为有效的逻辑1,那么所有复位将被看成外部复位。
2.2.4 背景/模式选择(BKGD/MS)
背景/模式选择(BKGD/MS)引脚包括一个内部上拉设备,输入滞后,一个2mA输出驱动和无输出摆率控制。
若这个引脚没有连接,则MCU在复位的上升沿进入正常的操作模式。
如果调试系统被连接到6引脚的标准背景调试接口,它可以在复位上升沿时保持BKGD/MS为低,强制MCU进入背景模式。
BKGD引脚主要被背景调试控制器(BDC)使用,它使用约定好的协议进行通信,该协议使用目标MCU的16个BDC时钟周期来传送每一位。
目标MCU的BDC时钟频率可以达到20MHz的总线时钟频率,因此不要将任何大的电容和BKGD/MS引脚相连,那会干扰背景串行通信。
虽然BKGD引脚是一个伪开漏引脚,但是背景调试通信协议提供了简短的,主动驱动,高加速脉冲以确保快速上升时间。
电缆上的小电容和内部上拉设备的绝对值对判断BKGD引脚上上升和下降时间几乎不起任何作用。
2.2.5 通用I/O及外设端口
MC9S08GB60上的有56个引脚是由通用输入/输出(I/O)和片上外设功能模块所共用,比如定时器和串行I/O系统。
复位以后,56个引脚中除了PTG0/BKGD/MS,其他
8
引脚全部配置为高阻通用输入口,内部上拉设备无效。
为了避免来自浮动输入引脚的额外电流,应用程序中的复位初始化程序应使能片上上拉设备或将闲置引脚的方向改变为输出,使引脚不浮动。
有关使用这些引脚作为通用I/O引脚的信息,或者有关片上外设系统如何以及何时用这些引脚的信息,请参考特定MCU的数据手册。
当一个片上外设系统使用一个引脚时,尽管外设模块通过控制引脚输出缓冲使能来控制引脚方向,但是数据方向控制位仍决定从端口数据寄存器读出的是什么。
当56个I/O引脚作为输入时,即使这些引脚被片上外设模块控制,但是它们的上拉使能位仍然可以控制这些引脚是否有片上的上拉或者下拉设备。
有时基于控制位,上拉电阻被替换成下拉电阻,就象MC9S08GB60键盘中断引脚和IRQ引脚。
当PTA7--PTA4引脚被MC9S08GB60中的KBI模块控制时,同时配置为上升沿/高电平有效,上拉使能控制位使能下拉设备而不是上拉设备。
同样,当MC9S08GB60的IRQ作为输入并设置为检测上升沿,上拉使能控制位使能下拉设备而不是上拉设备。
HCS08输出有软件控制转换率。
这一特性允许用户有效的选择两个大小不同的输出晶体管中的一种。
当选定小型号晶体管时,输出开关转换率较低,可以降低电磁噪声。
当重负载的速率比较重要时可选择大型号晶体管。
HCS08有些输出引脚具有吸收和驱动高电流能力,每个I/0可达10mA,但所有I/O 口电流总和有共限值。
9
第三章工作模式
3.1 简介
本章讲述了停止和等待两种低功耗模式,也对运行模式和与之相对的背景调试模式进行了阐述,并描述了如何进入和退出各个模式及各个模式的功能。
片上电压调节器是Freescale的HCS08系列MCU的新特性。
它的最主要功能是从V电源提供一个内部2.5V的逻辑电压。
该电压调节器具有待命、通过和低MCU的
DD
功耗模式,被用于让9S08GB/GT进入stop1、stop2和stop3模式。
本章还讨论了这些模式和与之相关的功能和寄存器。
因为所有HCS08系列MCU的寄存器和控制位可能有所不同,所以对于特定的MCU应参考数据手册得到更多的信息。
3.2 特征
①普通用户在运行模式下操作
②用于代码开发的背景调试模式
③等待模式:
CPU关闭以节能
系统时钟仍然运行
维持完全的电压稳压
④停止模式:
系统时钟停止;电压调节器待命
停止1:内部电路的全部断电,以最大程度节能
停止2:内部电路的部分断电,RAM内容保留
停止3:所有内部电路供电,以快速恢复
单独的周期唤醒时钟能运行在stop2和stop3模式
在stop3下振荡器打开可以降低晶振的启动时间
3.3 运行模式
这是9S08GB/GT的正常操作模式。
当BKGD/MS在复位的上升沿时是高电平,此模式被选择。
在此模式下复位之后,CPU从存储器中的$FFFE:$FFFF处取出程序执行的起始地址,执行内存中的代码。
10。