⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
沃利
离线
最后一次露面:3周10小时前
加入:2016-06-21 01:23
ADC差异模式

我使用以下代码测试P0 / 0和P0 / 1的电压,我的目的是首先测量P0 / 0电压,然后测量P0 / 1电压,最后测量P0 / 0和P0之间的差分电压/ 1。

结果如下:
P0 / 0 ======== P0 / 1 ========差异模式
0 =========== 0 ============ 255
1023 ======== 0 ============ 1023
0 ========= 1023 =========== 0
1023 ======= 1023 ========== 511

我的理解是:1023是+ 1.2V,0是-1.2V。511是0V,但是当P0 / 0和P0 / 1都是0V时,为什么它的差值不是511,但是256?
当压力差是0V时,不应该是511吗?

测试代码:

adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,0);
ADC_USDELAY(20);
ADC_ENABLE_CHANNEL(ADC_CHANNEL_P00);
adc_value1 = adc_get_sample();
ADC_USDELAY(1);

adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,0);
ADC_USDELAY(20);
adc_enable_channel(adc_channel_p01);
adc_value2 = adc_get_sample();
ADC_USDELAY(1);

adc_calibrate();
ADC_INIT(0,0,0);
ADC_USDELAY(20);
ADC_ENABLE_CHANNEL(0x0000);
adc_value3 = adc_get_sample();
ADC_USDELAY(1);

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

嗨,威廉,

关于差异性ADC模式如何工作,请在论坛上查看以前的帖子。

https://support.dialog-semicondiondionder.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-hardware-device-reference-designs/tring-make.

谢谢,PM_DIALOG.

沃利
离线
最后一次露面:3周10小时前
加入:2016-06-21 01:23
这篇文章没有帮助我

这篇文章并没有帮助我。我的主要问题是,当两个引脚都连接到0V时,为什么结果255,有时是768,不应该是511?

PM_DIALOG.
离线
最后一次露面:2天23小时前
职员
加入:2018-02-08 11:03
嗨,威廉,

嗨,威廉,

我不认为您将能够在使用ADC的差分功能状态时测量零电压的值,并且将两个ADC结束设置为零,因为您正在按照他的限制操作ADC。简单地,内部比较器两端的电压太低,无法确定两个电压中的哪一个更高。甚至在零伏中具有ADC的一个端部将导致值为不准确的值。

谢谢pm_dialog.