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.

ADS8885: ADS8885 and C Teensy

Part Number: ADS8885

dear Developers, programmers,

I have a question referring to the ADS8885, and I am trying to understand the interface Diagram for two devices in daisy chain Mode with a busy indicator.

I am trying to understand the ADS8885 from the datasheet.

II am currently using a teensy3.2 with a 24MHz SPI bus to talk to it.

so to get the idea right i should drive DIN(MISO) and CONVST LOW/DOUT(MOSI) for conversion and have to wait for the completion of conversion.

then it is decribed that both adc in the chain loads its own conversion result into the internal 18 bit shift register.

the question is more how to wright it in code? I have whole set on SPI commands. I would greatly appreciate some guidance in these nice IC's.

SPI.begin()

SPI.usingInterrupt(interrupt)

SPI.beginTransaction(SPISettings(clockspeed, MSBFIRST, SPI_MODE0)), what do I set here ? and what Binary do I get to set here and where does it go into the ADS8885=?

digitalWrite(SSpin, level)

SPI.transfer(data)

SPI.endTransaction()

Best regards

Bastiaan

  • Hi Bastiaan,

    We are looking into this and will get back to you.
  • thanks for taking your time and looking in to it.

    Best

    Bastiaan

  • Bastiaan:

    This particular device does not have user controllable registers. Your mode of operation (Daisy Chain with Busy) is selected by having DIN = low while CONVST goes high, then CNVST going low before the end of the conversion enables the BUSY indicator. DOUT from the last ADC in the chain is wired to your controller's data input and also the interrupt input pin. When that interrupt is triggered, the read operation can begin.

    Therefore, you do not need to write anything to the device, and the digitalWrite() function should not be necessary. Instead, after triggering a conversion, you simply need to wait for the interrupt. The interrupt routine reads the data. As you mentioned, each device clocks out the 18-bit conversion result of all devices in the chain, starting with the MSB of the first device and ending with the LSB of its own result. The output data will contain 18*N bits, where N is the number of devices in the chain.

    Does that help?
  • Dear Bryan,

    thank you for the reply.

    that solved the question.

    tx have nice weekend.