模块大全

  • 格式:doc
  • 大小:478.00 KB
  • 文档页数:36

第一讲:HCS12原理及应用--PWM模块介绍时间:2009-11-25 22:51来源:电子设计吧作者:dzsj8 点击:1115次该教程以MC9S12DG128单片机为核心进行讲解,全面阐释该16位单片机资源。

本文为第一讲,开始介绍该MCU的PWM模块。

PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。

每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。

每一个PWM 输出通道都能调制出占空比从0—100% 变化的波形。

PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。

2、每一个输出通道都有一个精确的计数器。

3、每一个通道的P WM 输出使能都可以由编程来控制。

4、PWM 输出波形的翻转控制可以通过编程来实现。

5、周期和脉宽可以被双缓冲。

当通道关闭或PWM 计数器为0 时,改变周期和脉宽才起作用。

6、8 字节或16 字节的通道协议。

7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。

8、通过编程可以实现希望的时钟周期。

9、具有遇到紧急情况关闭程序的功能。

10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。

(责任编辑:dzsj8)第2讲:HCS12原理及应用--PWM寄存器说明1时间:2009-11-25 22:56来源:电子设计吧作者:dzsj8 点击:902次1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。

它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。

当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。

用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。

当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道1 的使能位控制PWM 的输出。

2、PWM时钟选择寄存器PWMCLKPWMCLK 寄存器每一位如图3所示:复位默认值:0000 0000B图2 PWMCLK 寄存器S12的PWM 共有四个时钟源,每一个P WM 输出通道都有两个时钟可供选择(Clock A、Clock SA 或Clock B、Clock SB))。

其中0、1、4、5 通道可选用Clock A和ClockSA,2、3、6、7 通道可选用ClockB、ClockSB 通道。

该寄存器用来实现几个通道时钟源的选择。

用法:PCLK0 =1 --——通道0(PTP0)的时钟源设为ClockSAPCLK2 =0 --- 通道2(PTP2)的时钟源设为ClockB(责任编辑:dzsj8)第3讲:HCS12原理及应用--PWM寄存器说明2时间:2009-11-25 22:58来源:电子设计吧作者:dzsj8 点击:813次1、PWM预分频寄存器PWMPRCLKPWMPRCLK 寄存器每一位如图3所示:复位默认值:0000 0000B图3PWMPRCLK 寄存器PWMPRCLK 寄存器包括ClockA预分频和ClockB预分频的控制位。

ClockA、ClockB的值为总线时钟的1/2n (0≤n≤7),具体设置参照图4和图5图4Clock A 预分频设置图5Clock B预分频设置PCKB0~PCKB2是对ClockB进行预分频。

PCKA0~PCKA2是对ClockA进行预分频。

2、PWM分频寄存器PWMSCLA、PWMSCLBPWMSCLA 寄存器每一位如图6所示:图6 PWMSCLA寄存器Clock SA 是通过对P WMSCLA 寄存器的设置来对ClockA 进行分频而产生的。

其计算公式为:Clock SA=Clock A /(2*PWMSCLA)PWMSCLB 寄存器与PWMSCLA 寄存器相似,Clock S B 就是通过对PWMSCLB 寄存器的设置来对C lockB 进行分频而产生的。

其计算公式为:Clock SB=Clock B /(2*PWMSCLB)(责任编辑:dzsj8)手把手教你写S12XS128程序(4)--PWM寄存器说明3时间:2009-11-26 07:09来源:电子设计吧作者:dzsj8 点击:711次1、PWM极性选择寄存器PWMPOLPWMPOL 寄存器每一位如图7所示:该寄存器是0~7通道PWM输出起始极性控制位,用来设置PWM输出的起始电平。

用法:PWMPOL_PPOL0=1--- 通道0 在周期开始时输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平。

对外输出波形先是高电平然后再变为低电平。

2、PWM波形对齐寄存器PWMCAEPWMCAE 寄存器每一位如图8所示:图8PWMCAE 寄存器PWMCAE 寄存器包含8个控制位来对每个P WM 通道设置左对齐输出或中心对齐输出。

用法: PWMCAE_CAE0 = 1 --- 通道0 中心对齐输出PWMCAE_CAE7 = 0 --- 通道7 左对齐输出注意:只有输出通道被关闭后才能对其进行设置,即通道被激活后不能对其进行设置。

图7PWMPOL 寄存器(责任编辑:dzsj8)手把手教你写S12XS128程序(5)--PWM寄存器说明4时间:2009-11-26 07:22来源:电子设计吧作者:dzsj8 点击:696次1、PWM控制寄存器PWMCTLPWMCTL 寄存器每一位如图9所示:图9PWMCTL 寄存器该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。

这两种模式如图10和图11所示。

图10 等待模式图11 冻结模式只有当相应的通道关闭后,才能改变这些控制字。

用法:PWMCTL_CON67=1 --- 通道6、7 级联成一个16位的PWM通道。

此时只有7通道的控制字起作用,原通道7的使能位、PWM输出极性选择位、时钟选择控制位以及对齐方式选择位用来设置级联后的PWM输出特性PWMCTL_CON67=0 --- 通道6,7 通道不级联CON45、CON23、CON01 的用法同CON67 相似。

设置此控制字的意义在于扩大了P WM 对外输出脉冲的频率范围。

PSW AI=1--- M CU 一旦处于等待状态,就会停止时钟的输入。

这样就不会因时钟在空操作而费电;当它置为0,则M CU 就是处于等待状态,也允许时钟的输入。

P FRZ=1 --- M CU 一旦处于冻结状态,就会停止计数器工作。

(责任编辑:dzsj8)手把手教你写S12XS128程序(6)--PWM寄存器说明5时间:2009-11-26 07:30来源:电子设计吧作者:dzsj8 点击:771次1、PWM通道计数寄存器PWMCNTxPWMCNTx 寄存器共有8个,每一个通道都有一个8位PWM加/减双向计数器,通道级联后可变成16位PWM加/减双向计数器。

下面以PWMCNT0为例对P WMCNTx 寄存器进行介绍。

PWMCNT0寄存器如图12所示:图12 PWMCNT0 寄存器计数器以所选时钟源的频率运行。

计数器在任何时候都可以被读,而不影响计数,也不影响对PWM 通道的操作。

任何值写入PWMCNT0 寄存器都会导致计数器复位置0,且其计数方向会被设置为向上计数,并且会立刻从缓冲器载入任务和周期值,并会根据翻转极性的设置来改变输出。

当计数器达到计数值后,会自动清零。

只有当通道使能后,计数器才开始计数。

2、PWM通道周期寄存器PWMPERxPWMPERx 寄存器共有8个,每一个通道都有一个这样的周期寄存器。

这个寄存器的值就决定了相关P WM 通道的周期。

每一个通道的周期寄存器都是双缓冲的,因此如果当通道使能后,改变他们的值,将不会发生任何作用,除非当下列情况之一发生:*有效的周期结束。

*对计数器进行写操作(计数器复位)*通道不可用(PWME x = 0)这样就会使P WM 输出波形要么是新波形要么是旧波形,并不会在两者之间进行交替变换。

如果通道不可用,那么对周期寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起闭锁。

图13所示的是P WMPER0 寄存器:图13 PWMPER0 寄存器3、PWM通道占空比寄存器PWMDTYxPWMDTYx 寄存器也有8 个,每一个通道都有一个这样的占空比常数寄存器。

这个寄存器的值就决定了相关P WM 通道输出波形的占空比。

每一个通道的占空比寄存器都是双缓冲的,因此如果当通道被激活后,改变他们的值将不会发生任何作用,除非当下列情况之一发生:*有效的周期结束。

*对计数器进行写操作(计数器复位)*通道不可用(PWME x = 0)这样就会使P WM 输出波形要么是新波形要么是旧波形,并不会在两者之间进行交替变换。

如果通道没有被激活,那么对占空比常数寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起闭锁。

当计数值与占空比常数P WMDTY 相等时,则比较输出器有效,这时就会将触发器置位,然后PWMCNT 继续计数,当计数值与周期常数P WMPER 相等时,比较器输出有效,将触发器复位,同时也使P WMCNT 复位,结束一个输出周期。

(责任编辑:dzsj8)手把手教你写S12XS128程序(7)--PWM工作原理时间:2009-11-27 15:44来源:电子设计吧作者:dzsj8 点击:826次S12微控制器PWM模块是由独立运行的8位脉冲计数器PWMCNT、两个比较寄存器PWMPER和PWMDTY 组成。

1、左对齐方式在该方式下,脉冲计数器为循环递增计数,计数初值为0 。

当PWM使能后,计数器PWMCNT从0开始对时钟信号递增计数,开始一个输出周期。

当计数值与占空比常数寄存器PWMDTY相等时,比较器1输出有效,将触发器置位(变为高电平),而PWMCNT继续计数;当计数值与周期常数寄存器PWMPER相等时,比较器2输出有效,将触发器复位(变为低电平),同时PWMCNT也复位,结束一个输出周期。

原理参照图14:/********************************************************************/玉良理解的就是,计数器的值一直增加,当先与PWMDTY的值相等后,置位,而计数器继续计数,当计数器的值与PWMPER的值相等后,变为低电平,从而完成一个输出周期。

/*******************************************************************/图14 PWM左对齐方式2、中心对齐方式在该方式下,脉冲计数器为双向计数,计数初值为0 。