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.

ADS8354: ADC output Error

Part Number: ADS8354
Other Parts Discussed in Thread: ADS8353

Dear team, 

My customer consider using ADS8354 at their application. but there is issue of ADC output. please review below status and let me know your opinion. 

<Setting> 

- For CFR.B9 = 1, FSR_ADC_A = ±2 × VREF_A and FSR_ADC_B = ±2 × VREF_B

- CFR register : "8240" (Hex) , use internal reference. 

- AINP : 0 ~ 5V 

I expected the result of ADC output to be 8000~7FFF. but I got a result like below. How can we get a result  8000~7FFF in response to 0~5V input? 

If ADS8354 is not right device, please let me know reason of wrong selection and please recommend right solution. 

AINP = Vdc,
AINM = GND

AVDD = 5.505V

AVDD = 5.073V

REFDAC 1FF

REFDAC 1AE

REFDAC 1FF

REFDAC 1AE

 

Vin DC(V)

ADC Code(HEX)

ADC Code(HEX)

ADC Code(HEX)

ADC Code(HEX)

1

0.0

0079

0062

008E

0086

2

0.5

19A2

1A92

199C

1ADE

3

1.0

333E

354E

3382

35B4

4

1.5

4CDA

4FCA

4D30

5026

5

2.0

667A

6A94

66B8

6AB6

6

2.5

801C

8544

805A

857C

7

3.0

99B0

9FE6

99F8

A020

8

3.5

B356

BA7C

B38A

BAD8

9

4.0

CCE6

D53C

CD54

D5B4

10

4.5

E68C

EFF6

E68E

F022

11

5.0

FFFE

FFFE

FFFE

FFFE

If you need more information and test, let me know. 

Thank you.  

  • Hello Dino,

    Thank you for your post.

    The ADS8354 is intended for differential input signals. As such, the input common-mode voltage must be between [VREF/2 - 100 mV to VREF/2 + 100 mV] for +/-VREF range or between [VREF - 100 mV to VREF + 100 mV] for 2x VREF range.

    If the application requires the negative ADC input (AINM) to be connected to GND, the customer should use the ADS8353 instead. This device is pin-for-pin compatible and can be dropped into their current PCB design without any change.

    Best regards,

  • Hello Ryan, 

    Thank you for your recommend. 

    I have tested again using differential input.    

    - For CFR.B9 = 1, FSR_ADC_A = ±2 × VREF_A and FSR_ADC_B = ±2 × VREF_B

    - CFR register : "8240" (Hex) , use internal reference , REFDAC : 1FF ,  Vref = 2.5V 

    I also expected the result of ADC output to be 8000~7FFF. but I got a result like below. How can we get a result  8000~7FFF in response to 0~5V input? How can I debug this issue?  Please review again and let me know your opinion. 

    AVDD = 5.073V, REFDAC 1FF

    AINP

    AINM

    ADC Code(HEX)

     

    0(0.125V)

    5.0

    0C86

     

    0.5

    4.5

    3334

     

    1.0

    4.0

    664C

     

    1.5

    3.5

    9978

     

    2.0

    3.0

    CD08

     

    2.5

    2.5

    01A2

     

    3.0

    2.0

    33F8

     

    3.5

    1.5

    66BC

     

    4.0

    1.0

    991C

     

    4.5

    0.5

    CD8E

     

    5.0

    0.0

    FEE0

     

    If the customer use single ended input with ADS8353, Can I get a expected result(8000~7FFF) in response to 0~5V input? 

    Thank you. 

  • Hello Ryan, 

    I am sorry to push you. but the customer has to decide using ADS8354 or not until next week.

    If ADS8354 is not suitable device to get result desired by the customer, we have to promote other ADC device until tomorrow. please let me know your opinion. 

    Thank you. 

  • Hello Dino,

    There seems to be something wrong with the customer's differential input setup. The register settings you described are correct for 2xVREF operation. The full-scale input range for both ADC A and ADC B will be from -5 V (0x8000) to + 5 V (0x7FFF). The input common-mode voltage ((AINP+AINN) / 2) remains equal to 2.5 V (VREF) for all measurements, which is also correct.

    Is the customer able to probe the input voltages directly next to the ADC input pins and verify they are as expected? If it is DC, they can just verify the individual input voltages with a DMM. Else, if it is AC, then please provide a scope capture showing AINP and AINN for one channel to verify that the two sine waves are truly out of phase.

    It is also possible that the customer is experiencing a data corruption issue due to some SPI timing violation. Could you please suggest that the customer try the following experiments:

    1. Short AINP to the supply (AVDD) and short AINN to GND. This should give a consistent output code of 0x7FFF.
    2. Swap the inputs and short AINP to GND and short AINN to AVDD. This should give a consistent output code of 0x8000.

    Best regards,

  • Hello Ryan, 

    Thank you for your strong support. It's urgent issue so please review below result and let me know your opinion. 

    1.There seems to be something wrong with the customer's differential input setup. 

    => Which point do you think is wrong? 

    2. Currently, the customer used DC input and input voltage value mentioned above result table is a value of probing the input voltages directly next to the ADC input pins.   

    3. please refer to the below result regarding your suggestion. we got a result of 0xFFFF in below both cases.  

     - Short AINP to the supply (AVDD) and short AINN to GND. This should give a consistent output code of 0x7FFF.

     - Swap the inputs and short AINP to GND and short AINN to AVDD. This should give a consistent output code of 0x8000.

    Thank you. 

  • Hello Dino,

    I asked to verify the differential input setup because the output codes do not seem to correlate to the input voltage. For example, in the previous results table:

    • 0.5 V - 4.5 V = -4 V => this gives an output code of 0x3334 (13,108 decimal)
    • 3 V - 2 V = 1 V => this gives an output code of 0x33F8 (13,304 decimal)

    Is the customer treating the output data as binary two's complement? Below I tried shifting the data down by subtracting 2^15. This seems to make some more sense, but a few samples in the middle are still incorrect.

    Can you ask the customer to share a scope capture of the data being read using the previous full-scale setup? We can use this to verify that the data is being clocked out correctly and matches what the host controller is reading. Please tell us which interface mode the customer is using.

    Best regards,

  • Hello Ryan, 

    Thank you for your strong support. 

    Thanks to your idea of shifting the data down by subtracting 2^15, I solved the problem. the main factor is SPI communication error missing first bit of data. 

    Again, Thank you.