嗨对话框,
我使用SDK:3.0.6
提升文件xx.jpg是我的原理图和电池(表单0.9V - 1.45V)信息,
我想使用电池服务:
我有疑问了解ADC样本。我添加了这样的代码:
adc_init(gp_adc_se,gp_adc_sign);
ADC_ENABLE_CHANNEL(ADC_CHANNEL_VBAT1V);
adc_sample = adc_get_sample();
我得到一些价值:
电压值
1.283V ADC_Sample = 355
1.319V ADC_SAMPLE = 363
1.552V ADC_Sample = 431
1.272V ADC_Sample = 350
Q1:
10bit ADC,(1.283 / 355)* 1024 =参考电压= 3.6921 V?
Q2:
我看到了电池文件,为什么右转4,然后左转4?
ADC_SAMPLE >> = 4;
adc_sample << = 4;
设备:
嗨石头,
1)ADC具有1.2V的参考电压,如果启用了3x衰减器,则可以测量高达3.6V。请查看数据表了解更多信息。
2)您所指的代码是消除水入数据的毛刺。纯滤波器只是为了保持数据稳定。
谢谢mt_dialog.
嗨mt_dialog,
在上面的评论中,你的意思是“消除收购数据的毛刺”?这是否意味着ADC的有效位仅为10中的6个?
谢谢
Bharath.
嗨bharath,
在以前的电池驱动程序中,我们使用这一点,以便通过丢弃最后4位不上下跳跃的水入测量,这在最近的电池驱动器中不再使用,使用不同的过滤器来加入电池测量。从测量值中删除最后4位的事实并不意味着ADC的有效数量作为模块仅为6位,我们只是想指示电池电量而不是确切值所以我们应用了上述方法。
谢谢mt_dialog.
您可以在上述评论中解释更多有关“不同过滤器”的信息。
在我们的应用中,我们正在读取电池的电压和10k分压器,我们观察ADC读取值的变化为12。
对于250SPS采样,2V,我们正在读取min = 564至max = 576。
如果我们在1KSPS上进行样品,我们读最小= 564到最大= 567。
如果我们想使用BLE,250sps是我们可以使用的最大抽样,以便不会有任何损失。
现在,为什么在250sps时抽样3到4位错误?如何解决此错误或如何减少此错误?
嗨bharath,
纠正ADC的错误并获得更准确的值的方法有相当多的方法,这是一个超出论坛的范围,您可以看一下新电池示例中使用的过滤器或检查如何提高测量值通过在线检查不同类型的方法。
谢谢mt_dialog.
过滤器功能正在改变模拟信号的形状。当信号发生变化时,也需要一些时间来解决。