最近使用STM32开发步进电机运动控制设备,最早使用stm32定时器开发,直接使用定时器输出PWM脉冲,如果单纯输出定速的PWM可以,但是要实现步进电机从低速开始加速到高速运行,最后又减速停机,就超级麻烦了,特别是S曲线加减速,要了老命了都。最关键的是,stm32的cpu要参与计算下次脉冲输出周期,如果是只控制一个电机还好,要是同时控制多个电机同时联动,甚至插补运动,比如3--6个电机,基本上就不可能了,除非做的很慢很慢,要不根本无法保证速度的均匀性,以及每个电机的插补间隔,因为单片机的CPU计算一个轴的脉冲时间,随便做几次乘法就得mS级别时间了。后来就彻底放弃了,直接改用了STM32+专用运动控制芯片的方案,STM32只是往运动控制芯片里面写寄存器值,整个运动控制过程由运动芯片自己完成。专用运动控制芯片的选择基本上市面上找来一下除了日本的NPM和NOVA,另外还有就是国产的恒凯科技的HMC80X3系列等,日本的芯片操作起来非常复杂,光看手册得几个星期才搞明白,国产的要简单的多。本主题由 ElecFans小喇叭 于 2019-11-11 16:02 审核通过 |
