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.

关于ADS1248的PGA的请教

Other Parts Discussed in Thread: ADS1248, REF5025, REF5020

你好:

          对于ads1248的pga的数值与实际放大倍数之间的关系我想求教下。我采用REF2.048V电压做基准,经过分压差分输入测量电压。当设为一倍增益时测得电压值和真实值一样,当将增益调大时,计算出的电压值和实际测量的之间的关系不是PGA的值,比如2倍增益时大概为1.33倍;4倍增益时位1.6倍。请问ADS1248的电压的放大倍数和PGA的值是什么样的关系,出现我这种情况是什么原因?

  • 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的设置)

  • 对于大输出,高增益情况,有时候会导致放大器或ADC饱和。

  • Hi

         附件是原理图,我是差分输入,使用的AIN4和AIN5,其中AIN4接要测的电压,AIN5接地。按照你说的,当PGA设置成四时输入电压1.283V,输出电压2.0443V;当PGA设置成2时输入1.538V,输出2.0473V。输入采用的的REF20.48V电压分压而来。

    第二版电路图.pdf
  • 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

       见ADC的输入范围,与对应关系:

      
      

  • Hi

         你的意思我明白,但是当PGA=4,模拟输入0.512V时返回的24位值如下图所示

    当调成超过1.283V才如你所说的变成127 255 255 也就是7FFFFF

  • Hi

       也就是此时相差一倍?

        请确认差分输入时0.512, 参考电压时2.048V, 都没有改变,输出时以补码形式。

       你是单电源供电还是双电源供电? 双电源供电可能会造成这个问题。

  • Hi

         并不是一倍关系,PGA=1时,差分输入0.512V的返回值是

    与PGA=4时的值大约是1.6倍的关系。另外基准电压2.048V一直没变,我采用的是5V单电源供电。原理图前面已经上传。

  • 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

         我刚刚试着将输入端一端直接接REF,一端直接接地,返回的值如下图

    不是应该是127 255 255的吗,为什么会出现这个情况。我计算了下,如果电压基准按2.5算的话大概2.048的时候出现的应该是这个值。但是就算是基准是2.5V前面的那些个PGA=2,PGA=4时的增益倍数也不对。另外我还想问下就是2.5V基准和2.048V基准是通过什么方法确定的呢?我是个初学者,旁边还没有人指导,所以问题比较多,也比较低级,还请见谅。

  • Hi

       先如之前所谈,确认数字GND和模拟GND严格分离,这个是转换不准确的重点。

       其次选择VREF电压,选2.048或者2.5V都是没有关系的,重点是需要高精度的基准源,如REF5025,REF5020之类。 基准电压转到2.5V并不会改变问题,区别只是在于模拟输入电压的范围有所改变。 在现阶段调试,可以先采用内部基准电压2.048V(默认内部参考电压)

  • 刚刚发现当PGA=32,PGA=64,PGA=128时的返回值是成比例关系的。

    PGA=32

    PGA=64

    PGA=128

    但是PGA为小于32的值得时候就不遵循2倍的关系。

  • Hi

       在你的另外一个帖子里有提到时序的问题,在这个帖子里也有建议你差一下数字输出的位数(用示波器)

       时序上建议有DRDY指示数据输出,而后得到数据,看转换的数据是否正确。(也可以整体确认一下其他的时序问题)。

  • Hi 

       注意PGA取值比较大时,意味着输入范围更加窄。

       从你现在的测试看是否都是相差2倍的关系吗? (如上用示波器确认时序,查SPI时序,看24位的数据是否有错位之类)

  • 好的,我用示波器看一看,谢谢。

  • 我也碰到这个问题,PGA为1的时候,AD转换的结果很理想,但PGA改为2以上,AD转换值不是理想的倍数,看了大家的解释,我想可能是数字与模拟电路没有分离的结果,不知道专家怎么看?这是设计比较匆忙,把模拟地和数字地直接连接在一起了,一般使用没有什么问题,精度还可以,但改变PGA后出现问题了,但不知道数字地和模拟地合在一起的后果这么严重。

  • 兄台

    按照datasheet clk脚接地。  ads1247 ads1147等vrefout 脚上电就有2.0v左右电压么? 我焊接了好几块,线路就接3.3v和地,

    vrefout脚是需要软件初始化设置后才有电压还是什么?

    我用

    ADS124x_WREG( ADS124x_REG_MUX1 );
    ADS124x_WCMD( 0 );
    ADS124x_WCMD( DEF_BINARY_0010_0000);  

    bit  6 5位为 01时 internal reference is always on。  设置后vrefout还是没有电压。

    求救。。。。

  • 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左右的电压。。。。

  • 搞定。。。电压出来了。。。    

    多谢了。。这么晚还不下班啊

  • Hi

       感谢你反馈结果。

  • 该问题是由于共模电压范围不正确而引起的,之前是一端接地,一端接参考电压。改为一端参考电压另一端比参考电压大的时候放大倍数正常。谢谢各位的帮助。

  • 您好:

            我最近也在用ADS1248这个芯片 能否分享下你的驱动代码,谢谢 576810593@qq.com

  • 我现在用ads247 遇到的问题如下:

    目前寄存器的值还是无法读取,但是已经能够采集数据,改变寄存器配置的值,采集数据也有变化,所以我觉得寄存器的值已经写进去了

       AIN1=GND,AIN2为模拟信号输入,当AIN2输入为0,也就是接地时采集数据位1A7000(低16位数据一直变化),当输入为1.6V时为7FFFFF,PGA=1,可我要求的范围是0---2.5V,该怎么调增寄存器,我试了好多次值都不行,当为0时采集的数据比1A7000还大,我希望的是当为0时采集为0000000,     2.5V时采集为7FFFFF,