OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3845|回复: 7

如何控制PWM波脉冲频率

[复制链接]

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
发表于 2018-5-4 16:57:00 | 显示全部楼层 |阅读模式
1金钱
最近在做57步进电机的控制,步距角1.8度,也就是说1转200个脉冲,把驱动器调到32细分,也就是6400个脉冲转一圈,也就是6400HZ,我用的stm32F407的芯片,这个时钟频率是84M,但根据通过设置分频系数和计数器的最大计数值,好像得不出来6400这个数啊,除不尽...怎么办


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-5 01:26:24 | 显示全部楼层
论坛搜索,参考别人的代码。我们的步进电机驱动器就有提供精确脉冲输出的,6400个不算啥。
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2018-5-7 09:47:16 | 显示全部楼层
正点原子 发表于 2018-5-5 01:26
论坛搜索,参考别人的代码。我们的步进电机驱动器就有提供精确脉冲输出的,6400个不算啥。

你是什么驱动器啊,能提供个代码或者思路么
回复

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-5-7 09:50:10 | 显示全部楼层
驱动器自己就是可以细分6400的
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2018-5-8 10:26:37 | 显示全部楼层
炫色康康 发表于 2018-5-7 09:50
驱动器自己就是可以细分6400的

细分是细分步距角的....但脉冲频率还是自己控制的
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2016-4-6
在线时间
7 小时
发表于 2018-5-8 13:41:52 | 显示全部楼层
6400是脉冲个数,发6400个脉冲就转一圈,所以6400不是频率。你可以通过控制芯片IO口发送脉冲的频率从而达到控制电机旋转速度的效果,例如你1秒发送6400个脉冲那么它1秒就转1圈。100毫秒发送6400个脉冲那么它10毫秒就旋转1圈。脉冲频率通过定时器设置,详细方法可看PWM例程
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2018-5-8 16:23:21 | 显示全部楼层
chanlaptou 发表于 2018-5-8 13:41
6400是脉冲个数,发6400个脉冲就转一圈,所以6400不是频率。你可以通过控制芯片IO口发送脉冲的频率从而达到 ...

你要在固定时间内发送6400个脉冲,肯定是要设定定时器的计数频率和重装载值吧,我想问的是如果通过84M/一个数,最后得出来的计数频率除不尽怎么办?
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2016-4-6
在线时间
7 小时
发表于 2018-5-8 17:28:31 | 显示全部楼层
fengruixin1992 发表于 2018-5-8 16:23
你要在固定时间内发送6400个脉冲,肯定是要设定定时器的计数频率和重装载值吧,我想问的是如果通过84M/一 ...

定时器加1的时间1/84M=1.19047619047619e-8秒,除不尽,纳秒级别了,你可以根据自己需要的频率来决定取多少位小数来达到最大可能的接近需要设置的频率。如果你做的东西需求精度不是特别高的话这点偏差不影响。如果你的东西要求旋转角度精度特别高的话就要考虑电机长时间旋转产生的偏差累积,可能小偏差电机用几天也不明显,但是如果几个月或者更长时间不关机的运转的偏差累计还是很大的,极少成多,每秒差几个脉冲一个月下来就差好多了。这个时候就需要电机的反馈信号来确保精度了,可以加个编码器之类的传感器。不过精度要求那么高了,成本预算足够的话就直接用伺服电机吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 05:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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