你好,我有几个关于电池驱动/ ADC的问题
首先,我想问你能否解释一下你是如何想出测量电池电量的方法的,特别是这条线:Batt_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)
Batt_lvl = (adc_sample - 1137)*100/568;
其他的
batt_lvl = 0;
你好,Joacimwe,是的,我昨天刚刚收到了数字背后的魔力(假期季节意味着异常的延迟)。
以下是原始数据的计算方法:
函数的作用是:将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 (bat_type == bat_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 (bat_type == bat_aaa_single_碱基)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
adc_enable_channel (ADC_CHANNEL_VBAT3V);
adc_sample + = adc_get_sample ();
你好yterasaki,
得到两个采样值的目的与ADC校准有关。实际上,我们应该计算负和正校准设置,并将它们配置到校准硬件寄存器。
对于每一个校准设置,我们得到一个样本,然后这两个样本的平均值是最准确的。我希望这能回答你的问题
最好的问候,
Yama_Dialog