搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] 关于STM32定时器发送脉冲

[复制链接]
155|14
 楼主 | 2021-2-22 10:51 | 显示全部楼层 |阅读模式
ST, DM
关于STM32定时器发送脉冲,STM32如何才能同时发送4路不同频率,不同数目的脉冲呢?我用定时器+DMA这种方法控制4个步进电机时,第一个电机和第四个电机之间还是有时间间隔,跑个2分钟位置就乱了,做不到同步啊
223.jpg
224.jpg

使用特权

评论回复
| 2021-2-22 11:33 | 显示全部楼层
这是开环的PWM吗?没有编码器是吗?

使用特权

评论回复
| 2021-2-22 11:34 | 显示全部楼层
我感觉,如果是需要确切的PWM的个数的话,可能就需要多个定时器来进行级联了。

对于这种应用,远不如搞一个FPGA CPLD来方便啊!

使用特权

评论回复
 楼主 | 2021-2-22 12:06 | 显示全部楼层
ADZ2016 发表于 2021-2-22 11:34
我感觉,如果是需要确切的PWM的个数的话,可能就需要多个定时器来进行级联了。

对于这种应用,远不如搞一 ...

感谢回复了,定时器级联 可以用定时器1作为主定时器。控制定时器234从定时器同步输出不同频率不同个数的脉冲吗?FPGA我不会用啊

使用特权

评论回复
| 2021-2-22 12:51 | 显示全部楼层
对于你说的这个功能,其实STM32可能有点复杂,但是,如果你用新唐M480,几乎瞬间解决。EPWM

使用特权

评论回复
| 2021-2-22 12:54 | 显示全部楼层
如果搞不定的话,就直接选择使用总线模式的驱动器吧。

使用特权

评论回复
 楼主 | 2021-2-22 13:55 | 显示全部楼层
ADZ2016 发表于 2021-2-22 12:51
对于你说的这个功能,其实STM32可能有点复杂,但是,如果你用新唐M480,几乎瞬间解决。EPWM ...

好的,感谢大佬指点了!

使用特权

评论回复
| 2021-2-22 15:08 | 显示全部楼层
用输出比较模式一个定时器就可以输出4路不同频率的脉冲

使用特权

评论回复
 楼主 | 2021-2-22 19:13 | 显示全部楼层
gdszzyq 发表于 2021-2-22 15:08
用输出比较模式一个定时器就可以输出4路不同频率的脉冲

脉冲数目也是有要求的

使用特权

评论回复
| 2021-2-22 20:19 | 显示全部楼层
用定时器加DMA应该是可以实现的。
一个定时器稍微辛苦点,多个定时器同步后来实现比较简单点。
一个定时器输出4路不同频率波形的应用示

使用特权

评论回复
 楼主 | 2021-2-23 09:03 | 显示全部楼层
香水城 发表于 2021-2-22 20:19
用定时器加DMA应该是可以实现的。
一个定时器稍微辛苦点,多个定时器同步后来实现比较简单点。
一个定时器 ...

感谢坛友的回复了,一个定时器的比较输出功能对4个通道的PWM输出频率是有个公倍数还是公约数限制的,我这里是无规律的频率,比较输出可能是不行的。
4个定时器怎么做才能同步输出呢?

使用特权

评论回复
| 2021-2-23 10:52 | 显示全部楼层
本帖最后由 gdszzyq 于 2021-2-23 11:49 编辑
白纸扇00 发表于 2021-2-23 09:03
感谢坛友的回复了,一个定时器的比较输出功能对4个通道的PWM输出频率是有个公倍数还是公约数限制的,我这 ...


没有什么公倍数这回事,4个通道采用同一个计数器,有4个比较寄存器,当计数器的值与比较寄存器的值相同时触发中断,这个CCR寄存器可以修改的,这样就实现频率实时可调,达到你所需要的脉冲数量关断该通道中断就行了,也不存在一个定时器输出4路就吃力这回事,我一直都是这样用的

使用特权

评论回复
 楼主 | 2021-2-23 14:01 | 显示全部楼层
gdszzyq 发表于 2021-2-23 10:52
没有什么公倍数这回事,4个通道采用同一个计数器,有4个比较寄存器,当计数器的值与比较寄存器的值相同时 ...

我在网上搜的资料是这样讲的,难道他是错误的吗?我这也没有示波器看到波形
225.jpg

使用特权

评论回复
| 2021-2-23 15:45 | 显示全部楼层
白纸扇00 发表于 2021-2-23 14:01
我在网上搜的资料是这样讲的,难道他是错误的吗?我这也没有示波器看到波形 ...

我定时器的重载值为65535,计数器和比较寄存器也是16位的,不管你的定时周期是多少个计数单位,超过65535就溢出了,所以不存在重加载时波形会混乱,假如重载值是12345,每次累加不管是什么数也没问题,只要加到超过12345时作下处理就行了,也不存在重加载时波形会混乱

使用特权

评论回复
 楼主 | 2021-2-23 20:11 | 显示全部楼层
gdszzyq 发表于 2021-2-23 15:45
我定时器的重载值为65535,计数器和比较寄存器也是16位的,不管你的定时周期是多少个计数单位,超过65535 ...

感谢您的指点了,我自己先试试,碰到问题了再来麻烦您

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表