打印

更新VIII:Firmware Lib在EK_STM32F上的学习体会(TIM)

[复制链接]
2798|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
barboon|  楼主 | 2008-4-27 20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
继续!

上一次更新:

更新VII:Firmware Lib在EK_STM32F上的学习体会(SPI/SysTick)

=============================TIM===================================

TIM Example 1
本例展示了如何利用外设TIM2来产生四路频率不同的信号。

TIM2时钟设置为36MHz,预分频设置为2,使用输出比较-翻转模式(Output Compare Toggle Mode)。

TIM2计数器时钟可表达为:TIM2 counter clock = TIMxCLK / (Prescaler +1) = 12 MHz

设置TIM2_CCR1寄存器值为32768,则CC1更新频率为TIM2计数器时钟频率除以CCR1寄存器值,为366.2 Hz。因此,TIM2通道1可产生一个频率为183.1 Hz的周期信号。

同理,根据寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,TIM2通道2可产生一个频率为366.3 Hz的周期信号;TIM2通道3可产生一个频率为732.4 Hz的周期信号;TIM2通道4可产生一个频率为1464.8 Hz的周期信号。

可以通过示波器观察各路输出。


TIM Example 2


本例展示了如何利用外设TIM2来产生四路时延不同的信号。可以通过观察管脚PC.06上输出上升沿和TIM2_CHx输出上升沿的时间差来得到这个时延。

TIM2时钟设置为36MHz,预分频设置为35999,使用输出比较-主动模式(Output Compare Active Mode)。

TIM2计数器时钟可表达为:TIM2 counter clock = TIMxCLK / (Prescaler +1) = 1 KHz

设置TIM2_CCR1寄存器值为1000,则TIM2_CH1时延为CCR1寄存器值除以TIM2计数器时钟频率,为1000毫秒。因此,TIM2通道1可产生时延为1000ms的信号。

同理,根据寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,TIM2通道2可产生时延为500ms的信号;TIM2通道3可产生时延为250ms的信号;TIM2通道4可产生时延为125ms的信号。

可以通过示波器观察各路输出。


TIM Example 3

本例展示了如何设置TIM工作在输出比较-非主动模式(Output Compare Inactive mode),并产生相应的中断。

TIM2时钟设置为36MHz,预分频设置为35999,TIM2计数器时钟可表达为:
TIM2 counter clock = TIMxCLK / (Prescaler +1) = 1 KHz

设置TIM2_CCR1寄存器值为1000, CCR1寄存器值1000除以TIM2计数器时钟频率1KHz,为1000毫秒。因此,经过1000毫秒的时延,置PC.06输出为低电平。

同理,根据寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,经过500毫秒的时延,置PC.07输出为低电平;经过250毫秒的时延,置PC.08输出为低电平;经过125毫秒的时延,置PC.09输出为低电平。

输出比较寄存器的值决定时延的大小,当计数器的值小于这个值的时候,点亮与PC.06-PC.09相连的LED;当计数器的值达到这个值得时候,产生中断,在TIM2的4个通道相应的中断里,把它们一一关闭。


TIM Example 4

本例展示了如何设置TIM工作在脉冲宽度调制模式(PWM Pulse Width Modulation
mode)。

TIM3时钟设置为36MHz,预分频设置为0,TIM2计数器时钟可表达为:
TIM3 counter clock = TIMxCLK / (Prescaler +1) = 36 MHz

设置TIM3_CCR1寄存器值为500,则TIM3通道1产生一个频率为36MHz,占空比(duty cycle)为50%的PWM信号。

同理,根据寄存器TIM3_CCR2 、TIM3_CCR3和 TIM3_CCR4的值,TIM3通道2产生一个频率为36MHz,占空比(duty cycle)为37.5%的PWM信号;TIM3通道1产生一个频率为36MHz,占空比(duty cycle)为25%的PWM信号;TIM3通道1产生一个频率为36MHz,占空比(duty cycle)为12.5%的PWM信号。

可以通过示波器,在相应管脚观察到输出信号。


TIM Example 5

本例展示了如何设置TIM工作在输出比较-时间模式(Output Compare Timing mode),产生相应的中断,以在不同通道上产生不同的时间基数。

TIM2时钟设置为36MHz,预分频设置为4,TIM2计数器时钟可表达为:
TIM2 counter clock = TIMxCLK / (Prescaler +1) = 7.2 MHz
设置TIM2_CCR1寄存器值为49152,则CC1更新频率为TIM2计数器时钟频率(7.2 MHz)除以CCR1寄存器值(49152),为146.48 Hz。因此,TIM2通道1每6.8ms产生一个中断。
同理,根据寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,TIM2通道2每4.55ms产生一个中断;TIM2通道3每2.27ms产生一个中断;TIM2通道4每1.13ms产生一个中断。
当计数器的值达到出数比较寄存器(Output compare register即TIMx_CCRx)的值时,产生输出比较中断(Output Compare interrupt),在中断历程中,按以下频率翻转输出管脚PC.06 – PC.09的状态:
- PC.06: 73.24Hz (CC1 通道1)
- PC.07: 109.8Hz (CC2通道2)
- PC.08: 219.7Hz (CC3通道3) 
- PC.09: 439.4Hz (CC4通道4) 

在EKSTM32F上,应当改PC.06 – PC.09为PC.04 – PC.07。与它们相连的LED会以不同的频率闪耀,不过,由于频率相对高了,肉眼是观察不出区别的。


TIM Example 6

本例展示了如何设置TIM,用它来测量一个外部输入信号的频率和占空比。

TIM2时钟设置为72MHz,预分频设置为0,TIM2计数器时钟可表达为:
TIM2 counter clock = TIMxCLK / (Prescaler +1) = 72 MHz,因此可测量的最小频率值为1100Hz。

设置TIM2工作在PWM输入模式(PWM Input Mode),把外部信号作为输入连接到TIM2通道2。

利用TIM2计数器中断来测量信号的频率和占空比。在TIM2_IRQHandler中,计算信号的频率和占空比,方法如下:

变量"Frequency"为由下式得到的外部信号频率:
Frequency = TIM2 counter clock / TIM2_CCR2  单位Hz
变量"Duty_Cycle"为由下式得到的外部信号占空比:
Duty_Cycle = (TIM2_CCR1*100)/(TIM2_CCR2) 单位%


TIM Example 7

本例展示了如何使用外设TIM在定时器输入管脚接收到一个上升沿以后,产生一个单脉冲模式(One pulse Mode)的信号。

TIM2时钟设置为72MHz,预分频设置为1,TIM2计数器时钟可表达为:
TIM2 counter clock = TIMxCLK / (Prescaler +1) = 32 MHz。
设自动重载值(TIM2->ARR)为65535,因此可以触发TIM2的输入信号频率不应超过500Hz。

配置TIM2如下:
使用单脉冲模式,把外部输入信号连接到管脚TIM2 CH2 (PA.01),设它的上升沿为触发沿,单脉冲信号从管脚TIM2_CH1 (PA.00)输出。

TIM_Pulse的值决定单脉冲时延的值,如下式这个值固定为455.08 us:
delay =  CCR1/TIM2 counter clock = 455.08 us

TIM_Period - TIM_Pulse的值决定单脉冲值,如下式这个值固定为1.365ms:
One Pulse value = (TIM_Period - TIM_Pulse)/TIM2 counter clock = 1.365 ms


TIM Example 8

TIM4_CCR1/(TIM4_ARR + 1) = 60%

本例展示了如何在并联模式下同步多个定时期(TIM)外设。

在本例程中,使用3个定时器,并联模式下同步它们:

1. 设置TIM2为主定时器
 - 使用PWM模式
 - TIM2更新事项作为触发输出

2. 设置TIM3、TIM4为TIM2的从定时器
 - 使用PWM模式
 - 使用ITR1(TIM2)作为这2个定时器的触发输入
 - 使用门控模式(Gated mode),从定时器的启动和停止都由主定时器的触发输出信号   (Master trigger output signal)控制。

TIMxCLK固定为72 MHz,TIM2计数器时钟为72 MHz。

主定时器TIM2输出频率为TIM2频率(TIM2 frequency),
TIM2 frequency = TIM2 counter clock/ (TIM2 period + 1) = 281.250 KHz;
占空比为TIM2_CCR1/(TIM2_ARR + 1) = 25%的信号。

TIM3输出频率为 (TIM2 frequency)/ (TIM3 period + 1) = 28.1250 KHz;
占空比为TIM3_CCR1/(TIM3_ARR + 1) = 30%的信号。

TIM4输出频率为 (TIM2 frequency)/ (TIM4 period + 1) = 56.250 KHz;
占空比为TIM4_CCR1/(TIM4_ARR + 1) = 60%的信号。


TIM Example 9

本例展示了如何在串联模式(cascade mode)下同步多个定时期(TIM)外设。

在本例程中,使用3个定时器,串联模式下同步它们:

1. 设置TIM2为主定时器
 - 使用PWM模式
 - TIM2更新事项作为触发输出

2. 设置TIM3为TIM2的从定时器,为TIM4的主定时器
 - 使用PWM模式
 - 使用ITR1(TIM2)作为这个定时器的触发输入
 - 使用门控模式(Gated mode),从定时器的启动和停止都由主定时器TIM2的触发输出信号(Master trigger output signal)控制。
 - TIM3更新事项作为触发输出

3. 设置TIM4为TIM3的从定时器
 - 使用PWM模式
 - 使用ITR2(TIM3)作为这个定时器的触发输入
 - 使用门控模式(Gated mode),从定时器的启动和停止都由主定时器TIM3的触发输出信号(Master trigger output signal)控制。

TIMxCLK固定为72 MHz,TIM2计数器时钟为72 MHz。

主定时器TIM2输出频率为TIM2频率(TIM2 frequency),
TIM2 frequency = TIM2 counter clock/ (TIM2 period + 1) = 281.250 KHz;
占空比为TIM2_CCR1/(TIM2_ARR + 1) = 25%的信号。

TIM3输出频率为 (TIM2 frequency)/ (TIM3 period + 1) = 70.312 KHz;
占空比为TIM3_CCR1/(TIM3_ARR + 1) = 25%的信号。

TIM4输出频率为  (TIM3 frequency)/ (TIM4 period + 1) = 17.578 Hz;
占空比为TIM4_CCR1/(TIM4_ARR + 1) = 25%的信号。


TIM Example 10

本例展示了如何在串联模式(cascade mode)下同步多个定时期(TIM)外设。同步由一个外部信号触发。

在本例程中,使用3个定时器:

1. 设置TIM2为主定时器
 - 使用翻转模式(Toggle Mode)
 - TIM2更新事项作为触发输出

2. 设置TIM2为连接在TIM2 TI2上的外部触发信号的从定时器(从管脚TIM2 CH2上输入)
 - 使用TIM2 TI2FP2为输入触发
 - 门控模式(Gated mode),从定时器的启动和停止都由外部触发信号的上升沿控制。

3. 设置TIM3为TIM2的从定时器,为TIM4的主定时器
 - 使用翻转模式(Toggle Mode)
 - 使用ITR1(TIM2)作为这个定时器的触发输入
 - 使用门控模式(Gated mode),从定时器的启动和停止都由主定时器TIM2的触发输出信号(Master trigger output signal)控制。
 - TIM3更新事项作为触发输出

4. 设置TIM4为TIM3的从定时器
 - 使用翻转模式(Toggle Mode)
 - 使用ITR2(TIM3)作为这个定时器的触发输入
 - 使用门控模式(Gated mode),从定时器的启动和停止都由主定时器TIM3的触发输出信号(Master trigger output signal)控制。

TIMxCLK固定为72 MHz,预分频设置为2,TIM2计数器时钟可表达为:
TIM2 counter clock = TIMxCLK / (Prescaler +1) = 24 MHz。
三个定时器都工作在频率
TIMx frequency = TIMx clock counter/ 2*(TIMx_Period + 1) = 162.1 KHz下

TIM2计数器的启动和停止由外部触发信号控制;TIM3计数器的启动和停止由TIM2控;TIM4计数器的启动和停止由TIM3控制。


要改动例子的只有example 3和5:
相关链接:https://bbs.21ic.com/upfiles/img/20076/2007612203125519.zip
沙发
benladn911| | 2008-4-27 21:56 | 只看该作者

太棒了!谢谢哈!

使用特权

评论回复
板凳
eliucheng| | 2008-4-28 17:20 | 只看该作者

什么时候出综合版

以前的都无法下载了

使用特权

评论回复
地板
香水城| | 2008-4-28 17:27 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

223

帖子

0

粉丝