文章目录
- 0. ENV
- 1. LTC2991 数据说明
- 1. 数据计算公式
- 2. 寄存器概述
- 1. 管脚使能寄存器
- 2. 芯片使能寄存器
- 2. 软件实现
- 1. 概述
- 2. 源码(部分)
- 3. 参考log
0. ENV
软件系统:略
LTC2991:VCC3.3
- 温度:温控接v1-v2 / v2-v3 / … (双端采样)
- 电压:电压接v1 / v2 / … (单端采样)
- 电流:采样电阻0.0005两端接v1-v2 / … (单端采样)
1. LTC2991 数据说明
1. 数据计算公式
单端采样:参考Vsingle_ended 计算方式
2. 寄存器概述
1. 管脚使能寄存器
使能v1~v7管脚,即控制REG0x6/0x07,默认即为单端采样。
V1, V2 and V3, V4 CONTROL (06h) Register (Default 00h)
V5, V6 and V7, V8 CONTROL (07h) Register (Default 00h)
2. 芯片使能寄存器
使能芯片,操作REG0x01,默认未非使能状态,需要配置
2. 软件实现
1. 概述
使能采样管脚,配置寄存器0x06,0x07的bit0,bit4为0,默认已经为0,可以不配置。
使能芯片,配置寄存器0x1 bit3:0 为0,默认不使能,需要手动配置。
采样,读取寄存器0xa~0x19的值,对应v1 ~ v7 这8个采样端
计算,通过单端采样计算公式,计算出实际电压值。
2. 源码(部分)
# 1. EN PIN
i2cRegWrite(0x06, 0x0);
i2cRegWrite(0x07, 0x0);# 2. EN CHIP
i2cRegWrite(0x01, 0xf0);
//i2cRegRead(0x01)# 3. SINGLE
// v1
lsb[0] = i2cRegRead(0xa);
msb[0] = i2cRegRead(0xb);
...
// v7
lsb[7] = i2cRegRead(0x18);
msb[7] = i2cRegRead(0x19);# 4. CAL
val[0] = (msb[0] & 0x3f << 8) | lsb[0];
...
val[7] = (msb[7] & 0x3f << 8) | lsb[7];# 5. CALC
// Volt , v1:+ v2:-
volt = (val[0] - val[1]) * 305.18 / 1000000; /* 305.18uv */
3. 参考log
温度:
CPU temp : 44.31
xxxx temp : 51.06
Board temp 1 : 43.19
Board temp 2 : 44.44
电压:
VDD_1.2v : 1.20
VCC_12 v : 11.92 // 这是分压后的数据计算得到的,实际分压后读数约为1.2v
VCC_1.2v : 1.20
VCC_1.5v : 1.49
VCC_0.8v : 0.79
VCC_2.5v : 2.51
VCC_3.3v : 3.30
VCC_1.0v : 1.00
电流:
DEBUG : VCC1.5+ VOLT : 1.495992
DEBUG : VCC1.5- VOLT : 1.493246
DEBUG : VCC3.3+ VOLT : 3.305405
DEBUG : VCC3.3- VOLT : 3.301132
DEBUG : VCC12 CUR : 0.674448 // R0.005
VCC1.5 CUR : 5.49 // R0.0003
VCC3.3 CUR : 8.55 // R0.0003
VCC12 CUR : 3.75 (-3.3% ~ +3.3%)