自制USB Type-C 电流功率检测仪

今天分享的项目是一款USB供电触发和监控 USB PD检测仪,可以在几乎任何USB type-c型PD电源上运行,其中,电压、电流、功率等重要信息会显示在OLED上。

USB PD 检测仪基于廉价且易于使用的 CH224K 多快速充电协议电源接收芯片、INA219 电压和电流传感器 IC 以及 ATtiny微控制器。下面是相应的原理图:

主要芯片有:

1)78L33 稳压器:一款简单且价格低廉的稳压器,可将高达30V的输入电压转换为3.3V的输出电压,输出电流高达200mA,压差为1.7V。78L33为电路的所有元件提供3.3V电压。

2)CH224K USB PD 功率接收芯片:USB PD受电协议芯片,集成了PD3.0/2.0、BC1.2等快充协议,自动检测VCONN和模拟E-Mark芯片,支持高达100W的功率,内置PD通信模块。它还在内部集成了输出电压检测,以支持过热和过压保护。它的特点是:

4V 至 22V 输入电压;PD3.0/2.0、BC1.2等快充协议;USB C 型 PD,正负插入检测和自动切换;E-Mark模拟,自动检测VCONN,支持100W功率PD请求;请求的电压可以通过多种方法动态调整;单芯片集成度高,外设简化,成本低;内置过压过温保护模块。

输出电压通过CH224K的三个配置引脚选择,这些引脚直接连接到ATtiny 并根据下表进行设置:

CH224K 的 PG 引脚为漏极开路,当请求的电压与 USB PD 电源成功协商时,将输入拉至地。它可用于驱动指示灯 LED 或高侧 P 沟道 MOSFET,以实现电源路径控制。在这里,该引脚直接连接到ATtiny,ATtiny可以借助内部上拉电阻查询状态。

3)INA219 电流/功率监视器:具有 I²C 兼容接口的分流器和电源监视器。该器件监视分流压降和总线电源电压,并具有可编程转换时间和滤波功能。可编程校准值与内部乘法器相结合,可以直接读取以安培为单位的电流。所选的10mΩ分流电阻对电路的影响非常小,测量分辨率为1mA。为了进行精确测量,应选择容差低(1%或更好)的分流电阻。此处使用 INA219 来测量输出电压和输出电流。它通过I²C与ATtinic通信。

4)A微型微控制器:ATtiny 微控制器处理用户界面、CH224K 和 INA219 的控制以及测量值的计算和显示。用户界面采用两个按钮和一个SSD1306 128×32像素OLED显示屏。在此应用中,ATtiny 仅以 1MHz 的频率运行,以保持低功耗,从而避免 78L33 稳压器过热,尤其是在 20V 输出电压下。

译和上传固件,有两种方式:

1)使用 Arduino IDE,这个使用过的就不用多说了。

2)使用生成文件 (Linux/Mac):

  • 将编程器连接到您的 PC 和板上的 UPDI 接头。确保编程器在3.3V下工作。

  • 确保已安装最新的 avr-gcc 工具链。

  • 打开终端。

  • 导航到包含生成文件和草图的文件夹。

  • 运行以编译、上传固件(相应地更改设备、程序和端口)

    DEVICE=attiny814

    PROGRMR=serialupdi

    PORT=/dev/ttyUSB0 make install

操作说明:

使用 USB-C 电缆将 USB PD 检测仪连接到 USB C 型 PD 电源。

使用 SET 按钮选择所需的输出电压。当设备与电源通信时,显示屏上会出现一个沙漏。如果协商成功,则显示滴答声,输出端存在所需电压。

通过输出螺丝端子将设备连接到输出端。

使用重置按钮清除能量计数器。

原文链接:

https://github.com/wagiminator/ATtiny814-USB-PD-Adapter
作者:Stefan Wagner
 
原理图及代码下载:极客岛GeekIsland 回复关键词:USB PD检测仪

作者:极客石头

在搞事情的路上越走越远。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注