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
这个提交包含在:
+12
-2
@@ -8,6 +8,8 @@
|
||||
# HAL 里新增一路实现则要同时加进:
|
||||
# ../components/phonerail_hal/CMakeLists.txt 的 SRCS(esp 那份)
|
||||
# 和下面的 PHONERAIL_HAL_SIM_SRCS(sim 那份)
|
||||
# 新增一个器件驱动则是:
|
||||
# ../components/drv/CMakeLists.txt 的 SRCS 和 下面的 PHONERAIL_DRV_SRCS
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(phonerail_host C)
|
||||
|
||||
@@ -33,11 +35,19 @@ set(PHONERAIL_HAL_SIM_SRCS
|
||||
${PHONERAIL_HAL_DIR}/sim/hal_time_sim.c
|
||||
)
|
||||
|
||||
add_library(phonerail_core STATIC ${PHONERAIL_CORE_SRCS} ${PHONERAIL_HAL_SIM_SRCS})
|
||||
# 器件驱动:与平台无关(只经 hal_i2c_*),两个目标编的是同一份源码。
|
||||
set(PHONERAIL_DRV_DIR ${FW_ROOT}/components/drv)
|
||||
set(PHONERAIL_DRV_SRCS
|
||||
${PHONERAIL_DRV_DIR}/ina226.c
|
||||
)
|
||||
|
||||
add_library(phonerail_core STATIC
|
||||
${PHONERAIL_CORE_SRCS} ${PHONERAIL_HAL_SIM_SRCS} ${PHONERAIL_DRV_SRCS})
|
||||
target_include_directories(phonerail_core PUBLIC
|
||||
${FW_ROOT}/main
|
||||
${PHONERAIL_HAL_DIR}/include
|
||||
${PHONERAIL_HAL_DIR}/sim)
|
||||
${PHONERAIL_HAL_DIR}/sim
|
||||
${PHONERAIL_DRV_DIR}/include)
|
||||
|
||||
# ---- 测试框架 Unity(从 ESP-IDF v5.4 原样复制到 third_party/,与上板测试同一套)
|
||||
add_library(unity STATIC ${FW_ROOT}/third_party/unity/unity.c)
|
||||
|
||||
在新工单中引用
屏蔽一个用户