1. 项目概述
这个PD协议微型直流可调电源项目是我最近完成的一个很有意思的DIY作品。作为一个经常需要调试各种电子设备的硬件工程师,我一直想要一个便携、低成本但又功能完善的直流电源。市面上的成品要么太贵,要么体积太大,于是决定自己动手做一个。
这个电源的核心思路很巧妙:利用现在随处可见的PD协议充电头作为电源输入,通过CH224A协议芯片进行电压诱骗,再配合DCDC降压电路实现可调电压输出。整个设计最让我满意的是它的成本控制——核心IC总成本仅6.5元,却能实现2.4-18.4V的可调输出,最大3A电流,还带有数字显示和串口数据输出功能。
2. 硬件设计详解
2.1 PD协议诱骗电路
PD协议诱骗是整个设计的电源输入部分,我选择了CH224A这颗芯片而不是常见的CH224K。这个选择有几个考虑:
- CH224A是更新型号,稳定性更好
- 它省去了CH224K需要的外接限流电阻(那个电阻容易发热)
- 价格反而更便宜
电路设计上,通过一个100kΩ电阻(R2)将电压档位配置为20V。这里有个细节:如果连接的充电头不支持20V输出,芯片会自动协商到能提供的最高电压档位。我在测试中发现,很多手机厂商的私有快充协议也能被识别并使用。
提示:CH224A的PG引脚可以用来接LED做电源状态指示,这个设计很实用,我在调试时一眼就能知道电源是否正常接入。
2.2 DCDC降压电路
降压电路是整个设计的核心,我使用的是常见的降压方案,但有几个关键点需要注意:
- 电位器选择:必须使用10kΩ的,而且建议从立创商城购买。淘宝上的一些便宜电位器在两端阻值变化不均匀,很难精确调节电压。
- 电阻配置:R1和R5决定了输出电压的范围,计算公式是:
- 最大电压 = 0.8V × (1 + R1/R5)
- 最小电压 = 0.8V × (1 + R1/(R5+10k))
- 散热考虑:在大电流输出时,降压芯片会明显发热,建议在PCB设计时预留足够的铜箔面积帮助散热。
2.3 电流电压采样电路
采样电路的设计很有讲究,这里分享几个实际调试中的经验:
- 电压采样:使用简单的电阻分压网络,但要注意:
- 分压后的电压必须在MCU的ADC输入范围内(不超过3.3V)
- 电阻精度会影响测量准确性,建议使用1%精度的电阻
- 电流采样:使用100mΩ采样电阻配合运放放大
- 必须使用"轨到轨"运放,否则测量范围会受限
- 采样电阻必须放在低端(GND侧),否则20V输入会烧毁运放
- 放大倍数计算公式:放大倍数 = R9/R8 = 20倍
在实际使用中,我发现采样值会有微小误差,这主要是电阻精度导致的。解决方法是在代码中加入校准系数,通过实测值进行补偿。
2.4 20V指示灯电路
这个电路设计很巧妙,使用18V稳压管和三极管构成:
- 当输入电压≥20V时,稳压管反向导通,三极管基极获得电流
- 三极管导通,LED点亮
- R12和R16的阻值经过实测确定,确保LED亮度适中
注意:LED必须接在三极管的集电极,如果接在发射极可能因为压降不足而无法点亮。
2.5 MCU及周边电路
主控选用的是国产PY32单片机,价格仅1元,但功能足够:
- 供电使用GM7333TB LDO,输入范围5-40V,非常宽泛
- 即使PD协商失败(只有5V输入),系统也能正常工作
- PY32的HAL库与STM32类似,开发门槛低
3. 软件设计要点
3.1 ADC采样处理
ADC采样有几个优化点值得分享:
- 不使用固定的3.3V作为参考,而是通过芯片内部的1.2V参考源来校准VDD电压,提高精度
- 将ADC采样时间设置为最长,增加采样精度
- 在代码中加入电压/电流补偿系数,修正硬件误差
实际测试中,电压采样误差在±0.04V内,电流误差±0.05A,对于这个成本的设计来说已经很不错了。
3.2 串口数据输出
串口配置为115200波特率,每100ms发送一次数据,格式为:
"Voltage:xx.xxV, Current:xx.xxA, Power:xx.xxW\r\n"
这个频率是经过测试的平衡点:
- 再高可能导致缓冲区溢出
- 再低会影响上位机的曲线显示效果
串口发送使用中断方式,不阻塞主程序运行。如果需要连接VOFA+等工具,可以修改为特定的数据格式。
3.3 数码管显示
数码管采用交替显示方式:
- 4秒显示电压
- 4秒显示电流
- 如果电流<0.01A,则固定显示电压
这个逻辑既保证了信息全面,又不会让显示过于频繁变化。
4. 使用体验与优化建议
经过一段时间的使用,这个电源表现相当稳定。以下是一些实用建议:
- 充电头选择:建议使用30W以上的PD充电头,我测试过的小米、Anker、绿联等品牌都能很好支持
- 温度控制:长时间3A输出时,降压芯片温度会达到60-70℃,建议加个小散热片
- 电位器调节:电压调节比较灵敏,可以换成多圈电位器提高调节精度
- 扩展接口:我在PCB上预留了几个测试点,方便测量关键信号
一个实用的改进方向是增加预设电压功能,可以通过MCU的按键来实现几个常用电压的一键切换。
5. 常见问题排查
在实际使用中可能会遇到以下问题:
-
20V指示灯不亮:
- 检查充电头是否支持20V输出
- 测量CH224A的输入电压
- 检查稳压管D2和三极管Q1是否正常
-
输出电压不稳定:
- 检查电位器接触是否良好
- 测量反馈电阻R1、R5阻值
- 检查输出电容是否损坏
-
电流测量不准:
- 检查采样电阻两端电压
- 确认运放输出是否在合理范围
- 在代码中调整补偿系数
-
数码管显示异常:
- 检查MCU供电是否稳定
- 确认数码管驱动电路连接正确
- 检查ADC采样值是否正常
6. 项目总结
这个PD可调电源项目实现了一个非常实用的电子工具,它的优势在于:
- 极低成本:核心IC仅6.5元,完整BOM成本也不到50元
- 便携性好:直接使用PD充电头供电,无需笨重的电源适配器
- 功能完善:电压电流显示、串口输出、上位机监控一应俱全
- 易于复现:所有设计资料开源,使用常见元件
对于电子爱好者来说,这个项目不仅实用,还能学到PD协议、DCDC降压、运放采样等多个实用电路知识。我在设计过程中特别注重了电路的可靠性和易用性,所有关键点都在文档中做了详细说明。