ARTICLE DETAIL

资讯详情

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

DRV8818+PIC32MZ双极步进电机控制系统设计与调试实战

DRV8818+PIC32MZ双极步进电机控制系统设计与调试实战 单片机控制步进电机这个活儿说难不难说简单也不算简单。工业设备或者机器人里要电机精准走位、带负载、还要稳很多时候光靠一个MCU加便宜的达林顿驱动根本扛不住。我最近一个实际项目正好用了 DRV8818PWPR 这颗驱动芯片和 PIC32MZ2048EFH100 这颗MCU来构成双极步进电机的控制核心整个过程从选型到调通再到联机跑起来踩了不少坑也积累了一些很实在的经验。这篇文章就把我的这套方案从头到尾拆开讲一遍包括为什么选这两颗料、外围电路怎么设计、固件怎么写、还有调试时会碰到的那些奇葩问题。如果你正打算做工业或者机器人方向的步进电机控制比如驱动57步进、86步进这类中大型双极电机或者需要一个皮实耐用的驱动器方案这篇文章应该能帮你少走不少弯路。1. 项目概述与选型思路我先把这套方案需要解决的实际问题讲清楚。工业控制场景里步进电机最大的特点是不用编码器就能通过脉冲数精准定位但前提是驱动电路必须把电流控制好。纯靠电阻限流的方案太浪费能量电机一发热整个系统就飘了。加上工业现场往往有电磁干扰、温度波动、电压不稳这些因素驱动部分必须足够皮实MCU端也得有足够的性能来处理速度曲线、加减速运算甚至多轴联动。1.1 为什么不用现成的步进驱动器我刚开始也犹豫过直接买个现成的步进驱动器不香吗细分、电流设置、信号接口全都做好了省事。但仔细想了一下我自己的需求我需要把电机驱动器和控制器尽量集成在一块板子上安装位置非常紧凑而且要用PIC32MZ直接控制多个轴的同步动作。外置驱动器体积大、接口线多还会引起更多接线可靠性问题。更重要的是我要用到DRV8818内部集成的电流调节和微步功能这样就能把电流斩波频率、衰减模式这些参数自己控制对加速度、噪声、发热的调优空间更大。DRV8818PWPR 是一颗专门驱动双极步进电机的高集成度芯片内部带两个H桥耐压最高到32V每通道输出电流可以达到2.5A配合适当的散热处理可以做到连续2A左右。这个电流级别覆盖市面上常见的42、57、86系列的额定电流完全够用。它还内置了微步索引器支持4、8、16等细分倍数反应在外部就是通过 MODE0、MODE1引脚设置细分模式MCU只需要发脉冲和方向信号。PIC32MZ2048EFH100 则负责系统的“大脑”部分。这是一颗Microchip的高性能MIPS核心MCU带FPU主频能跑到200MHz配2MB的Flash和512KB的RAM。对单轴运动控制来说200MHz感觉都奢侈了但它最吸引我的一点是有多个DMA通道、多个定时器而且带CAN、USB、Ethernet接口后面要扩展远程控制或者现场总线联机都很方便。这些资源让我可以把步进脉冲生成、实时控制环、通信任务同时跑在一颗MCU里不用挂第二颗协处理器。1.2 双极步进电机的驱动本质要理解这套硬件为什么这么搭还是得先弄明白双极步进电机到底怎么走。双极步进电机的绕组是两组每组的电流方向都要能反转才能形成磁场方向的切换所以每个绕组需要一个全桥两个绕组就得两个全桥。四拍序列或者微步细分本质上就是控制两个绕组的电流矢量让转子跟着磁场方向一步一步走。DRV8818内部拿两个H桥分别驱动A、B两组绕组。H桥里的MOS管通过PWM斩波来限制绕组电流芯片内部的比较器和锁存电路会配合电流基准来做一个电流斩波控制。这个机制非常像开关电源目标电流低的时候MOS管导通把电流“灌”进绕组当采样电阻上的电压达到设定阈值就关断或者反压续流让电流降下去然后再重新导通如此循环。我常跟人打个比方步进电机就像潮汐你要推动转子这个“小船”得不断控制两组线圈这股“水流”方向要换得快大小要控得准船才能走得稳。步进驱动芯片就是那个控制闸门的阀门管家。双极电机的绕组电流方向是交替变化的所以8字节的换向序列其实反映的是电压方波方向。如果只给方波电压而没有电流闭环电机在低速时容易抖动高速时又容易失步温升还特别高。DRV8818的电流调节加上微步控制就是为了解决这些问题而存在的。1.3 系统整体架构我把整个系统分成三个层级层级核心器件职责控制层PIC32MZ2048EFH100运动规划、脉冲生成、逻辑控制、通信驱动层DRV8818PWPR电流斩波、功率放大、微步逻辑、保护执行层双极步进电机把电脉冲转成机械角位移控制层通过引脚输出STEP脉冲和DIR方向信号驱动层根据这些信号内部计算换向序列并且按设定电流驱动电机绕组。再把限位开关、使能信号、故障信号这些接到控制层形成完整闭环。整个架构分界清晰我调试的时候也方便先单独测驱动板输出电压再用信号发生器替代MCU发脉冲最后才连MCU程序一起测。分而治之问题定位飞快。2. 核心硬件设计细节硬件设计是整台设备的底座。DRV8818再强供电没做好、引脚接错、散热没考虑故障率肯定直线上升。我在第一版就吃过亏后面专门总结了几个关键点。2.1 供电与去耦先处理好电源先说电源侧。DRV8818的VM引脚接电机电源我原来的系统中电机电源是24V这个电压在工业设备中很常见。但是很多开关电源在电机起步瞬间电压会掉很多尤其电机电流冲到2A时线路上有压降VM会跌到20V甚至更低这时斩波占空比会异常升高造成电流过冲。我用的输入电容是两颗470uF电解电容加一组X7R陶瓷电容。电容靠近VM引脚摆放间距控制在5mm以内。电解电容负责储能陶瓷电容负责高频去耦。VM端还放了一个TVS管防止外部感性负载或者热插拔造成电压尖峰。DRV8818的电压耐压最大32V即便24V供电尖峰也很有可能接近这个界限TVS很必要。电流采样脚ISENA和ISENB就近接地中间放置0.1uF滤波电容。采样电阻我用的是0.1Ω、1W的功率电阻。这个电阻的精度直接影响电流控制精度我用1%的避免发热导致阻值漂移过大。虽然1W看着够但持续2A电流下瞬时脉冲功率是很高的所以我把电阻焊在铺铜面积比较大的区域让它能散热。关于逻辑电源VCC引脚DRV8818内部的逻辑电路需要3.3V或者5V供电。我直接用PIC32MZ的3.3V输出给它两个芯片靠得很近不存在压降问题。不过要注意VCC的电流需求不大但必须是干净的3.3V我是又加了一颗10uF电容并且用磁珠从MCU电源轨隔离出来的防止病毒式干扰。2.2 PIC32MZ引脚分配PIC32MZ2048EFH100是100脚TQFP封装引脚多到用不完。我控制一个轴只用了一小部分GPIO但分配时仍然很讲究原因在于要避开带有复用功能的引脚冲突。我给步进控制分配的信号如下功能PIC32引脚方向说明STEPRD2输出步进脉冲高电平有效DIRRD3输出方向信号ENABLERD4输出驱动芯片使能低电平有效FAULTRD5输入芯片过热过流故障HOMERB0输入原点接近开关限位正RB1输入正向限位限位负RB2输入反向限位之所以没把STEP挂到一个带PWM功能的引脚上是因为我打算用定时器比较匹配来生成脉冲而PIC32MZ的定时器有很多个随便选一个就行。DIR和ENABLE用普通GPIO即可。我要重点说FAULT引脚的配置。DRV8818有一个nFAULT输出低电平表示故障高电平表示正常。这个引脚是开漏结构必须外接上拉电阻。我第一次接的时候忘了放上拉结果测出来FAULT一直是低电平一度以为是芯片坏了。实际上一查微控制器端读到的始终是0加上下拉导致的。上拉到3.3V即可用10kΩ电阻就可以。MCU端再开启内部弱上拉也行但外部上拉更可靠。各个限位开关我采用常开的接近开关触发时导通接地MCU内部上拉平时读到高电平触发时读到低电平。这样即使接近开关电缆断了MCU会一直读到高电平程序可以判断出异常而不是误认为限位被触发。2.3 DRV8818外围配置DRV8818的引脚不算多但每个都挺关键。除了VM、VCC、ISEN、OUT1至OUT4之外还需要配置几个逻辑接口STEP、DIR、MODE0、MODE1、ENABLE、nFAULT以及一个VREF引脚。VREF这个引脚在电流设置里起着决定性作用。DRV8818的电流斩波基准是通过VREF电压和ISEN电阻一起来设置的。公式比较简单电流通常指满量程电流也就是100%电流RMS值约等于 VREF /R_sense × 8。其实数据手册给出的关系是 I_trip VREF / (R_sense × K)其中K按照芯片内部固定比例。实际运用中我是用万用表测ISEN电压反推的更直观的方法在调试时我直接测ISEN电阻的峰值电压再用这个电压换算出实际电流。另外MODE0和MODE1组合决定微步数准确配置很关键。MODE1MODE0微步模式00全步01半步101/4步111/16步我在项目里默认使用1/16微步。这样做的好处是电机运行非常平稳噪声大幅降低低速共振也会减弱。但付出的代价是脉冲频率要提高到满步的16倍意味着PIC32MZ的定时器中断频率高可能在几个kHz到几十kHz之间对200MHz的MCU来说完全没问题。3. 固件实现与运动控制逻辑硬件是骨架固件是肌肉和神经。PIC32MZ中使用Harmony库也可以但我的固件偏向底层寄存器控制更好理解也更容易调试。3.1 步进脉冲生成的几种方式先聊最基础的怎么产生STEP脉冲。驱动芯片收到一个上升沿就按当前细分模式前进一步。所以MCU要做的事情就是反转一个IO有一定频率。最直接的控制方式是延时函数置高延时若干微秒置低再延时若干微秒。这种方式写起来简单验证时也直观但最大的问题就是CPU被完全占用电机跑起来后MCU一点别的事都干不了。如果只做单轴简单往返倒勉强可以一旦要处理通信、限位检测、其他轴这种方案就直接废掉。换更好的方案用定时器比较匹配。PIC32MZ定时器可以配置在32位模式我让定时器周期寄存器不断更新为当前目标周期值一旦匹配就触发中断。中断里把STEP引脚翻转一次然后重新装载周期值。频率加倍或者减半的逻辑要靠软件状态机处理。这种方法CPU中断频率等于步进频率每步一次的中断在低频时没压力高频时就会占用不少开销。但如果你要玩更高级的就直接用DMA配合定时器根本不用CPU介入。PIC32MZ的DMA可以把内存里预先算好的数据搬运到PORT寄存器定时器触发器启动每次搬运就像一个特殊的光学过带器。这个方法我后来用在多轴场景里效果很好CPU可以被释放去做更复杂的工作。我项目里起初用定时器中断代码清晰、好调。后来为了给上位机通信腾CPU时间改成了DMA方式。所以如果你也是做类似系统建议直接上DMA一步到位。不过第一次调可先用定时器中断验证逻辑再迁移到DMA这样调试难度小。3.2 速度曲线从梯形到S曲线步进电机从静态直接冲高速必丢步。所以必须给电机设计加速曲线。最简单的是梯形加减速匀加速、匀速、匀减速。梯形曲线在加速度变化点会有突变电机容易震动但胜在计算简单。我在项目里做了3段式每段加速度常数不同得到近似S曲线。规划速度曲线时需要计算每两个相邻脉冲之间的时间间隔。已知起始速度v0最大速度v1加速度a要算出每一份对应的时间。公式t (v - v0) / a然后利用当前步进位置可以通过公式反推下一个周期的时间。常见做法是给一个定时器中断当前步进速度更新下一次脉冲周期。我在PIC32MZ里面用了一个简单查表法因为MCU里有FPU浮点运算没问题。我把加速度段总共规划的步数提前算好存在一个uint32_t数组里。数组存的是每一步对应的定时器周期值。运行的时候每走一步就查一次表。这样计算量极小只需要中断里两行代码查表后写入比较寄存器。这种方式我感觉比纯实时计算更可靠而且掉电重启后表还在Flash里直接按预定曲线走。这里有一个参数校准的关键点最大速度 定时器周期最小值的对应频率。我实测时发现如果最大速度超过某个值电机转起来会发出尖锐啸叫并且丢步。这个最大速度本质上是负载扭矩和电流能力决定的。我的做法是在空载条件下逐步提高最大速度从低到高试故障后再降20%作为安全余量。这一步调试很枯燥但是定下来以后系统运行稳定很多。3.3 实时运动规划与归零逻辑伺服和步进系统里必须有个闭环参考点否则每次上电的位置都是未知的。机器人开机之后第一件事就是归零往原点方向慢速移动碰到限位开关之后再慢速离开找到第一个索引信号把当前坐标清零。PIC32MZ上我是这样实现归零的先把速度降到30转每分左右的低速然后开启定时器中断发脉冲同时用输入捕获或者事件系统去监测限位开关。我的限位开关是一个常开NPN接近开关触发时引脚变低。软件里我不用轮询而是用一个1ms的定时器打标签每毫秒读一次引脚状态。在低速下这个1ms分辨率足够定位。归零过程一定要考虑开关的机械弹跳。接近开关相对于机械开关要好很多但输出也会存在抖动尤其在电机震动下。我做了数字滤波连续读到8次低电平时才认为是真正触发了。至于离开这个点再找First Index需要在电机轴上装一个光电码盘或者磁编码器如果只是普通步进电机没有这样的信号就退回限位开关位置加一定偏移来设原点。很多人忽略归零速度设太快了可能导致过冲越过开关后因为惯性无法再次找到边界。我测试时把归零速度设为120PPS这个速度能保证惯性引起的过冲不超过半个步距角。3.4 电流与衰减模式选择再回到驱动的核心因为读者里很大一部分是为了解决“电机发热大、噪声大、扭矩不稳”才来搜DRV8818的。这几个问题的根源基本都是电流设置和PWM衰减模式没选对。DRV8818支持两种PWM衰减模式快衰减和慢衰减通过DECAY引脚来选择。快衰减模式下H桥在斩波关断时把续流电流反压回电源电流下降非常快慢衰减模式下桥臂短路续流电流下降慢。我在项目里通过实验对比了两个模式衰减模式发热噪声微步精度快衰减较低噪声略大容易出现电流纹波慢衰减略高更安静电流跟随好微步平滑对我来说机器人场景优先要求低噪声和平稳所以我选择慢衰减。不过慢衰减有一点需要注意在半步或微步切换时电流响应可能不及时速度高了以后波形会变形。所以我把DECAY引脚用MCU的GPIO控制可以由固件动态切换低速用慢衰减高速用快衰减。这个做法偏高端但我实际测试下来抖动减少很多。关于电流整定我并非直接套用公式因为绕组阻抗、电感、电源电压都会影响电流建立速度。我是用示波器挂在ISEN电阻上看峰值电压不断调整VREF电阻分压使峰值接近目标值。目标电流我取电机相电流的70%左右比如一个额定2.8A的57电机我用2A左右既能保证扭矩又不会让电机预计范围内过热。4. 调试过程与问题排查记录这个项目让我反复折腾的问题基本都是老工程师一看就觉得“早就该注意”的坑。我在这里把现场实录写出来哪一条都是真金白银换的。4.1 VM电压跌落导致失步设备装起来以后一开始单步走是好的一旦跑高速连续运动就会出现每隔一段距离突然“咔”一声位置偏差越来越大。查了一圈用示波器仔细看VM波形才发现每次大电流斩波时母线电压都出现一个很深的凹陷最低到18V左右。这个凹陷触发了我程序里的电压监测报警也直接导致扭矩下降然后丢步。排查后确认是电源线太长、输入电容容量不够。因为在电机电流突变瞬间电源来不及补充能量只能靠电容来维持。把输入电容从470uF提高到1000uF并且并联了一个低ESR的高频电容再用粗短线连接电源凹陷现象大幅改善。我的建议是VM端电容尽量加大一些但别集中在驱动器上电源输出端也要有滤波电容。供电线和驱动器之间的距离尽量缩短线径加粗哪怕是短距离也要考虑压降。4.2 电机过热一开始我把电流设置得很高到了接近电机额定电流的最大值想着扭矩绝对不再成问题。结果电机在连续运转半小时后外壳温度到了80度以上并且已经有烧焦味道。步进电机的温升大部分是铜损。长时间低速大电流更严重因为风扇效应差。单纯靠降低电流会导致扭矩下降所以最好方法是按实时负载动态调整电流。我用MCU的ADC采集绕组电流信号同时在固件里面设定了一个“空闲降流”策略如果这个轴在500ms内没有新的目标位置就把电流降到保持电流保持电流设在运行电流的50%左右。这样既保证了静止时的锁定力又避免了不必要的大电流发热。做机器人时末端关节保持姿态也需要一定保持力50%保持电流在某些垂直轴场景是不够的。所以这个比例我在垂直轴上调到70%水平轴用50%。4.3 脉冲干扰误动作我遇到过一次性让我头疼整整两天的问题设备旁边有一个变频器启动时电机偶尔会自己抖动一下像是飞了一个脉冲一样。用示波器现抓STEP引脚看到上面有一串几十纳秒的毛刺。这些毛刺竟然能被DRV8818识别为一个有效的脉冲所以产生了多余动作。原因是STEP线在PCB上走线过长而且没有包地变频器辐射干扰串进来了。解决办法有两个层面。第一硬件上把STEP线用10kΩ下拉电阻到地。这样静态电平被钳住毛刺能量也被泄放一部分。第二软件上我做了输入滤波因为PIC32MZ的I/O本身带输入滤波我固件里再增加最小脉宽判断只有脉冲宽度超过2us才会触发动作。这个方案简单有效之后变频器再怎么噪声也没再误动作过。凡是高噪声环境步进控制信号线一定要做短走线、地线包围、输入滤波、必要时用光耦隔离。光耦隔离的重点是让STEP信号和驱动地完全分离但光耦本身有传播延迟高速时要用高速光耦。4.4 nFAULT引脚误报故障DRV8818的nFAULT会在过流、过热、欠压时拉低。我却发现在电机启动瞬间nFAULT会短暂变成低电平持续一段时间又恢复高电平。程序里只要看到低电平就停机导致每次都启动失败。后来查了原因这是启动瞬间母线电压被拉低导致的欠压故障。虽然电压凹陷时间很短但芯片的欠压保护已经生效了。这再次印证了4.1里电容容量的重要性。加大电容以后这个问题基本消失了再有偶发欠压我在固件里加了故障延时nFAULT拉低后延时20ms再读取一次如果恢复高电平就认为只是瞬时扰动如果持续低才判断为真实故障并停机。这个软件容错非常管用。5. 工业与机器人应用的具体考量这个标题里特意提到工业、机器人应用所以我也顺便讲讲这两种场景下的特殊设计要求。因为很多控制方案在小设备上能跑一放到工业条件就不太行了问题往往不是芯片而是系统级的考虑不周全。5.1 散热和持续运行能力工业设备往往要连续工作8小时以上驱动器发热如果没处理好整个系统可靠性无从谈起。DRV8818PWPR是表面贴片封装它散热靠的是底部的PowerPad大焊盘。PCB设计时这个焊盘下面必须有阵列过孔连接到背面的铺铜层。我数过这些过孔至少开了9个0.3mm的才能形成有效的散热通道。如果你只是简单把PowerPad接地没有任何大面积散热铜皮全速运行时芯片温度很容易上100度超过100度以后还会降额保护。我测过第一版打样没有背面散热铜皮芯片表面温度在环境温度30度时达到了110度有点吓人。加上背面铜皮和散热孔之后温度降到了70度左右完全满足长时运行要求。需要注意PowerPad除了散热还承担着芯片的地连接所以它一定要铺铜并接地。但是表面贴片封装在加工时PowerPad如果焊盘开孔太大容易漏锡到背面我设计时把这些过孔都放在焊盘中心的网格区域并且涂了阻焊既保证了焊接可靠又保证了散热连通。5.2 安全停止与看门狗工业设备最怕啥程序跑飞后输出被错误地设成常高、常低电机疯狂往一个方向转。所以我加了三个安全措施。第一个是MCU看门狗。PIC32MZ内置看门狗定时器我每10ms清零一次。万一固件往死循环里跑了看门狗溢出让MCU复位所有初始化为安全状态。第二个是DRV8818的ENABLE引脚控制。程序启动时所有轴都处于未使能状态只有在完成初始化、确认原点之后才使能电机。收到急停命令时首先置低ENABLE让电机彻底失电释放扭矩这样即使机械卡住也不会烧电机。第三个是限位信号的硬逻辑处理。限位引脚不仅要软件判读我还直接把它们通过硬线接到PIC32MZ外部中断引脚。在运动过程中一旦限位触发就立刻进入紧急减速状态而不仅是停止发脉冲。我在测试时还发现快速减速太猛会导致过冲所以我在急停减速曲线里做成了两段第一段以最大减速度降到低速第二段再缓慢减速到零。实际效果是设备能稳稳停在限位开关区域不会把机械结构撞坏。5.3 多轴同步与通信接口单轴控制做完了你大概率会想着扩展多轴。PIC32MZ多出来的DMA通道、多个定时器和CAN/UART接口这时候就把价值体现出来了。我做过多轴同步的尝试做法是采用一个共同的“时间基准定时器”所有轴各自响应这个基准定时器产生的中断在这个中断里读取当前的期望坐标然后各自更新自己的步进脉冲周期。这种软件同步方式轴数不多的时候完全没有问题。如果你要四轴甚至更多轴建议用专用运动控制IC或者FPGAPIC32MZ虽然强但软件同步的风险会随轴数增加。通信上我用的是Modbus RTU跑在RS485上。主站给PIC32MZ发目标位置、速度、加速度PIC32MZ自己规划运动曲线运动完成后回传状态。这个架构很经典调试方便。PIC32MZ强大的Flash空间允许我一次性存储上百条运动指令。在博文里就不展开上位机了毕竟写下去又是几千字。6. 调试工具与参数整定的实用技巧这一节算是我个人专属的干货区如果你也打算做类似的系统这几条心得可能比芯片手册更有用。6.1 双通道示波器的决定性作用调试步进驱动没有示波器全靠感觉判断会非常痛苦。我建议至少准备一个双通道示波器。一个通道接ISEN采样电阻的波形一个通道接STEP脉冲。你就能直观看到电流上升斜率、斩波频率、电流纹波大小、脉冲与电流的对应关系。我在整定电流时就是抓住ISEN波形来微调VREF电阻的。斩波波形若呈现出很多毛刺或振荡说明衰减模式不对或者地线太脏。光靠万用表量电压根本看不出这些瞬态问题。6.2 先手动试驱动再上MCU调试流程我强烈推荐是先把驱动板用信号发生器接上发一个固定频率的方波到STEP看电机是否错位转动。这一步能排除掉MCU硬件和固件的影响。如果信号发生器模式下电机走得稳再把信号源断开接到PIC32MZ上用最简单的固定频率程序去走观察是否有脉冲丢失。这样定位问题区域省去很多不必要的怀疑。实际做项目的时候耗时间的根本不是写代码而是排查那些看起来像“玄学”的干扰和机械振动问题。我调整的步骤是控制规则固定硬件问题优先查等于把不确定因素一个个隔离掉。6.3 温度监测与记录我后来在设备里加了一个NTC热敏电阻贴在电机表面用PIC32MZ的ADC实时采集固件里设定整机持续工作的目标温度不超过70度超过的话自动降低最大速度或者暂缓下一个动作等温度下降后再执行。这个策略在机器人连续搬运场景非常有用。机器人手臂往往工作在有限的空间里散热条件差如果不进行温度保护长时间工作后电机会因为过热导致磁性下降、步进精度变差、寿命大减。甚至可以说这个温度反馈闭环是我这个项目里最值得骄傲的一个设计。它看起来只是一行判断和一个斜坡减速逻辑但对可靠性的提升比任何花哨的算法都明显。7. 一些体验与最终心得文章写到这里已经把硬件、固件、调试、工业场景都覆盖了。最后这部分不写什么“总结”我只想分享一些在实际操作中沉淀下来的体会。DRV8818PWPR 与 PIC32MZ2048EFH100 这套组合不是那种开箱即用的方案它需要工程师对电力电子、微控制器、机械运动都有一定理解。但是一旦调通你会得到非常大的控制自由度电流可以动态调衰减模式可以随时切微步细分可以改速度曲线全在自己手里。这对做复杂机器人、精密工业设备来说比买成品驱动器有价值得多。我在几次踩坑过程中发现步进电机控制成败往往不在高大上的算法而在于很基础的细节电容容量够不够地线干净不干净信号线上有没有毛刺芯片散热做没做透。把这些基础打好你手里的代码才能稳稳跑起来。最后再分享一个小技巧如果你在调DRV8818的电流设置时总是不准先别怀疑芯片用示波器多抓几个不同占空比下的ISEN波形把VREF电压按数据手册公式算出一个初值后再上下微调会省很多时间。电流这个名字看着简单真到波形上就是一片细节。希望这套方案和记录能帮你在工业和机器人项目中顺利把双极步进电机这块难啃的骨头啃下来。等你的电机在设备里走得又稳又静那时候就知道前面折腾的一切都值了。
返回列表