内容提要
开源XT60直插式直流功率计采用ESP32-S3主控与ADS131M02双通道24位同步采样,配1mΩ开尔文分流器和101:1分压,测量范围0~90V、额定±30A(峰值±75A)。1.83寸触控屏运行LVGL 9并提供波形页;WiFi网页控制台支持查看数据、修改设置和导出CSV。硬件、固件与外壳全部开源,固件由AI辅助开发。已知USB或电池供电时3.3V会倒灌至XT60口,产品定位为调试工具而非计量仪器。
延伸解读
量程数字要分开看:额定与峰值不是一回事
文章反复强调±75A只是ADC满量程,整机额定受XT60接口限制只有±30A;90V也不是分压链路极限,而是被辅助电源100V输入上限卡住。复刻或选型时若按峰值规划长期负载,分流器和接口都会超出设计余量。想跑更大电流需自行改底板换XT90,这属于硬件改动而非软件设置。
小电流读数与波形页的取舍
1mΩ分流器在mA级小信号上噪声偏大,单帧标准差约2mA,固件用200ms块均值和2mA死区让空载读数稳定归零,因此电流小于2mA显示0是设计行为。但波形页使用原始样本,mA级变化仍可观察。测待机功耗这类微小电流时,应结合波形页判断,而不是只看主界面数字。
倒灌问题决定供电方式的选择
USB或电池供电时,3.3V会经两级体二极管倒灌到XT60端子,导致未接输入也显示约2.45V。作者给出三种应对:不焊XT60取电Buck只用电池、在Q4后串背对背MOS、或干脆切到XT60供电档。复刻者需在装配前决定方案,否则空载电压读数会失真,影响对被测回路的判断。
定位是调试工具,校准与精度有边界
目前校准只做空载电流归零和用标准表修正增益零偏,没有多点标定和长期漂移测试,作者明确不把它当计量仪器。另外测量结果是直流口径块均值而非真有效值,测交流或纹波需另做。整机自身功耗约0.7W会叠加在被测回路上,测低功耗设备时要留意这个本底。
Q&A
这个XT60功率计的测量范围和精度怎么样?
设计测量电压0~90V,电流额定±30A(XT60接口限制),峰值±75A(ADC满量程)。电压分辨率约14.5µV/LSB,电流分辨率约8.94µA/LSB。但这不是计量器具,校准只做了空载电流归零和用标准表修正增益/零偏,没有多点标定和长期漂移测试,定位是调试工具。
为什么电流小于2mA时显示为0?
这是固件的设计行为,不是故障。1mΩ分流器的小信号噪声较大(单帧σ≈2mA),固件用200ms块均值加2mA死区来压住空载跳动,所以小于2mA的电流会显示0。但波形页用的是原始样本,mA级变化仍然可以看到。
USB或电池供电时,XT60接口没接输入为什么也会显示2.45V左右?
这是已知的倒灌问题:3.3V经XT60取电那路Buck芯片内部MOS的体二极管,再经供电控制MOS(Q4)的体二极管,倒灌到XT60端子,所以即使没接输入也会显示约2.45V(3.3V减去两级体二极管压降)。解法有三种:不焊XT60取电Buck只用电池;在Q4后串背对背MOS断开体二极管通路(下一版计划);或开关切到XT60供电档。
怎么用网页控制台查看数据和导出CSV?
设备连上WiFi后,同一局域网的手机或电脑访问设备IP即可打开网页控制台。网页有实时数据、波形图、设置、API、日志五个页签,波形页支持CSV导出。WebSocket以15Hz推送快照,断线会自动退化为轮询并每5s重连。网页直接编进固件,不依赖外部CDN,断网也能打开。
复刻时烧录固件要注意什么?
固件是5个镜像,别只烧app。用idf.py flash会按flash_args自动处理;手工烧录时注意storage.bin在0x830000,里面是全量中文字体。改字库必须全量烧录,只走OTA会出现“升级成功但中文变方框”。烧录方式有两种:装ESP-IDF v6.1用脚本build_fw.bat和flash_fw.bat,或直接用Chrome/Edge打开ESPConnect走Web Serial烧录。
这个功率计能测交流或纹波吗?
不能。测量结果是直流口径的块均值,不是真有效值(RMS)。要测交流或纹波需要另外设计。
设备的自身功耗是多少?测量低功耗设备时要注意什么?
整机自身功耗实测约0.7W。这是设备自己吃掉的功率,测量时会叠加在被测回路上,所以测低功耗待测设备时要留意这个本底功耗。
硬件和固件的开源许可证是什么?
硬件(原理图、PCB、外壳、生产文件)使用CERN OHL-S v2强互惠开源硬件许可,衍生硬件要用同样的许可证开源;固件使用MIT许可证。LVGL、esp_lvgl_port、Noto Sans SC等第三方组件各自保留原许可,明细在THIRD_PARTY.md。