当前位置: 首页 > article >正文

开源一个基于INA226的USB-C PD诱骗器功耗监测仪,硬件软件全公开

开源USB-C PD诱骗器功耗监测仪从硬件设计到软件实现的全栈解析最近在调试一个支持USB PD协议的移动电源时我发现市面上大多数功率检测工具都无法准确捕捉快充协议握手过程中的动态功率变化。这促使我开发了一款基于INA226的高精度USB-C PD诱骗器功耗监测仪能够实时显示电压、电流和功率曲线并验证快充协议的实际触发情况。1. 项目核心硬件设计1.1 INA226功率监测模块选型与配置INA226是一款支持I2C接口的双向电流/功率监测芯片具有16位分辨率特别适合USB PD这种动态范围较大的应用场景。关键参数配置如下// INA226初始化配置 void INA226_Init(void) { IIC_Init(); delay_ms(5); // 配置寄存器16次平均,1.1ms转换时间,连续测量 INA226_Write2Byte(Config_Reg, 0x4527); // 校准寄存器LSB0.02mA,分流电阻0.0001Ω INA226_Write2Byte(Calib_Reg, 0x0A00); }实际测试中发现当使用0.1mΩ分流电阻时测量范围与精度的平衡最佳参数测量范围分辨率典型误差总线电压0-36V1.25mV±0.1%分流电流±3.2A0.02mA±0.5%功率计算-0.5mW±1%1.2 USB-C接口的CC逻辑处理要实现PD协议诱骗功能关键在于正确模拟CC线上的握手信号。我们采用CYPD3177作为协议芯片其典型电路连接方式CC引脚配置CC1/CC2通过5.1kΩ下拉电阻连接支持USB PD 3.0标准电源管理VBUS输入范围4.5-24V集成3.3V LDO为控制电路供电I2C通信400kHz标准模式地址0x08可配置注意使用PD诱骗功能时务必确保设备支持目标电压档位否则可能损坏被测设备。2. 软件系统架构2.1 实时数据采集框架主控采用STM32F103C8T6通过中断方式实现1kHz采样率。关键数据结构设计typedef struct { float voltage; // 单位V float current; // 单位A float power; // 单位W uint32_t timestamp; // 单位ms } PowerData; #define BUFFER_SIZE 1000 PowerData circularBuffer[BUFFER_SIZE]; volatile uint16_t bufferIndex 0; // 定时器中断服务例程 void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM3, TIM_IT_Update) ! RESET) { circularBuffer[bufferIndex].voltage INA226_GetVoltage() / 1000; circularBuffer[bufferIndex].current INA226_GetShunt_Current() / 1000; circularBuffer[bufferIndex].power circularBuffer[bufferIndex].voltage * circularBuffer[bufferIndex].current; circularBuffer[bufferIndex].timestamp HAL_GetTick(); bufferIndex (bufferIndex 1) % BUFFER_SIZE; TIM_ClearITPendingBit(TIM3, TIM_IT_Update); } }2.2 OLED显示界面实现采用SSD1306驱动的128x64 OLED屏幕显示布局分为三个区域实时数值区顶部电压xx.xV电流x.xxxA功率xx.xxW波形显示区中部实时绘制最近10秒的功率曲线可切换显示电压/电流波形状态指示区底部PD协议版本当前电压档位数据记录状态刷新策略采用差异更新机制仅重绘变化部分以降低CPU负载void updateDisplay() { static float lastVoltage 0; static float lastCurrent 0; if(fabs(currentVoltage - lastVoltage) 0.1) { drawVoltage(currentVoltage); lastVoltage currentVoltage; } if(fabs(currentCurrent - lastCurrent) 0.01) { drawCurrent(currentCurrent); lastCurrent currentCurrent; } updateWaveform(); }3. 实际应用场景测试3.1 快充协议触发验证通过对比不同充电器的输出特性我们发现普通5V充电器稳定输出5.1V±0.1V最大电流受限于D/D-识别PD 18W充电器初始5V握手后跳变9V转换时间约200msPD 65W充电器支持5V/9V/15V/20V多档20V档位纹波50mV测试数据记录示例时间(s)电压(V)电流(A)协议状态0.05.00.12初始状态0.25.00.45发送PDO请求0.49.01.89切换9V成功10.09.00.05进入待机3.2 移动电源实际容量测试以某品牌20000mAh移动电源为例5V输出测试宣称容量20000mAh74Wh实测输出68.5Wh效率92.5%18W PD输出测试宣称容量45Wh实测输出41.3Wh效率91.8%重要发现多数移动电源在高功率输出时实际容量会显著低于标称值这与温度导致的效率下降有关。4. 进阶功能扩展4.1 数据记录与导出添加MicroSD卡存储支持实现两种记录模式连续记录模式采样率1HzCSV格式存储支持24小时不间断记录触发记录模式电压突变触发保存触发前后各30秒数据二进制格式节省空间文件命名规则示例20230815_142305_5Vto9V.csv4.2 无线数据传输方案通过ESP-01S模块增加WiFi功能实现实时监控模式WebSocket协议500ms更新间隔网页端波形显示远程配置模式HTTP REST API支持参数调整固件OTA升级典型网络数据包结构{ timestamp: 1692000000, voltage: 9.02, current: 1.876, power: 16.93, protocol: PD3.0, temperature: 42.5 }在完成多个充放电循环测试后我发现这套系统最能真实反映快充设备的工作状态。特别是在检测某些宣称支持PD3.0但实际协商不稳定的充电器时波形记录功能帮助发现了多次电压回落的异常情况。硬件设计中将INA226的Vbus引脚通过TVS二极管保护有效防止了热插拔时的电压尖峰损坏。

相关文章:

开源一个基于INA226的USB-C PD诱骗器功耗监测仪,硬件软件全公开

开源USB-C PD诱骗器功耗监测仪:从硬件设计到软件实现的全栈解析 最近在调试一个支持USB PD协议的移动电源时,我发现市面上大多数功率检测工具都无法准确捕捉快充协议握手过程中的动态功率变化。这促使我开发了一款基于INA226的高精度USB-C PD诱骗器功耗监…...

抖音视频批量下载终极指南:免费工具快速保存无水印内容

抖音视频批量下载终极指南:免费工具快速保存无水印内容 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

三步解决iOS设备激活锁难题:A9-A11芯片设备离线绕过方案

三步解决iOS设备激活锁难题:A9-A11芯片设备离线绕过方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当你面对二手iPhone的激活锁界面,或是因忘记Apple ID密码而无法使用设备…...

终极OBS-VST插件指南:免费提升直播音频质量的完整方法

终极OBS-VST插件指南:免费提升直播音频质量的完整方法 【免费下载链接】obs-vst Use VST plugins in OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-vst OBS-VST插件是开源音频处理工具,让你能在OBS Studio中直接使用VST 2.x音频插件作为…...

LeetCode题解【2140. 解决智力问题:逆序动态规划】

题目概述 给定一个二维数组 questions,其中 questions[i] [points_i, brainpower_i]。 对于第 i 道题,我们有两种选择: 解决这道题:获得 points_i 分,但接下来必须跳过 brainpower_i 道题;跳过这道题&a…...

蓝牙CVSD语音编解码

0 Preface/Foreword1 CVSD介绍1.1 CVSD全称CVSD: Continuous Variable Slope Delta modulation,连续可变斜率增量调整CVSD是经典蓝牙(Bluetooth Classic)里HFP通话最基础、最传统的语音编码方式。1.2 CVSD类型CVSD本质是&#xff…...

揭秘智能宏编辑革命:GSE宏编辑器如何重塑魔兽世界技能自动化

揭秘智能宏编辑革命:GSE宏编辑器如何重塑魔兽世界技能自动化 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Macro-…...

ARM C/C++库多线程安全机制与优化实践

1. ARM C/C库多线程安全机制解析在嵌入式开发领域,多线程编程已成为提升系统性能的主流方案。ARM架构作为嵌入式系统的核心,其C/C标准库的多线程安全实现直接影响着系统稳定性和开发效率。与通用操作系统环境不同,ARM嵌入式环境通常没有完整的…...

小白友好:YOLOv8鹰眼目标检测镜像部署与初体验指南

小白友好:YOLOv8鹰眼目标检测镜像部署与初体验指南 1. 认识YOLOv8鹰眼目标检测 1.1 什么是YOLOv8鹰眼目标检测? YOLOv8鹰眼目标检测是一款基于Ultralytics YOLOv8模型的工业级实时多目标检测系统。它能够快速识别图像中的80种常见物体,包括…...

Pearcleaner:让macOS重获新生的智能清理伙伴

Pearcleaner:让macOS重获新生的智能清理伙伴 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾发现,即使删除了macOS上的应用程…...

AI内容安全工程:构建企业级LLM应用的防护体系

为什么内容安全是LLM应用的必答题? 2025年,全球已有多起因LLM应用内容安全缺失导致的重大事故:客服机器人被诱导发表种族歧视言论、AI助手泄露用户隐私数据、教育应用输出不适合未成年人的内容。随着AI监管法规趋严,内容安全不再是…...

音乐解锁完整指南:3步免费解密任何加密音乐文件

音乐解锁完整指南:3步免费解密任何加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://git…...

全面数据恢复方案:TestDisk与PhotoRec的实战技术深度解析

全面数据恢复方案:TestDisk与PhotoRec的实战技术深度解析 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 数据丢失是技术人员和普通用户都可能面临的严峻挑战。TestDisk与PhotoRec作为开源数据恢…...

告别ArUco?实测对比AprilTag与ArUco在机器人视觉引导中的性能差异

AprilTag与ArUco实战对比:机器人视觉引导系统的技术选型指南 当机器人需要在复杂环境中实现精准定位时,视觉基准系统的选择往往成为项目成败的关键。AprilTag和ArUco作为两种主流的视觉标记系统,各自拥有独特的优势与适用场景。本文将通过一组…...

CompressO:免费开源的终极跨平台视频压缩工具完整指南

CompressO:免费开源的终极跨平台视频压缩工具完整指南 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO …...

Windows上安装安卓应用:APK安装器的全新体验

Windows上安装安卓应用:APK安装器的全新体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK安装器是一款专为Windows系统设计的安卓应用安装工具&#…...

Qwerty Learner终极指南:如何通过打字练习高效记忆英语单词

Qwerty Learner终极指南:如何通过打字练习高效记忆英语单词 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https:…...

告别SDK!用Vitis IDE给ZYNQ板子固化程序到Flash的保姆级图文教程

从SDK到Vitis:ZYNQ开发板Flash程序固化全流程精解 如果你是一位长期使用Xilinx SDK进行ZYNQ开发的工程师,最近打开Vitis IDE时可能会感到一丝陌生——就像走进曾经熟悉的办公室却发现所有家具都被重新排列过。这种不适感在尝试将程序固化到Flash时尤为明…...

告别C++编译等待:用Rust重写Qt小部件,体验极速构建与内存安全

告别C编译等待:用Rust重写Qt小部件,体验极速构建与内存安全 每次修改一行C代码后漫长的编译等待,是否让你在Qt开发中感到效率瓶颈?那些难以追踪的内存泄漏和悬空指针问题,是否已成为项目中的定时炸弹?今天&…...

别再手动写Dockerfile了!Docker AI Toolkit 2026自动生成AI应用容器镜像,支持37种框架+12类硬件加速器,3步完成交付

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026:重新定义AI容器化交付范式 Docker AI Toolkit 2026 是面向生产级 AI 应用的一体化容器化开发套件,深度融合模型编译、硬件感知调度与可信推理链路验证能…...

Elasticsearch搜索排序实战:时间衰减函数(Decay Function)评分优化全解析

[TOC](Elasticsearch搜索排序实战:时间衰减函数(Decay Function)评分优化全解析)🌺The Begin🌺点点关注,收藏不迷路🌺前言 在内容搜索、电商推荐、新闻资讯、短视频、社区帖子等几乎所有搜索业务中,都有一个…...

英雄联盟Akari助手:5个智能功能让游戏操作更轻松

英雄联盟Akari助手:5个智能功能让游戏操作更轻松 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中的繁琐操作而烦恼…...

# CentOS 7 + 中国服务器 + Codex + 中转 API 完整教程

CentOS 7 中国服务器 Codex 中转 API 完整教程 适用场景: 国内云服务器无法直连 OpenAI系统为 CentOS 7希望稳定使用 Codex CLI 这篇文章把安装、配置、避坑和最终可用方案一次讲清楚,适合直接照着操作。 一、先说核心问题 很多人在 CentOS 7 上安装 …...

从裸机到Linux设备树:RISC-V C驱动开发全链路打通,7步完成GPIO/UART/I2C三级适配

更多请点击: https://kaifayun.com 第一章:国产RISC-V芯片驱动开发全景概览 国产RISC-V生态正加速成熟,从平头哥玄铁、芯来Nuclei到赛昉JiangShan,多款高性能内核已进入量产阶段,驱动开发成为连接硬件能力与上层应用的…...

如何免费获得7款专业级思源宋体:设计师必备的完整字体包指南 [特殊字符]

如何免费获得7款专业级思源宋体:设计师必备的完整字体包指南 🎨 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目寻找高质量字体而烦恼吗&…...

LinkSwift:八大网盘直链下载助手终极指南,告别下载限速困扰

LinkSwift:八大网盘直链下载助手终极指南,告别下载限速困扰 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…...

给ADAS工程师的CIS相机选型避坑指南:CRA、QE、CFA这些参数到底怎么配?

给ADAS工程师的CIS相机选型避坑指南:CRA、QE、CFA这些参数到底怎么配? 在ADAS系统开发中,摄像头作为环境感知的核心传感器,其性能直接影响算法识别准确率。面对供应商琳琅满目的参数手册,工程师常陷入"参数陷阱&…...

告别高配置!10分钟用“魔珐星云”打造你的第一个具身智能数字人

前言: 在过去的一年里,大模型(LLM)颠覆了我们撸代码和写文案的方式。但在惊叹之余,开发者们往往面临着一个尴尬的落地痛点:无论后端的模型推理多快、多智能,一到前端交互,AI 就只能…...

如何用Python脚本免费获取11.9万英语单词标准发音音频库?

如何用Python脚本免费获取11.9万英语单词标准发音音频库? 【免费下载链接】English-words-pronunciation-mp3-audio-download Download the pronunciation mp3 audio for 119,376 unique English words/terms 项目地址: https://gitcode.com/gh_mirrors/en/Englis…...

信息增益与互信息在机器学习特征选择中的应用

1. 信息增益与互信息的核心概念当我在2013年第一次用决策树解决客户分类问题时,发现模型对某些特征异常敏感。后来才明白这是信息增益在起作用——它量化了特征对分类结果的影响程度。信息增益(Information Gain)和互信息(Mutual Information)这对孪生概念&#xff…...