ADC通道P02和P01始终使用外部分频器读取0

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
Uta_lc.
离线
最后一次露面:1年前1年前
加入:2016-05-03 07:39
ADC通道P02和P01始终使用外部分频器读取0

亲爱的对话支持,

到目前为止,我们正在努力在使用外部分配器的P02 / P01上获取ADC - 尝试了DA14585基本套件和我们自己的电路板,相同的行为。

当我们使用到外部分频器时,我们总是获得电池读取0,而引脚上的电压为1.050V - 使用2M / 1M OHM分压器,用于连接P02或P01。
切换到内部ADC_CHANNEL_VBAT3V读取100%。使用1.050V应用于P02并使用内部GP_ADC_ATTN3X启用,始终获得0x2F的原始ADC(8位)。

并在user_periph_setup.h中配置了以下内容:

#define adc_port gpio_port_0.
#define adc_pin gpio_pin_2.

保留_GPIO(ADCX,ADC_PORT,ADC_PIN,PID_ADC);

在gpio_reservation函数中,和

gpio_configurepin(adc_port,adc_pin,输入,pid_adc,false);

在set_pad_function中。

这是修改后的adc_get_vbat_sample。

UINT32_T ADC_GET_VBAT_SAMPLE(BOOL SAMPLEM_VBAT1V)
{
#define test_batt 1
UINT32_T ADC_SAMPLE,ADC_SAMPLE2;

#if test_batt.
adc_init(gp_adc_se,gp_adc_sign,0);
#别的
adc_init(gp_adc_se,gp_adc_sign,gp_adc_attn3x);
#万一
ADC_USDELAY(20);

if(sample_vbat1v)
ADC_ENABLE_CHANNEL(ADC_CHANNEL_VBAT1V);
别的
#if test_batt.

#warning“使用p02”
adc_enable_channel(adc_channel_p02);
#别的
ADC_ENABLE_CHANNEL(ADC_CHANNEL_VBAT3V);
#万一

adc_sample = adc_get_sample();

ADC_USDELAY(7);

#if test_batt.
adc_init(gp_adc_se,0,0);
#别的
adc_init(gp_adc_se,0,gp_adc_attn3x);
#万一

if(sample_vbat1v)
ADC_ENABLE_CHANNEL(ADC_CHANNEL_VBAT1V);
别的
#if test_batt.
adc_enable_channel(adc_channel_p02);
#别的
ADC_ENABLE_CHANNEL(ADC_CHANNEL_VBAT3V);
#万一
adc_sample2 = adc_get_sample();

//我们必须将以下结果除以2如果
// 10位精度足够
ADC_SAMPLE =(ADC_SAMPLE2 + ADC_SAMPLE);
adc_disable();

返回ADC_SAMPLE;
}

请注意,我们上面有“#define test_batt 1”。

还有什么我们缺少的吗?

感谢您的关注,
Uta_lc.

设备:
PM_DIALOG.
离线
最后一次露面:1天8小时前
职员
加入:2018-02-08 11:03
嗨Uta_lc,

嗨Uta_lc,

我正在研究你的问题,我做了一些测量,所以我会尽快通知你。

谢谢,PM_DIALOG.

Uta_lc.
离线
最后一次露面:1年前1年前
加入:2016-05-03 07:39
谢谢,已经得到了它

谢谢,已经搞定了它。

PM_DIALOG.
离线
最后一次露面:1天8小时前
职员
加入:2018-02-08 11:03
嗨Uta_lc,

嗨Uta_lc,

很高兴得到它的工作。你能告诉我们你如何解决这个问题吗?

谢谢,PM_DIALOG.

Uta_lc.
离线
最后一次露面:1年前1年前
加入:2016-05-03 07:39
嗨PM,

嗨PM,

H / W和S / W都可以 - 这是SDK行为从5.0.4到6.0.6的变化:

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

但是,在SDK 6.0.6中,它已以这样的方式更改,即任何值> 100返回为0.我们认为原始ADC值为0但是在一些调试后,我们发现原始ADC被正确阅读,它只是数据库不允许值> 100在电池电平UUID中返回。

干杯,
Uta_lc.

PM_DIALOG.
离线
最后一次露面:1天8小时前
职员
加入:2018-02-08 11:03
嗨Uta_lc,

嗨Uta_lc,

谢谢你的迹象。

此致,

PM_DIALOG.