A3:INA226 驱动 + 六片地址表

地址表按设计文档 §8.2 钉死(0x40/41/44/45/42 + 输入侧 0x43),只走
ina226_rail_addr(),并有一条测试专门拦「ina_addr = 0x40 + ch」这一手
(CH3/CH4/CH5 三路全错,需求 §10.4)。

驱动只经 hal_i2c_*:认件(MFG/DIE ID)、写 Config 0x4327 + CAL 2048 并
回读校验、读 V/I/分流/功率。电流有符号,反灌为负(SW-8 判据)。
巡检走 read_vi(),每片两次事务,对应 §10.3 的 8% I²C 占用。

两条留给下次的坑:寄存器指针不依赖自增(sim 会自增、真件不会,靠自增
在宿主机上测不出来);CAL 丢了不报错只让 Current/Power 恒读 0,所以
有 ina226_check()。

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QYuExfgyYa6DzRRcUso8M8
这个提交包含在:
zhou yang
2026-09-06 18:43:34 +08:00
共同撰写人 Claude Opus 5
父节点 cac6ce47ce
当前提交 ceadf08345
共修改 8 个文件,包含 595 行新增和 38 行删除
+8
查看文件
@@ -0,0 +1,8 @@
# 板上器件驱动(ESP-IDF 侧)。宿主机侧由 host/CMakeLists.txt 的 PHONERAIL_DRV_SRCS 收,
# 新增一个驱动两边都要加 —— 漏一处 = 「宿主机绿了但上板编不过」,反之亦然。
#
# 驱动只准依赖 phonerail_hal,不准直接包含 IDF 的头。
idf_component_register(
SRCS "ina226.c"
INCLUDE_DIRS "include"
REQUIRES phonerail_hal)