简介围绕无线充电系统原理展开的这份PDF面向移动设备硬件工程师、电源管理学习者及无线充电方案开发者系统梳理Qi协议从探测、身份验证、配置、同步到功率传输的五个阶段并借RT1650接收器说明ASK调制、电压动态调节与异物检测的实现思路。文件包内仅含1个PDF文件约1.9MB内容集中、章节清晰便于按主题查阅适合在方案选型、原理补齐和调试准备阶段使用。目前已有1952人学习具备一定的参考热度。文中还以Nokia DT601发射器与RT1650评估板组成系统为例串联待机、启动、ASK通信、接收端调压、FOD及系统效率等环节并补充用户可配置的固件设定有助于读者把协议流程、关键器件特性与实测现象对应起来为后续阅读芯片手册和排查异常提供线索。1. 一块 5W 接收板放上去能充不代表方案能过做过无线充电的都知道最尴尬的不是充不上而是「能充但只有 60% 效率」「能充但放一把钥匙上去会烫」「能充但负载一拉起来就重启」。这份 5W 无线充电接收方案的技术手册把 Qi 五阶段状态机、ASK 反向散射通信、VRECT 动态余量这三件事拆到了参数级为什么串联谐振电容要按耦合后的电感算、发射端待机 70mW 是怎么抠出来的、异物检测的功率预算差多少毫瓦会误报。适合正在做小功率无线充电产品的硬件和固件工程师也适合手里有一块接收 EVB、想把它真正跑通的人。2. Qi 五阶段状态机从模拟 Ping 到 EPT 的链路拆解Qi 低功率协议本质上是一台五状态的状态机接收器放上去之后系统按 Selection选择、Ping数字探测、Identification Configuration识别与配置、Power Transfer功率传输、End Power Transfer结束传输推进。每一阶段都由发射端或接收端单向发起任何一步超时都会退回 Selection 重来。把这条链路摸清楚后面调参才知道改的是哪一段。2.1 待机 70mW 与数字 Ping 的取舍发射器在待机状态下必须持续「找」接收器但功耗又不能失控。早期方案用模拟 Ping功率级发一个很短的低能量脉冲靠检测线圈谐振频率和品质因数的变化判断上面有没有东西。这种方式功耗极低但对金属异物和线圈偏移都很敏感容易误唤醒。另一种做法是只用数字 Ping直接发一个能量足够点亮接收器整流器的突发信号接收器上电后自己回包发射器收到包才确认有设备。某款低成本 A11 型发射器就走了这条路没有接收器时平均待机功耗约 70mW。这个数字可以直接反推占空比假设数字 Ping 期间功率级峰值取 1W要压到 70mW占空比必须控制在 7% 左右也就是 90ms 的 Ping 时长配 1.25s 的间隔。间隔再拉长用户体验会变差放上去要等一秒多才响应间隔缩短待机功耗线性上升。提示数字 Ping 的能量必须足够让接收器的整流输出越过内部上电复位阈值同时又要小于异物被加热的风险阈值。这一步的能量余量如果给得太保守会出现「放上去偶尔不启动」的玄学现象。接收器上电后VRECT 上会出现一个明显的电压凸起这个凸起就是它向发射器「报到」的信号。发射器检测到负载电流的阶跃变化就把状态从 Ping 切到识别阶段并维持功率输出。整个握手窗口通常在几十毫秒量级示波器上抓 VRECT 和线圈电流两路就能看全。2.2 识别与配置阶段版本字段与最大功率字段怎么填进入识别阶段后接收器要连发两个包Identification 包告诉发射器「我符合哪个版本、我是谁」Configuration 包告诉发射器「我最多要多少功率、我打算怎么控制」。Identification 包里的版本字段要和实际实现的协议版本一致改错会导致发射器按错误的时序等你回包表现是连接建立后几百毫秒就断。Configuration 包里的最大功率字段是重点它决定了发射器允许输出的功率上限单位通常是 0.5W 一档5W 系统填 107.5W 系统填 15。如果这个值填得比实际线圈能承受的高发射器会一直往上升功率直到接收端过温保护填低了则永远达不到额定输出。字段典型取值影响协议版本与实现一致决定发射端回包超时判定最大功率105W发射端功率上限填错直接限流功率控制相关参数按线圈阻抗特性标定影响误差包的响应增益厂商自定义字段可留空一般用于扩展功能协商配置阶段还有一个容易被忽略的点接收器在这里声明的参数会决定发射端后续对误差包的解释方式。同一个误差包数值配不同的增益参数实际调节量能差一倍。所以换线圈、换谐振电容之后这一组参数要跟着重标不能沿用旧板子的值。2.3 功率传输阶段的两类包误差包与接收功率包功率传输阶段是双向的接收器用 ASK 往发射器送回包发射器用 FSK 往下发扩展信息。回包里最关键是两类。误差包Control Error是闭环的核心。它是一个 5 位有符号补码范围 -16 到 15正数表示「我要更多功率」负数表示「少给点」。接收器测 VRECT和目标值比较把偏差量化成这个 5 位数发出去发射器收到后调整频率或占空比。这个环路的响应速度非常慢因为 ASK 的位速率只有 2kHz一个包传完加上处理延迟环路带宽往往只有几赫兹到十几赫兹。所以误差包不能一次给太大的步进否则会来回震荡。接收功率包Received Power是安全机制的基础。接收器把自己实际拿到的功率按百分比量化上报发射器拿自己输出的功率去减差值超过阈值就判定有异物。这个包的更新频率比误差包低通常几百毫秒一次因为它的作用是长期监测而不是实时控制。包类型作用典型更新周期出错的后果误差包闭环调 VRECT几十毫秒电压振荡、欠压重启接收功率包异物检测依据数百毫秒误报 FOD 停机充电状态包上报电池状态事件触发充满后不断连整流功率包上报整流侧功率数百毫秒功率预算算错2.4 结束传输、重协商与超时状态机接收器决定不再要功率时电池充满、过温、内部故障发一个结束传输包发射器收到后回到 Selection功率级降回待机。这个包的载荷是原因码不同原因码对应不同的重启策略。比如「充电完成」类的结束发射器会保持低功耗待机等设备再次被放上来「内部故障」类的结束很多发射器会拉长重试间隔避免反复冲击。超时是另一半。协议对每个状态都规定了最长等待时间识别阶段等不到配置包、功率传输阶段超过一定时间收不到误差包都会触发回退。实际调试时最常见的现象是「每隔一两秒断一次又连上」十有八九是某个包没发出去或者校验错被发射器的超时机制踢回了 Selection。用逻辑分析仪抓接收端调制管的驱动波形再对着包结构逐位核对比盲猜快得多。3. 谐振功率级参数13.3μH 线圈怎么推出 140nF 和 2nF功率级是整个系统里最「模拟」的部分也是最容易翻车的地方。Qi 的低功率方案用串联-串联补偿发射线圈串电容接收线圈也串电容两边都谐振在同一频率上。但注意这里的工作频率并不是钉在谐振点上而是有意跑在谐振点右侧靠调频来调增益。这个和磁共振方案「工作频率等于谐振频率」是两回事。3.1 工作频率为什么必须落在谐振点右侧串联谐振回路的传输曲线是一个单峰峰值在谐振频率 f0 处。峰左侧曲线上升右侧曲线下降。如果把工作点放在左侧频率稍微升高增益就上升发射端调频的方向和增益变化的方向同向闭环会失控放在右侧频率升高增益下降是单调可控的。某款 A11 型发射器的功率级由全桥驱动串联 LC 构成发射线圈电感 6.3μH、串联电容 400nF算出来的谐振频率正好是 100kHzf0 1 / (2π × √(6.3e-6 × 400e-9)) ≈ 100.3 kHz它允许的工作频率范围是 110kHz 到 205kHz全部落在谐振点右侧。这就解释了为什么接收端也必须把串联谐振点调到 100kHz 附近两边的谐振峰要重叠耦合效率才够同时发射端才有足够的调频余量去控制接收端的整流电压。3.2 串联谐振电容 C1必须用耦合后的实测电感这是最容易踩的坑。接收线圈标称 13.3μH但那是它单独放置、周围没有磁性材料时的值。一旦放到发射线圈上磁芯和屏蔽层改变磁路实测电感会明显变大。手册里的例子是实测到 18.2μH比标称高了 37%。串联谐振电容按目标谐振频率反推C1 1 / ((2π × f0)² × Ls)用 18.2μH 和 100kHz 代入得到约 139nF工程上取 140nF实际用三只 47nF 并联得到 141nF偏差 1.3%对应谐振频率偏移约 -0.65%落在 99.3kHz完全可接受。import math def series_cap(f0_hz, l_hz): 串联谐振电容由目标谐振频率和实测电感反推 f0_hz: 目标串联谐振频率单位 Hz l_hz: 线圈耦合到发射器上、不加电状态下实测的电感单位 H return 1.0 / ((2 * math.pi * f0_hz) ** 2 * l_hz) def parallel_cap(f_hz, l_hz): 并联谐振电容由 1MHz 检测频率和自由状态电感反推 return 1.0 / ((2 * math.pi * f_hz) ** 2 * l_hz) Ls_coupled 18.2e-6 # 放在发射线圈上、功率级关断时实测 L_free 13.3e-6 # 远离金属和发射器、自由放置时实测 C1 series_cap(100e3, Ls_coupled) C2 parallel_cap(1e6, L_free) print(fC1 {C1 * 1e9:.1f} nF) # 139.2 nF取 3 x 47nF 141nF print(fC2 {C2 * 1e9:.2f} nF) # 1.90 nF取 2nF 标称件 # 用实际选件值反算真实谐振频率确认偏移在可接受范围 C1_real 141e-9 f_real 1 / (2 * math.pi * math.sqrt(Ls_coupled * C1_real)) print(f实际串联谐振频率 {f_real / 1e3:.2f} kHz) # 约 99.3 kHz这段脚本的关键不在公式而在两个电感值的取法。Ls_coupled 必须在真实装配状态下测线圈贴住发射器、屏蔽片装好、外壳装上、电池也在位然后断电用 LCR 表量。少装一件测出来的值就偏谐振点就跑。我见过有人用裸线圈的 13.3μH 算出 190nF装上去之后谐振点掉到 86kHz发射器根本推不动。注意串联谐振电容要选低 ESR、高耐压的 C0G 或薄膜件。用普通 X7R 陶瓷电容直流偏压和大交流纹波下容量会掉 20% 以上谐振点直接跑偏而且损耗会让电容自己发热。3.3 并联谐振电容 C2 与 1MHz 检测频率除了串联谐振接收线圈两端还要并一只小电容形成 1MHz 附近的并联谐振。这只电容的作用不是传能而是给发射器一个「身份标记」发射器在数字 Ping 之前会做一次小信号扫频如果在线圈上检测到 1MHz 附近的谐振凹陷就说明上面放了符合规范的接收器。C2 的计算用自由状态电感因为这次检测发生在接收器还没被唤醒、线圈处于弱耦合的状态C2 1 / ((2π × 1e6)² × 13.3e-6) ≈ 1.9 nF取 2nF 标准值。这里要注意 C2 和 C1 是并联关系对交流通路而言实际并联谐振频率会受 C1 影响。手册给的公式是工程近似最终一定要实测把接收板放在发射器上不通电用小信号扫频仪从线圈两端看阻抗曲线1MHz 附近应该有一个明显的凹陷。如果凹陷跑到 1.3MHz 或者干脆没有发射器就认不出你表现是「放上去完全没反应」。3.4 传输曲线扫频与增益验证参数算完只是纸面正确真正的验证是扫频。把发射器功率级固定在某个输入电压扫频从 100kHz 到 220kHz记录接收端整流输出的电压得到一条增益曲线。这条曲线应该单调下降在 110kHz 附近有最大增益到 205kHz 衰减到峰值的 40% 以下。参数发射侧接收侧备注线圈电感6.3 μH13.3 μH自由/ 18.2 μH耦合接收侧必须实测耦合值串联电容400 nF141 nF3×47nF决定 100kHz 主谐振并联电容无2 nF决定 1MHz 检测点工作频率110~205 kHz跟随始终在谐振点右侧import csv import numpy as np def load_sweep(path): 读取扫频数据两列频率(Hz) 和 整流输出电压(V) f, v [], [] with open(path, newline) as fp: for row in csv.reader(fp): f.append(float(row[0])) v.append(float(row[1])) return np.array(f), np.array(v) f, v load_sweep(sweep.csv) peak_idx int(np.argmax(v)) peak_f, peak_v f[peak_idx], v[peak_idx] # 找峰值右侧 -6dB 点确认工作频率范围内增益仍有足够余量 target peak_v * 0.5 right np.where((f peak_f) (v target))[0] print(f峰值 {peak_v:.2f}V {peak_f/1e3:.1f}kHz) if right.size: print(f-6dB 点 {f[right[0]]/1e3:.1f}kHz工作上限应低于此频率)曲线形状对元件选型非常敏感。如果峰值很平、右侧衰减很慢说明回路 Q 值太低多半是线圈寄生电阻大或者电容 ESR 高如果峰值很尖但一加载就塌说明 Q 太高、储能不足瞬态响应撑不住。这两种情况都要换件靠调固件补不回来。4. ASK 调制与动态余量一次加载、一条控制环接收器往发射器传数据靠的不是主动发射而是「反向散射」在谐振腔两端并一个受控电容用数据位控制它的通断改变接收端的等效负载阻抗。这个阻抗变化通过磁耦合反射到发射端表现为发射线圈电流包络的幅度变化。发射器只要把包络解出来就拿到了数据。整套机制成本极低代价是速率慢、抗干扰弱。4.1 调制电容加载改的是电压还是电流从电路上看接收端开关管导通时额外电容并在谐振腔上整个接收回路的等效阻抗下降反射到发射端的等效阻抗也跟着变发射线圈的电流幅度上升、端电压幅度下降。所以发射端从电压包络还是电流包络上解调看到的是反相的波形具体取哪一路要看功率级的采样设计。调制深度要拿捏。太浅发射端比较器分辨不出来尤其是线圈偏移、耦合变弱的时候太深相当于每次发数据都在给功率级一个负载阶跃整流输出电压会跟着抖误差包和调制互相干扰。经验上把调制引起的线圈电流变化做到几个百分点到十几个百分点之间具体值要在线圈最差对位条件下调——对位良好时能解出来不算数偏 8mm 还能解出来才算过。调制电容的取值和线圈电感、工作频率相关一般几十纳法量级。取值偏大调制深度够但电压跌落明显取值偏小波形干净但边缘条件下解不出来。这个参数没有解析解只能在最差工况下试。4.2 差分双相编码与包结构ASK 链路上的位速率是 2kHz每位 500μs。编码方式用差分双相每个数据位分成两个相位位值为 1 时在相位中点发生电平翻转位值为 0 时不翻转。这样解码只需要看相邻两个半周期的电平是否相同不依赖绝对电平抗直流漂移能力强。数据包的结构是固定的前导码、头字节、消息体、校验字节。前导码是一串连续的 1至少 11 位用来给发射端做位同步和增益锁定头字节里包含消息长度和奇偶校验位校验字节是头字节和所有消息字节逐字节异或的结果。PREAMBLE_MIN 11 def decode_diff_biphase(half_bits): 差分双相解码输入按半个位周期采样的 0/1 序列 bits [] for i in range(0, len(half_bits) - 1, 2): # 两个半周期电平不同 - 该位为 1相同 - 该位为 0 bits.append(1 if half_bits[i] ! half_bits[i 1] else 0) return bits def parse_packet(bits): 按 Qi 包结构切分前导 1 头字节 消息 校验 idx 0 while idx len(bits) and bits[idx] 1: idx 1 if idx PREAMBLE_MIN: return None, 前导码不足位同步失败 body bits[idx:] n len(body) // 8 if n 3: return None, 长度不足至少需要头消息校验 data [] for i in range(n): chunk body[i * 8:(i 1) * 8][::-1] # Qi 低位先发 data.append(int(.join(map(str, chunk)), 2)) header, payload, checksum data[0], data[1:-1], data[-1] size (header 0x07) 1 # 头字节低 3 位是消息长度-1 calc header for b in payload: calc ^ b if calc ! checksum: return None, f校验错算出 {calc:#04x}收到 {checksum:#04x} if len(payload) ! size: return None, f长度不符头声明 {size}实际 {len(payload)} return {header: header, payload: payload}, ok解码脚本里最值得留意的是位序。Qi 是低位先发按 MSB 优先切字节会得到一堆看似合理但完全错的值这种错误最难查——包长度对、校验偶尔还能蒙对。校验通过但行为异常时先怀疑位序。4.3 解调阈值与采样窗口发射端的解调链路一般是电流采样 → 包络检波 → 交流耦合 → 比较器 → 数字采样。比较器阈值如果写死线圈一偏、负载一变包络幅度跟着变就会出现「对得准能通、偏一点就断」。常见做法是用动态阈值跟踪包络的峰值和谷值取中点作为判决门限时间常数设得比位周期大一个数量级这样既能跟上慢漂移又不会把数据位本身当成漂移滤掉。采样窗口也要留余量。理论上是每个半周期采一次实际要在半周期中点附近开一个窄窗口多次采样取多数避开电平跳变沿。如果采样点太靠边收发两端的时钟偏差累积几百微秒就会采到跳变沿上表现是偶发校验错重传几次又能过。4.4 VRECT 动态余量轻载抬高、重载压低整流后的 VRECT 不是固定值它要跟着负载走。原因是后级 LDO 的功耗等于压差乘电流VRECT 定得高瞬态响应好但重载时 LDO 上白白烧掉的功率很可观VRECT 定得低效率好看但负载一跳变就跌出调整区输出电压塌。手册给出的策略是分段动态余量轻载时把 VRECT 抬到较高水平为突然的负载阶跃预留调节空间平均负载上来之后逐步下调让 LDO 工作在最小压差附近。例子里 1A 输出时 LDO 的压差只有 0.25V功耗 250mW这就是动态余量压出来的结果。typedef struct { uint16_t load_ma; /* 该档位覆盖的负载电流上限 */ uint16_t vrect_mv; /* 该档位的 VRECT 目标值 */ } vrect_step_t; /* 按负载分段设定整流目标电压档位间留迟滞避免来回跳 */ static const vrect_step_t vrect_table[] { { 200, 6500 }, /* 轻载留 1.5V 余量扛得住突变 */ { 600, 5800 }, /* 中载余量降到 0.8V */ { 1000, 5300 }, /* 重载余量 0.3VLDO 功耗约 300mW */ }; static uint16_t pick_vrect(uint16_t avg_ma) { for (int i 0; i sizeof(vrect_table) / sizeof(vrect_table[0]); i) { if (avg_ma vrect_table[i].load_ma) return vrect_table[i].vrect_mv; } return vrect_table[sizeof(vrect_table) / sizeof(vrect_table[0]) - 1].vrect_mv; }调整这张表要注意两点。一是档位切换必须有迟滞否则负载在阈值附近波动时 VRECT 会来回跳误差包连续反向环路直接震荡。二是每次下调 VRECT 之后必须复核 LDO 的功耗和结温光看效率曲线好看没用压差太小会在低温或者电池电压偏低时失效。4.5 FOD 功率预算与 MTP 标定异物检测的逻辑很朴素发射端知道自己送出去多少功率接收端上报自己收到多少功率差值超过阈值就说明中间有东西在偷能量。难点在于「收到多少」这个数不好算准——接收端要把线圈铜损、谐振电容 ESR 损耗、整流器损耗、LDO 损耗全部折算进去才能还原出真正送给负载的功率。这些损耗系数和具体用料强相关同一套固件换一个线圈厂家误差就能差出几百毫瓦。所以芯片里留了多次可写的存储区把损耗系数、FOD 阈值、各负载段的 VRECT 目标都做成可标定项。标定顺序一般是先测空载和满载的链路损耗写进系数表再在无金属异物条件下跑全功率范围确认上报值和发射端测量值的偏差在 ±5% 以内最后放标准测试异物验证能在规定时间内触发停机。阈值定得太松异物已经明显发热了还不报警定得太紧正常工作时线圈温漂就让系统误判停机。手册里提到一个容易被忽略的细节如果最终产品里接收线圈背后有金属件比如 PCB 地层涡流损耗会被算进链路损耗里这时候必须重新标定否则这部分损耗会「抵掉」异物带来的额外损耗让 FOD 失效。5. 现场避坑与排查五条翻车记录各自的根因这一节列的都是调试现场真实会遇到的症状。每条按「看到什么、为什么、怎么改」写顺序基本对应从硬件到固件、从启动到满载的排查路径。5.1 放上去没反应VRECT 只有个几十毫秒的凸起现象接收板贴到发射器上示波器抓 VRECT 能看到一个 20ms 左右的电压凸起然后掉回零反复几次后彻底不动。发射器侧看不到任何回包。原因接收端的串联谐振点偏了。最常见的是 C1 按线圈标称电感算的没算耦合后的增量谐振点从 100kHz 掉到 85kHz 附近数字 Ping 的能量传不过来接收器上电后还没来得及发识别包就掉电了。第二种可能是并联谐振电容漏贴或者贴错1MHz 检测点不存在发射器压根不进入数字 Ping。解决断电状态下把装好的整机放到发射器上用 LCR 表量线圈两端电感按实测值重算 C1再用扫频仪确认 1MHz 附近有凹陷。这两步做完再谈固件。5.2 轻载一切正常一拉到 1A 就开始重启循环现象0.2A、0.5A 负载下稳定VRECT 平稳效率也正常负载加到 1A 后输出电压开始周期性塌陷系统反复重启示波器上能看到 VRECT 掉到欠压阈值以下。原因供电侧撑不住。发射器用 5V 适配器供电时线缆和接口的等效串联电阻在大电流下产生压降发射器输入电压掉下去功率级能送出的能量跟着掉接收端 VRECT 塌陷触发欠压保护保护后负载消失电压回升然后又重启。手册里专门提到过这个场景用了内置线损补偿的适配器就稳用普通 USB 口就容易出问题。解决先换短粗线、加大输入侧的储能电容把供电侧的内阻压下来再检查重载段的 VRECT 目标是不是设得太低必要时把 1A 档的目标值上调 200mV最后看软启动和负载突变时的 di/dt 限制有没有开。注意这类问题在实验室用台式电源供电时往往复现不出来因为台式电源的输出阻抗远低于实际适配器。样机必须用目标适配器验证。5.3 金属钥匙放上去明显发烫系统却不报警现象功率传输正常但把一枚钥匙放在线圈边缘几分钟后钥匙温度明显升高系统没有任何停机动作。原因FOD 阈值被链路损耗吃掉了。接收端上报的「收到功率」里包含了它自己算进去的链路损耗如果这个损耗系数标得偏大比如按最差线圈标的实际装的是好线圈上报值就会偏低发射端算出来的差值被压缩达不到触发阈值。异物消耗的那部分功率恰好被虚报的损耗掩盖了。解决按实际装机用料重新标定损耗系数在无异物条件下让上报值和发射端测量值的偏差收敛到 ±5% 以内然后把阈值往下调用标准测试件验证触发时间。这一步不能靠猜必须有功率计配合。5.4 效率只有 62%波形看着完全正常现象输入输出功率一测效率 62%远低于同类方案的 70%~80%。线圈对位、谐振点、包通信全都正常。原因VRECT 固定在高位。很多默认固件为了保瞬态把整流目标定在 7V 以上配 5V 输出的 LDO压差 2V1A 时 LDO 上就烧掉 2W效率直接掉十几个点。解决打开分段动态余量按负载把 VRECT 从 6.5V 逐档降到 5.3V同时确认整流器的同步整流模式已经使能别用二极管模式跑。改完必须复测瞬态看负载从 0 跳到 1A 时输出电压跌落是否还在规格内。5.5 包校验频繁出错每隔一两秒断连重连现象能充电但日志里能看到周期性的校验错系统每隔一两秒回退到 Selection 重新握手。原因调制深度不够或者解调阈值不合适。线圈偏移几毫米后耦合变弱接收端加载引起的发射端电流变化幅度下降到解调门限以下个别位判错整个包校验失败发射端超时后回退。解决先把线圈对位做到最好确认最差偏移条件下仍有足够调制深度再检查发射端的解调门限是不是写死的固定值改成跟踪包络峰谷的动态阈值最后核对采样点位置避开跳变沿。三件事里任意一件没做好都会表现成偶发校验错。6. 把 MTP 参数调到自己板子上标定顺序与验证表前面所有参数最终都要落到芯片内部那块可多次写的存储区里。改这些参数有个硬性前提不能靠无线供电来做必须在 VRECT 端子上外加一个高于额定值的直流电源手册给的例子是 7.5V同时把发射器移开。原因很简单写存储的过程中芯片会反复复位无线链路根本维持不住写到一半掉电还可能把参数区写花。写入通道走 I2C用厂商的接口板连 PC再用图形工具读写。整个流程我一般按这个顺序走步骤操作验证方式失败表现1外加 7.5V 到 VRECT移开发射器读芯片 ID 正常读不到器件检查上拉和地址2导出原始参数备份比对两份读出内容一致备份不一致先别写3写链路损耗系数无异物时上报偏差 5%偏差大重新测损耗4写分段 VRECT 目标各负载段实测电压符合设定跳档、震荡加迟滞5写 FOD 阈值标准测试件按时触发不触发或误触发6断电重启整机复测全负载段效率与温升达标回退到备份重来写入用通用 I2C 工具就能做关键是每次写完立刻回读确认别一次写一整片再统一验证# 假设 7 位地址 0x60参数区从 0x10 开始 i2cget -y 1 0x60 0x10 # 先读原值记下来 i2cset -y 1 0x60 0x10 0x2A # 写入新值 i2cget -y 1 0x60 0x10 # 回读确认必须等于 0x2A参数改完之后最容易被跳过的是复测 LDO 功耗。VRECT 目标一下调效率曲线是好看了但瞬态余量也跟着没了低温或者电池电压偏低时输出电压会掉出规格。我的做法是每次改完 VRECT 表都在最高和最低工作温度下各跑一遍 0 到满载的阶跃同时用热像仪看 LDO 和整流管的温升两个数据都过才算改完。还有一件事值得单独说接收线圈背后的金属材料一定要在最终装配状态下评估。裸板测试时 FOD 余量很宽装上外壳、贴上电池、盖上屏蔽片之后涡流损耗变了原本能触发的阈值可能就不触发了。这部分损耗不算异物但它会实打实地改变功率预算只能重新标。从那以后我每次改完参数都会强制走一遍「备份、写入、回读、全负载复测、异物验证」这五步一次都不省——省一步的代价往往是产线上几百台返工。希望帮到你。本文还有配套的精品资源点击获取