当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]如今,USB-C充电器随处可见。我们大多数人都在某个抽屉里藏着一个30W、65W甚至100W的PD充电器。我们通常认为它们只是简单的手机或笔记本电脑充电器,但实际上它们是功能强大的电源设备,能够根据需求提供不同的电压输出。

如今,USB-C充电器随处可见。我们大多数人都在某个抽屉里藏着一个30W、65W甚至100W的PD充电器。我们通常认为它们只是简单的手机或笔记本电脑充电器,但实际上它们是功能强大的电源设备,能够根据需求提供不同的电压输出。

这正是我开发PowerPD的灵感来源。

PowerPD 是一款基于 ESP322 微控制器、AP33772S USB-C PD PD PD 沉积控制器和 INA226 电源监测器构建的紧凑型 USB-C PD/PPS 电源供应与 PD 分析仪。其原理很简单:连接 USB-C PD PD 充电器,通过旋钮编码器选择所需电压,板载系统将自动与充电器协商该电压。同时,它可实时测量电压、电流和功率,并将所有数据显示在小型 OLED OLED 屏幕上。

PowerPDPD 支持标准的 USB-C PD 电压,如 5V、9V、12V、15V 和 20V。如果充电器支持 PPS(可编程电源),输出电压还可进行小步调节,适用于电子设备测试、原型供电、电路调试及其他轻量级实验台电源应用。

材料

主要部件

•ESP32-WROOM-32EE 模块

•AP33772S USB-C PD 电源控制器

•INA226 电压/电流/功率监测器

•MP1584 降压转换器

•AP2204K-3.3V稳压器

•USB Type-C-C 接口

•5 mΩ 电流感应电阻

•MOSFET电源开关

•1.3英寸OLED显示屏

•旋转编码器

•按钮

•状态指示灯

•电阻、电容、电感和保护二极管等无源元件

该电路图包含AP33772S电源控制器、INA226监控器、MP1584降压转换器、3.3V稳压器、MOSFET输出级、ESP32、OLED显示屏接口、旋转编码器、开关以及编程引脚。

所需工具

•USB-C PD PD 充电器(支持至少 9V PD)

•3.3V USB转UART转换器(CP2102、CH340 或 FT232RL)

•两个小型按钮,用于BOOT和EN

•跳线

•万用表

第一步:工作原理

在进入硬件之前,先了解PowerPD的工作原理会有所帮助。

当连接USB-C PD充电器时,它会从默认的5V输出开始。AP33772S PD控制器随后通过USB-C CC线路读取充电器支持的电压电平。ESP32选择所需的电压或PPS设置,并通知AP33772S向充电器请求该设置。

当充电器切换到选定的电压后,电源会通过一个5 mΩ的分流电阻和MOSFET输出开关,再到达输出端子。INA226实时监测电压、电流和功率,并通过I²C将数据发送给ESP32。

ESP322 可更新 OLED OLED 显示屏,处理旋转编码器和按钮,控制输出开关,并可通过 Wi-Fi-Fi 将实时数据发送到 Adafruit IO。

机载降压转换器和3.3V稳压器直接从同一USB-C PD输入电压为ESP32及所有逻辑电路供电。

第二步:电路概览

USB-C接口用于传输电源和通信线路。AP33772S与充电器通信,并请求选择的PD或PPS电压,例如5V、9V、12V、15V或20V。

电流与功率监控

5 mΩΩ 并联电阻和 INA226 实时监测输出电压、电流和功率。测量数据通过 I²C 发送到 ESP32。

输出切换

MOSFET 用作电子输出开关。ESP322 可在故障情况下安全地将输出开启或关闭,并切断负载。

内部电源

MP1584降压转换器将USB-C输入电压降低,AP2204K稳压器则为ESP32及其他逻辑电路提供干净的3.3V电源。

ESP32 控制器

ESP32 控制整个系统,负责处理电源协商、读取传感器数据、更新 OLED OLED 显示屏、管理旋转编码器和按钮,并可选择通过 Wi-Fi-Fi 将数据发送到 Adafruit IO。

用户界面

该板配备了一个1.3英寸的SH1106 OLED显示屏、一个旋转编码器,以及用于菜单导航、电压选择和输出控制的按钮。

第三步:USB-C PD、PPS 和 AVSSS 基础知识

USB-C PD充电器可根据其支持的规格提供多种固定电压等级。SPR(标准功率范围)中的标准配置如下:

•5V (default for all USB-C connections)

•9V

•12V

•15V

•20V

这些固定电平覆盖了大多数应用场景,但电子设备工作往往需要介于两者之间的电压——例如两节锂聚合物电池需要8.4V,定制LED驱动器需要13.2V,或特定稳压器测试需要10V。这时PPS就派上用场了。

PPS — — 可编程电源(Programmable Power Supply)使充电器能够以100毫伏的步长连续调节输出电压,而无需在固定电平之间跳变。电流限制也可以50毫安的步长设置。这使得性能良好的USB-C充电器在轻量级工作时可接近小型台式电源。PPS是USB PD 3.0规范的一部分,许多现代充电器都支持该功能,但并非全部产品都支持,因此务必查阅充电器的规格说明书或标签信息。

EPR — — 扩展电源范围 新款充电器还支持 EPR,可提供更高的固定电压:28V、36V 和 48V。这些电压适用于显示器、工作站和游戏笔记本等高功率设备。目前的固件不支持 EPR,因此请勿尝试请求这些电压。

AVS — — 可调电压电源

AVS 是 USB PD 的一项新功能,可在高功率水平下提供精细的电压控制。它与 PPS 类似,但专为更高电压、更高功率的应用而设计。目前 PowerPDPD 并未使用 AVS。

在请求电压前,请务必确认充电器实际支持的电压。AP33772S 仅会协商充电器所宣传的电压,不会强制使用充电器不提供的电压。但为了安全起见,建议从5V开始逐步升高,尤其是在测试新负载时。

第四步:PCB设计与组装

我的朋友拉宾德拉在EasyEDA中设计了PowerPD PCB。

AP33772S USB-C PD 控制器被放置在靠近 USB Type-C-C 连接器的位置,以保持 CC CC CC 轨迹短而整洁。INA226 位于 5 mΩΩ 并联电阻旁边,以便通过合适的开尔文传感实现精确的电流测量。

由于大部分重要部件都是细间距SMD元件,手工焊接并不实用。AP33772S采用QFN封装,INA226是小型SOT-23器件,而USB-C接口的焊盘非常紧密。因此,我决定从一开始就采用专业的PCBA,并使用NextPCB进行制造和组装。

与NextPCB的订购流程非常简单,我通过他们的在线系统上传了Gerber文件、物料清单(BOM)以及拾取贴装文件。

NextPCBBB 负责了元器件采购和PCB组装,包括ESP32模块、AP33772S、INA226、USB-C接口、MP1584电源部分、AP2204K-3.3V稳压器、MOSFET输出开关以及所有小型无源元件。

由NextPCB赞助

本项目在可靠多层PCB制造商NextPCB的支持下成功完成。凭借在PCB制造和组装领域超过15年的经验,NextPCB为全球的创客和专业人士提供高品质、可靠的PCB解决方案。

HQDFM 是一款免费的先进在线 PCB Gerber 文件查看器,具备全面的制造设计(DFM)分析功能。

发货前,他们还发来了组装好的电路板的照片,让我可以直观地检查元件的安装位置。这非常有用,因为在我电路板离开工厂之前,就能确认零件是否正确组装。

当电路板到达时,几乎没什么可做的了。我将USB转UART转换器连接到编程引脚上,刷入了固件,电路板就准备好进行测试了。无需返工,没有缺少的零件,也没有冷焊接头。

如果你想自己制作PowerPD,Gerber文件、物料清单(BOM)和原理图均可在GitHub仓库中获取。你可以直接上传这些文件到NextPCB,然后以相同的方式进行电路板的制造与组装。

第五步:固件概览

对于AP33772S USB-C PD电源控制器,我使用了自己定制的Arduino库。

要使用该代码,请从仓库下载以下文件:

•AP33772S.h

•AP33772S.cpp

•PowerPD.ino

将这三个文件都放在同一个Arduino代码文件夹中。这一点很重要,因为主的PowerPD.ino文件使用了AP33772S库:

如果 .h 和 .cpp 文件不在同一个文件夹中,Arduino IDE IDE 将无法正确编译项目。

上传前,请安装所需的Arduino库:

•U8g2

•INA226

•PubSubClient

固件控制整个PowerPD系统。它通过USB-C PD/PPS协商与AP33772S通信,读取INA226的电压和电流数据,更新SH1106 OLED显示屏,处理旋转编码器和按钮,控制MOSFET输出开关,并可选地支持Wi-Fi/MQTT监控功能。

代码中使用的主引脚配置如下:

•I2C SDA GPIO21

•I2C SCL GPIO22

•PD_INT GPIO32

•MOSFET CG GPIO25

•Rotary CLK GPIO5

•Rotary DT GPIO18

•Rotary SW GPIO19

•SW1 GPIO17

•SW2 GPIO16

•LED GPIO4

在使用该板之前,最好了解其基本控制方法:

•旋转编码器 更改选定值

•短按编码器,移动到下一个字段

•长按编码器 应用设置 / / 打开菜单 / / 切换输出

•SW111 短按按 切换电压和电流设置

•SW111 长按按 打开菜单

•SW222 短按开关,开启/关闭输出

•SW222 长按打开会话界面

启动时,ESP32 会初始化显示屏,通过 I2CCC 检测 AP33772S 和 INA226,读取充电器中可用的 PD PD 配置文件,然后显示主界面。用户可在此界面选择固定的 PD 电压或 PPS 设置,并在准备就绪后开启输出。

我已将完整的源代码粘贴在下方,以便直接查看或复制。代码包含PD协商、测量、显示界面、安全检查、输出切换以及菜单系统。

第6步:Adafruit IO IO 配置

PowerPDPD 还可以将实时数据发送到 Adafruit IO,这样我就能通过网页仪表盘来监控电路板。对于这个项目,我保持了仪表盘的简洁,并只使用真正重要的数值:

•电压

•电流

•电力

•温度

•输出

这足以查看电源的实时状态,而无需让仪表盘被不必要的数据填满。

1. 打开 Adafruit IO

首先,前往 Adafruit IO IO 并登录您的账户。

登录后,您将看到 Adafruit IO 的概览页面。由于我使用的是基础套餐,最多可以创建 10 个数据源,这足以满足本项目的需求。

2. 创建信息源

前往:

订阅源 → 新订阅源

逐个创建这五个信息流:

•电压

•电流

•电力

•温度

•输出

我使用了简短的饲料名称,因为这些名称在ESP32代码中也用到了。

对于描述,我使用了像这样的简单文字:

•由PowerPD测量的电压实时输出电压

•当前由PowerPD测量的负载电流

•实时输出功率

•温度板 / PD控制器温度

•输出状态,0 = 关闭,1 = 开启

3. 创建仪表板

创建订阅源后,请前往:

•仪表板 → 新建仪表板

我为PowerPD监控创建了一个仪表盘。该仪表盘将实时显示电压、电流、功率、温度和输出状态。

仪表板名称示例:

•PowerPDPD 监控器

步骤7:上传固件

文件夹设置

创建一个名为 PowerPD 的文件夹,并将三个文件放入其中:

•PowerPD/

•PowerPD.ino

•AP33772S.h

•AP33772S.cpp

在 Arduino IDE 中打开 PowerPD.ino 文件。在编译之前,请在文件顶部更新您的 Wi-Fi 和 Adafruit IO IO 认证信息:

如果你没有使用 Adafruit IO,可以将这些内容留作占位文本。本地显示和控制功能仍可正常使用。

连接USB转UART转换器

使用 3.3V 逻辑电平的 USB USB USB 转 UART UART UART 转换器。5V 适配器会损坏 ESP32。

USB转UART电源PD编程接口

•发送发送 接收

•RX TX

•GND GND

•3V3 3V3

第8步:USB-C PD充电器和数据线

您使用PowerPD时的充电器和数据线,比您想象的更为重要。

任何USB-C PD充电器默认从5V开始。AP33772S芯片通过CC线路与充电器通信,以协商更高的电压,但只能请求充电器实际公布的电压值。

在使用任何充电器之前,请检查背面的标签。标签上应列出支持的电压和电流规格,例如:5V/3A、9V/3A、12V/3A、15V/3A、20V/3A。如果某个充电器标称功率为65W,但标签上仅显示5V/3A,那么无论你请求多少电压,它都无法提供20V输出。

如果你想测试PPS,请查看充电器上或其规格中是否印有“PPS”字样。并非所有高瓦数充电器都支持该功能。

线缆也很重要。劣质的USB-C线缆可能导致电压下降、连接不稳定或PD协商失败,即使主板运行正常,也可能看起来有故障。大多数测试情况下,任何额定3A且支持PD的USB-C转USB-C线缆都可接受。对于接近20V和5A的高功率负载,请使用带有e-mark认证的5A线缆。

避免使用USB-A转USB-C适配器、磁性连接器和未知的延长线。保持简单:

在连接任何负载之前,务必先用万用表检查输出电压。这只需30秒,可避免许多潜在的误解。

第9步:首次通电

使用优质线缆连接 USB-C PD 充电器。目前不要连接任何设备到 V_OUT 接口。

当充电器连接时:

•状态指示灯应亮起——这确认了VBUS已存在

•OLED应在几秒内显示PowerPD的启动界面

•主板读取充电器提供的可用PD配置文件

•输出保持关闭

如果OLED屏幕保持空白,请检查固件上传情况。如果LED灯未亮,请检查USB-C数据线和充电器。

启动界面出现后,以115200波特率打开串行监视器,并确认AP33772S和INA226均已检测到。然后检查OLED上是否显示至少5V的可选配置文件。

此时电路板运行在5V(默认值),输出处于关闭状态,V_OUT未连接任何设备。这正是进行电压测试前的正确状态。

第10步:CAD设计

我的朋友穆凯什使用 Autodesk Fusion 设计了完整的 PowerPD 外壳,重点在于紧凑的尺寸、简洁的外观以及围绕定制 PCB 的便捷组装。

整个设计由四个主要部分组成:

1. 前面板:

•这是机箱的顶部盖板/前部区域。

•包含OLED显示屏的开孔

•用于固定旋转编码器轴和按钮

•提供USB-C接口和输出端子的开口

•作为整个外壳的主要顶盖

2. 主住房:

•底部外壳可牢固地固定已制作好的PowerPD电路板。

•根据精确的PCB尺寸设计

•包含PCB安装支架和螺丝孔

•提供USB-C接口和编程引脚的接入

•保护内部电子元件并确保其正确对齐

3. 旋转编码器旋钮:

•专为PowerPD定制的旋转编码器旋钮。

•调节电压和浏览菜单时握感舒适

•紧凑设计,与机箱风格相匹配

•直接压入式安装于旋转编码器轴上

4. PCB安装布局:

•该外壳设计使得组装好的PCB可直接安装在内部,无需额外的支架或复杂的布线。

•OLED 头部已与前面板窗口对齐

•旋转编码器位置与旋钮开口一致

•紧凑的内部布局使机身结构简洁整洁

我已附上:

•原始的Fusion 360设计文件

•所有可打印部件的STL文件

你可以:

•在 Fusion 360 中查看和修改 CAD 模型

•如有需要,请调整外壳尺寸

•直接切片并3D打印提供的STL文件,用于您的自行组装

电压测试

•在电源开启且输出禁用的情况下,我使用旋转编码器切换了可用的USB-C PD电压配置文件。OLED显示屏显示了充电器支持的配置文件,包括5V、9V、15V和20V。

•选择电压后,我打开了输出,并使用福禄克万用表验证了实际的V_OUT。测得的电压与OLED显示值非常接近:

•5V 电平测量值约为 4.98V

•16V PPS 设置测量值约为 15.96V

•20V 电位测量值约为 20.07V

这证实了AP33772S已正确协商选定的PD配置文件,并且INA226电压监测已得到适当校准。

我还通过旋转编码器选择了可调电压电平来测试PPS模式。输出电压变化正确,万用表读数与OLED显示屏上显示的设定值一致。

第12步:负载测试

在确认电压曲线正常工作后,我将几个真实负载连接到PowerPD输出端进行测试。我没有使用电子负载,而是用一个12V的冷却风扇和一个由选定的USB-C PD电压供电的高功率BLDC电机来测试电路板。

开启输出后,OLED显示屏实时显示电压、电流和计算出的功率。Adafruit IO仪表板也通过Wi-Fi无线更新,可远程显示相同的实时电压、电流、功率和温度数据。

PD分析模式用于监控充电器的协商过程。OLED可直接显示从连接的USB-C充电器获取的检测到的PD曲线、主动电压、PPS状态以及实时输出信息。下方附有GIF图,展示了实时PD协商和分析界面的实际运行效果。

在确认电压曲线正常工作后,我将几个真实负载连接到PowerPD输出端进行测试。我没有使用电子负载,而是用一个12V冷却风扇和一个由选定的USB-C PD电压供电的高功率BLDC电机来测试电路板。当输出开启时,OLED显示屏实时显示电压、电流和计算出的功率。Adafruit IO仪表板也通过Wi-Fi无线更新,远程显示相同的实时电压、电流、功率和温度数据。我还添加了一个内置的PD分析模式,用于监控充电器的协商过程。OLED可直接显示从连接的USB-C充电器检测到的PD曲线、当前电压、PPS状态以及实时输出信息。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

Knock2DrinkDrink 让酒吧和餐厅的顾客通过敲击桌面来点饮料——无需打开应用,也无需按按钮。桌上搭载了内置IMU的Seeed XIAO设备会监听振动。当顾客敲击三到六次时,设备利用训练好的机器学习模型识别出敲...

关键字: LED 微控制器 nRF5284000

全新集成使 MATLAB 和 Simulink 工作流能够在瑞萨 RA 和 RH850 微控制器上运行,从而简化代码生成、部署和硬件端执行,加速验证与迭代

关键字: 嵌入式系统 微控制器 ECU

在电子设备设计中,电源拓扑的选择直接决定了供电系统的效率、稳定性、体积及成本,更是保障处理器、微控制器和高功率器件可靠运行的核心前提。三类器件的用电特性差异显著:处理器追求低纹波、快响应,微控制器侧重低功耗、小型化,高功...

关键字: 电源拓扑 高功率器件 微控制器

LumiBand 是一款与音乐同步的 LED 手环,专为音乐节、俱乐部和现场活动设计。它最初于 2020 年推出时仅是一款搭载 ATtiny85 微控制器、配备 15 个 NeoPixel 灯珠和一个基本电容式麦克风的产...

关键字: LED 手环 ATtiny85 微控制器

BLHeli_S — 这是较早且广泛使用的固件版本。它适用于赛灵思公司的 EFM8 8051 类型的微控制器。支持脉冲宽度调制(PWM)、单脉冲(OneShot)和双脉冲(DShot)输入协议。虽然不再进行积极开发,但仍...

关键字: FPGA 以太网交换机 微控制器

这是一个使用 RT-Spark(Spark-1)开发板的简单用户界面(UI)项目,该开发板采用的是 STM32F407ZGT6 微控制器芯片。该项目专注于读取开关输入,并通过控制 LED 和在 RT-Spark 内置的液...

关键字: 开发板 微控制器 STM32F407ZGT6

在基于STM32的嵌入式开发中,RAM(随机存取存储器)是影响系统性能和稳定性的核心资源之一。与PC端动辄数GB的内存不同,STM32系列微控制器的RAM容量通常在几KB到几百KB之间,部分高端型号可达数MB。有限的资源...

关键字: RAM 微控制器

UPI 已成为印度最受欢迎的支付方式。如果任何企业想要采用智能解决方案,那么就必须实现与 UPI 的对接。这种支付系统使用起来非常简便,我们是通过 ESP32 进行集成的,而二维码则显示在小屏幕上。这种解决方案可用于任何...

关键字: UPI ESP32 微控制器

变频振荡器(VFO)常用于无线电发射机和接收机中,尤其是在超外差式接收机中,它们能够实现对工作频率的调节。它们在业余无线电、通信系统和测试电子设备中都非常重要。在我之前的几段视频中,我已经向您展示了几种不同的创建 VFO...

关键字: ESP32 微控制器 Si5351 时钟 变频振荡器
关闭