硬石社区

 找回密码
 立即注册
查看: 4307|回复: 1

[步进电机] 使用定时器控制如TB6600步进电机怎么调速?

[复制链接]

1

主题

1

帖子

956

积分

见习海贼

Rank: 2Rank: 2

积分
956
发表于 2021-8-13 22:09:17 | 显示全部楼层 |阅读模式
问题,我按照硬石的文档弄的。
我的芯片是stm32f030
我使用的是定时器1,用了通道1和通道4,使用的是输出比较模式,TIM_OCMODE_TOGGLE翻转。
我的问题是:
1,sConfigOC.Pulse = Toggle_Pulse;这个脉冲数,到底是如何对应真实频率的?就是Toggle_Pulse和真实定时器输出频率的数学对应关系公式是什么。我找不到任何资料。也不是线性规律。

2,定时器1按教程设置period=0xFFFF,PSC=3,那么实际该tim1的基本定时器才是48M/65536/3=244.14Hz频率。那么此时我就更不明白为啥Toggle_Pulse能变出几KHz的频率了。
我以为Toggle_Pulse就是定时器的CNT数,Toggle_Pulse=500,就是定时器数500次的时候执行一次中断,然后执行高低翻转动作,那么这样频率肯定小于244.14Hz才对。

3,这个TIM1的OC功能,和TIM3是否互相干扰?我TIM3就弄了一个不带输出的普通定时器,用来接收遥控器数据,可是我一按遥控器,TIM1的示波器波形就有干扰。

4,我用的是HAL库,030最大频率是48M,我最多调试验出50KHz的脉冲频率。再调大,我的OLED都不亮了。现象像卡死了一样。
然而别人用标准库的TIM_OCMODE_PWM1方法,可以做出200KHz频率。

5,步进电机驱动器,给脉冲信号的只和频率有关系吗?是否占空比越大,每个脉冲带动的力量越大呢?

谢谢了,这几个问题困扰我好几天了。,提前感谢每一个人的回答。



回复

使用道具 举报

370

主题

1323

帖子

16万

积分

传说中的管理员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
164286
QQ
发表于 2021-8-16 08:53:33 | 显示全部楼层
说了这么多,一句话你对定时器的比较输出功能不了解。我们的视频教程你没看过吧?
因为在我们的视频和文档都有这部分的详细解析。在这里给你作答,太简单有说跟没啥一样,
因为你本身对定时器不了解。说详细了,这不是就是文档和视频吗。
这里针对你的第2点:Toggle_Pulse就是period的值,最开始是0xFFFF所以你算是48M/65536/3=244.14(当然这里实际是:48M/65536/(3+1))
后面你设置Toggle_Pulse=500,实际就是period=Toggle_Pulse=500。。频率就是48M/(500+1)/4
最后,第5点,步进电机驱动器只让脉冲,不认占空比,你能问这问题说明我们的资料你没看,你把我们资料看了估计都不会有这些问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc. ( 粤ICP备16080364号

GMT+8, 2022-9-26 03:57 , Processed in 0.058996 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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