一种基于apb总线的多功能模式定时器电路的制作方法_3

文档序号:9546616阅读:来源:国知局
M模式。模式控制电路将输出信号direct1n置为0。输入信号cloadtop送到缓冲器T,缓冲器T的输出cloadtop_t送入到比较单元,与输入信号cntval进行比较,若两个值相等,比较单元有效overflow信号。模式控制电路检测到overflow信号有效,产生计数器清零信号cntclr,产生3个缓冲器的加载信号bload。信号cloada、cloadb值分别送入缓冲器A、B,缓冲器输出信号cloada_b、cloadb_b与输入信号cntval在匹配单元A、B内分别进行比较,若两个值相等,匹配单元A、B有效输出信号matcha、matchb。输出控制电路检测到matcha有效,将输出outa置为低电平,有效匹配中断信号intc,检测到matchb有效,将输出outb置为低电平,有效匹配中断信号intd。输出控制电路检测到overflow信号有效,将输出outa、outb置高电平,同时有效溢出中断信号inta。
[0038]当contrl [2:1]为11时,定时器电路处于相位与频率修正PWM模式。模式控制电路将输出信号direct1n置为0,输入信号cloadtop送到缓冲器T,缓冲器T的输出cloadtop_t送入到比较单元,与输入信号cntval进行比较,若两个值相等,将信号direct1n置为1,在direct1n信号为1期间,cntval的值与0进行比较,若两个值相等,则比较单元有效overflow信号。模式控制电路检测到overflow信号有效,产生3个缓冲器的加载信号bload。信号cloada、cloadb值分别送入缓冲器A、B,缓冲器输出信号cloada_b、cloadb_b与信号cntval在匹配单元A、B内分别进行比较,若两个值相等,匹配单元A、B有效信号matcha、matchb。输出控制电路检测到matcha有效,有效匹配中断信号intc,若信号direct1n为0时,输出outa置为低电平,若信号direct1n为高1时,将输出outa置高电平;输出控制电路检测到matchb有效,有效匹配中断信号intd,若信号direct1n为0时,输出outb置为低电平,若信号direct1n为高1时,将输出outb置高电平。输出控制电路检测到overflow信号有效,将有效溢出中断信号inta。
[0039]定时器可分别工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式下,在每种模式下定时器的具体工作过程为:
[0040]在普通模式下,定时器输出方波信号。设置控制寄存器的值control [2:1]为00,设置预分频器预置值寄存器pretop的值,设置计数值top寄存器cloadtop的值,设置定时器控制寄存器control [1]为1,则定时器开始工作。预分频器从pretop的值,开始减1计数,预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direct1n置为0,计数器作加法计数,每检测到一次Tick信号有效,计数器的计数值加1。控制单元把计数器的当前计数值cntval与colaodtop进行比较,若二者的数值相等,有效overflow信号,将输出管脚outa进行反向输出,有效溢出中断信号inta,有效计数器清零信号cntclr。计数器检测到信号cntclr有效,将计数值自动置为0,重新开始计数。
[0041]在捕获模式下,定时器不输出波形信号,而是对定时器输入信号cin进行捕获。设置控制寄存器的值control [2:1]为01,设置预分频器预置值寄存器pretop的值,设置定时器控制寄存器control [1]为1,则定时器开始工作。预分频器从pretop的值,开始减1计数,预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direct1n置为0,计数器作加法计数,每检测到一次Tick信号有效,计数器的计数值加1,计数器的计数值达到最大值后,从0重新开始计数。控制单元将捕获使能信号catchen置为1,捕获模块开始工作。捕获模块先对定时器输入信号cin进行抑噪处理,所有的小于4个时钟周期的电平变化都被作为毛刺滤掉了,当检测到cin的有效边沿时,产生捕获有效信号catchin。当控制单元检测到信号catchin有效时,则有效捕获赋值信号cwr,有效捕获中断信号intb。可配置寄存器组检测到信号cwr有效时,将计数器的当前计数值cntval保存至捕获值寄存器中。
[0042]在快速PWM模式下,可以输出频率和占空比均可调的PWM波形。设置控制寄存器的值control [2:1]为10,设置预分频器预置值寄存器pretop值,设置计数值top寄存器cloadtop的值,设置定时器控制寄存器control [1]为1,则定时器开始工作。预分频器从pretop的值,开始作减1计数,当预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direct1n置为0,计数器作加法计数,采用单斜坡的方式工作,每检测到一次Tick信号有效,计数器的计数值加1。控制单元把计数器的计数值top寄存器的值cloadtop置入缓冲器,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,有效overflow信号、计数器清零信号cntclr、3个缓冲器的加载信号bload。控制单元将匹配寄存器A的值送入缓冲器A,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,将输出outa置为低电平,有效匹配中断信号intc。控制单元将匹配寄存器B的值送入缓冲器B,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,将输出outb置为低电平,有效匹配中断信号intd。在overflow信号有效时,控制单元将输出outa、outb置为高电平,同时有效溢出中断信号inta。计数器检测到信号cntclr有效,计数值自动置为0,重新开始计数。比较匹配寄存器A、B和计数值top寄存器在该模式下使用双缓冲模式,控制单元内部的设计了 3个缓冲器,对这3个寄存器的读和写都将直接改变对应寄存器的值,而不会立即影响缓冲器的值,在overflow信号有效时(即bload信号有效),缓冲器的值被更新,这样保证了在计数器一个计数周期内,定时器能输出连续的完整波形。
[0043]在相位与频率修正的PWM模式下,定时器能够输出相位与频率均可调的PWM信号。设置控制寄存器的值control [2:1]为11,设置预置值寄存器pretop的值,设置计数值top寄存器的cloadtop值,设置定时器控制寄存器control [1]为1,则定时器开始工作。预分频器从pretop的值开始作减1计数,当预分频器溢出时(即当前的计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。在该模式下,计数器采用双斜坡的方式工作,每检测到一次Tick信号有效,若控制单元输出信号direct1n为0时,计数器加1计数,为1时,计数器减1计数。控制单元先将信号direct1n置为0,将计数值top寄存器cloadtop的值置入缓冲器,缓冲器输出值与计数器当前计数值cntval进行比较,若两个值相等,将信号direct1n置为1,在direct1n信号为1期间,计数器当前计数值cntval与0进行比较,若两个值相等,将信号direct1n置为0,有效overflow信号、溢出中断信号inta、3个缓冲器的加载信号bload。控制单元将匹配寄存器A送入缓冲器,缓冲器输出值与计数器的当前计数值cntval进行比较,若两个值相等,有效匹配中断信号intc,若信号direct1n为0时,将输出outa置为低电平,若信号direct1n为高1时,将输出outa置高电平。控制单元将匹配寄存器B送入缓冲器,缓冲器输出值与计数器的当前计数值cntval分别进行比较,若两个值相等,有效匹配中断信号intd,若信号direct1n为0时,将输出outb置为低电平,若信号direct1n为高1时,将输出outb置高电平。与快速PWM模式相同,比较匹配寄存器A、B和计数值top寄存器也采用双
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1