4. 校准流程日志分析:上电自检、高油门检测、低油门确认

电调校准的日志分析,说白了就是看三个关键阶段的表现。我做了这么多年飞控,发现很多新手一上来就盯着报错码看,反而忽略了校准流程本身的日志特征。其实校准日志就像一个人的体检报告——每个阶段都有固定的波形和数值范围,读懂了这些,故障排查就成功了一半。

今天我们就来拆解这三个阶段的日志特征。我会结合自己踩过的坑,告诉你哪些是正常信号,哪些是危险信号。

核心观点:校准日志分析不是看有没有报错,而是看每个阶段的时序、数值、状态机跳转是否符合预期。只要一个阶段的特征不对,后续的校准结果就不可信。

4.1 上电自检阶段日志特征

电调上电后,第一件事就是自检。这个阶段大概持续 1-3 秒,日志里会密集输出硬件初始化信息。我个人习惯先看时间戳——如果自检阶段超过 5 秒还没结束,基本可以判定硬件有问题。

4.1.1 正常自检日志长什么样?

下面是一个典型的正常自检日志片段。注意看每一行的格式和关键字:

[0.000] ESC Power-On Self-Test (POST) started
[0.001] MCU: STM32F405, Rev B, Clock 168MHz
[0.002] Flash: 1MB, OK
[0.003] EEPROM: 64KB, CRC check passed
[0.005] MOSFET Driver: DRV8301, ID=0x83
[0.008] Current Sensor: INA240, Gain=40V/V
[0.012] Temperature Sensor: NTC 10k, OK
[0.015] PWM Input: Rising edge detected, idle pulse = 1500us
[0.020] Calibration Flag: NOT SET
[0.025] POST completed. Ready for calibration.

这里有几个关键点:

  • MCU 型号和时钟:必须和硬件设计一致。我遇到过一批电调,日志显示时钟只有 84MHz,结果是晶振虚焊了。
  • EEPROM CRC:这个校验很重要。如果显示 CRC failed,说明上次校准数据损坏了,必须重新校准。
  • MOSFET Driver ID:读不到 ID 或者 ID 为 0xFF,大概率是 SPI 通信断了。
  • PWM 输入检测:这里会读取接收机的中立脉冲宽度。正常是 1500us 左右,如果读到 0 或 2000+,说明信号线没接好。
  • Calibration Flag:显示 NOT SET 才说明需要校准。如果显示 SET,电调会跳过校准流程。

我的习惯:每次拿到新电调,我都会先看自检日志里的 EEPROM CRC 和 MOSFET Driver ID。这两个参数如果不对,后面的校准全是白做。

4.1.2 异常自检日志案例分析

我曾经在项目里遇到过这样一个日志:

[0.000] ESC Power-On Self-Test (POST) started
[0.001] MCU: STM32F405, Rev B, Clock 168MHz
[0.002] Flash: 1MB, OK
[0.003] EEPROM: 64KB, CRC check FAILED
[0.004] EEPROM: Using default parameters
[0.005] MOSFET Driver: DRV8301, ID=0x83
[0.008] Current Sensor: INA240, Gain=40V/V
[0.012] Temperature Sensor: NTC 10k, OK
[0.015] PWM Input: Rising edge detected, idle pulse = 1500us
[0.020] Calibration Flag: NOT SET
[0.025] POST completed. Ready for calibration.

注意第三行——CRC check FAILED。当时我排查了很久,最后发现是 EEPROM 的供电引脚虚焊了。电调虽然能启动,但每次断电后校准数据就丢了。解决方案很简单:重新焊接 EEPROM 引脚,然后做一次完整的校准流程。

警告:如果自检阶段出现 CRC check FAILED 或 Using default parameters,千万不要直接开始校准。必须先修复硬件或重新写入正确的校准参数,否则电调会使用默认值,导致油门响应异常。

4.2 高油门检测阶段日志特征

自检通过后,电调会进入高油门检测阶段。这个阶段说白了就是等待你把油门推到最高点。日志里会记录 PWM 脉冲宽度的变化过程。

4.2.1 正常高油门检测日志

[0.030] High Throttle Detection: Waiting for pulse > 1900us
[0.500] PWM Pulse: 1500us, waiting...
[1.000] PWM Pulse: 1500us, waiting...
[1.500] PWM Pulse: 1500us, waiting...
[2.000] PWM Pulse: 1500us, waiting...
[2.500] PWM Pulse: 1500us, waiting...
[3.000] PWM Pulse: 1500us, waiting...
[3.200] PWM Pulse: 1920us, HIGH THROTTLE DETECTED
[3.201] High Throttle: 1920us, saved to EEPROM
[3.202] High Throttle Detection: Completed

这个阶段有几个特征:

  • 等待时间:正常情况会在 3-5 秒内检测到高油门。如果超过 10 秒还没检测到,说明油门通道没推到位,或者 PWM 信号异常。
  • 阈值判断:电调通常要求脉冲宽度大于 1900us 才认为是高油门。有些电调是 1950us,具体看固件配置。
  • 保存动作:检测到高油门后,日志会显示 saved to EEPROM。如果没有这行,说明保存失败了。

避坑指南:我曾经遇到一个情况,日志显示 HIGH THROTTLE DETECTED 了,但后面没有 saved to EEPROM。查了半天,发现是 EEPROM 写保护引脚被拉高了。所以看到检测成功还不够,一定要确认保存成功。

4.2.2 异常高油门检测日志

下面是一个典型的异常案例:

[0.030] High Throttle Detection: Waiting for pulse > 1900us
[0.500] PWM Pulse: 1500us, waiting...
[1.000] PWM Pulse: 1500us, waiting...
[1.500] PWM Pulse: 1500us, waiting...
[2.000] PWM Pulse: 1500us, waiting...
[2.500] PWM Pulse: 1500us, waiting...
[3.000] PWM Pulse: 1500us, waiting...
[3.500] PWM Pulse: 1500us, waiting...
[4.000] PWM Pulse: 1500us, waiting...
[4.500] PWM Pulse: 1500us, waiting...
[5.000] PWM Pulse: 1500us, waiting...
[5.500] PWM Pulse: 1500us, waiting...
[6.000] PWM Pulse: 1500us, waiting...
[6.500] PWM Pulse: 1500us, waiting...
[7.000] PWM Pulse: 1500us, waiting...
[7.500] PWM Pulse: 1500us, waiting...
[8.000] PWM Pulse: 1500us, waiting...
[8.500] PWM Pulse: 1500us, waiting...
[9.000] PWM Pulse: 1500us, waiting...
[9.500] PWM Pulse: 1500us, waiting...
[10.000] High Throttle Detection: TIMEOUT
[10.001] Calibration FAILED: High throttle not detected

看到 TIMEOUT 了吗?这说明电调等了 10 秒都没等到高油门信号。原因可能有:

  • 遥控器油门通道没有推到最高
  • 接收机到电调的 PWM 信号线接触不良
  • 电调的 PWM 输入引脚损坏
  • 油门通道反向(需要检查遥控器设置)

我记得有一次,用户反馈说电调校准总是超时。我让他发日志过来,发现 PWM 脉冲一直稳定在 1500us,纹丝不动。后来发现是他的遥控器油门通道设置了 Failsafe 模式,导致输出被锁定在中立位。关掉 Failsafe 就好了。

4.3 低油门确认阶段日志特征

高油门检测成功后,电调会等待你把油门拉到最低。这个阶段同样重要——它决定了电调的低端行程。

4.3.1 正常低油门确认日志

[3.203] Low Throttle Confirmation: Waiting for pulse < 1100us
[3.500] PWM Pulse: 1920us, waiting...
[4.000] PWM Pulse: 1920us, waiting...
[4.500] PWM Pulse: 1920us, waiting...
[5.000] PWM Pulse: 1920us, waiting...
[5.200] PWM Pulse: 1050us, LOW THROTTLE CONFIRMED
[5.201] Low Throttle: 1050us, saved to EEPROM
[5.202] Low Throttle Confirmation: Completed
[5.203] Calibration SUCCESS: High=1920us, Low=1050us

注意最后一行——校准成功后,日志会输出高、低油门的实际脉冲值。这两个值会被写入 EEPROM,以后每次上电都会读取。

正常范围:

  • 高油门:1900-2000us
  • 低油门:1000-1100us
  • 差值:至少 800us 以上,否则油门分辨率不够

关键指标:如果高油门和低油门的差值小于 800us,电调的油门分辨率会严重下降。比如高油门 1850us、低油门 1200us,差值只有 650us,这时候飞控输出的微小油门变化可能被电调忽略,导致悬停不稳。

4.3.2 异常低油门确认日志

来看一个我实际处理过的案例:

[3.203] Low Throttle Confirmation: Waiting for pulse < 1100us
[3.500] PWM Pulse: 1920us, waiting...
[4.000] PWM Pulse: 1920us, waiting...
[4.500] PWM Pulse: 1920us, waiting...
[5.000] PWM Pulse: 1920us, waiting...
[5.500] PWM Pulse: 1920us, waiting...
[6.000] PWM Pulse: 1920us, waiting...
[6.500] PWM Pulse: 1920us, waiting...
[7.000] PWM Pulse: 1920us, waiting...
[7.500] PWM Pulse: 1920us, waiting...
[8.000] PWM Pulse: 1920us, waiting...
[8.500] PWM Pulse: 1920us, waiting...
[9.000] PWM Pulse: 1920us, waiting...
[9.500] PWM Pulse: 1920us, waiting...
[10.000] Low Throttle Confirmation: TIMEOUT
[10.001] Calibration FAILED: Low throttle not confirmed

这个日志很有意思——高油门检测成功了,但低油门确认超时了。为什么?因为用户把油门拉下来后,PWM 脉冲还是 1920us,说明遥控器或者接收机卡在高位了。

我当时排查的步骤:

  1. 检查遥控器油门摇杆是否回中——正常
  2. 检查接收机输出——发现油门通道输出一直锁定在 1920us
  3. 进一步检查——接收机进入了 Hold 模式,因为遥控器信号短暂丢失过

解决方案:重新对频接收机,或者给接收机断电重启。

注意:低油门确认阶段超时,不一定都是电调的问题。很多时候是遥控器或接收机的异常状态导致的。我建议先检查接收机的输出是否正常,再怀疑电调硬件。

4.4 校准流程知识图谱

下面我用一张 SVG 流程图来总结这三个阶段的关系和关键检查点。你可以把它当作一个快速排查指南。

电调校准流程日志分析知识图谱 电调校准流程日志分析知识图谱 阶段一:上电自检 POST (1-3秒) 关键检查点 • MCU 型号与时钟频率 • EEPROM CRC 校验结果 • MOSFET Driver ID • PWM 输入中立脉冲 • Calibration Flag 状态 阶段二:高油门检测 等待脉冲 > 1900us 关键检查点 • 等待时间是否 < 10秒 • 脉冲是否达到阈值 • 是否保存到 EEPROM • 有无 TIMEOUT 报错 • 遥控器 Failsafe 状态 阶段三:低油门确认 等待脉冲 < 1100us 关键检查点 • 等待时间 • 脉冲是否下降 • 是否保存成功 • 高低油门差值 • 接收机输出状态 校准成功标志 日志最后一行输出:Calibration SUCCESS: High=xxxus, Low=xxxus 高低油门差值 ≥ 800us,且两个值都成功写入 EEPROM 常见故障与排查方向 故障现象 可能原因 排查步骤 自检 CRC 失败 EEPROM 损坏或虚焊 检查 EEPROM 供电/焊接 高油门超时 遥控器未推高/Failsafe 检查遥控器输出/接收机 低油门超时 接收机卡在高位 重启接收机/重新对频 差值小于 800us 油门行程设置不当 重新校准/调整遥控器行程

4.5 实战经验总结

最后,我把自己这些年积累的几个经验分享给你:

阶段 正常特征 异常特征 我的处理建议
上电自检 CRC passed, Driver ID 正常 CRC failed, ID=0xFF 先修硬件,再校准
高油门检测 3-5秒内检测到 >1900us TIMEOUT 或脉冲不变 检查遥控器和接收机
低油门确认 检测到 <1100us 并保存 TIMEOUT 或保存失败 检查接收机输出状态
校准结果 差值 ≥ 800us 差值 < 800us 重新校准或调整行程

最后说一句:校准日志分析这件事,说白了就是「对答案」。你把日志里的每一行和正常特征对比,哪里对不上,哪里就是问题。我刚开始做飞控时,经常被各种报错搞得晕头转向。后来养成了先看日志的习惯,很多问题其实在日志里就已经给出了答案。