数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 53|回复: 1

[工仪] 自制XT60功率计:90V/75A峰值,24位ADC,触控彩屏+WiFi,软硬件全开源

[复制链接]
发表于 昨天 22:01 | 显示全部楼层 |阅读模式
做航模、无人机、电池充放电测试时,经常需要一台能直接串在 XT60 回路里的功率计:要看得清大电流下的电压跌落,抓得住插拔瞬间的浪涌,最好还能把数据同步到电脑。市面上的成品要么屏幕小,要么没有波形,要么数据只能自己看,于是自己做了这台。

硬件、固件、外壳、生产文件全部开源,复刻资料在文末。



演示视频(B站):https://www.bilibili.com/video/BV1pNWU6qE3P/
电子/单片机技术交流QQ群:307449735

先把边界说清楚:75A是峰值,额定是±30A;它是一台调试工具,不是计量仪器。另外本项目的软件部分由AI开发,硬件是我自己画的,固件从架构到实现基本交给AI,我做需求定义、方案评审和实机验证。介意这点的可以关掉,关心能不能用、怎么复刻的继续往下看,代码、文档、测试工具都是公开的。




一、主要参数

  • 主控:ESP32-S3-WROOM-1-N16R8(16MB Flash + 8MB 八线PSRAM,双核240MHz)
  • 计量ADC:TI ADS131M02,24bit Σ-Δ,双通道同步采样 4kSPS
  • 电压量程:0~90V(101:1分压链路理论±121V,受辅助电源最高100V输入限制取90V)
  • 电流量程:峰值±75A(1mΩ+PGA 16x的ADC满量程);额定±30A(XT60接口额定30A,5W分流器上限70A)
  • 电流采样:1mΩ/5W 四端开尔文分流器,分辨率约8.94µA/LSB
  • 电压采样:100kΩ/1kΩ、±0.1%薄膜电阻分压,零漂移运放缓冲,分辨率约14.5µV/LSB
  • 显示:1.83寸 IPS,240×284,NV3030B控制器(QSPI),CST816D电容触摸
  • 传感器:AHT20温湿度、SC7A20HTR三轴加速度计(自动转屏)
  • 供电:XT60输入(SY8511BADC降压3.3V/1A)/ USB / 单节锂电池(TLV62084 3.3V/2A),TPS2116自动优先切换,TP4057 400mA充电
  • 自身功耗:约0.7W
  • 告警:过压/过流/过功率阈值可设(上限90V/70A/6300W),过温65℃双温度源恒开保护


注意:2mA以下电流按0显示(小信号死区),消除分流器噪声造成的末位跳动,波形页仍能看到mA级原始采样。XT60供电档最低5V才能启动。




二、成品展示

3D打印外壳,上盖、中框、底盖三件式,螺丝固定。正面触摸屏,屏幕左侧是状态指示灯和复位键,侧面K1/K2两颗实体按键,触屏能完成的操作纯按键也能完成。Type-C旁的开关选择电池/USB或XT60供电路径。




整机上下两块PCB叠层:上板负责主控、显示、传感器、按键、电压分压与电源管理,下板负责XT60输入输出和1mΩ分流器。电池在上板背面,夹在两块板中间,包青稞纸用双面胶固定。




本地界面三页:测量/波形/设置。测量页大数字显示电压电流功率电能,底部温湿度和峰谷值,电能行可点击在Wh/Ah之间切换。波形页是示波器风格,V/I/P多模式,1秒到10分钟六档时间窗,纵轴按1-2-5标准格值自动量程,刻度锚定整格值可直接心算读数。






(界面图来自项目自带的PC端LVGL模拟器,与实机渲染一致)

连上WiFi后,同一局域网的手机或电脑浏览器访问设备IP就能打开网页控制台,不用装App:实时数据、波形、设置、API、日志五个页签,WebSocket 15Hz推送,断线自动重连;波形页支持暂停、拖动回看、十字光标读数、CSV导出。设置页打开即从设备回读当前值,标定参数可直接读写;API页每张卡片带Test按钮,就地发真实请求看状态码和响应。








三、硬件设计

系统框架如下:



1. 电源与电池管理
三路供电:XT60被测回路、USB-C、单节锂电池。XT60输入经SY8511BADC降到3.3V(最大1A),USB/电池经TLV62084降到3.3V(最大2A),TPS2116在USB与电池之间做优先级切换(优先USB);TP4057负责400mA充电,电池电压经1:1分压进ESP32的ADC做电量显示。
USB与电池的优先级切换除了TPS2116方案(V2板),还做了一个分立MOS实现的版本(V1板),原理图都在仓库里。



2. 电压采样
100kΩ/1kΩ、±0.1%薄膜电阻做101:1精密分压,经零漂移运放LRA8551A缓冲后进ADS131M02的CH1(PGA 1x)。分压链路理论满量程121V,但辅助电源最高输入100V,所以设计量程取0~90V,折算单LSB约14.5µV。



3. 电流采样
1mΩ/5W四端开尔文分流器,采样点独立于大电流走线,避免把铜箔电阻测进去;信号经RC滤波后直接进ADS131M02 CH0(PGA 16x),满量程对应±75A峰值(1LSB≈8.94µA)。
受5W分流器功率限制,额定最大70A(70A时压降70mV、功耗4.9W);XT60接口额定30A(30A时压降30mV、功耗0.9W)。需要长期更大电流的,可以自己重画底板换XT90。




为什么用1mΩ:要覆盖±75A峰值、额定30A,又要把分流器发热控制在5W以内。代价是小信号噪声大(单帧σ≈2mA),固件用200ms块均值+2mA死区解决空载跳动。

4. PCB设计要点
  • 上下板叠层,排针排母连接,屏幕和芯片走上板,大电流路径全部丢下板
  • ISENSE是差分小信号,走线尽量短,远离DC-DC电感和开关节点
  • ADC的SPI和DRDY走线缩短,别跟时钟线、开关噪声长距离并行
  • 大电流路径铜箔加粗配合铜排,压低30A额定、75A峰值下的压降和温升








四、软件设计

固件基于ESP-IDF v6.1 + LVGL 9.6,按驱动/中间件/服务/应用分层,业务代码不直接调裸外设API。

测量链路:
  • ADS131M02每250µs拉一次DRDY,SPI3+GDMA读完整4字帧(STATUS/CH0/CH1/CRC)
  • CRC-16/CCITT校验通过后,按标定参数换算电压、电流、瞬时功率
  • 原始样本写进PSRAM三级环形缓冲,供波形页回看和降采样
  • 每200ms结算块均值、平均功率、峰谷值与告警,同时积分电能和容量
  • 每25ms产出一帧40Hz快照,UI和网页只读快照,不直接碰测量数据


双核分工:Core 1跑采样和测量,Core 0跑LVGL渲染、按键和WiFi/HTTP服务。WiFi协议栈会周期性吃掉不少CPU,和4kHz采样抢核会造成采样抖动,直接反映到读数上,所以测量单独占一个核。

工程化方面也做了一些:
  • 双OTA分区+启动回滚:拉取式升级写备用分区,启动失败自动退回旧版本(网页控制台目前还没做上传入口,救砖以USB/串口烧录为准)
  • coredump:崩溃现场写独立分区,重启后可导出分析
  • PC端UI模拟器:同一份界面源码在Windows上渲染并批量截图,烧录前做布局回归
  • 主机端单元测试:补码扩展、标定换算、电能积分、按键状态机等纯逻辑不依赖硬件就能测
  • 字库子集化:启动页文案用编进固件的极小子集,首帧即完整中文;主界面全量字库放独立storage分区后台加载





五、外壳与组装

外壳用SolidWorks设计,源文件和3MF打印文件都在仓库里。




组装顺序:
  • 中框上的8个螺丝孔压入热熔螺母(电烙铁加热压入)
  • 下板装进底盖,放上中框(注意方向),拧上底盖四颗螺丝
  • 电池包青稞纸后接到上板电池座,用双面胶粘在上板底面(ESP32模组那一面)
  • 对准排针,把上板连同电池扣到中框上
  • 盖上上盖
  • 最后接屏幕,屏幕背面贴双面胶固定







六、复刻与成本

主要物料参考价(价格随市场波动,仅供参考):
  • ESP32-S3-WROOM-1-N16R8 ×1:约31.6元
  • ADS131M02 ×1:约16.8元
  • 1.83寸电容触摸屏(NV3030B,含排线)×1:约14.8元
  • 1mΩ/5W四端开尔文分流器 ×1:约3.7元
  • 500mAh锂电池 ×1:约8.2元
  • 外壳3D打印一套:约15元
  • PCB上板+下板:嘉立创免费打样

打板建议板厚1.2mm,阻抗/层压按默认工艺。焊接走钢网+加热台路线:刷锡膏、贴装、回流,再焊直插件。仓库里有交互式BOM,浏览器打开点位号会高亮,焊接时很方便。

烧录两种方式:
  • 装好ESP-IDF v6.1后,运行仓库里的 build_fw.bat 编译、flash_fw.bat COMx 烧录
  • 不装ESP-IDF也可以用浏览器ESPConnect(Chrome/Edge + Web Serial)直接烧

注意:不要只烧app!完整固件有5个镜像,中文字库在独立的storage分区,只走OTA升级会出现"升级成功但中文还是方框"。镜像偏移表和排错见仓库的构建烧录文档。

校准步骤:
  • 空载进设置→测量设置→电流零点校准,采样3秒自动归零
  • 输入已知标准电压(如12.000V),按实测值修正电压增益/零偏
  • 串联标准表或电子负载,修正电流参数
  • 校准参数写入NVS,掉电和固件升级后保留


整机自身功耗约0.7W:





七、目前存在的问题

① USB/电池供电时的电压倒灌
电池/USB供电时,3.3V会经过XT60取电Buck内部MOS的体二极管,再经过供电控制MOS(Q4)的体二极管倒灌到XT60接口,所以没有输入的情况下测量界面也可能显示约2.45V(3.3V经MOS体二极管压降)。



解决办法:
  • 电路上彻底解决:Q4后面再加一个MOS背对背
  • 不想改电路、也用不到XT60取电的,可以不焊那路Buck,只用电池供电
  • 不需要电池/USB供电的,开关直接拨到XT60供电档就没有这条倒灌路径


② 待实现功能
  • OTA网页升级入口(双分区和拉取式升级基础已有)
  • USB串口上位机功能及配套软件

这些我有空会做,也欢迎自己做了提PR。




八、资料下载

Gitee仓库:https://gitee.com/zeruns/xt60-power-meter
GitHub仓库:https://github.com/zeruns/xt60-power-meter
立创开源平台工程:https://oshwhub.com/zeruns/xt60-power-meter-esp32
详细图文博文:https://blog.zeruns.com/archives/967.html

仓库目录:
  • 01-Hardware:立创EDA工程,上板与下板原理图PDF
  • 02-Software:ESP-IDF固件、架构文档、烧录指南、UI模拟器
  • 03-Datasheet:器件数据手册与屏幕资料
  • 04-外壳设计:上盖/中框/底盖、SolidWorks装配体与PCB模型
  • 05-生产文件:Gerber、钢网、BOM、位号图、交互式焊接辅助、3MF


许可证:硬件采用CERN OHL-S v2(衍生硬件须同许可证开源),固件采用MIT。




九、我的其他开源项目



免责声明:本设备测量结果不作为计量认证依据;90V/±75A峰值属于危险电压电流,接线、焊接、测试请防短路、防触电、防反接,大电流测试用合适线径和接头;使用本项目硬件或固件造成的任何直接或间接损失,作者不承担责任。

欢迎复刻,有问题和改进建议可以回帖交流,也可以到Gitee提Issue。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 昨天 23:46 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|数码之家-技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2026-11-13 03:27 , Processed in 0.109200 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz!

© MyDigit.Net Since 2006

快速回复 返回顶部 返回列表