最近eeworld在使用用LM3S811来DIY一些东西,本人曾经做过一些步进电机方面的控制,但都是使用一些公司的成品驱动器和控制板卡来做,对于最底层的步进电机的驱动却没有实际做过,既然论坛给了这个机会,也想抓住这个机会,和论坛的朋友一起完成这个DIY项目。自己在这个方面只是浅显的理解,如果有什么错误,请各位大侠多多指点。
下面主要讲一下我的思路,如下图所示,是总的框图,整个系统包括主要包括三个部分: 上位机(PC或者工控机),下位机(LM3S811),驱动电路,电源模块以及步进电机。上位机主要驱动器状态显示和参数设定;下位机主要通过串口与上位机通信,以及控制驱动电路等。驱动电路主要是为了实现功率放大;电源模块主要为了系统提供电源。
其中驱动电路有两种实现思路,一种是用现有的集成芯片驱动步进电机,如THB6064AH,这种方式制作的驱动电路简单,可靠性好等优点,但是由于许多功能已经集成固化了,所以无法扩展其功能。比如,这个芯片最大支持64细分,想要更高的细分就没有办法了,下图给出了一个简单实例:
另外一种是用分立器件制作驱动电路,查看TI的网站,可以看到TI已经有了步进电机控制和驱动的解决方案。如下图所示:
基于上图,TI还给出了基于Stellaris系列单片机的步进电机的参考设计,对于我们的DIY活动很有参考价值,文档spmu026a,给出了参考设计使用指南。关于这种方式,还有一个问题就是细分,如何实现细分,还需要研究。现在我们先了解一下什么是步进电机的细分:细分的基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器工作在 10 细分状态时,其步距角只为‘电机固有步距角’的十分之一,也就是:当驱动工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动 1.8°;而用细分驱动器工作在 10 细分状态时,电机只转动了 0.18°。细分功能完全是由驱动器靠精确控制电机的相电流所产生的,与电机无关。关于细分的内容还需要详细学习。
附件给出了TI关于步进电机的几个文档资料