《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于MC9S12DG128B超频状态下高精度PWM输出的研究
基于MC9S12DG128B超频状态下高精度PWM输出的研究
来源:微型机与应用2011年第22期
徐 杰
(安徽工程大学,安徽 芜湖241000)
摘要: 以MC9S12DG128作为核心控制单元,利用MC9S12DG128实现了超频条件下的高精度PWM输出。随着输出PWM精度的增加,PWM输出的幅值开始减小,同时PWM输出脉冲幅值减小,超频状态下可应用于高精度PWM输出系统中。
Abstract:
Key words :

摘  要:MC9S12DG128作为核心控制单元,利用MC9S12DG128实现了超频条件下的高精度PWM输出。随着输出PWM精度的增加,PWM输出的幅值开始减小,同时PWM输出脉冲幅值减小,超频状态下可应用于高精度PWM输出系统中。
关键词: 单片机频率;测量

    MC9S12DG128微控制器[1-3]是Freescale公司M68HC12系列16位单片机中的一种。由于具有抗干扰能力强、传输距离远、接口简单灵活、占用资源少等特点,在许多测控系统中得到了广泛的应用。本文采用MC9S12DG128单片机作为控制芯片,提出了减小误差的测量方法,并在此基础上编写了程序设计流程。
    微控制器的脉冲宽度调制(PWM)模块是工业控制和新型消费机电产品中最常用的技术。脉宽调制波可用软件程序来控制波形占空比、周期和相位,广泛地应用在直流电机调速、伺服电机控制方向盘,伺服电机的旋转角度与给定的PWM信号占空比一致,即每个占空比数值都对应一个旋转角度。
    锁相环产生的时钟频率可由下式得到:
    fPLLCLK=2×fOSCCLK×(SYNR+1)/(REFDV+1)(1)
式中:fPLLCLK为振荡器频率;SYNR为时钟合成寄存器的值;REFDV为时钟分频寄存器的值。对于CPU12可以选用8 MHz或者16 MHz外部晶体振荡器作为外时钟选用8 MHz晶振时,若将SYNR设为2,REFDV设为1,可以得到24 MHz的总路线频率,接近S12微控制器的上限内部总路线频率25 MHz。
    S12微控制器产生PWM波形的方法主要有两种:软件输出比较和PWM硬件模块。利用输出比较功能可以通过软件设定输出任意脉冲,但会占用CPU资源,而且不易产生精确的脉冲序列,Freescale S12微控制器集成了PWM模块,专门用于输出PWM波,使用时不影响计数器运行,也极少占用CPU资源。MC9S12DG128B可提供优异的高频率、高分辨率、占空比可调的、宽范围的PWM信号[1,5]。
    8路独立PWM通道通过相应设置可变成4个16 bit PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择。8个通道分成两组,共有4个时钟源控制。通道0、1、4、5为一组,使用时钟源ClockA和ClockSA;通道2、3、6、7构成另一组,使用时钟源ClockB和ClockSB。PWM模块内部结构框图如图1所示。ClockA和ClockSA均源于总线时钟,可通过软件编程设定[1]。


1 开发软件
    开发软件采用Freescal公司为S12系列处理器提供的嵌人式应用开发软件包,“Codewarrior for S12”是一款专为工程人员设计的功能强大的图形化编程软件,包含集成开发环境IDE、处理器专家系统和全芯片仿真等[4]。
2 实验实现方法
    PWM常用来输出一定周期和占空比的脉冲序列。程序流程如图2所示。基于MC9S12DG128B实验板,实现从PTP0口输出10 kHz的信号,时钟源采用ClockA、ClockB,总线时钟BusClock=8 MHz[1-4]。

3 实验分析
    根据上述实验方法建立实验平台,采用Freescal公司的Codewarrior软件编程,超频状态下,通过不同的超频设置,时钟合成寄存器SYNR的值为4或6,并设置PWM具有0.1‰~0.5‰不等,得到的波形图如图3所示。

 

 


    通过实验输出波形图3(a)可以看出此时输出PWM精度为0.5‰,有效PWM输出点两个,输出脉冲幅值稳定在940 mV×4.8,扫描频率为50 ?滋s,输出稳定。
    通过图3(b)可以看出此时输出PWM精度为0.1‰,最大脉冲幅值为940 mV×3.9,且此时间点另一脉冲无输出。此时SYNR为6,PWM输出失真。
    通过图3(c)可以看出输出PWM精度为0.25‰,有效PWM输出点两个,最大脉冲幅值940 mV×4.1,最小脉冲幅值940 mV×0.5,其他脉冲间隔点无输出,此时SYNR为6,PWM输出失真。
    通过图3(d)可以看出此时输出PWM精度为0.5‰,有效PWM输出点4个,最大脉冲幅值940 mV×4.1,最小脉冲幅值940 mV×0.5,其他脉冲间隔点无输出。此时SYNR为6,PWM输出失真。
    通过图3(e)可以看出此时输出PWM精度为0.1‰,有效PWM输出点两个,最大脉冲幅值940 mV×4.8,最小脉冲幅值940 mV×1.5,其他脉冲间隔点无输出,此时SYNR为4,PWM输出失真。
    通过图3(f)可以看出此时输出PWM精度为0.25‰,有效PWM输出点5个,输出脉冲幅值稳定在940 mV×4.8,扫描频率为50 μs,输出稳定,产生的输出有效,但PWM幅值相对不稳定。
    选用MC9S12DG128作为控制核心,在CodeWarrior系列集成开发环境下开发了软件系统。在相同超频条件下,精度越高的PWM输出值输出状态越不稳定,随着输出PWM精度的增加,PWM输出的幅值开始减小,同时PWM输出脉冲幅值减小。可应用于测量精度控制,在较小的范围内同时提高了运算速度和测量量程,能更加简单、稳定、经济、方便地应用于频率测量系统。
参考文献
[1] 王威.HCS12微机控制器与原理及应用[M].北京:北京航空航天大学出版社,2007.
[2] 常波.高精度PWM输出的温度传感器MAx6666/6667的特性及应用[J].现化电子技术,2004,27(6):8-9.
[3] Freescale Semi-Conductor Inc.MC9S12-DG128B device user guide[DB/OL].http://www.reescale.com/webapp/sps/site/S12/MC9S-12DG128B.pdf.2005.
[4] STEVEN F B,DANIEL J P.嵌入式系统——使用68HC12和HCS12的设计与应用[M].郑扣根,唐杰,何通能,等译. 北京:电子工业出版社,2006.
[5] 俞应华,黄寅.精度频率测量技术在单片机系统中的应用[J].现代计量测试,1998(3):21-23.

此内容为AET网站原创,未经授权禁止转载。