LPC2138的PWM功能由9个寄存器进行控制,分别介绍如下。
1.PWM中断寄存器PWMIR
PWMIR寄存器包含11个标志位,其中7个位用于匹配中断,4个位保留将来之用。如果有中断产生,PWMIR中的相应位将置位,否则为0。向相应的IR位写入1将复位中断,写入0无效。
PWMIR寄存器功能如表4-49所列。
表4-49 PWMIR寄存器功能
2.PWM定时控制寄存器PWMTCR
PWMTC寄存器用于控制PWM定时器计数器的操作,其功能如表4-50所列。
表4-50 PWMTCR寄存器功能
3.PWM定时器计数器PWMTC
当预分频计数器到达计数的上限时,32位定时器计数器加1。如果PWMTC在到达计数上限之前没有被复位,它将一直计数到0xFFFFFFFF,然后翻转到0x00000000。该事件不会产生中断。如果需要,可用匹配寄存器检测溢出。
4.PWM预分频寄存器PWMPR
32位预分频寄存器用于计算PWM时钟计数频率。PWM定时器计数器TC每经过PR+1个Fpclk周期加1。例如,当PWMPR=0时,TC每1个Fpclk周期加1,当PWMPR=1时,TC每2个Fpclk周期加1。假定PWMPR寄存器的值为PR,则分频后的时钟计数频率计算公式如下:
时钟计数频率=Fpclk/(PR+1)
5.PWM预分频计数器PWMPC
预分频计数器PWMPC使用某个常量来控制Fpclk的分频,再使之用于PWM定时器计数器TC。预分频计数器PC在每个Fpclk周期加1,当其到达PWM预分频寄存器中保存的值时,PWM定时器计数器TC加1,PWM预分频计数器PC在下个Fpclk周期复位。
6.PWM匹配寄存器PWMMR0~PWMMR6
PWM匹配寄存器值连续与PWM定时器计数器TC的值相比较。当两个值相等时自动触发相应动作(产生中断、复位计数器或停止定时器)。具体执行什么动作由PWMMCR寄存器控制。
7.PWM匹配控制寄存器PWMMCR
PWMMCR寄存器用于控制在发生匹配时所执行的操作,其功能如表4-51所列。
表4-51 PWMMCR寄存器功能
(续)(www.daowen.com)
8.PWM控制寄存器PWMPCR
PWMPCR寄存器用于使能并选择每个PMW通道的类型,其功能如表4-52所列。
表4-52 PWMPCR寄存器功能
9.PWM锁存使能寄存器PWMLER
当PWM匹配寄存器用于产生PWM时,PWM锁存使能寄存器用于控制PWM匹配寄存器的更新。当定时器处于PWM模式时,如果软件对PWM匹配寄存器执行写操作,写入的值将保存在一个映像寄存器中。当PWM匹配0事件发生时(在PWM模式下,通常也会复位定时器),如果对应的锁存使能寄存器位已经置位,那么映像寄存器的内容将传送到实际的匹配寄存器中。此时,新的值将生效并决定下一个PWM周期。当发生新值传送时,LER中的所有位都自动清零。在PWMLER中相应位置位和PWM匹配0事件发生之前,任何写入PWM匹配寄存器的值都不会影响PWM操作。
例如,当PWM2配置为双边沿操作并处于运行中时,改变定时的典型事件顺序如下:
1)将新值写入PWM匹配1寄存器。
2)将新值写入PWM匹配2寄存器。
3)写PWMLER,同时置位位1和位2。
4)更改的值将在下一次定时器复位时(当PWM匹配0事件发生时)生效。
写两个PWM匹配寄存器的顺序并不重要,因为在写PWMLER之前,写入的新匹配值都无效。这样就确保了两个值同时生效。如果使用单个值,也可用同样的方法更改。
PWMLER中所有位的功能如表4-53所列。
表4-53 PWMLER寄存器功能
LPC2138的PWM功能是建立在标准的定时器之上,它具有32位定时器及预分频控制电路,7个匹配寄存器,可实现6个单边PWM或3个双边PWM输出,也可以采用这两种类型的混合输出。具有匹配中断、匹配PWMTC复位、匹配PWMTC停止功能,如果不使能PWM模式,可作为一个标准的定时器。PWM的基本寄存器功能框图如图4-22所示。
图4-22 PWM的基本寄存器功能框图
32位定时器PWMTC的计数频率由Fpclk经过PWMPR进行分频控制得到,定时器的启动、停止和计数复位由PWMTCR控制,当有比较匹配事件发生时,PWMIR会设置相关中断标志(因为不是定时器溢出而产生中断,所以图4-22采用虚线连接),若已打开中断允许(VIC)则会产生中断。当然,预分频控制器PWMPR只是控制分频数,而其对应的分频计数器是PWMPC,但用户不需要操作PWMPC寄存器。
PWM的比较匹配寄存器功能框图如图4-23所示。定时器比较匹配由控制寄存器PWMMCR进行匹配操作设置,PWMMR0~6为7路比较匹配通道的比较值寄存器。当比较匹配时,将按照PWMMCR设置的方法,产生中断或复位PWMTC等,而且PWMPCR可以控制单边或双边PWM输出,允许或不允许PWM输出。另外,为了确保在对PWMMR0~6的比较值进行修改过程中不影响PWM输出,使用了一个PWMLER锁存使能寄存器,需要修改MR0~6的比较值时,只有控制PWMLER的对应位置位,在匹配0事件发生后,此值才会生效。
图4-23 PWM的比较匹配寄存器功能框图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。