飞思卡尔8位单片机MC9S82GP32的其他功能模块.ppt_第1页
飞思卡尔8位单片机MC9S82GP32的其他功能模块.ppt_第2页
飞思卡尔8位单片机MC9S82GP32的其他功能模块.ppt_第3页
飞思卡尔8位单片机MC9S82GP32的其他功能模块.ppt_第4页
飞思卡尔8位单片机MC9S82GP32的其他功能模块.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二章 GP32的其他功能模块,主要内容 CONFIG寄存器 时钟发生模块CGM与锁相环PLL 中断 复位与系统集成模块 低功耗模式与看门狗功能 监控模块MON,嵌入式应用技术基础教程课件,12.1 CONFIG寄存器,12.1 CONFIG寄存器,(1)CONFIG2 CONFIG2寄存器只有低两位有定义,CONFIG2的地址是:$001E,定义为:,嵌入式应用技术基础教程课件,D1OSCSTOPENB位:振荡器STOP模式下允许位。OSCSTOPENB=1,振荡器在STOP模式下也正常工作。这一点对于时基模块在STOP模式下产生周期性的唤醒非常有用。OSCSTOPENB=0,在STOP模式下禁止振荡器工作。 D0SCIBDSRC位:SCI波特率时钟源控制位。SCIBDSRC控制SCI的时钟源。这个位的设置影响SCI操作的频率。SCIBDSRC=1,SCI用内部总线时钟,反之,SCI用外部振荡器时钟。,12.1 CONFIG寄存器,(2)CONFIG1 CONFIG1的地址是:$001F,定义为:,嵌入式应用技术基础教程课件,D7COPRS位:COP速度选择位。COPRS选择COP溢出的范围。 D6LVISTOP位:STOP模式下LVI允许位。 D5LVIRSTD位:LVI复位禁止位。 D4LVIPWRD位:为LVI电源禁止位。 D3LVI5OR3位:LVI的5V或者3V操作模式选择位。 D2SSREC位:快速STOP模式恢复选择位。 D1STOP位:STOP指令允许位。STOP位决定是否允许STOP指令。 D0COPD位:COP禁止位。COPD位决定是否禁止COP模块。,返回,12.2 时钟发生模块CGM与锁相环PLL,12.2 时钟发生模块CGM与锁相环PLL,12.2.1 锁相环PLL的基本概念 (1)锁相技术与频率合成技术 锁相技术:就是实现相位自动控制的一门科学,利用它可以得到频带范围宽、波道多、稳定度高、精度高的频率源。 频率合成技术:就是利用一个或几个具有高稳定度和高精度的频率源(一般由晶体振荡器产生),通过对它们进行加减(混频),乘(倍频),除(分频)运算,产生大量的具有相同频率稳定度和频率精度的频率信号。锁相环频率合成技术在通讯、雷达、导航、宇航、遥控遥测、电子技术测量等领域都有广泛的应用。 为了得到稳定度高、精度高的频率源,通常采用频率合成技术。频率合成技术主要有两种:直接频率合成技术和间接频率合成技术。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(1)锁相技术与频率合成技术,直接频率合成技术:是将一个或几个晶体振荡器产生的频率信号通过谐波发生器产生一系列频率信号,然后再对这些频率信号进行倍频、分频和混频,最后得到大量的频率信号。 其优点是:频率稳定度高,频率转换时间短(可达微秒量级),能做到很小的频率间隔。缺点是:系统中要用到大量的混频器、滤波器等,从而导致体积大,成本高,安装调试复杂,故只用于频率精度要求很高的场合。 间接频率合成技术:是利用锁相技术来产生大量的具有高稳定度和高精度的频率源。由于间接频率合成器的关键部件是锁相环,故通常称为锁相环频率合成器。由于锁相环频率合成器的主要部件都易于集成,一般只加一个分频器和一个一阶低通滤波器,故其具有体积小、重量轻、成本低、安装和调试简单等优点。锁相环频率合成器在性能上逐渐接近直接频率合成器,所以它在电子技术中得到了日益广泛的应用,并在应用中得到迅速发展。,12.2.1 锁相环PLL的基本概念,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(2)锁相环频率合成器的基本原理,锁相环频率合成器的原理框图,12.2.1 锁相环PLL的基本概念,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,锁相环频率合成器的各个部件,基准频率源:基准频率源提供一个稳定频率源,其频率为fr,一般用精度很高的石英晶体振荡器产生,是锁相环的输入信号。 签相器:签相器是一个误差检测元件。它将基准频率源的输出信号fr的相位与压控振荡器输出信号fo的相位相比较,产生一个电压输出信号ud,其大小取决于两个输入信号的相位差。 低通滤波器:低通滤波器的输入信号是签相器的输出电压信号ud,经过低通滤波器后ud的高频分量被滤除,输出控制电压uo去控制压控振荡器。 压控振荡器(VCO):压控振荡器的输出信号频率fo与它的输入控制电压uo成一定比例,而分频器将锁相环的输出信号fo反馈给签相器,形成一个负反馈,从而使输入信号和输出信号之间的相位差保持恒定。 反馈分频器:分频器为环路提供一种反馈机制,当分频系数N=1时,锁相环系统的输出信号频率fo等于输入信号频率fr:fo=fr 信号锁定后有: fo=ff=fr 当分频器的分频系数N1,有: fo=Nff 即ff = fo/ N 环路锁定后有: ff = fr fo=Nff = Nfr,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(1)CGM内部结构框图,12.2.2 MC68HC908GP32的CGM结构及外部连接,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,CGM内部结构,晶体振荡电路:晶体振荡电路通过外接石英或陶瓷振荡器产生稳定不变的时钟信号CGMXCLK,CGMXCLK直接输出给系统集成模块SIM和AD转换器。同时也输出到时钟选择模块。CGMXCLK经过缓冲后输出到锁相环频率合成器,作为PLL信号源,这一路信号称为CGMRCLK。 锁相环频率合成器:PLL电路通过压控振荡器(VCO)产生CGMVCLK信号,输出到时钟选择电路。其频率可通过软件编程控制。图中CGMXFC为接滤波电路的引脚。 时钟选择电路:时钟发生模块的输出信号CGMOUT有两种来源:直接采用晶振电路产生的CGMXCLK信号二分频,也可以采用压控振荡器(VCO)产生CGMVCLK信号二分频,时钟选择电路可以通过软件编程决定采用那种信号来源。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(2)CGM的I/O信号,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(3)CGM的外部连接,在典型应用情况下,CGM模块需要9个外接器件,其中晶振电路中需要5个,PLL电路需要2到4个。如右图所示。有了这些连接,从硬件角度看,MCU就可以正常工作了。,晶振电路采用的元件有:晶体X1,电容C1,C2,反馈电阻RB,串行电阻RS。 串行电阻RS,C1,C2的取值可参考晶振厂家给出的典型值,电容一般取10-36p,C1与C2值应该略有差异,以利于晶振电路起振。典型情况下,RS取330K,RB为10M。晶振采用32.768KHZ。 PLL电路采用的元件有:跨接电容,用于稳定锁相环电源引脚,一般取0.1uF左右。滤波网络,为芯片内部的锁相环电路提供误差电平,元件参数可参考上图。 注:如用户不打算在应用中使用锁相环电路部分,这一部分电路可以不接,让CGMXFC引脚悬空。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,12.2.3 CGM的编程基础,(1)PLL控制寄存器(PLL Control RegisterPCTL) PCTL的地址:$0036,定义为:,D7 PLLIE位:PLL中断使能位(PLL Interrupt Enabled Bit)。该位可读写,决定当PLL带宽控制寄存器的LOCK标志位反转时是否产生CPU中断。 D6 PLLF 位:PLL中断标志位(PLL Interrupt Flag Bit)。该位只读。当LOCK标志位反转时被置位。 D5 PLLON位 :PLL开关检测位(PLL On Bit)。该位为可读写,用于启动PLL电路并激活VCO时钟CGMVCLK,当VCO正作为基准时钟源时,PLLON不能被清零(BCS=1),要关闭PLL应该先不选PLL为时钟源(BCS=0),再清除PLLON位。MCU上电复位后此位置1。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,嵌入式应用技术基础教程课件,D4 BCS 位:CGM基时钟选择位(Base Clock Select Bit)。该位为可读写,用于决定CGM模块的输出信号CGMOUT的输入信号源。BCS=1,选择PLL电路为时钟源,CGMVCLK二分频后驱动CGMOUT;BCS=0,选择晶振为时钟源,CGMXCLK二分频后驱动CGMOUT。 D3D2 PRE1PRE0:预分频位(Prescaler Program Bits)。这两位为可读写。设置预分频器的分频因子P ,预分频器的分频因子P(由此得到预分频系数NP=2P)与PRE1、PRE0关系如下: PRE1、PRE0 = 00 P=0 NP=1 (20) = 01 P=1 NP=2 (21) = 10 P=2 NP=4 (22) = 11 P=3 NP=8 (23) D1D0 VPR1VPR0:VCO的E选择位(VCO Power-of-Two Range Select Bits)。这两位为可读写。设置VCO模块的参数E,控制参考频率。E与VPR1、VPR0关系如下: VPR1、VPR0 = 00 E=1 (20) = 01 E=2 (21) = 10 E=4 (22) = 11 E=8 (23) (不使用),(1)PLL控制寄存器(PLL Control RegisterPCTL),12.2 时钟发生模块CGM与锁相环PLL,(2)PLL带宽控制寄存器(PLL Bandwidth Control RegisterPBWC) PCTL的地址:$0036,定义为:,12.2.3 CGM的编程基础,D7 AUTO位:自动带宽控制位(Automatic Bandwidth Control Bit)。该位可读写,用于选择自动或手动带宽模式。AUTO=1,自动方式;AUTO=0,手动方式。 D6 LOCK位:Lock指示位(Lock Indicator Bit)。当AUTO位为1时(设为自动方式),LOCK为只读位,且当VCO的时钟CGMVCLK完成锁定(工作在程序设定频率)后置1,表示时钟稳定。当AUTO位为0时(设为手动方式),LOCK始终读出为0,无意义。 D5 ACQ#位:获取模式位(Acquisition Mode Bit)。=1,跟踪模式; =0,获取模式。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,12.2.3 CGM的编程基础,(3)PLL倍频选择寄存器(PLL Multiplier Control RegisterPMSH、PMSL),PMSH、PMSL的地址分别为:$0038、$0039,设置分频模块的分频系数。PMSH的高4位没有定义,始终为0。PMSH的低4位与PMSL一起组成12位的分频因子,记为MUL11MUL0,它们决定了VCO电路的反馈模块的分频因子N的高4位。由于分频因子N不能为0,即使设置为0,系统也会默认为1。复位时N=64(即:PMSH:PMSL=$0040)。注意:倍频因子寄存器有内部的保护机制,当PLLON=1时,PMSH:PMSL不能被写入。即对PMSH:PMSL的写入操作应当在PLL电路关闭的情况下,PLL电路工作后不能改变PMSH:PMSL的值。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,12.2.3 CGM的编程基础,(4)PLL VCO范围选择寄存器(PLL VCO Range Select RegisterPVRS),PVRS的地址是:$003A,功能是对VCO电路进行设置。其8位分别记为:VRS7VRS0。这8位均为可读可写位,确定VCO输出频率范围系数L,对PVRS的写操作只能在PLL关闭时进行,当打开PLL (PCTL中的PLLON=1)时PVRS不能被写。在PVRS中写入$00将禁止PLL电路并清除PLL控制寄存器PCTL中BCS位。复位时L=64(即:PVRS=$40)。同样要注意,VCO范围选择寄存器有内部保护机制,当PLL电路打开(PLLON=1)时,寄存器为写保护。PLL VCO范围选择寄存器必须正确初始化,否则PLL电路不能正确完成锁相。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,12.2.3 CGM的编程基础,(5)PLL 参考分频因子寄存器(PLL Reference Divider Select RegisterPRDS),PRDS的地址是:$003B,功能是设置参考分频因子R。PRDS的高4位未定义,低4位为参考分频因子R。该寄存器最低位缺省为1。,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL,(1)PLL参数计算 选择希望的总线频率 fBUSDES 计算希望得到的压控振荡器VCO频率(是总线频率的4倍):fVCLKDES=4fBUSDES 选择PLL参考时钟频率fRCLK及参考时钟的分频因子R。 计算压控振荡器VCO分频因子:N=(R fVCLKDES)/fRCLK,四舍五入取整。 求预分频器分频因子P。 计算检验压控振荡器VCO的输出频率:fVCLK=(2PN/R)/fRCLK,fBUS= fVCLK/4。,12.2.4 PLL参数计算与编程步骤,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL, 选择压控振荡器VCO的E:若fVCLK9.8304106,E=0。 若9.8304106fVCLK19.6608106,E=1。 若19.6608106fVCLK39.3216106,E=2。 选择压控振荡器VCO的L:L=fVCLK/(2EfNOM),四舍五入取整,其中fNOM=38400H 计算检验压控振荡器VCO的中心频率fVRS。中心频率是PLL模块能够达到的最大与最小频率的中点:fVRS=(L2E)fNOM,|fVRS- fVCLK |(fNOM2E)/2 通过比较fVCLK、fVRS、fVCLKDES验证P、R、N、E和L。fVCLK必须处于fVCLKDES的噪声容限内,且fVRS必须尽量接近fVCLK。超过推荐的最大总线频率或VCO频率,可能损坏MCU。,(1)PLL参数计算,嵌入式应用技术基础教程课件,12.2 时钟发生模块CGM与锁相环PLL, 禁止PLL:清零PLL控制寄存器PCTL 将P、E写入PCTL 将N写入PMSH、PMSL 将L写入PVRS 将R写入PRDS 置PCTL.PLLON=1,启动PLL电路并激活VCO时钟CGMVCLK 置PBWC. AUTO=1 (即:自动带宽控制位),自动方式 置PCTL.BCS=1,选择PLL为时钟源,CGMOUT=CGMVCLK/2,嵌入式应用技术基础教程课件,(2)编程步骤,12.2 时钟发生模块CGM与锁相环PLL,(1)汇编语言 ;PLL编程 CLR PCTL ;禁止PLL:清零PLL控制寄存器PCTL MOV #$01,PCTL ;将P、E写入PCTL MOV #$01,PMSH ;将N写入PMSH、PMSL MOV #$2C,PMSL MOV #$80,PMRS ;将L写入PMRS MOV #$01,PRDS ;将R写入PRDS BSET 5,PCTL ;置PCTL.PLLON=1,启动PLL电路 BSET 7,PBWC ;PBWC自动带宽控制位=1 BSET 4,PCTL ;PCTL.BCS=1,嵌入式应用技术基础教程课件,12.2.5 初始化及PLL编程实例,12.2 时钟发生模块CGM与锁相环PLL,(2)08C语言 PCTL=0x00; /禁止PLL:清零PLL控制寄存器PCTL PCTL=0x01; /将P、E写入PCTL,置VCO的参考频率为2 PMSH=0x01; /将N写入PMSH、PMSL,置VCO的倍频因子为$12C PMSL=0x2C; PMRS=0b10000000; /将L写入PMRS,置VCO的输出频率范围系 / 数为$80 RDS=0x01; /将R写入PRDS PCTL|=15; /置PCTL.PLLON=1,启动PLL电路 PBWC|=17; /PBWC自动带宽控制位=1,选择自动控制方式 PCTL|=14; /PCTL.BCS=1,选择PLL电路为时钟源,嵌入式应用技术基础教程课件,12.2.5 初始化及PLL编程实例,返回,12.3 中断,12.3 中断,12.3.1 中断源与中断向量地址 (1)GP32单片机的中断源 GP32单片机有25个中断源,按优先级从高到低的顺序分别是: 复位中断(1个)、SWI指令中断(1个)、引脚中断(1个)、CGM中断(1个)、定时器1中断(3个)、定时器2中断(3个)、SPI中断(4个)、SCI中断(8个)、键盘输入中断(1个)、ADC转换完成中断(1个)和时基中断(1个)。这里把复位也列为一个特殊的中断,因为它也具有向量地址,后面对复位将有较详细的表述。 25个中断源只有18个中断向量,有的是几个中断源使用同一个中断向量,表12-3给出了 MC68HC908GP32中断源及中断向量地址。 GP32内部使用3个中断状态寄存器:INT1(地址为$FE04)、INT2(地址为$FE05)和INT3(地址为$FE06)来保存中断状态,但一般编程时并不使用这些寄存器,因此此处不做介绍。,嵌入式应用技术基础教程课件,12.3 中断,(2)中断的过程 CPU内的寄存器PCL、PCH、X、A、CCR依次进栈(注意H未被保护,这是为了与HC05系列MCU兼容,所以必要时,H应由用户中断服务程序保护); 自动关总中断(即相当于自动执行SEI指令),防止其他中断进入; 从相应的中断向量地址取出中断向量(即中断服务程序的入口地址)送给PC; 执行中断服务程序,直到执行中断返回指令RTI。RTI指令从堆栈中依次弹出CCR、A、X、PCH、PCL,使CPU返回原来中断处继续执行; 若中断过程也允许响应新的中断,可在中断服务程序中用CLI指令开放中断。一般不建议这样做,可用其他编程技巧处理相关问题。,12.3.1 中断源与中断向量地址,嵌入式应用技术基础教程课件,12.3 中断,12.3.2 IRQ引脚中断,嵌入式应用技术基础教程课件,IRQ状态寄存器INTSCR(IRQ Status and Control Register)的地址是:$0013,定义为:,D7D4位:未定义。 D3 IRQF位:IRQ中断标志位。IRQF=1,已发生IRQ中断,反之未发生IRQ中断。该位只读。 D2 ACK位:IRQ中断请求应答位。该位只写,读出总是0。 D1 IMASK位:IRQ中断屏蔽位。 IMASK=1,禁止IRQ中断; IMASK=0,允许IRQ中断。 D0 MODE位:IRQ边沿/低电平触发模式选择位。MODE=1,IRQ#引脚负跳变及低电平中断,MODE=0,IRQ#引脚仅负跳变中断。,12.3 中断,断点模块(break module,BRK)可以在设定的地址处产生一个中断,该中断称为断点中断(Break interrupt),它使CPU中止当前程序的执行而进入断点中断服务程序。 断点中断可由下述2种方式引起: 程序计数器PC值与断点地址寄存器的内容相匹配时产生断点中断。 用软件向断点状态与控制寄存器BRKSCR的BRKA位写1时产生断点中断。 当断点中断发生后,CPU在结束当前指令后,将一条SWI指令装入内部指令寄存器作为下一条指令执行。这样就如同发生一个软件中断,断点中断向量地址是$FFFC和$FFFD,与软件中断SWI指令产生的中断是同一个中断向量地址。实际上,即使是调试工具的开发也极少单独使用SWI指令,而是设置断点中断产生SWI中断,在中断例程中,将当前MCU工作状态发送给PC机。 从编程角度,断点模块BRK涉及断点状态控制寄存器BRKSCR(Break Status and Control Register)与16位断点地址寄存器(BRKH、BRKL)。,12.3.3 断点模块BRK与软件中断SWI,嵌入式应用技术基础教程课件,返回,12.4 复位与系统集成模块,12.4 复位与系统集成模块,嵌入式应用技术基础教程课件,12.4.1 复位 复位使MCU进入到开始状态,从复位向量地址($FFFE$FFFF)取得即将开始执行程序的地址,由此地址开始执行。 (1)从是否上电来看,分为上电复位与热复位: 上电复位是指原来芯片并未加电(处于所谓冷状态),给芯片加电后,芯片复位。 热复位是指芯片本来就处于上电状态,由于内部或外部原因引起的复位,复位后,MCU迅速停止当前正在执行的指令,有关寄存器恢复到复位状态值,从地址$FFFE$FFFF取出两字节的复位向量送到程序计数器PC。 (2)从引起复位的信号来看,有外部复位与内部复位: 外部复位是指逻辑低电平加到芯片的引脚一段时间后所产生的复位。IRQ#引脚也是内部复位的输出端。 内部复位是指芯片的内部复位源将芯片的引脚拉低32个CGMXCLK周期所产生的复位。,12.4 复位与系统集成模块,(1)SIM模块的主要功能 1)SIM模块的主要功能有: 总线时钟的产生和控制,包括STOP、等待、复位、断点的进入和恢复,内部时钟控制; 用户复位控制,包括上电复位和COP溢出; 中断控制,包括识别时序、仲裁控制时序、中断地址产生; CPU允许和禁止时序; 可扩展到128个中断源的模块结构。,嵌入式应用技术基础教程课件,12.4.2 系统集成模块SIM,12.4 复位与系统集成模块,时钟生成器产生一个时钟信号输出到SIM来产生系统时钟,这个时钟信号可以来自外部振荡器,也可以来自内部锁相环电路,可分3种情况: 在用户模式下,内部总线的频率可以是晶体振荡器的输出(CGMXCLK)或锁相环电路输出(CGMVCLK)的4分频; 当上电复位模块或者低电压禁止模块产生复位信号时,CPU内部时钟保持复位状态直到经过4096个CGMCLK时钟。在这期间,引脚被SIM设置为低。内部总线也在4096个CGMCLK时钟之后开始工作; 在WAIT模式下,CPU时钟并不工作,SIM为其他模块提供时钟。,嵌入式应用技术基础教程课件,2)SIM和时钟生成器为CPU提供各种时钟信号。,12.4 复位与系统集成模块,(2)SIM复位状态寄存器(SIM Reset Status RegisterSRS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论