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

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
uta_lc
离线
最后看到:1年1个月前
加入:2016-05-03 07:39
ADC通道P02和P01总是使用外部分频器读取0

亲爱的对话的支持,

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

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

并在user_外围_setup.h中配置了以下内容:

#定义ADC_PORT GPIO_PORT_0
#定义ADC_PIN GPIO_PIN_2

adcx, adc_port, adc_pin, pid_adc;

在GPIO_reservation函数

GPIO_ConfigurePin(ADC_PORT, ADC_PIN, INPUT, PID_ADC, false);

在set_pad_function。

下面是修改后的adc_get_vbat_sample。

uint32_t adc_get_vbat_sample (bool sample_vbat1v)

#定义TEST_BATT 1
uint32_t adc_sample adc_sample2;

#如果TEST_BATT
adc_init (GP_ADC_SE GP_ADC_SIGN 0);
其他#
adc_init (GP_ADC_SE GP_ADC_SIGN GP_ADC_ATTN3X);
# endif
adc_usDelay (20);

如果(sample_vbat1v)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
#如果TEST_BATT

#警告”p02”
adc_enable_channel (ADC_CHANNEL_P02);
其他#
adc_enable_channel (ADC_CHANNEL_VBAT3V);
# endif

adc_sample = adc_get_sample ();

adc_usDelay (7);

#如果TEST_BATT
adc_init (GP_ADC_SE, 0, 0);
其他#
adc_init(GP_ADC_SE, 0, GP_ADC_ATTN3X);
# endif

如果(sample_vbat1v)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
#如果TEST_BATT
adc_enable_channel (ADC_CHANNEL_P02);
其他#
adc_enable_channel (ADC_CHANNEL_VBAT3V);
# endif
adc_sample2 = adc_get_sample ();

//我们要把下面的结果除以2如果
// 10位精度足够
Adc_sample = (adc_sample2 + Adc_sample);
adc_disable ();

返回adc_sample;

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

我们还漏掉了什么吗?

谢谢大家,
uta_lc

设备:
PM_Dialog
离线
最后看到:8小时28秒前
工作人员
加入:2018-02-08 11:03
嗨uta_lc,

嗨uta_lc,

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

谢谢,PM_Dialog

uta_lc
离线
最后看到:1年1个月前
加入:2016-05-03 07:39
谢谢,我已经拿到了

谢谢,已经修好了。

PM_Dialog
离线
最后看到:8小时28秒前
工作人员
加入:2018-02-08 11:03
嗨uta_lc,

嗨uta_lc,

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

谢谢,PM_Dialog

uta_lc
离线
最后看到:1年1个月前
加入:2016-05-03 07:39
嗨点,

嗨点,

h/w和s/w都是OK的-这是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
离线
最后看到:8小时28秒前
工作人员
加入:2018-02-08 11:03
嗨uta_lc,

嗨uta_lc,

谢谢你的暗示。

最好的问候,

PM_Dialog