5 定时器的PWM输出功能_第1页
5 定时器的PWM输出功能_第2页
5 定时器的PWM输出功能_第3页
5 定时器的PWM输出功能_第4页
5 定时器的PWM输出功能_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务3.3

智能小车电机调速模块的应用开发12本任务要求设计一个可实现智能小车电机调速的应用程序,具体要求如下。(1)电机驱动部分以L298N芯片为例(也可选择其他芯片)。(2)支持同时对两路直流电机进行控制。(3)支持按键控制,使用4个按键,功能描述如下。①Key2按键控制电机正转,若电机当前处于停止状态,按下Key2按键则使之正转;若电机当前处于正转或反转状态,按下Key2按键则使之停止。②Key0按键控制电机反转,若电机当前处于停止状态,按下Key0按键则使之反转;若电机当前处于正转或反转状态,按下Key0按键则使之停止。③Key1按键控制电机减小转速,若当前为正转则使之正向减速,反之亦然。④Wk_Up按键控制电机增大转速,若当前为正转则使之正向加速,反之亦然。Timer任务描述Timer任务分析分析本任务的要求,若需要使用L298N电机驱动板控制电机转动,则应利用STM32F4系列微控制器的定时器输出PWM信号。基本定时器不具备外部通道,故应采用高级定时器或通用定时器。另外,本任务要求同时控制两个直流电机,每一个直流电机的控制需要一路PWM信号,因此程序应具备同时输出两路PWM信号的功能。根据系统设计的任务和要求,控制器模块为系统的核心部件,选用STM32F407作为微控制器,键盘用来实现人机交互功能,其中通过按键将需要设置的参数和状态输入到微控制器中,并且通过控制器串口输出到PC端。在运行过程中控制器产生PWM脉冲输出到电机驱动电路板,通过驱动板控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。4Timer知识链接本任务涉及的必备知识点如下。STM32F4系列微控制器高级定时器的功能特性。STM32F4系列微控制器定时器输出PWM信号的编程配置方法。L298N电机驱动芯片的工作原理与编程配置方法。1 认识L298N模块56L298NL298模块L298N电机驱动芯片是意法半导体公司生产的一种高电压、大电流的电机驱动芯片。含有两个H桥高电压大电流全桥式驱动器,可以用来驱动直流电机和步进电机、继电器线圈等感性负载;采用标准逻辑电平控制,具有两个使能端(ENA、ENB)、四个输入端口(IN1~IN4)和两组输出端(OUT1~OUT2、OUT3~OUT4)。L298N电机驱动模组的实物和电路原理图分别如图7H桥电路结构如图3-23所示,这里有四个开关Q1、Q2、Q3、Q4,另外还有一个直流电机M,D1、D2、D3、D4是MOSFET的续流二极管,桥顶端连接到电源VDD,底端接地。如果Q1和Q4打开,则电动机的左引线将连接到电源,而右引线则接地,电流开始流过电机,电机向正向供电,电机开始正转,如图3-24(a)所示,如果Q2和Q3打开,电机反向通电,产生反向电流,电机将开始反转,如图3-24(b)所示。图3-24H桥电机正反转控制图3-23H桥电路结构L298NH桥原理8直流电机旋转方式IN1IN2IN3IN4PWM调速信号ENAENBM1正转高低//高/反转低高//高/停止低/高低/高//高/停止////低/M2正转//高低/高反转//低高/高停止//低/高低/高/高停止

///低L298NL298NL298N电机驱动板元器件布局如图3-25所示。图3-25L298N电机驱动板OUT1、OUT2和OUT3、OUT4之间分别接两个直流电机M1、M2,IN1、IN2、IN3、IN4引脚从单片机接入控制电平,控制电机的正反转,ENA、ENB接控制使能端,控制电机调速,L298N控制逻辑关系图如表3-28所示。9控制L298N的使能端ENx为1还是为0,继而控制输出端OUT1与OUT2之间是否有电流回路,即:当ENx=1,OUT1与UOT2之间有电流回路,有电压差;ENx=0,OUT1与UOT2之间没有电流回路。时序逻辑如图3-26所示。L298N调速L298N2

PWM工作原理10概述Timer脉宽调制动画单个PWM周期基本特性脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。广泛应用于电机控制、灯光的亮度调节、功率控制等领域。脉宽调制的实质是修改高电平的持续时间11PulseWidthmodulation两个参数Timer一个完整PWM波形所持续的时间高电平持续时间(Ton)与周期时间(Period)的比值Duty

= (Ton /Period)x

100%占空比计算公式PWM信号的两个基本参数周期(Period)占空比(Duty)12PWM信号的电压调节原理电压调节的原理不同占空比的PWM信号等效于不同的平均电压1.65V平均电压

=

峰值

x占空比0.66V2.64V13Timer定时器通道结构通道结构输入捕获单元预分频寄存器计数器寄存器CK_PSCCK_CNT自动重载寄存器捕获/比较寄存器输出控制输入滤波边沿检测预分频器输出比较单元时基单元每个通道可以选择作为输入捕获或者输出比较功能,但是只能二选一x表示定时器编号,每个通道有对应的GPIO引脚作为通道的输入/输出引脚。通道引脚TIMx_CH通道引脚TIMx_CH时基单元工作于定时模式,预分频时钟CK_PSC等于定时器时钟TIMx_CLK每个定时器具备1~4个独立的通道,各个通道具有独立的输入捕获单元、捕获/比较寄存器和输出比较单元,但共享同一个时基单元。14--

南昌大学“卓越”辅导员培养工程建设TimerCH引脚以STM32F407芯片的定时器为例,其通道引脚所对应的GPIO引脚如表3-29所示。15通道号高级定时器通用定时器TIM1TIM8TIM2TIM3TIM4TIM5CH1PA8/PE9PC6PA0/PA5PA6/PB4/PC6PB6/PD12PA0CH1NPA7/PB13/PE8PA5/PA7----CH2PA9/PE11PC7PA1/PB3PA7/PB5/PC7PB7/PD13PA1CH2NPB0/PB14/PE10PB0/PB14----CH3PA10/PE13PC8PA2/PB10PB0/PC8PB8/PD14PA2CH3NPB1/PB15/PE12PB1/PB15----CH4PA11/PE14PC9PA3/PB11PB1/PC9PB9/PD15PA3ETRPA12/PE7PA0PA0/PA5/PA15PD2PE0-BKINPA6/PB12/PE15PA6----表3-29高级定时器和通用定时器(部分)外部通道引脚分布表查询芯片的数据手册Datasheet--

南昌大学“卓越”辅导员培养工程建设Timer功能单元作用用于捕获外部触发信号,捕获方式为上升沿/下降沿/双边沿捕获。发生捕获事件时,将此刻计数器的值锁存到捕获/比较寄存器中,供用户读取,同时可以产生捕获中断。输入捕获单元TIMx_CCR寄存器在输入捕获模式下用于存放发生捕获事件时的当前计数值;在输出比较模式下用于存放预设的比较值。该寄存器具备预装载功能。捕获/比较寄存器用于信号输出。定时器通过将预设的比较值与计数器的值做匹配比较,以实现各类输出,如PWM输出、单脉冲输出等。预设的比较值存放在捕获/比较寄存器中。输出比较单元功能单元16--

南昌大学“卓越”辅导员培养工程建设Timer工作原理计数器寄存器CNT自动重载寄存器ARR捕获/比较寄存器CCR通道CHx输出波形

初始输出高电平

匹配CCR时输出为低控制PWM信号的周期控制PWM信号的占空比输出PWM信号

匹配ARR时输出为高参数计算公式Period(s)=(ARR+1)x(PSC+1)/TIMx_CLKDuty =(CRR/(ARR+1))x

100%PWM输出的工作原理17--

南昌大学“卓越”辅导员培养工程建设Timer应用实例Period=

1ms,可以设置

PSC

=

99,ARR

=

999Duty =

47.5%,则CRR

=

475假设预分频时钟CK_PSC为100MHz,产生周期为1ms,占空比为47.5%的PWM信号18--

南昌大学“卓越”辅导员培养工程建设Timer多通道输出定时器的每个通道都可以输出PWM信号,对于同一个定时器而言,它的多个通道共享同一个自动重载寄存器,因此可以输出占空比不同,但周期相同的PWM信号。通道1的PWM信号周期为1ms,占空比为47.5%通道2的PWM信号周期为1ms,占空比为70%192 PWM功能的数据类型和接口函数20输出比较单元Timer输出比较单元初始化类型结构体类型,包括7个成员变量,与PWM相关的4个21输出比较模式Timer成员变量OCMode的取值范围22表3-30成员变量OCMode的定义定义含义TIM_OCMODE_TIMING输出比较冻结模式,匹配时无输出TIM_OCMODE_ACTIVE匹配时设置输出为有效电平TIM_OCMODE_INACTIVE匹配时设置输出为无效电平TIM_OCMODE_TOGGLE匹配时设置输出的电平翻转TIM_OCMODE_PWM1PWM1模式TIM_OCMODE_PWM2PWM2模式TIM_OCMODE_FORCED_ACTIVE不进行匹配,强制输出为有效电平TIM_OCMODE_FORCED_INACTIVE不进行匹配,强制输出为无效电平匹配的含义:TIMx_CNT(当前计数值)等于TIMx_CCR(捕获/比较值)有效电平极性Timer宏常量定义含义TIM_OCPOLARITY_HIGH输出有效电平为高电平TIM_OCPOLARITY_LOW输出有效电平为低电平用于设置输出有效电平的极性,成员变量OCPolarity的取值范围如表3-31所示。23表3-31成员变量OCPolarity的定义递增计数时,当TIMx_CNT(当前计数值)<TIMx_CCR(捕获/比较值)时,通道输出为无效电平,否则为有效电平。递减计数模式则刚好相反。PWM模式TimerPWM输出的两种模式PWM模式1递增计数时,当TIMx_CNT(当前计数值)<TIMx_CCR(捕获/比较值)时,通道输出为有效电平,否则为无效电平。递减计数模式则刚好相反。PWM模式2递增计数,高电平有效PWM1模式下的CCR用于控制高电平持续的时间PWM2模式下的CCR用于控制低电平持续的时间总结:互补输出24快速输出使能Timer成员变量OCFastMode的取值范围宏常量定义含义TIM_OCFAST_DISABLE不使能快速输出模式TIM_OCFAST_ENABLE使能快速输出模式可以加快触发输入事件对通道输出的影响,默认配置为不使能25--

南昌大学“卓越”辅导员培养工程建设1 定时器PWM输出启动函数:HAL_TIM_PWM_Start()接口函数:HAL_TIM_PWM_Start()函数原型HAL_StatusTypeDefHAL_TIM_PWM_Start(TIM_HandleTypeDef*htim,uint32_t

Channel)功能描述在轮询方式下启动PWM信号输出入口参数1htim:定时器句柄的地址入口参数2Channel:定时器通道号,取值范围是TIM_CHANNEL_1~TIM_CHANNEL_4返回值HAL状态值注意事项该函数在定时器初始化完成之后调用函数需要由用户调用,用于启动定时器的指定通道输出PWM信号26--

南昌大学“卓越”辅导员培养工程建设2 定时器比较/捕获寄存器设置函数:

HAL_TIM_SET_COMPARE()接口函数:

HAL_TIM_SET_COMPARE()函数原型HAL_TIM_SET_COMPARE(

HANDLE

,

CHANNEL

,

COMPARE

)功能描述设置捕获/比较寄存器TIMx_CCR的值。在PWM输出时,用于改变PWM信号的占空比参数1

HANDLE

:定时器句柄的地址参数2CHANNEL

定时器通道号,取值范围是TIM_CHANNEL_1~TIM_CHANNEL_4参数3

COMPARE

:写入捕获/比较寄存器TIMx_CCR的值返回值无注意事项该函数是宏函数,进行宏替换,不发生函数调用。函数需要由用户调用,用于PWM输出时,改变PWM信号的占空比。273 基础任务:输出PWM信号28基础任务01任务目标掌握CubeMX软件配置定时器输出PWM信号的方法。02任务内容产生周期为200ms,占空比为50%的PWM信号来控制STM32F407开发板上的用户指示灯LED灯(PF9)。Timer输出PWM信号29--

南昌大学“卓越”辅导员培养工程建设设计思路Timer引脚PF9的复用功能中与定时器输出功能相关的是TIM14_CH1,因此使用定时器14的通道1输出PWM信号;使用定时器14,挂接在APB1总线上,定时器时钟TIM2_CLK为84MHz;PWM周期为20ms,可以假设PSC为(8400-1),根据公式可以计算出ARR的值为(200-1);占空比为50%,则CCR为100。设计思路30Timer引脚分配31在引脚分配图中单击PF9,选择PF9的功能为“TIM14_CH1”,如图3-31所示。选择PF9引脚功能为TIM14_CH1,表示利用定时器14的通道1作为PWM输出注意:此时引脚颜色为橙色,表示只完成了引脚分配,但对应的外设功能还没有使能32Timer外设配置勾选,激活选择通道1为PWM输出模式引脚PF9变为亮绿色,表示完成PWM引脚配置33Timer外设配置配置时基单元配置PWM输出通道设置预分频系数PSC为8400-1,自动重载值ARR为200-1,表示PWM信号的周期为20ms注意:在大多数情况下,选择开启CCR寄存器的预装载功能,让占空比的变化在下一个PWM信号周期才生效其他参数采用默认配置:使用PWM1模式使能CCR寄存器的预装载功能关闭快速输出模式输出有效电平为高电平Timer程序编写main.c步骤六:程序编写34

/*USERCODEBEGIN2*/

//启动定时器14的通道1输出周期为20ms,占空比为50%的PWM信号HAL_TIM_PWM_Start(&htim14,TIM_CHANNEL_1);//启动定时器14的1通道输出PWM

/*USERCODEEND2*/35PWM信号参数:Timer运行结果程序运行结果指示灯LED每隔10ms闪烁一次,通过逻辑分析仪可以得到如下波形:4 进阶任务:实现呼吸灯36进阶任务01任务目标掌握CubeMX软件配置定时器输出PWM信号的方法。02任务内容利用PWM信号控制STM32F407开发板上的指示灯LED。设置PWM周期为

20

ms,占空比从0%开始,步进为20%。递增到100%后,又从0%开始,并重复整个过程。占空比修改的时间间隔为100ms。Timer实现呼吸灯37利用人眼的视觉暂留效果,扫描频率需大于50Hz,以避免闪烁--

南昌大学“卓越”辅导员培养工程建设设计思路Timer定义2个变量:占空比Duty和步进值Step。占空比从0%逐次步进到100%,步进比例为20%,步进时间间隔为100ms。PWM信号的周期为20ms,定时器14的定时器时钟TIM14_CLK为84MHz,根据公式可以设置预分频系数PSC为8400-1,自动重载值ARR为200-1;占空比从0%开始,因此写入捕获/比较寄存器CCR的初值为0,然后在while循环中调用宏函数

HAL_TIM_SET_COMPARE修改CCR的内容,从0开始,逐渐增加到200,步进值为20。并重复该过程。设计思路3839Timer外设配置配置定时器1439配置时基单元配置PWM输出通道设置预分频系数PSC为8400-1,自动重载值ARR为200-1,表示PWM信号的周期为20ms设置捕获/比较值CRR为0,表示PWM信号最初的占空比为0%40/*USERCODEBEGINPV*/uint16_tDuty=0;//占空比uint16_tStep=20;//步进值/*USERCODEENDPV*/

/*USERCODEBEGI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论