亲爱的对话支持:,
到目前为止,我们正在努力让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”。
我们还缺什么吗?
谢谢你的关注,
尤塔卢克
嗨,尤塔卢lc,
我正在处理你的问题,我做了一些测量,所以我会尽快告诉你。
谢谢,下午好
谢谢,已经开始工作了。
嗨,尤塔卢lc,
很高兴它能工作。你能告诉我们你是怎么解决这个问题的吗?
谢谢,下午好
下午好,
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返回。
干杯,
尤塔卢克
嗨,尤塔卢lc,
谢谢你的指示。
顺致敬意,
PM\U对话框