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.

ADS8866: How to read at 100ksps over spi

Part Number: ADS8866

Tool/software:

Hi, im using ADS8866 to sample a signal (using ESP32-S3) and im able to sample at around 40 ksps by fully utilizing a single core.  The problem is im sending a single spi read request in a loop.  I have optimized as far as I can so im able to reah this sampling rate (40ksps).  I dont see any way of reading the data from the chip without sending multiple spi transaction, one for each sample.  Am I missing something? How can I read multiple samples without loading the cpu so it can be used for other tasks as well?

Best regards

  • Hi Eysteinn,

    Thanks for your post and your patience as I must have missed this post. I am not familiar with this ESP32-S3 MCU, but one general tip to note would be to try and reduce the interrupt time. That is, try not to do any time-consuming operations like printing the data that is read. This will allow the loop to complete faster. Another thing, if your MCU has it, is to use DMA to transfer the SPI read data to memory (where you can post-process it), thus allowing the CPU to return to SPI reads faster. I would suggest reaching out to ESP32 support as well.

    Best regards,

    Samiha

  • Hi Samiha,

    Thank you for your reply and attention.  I'm not sure how I can read continuously (for example using DMA) since I need to trigger a write sequence on the ADS8866 for each sample. Or am I misunderstanding something?

    Regards,

    Eysteinn

  • Hi Eysteinn,

    To read ADC data, you have to provide SPI SCLKs, this can be done using DMA send/receive buffers every cycle, for example. This may be faster as DMA can move the received data without CPU intervention.

    Best regards,

    Samiha