你好:
对于ads1248的pga的数值与实际放大倍数之间的关系我想求教下。我采用REF2.048V电压做基准,经过分压差分输入测量电压。当设为一倍增益时测得电压值和真实值一样,当将增益调大时,计算出的电压值和实际测量的之间的关系不是PGA的值,比如2倍增益时大概为1.33倍;4倍增益时位1.6倍。请问ADS1248的电压的放大倍数和PGA的值是什么样的关系,出现我这种情况是什么原因?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi
PGA的设置实际上影响到的是ADC模拟输入的范围(+/-Vref/PGA),按照你的说法是否是,当你的输入时Vref/PGA输入时(或者是其他值),得到的ADC转换结果并非是满刻度,而是比较满刻度小很多的值是吧。
按照你上面的测试,我觉得应该是输入的电压和输出的数字电压不对应导致的,而你是通过增益来表达这个差异的。按照你的测试,如果PGA=128时,这个误差将更加大。
Hi
注意一下你ADS1248电路的设计,可以参考TI的EVM板。包括供电,参考电压等等。电路注意数模隔离。
另外说明一下: 你输入电压按照差分,分别给的是多少伏? PGA设置等于4时,转换得到的值是多少? (最好能提供的电路)
以及你对ADC寄存器的设置是怎么样的?
ADC本身是有满刻度校正和offset校正的,但是看起来你的转换结果差别太大了,建议先确定一下造成转换误差太大的原因。
Hi
如你所说在PGA=128时误差很大。我不是很能理解你说的“是输入的电压和输出的数字电压不对应导致的”,能否详细解释下,麻烦了。
Hi
目前网络有问题无法上传附近,我会尽快上传电路图以及具体测得的数据的。
Hi
"是输入的电压和输出的数字电压不对应导致的" 也就是讲模拟输入,和数字输出其实对应不上。
另外你也要查一下,转换得到是24位,看有没有位的丢失, 用示波器确认一下。
(固定一个输入信号,用示波器观察时序,看转换得到的结果,可以用命令改变PGA的设置)
Hi
附件是原理图,我是差分输入,使用的AIN4和AIN5,其中AIN4接要测的电压,AIN5接地。按照你说的,当PGA设置成四时输入电压1.283V,输出电压2.0443V;当PGA设置成2时输入1.538V,输出2.0473V。输入采用的的REF20.48V电压分压而来。
Hi
之前有提到输入电压范围的问题,当PGA=4时, 模拟输入的范围是+/-Vref/PGA =+/-2.048/4=+/-0.512V.
而很显然你的输入是1.284V, 1.538V都是超出对应PGA时模拟输入范围Vref/4,ADC将输出7FFFFFh, 此时你将其误认为是满刻度2.048V,其实对应的应该是0.512V。
(上述提到7FFFFFh,实际测试值是接近这个的,所以按照你的计算输出大约是2.0443V, 2.0473V,造成这个差异是因为ADC的有效位不会达到24位)
Hi
也就是此时相差一倍?
请确认差分输入时0.512, 参考电压时2.048V, 都没有改变,输出时以补码形式。
你是单电源供电还是双电源供电? 双电源供电可能会造成这个问题。
Hi
按照你现在的测试
PGA=1时,Vdin=0.512V, 数字转换的结果是0.513V, 有效位做到了15位。
PGA=4时,Vin=0.512V, 数字输出的结果是0.835V, 转换的值已经超出实际值, 而有效位只做到了8位。
比较上表,会发现你ADC转换的精度非常的差,导致了结果的不准确。
从你上传上来的电路看:
1. 数模并没有隔离,建议 数字信号模拟信号各自用自己的GDN Plane(端点接GND), 数字GND Plane与模拟GND plane 用磁珠或者0欧姆电阻隔离。
2. 输入建议增加一个小电阻构成RC滤波器。(这个是参考TI EVM板的)
3. 可以的话建议采用高精度的外部参考源。
Hi
先如之前所谈,确认数字GND和模拟GND严格分离,这个是转换不准确的重点。
其次选择VREF电压,选2.048或者2.5V都是没有关系的,重点是需要高精度的基准源,如REF5025,REF5020之类。 基准电压转到2.5V并不会改变问题,区别只是在于模拟输入电压的范围有所改变。 在现阶段调试,可以先采用内部基准电压2.048V(默认内部参考电压)
Hi
在你的另外一个帖子里有提到时序的问题,在这个帖子里也有建议你差一下数字输出的位数(用示波器)
时序上建议有DRDY指示数据输出,而后得到数据,看转换的数据是否正确。(也可以整体确认一下其他的时序问题)。
Hi
注意PGA取值比较大时,意味着输入范围更加窄。
从你现在的测试看是否都是相差2倍的关系吗? (如上用示波器确认时序,查SPI时序,看24位的数据是否有错位之类)
HI
芯片默认状态下是内部参考电压关掉的,也就是说需要外接参考电压REF0时VREFOUT才会有电压。因此你需要确认数字电压DVDD有3.3V电压,此时芯片会Power-up reset, Reset后芯片寄存器为默认值。
00 = Internal reference is always off (default)
谢谢你的回复。真敬业啊……
没看明白。我的DVDD AVDD等等都接了3.3v 是不是默认测量vrefout上是没有2.0v电压的,,需要用软件写写mux1寄存器。。。然后
我用万用表测量这个引脚 就能看到2.0左右的电压。。。。
该问题是由于共模电压范围不正确而引起的,之前是一端接地,一端接参考电压。改为一端参考电压另一端比参考电压大的时候放大倍数正常。谢谢各位的帮助。
我现在用ads247 遇到的问题如下:
目前寄存器的值还是无法读取,但是已经能够采集数据,改变寄存器配置的值,采集数据也有变化,所以我觉得寄存器的值已经写进去了
AIN1=GND,AIN2为模拟信号输入,当AIN2输入为0,也就是接地时采集数据位1A7000(低16位数据一直变化),当输入为1.6V时为7FFFFF,PGA=1,可我要求的范围是0---2.5V,该怎么调增寄存器,我试了好多次值都不行,当为0时采集的数据比1A7000还大,我希望的是当为0时采集为0000000, 2.5V时采集为7FFFFF,