飞思卡尔控制器与MSCAN_精简版.ppt
School of Electrical and Information汽车总线应用技术第四章第四章 飞思卡尔控制器与飞思卡尔控制器与MSCAN黄爱蓉School of Electrical and Information本章主要内容本章主要内容q4.1 概述q4.2 MC9S08DZ60nMC9S08DZ60的主要特性nMC9S08DZ60的内部结构q4.3 多功能时钟管理器MCGq4.4 飞思卡尔MSCAN模块nMSCAN特征nMSCAN相关寄存器介绍n报文发送基础q4.5 S08DZ60开发环境nCodeWarriorfors08的使用School of Electrical and Information4.1 概述概述 n飞飞思卡思卡尔尔半半导导体是全球最大的半体是全球最大的半导导体公司之一,体公司之一,设计设计制造嵌入式半制造嵌入式半导导体体产产品;品;n是是车车用微控制器(用微控制器(MCUMCU)领领域排名第一的供域排名第一的供应应商,具有商,具有2020年的汽年的汽车电车电子子经验经验;n飞飞思卡思卡尔尔的微控制器按照的微控制器按照CPUCPU字字长长分分为为8 8位、位、1616位、位、3232位三种位三种8位16位32位信息娱乐系统信息娱乐系统目前,飞思卡尔的各目前,飞思卡尔的各MCU中广泛使用中广泛使用CAN模块设计。模块设计。School of Electrical and Information飞思卡尔对汽车的了解飞思卡尔对汽车的了解School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-车身电子车身电子School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-底盘底盘School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-辅组驾驶辅组驾驶School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-信息娱乐系统信息娱乐系统School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-车内联网车内联网School of Electrical and Information飞思卡尔在汽车领域的应用飞思卡尔在汽车领域的应用-动力系统控制动力系统控制School of Electrical and InformationMCU选择标准选择标准nMCU在其内存中包含按照在其内存中包含按照OEM的规定根据车辆需求设计的功能逻辑的规定根据车辆需求设计的功能逻辑nMCU处理输入和控制:处理输入和控制:q BCM连接器管脚上由缓冲器电路从逻辑电平转化的输出连接器管脚上由缓冲器电路从逻辑电平转化的输出q 通过通信链路发送到其他车辆模块的信息通过通信链路发送到其他车辆模块的信息n低运行电流至关重要:低运行电流至关重要:运行电流越大,调节器功耗越大,散热越多运行电流越大,调节器功耗越大,散热越多n较低休眠电流至关重要:较低休眠电流至关重要:当发动机关闭,电池电压不是通过交流发电当发动机关闭,电池电压不是通过交流发电机充电时,机充电时,MCU从运行模式进入低功耗模式(睡眠)。睡眠电流越大,从运行模式进入低功耗模式(睡眠)。睡眠电流越大,电池用完的时间越快电池用完的时间越快n从睡眠到运行模式的快速转换至关重要:从睡眠到运行模式的快速转换至关重要:某些某些BCM功能要求唤醒之后功能要求唤醒之后短时间内进行操作(从睡眠转换到运行)短时间内进行操作(从睡眠转换到运行)School of Electrical and InformationMCU选择标准选择标准nMCU内置功能:内置功能:nFlash、ROM、EEPROMn管脚输出管脚输出n封装选择封装选择n功能功能n低功率低功率n开发支持开发支持n成本成本n质量质量n软件可用性软件可用性n可扩展性和灵活性可扩展性和灵活性:n兼容性(重复使用兼容性(重复使用)n移植选择移植选择n外围设备外围设备School of Electrical and Information汽车性能和集成School of Electrical and InformationMC9S08DZ60微控制器微控制器n说说明:明:qS08DZS08DZ系列提供了系列提供了飞飞思卡思卡尔尔最低成本的内嵌最低成本的内嵌CANCAN的微控制器;的微控制器;q将内嵌将内嵌CANCAN、内嵌、内嵌EPROMEPROM和片上仿真和片上仿真/调试调试模模块组块组合在一起;合在一起;n主要特性主要特性q8 位位HCS08 中央处理器(中央处理器(CPU)n 40-MHz HCS08 CPU(20-MHz 总线)总线)n HC08 指令集,带附加的指令集,带附加的BGND 指令指令n 支持最多支持最多32 个中断个中断/复位源复位源q片内存储器片内存储器n整个工作电压和温度范围内可读取整个工作电压和温度范围内可读取/编程编程/擦除的擦除的Flash 存储器存储器n MC9S08DZ60=60Kn 最大最大2K的的EEPROM在线可编程内存;在线可编程内存;支持支持8字节单页或字节单页或4 字节双字节双页擦除分区;页擦除分区;执行执行Flash 程序的同时可进行编程和擦除操作;支持程序的同时可进行编程和擦除操作;支持擦除取消操作擦除取消操作n 最大最大4K 的随机存取内存(的随机存取内存(RAM)School of Electrical and InformationMCS9S08DZ60微控制器微控制器n主要特性主要特性q省电模式省电模式n 两种超低功耗停止模式两种超低功耗停止模式n 降低功耗的等待模式降低功耗的等待模式n 超低功耗实时时钟中断,在运行、等待和停止模式下均可操作超低功耗实时时钟中断,在运行、等待和停止模式下均可操作q时钟源选项时钟源选项n多功能时钟生成器(多功能时钟生成器(MCG)PLL 和和FLL 模式(在使用内部温度模式(在使用内部温度补偿时补偿时FLL 能够达到能够达到1.5%内的偏差);带微调功能的内部参考时内的偏差);带微调功能的内部参考时钟源;带可选择晶体振荡器或陶瓷谐振器的外部参考时钟源。钟源;带可选择晶体振荡器或陶瓷谐振器的外部参考时钟源。q开发支持开发支持n 单线背景调试接口单线背景调试接口n 片上及在线仿真(片上及在线仿真(ICE)q-40C 125C的运行温度范围的运行温度范围q2.7V 5.5V的运行电压范围的运行电压范围School of Electrical and InformationMCS9S08DZ60微控制器微控制器n主要特性主要特性q外围设备外围设备n ADC数模转换器 24 通道,12 位分辨率,2.5uS 转换时间,自动比较功能,1.7 mV/C 温度传感器,包含内部能隙参考源通道n ACMPx 两个模拟比较器,支持比较器输出的上升、下降或任意边沿触发的中断;可选择与内部参考电压源进行比较n MSCAN CAN协议 V2.0 A 和B;支持标准和扩展数据帧;支持远程帧;5 个带有FIFO 存储机制的接收缓冲器;灵活的接收识别符过滤器,可编程如下:2 x 32 位、4 x 16 位或8 x 8 位n SCIx 两个串行通信接口SCI,可支持可支持LIN 2.0协议和协议和SAE J2602协议协议;全双工;主节点支持break 信号生成;从节点支持中断信号检测;支持激活边沿唤醒School of Electrical and InformationMCS9S08DZ60微控制器微控制器n主要特性主要特性q外围设备外围设备n SPI(串口外围设备接口模块)全双工或单线双向;双重缓冲发射和接收;主从模式选择;支持高位优先或低位优先的移位n IIC 支持最高100kbps的总线波特率;多主节点模式运行;可编程的从地址;通用呼叫地址;逐字节数据传输驱动的中断n TPMx 一个6 通道(TPM1)和一个2 通道(TPM2);可支持输入捕捉,输出比较,或每个通道带缓冲的边沿对齐PWM 输出n RTC (实时时钟计数器)8 位模数计数器,带基于二进制或十进制的预分频器;实时时钟功能,使用外部晶体和RTC 来确保精确时基、时间、日历或任务调度功能;内带低功耗振荡器(1 kHz),用于周期唤醒而不需要外部器件q输入输入/输出输出n 53个通用输入/输出(I/O)管脚和1 个专用输入管脚n 24个中断管脚,每个管脚带触发极性选择n 所有输入管脚上带电压滞后和可配置的上下拉器件n 所有输入管脚上可配置输出斜率和驱动强度School of Electrical and InformationMCS9S08DZ60内部结构内部结构n内部内部结结构构内核:内核:中央处理器中央处理器CUP后台调试控制器后台调试控制器BDC断点控制器断点控制器BKP用户闪存用户闪存60k,用于,用于存放用户程序和数据,存放用户程序和数据,在正常运行时为只读在正常运行时为只读4k的的RAM存储器用做存储器用做堆栈、保存中间结果堆栈、保存中间结果及动态数据。及动态数据。2k的的EEROM保存组保存组态、设置信息等半永态、设置信息等半永久数据。久数据。School of Electrical and Information多功能时钟发生器多功能时钟发生器MCGn说明:说明:q多功能时钟发生器(多功能时钟发生器(MCG)模块为)模块为MCU 提供了几个时钟源提供了几个时钟源选项。选项。qMCG 模块中包含模块中包含1 个锁频环(个锁频环(FLL)和和1 个锁相环(个锁相环(PLL),),可以由可以由内部或外部参考时钟内部或外部参考时钟控制控制。q模块可以选择模块可以选择FLL 或或PLL 时钟作为时钟作为MCU 系统时钟,也可以系统时钟,也可以选择内部或外部参考时钟作为选择内部或外部参考时钟作为MCU 系统时钟。无论选择哪系统时钟。无论选择哪个时钟源,它都要通过个时钟源,它都要通过降阶总线分频器降阶总线分频器,该分频器允许生成,该分频器允许生成更低的输出时钟频率。更低的输出时钟频率。qMCG 还控制一个还控制一个外部振荡器外部振荡器(XOSC),以便把晶体或共),以便把晶体或共鸣器用作外部参考时钟。鸣器用作外部参考时钟。School of Electrical and Information系统时钟分配n下面列出了本下面列出了本MCU 中使用的时钟中使用的时钟:q BUSCLK 总线频率始终为总线频率始终为MCGOUT 的一半的一半q LPO 独立的独立的1 kHz 时钟,可以作为时钟,可以作为COP 和和RTC 模块的时钟源模块的时钟源。q MCGOUT MCG 的主输出,为总线频率的两倍的主输出,为总线频率的两倍。q MCGLCLK 在在BUSCLK 被配置为以很低的频率运行的系统中,开发被配置为以很低的频率运行的系统中,开发工具可以选择这一时钟源来加快工具可以选择这一时钟源来加快BDC 通信通信。q MCGERCLK 外部参考时钟,可用作外部参考时钟,可用作RTC 时钟源。它还可以用作时钟源。它还可以用作ADC 和和MSCAN 的备用时钟的备用时钟。q MCGIRCLK 内部参考时钟,可用作内部参考时钟,可用作RTC 时钟源时钟源。q MCGFFCLK 固定频率时钟,可用作固定频率时钟,可用作TPM1 和和TPM2 的时钟源的时钟源。q TPM1CLK TPM1 的外部输入时钟源的外部输入时钟源。q TPM2CLK TPM2 的外部输入时钟源的外部输入时钟源。School of Electrical and Information系统时钟分配School of Electrical and InformationMCG模块的主要特性模块的主要特性n 锁频环锁频环(FLL)q 使用内部使用内部 32-kHz 参考时,全电压和温度范围内参考时,全电压和温度范围内2%的偏差的偏差q 可以使用内部或外部参考控制可以使用内部或外部参考控制FLLn 锁相环锁相环(PLL)q 压控振荡器压控振荡器(VCO)q 模数模数 VCO 分频器分频器q 相位相位/频率检测器频率检测器q 集成环路滤波器集成环路滤波器q 带中断功能的锁定检测器带中断功能的锁定检测器School of Electrical and InformationMCG模块的主要特性模块的主要特性n 内部参考时钟内部参考时钟q 9 个调整位,确保精确度个调整位,确保精确度q 可选择为可选择为 MCU 的时钟源的时钟源n 外部参考时钟外部参考时钟q 外部振荡器控制外部振荡器控制q 具有复位功能的时钟监控器具有复位功能的时钟监控器q 可选择为可选择为 MCU 的时钟源的时钟源n 提供参考分频器提供参考分频器n 所选的时钟源可以除以所选的时钟源可以除以 1 2 4 或或8n 无论在无论在FLL 还是还是PLL 模式中,模式中,BDC 时钟(时钟(MCGLCLK)是一个由)是一个由DCO(数控振荡器)(数控振荡器)输出除以输出除以2 得出的常量。得出的常量。School of Electrical and InformationMCG寄存器寄存器-MCG 控制寄存器1(MCGC1)返回School of Electrical and InformationMCG寄存器寄存器-MCG 控制寄存器 2(MCGC2)返回School of Electrical and InformationMCG寄存器寄存器-MCG 状态和控制寄存器(MCGSC)School of Electrical and InformationMCG寄存器寄存器-MCG Control Register 3(MCGC3)School of Electrical and InformationMCG操作模式操作模式School of Electrical and InformationMCG操作模式操作模式-FEInFLL Engaged Internal(FEI)是)是默认运行模式默认运行模式并且当满并且当满足下列条件时就进入该模式足下列条件时就进入该模式:q CLKS 位写入位写入00q IREFS 位写入位写入1q PLLS 位写入位写入0q RDIV 位写入位写入 000。n因为内部参考时钟频率在修正后应介于因为内部参考时钟频率在修正后应介于31.25 kHz-39.0625 kHz 之间,所以不需要进一步分频。之间,所以不需要进一步分频。q在在 FEI 模式中,模式中,MCGOUT 时钟源自时钟源自FLL 时钟,由内部参考时钟,由内部参考时钟控制。时钟控制。qMCGLCLK 来自来自FLL,PLL 被禁止并处于低功率状态。被禁止并处于低功率状态。q MCGC3,PLL模式禁止,选择FLL选择系统时钟源FLL或PLL选择内部参考时钟作为时钟源School of Electrical and InformationMCG操作模式操作模式-FLL Engaged External(FEE)n当满足下列条件时就进入当满足下列条件时就进入FLL engaged External(FEE)模式:)模式:q CLKS 位写入位写入00q IREFS 位写入位写入 0q PLLS 位写入位写入 0q RDIV 位写入介于位写入介于31.25 kHz-39.0625 kHz 频率范围内的分频参考频率范围内的分频参考时钟。时钟。n在在FEE 模式中,模式中,MCGOUT 时钟来自时钟来自FLL 时钟,由时钟,由外部参考时钟控制外部参考时钟控制。n使能的外部参考时钟可以是外部晶体使能的外部参考时钟可以是外部晶体/谐振器,也可以是另外一个外部谐振器,也可以是另外一个外部时钟源。时钟源。nMCGLCLK 来自来自FLL,PLL 被禁止并处于低功率状态。被禁止并处于低功率状态。选择外部参考时钟作为时钟源MCGC3,PLL模式禁止,选择FLLSchool of Electrical and InformationMCG操作模式操作模式-FLL Bypassed Internal(FBI)n在在FLL Bypassed Internal(FBI)模式中,)模式中,MCGOUT 时钟来自内部时钟来自内部参考时钟,参考时钟,FLL 处于运行状态但其输出时钟未使用。处于运行状态但其输出时钟未使用。n当满足以下条件时就进入当满足以下条件时就进入FLL Bypassed Internal 模式:模式:q CLKS 位写入位写入01q IREFS 位写入位写入1q PLLS 位写入位写入 0q RDIV 位写入位写入000。n由于内部参考时钟频率在修正后应已经介于由于内部参考时钟频率在修正后应已经介于31.25 kHz-39.0625 kHz之间,所以不需要进一步的分频。之间,所以不需要进一步的分频。q LP 位写入位写入 0n在在FLL Bypassed Internal 模式中,模式中,MCGOUT 时钟源自内部参考时时钟源自内部参考时钟。钟。FLL 时钟由内部参考时钟控制。时钟由内部参考时钟控制。nMCGLCLK 来自来自FLL,PLL 被禁止并处于低功率状态。被禁止并处于低功率状态。选择系统时钟源内部参考时钟参考时钟源内部参考时钟MCGC2,在旁路模式中不禁止FLLSchool of Electrical and InformationMCG操作模式操作模式-FLL Bypassed External(FBE)n在在FLL Bypassed External(FBE)模式中,)模式中,MCGOUT 时钟来自外部时钟来自外部参考时钟,参考时钟,FLL 处于运行状态但其输出时钟未使用。处于运行状态但其输出时钟未使用。n当满足以下条件时就进入当满足以下条件时就进入FLL Bypassed External 模式:模式:q CLKS 位写入位写入 10q IREFS 位写入位写入 0q PLLS 位写入位写入 0q RDIV位写入介于位写入介于31.25 kHz-39.0625 kHz 频率范围内的分频频率范围内的分频参考时钟。参考时钟。q LP 位写入位写入 0n在在 FLL Bypassed External 模式中,模式中,MCGOUT 时钟源自时钟源自FLL 时钟。时钟。n使能的外部参考时钟可以是外部晶体使能的外部参考时钟可以是外部晶体/谐振器,也可以是另外一个外部时谐振器,也可以是另外一个外部时钟源。钟源。FLL 时钟由外部参考时钟控制时钟由外部参考时钟控制n MCGLCLK 来自来自FLL,PLL 被禁止处于低功率状态被禁止处于低功率状态MCGC2,在旁路模式中不禁止FLL系统时钟源为外部参考时钟School of Electrical and InformationMCG操作模式操作模式-PLL Engaged External(PEE)n当满足以下条件时就进入当满足以下条件时就进入PLL Engaged External(PEE)模式:)模式:q CLKS 位写入位写入 00q IREFS 位写入位写入 0q PLLS 位写入位写入 1q RDIV 位写入介于位写入介于1 MHz-2 MHz 频率范围内的分频参考时钟。频率范围内的分频参考时钟。n在在 PLL Engaged External 模式中,模式中,MCGOUT 时钟源自时钟源自PLL 时钟,时钟,由外部参考时钟控制。由外部参考时钟控制。n使能的外部参考时钟可以是外部晶体使能的外部参考时钟可以是外部晶体/谐振器,也可以是另外一个外谐振器,也可以是另外一个外部时钟源。部时钟源。n PLL 时钟频率是参考频率(时钟频率是参考频率(RDIV 位所选)和倍频因子(位所选)和倍频因子(VDIV 位所位所选)乘积。选)乘积。School of Electrical and InformationMCG操作模式操作模式-PLL Bypassed External(PBE)n在在PLL Bypassed External(PBE)模式中,)模式中,MCGOUT 时钟源自时钟源自外部参考时钟,外部参考时钟,PLL 处于运行状态但其输出时钟未使用。该模式对处于运行状态但其输出时钟未使用。该模式对允许允许PLL 获得目标频率非常有用。获得目标频率非常有用。n当满足以下条件时就进入当满足以下条件时就进入PLL Bypassed External 模式:模式:q CLKS 位写入位写入 00q IREFS 位写入位写入 0q PLLS 位写入位写入 1q RDIV 位写入介于位写入介于1 MHz-2 MHz 频率范围的分频参考时钟。频率范围的分频参考时钟。q LP 位写入位写入0n在在PLL Bypassed External 模式中,模式中,MCGOUT 时钟源自外部参考时钟源自外部参考时钟。时钟。n使能的外部参考时钟可以是外部晶体使能的外部参考时钟可以是外部晶体/谐振器,也可以是另外一个外谐振器,也可以是另外一个外部时钟源。部时钟源。nPLL 时钟频率是参考频率(时钟频率是参考频率(RDIV 位所选)和倍频因子(位所选)和倍频因子(VDIV 位所位所选)乘积。如果使能选)乘积。如果使能 BDM,MCGLCLK 值就是值就是DCO 除以除以2(开放(开放环路模式)的得数。环路模式)的得数。School of Electrical and InformationMCG操作模式操作模式-Bypassed Low Power Internal(BLPI)n当满足以下条件时就进入当满足以下条件时就进入Bypassed Low Power Internal(BLPI)模式:模式:q CLKS 位写入位写入 01q IREFS 位写入位写入 1q PLLS 位写入位写入 0q LP 位写入位写入 1q BDM 模式未活动模式未活动n在在Bypassed Low Power Internal 模式中,模式中,MCGOUT 时钟源自内时钟源自内部参考时钟。部参考时钟。n在在 BLPI 模式中,模式中,PLL 和和FLL 总是无效的,且总是无效的,且MCGLCLK 不能用于不能用于BDC 通信。通信。n如果如果 BDM 进入活动状态,该模式将切换为由进入活动状态,该模式将切换为由PLLS 位状态决定的另位状态决定的另外一种内部旁路模式。外一种内部旁路模式。MCGC2,在旁路模式中禁止FLL或PLLSchool of Electrical and InformationMCG操作模式操作模式-Bypassed Low Power External(BLPE)n当满足以下条件时就进入当满足以下条件时就进入Bypassed Low Power External(BLPE)模式:)模式:q CLKS 位写入位写入10q IREFS 位写入位写入 0q PLLS 位写入位写入 0 或或1q LP 位写入位写入 1q BDM 模式未活动模式未活动n在在Bypassed Low Power External 模式中,模式中,MCGOUT 时钟源自外时钟源自外部参考时钟。使能的外部参考时钟可以是外部晶体部参考时钟。使能的外部参考时钟可以是外部晶体/谐振器,也可以谐振器,也可以是另外一个外部时钟源。是另外一个外部时钟源。n在在BLPE 模式中,模式中,PLL 和和FLL 总是无效的,且总是无效的,且MCGLCLK 不能用于不能用于BDC 通信。如果通信。如果BDM 进入活动状态,该模式将切换到由进入活动状态,该模式将切换到由PLLS 位状位状态决定的另外一种外部旁路模式。态决定的另外一种外部旁路模式。School of Electrical and InformationMCG操作模式操作模式-STOPn每当每当MCU 进入进入STOP 状态就进入状态就进入STOP 模式。在该模式中,模式。在该模式中,FLL 和和PLL 被禁止,所有被禁止,所有MCG时钟信号静止,但下列情况除外:时钟信号静止,但下列情况除外:n当满足下列条件时,当满足下列条件时,MCGIRCLK 将在停止模式中使能:将在停止模式中使能:q IRCLKEN=1q IREFSTEN=1n当满足下列条件时,当满足下列条件时,MCGERCLK 将在停止模式中使能:将在停止模式中使能:q ERCLKEN=1q EREFSTEN=1MCGC1MCGC2School of Electrical and InformationMCG操作模式操作模式School of Electrical and InformationMCG初始化初始化n初始化说明:初始化说明:q由于由于MCG 在复位后处于在复位后处于FEI 模式模式,复位后可以直接切换到的,复位后可以直接切换到的MCG 模式有模式有FEE、FBE 和和FBI模式模式;要直接切换到任何其他模式需要要直接切换到任何其他模式需要首先配置首先配置MCG 为这三种初始模式中的一种为这三种初始模式中的一种。n注意注意:q必须留意检查必须留意检查MCGSC 寄存器中标志各个模式中所有配置更改的相寄存器中标志各个模式中所有配置更改的相关状态位关状态位School of Electrical and InformationMCG初始化初始化n从从FEI 到到FEE 或或FBE 模式转换模式转换n步骤:步骤:q1.使能在使能在MCGC2 中适当的位来使能外部时钟源;中适当的位来使能外部时钟源;q2.写至写至MCGC1 以选择时钟模式;以选择时钟模式;qFEE 模式:模式:n适当设置适当设置RDIV、清除、清除IREFS 位,以切换到外部参考,让位,以切换到外部参考,让CLKS位停留在位停留在00,这样就可以把这样就可以把FLL 输出选择为系统时钟源。输出选择为系统时钟源。qFBE模式:模式:n清除清除IREFS 位以切换到外部参考,将位以切换到外部参考,将CLKS 位更改为位更改为10,这样就可以把外部,这样就可以把外部参考选择为系统时钟源。参考选择为系统时钟源。n这里还应根据外部参考频率适当设置这里还应根据外部参考频率适当设置RDIV 位,因为尽管位,因为尽管FLL 被旁通,但它仍被旁通,但它仍然处于然处于FBE 模式。模式。q 内部参考可以通过设置内部参考可以通过设置IRCLKEN 位保持运行。如果应用中需要在内位保持运行。如果应用中需要在内部和外部模式之间来回切换,这就十分有用。为了实现最低功耗,当处部和外部模式之间来回切换,这就十分有用。为了实现最低功耗,当处于外部时钟模式时应禁止内部参考。于外部时钟模式时应禁止内部参考。School of Electrical and InformationMCG初始化初始化n从从FEI 到到FEE 或或FBE 模式转换模式转换q1.使能在使能在MCGC2 中适当的位来使能外部时钟源;中适当的位来使能外部时钟源;q2.写至写至MCGC1 以选择时钟模式;以选择时钟模式;q3.在设置了正确的配置位后,等待在设置了正确的配置位后,等待MCGSC 寄存器中受影响的位适当寄存器中受影响的位适当地改变,因为它们反应了地改变,因为它们反应了MCG 已经切换到正确模式。已经切换到正确模式。n 如果第如果第1 步中已经设置了步中已经设置了ERCLKEN,或者,或者MCG 处于处于FEE、FBE、PEE、PBE 或或BLPE 模式,且第模式,且第1 步中也设置了步中也设置了EREFS,等待,等待OSCINIT 位置位,位置位,OSCINIT 位的置位表明外部时钟源已经完成初始位的置位表明外部时钟源已经完成初始化周期且稳定下来。化周期且稳定下来。n 如果是如果是FEE 模式,一定要确保在进一步操作前,模式,一定要确保在进一步操作前,IREFST 位已经清位已经清除且除且LOCK 位置位。位置位。n 如果是如果是FBE 模式,请确保模式,请确保IREFST 位已经清除,位已经清除,LOCK 位已经置位,位已经置位,CLKST 位已经更改为位已经更改为10,这样表明已经正确选择了外部参考时钟。,这样表明已经正确选择了外部参考时钟。School of Electrical and InformationMCG初始化初始化n要从要从FEI 时钟模式转换到时钟模式转换到FBI 时钟模式,请按下列步骤操作:时钟模式,请按下列步骤操作:q1.将将CLKS 位更改为位更改为01,这样内部参考时钟就可以选择为系统时,这样内部参考时钟就可以选择为系统时钟源。钟源。q2.等待把等待把MCGSC 寄存器中的寄存器中的CLKST 位更改为位更改为01,表明已经正确,表明已经正确选择了内部参考时钟。选择了内部参考时钟。School of Electrical and InformationMCG初始化代码初始化代码实例实例n要求:从要求:从FEI 转换到转换到PEE 模式:外部晶体模式:外部晶体=8 MHz、总线、总线频率频率=16MHzSchool of Electrical and InformationMCG初始化代码初始化代码实例实例n从从FEI 转换到转换到PEE 模式:外部晶体模式:外部晶体=8 MHz、总线频率、总线频率=16 MHz 过程如下:过程如下:n(1)首先,)首先,FEI 必须转换到必须转换到FBE 模式:模式:na)MCGC2=0 x36(%00110110)q BDIV 位位7 和和6)设置为)设置为%00 或除以或除以1。q RANGE(位(位5)设置为)设置为1,因为,因为8 MHz 的频率属于高频范围。的频率属于高频范围。q HGO(位(位4)设置为)设置为1,为高增益运行配置外部振荡器。,为高增益运行配置外部振荡器。q EREFS(位(位2)设置为)设置为1,因为正在使用晶体。,因为正在使用晶体。q ERCLKEN(位(位1)设置为)设置为1,确保外部参考时钟处于活动状态。,确保外部参考时钟处于活动状态。nb)循环检测,直到循环检测,直到MCGSC 中的中的OSCINIT(位(位1)是)是1,表明,表明EREFS 位选择的晶体位选择的晶体已经完成初始化。已经完成初始化。nc)MCGC1=0 xB8(%10111000)q CLKS(位(位7 和和6)设置为)设置为%10,以便将,以便将外部参考时钟外部参考时钟选择为系统时钟源。选择为系统时钟源。q RDIV(位(位 5-3)设置为)设置为%111 或或除以除以128。nd)循环检测,直到循环检测,直到MCGSC 中的中的IREFST(位(位4)是)是0,表明外部参考是参考时钟的,表明外部参考是参考时钟的当前源。当前源。ne)循环检测,直到循环检测,直到MCGSC 中的中的CLKST(位(位3 和和2)是)是10,表明已经选择外部参考,表明已经选择外部参考时钟为时钟为MCGOUT 馈电。馈电。School of Electrical and InformationMCG初始化代码初始化代码实例实例n(2)然后,从然后,从FBE 模式转换到模式转换到BLPE 模式:模式:na)MCGC2=0 x3E(%00111110)q MCGC2 中的中的LP(位(位3)为)为1(已进入(已进入BLPE 模式)模式)nc)MCGC1=0 x98(%10011000)q RDIV(位(位 5-3)设置为)设置为%011 或除以或除以8,因为,因为8 MHz/8=1 MHz,这在,这在PLL 要求的要求的1MHz-2 MHz 频率范围内。在频率范围内。在BLPE 模式中,模式中,RDIV 的配置不重要,的配置不重要,因为因为FLL 和和PLL 都被禁止。更改它们只会为都被禁止。更改它们只会为PLL 建立在建立在PBE 模式中使用的分频模式中使用的分频器。器。nd)MCGC3=0 x48(%01001000)q PLLS(位(位6)设置为)设置为1,选择,选择PLL。在。在BLPE 模式中,更改该位只会使模式中,更改该位只会使MCG 准备在准备在PBE 模式中的模式中的PLL 使用。使用。q VDIV(位(位 3-0)设置为)设置为%1000 或乘以或乘以32,因为,因为1 MHz 参考参考*32=32 MHz。在在BLPE 模式中,模式中,VDIV 位的配置不重要,因为位的配置不重要,因为PLL 被禁止。更改它们只建立被禁止。更改它们只建立PBE 模式中的模式中的PLL 使用乘积因子。使用乘积因子。ne)循环检测,直到循环检测,直到MCGSC 中的中的PLLST(位(位5)置位,表明)置位,表明PLLS 时钟的当前源是时钟的当前源是PLL。School of Electrical and InformationMCG初始化代码初始化代码实例实例n3.然后,从然后,从BLPE 模式转换到模式转换到PBE 模式:模式:qa)将将MCGC2 中的中的LP(位(位3)清除至)清除至0,切换到,切换到PBE 模式。模式。qb)循环检测,直到循环检测,直到MCGSC 中的中的LOCK(位(位 6)置位,表明)置位,表明PLL 已经获已经获得锁定。得锁定。n4.最后,从最后,从PBE 模式转换到模式转换到 PEE 模式:模式:qa)MCGC1=0 x18(%00011000)q MCGSC1 中的中的CLKS(位(位7 和和6)设置为)设置为%00,以便将,以便将PLL 输出选输出选择为系统时钟源。择为系统时钟源。qb)循环检测,直到循环检测,直到MCGSC 中的中的CLKST(位(位3 和和2)是)是%11,表明已经,表明已经选择选择PLL 输出,在当前时钟模式中为输出,在当前时钟模式中为MCGOUT 馈电。馈电。q 这样,这样,RDIV 除以除以8、BDIV 除以除以1、VDIV 乘以乘以32,MCGOUT=(8 MHz/8)*32/1=32MHz,总线频率是,总线频率是MCGOUT/2 或或16 MHz。School of Electrical and InformationMCG初始化代码初始化代码实例实例void MCG_Init(void)/disable COP SOPT1=0 x20;/disable COP,enable stop mode/*Select High Range,High Gain,Bus divided by 1,Oscillator,ERCLK enabled*/MCGC2=0 x36;/00110110,从从FEI模式转换成模式转换成FBE模式模式 while(!MCGSC_OSCINIT);/循环检测,直到循环检测,直到MCGSC中的中的OSCINIT为为1,表明选择的晶,表明选择的晶体已经能够完成初始化体已经能够完成初始化/*Select External Clock as bus clock source,Reference divided by 128,Reference=external*/MCGC1=0 xB8;/10111000/*wait for Reference Status bit to update*/while(!MCGSC_IREFST);/*Wait for clock status bits to update*/while(MCGSC_CLKST!=0b10);/*NOW IN FBE MODE*/MCGC2=0 x3E;/00111110 /*NOW IN BLPE MODE*/*Change RDIV for PLL reference*/MCGC1=0 x98;School of Electrical and InformationMCG初始化代码初始化代码/Select the VCO divider and PLL*/MCGC3=0 x48;/01001000;1M*32=32MHZ/Wait for PLL status to update*/while(!MCGSC_PLLST);/Clear