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.

ADS1255 SELF Calibration problem

Other Parts Discussed in Thread: ADS1255, MSP430F2132, OPA350

Dear TI support team:

I have a board with 2 ADS1255 connect to a msp4302132's SPI port.  To verify the noise level of the board and self calibration, I short ads1255's input pin to GND and then pull data from the chip.  Both chip's configuration is 100sample/s, Ain0 is pos AINCOM is neg, buffer on, sdc off, PGA = 1, one shot mode read.  Two AD works alternatively. 

Below is the schematics of the ADC part and refrence part , two ADC share's a 2.5v reference. 

Here is the initial code, during this process, one of the AD is put to standby mode, another is given the initial process. After one is finished, the finished one is then put to standby mode and the other ad do the same initial code. 

ADS1255_RESET(); 
delay_ms(200);

while(P2IN&AD3_DRDY==0);
ADS1255_write_reg(0x50,0x02);      // put buffer on

delay_ms(100);

while(P2IN&AD3_DRDY==0);
ADS1255_write_reg(0x51,0x08);    // single end mode
delay_ms(100);

while(P2IN&AD3_DRDY==0);
ADS1255_write_reg(0x52,0x00); //PGA=1
delay_ms(100);

while(P2IN&AD3_DRDY==0);
ADS1255_write_reg(0x53,0x63); //0x82 100SPS //0x63 50sps
delay_ms(100);

while(P2IN&AD3_DRDY==0);
ADS1255_write_reg(0x54,0x00);
delay_ms(100);

while(P2IN&AD2_DRDY==0);
ADS1255_SELFCAL(); // write self calibration cmd
delay_ms(2000);   // wait enough time

The problem is:

After the self calibration and the input pin short to GND. One ADC gives read around 68+-2, another gives 85+-2.  The result is almost same when change sample rate from 100 to 50 and then to 2.5( the only change is the noise level becomes lower with  slow sample,  only 1 for 2.5 sps).  And the number is pretty constant.

 According to the NOISE HISTOGRAM of the datasheet, there seems an offset I can never get off.   Where the offset comes from? Why the self calibration can not eliminate the offset? 

Yiyang

  • Hi Yiyang,

    Instead of performing a SELFCAL (self-calibration) operation, try shorting the ADC inputs and performing SYSOCAL (system-offset calibration).
    The difference is that the ADC sees difference offset voltages. When you run SELFCAL the ADC's internal offset is corrected; running SYSOCAL will remove the combined effect of the ADC offset + external offset voltage.

    When shorting the ADC inputs, do you leave the 1kOhm resistor in the circuit?
    The input bias current multiplied by the impedance seen by the ADC (1k resistor + ground impedance) creates an external offset voltage, which may very well be about 68 codes (or 40 uV).

    Best Regards,
    Chris

  • Hi Chris,

    Thanks for the quick reply!

    It's a direct short to ground without the 1Kohm resistor. When short with the resistor, the value goes up to several hundreds. Just wonder why?

    Yiyang

     

  • Hi Yiyang,

    Sorry for the delay.

    There is an input bias current that creates a voltage drop across any input impedance. Sometimes the ground impedance can be high if the PCB layout does not provide a short connection back to a solid ground plane.

    Did applying SYSOCAL improve the offset?

    Best Regards,
    Chris
  • Hi Chirs,

    The SYSOCAL is not applicable in the system. The OP's output connects direct to the ADC through RC filter.  

    I do have a solid ground plane and the top layer of the board has large area ground plane too.  Though this small value didn't post negtive effect on the system, I was just wonder where it comes from.

    Attached is my pcb file.  U1 and U4 is ads1255, U2,U5 is I-V op for two PD , U7 is opa350 provide ref2.5v, U6 is msp430f2132 take the control. U3 is 7.68Mhz osc.

    YiyangpdSingleBoard-7050.brd

  • Hi Yiyang,

    Nothing stands out to me from the layout that could present a large impedance between ADC inputs, when shorted to GND.

    You should still be able to take advantage of SYSOCAL even with an op amp connected to the ADC input... By connecting the op-amp input to ground (or otherwise providing a signal to the op amp that results in the "0V" ADC reading) and running SYSOCAL, you effectively remove the combined OP AMP + ADC offsets from the measurement result.

    This is the intended purpose of SYSOCAL, which usually makes it more practical than the SELFCAL function. This function could also be implemented in the MSP430, without the SYSOCAL command, but then you would need to store the offset coefficient and perform the subtraction operation each time you read data from the ADC.

    Best Regards,
    Chris
  • Hi, Yiyang,
    I am dealing with very very similar circuit with yours, but meet problems of different types.
    If you have received my friend request, please contact me in the forum, or email me, shichen717@126.com.
    I need your suggestions.

    Thank you
    Shichen