ST意法半导体
直播中

康桃花

7年用户 925经验值
私信 关注
[问答]

如何使用步进驱动器drv8711和stm32微控制器更新频率以生成步进电机步进脉冲?

我是 Sai 希望你一切都好
我在计时器方面遇到了一些问题。
我正在使用 STM32f4、f7 微控制器来脉冲步进电机驱动器的步进输入。我已经使用 HAL 层配置了我的计时器。我想以几毫秒 (12ms) 的速度将频率从 100hz 扫描到 200khz。
在我的应用程序中,外围设备配置为 tim3 作为基本定时器,tim1 作为输出比较切换模式(将其用于步进脉冲)并且在每个定时器 3 更新事件中我更新定时器 1 的周期以更改频率(不知道天气更新tim1 事件是否发生)。一切都按预期工作,但大多数时候我的电机会抽搐,我假设 tim1 周期的多次更新会在步进脉冲中产生一些毛刺。我没有办法确认。
如果我在输出模式下使用 GPIO 生成步进脉冲,那么电机会在没有任何 **** 的情况下平稳加速,但我想使用定时器做同样的事情。  
频繁更新定时器ARR值是否可行。      
我已经参考了 Cross timer 和 general purpose time cookbook application notes 但没有找到有效完成此任务的正确方法。









回帖(1)

魏霖

2023-1-17 11:07:41
我认为您缺少 ARR 预加载功能,请通过以下方式启用它


  • TIM1->CR1|=TIM_CR1_ARPE;

这样,ARR 寄存器更新将延迟到下一次计数器溢出时发生。请参阅参考手册中定时器功能描述/计数器模式章节中带和不带 ARPE 的时序图。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分