ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DRV8818PWPR与STM32F373VC步进电机驱动实战解析

DRV8818PWPR与STM32F373VC步进电机驱动实战解析 双极步进电机在工业自动化和机器人关节驱动里一直是个“看着简单、调好很难”的东西。很多人上来就选A4988或者DRV8825这类模块但真到了工业现场稳不稳、发热多少、抗不抗得住长时间运行完全是另一回事。这篇文章我直接以DRV8818PWPR配合STM32F373VC为例把从选型、外围电路、固件控制到实测排障的完整思路写出来适合正在搞小型工业设备、机器人底盘/关节、送料机构或者任何要求“定位可靠、电流可控”的步进电机项目的工程师参考。DRV8818PWPR是TI出品的一颗双极步进电机驱动芯片VM电压最高能到45V输出电流峰值2.5A集成了固定关断时间的电流斩波控制外围极简。STM32F373VC这边有意思的是它自带一个高精度定时器HRTIM还有三路16位ADC用于电机控制场合非常顺手。两者配合配合一个小功率步进电机基本可以覆盖大部分中小型工业设备的定位需求。1. 项目概述与方案选型逻辑1.1 为什么选择DRV8818PWPR而不是常见A4988/DRV8825A4988和DRV8825在创客圈流传太广了价格便宜、模块遍地很多人一上来就惯性选择。但做工业项目尤其是要过EMC、要长时间跑、要电流调整灵活的场合这两颗芯片有几个不太舒服的点A4988的电流调节靠电位器整定起来靠手感和经验量产一致性差DRV8825虽然有类似的电流调节机制但它的衰减模式配置相对固定对电机电感适应性不够灵活。DRV8818PWPR则不同它把电流斩波相关的几个关键参数比如关断时间、电流衰减模式、参考电压等留给了设计者做外部配置调整空间大实测下来对不同电感量的电机适应性明显更好。另一个实际差异是封装。DRV8818PWPR是HTSSOP-16封装带散热焊盘热阻表现比QFN封装的DRV8825好不少。工业控制柜内部经常是密闭空间温度动不动五十度以上散热好的芯片故障率低很多。参数A4988DRV8825DRV8818PWPR最大电机电压35V45V45V最大输出电流2A2.5A2.5A电流调节方式电位器电位器外部参考电压 sense电阻衰减模式固定固定可配置混合衰减封装QFN/模块HTSSOPHTSSOP-16工业场景适用性一般中等较好这颗芯片国内通过TI授权渠道或者常见元器件商城都能正常采购价格相对A4988高一些但工业项目BOM成本里一颗驱动芯片的差价完全可以接受换来的却是过流保护、过温保护、短路保护这些实打实的安全特性。1.2 STM32F373VC在电机控制生态中的位置STM32F373VC属于STM32F3系列主频72MHzCortex-M4F内核。F3系列本身就是ST针对“高级模拟外设电机控制”场景设计的内部集成了模拟比较器、运算放大器以及一个非常关键的HRTIM高精度定时器。有人会问控制个步进电机用STM32F103就够了何必上F373这里要说清楚一个区别开环脉冲方向控制也就是传统意义上MCU发PWM脉冲给驱动器F103完全能做但如果你想要的是闭环控制像FOC那样精确控制相电流那么F103的ADC采样速率和定时器分辨率就会比较吃力。F373的HRTIM能输出分辨率高达几ns级别的PWM配合内部的比较器和DAC可以做非常精细的电流环控制。即使初期先用DRV8818PWPR做开环步进控制F373也留出了未来升级到闭环的硬件基础板子不用推倒重来。实际选型时我还考虑过引脚兼容性。STM32F373VC是LQFP100封装引脚资源丰富板子上如果还要接编码器、限位开关、CAN收发器、触摸屏串口基本不用省引脚。对工业设备来说余量就是未来改版的成本。2. DRV8818PWPR关键特性与外围电路设计2.1 供电分区逻辑电源、电机电源和地回路很多人画驱动电路时喜欢把所有电源挤在一起这在步进电机驱动里是大忌。DRV8818PWPR有明确的逻辑电源引脚VCC一般5V或3.3V和电机电源引脚VM根据电机额定电压选择12V、24V或36V。两者必须分开供电并且地线要在芯片下方单点汇聚不能走成一个大环。我实测过一块板子最初把逻辑地和功率地在芯片引脚边上直接大面积覆铜连在一起结果PWM斩波瞬间的电流跳变把逻辑电源拉出接近1V的毛刺STM32F373VC的ADC采集数据偶尔跳变。后来把逻辑电源的地单独走线在芯片下方的散热焊盘附近汇合问题立刻消失。DRV8818PWPR的原理图设计有几个核心点靠近VM引脚放置一个10μF以上的电解电容再并联一个0.1μF陶瓷电容。电解电容负责提供斩波瞬间的电流陶瓷电容滤高频。这个组合千万不能省否则VM上的电压尖峰会直接反映到sense电阻的电流采样上。VCC引脚同样需要去耦100nF就近放置。ROSC引脚决定固定关断时间。数据手册上有关断时间和电阻的对应公式选型时根据电机电感来定。我常用的经验值电感2mH左右的电机选1.1ms关断时间对应的ROSC电阻大约在100kΩ附近。电感更小的电机可以缩短关断时间以提高斩波频率减小电流纹波。电流采样电阻R-SENSE的选型直接决定电流整定范围。公式是I_Trip VREF / (RPGAIN × R-SENSE)。DRV8818PWPR内部有RPGAIN系数常见设置是0.5。如果希望满量程电流1.5AVREF用1VR-SENSE选择1Ω左右即可。注意采样电阻要用低电感、低温度系数的型号最好是合金电阻。2.2 电流斩波与衰减模式的工程调校DRV8818PWPR的电流斩波原理是驱动器通过PWM控制H桥开关检测采样电阻上的电压当电流达到设定阈值时关闭驱动管进入固定关断时间等关断时间结束后重新打开。这样电流被稳定在一个滞环范围内。这里有个关键参数叫衰减模式。电机线圈电流在续流阶段会走不同的回路分成快衰减和慢衰减两种。快衰减的电流下降速率快对电机电感不敏感但电流纹波大、电机噪音大慢衰减效率高、纹波小但容易在电机低速时出现电流失控。DRV8818PWPR允许通过DECAY引脚配置衰减模式。我实测了几组配置慢衰减模式下电机声音略尖但位置精度最好适合低速定位快衰减模式下电流波形更干净但驱动管温升明显增加混合衰减模式是多数场景的折中低速和高速都能兼顾。我的建议是除非你对自己的电机参数非常清楚否则先用混合衰减跑再看温升和噪音决定要不要切换。这一步调试不要跳过直接决定现场的使用感受。3. STM32F373VC固件框架与控制策略3.1 利用HRTIM生成微步脉冲和方向信号传统步进电机控制就是两个信号STEP脉冲和DIR方向。DRV8818PWPR内部已经集成了整步/半步的译码逻辑所以MCU侧只需要生成脉冲序列不需要知道相绕组的具体切换顺序。STM32F373VC生成STEP脉冲有几个选择。最简单的办法是定时器PWM输出但缺点是每个脉冲都要MCU参与如果做加减速曲线CPU会一直被中断占着。我实际采用的是HRTIM的PWM模式配置一个周期可变的PWM输出。变周期的意思是步进电机的速度曲线本质上是脉冲频率随时间变化要加速就逐渐降低HRTIM比较值要减速就逐渐升高比较值。我的实现思路HRTIM配置成单路PWM输出频率初始为2kHz在定时器更新中断里根据当前速度计划表调整周期值加减速计划表在启动前预先算好存成常量数组运行时只是查表更新CCRDIR引脚在启动之前设置好脉冲序列结束前不允许翻转方向。这种架构下CPU在每一个频率更新点只做一次除法其余时间可以处理按键、通信、状态机非常轻松。注意一个细节脉冲频率变化时如果CCR更新不是在线性化好的周期序列里电机就会出现一步快一步慢的顿挫感。所以加减速曲线要用查表而非实时计算。尤其是低频段频率差一点点电机的实际位移都会受影响。3.2 从开环到闭环F373的ADC和比较器为FOC预留条件现在行业内聊步进电机绕不开FOC磁场定向控制这个词。传统意义上FOC多用于永磁同步电机和伺服电机但步进电机的FOC控制这些年也逐渐进入工业应用特别是需要低噪音、高能效的场合。所谓步进电机FOC原理简单解释就是不再把两相绕组简单地按固定顺序换相而是将电流矢量投影到dq坐标系下始终让合成电流矢量垂直于转子磁链方向从而让力矩输出更平滑、效率更高。F373做步进FOC的硬件基础在于两路ADC可以同时采样A相和B相电流配合定时器触发能实现精确的PWM中点采样避开开关噪声内部比较器可以做过流快速关断不需要等CPU响应中断HRTIM的多通道互补输出刚好适配两相H桥的控制。不过用DRV8818PWPR这颗芯片它内部已经有电流斩波硬件FOC做不了全闭环电流环但可以做“电压前馈微步”的折中。我理解很多人刚开始接触FOC概念会有点绕建议先弄清楚电机模型再考虑要不要上真正的电流闭环。4. 硬件接线与实测调试记录4.1 从原理图到实板的搭建流程我做这套系统的调试平台是这样搭的主控板自制STM32F373VC最小系统板晶振8MHzUSB转串口用于调试信息输出驱动板DRV8818PWPR周边电路单独画小板通过排针主控板连接电机57步进电机额定电压2.4V额定电流2.0A电感3.5mH电源24V开关电源加一个1000μF电解电容做储能缓冲。接线时特别注意DRV8818PWPR的nFAULT引脚。这个引脚是开漏输出芯片内部过温、过流时会被拉低。我把它接到了STM32F373VC的外部中断引脚上一旦异常可以快速封锁脉冲输出避免灾难性后果。第一版打样时我在nFAULT上忘记接上拉电阻导致芯片故障时MCU完全没有感知后来加上4.7kΩ上拉到3.3V故障响应就正常了。这个细节很容易被忽略。4.2 示波器实测电流波形和EMC处理驱动板通电后第一件事不是看电机转不转而是用示波器电流探头看电机相线电流波形。空载情况下相电流应该呈现一个标准的斩波梯形波纹波幅度根据衰减模式不同而不同。我实测慢衰减模式下的电流波形的特征是上升沿较陡保持阶段略微起伏下降沿斜率较小。混合衰减模式下下降沿在关断初期先快后慢电流波形看起来会有个明显的拐点。如果示波器上看到电流峰值超过设定值而且持续不降多半是sense电阻选小了或者VREF设置偏高。整机跑起来之后我测了24V输入端的传导干扰。斩波频率大概在30kHz左右电源线上有很明显的开关纹波。处理办法是在电源输入端加共模电感在VM引脚与地之间加TVS管吸收感性负载产生的尖峰电源线和电机线分开走线避免平行布线。这三个措施做完之后系统在EMC预扫描中表现好了很多。工业现场不比实验室旁边可能有变频器、伺服驱动器、接触器它们产生的干扰比你自己的电机驱动还大一个量级不加防护很容易出现程序跑飞或者偶发失步。5. 常见问题速查与实战避坑5.1 电机发热、失步、异响问题自查现象可能原因排查方向电机异常发热电流设定过高、关断时间过长减小VREF或R-SENSE调整ROSC缩短关断时间低速失步启动频率过高、力矩不足降低启动频率延长加速时间检查电压是否跌落高速失步电流衰减太慢、供电不足切换到快衰减模式增大VM电容容量电机啸叫斩波频率进入人耳听觉范围调整ROSC提高斩波频率或切换混合衰减芯片过热散热焊盘未焊接好、电流过大检查PCB散热焊盘是否充分过孔连接底层覆铜这里重点讲失步。工业设备上失步是致命的特别是有绝对位置要求的场合。开环步进系统失步后没有自恢复能力只能靠外部传感器定位。为此我在这套系统上加了一个简单的编码器反馈只用来检测失步不参与实时闭环。电机尾部加一个500线的光电编码器MCU在完成指定步数后读取编码器位置与预期位置对比偏差超过设定阈值就报警。这个方案的性价比非常高比直接上闭环伺服便宜不少同时又能提前发现问题。5.2 工业场景的隔离和保护设计如果这套系统用在非隔离的环境比如电机和主控在同一个控制柜内那共地问题还好处理。但如果电机远离控制柜或者现场有强电设备强烈建议在MCU和DRV8818PWPR之间加隔离。最简单的方式是用数字隔离器光耦虽然便宜但频率受限步进脉冲在高频段时会畸变。我用的方案是ISO7742这类数字隔离芯片脉冲和方向信号都过隔离驱动板的电源独立隔离供电。这样即使电机线被意外短路也不会把主控部分打坏。另外还要注意一点DRV8818PWPR芯片的VM如果接反芯片大概率直接损坏。工业现场接线马虎是常事所以我在驱动板上加了防反接二极管和保险丝。这两个元件很便宜但能避免非常多的售后麻烦。6. 实操心得与扩展建议我把这套系统完整跑了一个月每天连续运行八小时中间经历了多次启停、正反转、不同速度段组合测试。几点体会供参考STM32F373VC虽然性能比F103强不少但电机控制代码不要全部放中断里。合理规划好“高频定时任务”如脉冲频率更新、故障检测和“低频任务”如通信处理、上位机指令解析系统稳定性会高很多。DRV8818PWPR的电流整定一定要留余量。按电机额定电流的70%-80%设置斩波电流发热明显降低失步概率并没有显著上升。很多人在这一步喜欢顶格设置结果就是电机烫得不敢摸。如果项目后期有可能做电流闭环或者FOC扩展PCB布局时就应该把相电流采样点预留出来。DRV8818PWPR的ISENSE引脚信号虽然主要给内部斩波使用但它所反映的电流波形同样可以被MCU的ADC观察作为数据分析手段。最后分享一个小技巧调试步进驱动系统时先用极低速空载跑通逻辑再逐步加大电流、提高速度。每次只改变一个变量同时监控芯片温度和电流波形。只要电流波形始终干净整个系统的稳定性基本就有底了。这个流程用熟了新项目从图纸到现场稳定运行通常一两天足够了。
返回列表