基于MC68HC908KX2的ICG模块的应用研究
时间:11-03
来源:互联网
点击:
从8位单片机诞生至今,已近30年,由于芯片技术的发展使得单片机处理速度越来越快。MPU发展中表现出来的速度是以时钟频率越来越高为标志的,而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺牲运算速度是单片机技术发展的追求。一些8051单片机兼容厂商改善了单片机的内部时序,在不提高时钟频率的条件下,使运算速度提高了很多,Motorola单片机则使用了锁相环技术或内部倍频技术使内部总线速度大大高于时钟产生器的频率。例如MC68HC08单片机使用4.9 MHz外部振荡器而内部时钟达32 MHz,而M68K系列32位单片机使用32 kHz的外部振荡器频率可实现内部时钟达16 MHz以上。Motorola单片机突出的特点之一是在同样速度下所用的时钟频率较Intel类单片机低很多,因而使得高频噪声低,抗干扰能力强,更适合用于工控领域及恶劣的环境。而作为8位单片机家族中的一员,MC68HC908KX2提供了ICG(内部时钟发生器)模块,无需外接任何时钟产生器件的情况下,通过软件设置即可实现所需的时钟信号。
1 ICG模块的特点及设置方法
在无需任何外部元件情况下,MC68HC908KX2芯片的ICG模块能够给微控制器提供稳定的时钟源,ICG模块通过CGMXCLK引脚为系统监控模块、低电压禁止模块和其他模块提供振荡时钟输出。ICG模块产生的时钟信号也提供给系统集成模块,用于产生总线时钟。此外,ICG模块还产生时基时钟,该信号被用于时基模块。
1.1 ICG模块的特点
a) 可选的外部时钟信号发生器,一个引脚接外部时钟源或两个引脚接晶振,端口引脚可实现多路转换。
b) ICG以正常频率(307.2±25%)kHz的整数倍输出可编程的频率。
c) 频率调整寄存器可以2%变化量对频率进行调整。
d) 总线时钟通过软件选择内部或外部时钟源,总线频率范围是:(76.8±25%)kHz~(9.75±25%)MHz,增加率为76.8 kHz。
e) 对内部和外部时钟源都可实现时钟监控。
1.2 ICG模块的设置方法
ICG模块通过设置可产生(307.2±25%)kHz的低频时基时钟信号IBASE,然后通过设定ICG模块的频率倍数寄存器(ICGMR)的数值,得到系统所需的时钟信号ICLK。
使用内部时钟模块通过以下步骤进行:
1) 转换时钟源
在两个时钟源都处于使能和稳定状态时,可以从一个时钟源转到另一个时钟源。转换过程为:使能所要采用的时钟源;等待该时钟源稳定;转换时钟;禁止前一个时钟源。该实现过程的汇编代码为(以从内部时钟源转到外部为例):
2) 使能时钟监控电路
在许多应用中,需要时钟监控电路在某个时钟源未激活的状态下通知系统自动使用另一个已经激活的时钟源,避免使系统运行发生故障。使用时钟监控模块的前提是ECGON和ICGON位都置1,其设置过程为:使能可用的时钟源;等待两个时钟源稳定;如果需要,转换时钟源;使能时钟监控;使能时钟监控中断。具体实现的代码如下:
3) 量化数控振荡器的误差
数控振荡器主要包括二进制权值分配器、可变延迟时间的振荡环、振荡环精确调整电路3个子模块。以上每个模块都影响内部时钟的时钟周期,因为这些模块受数字滤波器的输出寄存器Ddiv和DSTG的控制。通过对这两个寄存器的设置,可实现对输出时钟信号ICLK的值进行相应的调整。
4) 改变内部时钟频率
某些情况下可能需要改变内部时钟频率。例如,如果系统复位时不能提供正确的频率,或者在低电压模式下系统时钟变慢,必须通过变程修改内部时钟倍频因子N的值改变内部时钟的频率。这时需注意,改变内部时钟频率之前必须先禁止时钟监控模块。改变内部时钟频率的步骤如下:通过读CMF位的值确定是否存在时钟监控中断;关闭时钟监控模块;如果需要,转换到外部时钟源;改变N值;如果需要,转换回到内部始时钟源;如果需要,打开时钟监控模块。
5) 开始正确频率设置的时间
由于ICLK的值取决于DCO的输出值,当某些操作条件发生改变时,内部时钟不能马上稳定下来,ICLK将暂时以不正确的时钟工作。ICLK需要一定的调整时间才能达到正确时钟周期。达到正确时钟周期所需要的时间为:
式中:τ1,τ2分别为调整前、后的时钟周期值,令τ15=|44N(τ1-τ2)| ,则常见的时钟周期调整表见表1。
6) 调整内部时钟发生器的频率
由于数据处理、电压和温度等原因未经过调整的低频时基时钟信号IBASE将会发生±25%的频率波动,通过改变内部时钟电路的比较电容器的值可以将频率波动值限定在±2%的范围内。设置TRIM寄存器的值就可以改变比较电容器的值,TRIM寄存器的默认值是$80即128个单位,对应的默认电容值为512,每增加或减少1个单位,可对未调整频率实现±0.195%的调整。
1 ICG模块的特点及设置方法
在无需任何外部元件情况下,MC68HC908KX2芯片的ICG模块能够给微控制器提供稳定的时钟源,ICG模块通过CGMXCLK引脚为系统监控模块、低电压禁止模块和其他模块提供振荡时钟输出。ICG模块产生的时钟信号也提供给系统集成模块,用于产生总线时钟。此外,ICG模块还产生时基时钟,该信号被用于时基模块。
1.1 ICG模块的特点
a) 可选的外部时钟信号发生器,一个引脚接外部时钟源或两个引脚接晶振,端口引脚可实现多路转换。
b) ICG以正常频率(307.2±25%)kHz的整数倍输出可编程的频率。
c) 频率调整寄存器可以2%变化量对频率进行调整。
d) 总线时钟通过软件选择内部或外部时钟源,总线频率范围是:(76.8±25%)kHz~(9.75±25%)MHz,增加率为76.8 kHz。
e) 对内部和外部时钟源都可实现时钟监控。
1.2 ICG模块的设置方法
ICG模块通过设置可产生(307.2±25%)kHz的低频时基时钟信号IBASE,然后通过设定ICG模块的频率倍数寄存器(ICGMR)的数值,得到系统所需的时钟信号ICLK。
使用内部时钟模块通过以下步骤进行:
1) 转换时钟源
在两个时钟源都处于使能和稳定状态时,可以从一个时钟源转到另一个时钟源。转换过程为:使能所要采用的时钟源;等待该时钟源稳定;转换时钟;禁止前一个时钟源。该实现过程的汇编代码为(以从内部时钟源转到外部为例):
2) 使能时钟监控电路
在许多应用中,需要时钟监控电路在某个时钟源未激活的状态下通知系统自动使用另一个已经激活的时钟源,避免使系统运行发生故障。使用时钟监控模块的前提是ECGON和ICGON位都置1,其设置过程为:使能可用的时钟源;等待两个时钟源稳定;如果需要,转换时钟源;使能时钟监控;使能时钟监控中断。具体实现的代码如下:
3) 量化数控振荡器的误差
数控振荡器主要包括二进制权值分配器、可变延迟时间的振荡环、振荡环精确调整电路3个子模块。以上每个模块都影响内部时钟的时钟周期,因为这些模块受数字滤波器的输出寄存器Ddiv和DSTG的控制。通过对这两个寄存器的设置,可实现对输出时钟信号ICLK的值进行相应的调整。
4) 改变内部时钟频率
某些情况下可能需要改变内部时钟频率。例如,如果系统复位时不能提供正确的频率,或者在低电压模式下系统时钟变慢,必须通过变程修改内部时钟倍频因子N的值改变内部时钟的频率。这时需注意,改变内部时钟频率之前必须先禁止时钟监控模块。改变内部时钟频率的步骤如下:通过读CMF位的值确定是否存在时钟监控中断;关闭时钟监控模块;如果需要,转换到外部时钟源;改变N值;如果需要,转换回到内部始时钟源;如果需要,打开时钟监控模块。
5) 开始正确频率设置的时间
由于ICLK的值取决于DCO的输出值,当某些操作条件发生改变时,内部时钟不能马上稳定下来,ICLK将暂时以不正确的时钟工作。ICLK需要一定的调整时间才能达到正确时钟周期。达到正确时钟周期所需要的时间为:
式中:τ1,τ2分别为调整前、后的时钟周期值,令τ15=|44N(τ1-τ2)| ,则常见的时钟周期调整表见表1。
6) 调整内部时钟发生器的频率
由于数据处理、电压和温度等原因未经过调整的低频时基时钟信号IBASE将会发生±25%的频率波动,通过改变内部时钟电路的比较电容器的值可以将频率波动值限定在±2%的范围内。设置TRIM寄存器的值就可以改变比较电容器的值,TRIM寄存器的默认值是$80即128个单位,对应的默认电容值为512,每增加或减少1个单位,可对未调整频率实现±0.195%的调整。
单片机 51单片机 总线 振荡器 电压 信号发生器 电路 滤波器 电容 电容器 相关文章:
- 单片机智能频率信号装置(11-25)
- 单片机在医学信号检测仪中的应用(02-07)
- 单片机应用编程技巧(02-25)
- DSP与单片机通信的多种方案设计(03-08)
- 单片机与PC机串行通信的实现方法 (02-25)
- 单片机与PC通信的简化接口 (05-11)