英语原文共 37 页,剩余内容已隐藏,支付完成后下载完整资料
AN4013应用笔记
介绍
本文件的目的,详细说明以下:
提出一个关于STM32F0, STM32F1, STM32F2, STM32F4 和 STM32L1这些单片机系列的定时器外围设备的概括。STM32F30x与STM32F301, STM32F302 和STM32F303系列相一致。
描述的各种模式和具体功能的定时器,如时钟源。
说明如何使用现有的模式和功能。
解释如何计算每个配置的时间基础。
描述了定时器同步序列和电机控制应用的高级功能,除了通用定时器模式。
对于每一种模式,典型的配置,提出了如何使用模式的例子。
在本文档的其余部分(除非另有规定),这个术语STM32xx是指列在表1中的产品。
表1 适用的产品
类型 |
适用的产品 |
单片机 |
STM32F0, STM32F1, STM32F2, STM32F4, STM32L1 系列 STM32F301, STM32F302, STM32F303, STM32F3x8, STM32F373 系列 |
目录
内容 3
1 概述 3
2 通用定时器模式 5
2.1 时钟输入源 5
2.1.1内部时钟 5
2.1.2 外部时钟 5
2.2时基发生器 6
2.3定时器输入捕获模式 8
2.4定时器输出比较模式 8
2.5定时器的PWM模式 10
2.6 定时器单脉冲模式 10
2.7 stm32f30x和stm32f3x8系列可用的定时器非对称脉宽调制模式 11
2.8 STM32F30x 和STM32F3x8系列可用定时器组合PWM模式 12
2.9 STM32F30x 和STM32F3x8的可重触发单脉冲模式 13
3 定时同步 15
3.1 定时器系统链接 15
3.2 主配置 15
内容
1 概述
STM32器件使用各种类型的定时器,每种具有以下特点:
通用定时器使用在任何程序中用于输出比较的(定时和延迟生成),一个脉冲模式,输入捕获(外部信号频率测量),传感器接口(编码器,霍尔传感器)hellip;
高级定时器:这些定时器有最多的特性。除了一般的功能,包括电机控制和数字电源转换应用相关的几个特点:死区时间插入三个互补信号,紧急停机输入。
一个或两个通道定时器:用于具有有限数量的通道的通用定时器。
一个或两个互补输出通道计时器:同前式,但在一个频道有一个死区时间发生器。这允许具有互补的信号与时间基础独立的高级定时器。
基本定时器没有输入/输出和被用来作为时基定时器或DAC外围触发。
表2总结了STM32系列定时器。
表3给出了定时器功能的一般概述。
表2 STM32系列定时器
1 TIM20仅可用于STM32f303xDxE和STM32F398VE设备。
表3 定时器功能概述
1 在STM32F2, STM32F4 ,STM32F303xB/C/D/E 和STM32F3x8系列单片机中,TIM2和TIM5是32位计数器。
2 通用定时器模式
通用定时器可以设定在下面的配置工作
2.1 时钟输入源
定时器可以同时同步几个时钟:
内部时钟
外部时钟
- 外部模型1(TI1和TI2引脚)
- 外部时钟模式2(ETR引脚)
- 内部时钟(ITRx)
2.1.1内部时钟
该时钟是默认由RCC提供的内部时钟来定时的。如果选择这个时钟源,SMCR_SMS(如果有的话)位应复位。
2.1.2 外部时钟
外部时钟定时器分为2类:
外部时钟连接到TI1或TI2引脚
外部时钟连接到ETR引脚
在这些情况下,时钟是由外部信号连接TIX引脚或ETR引脚。最大外部时钟频率应得到验证。
注:1 除了所有这些时钟源,计时器应时钟应用APBX时钟定时。
2 外部时钟不直接供给分频器,但它们与APBX时钟通过专用的逻辑块同步时钟。
外部时钟模式1(TI1和TI2引脚)
在这种模式下,外部时钟将被应用在定时器输入TI1引脚或TI2引脚。这样做:
1 设定定时器使用TIx引脚作为输入:
a)选择用于写CCxS位到TIMx_CCMR1寄存器的引脚
b)选择输入的极性:
对于STM32F100/101/102/103/105/107系列:在TIMx_CCER寄存器中写CCxP来选择上升或下降沿;
对于其他系列:在TIMx_CCER寄存器中写CCxP和CCxNP来选择上升/下降沿,或两个边缘。
c)通过设置TIMx_CCER寄存器中的CCEx位使通道一致。
2 在TIMx_SMCR寄存器中写TS位选择TIx定时器做输入源的触发。
3 在TIMx_SMCR寄存器中写SMS=111选择外部时钟模式1。
外部时钟模式2(ETR引脚)
外部时钟方式采用ETR引脚输入时钟。使用此功能:
1 在TIMx_SMCR寄存器中写ECE = 1选择外部时钟模式2。
2如果需要配置分频器、过滤器和极性可以在TIMx_SMCR寄存器中写入ETPS [1:0], ETF [3:0] 和 ETP。
内部触发时钟(ITRx)
这是一种特殊的定时器同步方式。当使用一个定时器作为另一个定时器分频器时、第一个计时器的Update event或者输出比较信号作为第二个定时器的时钟。
2.2时基发生器
计时器可作为时基发生器。根据时钟,分频器和自动加载,重复计数器(如果有的话)的参数,16位定时器可以产生Update event从一纳秒到几分钟。对于32位定时器,范围更大。
Update event周期实例
Update event周期计算如下:
Update_event = TIM_CLK/((PSC 1)*(ARR 1)*(RCR 1))
Where: TIM_CLK = timer clock input
PSC = 16-bit prescaler register
ARR = 16/32-bit Autoreload register
RCR = 16-bit repetition counter
TIM_CLK = 72 MHz
Prescaler = 1
Auto reload = 65535
No repetition counter RCR = 0
Update_event = 72*106/((1 1)*(65535 1)*(1))
Update_event = 549.3 Hz
外部时钟模式2实例
在这种模式下,Update event周期计算如下:
Update_event = ETR_CLK/((ETR_PSC)*(PSC 1)*(ARR 1)*(RCR 1))
Where ETR_CLK = the external clock frequency connected to ETR pin.
ETR_CLK = 100 kHz
Prescaler = 1
ETR_PSC = 2
Autoreload = 255
Repetition counter = 2
Update_event= 100*103/((2 1)* (1 1)*((255 1)*(2 1))
Update_event = 21.7 Hz
外部时钟模式1实例
在这种模式下,Update event周期计算如下:
Update_event = TIx_CLK/((PSC 1)*(ARR 1)*(RCR 1))
Where TIx_CLK = the external clock frequency connected to TI1 pin or TI2 pin.
TIx_CLK = 50 kHz
Prescaler = 1
Auto reload = 255
Repetition counter = 2
Update_event = 50 000/((1 1)*((255 1)*(2 1))
Update_event = 32.55 Hz
内部时钟触发器模式1实例
在这种模式下,Update event周期计算如下:
Update_event = ITRx_CLK/((PSC 1)*(ARR 1)*(RCR 1))
Where ITRx_CLK = the internal trigger frequency mapped to timer trigger input (TRGI)
ITRx_CLK = 8 kHz
Prescaler = 1
Auto reload = 255
Repetition counter = 1
Update_event = 8000/((1 1)*((255 1)*(1 1))
Update_event = 7.8 Hz
根据这种计数器模式,Update event被下列每种方式生成:
溢出,如果使用向上计数模式:TIMx_CR1寄存器中的DIR位清零
下溢,如果使用向下计数模式:TIMx_CR1寄存器中的DIR位置一
溢出和下溢,如果使用中心对齐模式:CMS位不同于零。
Update event也能被一下方式生成:
软件,如在TIM_EGR 寄存器中UG(update generation)位置一
通过从属模式控制器更新生成
作为缓冲寄存器需要一个Update event去加载的预载值,设置URS(更新请求源)为1避免每次加载这些值都更新标志。在这种情况下,只在计数器溢出时产生Update event。
也能够在CR1寄存器中设置UDIS (update disable)位来禁止使用Update event,在这种情况下,不生成Update event并且shadow寄存器(ARR, PSC, CCRx)保持原来的值不变。如果UG位设置则计数器和分频器进行初始化,或者硬件复位是被从属模式控制器接收。
当DIER寄存器中的UIE为或者UDE位被设置时将产生一个中断或DMA请求。
关于定时器这种工作模式的更多细节,参考STM32xx标准外设库中的/Project/STM32xx_StdPeriph_Examples/ TIM/TimeBas文件夹提供的信息。
STM32Cube F3固件包包括以下目录的例子:
ProjectsSTM32F3348-DiscoveryExamplesTIMTIM_TimeBase, ProjectsSTM32F302R8-NucleoExamplesTIMTIM_TimeBase, ProjectsSTM32F3-DiscoveryExamplesTIMTIM_TimeBase, ProjectsSTM32373C_EVALExamplesTIMTIM_TimeBase, ProjectsSTM32303E_EVALExamplesTIMTIM_TimeBase ProjectsSTM32303C_EVALExamplesTIMTIM_TimeBase
2.3定时器输入捕获模式
该定时器可用于输入捕获模式来测量外部信号。根据定时器的时钟,预分频器和定时器分辨率,导出了最大测量时间。
在这个模式中使用计时器:
1 在CCMRx寄存器中设置CCxS位选择主动输入。这些位应不同于零,否则只读CCRX寄存器。
2 在CCMRx寄存器中写IC1F[3:0]
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[151427],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。