找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于MC9S12DG128B超频状态下高精度PWM输出的研究

[复制链接]
admin 发表于 2013-3-24 11:22:48 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 以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]。
    20121107050856111084667.gif
   
1 开发软件
     开发软件采用Freescal公司为S12系列处理器提供的嵌人式应用开发软件包,“Codewarrior for S12”是一款专为工程人员设计的功能强大的图形化编程软件,包含集成开发环境IDE、处理器专家系统和全芯片仿真等[4]。
2 实验实现方法
     PWM常用来输出一定周期和占空比的脉冲序列。程序流程如图2所示。基于MC9S12DG128B实验板,实现从PTP0口输出10 kHz的信号,时钟源采用ClockA、ClockB,总线时钟BusClock=8 MHz[1-4]。
    20121107050856189214668.gif
   3 实验分析
     根据上述实验方法建立实验平台,采用Freescal公司的Codewarrior软件编程,超频状态下,通过不同的超频设置,时钟合成寄存器SYNR的值为4或6,并设置PWM具有0.1‰~0.5‰不等,得到的波形图如图3所示。
    20121107050856251714669.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 01:29 , Processed in 0.055582 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表