基于摩托罗拉(现在 飞思卡尔) 大量使用但过时的 SAA1042 步进电机驱动器 IC,本设计理念描述了基于 CPLD(复数可编程逻辑器件)的步进电机驱动器实现,该驱动器也可以取代基于 SAA1027 或 UCN5804B 的设计中的驱动器。该设计仅使用六个宏单元 赛灵思 XC9536 CPLD,因此可以在一个小容量CPLD中实现多个步进电机驱动器。CPLD步进电机驱动器需要时钟、方向、步长和复位输入。时钟输入接受逻辑电平脉冲,并在脉冲的正边沿上激活。
方向或 CW/CCW(顺时针/逆时针)输入决定了电机的旋转方向。根据电机的电气连接,将此输入保持在 0V 通常产生 CW 旋转,逻辑 1 输入产生 CCW 旋转。步长(即全步或半步)输入决定了电机在每个时钟脉冲下的角度旋转。保持该输入为低电平命令电机针对每个施加的时钟脉冲执行一个完整的步进,高输入产生半步。复位输入上的高电平使电机处于先前定义的状态,并命令CPLD忽略任何输入时钟脉冲。
CPLD的输出包括A相和A_n相以及B相和B_n相,每个相位通过外部电源驱动器IC控制电机的两个线圈之一2 和集成电路3 ,在电机的标称电压(图1 ).每个驱动器输出端的一对肖特基二极管在通过反转绕组电流引起的感性电压瞬变期间保护驱动器的输出。将 MOSFET 驱动器与内部二极管配合使用,例如 微芯片的 TC4424A 双驱动器,可省去对外部二极管的要求。
图1 仿真专用步进电机控制器、可编程逻辑器件、IC1 ,将步进电机信号施加到电机驱动器IC2 和集成电路3 .
CPLD的程序包括一个八态摩尔有限状态机,对应于电机的八个半步态。 表1 显示每个计算机状态的驱动程序输出。在全步状态模式下,状态机仅执行步骤 0、步骤 2、步骤 4 和步骤 6。在每个时钟脉冲的上升沿,如果 CW/CCW 为高电平,则机器状态从步进 (n) 变为步进 (n+1),如果 CW/CCW 为低电平,则从步进 (n) 变为步进 (n–1)。您可以一个 通用 VHDL 实现 步进电机驱动器固件。虽然该代码是为XC9536 CPLD编写的,但它也适用于任何CPLD或FPGA目标器件。
|