ADC通道P02和P01总是使用外部除法器读取0

了解更多常见问题教程

6个职位/0个新职位
最后一篇文章
尤塔卢克
离线
最后一次见到:8个月2周前
已加入:2016-05-03 07:39
ADC通道P02和P01总是使用外部除法器读取0

亲爱的对话支持:,

到目前为止,我们正在努力让P02/P01上的ADC使用外部分频器工作-尝试了da14585基本套件和我们自己的板,相同的行为。

当我们使用外部分压器时,当引脚上的电压为1.050v时,我们总是得到0的电池读数-使用2M/1M欧姆分压器连接到P02或P01。
切换到内部ADC通道VBAT3V读数100%。在P02上施加1.050v电压并启用内部GP\ ADC\ ATTN3X的情况下,始终获取0x2F左右的原始ADC(8位)。

并在user\u periph\u setup.h中配置了以下内容:

#定义ADC\端口GPIO\端口\U 0
#定义ADC\ U引脚GPIO\ U引脚2

保留GPIO(ADCX、ADC\端口、ADC\引脚、PID\ ADC);

在GPIO\ U预留功能中,以及

GPIO\ U配置引脚(ADC\ U端口、ADC\ U引脚、输入、PID\ U ADC、false);

在set\ pad\功能中。

这是修改后的adc\u get\u vbat\u示例。

uint32 adc get vbat样本(布尔样本)
{
#定义测试电池1
uint32\u t adc\u样本,adc\u样本2;

#如果测试电池
adc\u init(GP\u adc\u SE,GP\u adc\u SIGN,0);
#其他
adc\ U init(GP\ U adc\ U SE、GP\ U adc\ U SIGN、GP\ U adc\ U ATTN3X);
#结束
adc\ U美元(20);

if(样品电压)
adc\启用\通道(adc\通道\ VBAT1V);
其他的
#如果测试电池

#警告“已使用p02”
adc\启用\通道(adc\通道\ P02);
#其他
adc\启用\通道(adc\通道\ VBAT3V);
#结束

adc_sample=adc_get_sample();

adc\ U美元(7);

#如果测试电池
adc\u init(GP\u adc\u SE,0,0);
#其他
adc\u init(GP\u adc\u SE,0,GP\u adc\u ATTN3X);
#结束

if(样品电压)
adc\启用\通道(adc\通道\ VBAT1V);
其他的
#如果测试电池
adc\启用\通道(adc\通道\ P02);
#其他
adc\启用\通道(adc\通道\ VBAT3V);
#结束
adc_sample2=adc_get_sample();

//我们必须把下面的结果除以2如果
//10位精度就足够了
adc\u sample=(adc\u sample2+adc\u sample);
adc_disable();

返回adc/U样本;
}

请注意,上面有“#define TEST#BATT 1”。

我们还缺什么吗?

谢谢你的关注,
尤塔卢克

设备:
PM\U对话框
离线
最后一次见到:4天3小时前
工作人员
已加入:2018-02-08 11:03
嗨,尤塔卢lc,

嗨,尤塔卢lc,

我正在处理你的问题,我做了一些测量,所以我会尽快告诉你。

谢谢,下午好

尤塔卢克
离线
最后一次见到:8个月2周前
已加入:2016-05-03 07:39
谢谢,已经拿到了

谢谢,已经开始工作了。

PM\U对话框
离线
最后一次见到:4天3小时前
工作人员
已加入:2018-02-08 11:03
嗨,尤塔卢lc,

嗨,尤塔卢lc,

很高兴它能工作。你能告诉我们你是怎么解决这个问题的吗?

谢谢,下午好

尤塔卢克
离线
最后一次见到:8个月2周前
已加入:2016-05-03 07:39
下午好,

下午好,

h/w和s/w都正常-SDK行为从5.0.4更改为6.0.6:

在sdk5.0.4中,我们可以返回任何电池百分比值—我们尝试返回原始ADC(8位)以自定义电池百分比。

但是,在sdk6.0.6中,它被更改为任何大于100的值都返回为0。我们认为原始adc值为0,但经过一些调试后,我们发现原始adc的读取是正确的,只是数据库不允许值>100以电池级UUID返回。

干杯,
尤塔卢克

PM\U对话框
离线
最后一次见到:4天3小时前
工作人员
已加入:2018-02-08 11:03
嗨,尤塔卢lc,

嗨,尤塔卢lc,

谢谢你的指示。

顺致敬意,

PM\U对话框