资源描述
,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Copyright Yang Ming.2011.,Electronics and Information Engineering Department of Huazhong University of Science and Technology,Wuhan,Hubei 430074,P.R.China,Slide,*,Freescale,单片机原理及应用,Freescale HCS08,单片机内部时钟生成器,Slide,1,Slide,1,Freescale HCS08,单片机内部时钟生成器,Contents and Objectives,:,理解,S08,系列,MCU,的内部时钟发生器模块的原理;,了解,ICG,模块寄存器的功能;,掌握,ICG,模块应用设计;,初步认识“,对,MCU,外部管脚,/,内部模块的控制,正是,通过,Regs,的控制,来实现”,内部结构,ICG,复用,PTG6,和,PTG5,两个,I/O,引脚,用于产生,MC9S08AW60,系列,MCU,内部模块时钟。,CPU,、,RTI,、,TPM,、,IIC,、,SCI,、,ADC,、,RAM,、,Flash,等模块的时钟均由,ICG,模块产生,Slide,2,4.1 AW60,的内部时钟生成器模块概述,内部结构,ICG,模块为内部其他模块提供的时钟源有,ICGOUT,、,FFE,、,ICGLCLK,、,ICGERCLK,等,。,ICGOUT,输出时钟即,CPU,时钟,总线时钟为,ICGOUT,时钟,2,分频,。,MCU,内部的一些模块可以选择不同时钟源作为模块时钟,Slide,3,4.1 AW60,的内部时钟生成器模块概述,除了,关断(,Off,)模式外,,ICG,具有,4,种工作模式,:,自供,时钟,Self-Clocked,(,SCM,),启用,FLL,且采用内部时钟源模式(,FEI,,,FLL Engaged Internal,),旁路,FLL,且采用外部时钟源模式(,FBE,,,FLL Bypassed,External,),启用,FLL,且采用外部时钟源模式(,FEE,,,FLL Engaged External,),Slide,4,4.2 ICG,模块的工作模式,除了,关断(,Off,)模式外,,ICG,具有,4,种工作模式,:,自供,时钟,Self-Clocked,(,SCM,),SCM,模式是,MCU,的,默认工作模式,在复位后立即进入,。,在,这种模式下,,FLL,处于开环状态,,MCU,不需要外接晶振,,所以晶振引脚,PTG6,和,PTG5,均可作为通用,I/O,引脚,。,ICGOUT,的频率,f,Self_reset,通常为,8MHz,左右,这样无须用户编程就可以快速、可靠地得到,4,MHz,的总线频率,。,Slide,5,4.2 ICG,模块的工作模式,除了,关断(,Off,)模式外,,ICG,具有,4,种工作模式,:,启用,FLL,且采用内部时钟源模式(,FEI,),MCU,同样,不需要外接晶振,,而是,使用内部,FLL,对内部,243kHz,的参考时钟,IRG,进行倍频,生成,ICGOUT,时钟频率,,即,f,ICGOUT,(,f,IRG,/7),64,N,/,R,式中,,f,IRG,的典型值为,243000Hz,;,N,为倍频因子,取值范围从,4,到,18,,按,2,递增;,R,为分频因子,取值范围从,1,到,128,,按,2,的,n,次幂递增;,N,和,R,都是通过控制寄存器,ICGC2,中的,MFD,位和,RFD,位设定,的,Slide,6,4.2 ICG,模块的工作模式,除了,关断(,Off,)模式外,,ICG,具有,4,种工作模式,:,旁路,FLL,且采用外部时钟源模式(,FBE,),在这种模式下,,ICG,内部,PLL,被旁路,,,MCU,不再使用倍频电路,而仅仅,对外部时钟,ICGERCLK,进行分频生成系统时钟,,即,f,ICGOUT,f,EXT,/,R,式中,,R,为分频因子,取值范围从,1,到,128,,按,2,的,n,次幂递增,可通过控制寄存器,ICGC2,中的,RFD,位设定,当外接晶振时,晶振的频率,必须处于,32,100kHz,的低频范围或者,1,16MHz,的高频范围,,此时还应该确保,ICG1,寄存器中的,REFS,被设置为,1,Slide,7,4.2 ICG,模块的工作模式,除了,关断(,Off,)模式外,,ICG,具有,4,种工作模式,:,启用,FLL,且采用外部时钟源模式(,FEE,),在这种模式下,,MCU,使用内部的,FLL,对外部参考时钟,ICGERCLK,进行倍频,生成系统时钟,即,f,ICGOUT,f,EXT,P,N,/,R,式中,外接晶振频率,f,EXT,=32,100kHz,低频范围时,P,=64,,外接晶振频率,f,EXT,=2,10MHz,高频范围时,P,=1,;,N,为倍频因子,取值范围从,4,到,18,,按,2,递增;,R,为分频因子,取值范围从,1,到,128,,按,2,的,n,次幂递增;,N,和,R,都通过控制寄存器,ICGC2,中的,MFD,位和,RFD,位,设定。,当外接晶振时应该设定,ICG1,寄存器中的,REFS,位为,1,;当外接时钟源时应该设定,ICG1,寄存器中的,REFS,位为,0,;,Slide,8,4.2 ICG,模块的工作模式,外部时钟连接和外部晶振连接,Slide,9,4.3,外部管脚连接,4.4 ICG,模块寄存器,ICG,具有的,4,种工作模式(,SCM,、,FEI,、,FBE,和,FEE,)都是通过,ICG,模块的寄存器,进行设定。,ICG,模块具有,:,两个,8,位的控制寄存器(,ICGC1,、,ICGC2,),两个,8,位的状态寄存器(,ICGS1,、,ICGS2,),一个,12,位的滤波寄存器(,ICGFLT,),一个,8,位的调整寄存器(,ICGTRM,),对,ICG,模块的设定正是通过对这些寄存器的设定来实现,。,Slide,10,4.4 ICG,模块寄存器,ICG,控制寄存器,1,(,ICGC1,),Slide,11,4.4 ICG,模块寄存器,ICG,控制寄存器,1,(,ICGC1,),Slide,12,4.4 ICG,模块寄存器,ICG,控制寄存器,2,(,ICGC2,),Slide,13,4.4 ICG,模块寄存器,ICG,状态寄存器,1,(,ICGS1,),Slide,14,4.4 ICG,模块寄存器,ICG,状态寄存器,1,(,ICGS1,),Slide,15,4.4 ICG,模块寄存器,ICG,状态寄存器,2,(,ICGS2,),Slide,16,4.4 ICG,模块寄存器,ICG,滤波寄存器,(,ICGFLTU,ICGFLTL,),ICGFLT,主要用于修改,SCM,模式下的,ICGOUT,输出频率。,SCM,模式下,ICGOUT,的输出通常为,8MHz,频率,这个频率也通过改变,FLT,来改变。,除了,SCM,模式外,,FLT,位都是只读的,Slide,17,4.4 ICG,模块寄存器,ICG,调整寄存器,(,ICGTRM,),内部生成的时钟源允许在正常值的,25%,范围内进行调整。,Slide,18,4.5 ICG,模块应用举例,ICG,配置考虑,Slide,19,4.5 ICG,模块应用举例,ICG,配置考虑,Slide,20,Slide,21,4.5 ICG,模块应用举例,例,6.1,MC9S08AW60,单片机系统中,外部晶振频率为,32 kHz,,编写初始化代码,把,ICG,设定为,FEE,模式,并将,32 kHz,的晶振通过内部,FLL,倍频到,8.38 MHz,以获得,4.19 MHz,的总线,频率,。,当,MCU,复位之后,,ICG,处于自供时钟模式(,SCM,),,ICGOUT,的输出频率约为,8 MHz,,对应于,4 MHz,的总线频率(,f,Bus,)。,因为,要配置成为,FLL,启动、外部参考源模式(,FEE,),因此,f,ICGOUT,=,f,EXT,P,N,/,R,,,P,=64,,,f,EXT,=32,kHz,解得,N,/,R,=8.38,MHz/(32,kHz64)=,4,可,选择,N,=4,,且,R,=1,。,为了达到设计目标应该设定的各个寄存器的值如表,6-12,所示。,Slide,22,4.5 ICG,模块应用举例,Slide,23,4.5 ICG,模块应用举例,例,6.1,MC9S08AW60,单片机系统中,外部晶振频率为,32 kHz,,编写初始化代码,把,ICG,设定为,FEE,模式,并将,32 kHz,的晶振通过内部,FLL,倍频到,8.38 MHz,以获得,4.19 MHz,的总线,频率,。,采用,查询方式的参考代码如下:,ICG_FEE_Init:;ICG,初始化子程序,MOV#$38,ICGC1;,使用外部晶振,,FEE,模式,MOV#$00,ICGC2;,取,N=4,,,R=1,BRCLR3,ICGS1,*;,查询,FLL,是否锁定,,LOCK,位为,1,表明,FLL,已经锁定,RTS;FLL,已经锁定,退出子程序,Slide,24,4.5 ICG,模块应用举例,例,6.2,MC9S08AW60,单片机系统中,没有外部晶振,编写,ICG,模块初始化代码以获得,10MHz,以上的总线频率,。,当,MCU,复位之后,,ICG,处于自供时钟模式(,SCM,),,ICGOUT,的输出频率约为,8 MHz,,对应于,4 MHz,的总线频率(,f,Bus,)。,可以在,MCU,复位后通过软件初始化,ICG,,将,FLL,设定在,FEI,模式,然后倍频,内部,243KHz,参考时钟到,20MHz,以上,以获得,高于,10MHz,的总线频率,。,因为要将时钟,配置为,FEI,,,因此:,f,ICGOUT,=(,f,IRG,/7),P,N,/R,;,P,=64,,,f,IRG,=243kHz,取,f,ICGOUT,=22.217MHz,,解得:,N,/,R,=22.217MHz/(243 kHz/7)64)=10,可,选择,N=10,,且,R=1,。,为达到设计目标应该设定的各个寄存器的值如表,6-14,所示,。,Slide,25,4.5 ICG,模块应用举例,Slide,26,4.5 ICG,模块应用举例,例,6.2,MC9S08AW60,单片机系统,中没有,外部晶振,编写,ICG,模块初始化代码以,获得,10MHz,以上的总线频率。,采用,查询方式的参考代码如下,:,通过,上述代码,,ICG,模块工作在,FEI,模式,总线时钟频率约为,11.1085MHz,。,ICG_FEI_Init:;ICG,初始化子程序,MOV#$28,ICGC1;,使用外部晶振,,FEI,模式,MOV#$30,ICGC2;,取,N=10,,,R=1,BRCLR3,ICGS1,*;,查询,FLL,是否锁定,,LOCK,位为,1,表明,FLL,已经锁定,RTS;FLL,已经锁定,退出子程序,Slide,27,Freescale HCS08,单片机内部时钟发生器,
展开阅读全文