关键词:两相步进电机;STM32F103RET6;A3985;H桥;细分;梯形加减速
Abstract: A stepper motor controller is designed, and the control parameters are set by the upper computer. This design takes STM32F103RET6 system as the main control unit and A3985 plus double H bridge as the driving unit of the two-phase stepping motor. The upper computer serial interface as the human-computer interaction interface can control the maximum current and current subdivision of the two-phase stepping motor and realize open-loop control including rectangular and trapezoidal acceleration and deceleration drive。A detailed analysis of the driving chip and related interface circuit, controller design scheme.
Key words: Two-phase stepping motor; STM32F103RET6; A3985; H bridge; Subdivision; Trapezoidal acceleration and deceleration
1 引言
随着科技进步,高效便捷的运动控制一直是设备自动化、智能化中重要内容,作为数字电机的步进电机,因其控制和驱动的简单、成本较低、体积可较小等特点而应用广泛。
本文旨在以STM32F103RET6[1]系统作为主控制单元,并以A3985[2]外加双H桥作为两相步进电机的驱动单元,构成一套控制器,其能控制两相步进电机的最大电流、电流细分,实现包括矩形、梯形加减速驱动的开环控制。
2 A3985的特性和工作原理
2.1 A3985的特性
A3985是一款灵活的双路全桥门极驱动器,适用于驱动高功率双极两相步进电机。需有由外部N通道MOSFET功率管提供电动功率。电源电压为12至50伏特,电流值上限决定于外部MOSFET管的大小。
具有SPI通信口,内有两个串行寄存器提供了完全数字控制,可实现对关机时间、消隐时间、停机时间、混合衰减系数等编程。所有内部时间可以从主时钟获取,主时钟可由芯片产生。
可通过带一个方向位和两个6位线性DAC的串行端口及参考电压设置期望的负载电流电平及方向。支持微步至全步进驱动。
具有电流换向死区保护、内部过热断电保护(TSD)及欠压闭锁保护(UVLO),芯片温度过高、欠压都会自动关闭工作。
相较常见如A3977等内置功率MOS管驱动芯片,A3985的驱动电压大,可选择大电流的N沟道MOSFET。通过SPI通信对其寄存器进行灵活配置,达到多种控制效果,如细分电流值的灵活设定。
2.2 A3985的工作原理
如图1所示为A3985的功能框图。示意了芯片内部基本功能及外连的H桥电路。如表1所示为A3985的寄0和寄1的位说明。
图1 A3985功能框图
表1 寄0和寄1的位说明
由图1所示,A3985内置的主要单元有1个SPI接口电路,大部分功能都通过SPI访问操作,SPI内部拥有2个寄存器,如表1所示:字0数据寄存器,字1控制寄存器(以下简称寄0、寄1)。寄0可设定参数:寄0选定、DAC值、H桥上下臂通断逻辑、跨导Gm值,寄1可设定参数:寄1选定、消隐时间、PWM关断时间、快速衰减时间、时钟选择、同步整流、空闲模式;2个可编程PWM控制电路,配合内置放大电路驱动每个外部H桥,具有PWM载波定时、消隐、衰减模式设定功能;2个设定电流的6位DAC电路;2个电流感应比较器;2套内置放大电路,分别驱动对应外部H桥。
2.2.1 H桥内电流的控制原理:
每个外部H桥(由N沟道MOSFET构成)上流经的电流由固定关断时间的PWM控制电路决定,该电路将每相绕组中的负载电流限制到所需的值ITrip(max),即最大电流值。在电机运行每一步时,H桥上的电流由外部电流感应电阻器RSENSE1或RSENSE2(以下简称RSENSE)上的电压值、参考电压VREF以及DAC输出值同时决定。
如图1,最初,一对对角的源型和漏型MOSFET被启用,电流流过电机绕组和电流感应电阻器RSENSE。当RSENSE上的电压大于等于DAC输出电压时,电流感应比较器重置PWM锁存器,从而关闭源型MOSFET管(慢衰减模式)或漏型和源型MOSFET管(快衰减模式)。通过选择RSENSE和参考电压VREF来设置最大电流值,下面是近似公式:
公式(1)
公式(1)内的跨导Gm是个范围因子,由寄0内对应跨导Gm位设定。
在电机运行的每一步时,6位宽度的DAC会依据VREF值输出一电压值VDAC到电流感应比较器一端,公式如下:
公式(2)
公式(2)内的DAC由寄0内对应H桥上的DAC位设定。
每个DAC输出的VDAC电压值对应的电流值为:
公式(3)
不同于如A3977等芯片通过逻辑编译器直接设定细分位。A3985没有直接进行细分设定的逻辑编译器,实施细分时,需要通过软件设定每一步DAC的值。
2.2.2 串行接口及操作
A3985是通过SPI通信控制的:SDI、SDO、SCK、STR引脚分别对应串行数据输入、串行数据输出、时钟、选通。内置的寄0或寄1的数据规范都是一个19位的字长:18位的数据加上1位寄存器选定位。WC是寄1选通引脚,WC高电平时,无法写入寄1,WC低电平时,才能写入寄1,WC状态不影响寄0。篇幅所限,串口写操作时序等信息此处不再敷述。
2.3 A3985逻辑控制策略
针对步进电机驱动,A3985主要的控制有使能、正反转、电流细分、低功耗待机模式。
(1)使能:不需要经过SPI操作,直接操作芯片,设置栅极驱动是否工作。ENBALBE管脚置0使能栅极驱动,置1关闭栅极驱动;
(2)正反转:通过SPI操作寄0的D7及D15位,分别控制外部两个H桥电路的电流正反流向,达到电机正反转目的;
(3)电流细分:通过SPI操作寄0的D1-D6、D9-D14位(6位DAC的设定位),以及D17、D18位(跨导Gm设定位),可以调节外部两个H桥电路的电流值,达到电流动态闭环控制,实现电流细分;
(4)低功耗待机模式:SPI操作寄1的D18位复位,进入低功耗待机模式,这将禁用驱动器输出,设备将消耗较低的负载电源电流。D18位置位1毫秒,离开低功耗待机模式。
3 控制器电路设计
控制器电路主要分为DC电源单元、串口单元、主控单元、驱动单元、I/O单元。上位机指令通过串口单元接收,主控单元的识别、分析指令后,控制A3985驱动单元驱动步进电机。DC电源单元给控制器供电。预留I/O单元方便实际应用。控制器电路总体设计框图,如图2所示。
图2 控制器电路总体设计框图
3.1 硬件电路设计
(1)DC电源单元:作用一为高压DC滤波后供双H桥及外部步进电机使用;作用二为高压DC转为低压DC供STM32和A3985芯片使用。如图3所示,升压芯片TPS0150DRVT将3.3V DC转为5V DC,可供外部编码器使用。电源芯片A8499能将8-50V电源转化为3.3V DC/1.3A低压大电流电源。
图3 DC电源单元
(2)串口单元[6]:主要负责上位机和主控单元通信。上位机通过串口单元发送相应的功能指令给主控单元,主控单元执行上位机的指令,控制A3985驱动单元。如图4所示,GH340芯片能将串口TTL信号转USB信号。
图4 串口单元
(3)主控单元:当主控单元接收上位机的指令,通过SPI通信,让A3985驱动单元执行控制要求。如图5所示,STM32F103RET6为主控芯片,拥有512K字节FLASH、64K字节ROM,带8个定时器,拥有12位DAC输出、SPI、USART通信接口等等丰富资源,满足使用,方便扩展升级。
图5 主控单元
(4)A3985驱动单元:执行主控单元下达的控制指令,驱动步进电机。如图6所示,驱动芯片为A3985,外部双H桥由N通道MOSFET功率管搭建而成,功率管选低导通电阻、低节点电容的SI4900DY,当环境温度70摄氏度时,其峰值电流能达3.4A。与功率管栅极串联的电阻R48-R56能控制功率管的栅极电容瞬态充放电流的速率。C43-C45为配合驱动桥正常工作的自举电容。RSENSE1和RSENSE2为高精度的电流感应电阻,阻值为40mOhms±1%。
图6 A3985驱动单元
()I/O单元:从主控芯片引出I/O方便实际应用。I/O口有一部分用于扩展光耦I/O,可用于接收原点位置等信号,另一部分是直接从芯片引出,可用于比如对接编码器输出接口。如图7所示,低速光耦IS2801可隔离两端串扰。
图7 I/O单元
3.2 功能设计
硬件设计是搭建基本平台,必须辅以简单的软件控制,实现控制器的基本功能:
(1)实现步进电机最大电流、电流细分控制
最大电流控制:最大峰值电流如公式(1)。本设计结合需求,在选定硬件的电流感应电阻RSENSE后,主控单元STM32控制自带的12位DAC输出VREF和设定A3985芯片的跨导Gm,决定最大电流值。
结合芯片、元器件的参数以及环境温度,电路供电范围12-48V DC,驱动最大有效电流从0.6A到2.6A均可选择,4层板PCB布局。
电流细分控制[3] [4]:电流细分按公式(3)。为简编程化,只在设定最大电流时选定跨导Gm,细分中不再调Gm。确定了Gm和RSENSE,主控单元通过SPI通信实时调整A3985芯片的6位DAC值,改变VDAC电压,达到电流细分变化目的。每一步进的电流细分,也就是这样得来的。
A3985芯片拥有的6位DAC,电流细分数可实现整步、2、4、8、16、32、64细分。
(2)实现步进电机任意步进角度、步进速度及换向的控制
任意步进角度、速度的控制:上位机先设定最大电流、细分数、运行角度、加减速度、运行速度等参数,再选择运行指令,通过串口下达给主控单元,主控单元通过判断分析,选定相应的程序模块,通过SPI操作,逐步更新A3985中寄0或寄1,其中主控单元控制STR选通信号的次数和频率。
在更新一次A3985中寄0或寄1值之后,操作一次STR选通,寄存器值会在STR的上升边沿立即通过A3985芯片进行解析,驱动双H桥电路完成一次电机步进。对于指定运行角度,根据主控单元的内置程序计算出要步进的次数,执行多次步进即可。
STR选通频率决定了寄存器值的更新频率,对应步进电机的运行速度。运行中再配合A3985芯片的DAC值的指定规律变化,实现步进电机在指定运行速度下的恒力矩步进[4]。
换向控制:主控单元STM32通过SPI操作寄0的D7及D15位,分别控制外部两个H桥电路的电流正反流向,达到电机正反转目的。
4 软件设计
鉴于软件开发周期、性价比的考虑,本设计采用矩形、梯形加减速两种的开环控制。
矩形驱动主要概念是步进电机的启动频率等于运行频率,直至完成指定步进距离。本设计软件上只要通过STM32的SPI通信及时更新A3985芯片的字0和字1寄存器值以及STR选通频率,就能达到指定的运行频率。步进的速度和步进数的控制,通过STM32定时器中断程序处理SPI通信更新寄0、寄1数据、STR选通频率和次数完成。
梯形加减速驱动主要概念是步进电机的启动和停止频率小于运行频率,运行到运行频率需要有加速度过程,到指定步进距离前一段时间还有减速过程,但加速度和减速度的值是恒定值。控制梯形加减速算法见参考文档[5][6],很容易修改并移植到STM32,此处不再摄述。
矩形、梯形加减速程序分别封装为独立的子程序模块,子程序模块的入口参数是驱动基本参数包括梯形加减速算法的必要参数以及A3985的基本配置参数,包括运行电流、待机电流、细分、运行方向、加速度、减速度、运行速度、单程运行距离等,这样做方便主程序调用。
为了提高程序运行速度,软件设计将电流细分比率分别存储在STM32的flash中,当上位机指定细分等驱动基本参数,下达指令给主控单元,主控单元会对比查询,如果存在就调用flash中的对应细分数据,不必增加额外的计算时间,达到用增加存储空间换取减少运行时间的效果。
通过串口通信,实现上位机与控制驱动器的信息交互。
STM32主要控制方式:(1)中断查询串口通信信息,分析信息,如果收到上位机有效指令,返回接收指令,表示接收成功,否则返回0XFF;(2)如果接收成功,对有效指令解析,配置驱动基本参数,并运行对应的程序,驱动步进电机。
4.1 串口通信指令设计
串口通信上位机发送指令有:(1)启停模式;(2)驱动基本参数设定:运行电流、待机电流、细分、运行方向、加速度、减速度、运行速度、单程运行距离、停顿时间、往返次数等;(3)低功耗待机模式;(4)矩形驱动模式;(5)梯形加减速驱动模式。
指令的发送协议以“[”为起始码,以“]”为结束码。驱动基本参数设定指令的协议在前面基础上增加一个”+”识别,”+”前是参数名,”+”后是数据,如运行电流参数指令为[RunCurrent+Data]。当下位机执行完上位机指令后再次返回接收指令+OK,不成功就返回0XFF。上位机发送指令如表2所示。
表2 上位机发送指令
4.2 控制器的控制策略
STM32软件程序为主控程序。
(1) STM32检测连接,成功连接后,返回成功连接标志。
(2) 自动将启停模式处于停止状态,禁止A3985驱动单元输出,且屏蔽主控单元STM32无关中断,防止误触发,等待上位机指令。
(3) 中断查询串口信息,检测到上位机有效指令后返回接收指令,否则返回0XFF并回到第1步。
(4) 自动打开STM32相关中断,将启停模式处于启动状态,使能A3985驱动单元输出
(5) 成功接收后,对上位机有效指令解析,并与上位机通信,得到驱动基本参数,之后再运行对应的程序如低功耗待机模式、矩形驱动、梯形加减速驱动。
(6) 程序运行至结束,再次返回接收指令+OK,回到第3步,不成功就返回0XFF。
软件设计流程图如图8所示。
5 结论
通过对系统软硬件进调试,该控制器能设定电流大小、细分等参数,开环控制两相步进电机,满足常见单轴定位的要求。缺陷:热插拔电机线接口有烧功率管的情况出现;上位机软件操作不够人性化,后续还待改进。
参考文献:
[1]意法半导体. STM32F103英文数据手册[EB/OL]. http://www.st.com/stonline/products/literature/ds/14611.pdf.
[2]A3985-Datasheet. https://www.allegromicro.com/~/media/Files/Datasheets/A3985-Datasheet.ashx[EB/OL].
[3]曹彪乾,陈远增,孙书鹰,等. 基于STM32步进电机多细分控制设计[J].科学技术与工程,2013,13(23):6894-6897.
[4]朱桦,张中炜,袁振. 基于 STM32F103RB的两相混合式步进电机细分驱动器设计[J]. 电子设计工程,2012,(10):119.
[5]AN_8017. http://ww1.microchip.com/downloads/en/AppNotes/doc8017.pdf[EB/OL].
[6] AN_8017 Source Code. http://ww1.microchip.com/downloads/en/AppNotes/AVR446.zip[EB/OL].
第一作者简介:
言军,男,应用工程师,海顿直线电机(常州)有限公司,从事电机驱动设计及技术应用。
第二作者简介:
孙毅,男,高级应用工程师,海顿直线电机(常州)有限公司,从事电机驱动设计及技术应用。
共0条 [查看全部] 网友评论