【CHIP】LTC2991 读取温度电压电流 调试实例

0. ENV

软件系统:略
LTC2991:VCC3.3

  1. 温度:温控接v1-v2 / v2-v3 / … (双端采样)
  2. 电压:电压接v1 / v2 / … (单端采样)
  3. 电流:采样电阻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%)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过得精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值