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.

ADS8688 SPI Clock

Other Parts Discussed in Thread: ADS8688

Hi,

I tried to read a register such as 01h (01h if leave as default setting will be FFh) from an ADS8688. The data return from the register always missing the last bit (Always = 0). I looked on the scope and saw that SDO line response right after the 16th falling edge of the clock and end at the same time of the falling edge of the 24th clock. Hence, the MCU always see that as 0 from the MISO.

Another scenario, I tried reading register 05h which I configured with 05h (binary = 0000 0101), what I received was 0Ah (0000 1010) 

I tried reading register 05h which I configured with 06h (binary = 0000 0110), what I received was 0Ch (0000 1100)

This time, the received data is shift left by 1.

Is this a normal behavior of the ADS8688 or it is the issue of the MCU I'm using ? 

Thanks.

  • Hi Dong,

    What's the Phase and Polarity you configured for SPI from MCU? Can you upload the timing you got from scope also schematic? thanks.

    Best regards

    Dale

  • Hi Li,

    I have tried CKPOL = 0 and CKPHA = 1, CKPOL = 1 and CKPHA = 0, CKPOL = 1 and CKPHA = 1. Those cases, I would be able to communicate with the ADS8688. And all the data I received are the same for any of those case.

    Picture is showing when I request to read register address 01h. The data I go is FEh (11111110)

    line 1 = CS

    Line 2 = SDO

    Line 3 = SCLK

  • Hi Dong,
    CPOL = 0 and CPHA = 1 should be used, because idle status of SCLK is 0, and also the data is samplined at the 2nd edge of SCLK(falling).
    According to your timing of scope,the data should be FFh,not FEh, because the data is sampled at the rising edge and data transient is happened at the falling edge.

    Best regards
    Dale
  • Hi Li,

    As I mentioned, I have also tried with CKPOL = 0 and CKPHA = 1. The receive SPI register always give the data equal to FEh.

    According to datasheet figure 1, the require tHT_CKDO has minimum of 10ns. The graph showing the SCLK and SDO lines are falling at the same time and that could be the reason the MCU don't catch the last bit.

  • Hi Dong,

    The graph you uploaded here is showing CPOL = 0 and CPHA = 0, it's not CPHA = 1, so they are falling at the "same" time. Please check again.

    Best regards

    Dale

  • It is CPOL=0 and CPHA =1. It just the picture doesn't show the completed signal.

    As I mentioned, I did try all of the SPI modes and the only mode doesn't return any data (doesn't work) is CHPOL = 0 and CHA = 0

  • Hi Dong,

    Can you share the schematics?  thanks.

    Following picture a stanard SPI timing, for your reference.

    https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

    Best regards

    Dale

  • Hi Li,

    I'm just testing the ADS8688 on a breadboard with few coupling capacitors tied to the AVDD, DVDD and reference.

    I did not enable the weak pull up resistor on the SDO line. I don't know if this could be the reason the SDO line falling too quick. I will try it. 

  • Hi Dong,
    You can try but generally it's not necessary to use external pull-up resistors. Most likely, the delay is time different on the digital lines if your SPI's configuration is correct(CPOL:CPHA = 0:1), especially for SDO and SCLK. It can be caused by any additional devices, different wires or different capacitance on these digital lines between ADC and MCU, please check them. A breadboard test for ADC is not a good idea, please make a pcb if possible.

    Regards
    Dale
  • Hi Dong ,
    I have also a problem with ADS8688, I use (CPOL:CPHA = 0:1) but I didn't recieve response from ADS after any resquest , I suppose that I have problem with NSS Configuration on STM32F3 Micotcontroller.
    So how do you manage the NSS pin (Hardware or by software)?
  • Hi Mac

    I'm not using the STM32F3 MCU. I'm using C8051F120 MCU from Silabs. However, this is how I configure the 8051 and I believe the concept should be the same for your MCU.

    In my case, I select the MCU to be 4-wires Master mode.

    CPOL = 0 and CPHA = 1,

    SCLK, SDI and NSS pins should be configure as Push-Pull output.

    SDO must be configure as Open-Drain. If your MCU has a weak-Pull Up enable, make sure you disable it.