你好,我有一些关于电池驱动/ ADC的问题
首先我想问你能否解释一下你是如何想出测量电池电量的方法的,特别是这条线:bat_lvl = (adc_sample - 1137)*100/568;
我们不打算使用CR2032电池,所以对于不同尺寸的硬币电池,你有什么建议吗?
最后,你有什么建议当取adc样本进行电池测量?我的意思是你会得到非常不同的结果取决于你什么时候取样本。例如,与从长睡眠中醒来后直接取样相比,在LED打开时取样得到的样本要低得多。那么,获得最真实的电池电量的首选方法是什么呢?
谢谢
一个小澄清:
我知道1705-1137=568,所以前面提到的代码只是计算1137和1705之间的百分比(线性)。但我的问题更多的是关于这些值是如何首先计算出来的。以及为什么样本被屏蔽使用:
adc_sample > > = 4;
adc_sample < < = 4;
你好Joacimwe,
我目前正在为你检查这个:等待设计团队的反馈,关于这些值是如何从一开始计算的。道歉延迟,
BR JE_Dialog
有什么消息吗?我真正想知道的是,下面的代码是否有任何逻辑,或者是否这是一个反复试验的问题:
/ / 1705 = 3.0 v, 1137 v = 2
如果(adc_sample > = 1137)
bat_lvl = (adc_sample - 1137)*100/568;
其他的
batt_lvl = 0;
你好,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
谢谢!
亲爱的先生们,
我现在使用的是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 ();
你好yterasaki,
获得两个采样值的目的与ADC校准有关。实际上,我们应该计算负校准和正校准设置,并配置它们校准HW寄存器。
对于每一个校准设置,我们得到一个样本,然后这两个样本的平均值是最准确的。我希望这能回答你的问题
最好的问候,
Yama_Dialog