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.

ADS124S08: Configuration questions

Part Number: ADS124S08

Hello, TI

I have been attempting to learn how to use the ADS124S08 for a larger project. The method of communication I want to use is relatively simple: the Microprocessor sends a command over the SPI interface to read data, the ADC responds with a single reading, and then that's that until another command byte is sent. I've been trying to send two commands, read_Data and Start (well, and write register, but that's working flawlessly). When I send a read command, nothing seems to happen. The unit records all 0s, and the SPI MISO channel remains low. When I send a start command, the MISO channel starts talking continuously, which makes it difficult to tell if the recorded data is valid or not. 

I'll include the register settings I'm using below. In the meantime, I have several questions:

 - Does the ADC need to recieve a start command before it can provide readings with the read command?

 - When it comes to single-shot conversion mode, what is the difference between the read and start commands? It's my understanding that the read command should only send the reading once, whereas the start command will send the same data byte over and over again, but as previously stated, the read command sees to be doing nothing. 

 - At the moment, I have the SPI clock running continuously, which might be the source of some or all of my woes. How would it work for me to only turn the clock on when I wanted to send a command, and turned it off once I got a reading?

  - It's not really a question, but any insight onto why a read_data command is coming up blank would be appreciated. 

As promised, here are the registers I;m using. Any I don't mention, just assume they're default.

Register 2: 0x24 (inputs and outputs, I know these are correct)

Register 5: 0x06

Register 3: 0x0A

Register 6: 0x07

Register 4: 0x14 or 0x34. 0x20 controls whether it's in single shot or continuous conversion mode. I'vee tried both, they both seem unfruitful

Register 9: 0x12

Register 7: 0xF5. 

  • Hi Cassius Peter,

    A schematic would be helpful for analysis, and oscilloscope or logic analyzer shots of the communication would also be helpful.

    When I send a start command, the MISO channel starts talking continuously, which makes it difficult to tell if the recorded data is valid or not. 

    This is why it would be helpful to see shots of the communication.  The ADS124S08 will only clock out data if the host processor is sending out SCLKs.  If you are sending continuous SCLKs, then how are you determining the intended action.  The ADS124S08 requires communication that is byte incremented and commands must start and stop relative to a specific SPI frame or then communication will get lost by the ADC.  Are you using CS?

     - Does the ADC need to recieve a start command before it can provide readings with the read command?

    The ADS124S08 powers up to a low-power default state.  To start conversions you can control through the START pin or the START/STOP commands.  The pin takes precedence over the commands so if the START pin is high the device is in conversion mode and the START/STOP commands are overridden.  To use the commands, the START pin must be held low.  So at some point to start the ADC converting either the START pin must be pulled high, or if the START pin is low the START command must be issued.

     - At the moment, I have the SPI clock running continuously, which might be the source of some or all of my woes. How would it work for me to only turn the clock on when I wanted to send a command, and turned it off once I got a reading?

    It is not clear to me why you are using a continuous SCLK.  Most microprocessors have an SPI peripheral that can be used.  The communication is framed with the CS.  CS is then held low throughout the entire desired communication.  It would be possible to use a continuous SCLK as long as you frame the communication with CS following the required SPI communication as shown in the datasheet.  For example one frame of data for sending the START command would be to set CS low, issue 8 and only 8 SCLKs while sending the START command as data and then returning CS high before the next SCLK.  The RDATA command would be similar except now you would hold CS low for 32 SCLKS (8 clocks for the command and 24 clocks for the data).  If you append the data with CRC, then you will need to add an additional set of SCLKs to match the length of CRC.  Same thing is true if you have enabled the STATUS byte.

    - It's not really a question, but any insight onto why a read_data command is coming up blank would be appreciated. 

    If you issue the START and immediately use the RDATA command, the result will be '0' as you have not waited for the conversion to complete before attempting to read the result.  A high to low transition on DRDY signals a conversion has completed and is ready to be read from the ADC.

    Best regards,

    Bob B