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.

Polarity bits missing from ADS8881 ADC

Other Parts Discussed in Thread: ADS8881

Attached are screenshots from the oscilloscope showing the SPI lines to a ADS8881 ADC with the bus running at 5000 Hz. Channel 1 is the SCLK, channel 2 is the data returned from the ADC, and channel 3 is the CS which is connected to the ADC's CONVST in a Daisy Chain config with 1 ADC (prototyping for future bus expansion).

As I understand it, the ADC should return 18 bits, MSB first. The two least significant bits in the first byte transmitting should be polarity bits, 01 for positive, 10 and 11 for negative according to the transfer function chart supplied in the data sheet. However, the ADC appears to only respond with two bytes of data that, when converted, correspond to the sample voltage.

My question is, why is the ADC not appearing to return 18 bits, and instead return 16 bits? Am I misunderstanding something?

Thanks in advance. 

  • Hi Greg,

    This device is a precision data converter. I will help move it to the appropriate forum.

    Ken.
  • Thank you.
  • Hi Greg,

    I'm not sure I completely understand your question but I want to make sure you are not interpreting the ADC output data incorrectly. Figure 49 of the datasheet shows you what output code to expect for a given input voltage. Additionally, I've created a table (attached) to help you with correctly interpreting the ADC output. Note that there is only 1 bit (the MSB) to represent the sign of the output code, which has the range -2^17 <= output code <= 2^17-1.

    Now, most importantly, what values are you using for VREF and Vin? This determines what output you should be expecting.

    Regards,

    Harsha

    Book3.xlsx

  • Harsha, 

    Thank you for the explanation and the spreadsheet. They were very helpful. Originally I thought the device would separate and arrange the bits into 3 bytes for me, but that is not the case even though I am clocking 24 times. What I had originally interpreted as missing polarity bit is just zero. I completely misunderstood how the device responds and it took a couple of glances to get it right. It is working now. Thank you.