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.

ADS1299: ADS1299 interference with other SPI slave

Part Number: ADS1299

Hi

  I have a setup in which an ADS1299 is connected to an MCU (pic32) which acts as an SPI master to the ADS and a few more slaves, including an ESP32. The ads with slaves other than the ESP32 works perfect.

  What happens is that, as soon as I connect the MISO line from the ESP32, the ADS's registers go to 0.

  Note that if the MISO line from the slave is not connected (but MISO, SCLK and SS are) the ADS sends good data and everything works ok, i.e. the ADS by itself works fine, I've even got it to work (and collect good data) with this setup in the past, but it is unstable and it sometimes stops working and doesn't stat again.

  I've tried multiple modes for the slave, I've connected both grounds and tried as many configurations as I could. If I don't start SPI on the other slave the ADS also outputs good data.  

  Any advice would be wholeheartedly appreciated.

Thanks

David

  • Hi David,

    Thanks for your post and welcome to the forum!

    When you say the registers go to 0, do you really mean that the data output from the ADS is only 0's?

    Since ESP32 is not a TI part I can't offer much support here - but check to see what the output drive strength of the device is. It could be that the ESP32 has an internal pulldown of some sort which makes sure that the line is clear.
  • Hi Alex

    Thanks for replying.
    Yes, you're right, I meant to say that it outputs only 0's (it does that it does that while I'm querying the registers, but regular data output is also 0s).
    I've turned the line to high impedance on the ESP32. The other slaves on the bus still work OK, it's just the ADS that doesn't (there are 4 slaves on the bus, the ADS, an SD card, an accelerometer and the ESP, these work in SPI modes 1, 0, 3 and 0, respectively).
    The fact that it "sometimes works" is puzzling me.
    Any ideas?

    Best
    David
  • If I had to guess there's something in the ESP32 that's holding the line low, but it could be one of the other slaves.
    Do you have another port you can open on the pic32 to try different combinations of slave devices sharing the same port to narrow it down?
    Or alternatively, just try putting the ESP32 on another port.
  • Figured out the problem. Turns out the ESP32 uses too much current on the gpio pins and that was making the ADS stop sending data. Lowering the drive capability of the ESP32 on the MISO pin to level 1 (from the default 2) solved this.
  • Interesting! Happy to hear that you resolved the issue!