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.

ADS1261: Clarification on final DOUT bit availability

Part Number: ADS1261

Tool/software:

I was having an issue reading the final DOUT bit from ADS1261 to ESP32S3, it was always coming back LOW. Using a picoscope:

We can see that after the final falling edge of SCLK (RED), DOUT (BLUE) goes LOW immediately.

Looking at the datasheet, we can see that the valid time that DOUT is held for after final falling clock edge is th(SCDO2)


th(SCDO2) minimum is 15ns, so we must account for this possibility.
Using Espressif IDF Framework, I cannot determine when precisely data is read in, but I do have it set to SPI Mode 1 as per ADS1261 datasheet.

Now, I found a workaround. By setting my SPI clock frequency to 50MHz, the time from the falling edge of the clock to the next rising edge is 10ns.
This forces the ESP to "read the bits faster". This means that the ESP32S3 is reading within the minimum 15ns time.

However, looking at the datasheet again, the minimum stated SCLK period is 97ns. Using 50MHz, the SCLK period is 20ns.

Despite this, it still works and I haven't seen any broken communication yet. However, I would like to operate within the specified timing requirements.

I would like some clarification that my thoughts are correct. It seems strange that this chip would allow SPI communication down to 1kHz but on the last falling edge would force you to read the bit within 15ns or risk incorrect data.

  • Hi Samuel Hollins,

    First, you should not operate the SCLK outside of the operating conditions. The maximum SCLK frequency as you noted is 10MHz, anything beyond that and the performance / operation is no longer guaranteed.

    Most controllers can easily meet the 15ns hold time so this is generally not an issue, but we have seen some that cannot. In those limited cases, at least one solution was to modify the controller firmware to be able to capture the last bit in the allotted time, but you would have to reach out to the controller manufacturer for more information about that

    I am not sure if this would work as I have not had a chance to test it, but you might be able to send additional clocks to gate the DOUT-to-DRDY behavior, providing a full SCLK period to capture the last bit. You could also turn on the CRC and then just ignore the output since the CRC is the last 8 bits on the data.

    Also, do you have isolation between the ADC and controller? This will add propagation delay that could impact the timing

    -Bryan

  • Thanks Bryan,

    I have gone with the CRC option for now and have reduced my SCLK to 10MHz.
    My breadboard setup couldnt have helped and I have cross-talk between my digital lines.

    Many thanks,
    Sam