⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
11个帖子/ 0新
最后一篇
戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
通道P03 adc测量错误

你好,支持,

我的adc通道P03有问题。
adc通道P00, P01, P02的测量工作良好,但与通道P03我总是得到一个错误的值。
我使用的电路板是DA14580的DK-Basic-套件。

这是我的代码:
// ADC配置
#定义GPIO_ADC1_PORT GPIO_PORT_0
#define gpio_adc1_pin gpio_pin_1.
#define gpio_adc0_port gpio_port_0.
#define gpio_adc0_pin gpio_pin_0.
#定义GPIO_ADC2_PORT GPIO_PORT_0
#定义GPIO_ADC2_PIN GPIO_PIN_2
#define gpio_adc3_port gpio_port_0.
#定义GPIO_ADC3_PIN GPIO_PIN_3

保留_GPIO(ADC_PIN1,GPIO_ADC1_PORT,GPIO_ADC1_PIN,PID_ADC);
/ /输入pid_adc0_port, pid_adc0_pin, pid_adc
/ /输入adc_pin2, gpio_adc2_port, gpio_adc2_pin, pid_adc
保留_gpio(adc_pin3,gpio_adc3_port,gpio_adc3_pin,pid_adc);

GPIO_ConfigurePin(GPIO_ADC1_PORT,GPIO_ADC1_PIN, INPUT, PID_ADC, false);
GPIO_ConfigurePin(GPIO_ADC0_PORT,GPIO_ADC0_PIN, INPUT, PID_ADC, false);
GPIO_ConfigurePin(GPIO_ADC2_PORT,GPIO_ADC2_PIN, INPUT, PID_ADC, false);
gpio_configurepin(gpio_adc3_port,gpio_adc3_pin,输入,pid_adc,false);

//函数的adc样例
UINT16_T ADC_READ_P03_CHANNEL(void)

uint16_t adc_sample adc_sample2;

adc_init (GP_ADC_SE 0 GP_ADC_ATTN3X);

ADC_ENABLE_CHANNEL(ADC_CHANNEL_P03);

adc_sample = adc_get_sample ();

adc_init (GP_ADC_SE 0 GP_ADC_ATTN3X);

ADC_ENABLE_CHANNEL(ADC_CHANNEL_P03);

adc_sample2 = adc_get_sample ();
Adc_sample = (adc_sample2 + Adc_sample);
adc_disable();

返回ADC_SAMPLE.

问候
大卫

关键词:
ADC
设备:
lc_dialogg.ydF4y2Ba
离线
最后一次露面:3周4天前
职员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

我已经尝试了相同的实现在我的一边,我得到了适当的值在一个基本DK。我所做的不同的是打印读的值,并且我在调用这个函数app_validate_sleep回调要重复测试函数。

也许您可以在引导配置期间尝试调用ADC,或者可能会添加一些延迟adc_init就像它已经完成adc_get_vbat_sample.。看看你是否获得了更好的结果。

注意:另外,我注意到在您的代码中,您返回添加的样本,但没有除以2。如果这不是你想做的,我想提出这个问题。

如果您仍然有问题,请告诉我,可能会更有洞察力。

最好的,
lc_dialogg.ydF4y2Ba

戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
感谢您及时的回复

谢谢你的快速回复。

我试过所有方法,但都没用。
如果我在p03上测量1v或3v,则ADC显示了一个无关,但它始终围绕相同的范围。我检查引脚的电压,没有信号,我得到0V,因此没有偏移量。
其他通道与我的实现工作,所以我认为对话或配置通道P03是错误的。

我更改了ble pherpheral示例的代码。
有任何配置这个Pin,我不知道?

谢谢你的建议。
你是对的,加法后我不除法,但我对错误的通道没有影响。

问候
大卫

lc_dialogg.ydF4y2Ba
离线
最后一次露面:3周4天前
职员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

我会在这里寻找更多可能的问题。但是,你能不能试试extent_peripheral_template.项目并测试此实施。该项目没有任何可能干扰和优先事项的不必要的操作。

此外,您如何调用此功能。是在启动期间或之后的某个点重复调用函数。

最好的,
lc_dialogg.

戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
你好,信用证,

你好,信用证,

我修改了ble外设示例,采取adc测量,并通过ble将其发送到计算机。我使用像示例中一样的函数app_adcvall_timer_cb_handler每秒钟发送一次值。

我用空相干模板上的所有通道测试了ADC,另外使用带有UART作为输出的改进的电池示例。
它总是相同的结果。
通道P00, P01, P02显示正确的值(1V, 2V, 3V),但通道P03显示始终相同的一个值(二进制格式:1110001100)。后两位取值不同。所以P03的测量发生了。
我还检查了P03针到芯片的接触点,一切正常。

该频道是否有可能在芯片内部有任何损坏?

最好的问候,
大卫

lc_dialogg.ydF4y2Ba
离线
最后一次露面:3周4天前
职员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

这很奇怪,只有频道P03显示奇怪的行为。我们在580年上没有见过ADC的任何此类问题。过去有一些百分比的准确性问题,但没有这样做。说过,我想确认与实施有关的事情。
1.这个pin P03是否有其他用途?主要的是用于闪存的CS引脚。这可能会引起一些干扰的引脚上,因为它被加载。
2.您可以在不同的DEV套件上测试这一点。这是为了排除任何硬件相关问题。
3.您可以使用3x衰减模式与ADC进行测试禁用检查结果是否有所改善。

它不清楚是什么导致这一点,但是,我会随时向您发布,因为我探讨了这个问题。

最好的,
lc_dialogg.ydF4y2Ba

戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
嗨LC-Dialog,

嗨LC-Dialog,

我买了同样的事情,但我检查了所有GPIO预留和配置的其他目的。我找不到任何东西。
2.如果没有解决方案,我将通过另一个14580芯片和测试这个首先。

3.没有3x衰减通道P03,我获得最高值(1111111111),3x衰减我得到大约3,2V(1110001100,1110001101,1110001011)。我创建的信号并不重要。
我还使用示波器检查了PIN,也连接到芯片。没有偏移。不是作为输出的值。

你是否有可能通过软件或任何GPIO配置获得这种3.2 v ?
否则我认为芯片有内部损坏。

谢谢
大卫

lc_dialogg.ydF4y2Ba
离线
最后一次露面:3周4天前
职员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

我很好奇你是否有机会在不同的套件上尝试ADC实现?

此外,由于有时,即使在其他频道上未接收到其他频道,ADC也可能受到干扰,即使它们不用于ADC目的,也可能会受到任何活动。例如,如果存在任何UART活动等,则在通道3用于ADC的通道3时,ADC读数可能存在一些不一致的。请确保正常处理以避免这种情况。

回到最初的问题,仍然没有解释为什么你只在第三频道得到一些固定的不正确的值。

关于你的问题:你是否有可能通过软件或任何GPIO配置获得这款32v ?
如果您要询问将ADC通道3映射到任何其他GPIO,我担应不担担,因为ADC的4个通道以硬件连接到端口0的下4个引脚。

最好的,
lc_dialogg.ydF4y2Ba

戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
嗨lc_dialog,

嗨lc_dialog,

我将在几天内更换我主板上的芯片。
我检查了所有的软件设置,也测试了一些硬件设置。
我发现频道的值是VDD3V3。我需要更长时间的时间,因为我总是用USB使用调试器。
在电池或电压发生器的使用后,该值就像电源电压。
如果更换芯片后问题解决了,我会告诉你的。

问候,

大卫

戴维德
离线
最后一次露面:2年7个月前
加入:2017-11-17 08:35.
嗨lc_dialog,

嗨lc_dialog,

更换da14580芯片后,通道P03工作。所以这是一个硬件问题。
现在所有四个频道都工作得很好。我不知道损坏的原因,但它需要这么长时间,这很烦人。

你知道adc的参考电压和精度吗?
我做了一些测量,如果我想转换adc的值,我计算与3.6V。但如果我以3.7V作为参考电压计算,转换值对adc引脚上的电压更准确。我认为执行的软件是正确的。

问候,
大卫

lc_dialogg.ydF4y2Ba
离线
最后一次露面:3周4天前
职员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

知道问题解决了是件好事。虽然硬件损坏是非常罕见的,可能是由于许多原因,如打开包装后在外面保存时间较长,生产中的esd等,

关于精度,在DA14580已知问题文件中存在非常好的参考,用于ADC测量和预防措施。有关任何澄清,请查看该文件并接触我们。

最好的,
lc_dialogg.ydF4y2Ba