0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于定时器输出的PWM频率范围及占空比精度

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-12 10:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我想要TIM定时器输出的PWM波形:0.1%精度占空比, 频率范围:200Hz - 10KHz。请问能实现吗?

Ⅰ写在前面

如果有朋友下载了上一篇文章我提供的例程,在“bsp_timer.h”文件下,你就会发现有如下一段被我注释了的【说明性文字】。

这个工程是我从之前项目中提取出来(复制部分代码),从新整理的一个的工程。里面的这个被注释了的描述文字是之前整理的,今天重新对其说明一下。

这里句题外话:

我一般都是注重让大家明白其原理,提供的工程代码以简单为原则。比如:没有添加系统,没有添加参数越界检查等额外的代码。不是让你直接拷贝过去就用,一般需要结合你实际工程,对其修改。

Ⅱ解读那段文字

想要认真掌握定时器输出PWM的朋友,可以品味一下那段文字。

1.定时器的位数

STM32中,定时器分16位和32位,这个好理解。简单的来说,就是16位定时器相关的寄存器包含计数器是16位的,计数的范围是0 ~ 0xFFFF。同理,32位计数范围为0 ~ 0xFFFF FFFF。

当然,上面提到的相关的寄存器,其实只有几个,计数器、自动重载寄存器、捕获/比较寄存器等,具体请参看手册中关于TIM寄存器章节。

截图中,频率的范围,其实说明了32位定时器的优势。但是,在STM32中,有些型号的MCU是没有32位的定时器的(具体请见选型手册,或数据手册)。

2.占空比,周期(频率)

PWM占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。

比如:拿1KHz波形来说,占空比为20%,即高电平0.2ms。

在STM32定时器中,占空比其实是对应【捕获/比较寄存器】的值,你可看见我提供的代码:

#define PWM_TIM_SetComparex TIM_SetCompare1

捕获/比较寄存器有1,2,3,4,对应的其实是你输出的通道。

占空比的数值,需要结合PWM的频率,所以代码中是:

pwm_pulse = (pwm_period + 1)*Dutycycle / 100;

pwm_period:是PWM周期值;

/100代表:占空比的大小。

周期值:其实就是【自动重载寄存器 (TIMx_ARR)】是值;

看见我标记为红色的文字没有?这两个值决定了PWM的周期和占空比。

3.计算频率和占空比

频率 = 1/周期; 1KHz的周期 = 0.001秒,即1ms.

波形频率(周期)案例:

假如计数时钟CK_CNT(看上图)一秒钟计数10M次:

我们需要1KHz波形,即1ms(波形1K)CNT计数个数为10K个,自动重载寄存器ARR设定值为10K。

我们需要10KHz波形,同理:自动重载寄存器设定值为100K。

占空比(1KHz波形)案例:

假如CK_CNT一秒钟计数1M次:

我们需要1KHz,0.1占空比波形:同上分析,ARR的值为1K,则捕获/比较寄存器 1 (TIMx_CCR1)值为1。(为什么是1? 1KHz * 0.1%就等于1)

我们需要10KHz,0.1占空比波形:同理计算CCR1值:等于1KHz * 0.1%就等于0.1。显然

两案例的结论:

1.100K > 65535,对于16位定时器来说,肯定不行啊。对于32位定时器就行。

2.CCR1的值不可能为0.1。

3.我们就需要改变计数时钟CK_CNT来达到要求,也就是分频。

4.自己设定边界值,通过修改TIMx_PSC、TIMx_ARR和TIMx_CCR三个寄存器参数,来满足自己要求。如果不能满足,那么选择32位定时器。如果32位都还不能满足,那就······

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5890

    浏览量

    226513
  • STM32
    +关注

    关注

    2312

    文章

    11189

    浏览量

    374540
  • 定时器
    +关注

    关注

    23

    文章

    3372

    浏览量

    124454
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    JL杰理AC696N开发板PWM波形生成与控制(1):频率占空比配置

    32-JL杰理AC696N开发板PWM波形生成与控制(1):频率占空比配置 引言 PWM调光、调速、甚至模拟发声,这些场景做嵌入式的天天见。JL杰理AC696N的
    发表于 04-03 21:44

    【瑞萨RA × Zephyr开发板评测】+动态调节PWM占空比测试

    GTPR 设置的值)/下溢 • 周期计数功能完成 本设计在每个周期溢出时产生中断,进一步调节占空比,使用P213引脚作为PWM输出端口,生成动态可调节占空比
    发表于 01-20 19:18

    LAT1173高精度定时器的同步功能应用笔记

    STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器,多个定时器之间可以单独工作,也可以进行同步,且高精度
    发表于 01-11 17:32 0次下载

    LAT1183+高精度定时器中 single-shot 计数模式不工作应用笔记

    PWM 输出,在调试模式下发现该子定时器的计数一直为 0,即计数一直没有启动,但如果将计数方式修改为continuous 模式,其他保
    发表于 01-11 17:28 0次下载

    CW32系列微控制的时钟源和定时器选项介绍

    ,用于基本的定时和计数功能。 高级定时器:这种定时器通常具有更多的功能和更高的精度,可以用于更复杂的定时和计数任务,如
    发表于 12-16 06:26

    CW32通用定时器输出比较

    定时器输出比较功能,对应上图下半部分右侧的输出功能。这种方式可以便捷快速地输出一个可轻松修改占空比的方波,而这种对信号的处理方式,也叫做
    发表于 12-11 06:45

    CW32L010+定时器介绍

    和预分频系数,可以实现精确的定时控制。例如,在闹钟应用中,可以使用定时器来设置闹钟的响铃时间。 PWM输出:高级控制PWM
    发表于 12-01 07:53

    PWM定时器、SysTick 区别及应用场景

    在单片机和嵌入式开发中,经常会遇到PWM(脉宽调制)、定时器、SysTick(系统滴答定时器)这几个词。很多初学者容易把它们混为一谈,以为都是“定时相关的东西”。其实,它们在本质和应用
    的头像 发表于 11-17 10:53 681次阅读
    <b class='flag-5'>PWM</b>、<b class='flag-5'>定时器</b>、SysTick 区别及应用场景

    【RA-Eco-RA6M4开发板评测】PWM输出

    的控制。 在瑞萨RA6M4系列 MCU 中有两种定时器,一种是通用 PWM 定时器 GPT,另外一种是异步通用定时器 AGT,在这里我们使用通用定时
    发表于 11-09 21:30

    定时器同步之并行模式

    事件作为 TRGOUT 源,用于触发两个从定时器。TMR3 和 TMR4 作为从定时器,开启挂起模式用于与主定时器进行同步。并且使能 TMR2_CH1,TMR3_CH1,TMR4_CH1 比较
    发表于 09-22 09:56

    【RA4E2开发板评测】3、瑞萨RA4E2微控制PWM输出教程

    占空比 添加错误处理代码,便于诊断问题 使用LED指示PWM状态(如错误时闪烁) 常见问题解决 无PWM输出 :检查引脚配置、时钟设置和定时器
    发表于 09-17 09:14

    【RA4M2-SENSOR】3、使用GPT定时器-PWM输出

    结合起来使用的话可以实现更加丰富的功能, 可以对输入信号进行计数,可以测量输入信号的脉冲宽度,可以输出单个脉冲、PWM 等波形,等等。 通过定时器生成 PWM 波形信号来控制电机状态是
    发表于 09-01 15:20

    【沁恒CH585开发板免费试用体验】PWM 输出

    PWM4~PWM11)或6 路 16 位 PWM 输出PWM4~PWM9),
    发表于 07-05 23:16

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 PWM输出

    Cycle Percent:设置PWM占空比,当然也可通过代码修改,这里就设置为50 GTIOCB Output Enabled:使能 GTIOCB 输出 GTIOCB Stop Level:设置
    发表于 04-28 22:57

    MCU定时器/计数

    架构与功能特性‌ 定时器类型与配置‌ 高级控制定时器‌:支持互补PWM输出与刹车功能,适用于电机驱动等高精度控制场景。通用
    的头像 发表于 04-27 13:54 915次阅读