CH224A 是沁恒(WCH)的 USB PD 受电端控制器。我会先核对数据手册里的引脚功能、配置方式,以及是否支持用单片机改电压,再动笔。
手册(CH224 v2.1)、官方社区答疑和三份开源驱动都核对过了。有一个地方必须先说清:CH224A 的 IO 电平表里没有 15V 档,PPS/AVS 只有 CH224Q 支持,网上不少教程把这两个型号混着写。下面成稿。
用单片机控制 CH224A 请求 PD 电压,本质是让 MCU 告诉这颗受电端芯片 “我要几伏”,再由它去和充电器谈。手册给的路径有三条:单电阻、I/O 电平、I2C。最省事的是 I/O 电平,三根 GPIO 就能切 5V/9V/12V/20V/28V,但它拿不到 15V 档;最灵活的是 I2C,7 位地址 0x22 或 0x23,往 0x0A 寄存器写一个字节就能切档,还能从 0x09 读握手状态、从 0x50 读当前档位可用电流;最省器件的是单电阻,CFG1 对地接一颗电阻就固定一个电压,但改不了。三条路有个共同前提容易被忽略:CH224A 的 VBUS 引脚必须短接到 VHV,不是像 CH224K 那样串电阻;而且只有 CFG1 接了电阻(单电阻模式)时,I2C 功能才会自动启用,CFG2/CFG3 才变成 SCL/SDA。另外两个型号差异必须记住:CH224A 的 I/O 电平表是 9/12/20/28V,没有 15V;PPS 和 AVS 模式只有 CH224Q 支持,CH224A 只能走固定档位。搞混这两点,代码写得再对也切不出想要的电压。
一、先看清引脚,哪几根是单片机要碰的
| 引脚 | 名称 | 类型 | 关键点 |
|---|---|---|---|
| 1 | VHV | 电源 | 工作电源输入,耐压 32V,外接 1μF 对地电容,注意电容耐压 |
| 8 | VBUS | 输入 | 电压检测,必须短接至 VHV(CH224A 与 CH224K 不同) |
| 9 | CFG1 | 输入 | 档位配置 1,耐压 3.8V;接电阻决定上电默认电压,拉高即 5V |
| 2 | CFG2/SCL | 输入,内置上拉 | 电平配置的 CFG2,或 I2C 时钟 |
| 3 | CFG3/SDA | 双向,内置上拉 | 电平配置的 CFG3,或 I2C 数据 |
| 10 | PG | 开漏输出 | Power Good,低电平有效,需外部上拉 |
| 6/7 | CC2/CC1 | 双向 | Type-C CC,接反插检测 |
| 4/5 | DP/DM | 双向 | USB 总线,走 QC/BC1.2 等 A 口协议 |
要点是:CFG2 和 CFG3 内置上拉,支持 3.3V 或 5V 电平输入,可以用推挽也可以用开漏驱动;CFG1 没有内置上拉,要拉高得外部给 ——100kΩ 上拉到 VHV(不需要 MCU 控制时),或者经 2kΩ 串到 MCU 的 GPIO 推挽输出(5V 逻辑),或者直接接 GPIO 推挽(3.3V 逻辑)。
二、方式一:单电阻,最省事也最死板
CFG1 对 GND 接一颗电阻,CFG2/CFG3 悬空即可。阻值对应关系如下:
| CFG1 对地电阻 | 请求电压 |
|---|---|
| 6.8kΩ | 9V |
| 24kΩ | 12V |
| 56kΩ | 15V |
| 120kΩ | 20V |
| 210kΩ | 28V |
这条路适合 “一块板子只出一种电压” 的场景。注意手册这一版把 20V 从 “NC” 改成了 120kΩ,如果你照旧版电路把 CFG1 空着当 20V 用,在 CH224A 上不一定能拿到 20V—— 旧版 CH224K 的 NC=20V 是那颗芯片的规则,不是这颗的。
三、方式二:I/O 电平,单片机最常用的三根线
CFG1、CFG2、CFG3 直接接 MCU 的 GPIO,用高低电平组合选档。CH224A 的真值表:
| CFG1 | CFG2 | CFG3 | 请求电压 |
|---|---|---|---|
| 0 | 0 | 0 | 9V |
| 0 | 0 | 1 | 12V |
| 0 | 1 | 1 | 20V |
| 0 | 1 | 0 | 28V |
| 1 | X | X | 5V |
“0” 是低电平,外部短接 GND;“1” 是高电平,CFG2/CFG3 靠内置上拉,CFG1 需要外部驱动。
这张表和 CH224K 最大的不同就在这里:CH224K 是 “0,1,1 = 15V、0,1,0 = 20V”,CH224A 是 “0,1,1 = 20V、0,1,0 = 28V”。CH224A 用 IO 电平根本切不出 15V,要 15V 只能走单电阻(56kΩ)或 I2C(0x0A 写 0x03)。这是替换 CH224K 时最容易踩的一脚。
四、方式三:I2C,寄存器级控制
CFG1 接电阻(决定上电默认电压),CFG2/CFG3 当 SCL/SDA 用,I2C 功能自动启用。7 位地址 0x22 或 0x23,速率 400kHz。
| 寄存器 | 名称 | 读写 | 说明 |
|---|---|---|---|
| 0x09 | 状态 | 只读 | bit0 BC、bit1 QC2、bit2 QC3、bit3 PD 激活、bit4 EPR 激活、bit5 AVS 存在、bit6 EPR 存在 |
| 0x0A | 电压控制 | 只写 | 0=5V,1=9V,2=12V,3=15V,4=20V,5=28V,6=PPS,7=AVS |
| 0x50 | 电流 | 只读 | 当前档位最大可用电流,单位 50mA,仅 PD 握手后有效 |
| 0x51/0x52 | AVS 电压高低位 | 只写 | 仅 CH224Q,单位 100mV |
| 0x53 | PPS 电压 | 只写 | 仅 CH224Q,写入值 = 电压 × 10 |
| 0x60~0x8F | PD 源能力 | 只读 | 适配器完整电源信息 |
两条硬约束:CH224A 只支持单字节读写,CH224Q 才支持连续读写;PPS/AVS 只有 CH224Q 支持。所以要读 0x60~0x8F 这一片源能力表,在 CH224A 上得逐字节搬,不能一次连读。
五、硬件连线,六条清单
- VBUS 短接 VHV,别串电阻。CH224A 的 VBUS 耐压只有 3.8V,内部靠分压检测,串电阻的接法是 CH224K 的。
- VHV 对地 1μF,耐压按 30V 选,别用 0603 低压电容凑。
- CFG1 默认电压要兜底。MCU 启动慢时,CFG1 可能浮空,芯片会按 IO 模式解析,极端情况直接请求 20V—— 如果下游电路扛不住 20V,就在 CFG1 上挂一颗电阻,保证上电瞬间先拿到安全电压。
- 5V 逻辑串 2kΩ,3.3V 逻辑直接 0Ω。CFG1 耐压 3.8V,5V 直连会顶到极限。
- PG 上拉。开漏低有效,上拉到 3.3V,用它可以判断电压是否已经到位,比死等延时靠谱。
- 要 28V 或大于 60W,得模拟 E-Mark:用 Type-C 公头,CC2 对 GND 接 1kΩ;而且适配器要支持 PD3.1 EPR、线缆要支持 240W,否则芯片会向下请求它能拿到的最高电压。
六、软件怎么写,按这个顺序
define CH224_ADDR 0x22 // 7位地址
/ 1. 读状态,确认握手成功 /
uint8_t st;
i2c_read_reg(CH224_ADDR, 0x09, &st, 1);
if (!(st & 0x08)) { // bit3 = PD 激活
/ 没握上 PD,检查 CC 线序、适配器能力、线缆 /
}
/ 2. 切档:0x0A 只写,写一个字节 /
i2c_write_reg(CH224_ADDR, 0x0A, 0x04); // 0x04 = 20V
/ 3. 等电压稳定,再读电流能力 /
i2c_read_reg(CH224_ADDR, 0x50, &cur, 1); // 单位 50mA,3250 即 162.5W 档
三个写法上的细节:0x0A 是只写寄存器,别指望读回来校验,要校验就看 0x09 的 PD 位和实际 VBUS;切换档位后下游电容和负载要能承受新电压,最好先把负载断开或降载;CH224A 是单字节读写,写多字节寄存器(比如 AVS 高低位)在 Q 上才成立。
七、六个高频坑
| 现象 | 大概率原因 | 处理 |
|---|---|---|
| 固定 15V 拿不到 | 用了 IO 电平方式,CH224A 表里没 15V | 改 56kΩ 电阻或走 I2C 写 0x03 |
| 单电阻配置失败,始终 5V | CFG2/CFG3 接了单独供电的 MCU,上电时被拉低 | 先断开 CFG2/CFG3 上电测试,再查焊接与适配器 |
| I2C 写进去没反应 | 只接了 SCL/SDA,CFG1 悬空,I2C 没启用 | CFG1 必须挂电阻,启用单电阻模式 |
| 写 PPS 寄存器无效 | CH224A 不支持 PPS/AVS 模式 | 换 CH224Q,或改用固定档位 |
| 读源能力表数据错乱 | 用了连续读 | CH224A 改成逐字节读 |
| 上电瞬间烧后级 | CFG1 浮空,默认请求 20V | CFG1 加默认电阻,或 MCU 先上电再插线 |
八、调试顺序,从硬到软
- 先只焊 CH224A + 1μF + CFG1 电阻,不接 MCU,插 PD 充电器,用万用表看 VBUS 是否等于电阻设定的电压。
- 接 MCU,先只读 0x09,确认 I2C 通、PD 位为 1。
- 再试 IO 方式切档,用示波器看 CFG 三根线的电平是否符合真值表。
- I2C 切档时逐档验证,每切一次量一次 VBUS,别一次跳到 28V。
- 最后接负载,观察 PG 引脚和 0x50 的电流读数是否对得上。
九、收尾
单片机控制 CH224A,选路比写代码更重要:只要固定电压就别上 MCU,一颗电阻搞定;要在 5/9/12/20/28V 之间跳,三根 GPIO 足够;要 15V、要读源能力、要做产品级状态机,就走 I2C,但记住 CFG1 必须挂电阻、0x0A 只写、单字节读写。至于 PPS 那种 0.1V 步进的细调,别在 CH224A 上折腾,那是 CH224Q 的活。
相关 FAQ
问题 1:单片机控制 CH224A,用 IO 电平方式能切出 15V 吗?
回答 1:不能。CH224A 的 I/O 电平真值表只有 9V、12V、20V、28V 和 5V 五档,没有 15V;这是它和 CH224K 的关键差异(CH224K 的 0,1,1 是 15V)。要用单片机控制 CH224A 拿到 15V,只能走单电阻方式(CFG1 对地 56kΩ)或 I2C 方式(向 0x0A 寄存器写 0x03)。
问题 2:单片机通过 I2C 控制 CH224A,为什么写了寄存器电压却不变?
回答 2:先查三个前提。第一,CFG1 必须接电阻启用单电阻模式,I2C 功能才会自动开启,CFG1 悬空时写寄存器无效;第二,0x0A 是只写寄存器,写不进去通常是地址或时序问题,7 位地址为 0x22 或 0x23;第三,如果写的是 PPS 或 AVS 模式(0x06、0x07),CH224A 不支持,只有 CH224Q 支持,此时寄存器会被 ACK 但电压不变。
问题 3:单片机控制 CH224A 切电压,硬件上最容易接错的是哪一处?
回答 3:VBUS 引脚。CH224A 的 VBUS 必须短接到 VHV,耐压只有 3.8V;很多从 CH224K 迁移过来的板子沿用了 VBUS 串电阻的接法,那是 CH224K 的规则(VBUS 耐压 8V)。另外 CFG1 要留一颗默认电阻,否则 MCU 启动前引脚浮空可能让芯片按 IO 模式解析并请求 20V,下游扛不住就会烧。
问题 4:单片机控制 CH224A 和用 CH224Q,应该怎么选?
回答 4:看要不要细调和连续读写。只需要 5/9/12/20/28V 固定档位、且想兼容 CH224K 的旧 PCB,用 CH224A,多数情况换外围器件即可替换;需要 PPS/AVS 的 0.1V 步进调压、需要连续读取 0x60~0x8F 的适配器源能力表,必须用 CH224Q,因为 PPS/AVS 模式和连续读写只有 CH224Q 支持。新项目若空间紧张,手册也建议优先 CH224Q。
参考资料
- [2026-11-10](能否提供旧版 CH224K 手册:新设计建议使用 CH224A 或 CH224Q)沁恒微电子社区
- [2026-11-09](CH224K VDD 设计 VS CFG 设计问题请教)沁恒微电子社区
- [2026-11-07](CH224A 单电阻配置无法成功诱骗电压)沁恒微电子社区
- [2026-10-21](AI-Controlled Power Output Case Study:CH224 驱动与电压调节)安信可文档中心
- [2026-10-11](PD 诱骗板参考设计)EEWorld 参考设计中心
- [2026-07-15](FGV CH224A_Board:Arduino I2C / IO 库与接线说明)GitHub Pages
- [2025-02-27](USB PD 多快充协议受电芯片 CH224 数据手册 V2.1)沁恒微电子
- [2024-03-13](USB PD 等多快充协议受电芯片 CH224 中文手册 V1G)沁恒微电子
免责声明
本文为公开数据手册、厂商社区答疑与开源驱动文档的整理比对,不构成电路设计或量产方案建议。文中引脚定义、单电阻阻值与电压对照(6.8kΩ/24kΩ/56kΩ/120kΩ/210kΩ 对应 9/12/15/20/28V)、I/O 电平真值表(CH224A 为 9/12/20/28V 与 5V)、I2C 地址 0x22/0x23、寄存器地址与位定义、400kHz 速率、PD3.2 EPR 最高 140W、4~30V 输入等,均以沁恒 CH224 数据手册 V2.1(CH224Q/CH224A 部分)为准;手册版本间存在差异(如旧版 CH224K 的 “CFG1 悬空即 20V” 规则、20V 档由 NC 改为 120kΩ),实际设计请以所用型号对应版本的原版手册为准。“CH224A 只支持单字节读写”“PPS/AVS 仅 CH224Q 支持” 来自英文版 V2.0 与中文版 V2.1 的寄存器说明,若后续手册更新请重新核对。文中提到的调试现象与排查顺序,来自沁恒官方社区技术支持答复与第三方开源驱动实践,属经验性结论,不保证覆盖所有板级情况。涉及 28V 或大于 60W 的应用需模拟 E-Mark、匹配 PD3.1 EPR 适配器与 240W 线缆,实际可达电压与电流受适配器、线缆和负载共同限制。高压调试请断开负载、使用隔离电源并做好防护,因照本文操作导致的器件损坏或人身伤害,本文不承担责任。
本文来自作者[频域织元师]投稿,不代表乌兰科技网立场,如若转载,请注明出处:https://www.wlcbnews.com/itzx/202611/1242.html
评论列表(4条)
我是乌兰科技网的签约作者“频域织元师”!
希望本篇文章《单片机控制 CH224A 取电压三条路怎么选,六个坑怎么绕》能对你有所帮助!
本站[乌兰科技网]内容主要涵盖:互联网行业的追踪与探索
本文概览:CH224A 是沁恒(WCH)的 USB PD 受电端控制器。我会先核对数据手册里的引脚功能、配置方式,以及是否支持用单片机改电压,再动笔。