电池测量问题

8个帖子/ 0个新
最后发表
Joacimwe
离线
最后看到:1年3个月前
大师
加入:2014-01-14 06:45
电池测量问题

你好,我有一些关于电池驱动/ ADC的问题

首先我想问你能否解释一下你是如何想出测量电池电量的方法的,特别是这条线:
bat_lvl = (adc_sample - 1137)*100/568;

我们不打算使用CR2032电池,所以对于不同尺寸的硬币电池,你有什么建议吗?

最后,你有什么建议取adc样本进行电池测量?我的意思是你会得到非常不同的结果取决于你什么时候取样本。例如,与从长睡眠中醒来后直接取样相比,在LED打开时取样得到的样本要低得多。那么,获得最真实的电池电量的首选方法是什么呢?

谢谢

Joacimwe
离线
最后看到:1年3个月前
大师
加入:2014-01-14 06:45
一个小澄清:

一个小澄清:

我知道1705-1137=568,所以前面提到的代码只是计算1137和1705之间的百分比(线性)。但我的问题更多的是关于这些值是如何首先计算出来的。以及为什么样本被屏蔽使用:
adc_sample > > = 4;
adc_sample < < = 4;

JE_Dialog
离线
最后看到:5小时39分钟前
工作人员
加入:2013-12-05 14:02
你好Joacimwe,

你好Joacimwe,

我目前正在为你检查这个:等待设计团队的反馈,关于这些值是如何从一开始计算的。道歉延迟,

BR JE_Dialog

Joacimwe
离线
最后看到:1年3个月前
大师
加入:2014-01-14 06:45
有什么消息吗?我所有的

有什么消息吗?我真正想知道的是,下面的代码是否有任何逻辑,或者是否这是一个反复试验的问题:

/ / 1705 = 3.0 v, 1137 v = 2
如果(adc_sample > = 1137)
bat_lvl = (adc_sample - 1137)*100/568;
其他的
batt_lvl = 0;

JE_Dialog
离线
最后看到:5小时39分钟前
工作人员
加入:2013-12-05 14:02
你好,Joacimwe,是的,我只是

你好,Joacimwe,是的,我昨天刚刚收到数字背后的魔力(假期意味着异常的延迟)。

以下是最初的计算方法:

batt_cal_cr2032()函数将ADC模块测量的值转换为CR2032电池剩余寿命的粗略估计。在函数的参数中,通过两个ADC样本(一个差分模式和一个单端模式)的和。该方法以及最大/最小限度(1705=3.0V, 1137=2V)

其余数字(1584和1360)分别为2.8 V和2.4 V ADC样本之和的值,根据CR2032的放电模型计算估计剩余电池寿命。

BR JE_Dialog

Joacimwe
离线
最后看到:1年3个月前
大师
加入:2014-01-14 06:45
谢谢!

谢谢!

yterasaki
离线
最后看到:4年5个月前
加入:2015-05-08 09:28
亲爱的先生们,

亲爱的先生们,

我现在使用的是D14580评估板,关于这个邮件链,我想知道“sum up two times ADC output”是什么意思。
我认为这个注释来自以下代码。你能告诉我用不同的adc_init(…)添加两个ADC输出的目的吗?

adc_init (GP_ADC_SE GP_ADC_SIGN);
if (batt_type == batt_aaa_single_碱性)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
adc_enable_channel (ADC_CHANNEL_VBAT3V);
adc_sample = adc_get_sample ();

adc_init (GP_ADC_SE 0);
if (batt_type == batt_aaa_single_碱性)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
adc_enable_channel (ADC_CHANNEL_VBAT3V);
adc_sample + = adc_get_sample ();

Yama_Dialog
离线
最后看到:4年9个月前
工作人员
加入:2014-10-27 08:47
你好yterasaki,

你好yterasaki,

获得两个采样值的目的与ADC校准有关。实际上,我们应该计算负校准和正校准设置,并配置它们校准HW寄存器。
对于每一个校准设置,我们得到一个样本,然后这两个样本的平均值是最准确的。我希望这能回答你的问题

最好的问候,

Yama_Dialog