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.

ADS8699: unipolar vs. bipolar range

Part Number: ADS8699


Tool/software:

Hi all, 

I have a question w.r.t. to the range selection. For the unipolar ranges, everything is fine and I get meaningful results and can convert the conversion result to the input voltage and it matches regardless of the selected range. However, when I switch e.g. from range_sel = 0b1011 (unipolar 1.25V ref) to 0b0011(bipolar 1.25Vref) the conversion result halves, which kind of makes sense because the full scan range doubled from 0..1.25Vref to -1.25Vref..+1.25Vref), but I fail to imagine how an actually  negative input voltage would be represented. I checked the excel file provided somewhere on this forum  and this works fine for unipolar ranges, but if I enter the conversion result I get and for the selected bipolar range I get a negative voltage as result:

example:

4.086V internal reference, unipolar 1.25Vref range, 2.07V input signal -> conversion result is around dec 107600 -> ok (works also for other unipolar ranges accordingly)

same input signal, bipolar +/-1.25Vref range-> conversion result is around 53700 -> if I put this in the excel sheet I get -3.05V ? 

Cheers, Jan

  • Hi Jan,

    More often than not, ADCs with a bipolar input range use binary two's complement notation.  If you review Figure 7-15 and Table 7-4, the output of the ADS8699 is always straight binary regardless of the input range.  So, in the 0-1.25 Vref mode, your 2.07 input should give you code 0x19DFF (105984 dec) as you noted above.  When you go to +/- 1.25Vref, the LSB size doubles but 0V in is now going to be the mid-scale code of 0x20000.  You don't appear to be accounting for that offset in the bipolar range, +2.07V in should get you 0x2CF00 (184064 dec).