硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3290|回复: 3
收起左侧

[有问必答] 关于PWM频率精度的问题

[复制链接]

1

主题

103

回帖

106

积分

初级会员

积分
106
发表于 2019-12-5 22:58:39 | 显示全部楼层 |阅读模式


最近在使用STM32F103ZET6产生PWM波,发现另一个问题:

1、当我设置为500KHZ的频率时,用示波器可以捕捉到500KHZ的波形。当我想生产501KHZ时,示波器没有变化,502KHZ,没有变化,503KHZ,示波器任然显示500KHZ。
     当增加到504KHZ时,示波器可以捕捉,显示 504KHZ。 一直往上面加,基本是过4KHZ时才跳动一次。  我用3个示波器都测试过,结果都一样。
     也用了硬汉的PWM产生的BSP文件里面的函数,结果也一样。

     各位大侠,能知道这是怎么一回事吗?

   芯片用外部晶振8MHZ,倍频到72MHZ的系统时钟。

2、 如果用STM32F407VE系列,系统时钟168MHZ,能否做到在500KHZ到600KHZ,1KHZ的调整了?
    目前手上没有板子,不好验证。

求各位指点。

                      目的就是想PWM频率达到500KHZ后,能够做到1KHZ的增减。



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2019-12-6 09:12:19 | 显示全部楼层
先手动计算下,你设置为501Khz时,实际计算出来的是多少。
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2019-12-6 09:22:53 | 显示全部楼层
本帖最后由 caicaptain2 于 2019-12-6 09:26 编辑

这个需要你手动计算一下,或者debug的时候跟踪一下,看看写入到定时器的计数值是多少? 只有计数值变化了,才能真正的改变输出频率。

我来算一下,f103的定时器的时钟可能是36MHz,设定500k频率的时候,计数值是72。设定501k的时候,计数值71.8(还是72),504k的时候,计数值71.4(约等于71)。所以500~503Khz之间都无法输出
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2019-12-6 09:31:27 | 显示全部楼层
我又想了一下,你这个需要的计时分辨率很高的。 相当于1/600k-1/601k=2.77ns。那么定时器的时钟必须是360MHz以上。 F1,F4系列的都不行了。

最近st在推广G4系列,说是定时器分辨率达皮秒级别。 你可以去看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-31 07:16 , Processed in 0.151314 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表