4个职位/ 0个新职位
最后发表
Bharath
离线
最后看到:1年8个月前
加入:2016-04-14 07:03
错误的ADC值。

你好,
在我们的设计中,我们使用1M/1M的分压器来读取电池电压。
每次读取时,我们得到的电压是2.8V,而电池电压是4.17V。
我们使用下面的配置来读取ADC值。

adc_calibrate ();
adc_usDelay (20);

adc_init (GP_ADC_SE GP_ADC_SIGN GP_ADC_ATTN3X);
adc_usDelay (20);

adc_enable_channel (ADC_CHANNEL_P01);

adc_sample = adc_get_sample ();
adc_usDelay (1);

adc_init(GP_ADC_SE, 0, GP_ADC_ATTN3X);
adc_enable_channel (ADC_CHANNEL_P01);

adc_sample2 = adc_get_sample ();

Adc_sample = (adc_sample2 + Adc_sample)/2;
adc_disable ();

我们遗漏了什么吗?我们应该如何配置GPIO?

设备:
MT_dialog
离线
最后看到:6个月4天前
工作人员
加入:2015-06-08 34
嗨Bharath,

嗨Bharath,

必须在peripher_init()中使用PID_ADC功能配置引脚,检查这是否导致了您所遇到的问题。也通过设置衰减器的实际输入ADC是美联储通过内部分压器,会让你ADC输入阻抗远低于分压器与衰减器和无限(300 k),外部分工可以改变电压分压器。尽量不要使用衰减器(这会使ADC的输入阻抗无穷大),并尽量在外部电压分压器上使用更大的分割因子。

由于MT_dialog

Bharath
离线
最后看到:1年8个月前
加入:2016-04-14 07:03
嗨MT_dialog,

嗨MT_dialog,
谢谢你的建议。我们已经在peripher_init()中将引脚初始化为PID_ADC。
我们可以用什么值的电阻来忽略衰减器的影响?

谢谢你!
Bharath

MT_dialog
离线
最后看到:6个月4天前
工作人员
加入:2015-06-08 34
嗨Bharath,

嗨Bharath,

正如前面提到的,你可以试着删除内部衰减器(所以,你有无限的ADC阻抗,在adc_init()不使用GP_ADC_ATTN3X作为最后的参数设置为0),并将外部分配器,把电池的电压ADC的最大测量值。

由于MT_dialog