我正试图了解差异模式如何工作。
我将电压连接到P0_0并接地到P0_1。
我采样通道0和1在单端,然后在差分模式,但我得到的结果没有意义。
这是密码
//ADC初始化
adc_init(gp_adc_se,0);//单结束
adc\启用\通道(adc\通道\ P00)//ADC\通道\ P00
temps [0] = adc_get_sample();//开始采样
adc_disable();
adc_init(gp_adc_se,0);//单结束
adc\启用\通道(adc\通道\ P01)//ADC\通道\ P01
temps [1] = adc_get_sample();//开始采样
adc_disable();
adc_init(0,0)//差模
adc\启用\通道(0)//ADC\U通道\U P00-ADC\U通道\U P01
temps[2]=adc_get_sample()//开始取样
temps[2]不应该与temps[0]-temps[1]相等吗?
谢谢

你好,罗尼,我会让一个团队的人和你联系。关于ADC,我们的数据表有点不清楚。很快会有人联系的。
BR JE\u对话框
谢谢
嗨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
0 0[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
1 0[P0 0,P0 1],[P0 2,P0 3]-3.6 V至+3.6 V-3.45 V至+3.45 V
如果这还不能回答您的问题,您能否在单端和差分模式下显示从ADC读回的一些值?
此致,
RvA(对话框)
我想我明白了。
我可以使用adc_init设置gp_adc_se,但如何设置gp_adc_attn3x?
嗨rony,请参阅以下螺纹WHCIH详细信息如何设置3X衰减器。
BR JE\u对话框
http://support.dialog-semicondiondionder.com/using-adc-read-voltage-divider-value.
谢谢。
我查一下
嗨rony,
我在前面的帖子里放的那张桌子有点乱七八糟。下面是一张更好的图片:
此致,
RvA(对话框)
是的,我破译了。
将于下周开始使用它。
如果我有问题你会第一个知道。。。
谢谢
正如承诺的那样,您将成为第一个知道是否存在问题的人。
我连接了一个可以测量p0和p1单端和p0微分的装置。
我从单端得到的值是合乎逻辑的。
我从差速器中得到的东西对我来说毫无意义。
我录了两个文件,其中我手动扫描和记录我得到的p0,p1和p0-p1
在其中一种情况下,p0总是高于p1,而在第二种情况下,则相反。
测量不是同时进行的,而是一个接一个的。
我怎样才能把数据发给你?
嗨rony,
暂时结束本主题,因为我们通过邮件讨论了差分ADC测量需要进一步的文档,我们建议暂时使用单端ADC测量。
最好的问候,RVA(对话)
我也遇到了差模的问题
你能给我进一步的文件吗?
好的
这就是我们现在正在做的。
谢谢
你好,
关于SDK5.0.3:
adc\ u init(0,GP\ adc\ u SIGN,0);
adc\ U美元(20);
adc\启用\通道(0);
adc_sample=adc_get_sample();
不应该adc_sample是p0_1- p0_0?
测量范围是否应为[-1.2V,1.2V]?
它无法根据上述代码测量正确的值。
期待您的回复。
谢谢。
您好,z20121202038,
根据您要测量的通道,您必须进行适当的调整,因为数据表表明,如果您要测量P00与P01,GP\u ADC\u SEL应为0000,因此请确保配置正确,并使用GPIO\u ConfigurePin配置pin到ADC的功能。除此之外,您还可以通过以下修改应用校准程序,因为您希望使用差分模式:
代替:
新的\u adc \u off \u p=0x200-2*adc \u off \u p;
新的\u adc \u off \u n=0x200-2*adc \u off \u n;
将上述内容替换为:
新的\u adc \u off \u p=0x200-adc \u off \u p;
new \u adc \u off \u n=0x200-adc \u off \u n;
谢谢你的对话
嗨,MT\u dialog,
我遇到了差模的问题
1)
将P00和P01连接到地面。
根据您的建议修改校准程序。
但是输出是0x300或0xFF,为什么不是0?
2)
输出是无符号整数还是有符号整数?
3)
你能给我进一步的文件吗?
谢谢。
嗨,MT\u dialog,
详细测试如下:
/************************************************************************************/
uint32_t adc_value1 = 0;
uint32_t adc_value2 = 0;
uint32 adc值3=0;
uint32 adc值4=0;
uint32 adc get vbat样本(布尔样本)
{
uint32\u t adc\u样本,adc\u样本2;
uint32_t att = gp_adc_attn3x;
adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,att);
adc\ U美元(20);
ADC_ENABLE_CHANNEL(ADC_CHANNEL_P00);
adc_sample=adc_get_sample();
adc_值1=adc_样本;
adc\ U美元(1);
adc_calibrate();
adc_init(gp_adc_se,gp_adc_sign,att);
adc\ U美元(20);
adc_enable_channel(adc_channel_p01);
adc_sample=adc_get_sample();
adc_值2=adc_样本;
adc\ U美元(1);
adc_值3=adc_值2-adc_值1;
adc_calibrate();
adc\初始化(0,GP\ adc\符号,att);
adc\ U美元(20);
adc\启用\通道(0x0000);
adc_sample=adc_get_sample();
adc_值4=adc_样本;
adc\ U美元(1);
adc_disable();
返回adc/U样本;
}
此外,我们将PIN配置为:
GPIO\ U配置引脚(0,0,输入,PID\ U ADC,false);
GPIO\ U配置引脚(0,1,输入,PID\ U ADC,false);
/************************************************************************************/
结果:
adc_值1=0;
adc_值2=0x390;//3.206伏
adc\ U值3=0x390;
adc_value4 = 0x02b;// 0.151V.
期待您的回复。
谢谢。
您好,z20121202038,
不幸的是没有文件或示例如何使用差异ADC操作,大多数客户不使用差分但单个结束模式,当零电压施加零电压时,ADC的输出应接近1FF或者10位范围,因为您从-1.2V到1.2V测量(或使用衰减器乘以3),ADC的输出是无符号的10位值。还尽量不要在初始化模块并使用差异模式时使用gp_adc_sign。
谢谢你的对话