ARTICLE DETAIL

资讯详情

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

电调调试实战:LDO供电与CAN通信问题排查指南

电调调试实战:LDO供电与CAN通信问题排查指南 1. 从两个电调问题说起为什么值得单独写一篇“26.9.23两个电调问题”这个标题看起来像一条随手记的日志日期加一句简短描述没有多余修饰。但真正折腾过电调的人都明白越是这种轻描淡写的记录背后往往藏着越多的调试时间和踩坑经历。电调全称电子调速器是驱动无刷电机的核心部件广泛用在多旋翼、固定翼、车模、船模以及各类自制动力平台上。它要完成的事情说起来简单把直流电变成三相交流、按油门信号调节转速、保持换相时序正确。但真做起来涉及主控、功率级、采样、通信、固件、参数整定一整条链路任何一个环节出问题都会表现为“电机不转”“抖动”“发热”“通信掉线”这类模糊症状。这篇内容围绕两个典型的电调问题展开一个偏向硬件与供电层面一个偏向通信与控制层面。之所以把这两个问题放在一起讲是因为它们在实际调试中经常同时出现而且症状会互相掩盖。比如供电不稳会导致主控复位主控复位又会让 CAN 通信中断你以为是通信协议配错了实际上是 LDO 在拖后腿。类似的连锁反应我遇到过太多次所以这篇会把两个问题的排查路径、原理分析、实操步骤和避坑经验完整拆开讲清楚。适合读这篇的人包括正在自制电调或改 VESC 的玩家、做电机控制相关项目的工程师、需要排查 CAN 总线通信问题的开发者以及刚接触电调原理、想搞明白 LDO 和主控关系的新手。内容会尽量用生活化的类比解释原理同时给出可以直接照着做的测量步骤和参数判断方法。核心关键词电调、VESC、CAN、LDO、主控会自然贯穿全文不会为了堆词而堆词。2. 电调的整体架构与两个问题的定位2.1 电调到底由哪几块组成要理解问题出在哪先得把电调的组成拆清楚。一个典型的无刷电调从功能上可以分成四个部分主控单元、功率驱动单元、采样反馈单元、通信接口单元。主控单元通常是一颗 MCU比如 STM32 系列、GD32 系列或者 VESC 项目里常用的 STM32F4。它负责运行换相算法、处理油门输入、执行保护逻辑、管理通信。主控是电调的大脑它一旦工作异常整个电调就瘫了。功率驱动单元包括三相桥臂的 MOS 管、栅极驱动芯片、以及母线电容。这部分是电调的肌肉负责把电流真正灌进电机绕组。MOS 选型、死区时间、栅极电阻都会影响效率和发热。采样反馈单元包括母线电压采样、相电流采样、有时还有温度采样。没有准确的采样主控就没法做电流环控制也没法做欠压和过流保护。通信接口单元决定了电调怎么接收指令。常见的有 PWM、PPM、UART、CAN、I2C。其中 CAN 总线因为抗干扰强、支持多节点、有仲裁机制在中高端电调和多电调协同场景里用得越来越多。VESC 就原生支持 CAN可以多台级联。2.2 两个问题的初步定位第一个问题我归到供电与主控稳定性这一类。症状通常是电调上电后主控偶尔不启动、运行中随机复位、CAN 通信时断时续、或者电机一加速主控就重启。这类问题的根源往往在 LDO 或者 DC-DC 供电上尤其是 LDO 的压差、纹波、瞬态响应这几个指标不达标的时候。第二个问题归到 CAN 通信与协议配置这一类。症状包括总线上的节点互相看不见、报文能发不能收、仲裁失败、错误帧频繁、抓包工具解析出来的数据对不上。这类问题可能出在终端电阻、波特率、地偏移、协议栈配置、报文 ID 规划这些地方。把这两个问题分开定位很重要因为它们的排查工具和思路完全不同。供电问题要用示波器看波形通信问题要用 CAN 分析仪抓报文。但难点在于供电问题会伪装成通信问题所以排查顺序应该是先保供电、再查通信。2.3 为什么这两个问题经常一起出现原因很直接CAN 收发器是需要供电的主控也是需要供电的。如果 LDO 输出的 3.3V 或 5V 不稳CAN 收发器的差分输出电平就会异常总线上的显性电平和隐性电平判断就会出错表现出来就是通信错误。同时主控在电压跌落时可能复位复位期间 CAN 控制器停止工作总线上就少了一个节点。我实测过一个案例某电调在静止时 CAN 通信完全正常一旦电机开始加速通信就频繁报错。一开始怀疑是电机干扰耦合到了 CAN 线加了屏蔽和磁环都没用。后来用示波器看主控供电轨发现电机加速瞬间 3.3V 轨上有接近 400mV 的跌落持续时间约 2ms正好够触发主控的欠压复位。换了瞬态响应更好的 LDO 并加大输出电容后问题消失。这个案例说明通信问题的根子有时候在供电。3. 问题一LDO 供电导致的主控异常排查3.1 LDO 的工作原理与关键参数LDO 是低压差线性稳压器的缩写。它的工作方式像一个会自动调节阻值的可变电阻串联在输入和输出之间通过反馈环路把输出电压稳定在设定值。和 DC-DC 开关电源相比LDO 的优点是输出纹波小、噪声低、电路简单、没有开关干扰缺点是效率低、压差不能太小、大电流时发热严重。选 LDO 的时候有几个参数必须看压差输入电压减去输出电压的最小值低于这个值 LDO 就失去调节能力输出会跟着输入往下掉。比如一个压差为 300mV 的 LDO输出 3.3V 时输入至少要 3.6V。静态电流LDO 自身消耗的电流电池供电场景要特别关注。PSRR电源抑制比衡量 LDO 抑制输入纹波的能力单位是 dB越高越好。瞬态响应负载电流突变时输出电压的恢复能力这个参数直接关系到主控在电机加速时会不会复位。输出噪声对 ADC 采样精度有影响电流采样要求高的场景要选低噪声型号。很多人选 LDO 只看输出电压和最大电流忽略瞬态响应和压差结果就是静态测试一切正常动态一跑就出问题。3.2 用示波器抓主控供电轨的正确方法排查供电问题示波器是核心工具。但抓波形有很多讲究抓不对就看不到真实情况。第一步确定测量点。不要在主控电源引脚旁边的滤波电容上测那个点已经被电容平滑过了。要在 LDO 输出端、靠近负载的最后一个电容之前测或者直接用探头点主控的 VDD 引脚。地线要用探头自带的短地弹簧不要用长地线夹长地线会引入额外电感把高频噪声滤掉也会耦合进空间干扰。第二步设置触发方式。用单次触发或者正常触发触发电平设在正常电压的 90% 左右触发沿选下降沿。这样能抓到电压跌落的瞬间。如果用自动触发波形会一直刷新很难捕捉到偶发的跌落。第三步时间基准先设大一点比如 10ms/格先看整体趋势。发现异常后再缩小到 1ms/格甚至 100us/格看细节。耦合方式选直流耦合不要选交流耦合否则看不到直流电平的绝对变化。第四步同步观察负载电流。如果有电流探头同时抓一相电流或者母线电流这样能确认电压跌落和电流突变的时间对应关系。没有电流探头的话可以用主控的 DAC 输出一个跟电流成比例的模拟信号来间接观察。3.3 判断 LDO 是否成为瓶颈的量化标准抓到波形之后怎么判断 LDO 是不是瓶颈我一般用这几个量化标准指标合格范围危险信号后果静态输出电压偏差设定值 ±2%超过 ±5%主控工作不稳定负载突变时跌落小于 100mV大于 200mV可能触发复位跌落恢复时间小于 500us大于 2ms通信中断、采样错误输出纹波小于 20mVpp大于 50mVppADC 采样噪声大满载温升小于 40℃大于 60℃长期可靠性下降这些数值不是绝对的要看主控的欠压复位阈值。STM32F4 系列的欠压复位阈值典型值是 2.7V 左右如果 3.3V 轨跌到 2.7V 以下主控就会复位。所以跌落幅度要结合阈值来判断。3.4 替换与优化 LDO 的实操步骤确认 LDO 是瓶颈之后优化方向有三个换型号、改电路、加补偿。换型号是最直接的。如果原 LDO 瞬态响应差换成瞬态响应好的型号。选型时重点看数据手册里的负载瞬态响应曲线找负载电流从 10mA 跳到 200mA 时跌落小于 100mV 的型号。同时确认压差满足输入输出条件留够余量。改电路主要是加输出电容。LDO 的输出电容对瞬态响应影响很大容值越大、ESR 越低跌落越小。但要注意有些 LDO 对输出电容的 ESR 有要求ESR 太低反而会引起振荡。数据手册里通常会给出稳定工作所需的电容范围和 ESR 范围照着选就行。我一般会在 LDO 输出端放一个 10uF 的陶瓷电容加一个 100uF 的钽电容陶瓷电容负责高频响应钽电容负责储能。加补偿是在负载端加去耦电容。主控电源引脚旁边放 100nF 加 10uF尽量靠近引脚。如果主控有大电流瞬态需求比如无线模块发射瞬间还要在更靠近负载的地方加更大的电容。注意换 LDO 之后一定要重新测瞬态响应不要以为换了就好了。不同批次的电容、不同的 PCB 布局都会影响结果。3.5 一个容易被忽略的点LDO 和 DC-DC 的搭配很多电调不是纯 LDO 供电而是 DC-DC 先把电池电压降到 5V再用 LDO 降到 3.3V。这种搭配里DC-DC 的开关噪声会通过 LDO 传到主控。如果 LDO 的 PSRR 在 DC-DC 的开关频率处不够高主控供电上就会有开关频率的纹波。我遇到过 DC-DC 开关频率 500kHzLDO 在 500kHz 处 PSRR 只有 20dB结果 3.3V 轨上有 30mVpp 的 500kHz 纹波。这个纹波本身不一定让主控复位但会干扰 ADC 采样导致电流采样值跳动电机控制出现周期性抖动。解决办法是选 PSRR 在开关频率处高的 LDO或者在 DC-DC 输出加 LC 滤波把开关纹波先压下去。4. 问题二CAN 总线通信异常的系统排查4.1 CAN 总线的物理层与仲裁机制回顾CAN 总线用两根线CAN_H 和 CAN_L差分传输。显性电平是 CAN_H 比 CAN_L 高约 2V隐性电平是两根线电压接近。总线空闲时是隐性有节点发送显性就拉低总线。多个节点同时发送时谁先发显性谁就赢得仲裁继续发送发隐性的节点退出转为接收。这个机制保证了高优先级报文能优先传输而且不会冲突。CAN 的波特率和线长、终端电阻、节点数都有关系。波特率越高允许的线长越短。1Mbps 时线长建议不超过 40 米500kbps 不超过 100 米125kbps 可以到 500 米。终端电阻是 120 欧姆接在总线两端作用是匹配阻抗、消除反射。少了终端电阻信号会有反射波形畸变通信距离短的时候可能还能用距离一长就出错。4.2 从症状反推问题层级CAN 通信异常的症状和可能原因可以整理成一张速查表症状可能层级优先排查项完全无通信物理层接线、终端电阻、供电偶发错误帧物理层/协议层地偏移、波特率、线长能发不能收协议层过滤器配置、报文 ID仲裁失败频繁协议层优先级规划、总线负载抓包数据错乱物理层采样点、波特率偏差多节点互相看不见协议层波特率不一致、ID 冲突排查顺序建议从物理层往协议层走。物理层是基础物理层不对协议层怎么配都没用。4.3 地偏移测试的三个步骤与注意事项地偏移是 CAN 通信里非常隐蔽的问题。两个节点如果地电位不一致差分接收器看到的共模电压就会偏移偏移太大就判断不出显性和隐性。测试地偏移最简单的三个步骤第一步总线断电所有节点不供电。用万用表测各节点 CAN 收发器的地引脚之间的电阻确认地是连通的。如果不通说明地线没接好先解决地连接。第二步总线正常供电所有节点上电但不发报文。用万用表直流档测各节点地之间的电压差。理想情况是接近 0mV实际允许几十 mV。如果超过 200mV就要查地线阻抗和电流回路。第三步总线正常通信用示波器测 CAN_H 和 CAN_L 对各自节点地的电压再算共模电压。共模电压应该在 2V 到 3V 之间。如果某个节点的共模电压偏离太多说明该节点地偏移严重。注意测地偏移的时候万用表要用直流档不要用交流档。示波器探头的地要接在同一个参考点上否则测出来的值没有意义。另外电机运行时地线上的电流很大地偏移会随电机状态变化所以要在电机运行状态下也测一遍。4.4 波特率与采样点的配置核对波特率不一致是 CAN 通信失败的常见原因。两个节点一个配 500kbps一个配 250kbps物理层看起来正常但就是通信不上。核对波特率的时候不能只看代码里的配置还要确认晶振频率和分频系数算出来的实际波特率。CAN 波特率的计算公式是波特率 时钟频率 / (分频系数 × (1 BS1 BS2))。其中 BS1 和 BS2 是时间段 1 和时间段 2 的时钟数。采样点位置 (1 BS1) / (1 BS1 BS2)。一般建议采样点设在 75% 到 87.5% 之间。举个例子时钟 42MHz分频系数 6BS1 设 13BS2 设 2那么波特率 42M / (6 × (1 13 2)) 42M / 96 437.5kbps不是 500kbps。要得到 500kbps分频系数 6 时1 BS1 BS2 应该等于 14比如 BS1 设 11BS2 设 2采样点 12/14 85.7%。这个计算过程一定要自己算一遍不要照抄别人的配置。4.5 报文 ID 规划与过滤器配置的坑CAN 标准帧 ID 是 11 位扩展帧是 29 位。多电调协同的时候ID 规划很重要。如果两个节点用同一个 ID 发不同数据总线上就会冲突仲裁机制会让优先级高的先发但数据内容会混乱。过滤器配置也是坑。很多 MCU 的 CAN 控制器有多个过滤器组可以配置成掩码模式或列表模式。掩码模式下ID 和掩码按位与匹配才接收。如果掩码配错可能该收的收不到不该收的全收进来。我建议初期调试时先把过滤器设成接收所有报文确认物理层和基本通信正常后再逐步收紧过滤器。VESC 的 CAN 报文 ID 有固定格式主电调和从电调通过 ID 区分。改 VESC 固件或者做多电调级联的时候要确认每个电调的 CAN ID 不重复否则会出现控制指令发错对象的情况。5. 两个问题的联调与交叉验证5.1 先保供电再调通信的排查顺序前面说过供电问题会伪装成通信问题。所以联调的时候顺序一定是先确认供电稳定再调通信。具体做法是电机不转只给主控和 CAN 收发器供电确认 CAN 通信正常。然后电机低速转观察通信是否正常。再电机高速转观察通信是否正常。如果低速正常高速异常大概率是供电或者干扰问题。如果一直不正常才是通信配置问题。这个分步测试的价值在于隔离变量。电机不转的时候功率级没有开关动作干扰最小供电最稳。电机转起来之后干扰和电流都上来了问题才会暴露。通过逐步加负载能定位问题出现的临界点。5.2 用 CAN 分析仪抓包定位问题节点CAN 分析仪是排查通信问题的利器。抓包的时候重点看几个东西报文周期是否稳定、错误帧出现在什么时刻、错误帧前后是哪个节点在发报文、总线负载率是多少。如果错误帧总是出现在某个节点发报文之后那个节点可能就是问题源。如果错误帧出现在电机加速的瞬间那可能是供电跌落或者干扰耦合。如果总线负载率超过 70%要考虑优化报文周期或者提高波特率。抓包数据还可以用来核对报文内容。比如电调上报的转速、电流、温度和实际值对不对得上。如果对不上可能是采样或者协议解析的问题。5.3 电机运行状态下的复合干扰排查电机运行时干扰来源很多PWM 开关噪声、电机换相噪声、电流突变引起的磁场变化。这些干扰会通过空间耦合和传导耦合进入 CAN 线和主控供电。空间耦合的解决办法是屏蔽和远离。CAN 线用双绞线最好带屏蔽层屏蔽层单端接地。走线远离电机线和功率线不要平行走长距离。传导耦合的解决办法是滤波和隔离。CAN 收发器电源加磁珠和电容必要时用隔离型 CAN 收发器把地也隔开。我实测下来双绞加屏蔽能解决大部分干扰问题。如果还有问题再考虑隔离。隔离收发器成本高一些但能彻底切断地环路对地偏移严重的场景特别有效。6. 实操心得与常见问题速查6.1 电调调试的几条经验法则第一上电顺序有讲究。先给主控供电确认主控启动正常再给功率级供电。很多电调设计成一起上电如果主控启动慢功率级先导通可能烧 MOS。分步上电或者加软启动电路能避免这个问题。第二第一次跑电机一定要限流。用可调电源限流从很小的电流开始逐步放开。电机堵转或者换相错误的时候电流会瞬间冲很高限流能保护硬件。第三参数不要一次改太多。每次只改一个参数观察效果。改多了出问题不知道是哪个参数引起的。第四温度要监控。MOS、LDO、主控都要摸一下温度。烫手就说明有问题不要硬跑。6.2 常见问题速查表问题可能原因快速验证方法解决方向主控随机复位LDO 瞬态响应差示波器抓供电轨跌落换 LDO、加电容CAN 通信时断时续供电不稳或干扰抓包看错误帧时刻先保供电、再加屏蔽电机加速时通信出错地偏移或共模干扰测地偏移和共模电压隔离收发器、改地线报文能发不能收过滤器配置错误设接收所有报文测试检查过滤器掩码波特率对不上时钟分频算错重新计算波特率核对晶振和分频总线负载过高报文周期太短抓包看负载率优化周期或提波特率6.3 工具与仪表的选择建议示波器建议用带宽 100MHz 以上、带单次触发和余辉显示的。测供电跌落和 CAN 波形都够用。探头用 10:1 无源探头配短地弹簧。有条件的用差分探头测 CAN 差分信号更准确。CAN 分析仪选支持实时抓包和错误帧统计的。周立功的 CAN 盒、同星 TSMaster 都是常用工具。软件要能显示报文周期、负载率、错误帧计数。万用表用真有效值的测地偏移和电压用。电流探头可选有的话排查供电问题更方便。6.4 几个我踩过的坑第一个坑以为 CAN 通信不上是协议问题查了半天协议栈最后发现是终端电阻没接。终端电阻一定要接而且只能接两个接多了总线负载太重接少了反射严重。第二个坑LDO 输出电容用了低 ESR 的陶瓷电容结果 LDO 振荡了。后来查数据手册发现该 LDO 要求 ESR 在 0.1 到 10 欧姆之间纯陶瓷电容 ESR 太低。换成陶瓷加钽电容的组合就好了。第三个坑CAN 线用了普通排线没有双绞。短距离测试正常线一长就出错。换成双绞线后问题消失。双绞线能抵消磁场干扰这个钱不能省。第四个坑电机线和 CAN 线捆在一起走线电机一加速 CAN 就出错。分开走线保持至少 5cm 间距问题解决。7. 从这两个问题延伸出去的思考电调这个东西硬件、固件、通信、控制耦合在一起任何一个环节的短板都会在整机上暴露。两个电调问题一个指向供电一个指向通信但它们的共同点是都需要用工具去量化而不是靠猜。示波器和 CAN 分析仪是电调调试的两把钥匙会用这两样工具大部分问题都能定位。VESC 生态的好处是开源固件、硬件、协议都公开遇到问题可以查源码、看社区讨论。但开源也意味着配置项多参数之间有关联改一个可能影响另一个。我的建议是先把默认配置跑通再逐步调整每次只动一个地方。CAN 总线在多电调场景里会越来越重要尤其是需要协同控制的平台。把 CAN 的物理层和协议层都吃透后面做多电机协同会轻松很多。LDO 供电这块看起来简单但瞬态响应和纹波这些动态指标往往是区分电调稳定与否的关键。选型的时候多花十分钟看数据手册调试的时候能省十个小时。最后分享一个小技巧调试电调的时候养成记录的习惯。每次改了什么、现象怎么变、最后怎么解决的都记下来。电调问题往往不是一次性能解决的隔几天再遇到类似问题翻记录比重新排查快得多。我自己的调试笔记里光 CAN 通信问题就记了十几条每条都是踩坑换来的。
返回列表