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.

ADS8668 unpredictable behaviour

Other Parts Discussed in Thread: ADS8668

Hello, 

I'm quite new to SPI, i have programmed it in LABview and operating from a NI 7852R FPGA (Master) and 1 ADS8668 (Slave) component. I tried to configure it, but when i send input data, ADC respond with some data back, but they are not relavent to anything (unexpected). Here i captured the behaviour, please have a look and let me know what i have been doing wrong. I have also attached the ADC Skematic.

Thanks.

-

MSB to LSB




MOSI			MISO	

0000001 0 00000000	0000000000000000 (R)
0000001 1 00011110	0000111100000000 (W)
0000001 1 00011100	0000111000000000 (W)
0000001 1 00011000	0000110000000000 (W)
0000001 1 00010000	0000100000000000 (W)
0000001 1 00000000	0000000000000000 (W)

0000000 1 00000000	0000111111111111 

0000001 1 00011110	0000111100000000 (W)

1100 0000 0000 0000    	0000111100000000 (MAN_CH_0)
1100 0100 0000 0000	0000111100000000 (MAN_CH_1)
1100 1000 0000 0000	0000000000000000 (MAN_CH_2)
1100 1100 0000 0000	0000000000000000 (MAN_CH_3)
1101 0000 0000 0000 	0000111100000000 (MAN_CH_4)
1101 0100 0000 0000	0000111100000000 (MAN_CH_5)
1101 1000 0000 0000	0000000000000000 (MAN_CH_6) 	


1010 0000 0000 0000	0000000000000000 (AUTO_RST)








Jay 

  • Hi Jay,

    Thanks for choosing our SAR ADC. I’m trying to understand what you are doing and what you want to do from your MOSI commands without more information:

     

    MOSI                               MISO    

    0000001 0 00000000      0000000000000000 (R)    -- Are you trying to read “AUTO_SEQ_EN” register? How many SCLKs you sent for this operation?

    0000001 1 00011110      0000111100000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00011110”? How many SCLKs?

    0000001 1 00011100      0000111000000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00011100”? How many SCLKs?

    0000001 1 00011000      0000110000000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00011000”? How many SCLKs?

    0000001 1 00010000      0000100000000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00010000”? How many SCLKs?

    0000001 1 00000000      0000000000000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00000000”? How many SCLKs?

     

    0000000 1 00000000      0000111111111111      -- Nothing you did with the data on MOSI

     

    0000001 1 00011110      0000111100000000 (W)   -- Are you trying to write “AUTO_SEQ_EN” register with “00011110”? How many SCLKs?

     

    1100 0000 0000 0000   0000111100000000 (MAN_CH_0)   -- How many SCLKs you sent for this operation after /CS falling edge?

    ……

     

    Generally, it will be very helpful to understand if the timing screenshot for SPI signals can be uploaded(SCLK,SDI,SDO and /CS). Thanks.

     

     

    Regards

    Dale Li

  • Hi Dale,

    Thanks for your reply. The problem which i posted in the earlier post has been resolved, i guess that the above observation is because of MOSI commands were sent out at wrong clock edge.

    But now i'm stuck with a different issue. When i write try to configure,

    MSB to LSB
    EX :1
    AUTO_SEQ_EN 0000001 1 00101101 - trying to activate channel 5,3,2,0 with 16 clock pulse.

    Output was "00100000"

    EX :2
    AUTO_SEQ_EN 0000001 1 00111101 - trying to activate channel 5,4,3,2,0 with 16 clock pulse.

    Output was "00111100"

    According to the data sheet, it should write back exactly what was written on to the program registers. So my inference is that SDO of ADC can't able to switch back to HIGH once it falls from HIGH to LOW.

    And after writing a configuration value, when i read the program register, its all set back to default value.

    EX :3

    AUTO_SEQ_EN 0000001 1 00101101 - trying to activate channel 5,3,2,0 with 16 clock pulse.

    Output was "00100000"

    AUTO_SEQ_EN 0000001 0 00000000 - trying to read back

    Output was "11111111"


    When i try to read the ADC value from the a input channel manually - where 3V dc input was given.

    EX :4

    MAN_CH_0 11000000 00000000 - trying to read the ADC value from channel 0

    Output was "111111111111" - 12 bit high

    the same ouput was thrown for every channel i read manually and also through AUTO_RST

    Clock pulse settings:

    354 ns - clock high time
    354 ns - clock low time

    SCLK freq : 1.4 MHz approx

    First clock 235 ns after CS pulled down.

    next 16 clock pulses for MOSI - data send out at raising clock edge

    next 16 clock pulse for MISO - data collected at falling clock edge
     
    After completing 32 clock pulse, it waits for 118 ns and then CS pulled back to High

    I try to capture the screen shot from the Oscilloscope, it seems bit tricky with my new Oscilloscope. Once i get the pics, I will upload it. Please let me know is there anything wrong with my operation ?

    regards,
    Jay

  • Hi Jay,

    I would like to wait for your  oscilloscope plot of SPI signals (CS, SDO, SCLK, SDI) while reading conversion result or programing register. I  recommend you to use Manual Channel Selection and Manaual Scan mode firstly before you try any AUTO_SCAN sequencing mode, which is a good way to check if your register writting and SPI timing are correct or not.

    Please notice that the tHT_CKDO (hold time SCLK falling to previous data valid) spec in the datasheet is 10nS minimum. Therefore, the host can read data during the SCLK falling edge. The SDO is updated with a new value >10nS after SCLK falling edge.Please refer to Figure 1 in datasheet and Timing requirements in 7.6.

    Here are previous posts on this forum for the ADC in the same family, hope they are useful for you.

    https://e2e.ti.com/support/data_converters/precision_data_converters/f/73/p/475784/1712120#1712120

    https://e2e.ti.com/support/data_converters/precision_data_converters/f/73/p/406897/1444915#1444915

     

    Regards

    Dale Li