打印
[AT32F421]

如何测量周期变化的PWM信号占空比

[复制链接]
2783|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fcccc|  楼主 | 2021-6-9 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fcccc 于 2021-6-9 22:31 编辑

问题:
使用的TIM3输入捕捉,上升下降沿都触发中断,中断读取捕获值,来测量一个周期和占空比都变化的PWM信号的占空比;
频率从500HZ~2Khz,占空比从0~100%;实时性要求需要在2个周期内测出来准确的占空比.
遇到的麻烦是当占空比很低,或者很高的时候,也就是下降沿和上升沿时间间隔非常小,定时器输入捕捉无法准确抓到两个相邻边沿,偶尔丢失一个边沿就造成本来接近99.9%的占空比测成了50%;

有什么好的解决办法吗?

使用特权

评论回复
沙发
lidi911| | 2021-6-10 07:44 | 只看该作者
用FPGA或CPLD做就很好实现

使用特权

评论回复
板凳
fcccc|  楼主 | 2021-6-10 09:42 | 只看该作者
lidi911 发表于 2021-6-10 07:44
用FPGA或CPLD做就很好实现

不现实

使用特权

评论回复
地板
tanleitanlei| | 2021-6-10 10:47 | 只看该作者
本帖最后由 tanleitanlei 于 2021-6-10 10:48 编辑

可以参考bsp内,Pwm输入捕获demo。感觉你这种中断内获取数据的处理方式在极限情况下获取捕获的数据容易覆盖

使用特权

评论回复
5
fcccc|  楼主 | 2021-6-10 11:14 | 只看该作者
tanleitanlei 发表于 2021-6-10 10:47
可以参考bsp内,Pwm输入捕获demo。感觉你这种中断内获取数据的处理方式在极限情况下获取捕获的数据容易覆盖 ...

就是这个意思,在极限位置容易出错.

使用特权

评论回复
6
tanleitanlei| | 2021-6-10 11:44 | 只看该作者
fcccc 发表于 2021-6-10 11:14
就是这个意思,在极限位置容易出错.

所以用bsp内的pwm输入捕获demo,这种模式捕获的值存在cc1和cc2两个寄存器内的,中断内获取这两个寄存器值,然后计算。应该可以解决问题

使用特权

评论回复
7
fanwei700615| | 2021-6-10 17:22 | 只看该作者
把输入捕获的频率拉到最高

使用特权

评论回复
8
别看我照片| | 2021-6-10 18:14 | 只看该作者
这个很重要,没有必要的。

使用特权

评论回复
9
勇者无惧你和我| | 2021-6-11 08:31 | 只看该作者
最好是使用信号发生器来进行处理,要比较好一些了。

使用特权

评论回复
10
zhamatu| | 2021-6-11 10:28 | 只看该作者
数据手册上有长时间或短时间的解决方案的。当然有些时候需要你软件上做智慧的处理的。

使用特权

评论回复
11
wangshujun| | 2021-6-11 14:26 | 只看该作者
最小周期如果小于一次中断的处理时间就会出问题,否则都应该是稳定的
使用定时器捕获实现难度不大,如果周期太短,比如1兆以上的频率,需要把定时器捕获送入到dma,在dma的中断中可以完成10兆左右的捕获

使用特权

评论回复
12
fcccc|  楼主 | 2021-6-15 15:35 | 只看该作者
wangshujun 发表于 2021-6-11 14:26
最小周期如果小于一次中断的处理时间就会出问题,否则都应该是稳定的
使用定时器捕获实现难度不大,如果周 ...

好的多谢指点,这个方法应该可以.

使用特权

评论回复
13
可爱的烧饼| | 2021-6-15 17:13 | 只看该作者
最好是使用信号发生器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

450

帖子

1

粉丝