⚠️
大家好. .谢谢你来参加论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,并包含在Dialog主网站中。所有的帖子和账户都已迁移。我们现在只接受新论坛的流量-请张贴任何新的线程//www.xmece.com/support.我们将在未来几天修复漏洞/优化搜索和标签。
11个岗位/ 0个新岗位
最后发表
DavidW
离线
最后看到:2年7个月前
加入:2017-11-17 08:35
adc测量通道P03错误

你好,支持,

我的adc通道P03有问题。
adc通道P00, P01, P02的测量工作正常,但通道P03我总是得到一个错误的值。
我使用的是带有Da14580的DK-Basic-Kit。

这是我的代码:
/ / ADC配置
#定义GPIO_ADC1_PORT
#定义GPIO_ADC1_PIN
#定义GPIO_ADC0_PORT
#定义GPIO_ADC0_PIN
#定义GPIO_ADC2_PORT
#定义GPIO_ADC2_PIN
#定义GPIO_ADC3_PORT
#定义GPIO_ADC3_PIN

Reserve_gpio (adc_pin1, gpio_adc1_port, gpio_adc1_pin, pid_adc);
Reserve_gpio (adc_pin0, gpio_adc0_port, gpio_adc0_pin, pid_adc);
Reserve_gpio (adc_pin2, gpio_adc2_port, gpio_adc2_pin, pid_adc);
Reserve_gpio (adc_pin3, gpio_adc3_port, gpio_adc3_pin, pid_adc);

gpio_configupin (GPIO_ADC1_PORT,GPIO_ADC1_PIN, INPUT, PID_ADC, false);
gpio_configupin (GPIO_ADC0_PORT,GPIO_ADC0_PIN, INPUT, PID_ADC, false);
gpio_configupin (GPIO_ADC2_PORT,GPIO_ADC2_PIN, INPUT, PID_ADC, false);
gpio_configupin (GPIO_ADC3_PORT,GPIO_ADC3_PIN, INPUT, PID_ADC, false);

// adc sample的函数
uint16_t adc_read_P03_channel(空白)

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_DialoggydF4y2Ba
离线
最后看到:3周2天前
工作人员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

我已经尝试了在我这边同样的实现,我在一个基本DK上得到了适当的值。我所做的不同之处在于打印读取的值,并且我在app_validate_sleep回调函数以重复测试函数。

也许您可以尝试在启动配置步骤中校准ADC,或者在启动配置步骤后添加一些延迟adc_init好像是在adc_get_vbat_sample.看看你是否能得到更好的结果。

注意:另外,我注意到在你的代码中,你返回的样本是添加的,但不是除以2。如果这不是你想做的,我只是想提一下。

请让我知道,如果你仍然有这个问题,可能对这个问题有更多的见解。

最好的
LC_DialoggydF4y2Ba

DavidW
离线
最后看到:2年7个月前
加入:2017-11-17 08:35
谢谢你的快速回复

谢谢你的快速回复。

我什么都试过了,都不管用。
不管我在P03上测量1V还是3V, adc显示一个随机值,但它总是在相同的范围内。我检查了引脚的电压没有信号,我得到0V,所以没有偏移。
其他通道与我的实现工作,,所以我认为通道P03的对话或配置是错误的。

我修改了ble外设示例的代码。
这个引脚上有什么我不知道的配置吗?

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

问候
大卫

LC_DialoggydF4y2Ba
离线
最后看到:3周2天前
工作人员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

我将在这里寻找更多可能的问题。不过,你能不能试着用Empty_Peripheral_Template项目化并测试这个实现。这个项目是自由的所有不必要的操作,有时可能会干扰和优先。

另外,如何调用这个函数。函数是否在启动期间或启动后的某个时间点被重复调用或只被调用一次。

最好的
LC_Dialogg

DavidW
离线
最后看到: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_DialoggydF4y2Ba
离线
最后看到:3周2天前
工作人员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

这是非常奇怪的,只有P03频道显示奇怪的行为。我们在580的ADC上没有看到任何这样的问题。在过去有一些百分比精度问题,但没有这样的。与此同时,我还想确认有关实施的几个问题。
1.这个pin P03是否被用于任何其他目的。主要是闪存的CS引脚。这可能会引起一些干扰的引脚,因为它是装载。
2.你能在不同的开发工具包上测试这个吗?这是为了排除任何与硬件相关的问题。
3.你能用3x衰减模式测试ADC吗禁用检查结果是否有所改善。

目前还不清楚是什么原因导致了这种情况,但我会在我探索这个问题的过程中向您发布消息。

最好的
LC_DialoggydF4y2Ba

DavidW
离线
最后看到:2年7个月前
加入:2017-11-17 08:35
嗨LC-Dialog,

嗨LC-Dialog,

1.我也学过同样的东西,但是我检查了所有GPIO的保留和配置。我什么都找不到。
2.如果没有解决方案,我会用另一个14580芯片先测试一下。

3.如果在P03通道上没有3x衰减,我得到了最高值(1111111111),如果是3x衰减,我得到了大约3,2 v(1110001100,1110001101, 1110001011)。不管我产生什么信号。
我还用示波器检查了引脚,以及与芯片的连接。没有抵消。而不是作为输出的值。

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

谢谢
大卫

LC_DialoggydF4y2Ba
离线
最后看到:3周2天前
工作人员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

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

此外,有时,如果在其他通道上有任何活动,即使它们没有用于ADC目的,ADC也可能会受到干扰。如果有任何UART活动等,在通道0/1/2上,当通道3用于ADC时,ADC读数可能会有一些不一致。请确保时间处理得当,以避免这种情况。

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

关于你的问题:有没有可能通过软件或任何GPIO配置获得这个3,2v ?
如果您正在询问如何将ADC通道3映射到任何其他GPIO,恐怕这是不可能的,因为ADC的4个通道在硬件上连接到Port 0的下4个引脚。

最好的
LC_DialoggydF4y2Ba

DavidW
离线
最后看到:2年7个月前
加入:2017-11-17 08:35
嗨LC_Dialog,

嗨LC_Dialog,

过几天我会换掉我板上的芯片。
我检查了所有的软件设置,也测试了一些硬件设置。
我发现通道的值是VDD3V3。我需要更长的时间,因为我总是使用usb调试器。
在电池或电压发生器使用后,其值类似于电源电压。
更换芯片后,如果问题解决了我会让你知道。

问候,

大卫

DavidW
离线
最后看到:2年7个月前
加入:2017-11-17 08:35
嗨LC_Dialog,

嗨LC_Dialog,

更换da14580芯片后,Channel P03可以正常工作。所以这是一个硬件问题。
现在四个通道都工作得很完美了。我不知道造成这种损坏的原因,但花了这么长时间真是令人恼火。

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

问候,
大卫

LC_DialoggydF4y2Ba
离线
最后看到:3周2天前
工作人员
加入:2016-09-19 23:20
你好大卫,

你好大卫,

很高兴知道问题解决了。虽然硬件损坏非常罕见,可能是由于许多原因造成的,比如在打开包装后在外部存储较长时间,生产中的esd等,

关于精度,在DA14580已知问题文档中有一个非常好的参考,用于ADC测量和注意事项。请审阅文件,如有任何澄清,请与我们联系。

最好的
LC_DialoggydF4y2Ba