18个员额/ 0个新员额
最后发表
罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
差分模式的ADC

我正试图了解差异模式如何工作。
我将电压连接到P0_0并接地到P0_1。
我在单端采样通道0和1,然后在差分模式,但我得到的结果没有意义。
这是代码
/ / ADC Init
adc_init(gp_adc_se,0);//单结束
adc_enable_channel (ADC_CHANNEL_P00);/ / ADC_CHANNEL_P00
temps [0] = adc_get_sample();/ /开始采样

adc_disable ();
adc_init(gp_adc_se,0);//单结束
adc_enable_channel (ADC_CHANNEL_P01);/ / ADC_CHANNEL_P01
temps [1] = adc_get_sample();/ /开始采样

adc_disable ();
adc_init (0,0);/ / diff模式
adc_enable_channel (0);/ / ADC_CHANNEL_P00 - ADC_CHANNEL_P01
临时工[2]= adc_get_sample ();/ /开始采样

[2]和[0]不应该相等吗?
谢谢

JE_Dialog
离线
最后看到:1个月1个星期前
工作人员
加入:2013-12-05 14:02
你好,罗尼,我要一个

你好,罗尼,我会让一个团队联系你。当谈到ADC时,我们的数据表有点不清楚。很快就会有人跟你联系。

BR JE_Dialog

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
谢谢

谢谢

RvA
离线
最后看到:2周3天前
工作人员
加入:2014-02-07 14:10
嗨rony,

嗨rony,
您是正确的,从单端输入中减去输出值应该得到与微分输入相同的结果。然而,您必须确保首先使ADC值转换为实际电压。请看下面显示的详细信息

GP_ADC_ATTN3X GP_ADC_SE输入通道输入规模输入限制
0 1 P0_0,P0_1,P0_2,P0_3 0 V至+1.2 V -0.1 V至+1.3 V
[P0_0, P0_1], [P0_2, P0_3] -1.2 V至+1.2 V -1.3 V至+1.3 V
1 1 P0_0,P0_1,P0_2,P0_3 0 V至+3.6 V -0.1 V至+3.45 V
[P0_0, P0_1], [P0_2, P0_3] -3.6 V to +3.6 V -3.45 V to +3.45 V

如果这还不能回答您的问题,您可以显示从ADC中以单端和差分模式读取的一些值吗?
最好的祝福,
RvA(对话框)

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
我想我明白了。

我想我明白了。
我可以使用adc_init设置gp_adc_se,但如何设置gp_adc_attn3x?

JE_Dialog
离线
最后看到:1个月1个星期前
工作人员
加入:2013-12-05 14:02
嗨,Rony,请看

嗨rony,请参阅以下螺纹WHCIH详细信息如何设置3X衰减器。

BR JE_Dialog

http://support.dialog-semicondiondionder.com/using-adc-read-voltage-divider-value.

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
谢谢。我来检查一下

谢谢。
我来检查一下

RvA
离线
最后看到:2周3天前
工作人员
加入:2014-02-07 14:10
嗨rony,

嗨rony,

我在之前的帖子里放的表格有点混乱。这里有一张更好的图片:

最好的祝福,

RvA(对话框)

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
是的,我破译了。

是的,我破译了。
将于下周开始使用它。
如果我有什么问题,请第一个告诉我。
谢谢

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02
如你所承诺的那样

正如承诺的那样,您将成为第一个知道是否存在问题的人。
我连接了一个装置,可以测量p0和p1的单端和p0的微分。
我从单端得到的值是合乎逻辑的。
我从微分中得到的东西对我来说毫无意义。
我记录了两个文件,我手动扫描并记录了我得到的p0 p1和p0-p1
其中一个的p0总是大于p1,而第二个的正好相反。
这些测量不是同时进行的,但它们是一个接一个的。
我怎样才能把数据发给你?

RvA
离线
最后看到:2周3天前
工作人员
加入:2014-02-07 14:10
嗨rony,

嗨rony,

就像我们在邮件中讨论的那样,差分ADC测量需要进一步的文档,我们建议目前使用单端ADC测量。

最好的问候,RVA(对话)

Sprhawk.
离线
最后看到:3年1个月前
加入:2016-03-03 17:25
我也遇到了

我也遇到了微分模式的问题

你能给我进一步的文件吗?

罗尼
离线
最后看到:4年11个月前
主
加入:2014-05-15 15:02


这就是我们现在正在做的。
谢谢

z20121202038
离线
最后看到:3年11个月前
加入:2016-03-30 51
你好,

你好,
关于SDK5.0.3:

GP_ADC_SIGN adc_init (0, 0);
adc_usDelay (20);
adc_enable_channel (0);
adc_sample = adc_get_sample ();

不应该adc_sample是p0_1- p0_0?
测量范围应该是[-1.2V, 1.2V]吗?

它不能基于上述代码度量正确的值。

期待你的回复。
谢谢。

MT_dialog
离线
最后看到:2个月1个星期前
工作人员
加入:2015-06-08 11:34
嗨z20121202038,

嗨z20121202038,

根据渠道,你想测量你需要做出适当的调整,随着数据表显示GP_ADC_SEL应该是0000如果你想测量P00 vs P01,所以确保配置是正确的,也配置针ADC functionallity GPIO_ConfigurePin。除此之外,您可以应用校准程序与以下修改,因为您想使用差速模式:

代替:

New_adc_off_p = 0x200 - 2 * adc_off_p;
New_adc_off_n = 0x200 - 2 * adc_off_n;

将上面的替换为:

New_adc_off_p = 0x200 - adc_off_p;
New_adc_off_n = 0x200 - adc_off_n;

由于MT_dialog

z20121202038
离线
最后看到:3年11个月前
加入:2016-03-30 51
嗨MT_dialog,

嗨MT_dialog,

我遇到了微分模式的问题
1)
将P00和P01连接到地面。
根据您的建议修改校准程序。
但是输出是0x300或0xFF,为什么不是0?
2)
输出是无符号整数还是有符号整数?
3)
你能给我进一步的文件吗?

谢谢。

z20121202038
离线
最后看到:3年11个月前
加入:2016-03-30 51
嗨MT_dialog,

嗨MT_dialog,

详细测试如下:

/************************************************************************************/
uint32_t adc_value1 = 0;
uint32_t adc_value2 = 0;
uint32_t adc_value3 = 0;
uint32_t adc_value4 = 0;

uint32_t adc_get_vbat_sample (bool sample_vbat1v)

uint32_t adc_sample adc_sample2;
uint32_t att = gp_adc_attn3x;

adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,att);
adc_usDelay (20);
adc_enable_channel (ADC_CHANNEL_P00);
adc_sample = adc_get_sample ();
adc_value1 = adc_sample;
adc_usDelay (1);

adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,att);
adc_usDelay (20);
adc_enable_channel (ADC_CHANNEL_P01);
adc_sample = adc_get_sample ();
adc_value2 = adc_sample;
adc_usDelay (1);

Adc_value3 = adc_value2 - adc_value1;

adc_calibrate();
adc_init (0 GP_ADC_SIGN att);
adc_usDelay (20);
adc_enable_channel (0 x0000);
adc_sample = adc_get_sample ();
adc_value4 = adc_sample;
adc_usDelay (1);

adc_disable ();

返回adc_sample;

此外,我们将PIN配置为:
GPIO_ConfigurePin(0,0, INPUT, PID_ADC, false); / /输出
GPIO_ConfigurePin(0,1, INPUT, PID_ADC, false); / /输出
/************************************************************************************/

结果:
adc_value1 = 0;
adc_value2 = 0 x390;/ / 3.206 v
adc_value3 = 0 x390;
adc_value4 = 0x02b;// 0.151V.

期待你的回复。
谢谢。

MT_dialog
离线
最后看到:2个月1个星期前
工作人员
加入:2015-06-08 11:34
嗨z20121202038,

嗨z20121202038,

不幸的是没有文件或示例如何使用差异ADC操作,大多数客户不使用差分但单个结束模式,当零电压施加零电压时,ADC的输出应接近1FF或者10位范围,因为您从-1.2V到1.2V测量(或使用衰减器乘以3),ADC的输出是无符号的10位值。还尽量不要在初始化模块并使用差异模式时使用gp_adc_sign。

由于MT_dialog