⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
2个帖子/ 0个新
最后发表
vrabo
离线
最后看到:三年前,三周前
加入:2016-11-04 19:19
ADC值

你好!

我使用adc_init(GP_ADC_SE, 0, 0);。我想知道ADC的值是多少。当我有1。2 v时,我读0x106。我知道1023 (0x03FF)是最大值。我做错什么了吗?

谢谢你!

(编辑)我使用的是274K和100k电阻的电压因数,这样当电池是4.5V时,P00的值将是1.2V。电流有影响吗?

设备:
STS_Dialog(未验证)
嗨Vrado,

嗨Vrado,

请查看UM-B-051(第70页)软件开发工具包部分的文档标签,以了解与ADC相关的值。在adc_init()函数中,第三个值(attn)是内部ADC衰减器。不使用衰减器的ADC可以测量0-1.2V范围内的电压。当衰减器使能时,ADC可以在1.2-3.6V范围内测量。在没有使用衰减器的情况下,ADC的内部阻抗被认为是无穷大的。这种情况下的泄漏量为~12nA。当衰减启用时,有两个电阻内部连接,一个200K和一个100K创建一个通向GND的总电阻300K的路径,您需要将其包括在电压分压器上的泄漏计算中。你的外部电压因数也会造成额外的电流泄漏。您需要将这一点考虑到设计的功耗预算中。将从ADC读取的值转换为实际毫伏,公式为:

如果ADC内部衰减器已启用:Value = (ADC_Reading * 3.6) / 1024

如果ADC内部衰减器被禁用:Value = (ADC_Reading * 1.2) / 1024

“值”用伏特表示。

由于您需要测量高达4.5V,这是超出ADC范围,您需要使用外部电压因数,正如您已经做的。除数使用带来的问题是额外的功耗和在电阻值非常高的情况下,ADC端口可能出现的噪声。较小的电阻有助于ADC有更好的信噪比,但更高的功耗。一个可能的解决方案是在GND和电阻之间使用FET,通过580的GPIO来控制其栅极。因此,当您需要测量电池电压时,您将通过FET启用除数,其余时间您可以禁用它以节省电力。

谢谢,

STS_Dialog。