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.

LSB calculation for ADS12xx series of 24-bits ADC

Other Parts Discussed in Thread: ADS1256, ADS1241

Hello!

I am going to use the ADS1256 sigma-delta ADC in my applications. While I was examining data sheet of ADS1256 I found something that was confused me. It is about ideal output code calculation on page 23 under chapter DATA FORMAT.

Why are you calculate LSB as like as 2*VREF/(2^(n-1) - 1)? Is it usual to calculate LSB as like as  2*VREF/(2^(n-1)) as like as used in application note SBAA133? (I assume PGA=1 in order to have simpler calculation)

You said that ADC produced output code 0x800000 when input voltage is  less or equal -2*VREF*(2^23)/(2^23 - 1). Lets assume that we have 2.5V at VREF input.

According equation  -2*VREF*(2^23)/(2^23 - 1) it is -5.000000596V. How ADC can measure less than -5V because 596nV is not equal to 1/2 LSB? 

I have looked in data sheet of ADS1241, there is also 2*VREF/(2^(n-1) - 1).

 

Let assueme that we have same ADC but with only 4 bits resolution.  For me, corect value of LSB will be  2*VREF/(2^(n-1) )=2*2.5/8=0.625V.

The lowest negative value will be -5V for code 0x8(0b1000) and the highest positive value will be 4.375V for 0x7 (0b0111).

Please, comment this kindly.

Best regards,

Josko

 

 

  • Josko,

    This is not straight binary, it is binary two's complement.  This method is used so that you can have differential measurements in both the positive and negative directions.  Maximum code in the positive direction is 7FFFFFh, which is 2^23-1.  Similarly in the negative direction FFFFFFh-800000h, which is also 2^23-1.

    Hope that helps,

    Bob B

  • Hello Bob!

    I still can't figure out this issue. Ok, binary two's complement but where has zero gone, the range from 000000h-FFFFFFh? 

    This means that LSB weight is different in case of binary two's complement than in case of stright binary code?

    If I have 2.5V voltage on Vrefp pin and -2.5V on Vrefn pin of the same ADC as like as ADS1256 but only 4 bits, can you tell me what is the LSB weight and which value of input voltage gives output code 7h(0111b), and which value of input voltage gives output code 8h(1000b)?

    My opinion is:

    LSB=10V/16=0,625V

    8h(1000b) = = -5V

    7h(0111b) = = 4,375V

    or I don't have right?

     

    Is it confusion with MID-TREAD or MID-RISE notation? Do you have transfer characteristics (graph) for binary two's complement ADC? It can be for 4 bits, not for 24 bits.

     I assuming on problem with notification of Vref and FS.

    LSB=Vref/2^n

    or

    LSB=FS/(2^n-1), where FS=Vref-1LSB.

     

    Best regards,

    Josko

     

     

     

  • Josko,

    I realize that this is kind of confusing.  First of all, when calculating the LSB size you can't go the full range of codes.  It is actually half because you go the full range in both the positive and negative direction.  That is why the divisor is 2^23 for the ADS1256 (as opposed to 2^24) and in your example should be 2^3 instead of 2^4.  I think your confusion comes in what happens to the extra bit.  What happens in your case is you have 7 bits above zero and 8 bits below.  The result is pretty dramatic in the 2^4 case, but realize that it is not all that dramatic at the 24 bit level as we are talking about a code in the nanovolts.  So you don't lose the bit, it is just that the system is designed so that the MSB determines whether the reading is positive or negative.

    8 9 A B C D E F 0 1 2 3 4 5 6 7
    -11.428 -10.000 -8.571 -7.143 -5.714 -4.286 -2.857 -1.428 0 1.428 2.857 4.286 5.714 7.143 8.571 10

    Best regards,

    Bob B