
网页配置版140W Type-C受电工具(CH32M030版)
简介
用网页设置电压电流,Type-C受电工具新玩法!基于CH32M030,最高140W,支持FIX/PPS/EPR/AVS。
简介:用网页设置电压电流,Type-C受电工具新玩法!基于CH32M030,最高140W,支持FIX/PPS/EPR/AVS。开源协议
:Public Domain
描述
友情提示,大功率电源要注意用电安全!!!
项目简介
用网页设置电压电流,解锁Type-C受电工具新玩法!

最近想做一套从Type-C取电的电源工具,看了下平台上的开源方案,做可调电源吧,系统复杂难焊,用PD受电芯片吧,挡位少不够灵活。起初也考虑过CH224Q这种受电芯片,虽然支持140W EPR,能用MCU去配电压,但是PD芯片加MCU这种组合过于老套。咱就说,能不能只用一个芯片,要什么电压就给什么电压,研究了一下,还真能!
灵感来自沁恒PD芯片的在线定制平台(pmic.wch.cn),这个网站最神奇的地方在于,可以通过网页给eMarker芯片下载参数。如果照葫芦画瓢把参数设置交给网页,输出电压通过PPS或者AVS协议让Type-C电源适配器去做,那么PCB上只要个MCU就够了。选了沁恒的CH32M030,首先我个人因为工作原因对这颗芯片比较熟悉,其次团队的几个朋友也都多多少少接触过这个芯片。目前做的这一版,输出电压5V~28V,最大功率暂定140W。当然,网页工具也一并提供。
主要特性
| 协议支持 |
支持FIX、PPS、EPR、AVS,请求顺序可调 目标电压电流可设置,支持5V~28V,最高支持140W(28V@5A)! |
| 参数配置 |
用网页配置参数,电源工具新体验! 提供离线网页,模块插电脑,多种参数随心配 配置掉电保存,下次上电直接使用 |
| 保护功能 | 过压保护!过流保护!过温保护!(妈妈再也不用担心炸板子了) |
| 二次开发 |
提供一个.a库文件,PD协议通信轻松搞定 还可以自行增删功能(RGB灯效,串口、I2C接口功能拓展等) |
| 下一步计划 |
支持公口模式(实施中) M030的灌电流模块可以调节两路外部DCDC 下一步打算结合这个功能升级成数控电源,还在规划中。 |
为什么选CH32M030?因为它是天选电源MCU!
支持USB PD是基本条件,此外有四个功能精确命中方案需求:
自带高压LDO,工作电源直接从VBUS上取,很方便。
自带电荷泵,高压I/O可以输出VBUS+8V,驱动电源路径上的NMOS很easy。
支持USB通信,通过WinUSB方式可以方便地使用网页等工具配置参数。
差分电流采样,M030内置的运放可以组成高增益的差分输入电流采样电路(而且只要一行代码),提供比单端采样更准的电流监测功能。
工作原理
基于CH32M030的单芯片方案。Type-C口既做电源输入,也做参数配置的下载口。MCU电源直连Type-C接口VBUS,上电后通过PD协商目标电压,然后经NMOS输出。提供过流、过压、过温保护功能,带RGB灯效。

1.芯片的工作电源
CH32M030内部的高压LDO支持5~28V电源。本设计中,Type-C接口最高输出140W(28V@5A),VBUS电压正好落在高压LDO工作范围中,因此芯片直接从VBUS上取电,无需外部高压LDO。
2.VBUS电源路径的通断控制
现在电源通断好像都喜欢用NMOS,一是内阻低发热小,二是成本也比PMOS便宜。这里用一对NMOS背靠背,可以防止VBUS掉电情况下模块输出端向Type-C接口倒灌电流。本设计采用电源直出形式,模块输出电压与Type-C接口输入电压一致,NMOS的导通需要给栅极施加至少VBUS+Vgs(th)的开启电压。高于VBUS的电压怎么来?这就要用到芯片内部的电荷泵了。
①电荷泵升压工作原理
M030的二级电荷泵只需要三个电容即可输出VBUS+8V,可为电源路径上NMOS的开启提供足够的高压。电荷泵的工作原理非常简单,先将电容C1充电至VBUS,之后电容C1叠加PB14的高电平,将C2充至VBUS+4V;然后C2再叠加PB12的高电平,将C3充到VBUS+8V。整个过程持续交替进行,从而保证HVCP带载情况下也能输出稳定高压。

电荷泵的三个引脚由CH32M030定时器2的两对互补通道驱动。工作时,PC5、PB14输出互补波形、PB14与PB12输出互补波形。通道2中插入死区,可以防止C1向VBUS倒灌。
| 电荷泵引脚 | 对应定时器通道 |
| PC5 | 定时器2-通道2 |
| PB12 | 定时器2-通道1的互补通道 |
| PB14 | 定时器2-通道2的互补通道 |
②电源路径上NMOS的通断控制
有了HVCP引脚上的VBUS+8V,就可以通过MCU的I/O控制电源路径上的NMOS。这里使用PB15,这个引脚只能开漏输出。

PB15内部可选120k欧的电阻再到地,这是为了防止VBUS+8V与DCDC后的DC Out压差过大导致MOS栅源击穿用的。本方案没有使用DCDC,VBUS+8V与DC Out压差总是8V,因此内部的120k没有用到。另加的2M电阻用于防止MOS漏源在较高温度下微弱漏电造成栅源击穿。
3.差分电流放大电路
对于大功率的电源类应用,GND平面的电流路径上会产生压差。如果对电流使用单端采样,这种压差会影响采样准确性。使用差分采样可以很好地解决这个问题。

CH32M030内部的运放可以很方便地配成高增益的差分输入,本方案将采样电阻上的电压放大50倍后加偏置送给ADC进行采样。

4.PD通信和网页参数配置
①担心PD协议太复杂?没关系,有现成的库!
因为M030的EVT自带PD例程,项目起步就比较方便。先参考例程跑通PD通信,再照着PD官方文档把对应的逻辑堆出来就行。这部分比较枯燥,代码写了好几天。考虑到许多朋友对PD协议可能不太熟,我把PD的底层代码封成了libPD_SNK.a库给大家,直接调用API,这样做二次开发的朋友上手会比较容易。
②基于网页的参数更新机制
Google的Chrome等许多浏览器都支持用网页访问本地USB设备的Web API。本作品通过网页更新受电工具参数就依赖这套API。网页和受电工具的通信基于WinUSB。所谓WinUSB,是微软为USB设备与主机通信提供的简单解决方案。WinUSB无需安装驱动,操作系统会自动识别并加载内置的WinUSB驱动,同时提供数据收发的上层接口。通过浏览器的Web API,可以扫描并连接受电工具,将网页上配置好的参数通过USB写进受电工具中。

使用方法
受电工具连接Type-C电源适配器后,会根据当前设置,自动协商目标电压。
协商完成后,工具的输出端会开启,对外提供电源。
这里主要介绍网页配置工具的界面功能,网页工具对应压缩包CfgWeb/PD WEBUSB/index.html文件。

各配置项功能如下:
| 配置项 | 功能描述 | |
| 请求顺序配置 | 拖动左侧栏可以修改FIX/PPS/EPR/AVS请求顺序,未勾选的请求方式不会被执行 | |
| 模式配置 | 请求模式 | 精准匹配:只协商设定的电压,FIX/PPS/EPR/AVS按配置顺序依次尝试,如果协商不上,可能只会输出5V或者没有输出; |
| 向下兼容:如果目标电压协商不上,会请求小于目标电压的档位。 | ||
| Gate模式 | 预留,暂时还没做。 | |
| 电压配置 | 目标电压 | 可配5V~28V。 |
| 下偏差电压/上偏差电压 | 应对一些奇奇怪怪的充电头。比如我之前碰到最高电压19.6V的,把下偏差电压写成1V就好,这样请求范围就成了19V~20V,上偏差电压同理。 | |
| 电流配置 | 目标电流 | 可配0.1~10A(当电源适配器电流输出能力不足时,按支持的最大电流请求。例如设置了5A,但适配器只有3A,会请求3A)。 |
| 最小电流 | 针对后端设备功率小于特定值会异常的情况,通过这个参数可以跳过一些档位(比如适配器只有20V@1A,最小电流设置成2A,则不会匹配此档位)。 | |
| 过保配置 | 过压保护 | 设置电压阈值,过压时自动关闭MOS并闪灯(红色) |
| 过流保护 | 设置电流阈值,过流时自动关闭MOS并闪灯(黄色) | |
| 过温保护 | 设置温度阈值,过温时自动关闭MOS并闪灯(蓝色) | |
关于代码结构
如果只是做着玩,直接编译工程烧录固件就可以了。
CH32M030不支持ISP下载,下载程序要用WCH-LinkE,也不贵。
对于有志二次开发的朋友,这里简要介绍一下工程结构。
几个比较重要的文件和文件夹:
User文件夹
|----HVCP文件夹----NMOS升压和驱动相关
|----USBFS文件夹——USB设备枚举
|----USBPD文件夹——PD驱动库
|----PD_User.c——PD回调函数
PD_User.c提供初始的默认配置和PD通信节点的回调函数,此外还包含一个不精确的1ms延时,可以加入灯效或者按键扫描等内容。这个1ms延时不能添加Delay或者其他耗时长的操作。这个文件中,电压、电流、温度的单位分别为mV、mA和℃,例如:
.VoltTarget = 20000代表20V
.CurrentTarget = 4500代表4.5A
.OTPNum = 70代表70℃
另外,CH32M030K9U7的信息在DS2手册里,芯片用的时候要结合DS0/RM一起看。
其他
最后点名表扬一下MRS2。怎么说呢,Keil确实功能强大,但是吧,《不太好用》《我还以为二战时期的软件》《那你和我的MRS2说去吧》《我们都在用力的活着》。MRS2你就用吧,香就完事了。

再啰嗦一句,注意用电安全!!!
这个方案涉及高压大功率,尝试之前一定要做好功课,安全第一!
方案分享给大家学习研究Type-C受电技术,做产品的话还是建议选用CH224Q/CH224A这类专用芯片。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论