电压、电流、功率与能量监控

电压、电流、功率与能量监控

1. 代表驱动

  • INA209/INA2xx/INA238/INA3221;
  • LTC2945/LTC2990/LTC4151;
  • ADM1177;
  • ADC128D818、ADS7828、MCP3021;
  • PMBus power monitors。

2. Shunt monitor

1
2
3
4
bus voltage = measured supply voltage
shunt voltage = differential voltage across resistor
current = shunt_voltage / shunt_resistance
power = bus_voltage * current

有些芯片硬件计算 current/power,驱动仍需配置 calibration register。

3. INA2xx

典型流程:

1
2
3
4
5
6
7
8
9
10
11
probe
-> select chip config
-> obtain shunt-resistor property/platform data
-> regmap init
-> program config/calibration
-> register hwmon

read
-> regmap read bus/shunt/current/power
-> sign extend
-> scale to mV/mA/uW

shunt 电阻常用 micro-ohm 表示。写错 10 倍会令电流和功率错 10 倍。

4. 多通道

INA3221 等可监控多 rail。channel label 应描述:

  • VDD_CPU;
  • VDD_GPU;
  • VDD_NPU;
  • VIN;
  • 其它板级 rail。

label 来自 DTS/firmware 或 driver固定表,用户程序应按 label 匹配。

5. ADC voltage

纯 ADC 通常只知道引脚电压。分压电阻和 rail 语义可能在:

  • driver platform data;
  • Device Tree;
  • userspace sensors config。

若通过 IIO,iio_hwmon 把处理后的 channel 暴露为 inN_input

6. Power average/cap

支持的芯片可提供:

  • instant input;
  • average;
  • averaging interval;
  • highest/lowest;
  • cap 和 cap alarm。

并非所有名为 power monitor 的设备都能直接硬件限制功率。

7. Energy

energyN_input 是累计值,可能:

  • 寄存器 wrap;
  • 上电清零;
  • 读取清零;
  • 由软件积分;
  • 睡眠期间停止。

长期统计程序必须处理 wrap/reset。

8. 告警

阈值包括 min/max/lcrit/crit。状态寄存器可能 write-one-to-clear 或 read-to-clear,driver不能因一次 sysfs读取意外丢失关键事件;需遵循芯片语义。

9. 精度

误差来源:

  • shunt tolerance/temperature coefficient;
  • ADC gain/offset;
  • PCB Kelvin routing;
  • conversion/averaging;
  • integer rounding;
  • rail ripple;
  • calibration。

HWMON 输出整数不意味着精度达到最后一位。

10. RK3588

源码树中 INA 等驱动可用,但 RK3588 公共 DTS 搜索未显示统一的板载 INA 节点。具体 EVB/产品应以原理图和板级 DTS 为准,不能把 regulator 电压或 PMIC setpoint 当作实际测量值。

文章互动

阅读 --

留言

0 条留言

正在加载留言…