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.

ADS1246: Triggering conversions with external MUX; variable PGA

Part Number: ADS1246
Other Parts Discussed in Thread: ADS1248

I'm having trouble figuring out how to configure the ADS1246 for my application.  I have a 5-channel round robin on an external multiplexer that I'd like to measure, with the PGA set to 4x for the first 4 channels and 1x for the 5th.  I'm looking for the simplest answer that should work.

What I think should work is:

  • Set START high and leave it there forever
  • Send 0x4A 00 08 to activate DOUT/DRDY mode.
  • LOOP: Set the multiplexer to a channel
  • Drop CS, send either 0x43 00 20 (for the 4x channels) or 0x43 00 00 (for the 1x channel), raise CS.
  • Drop CS, send 0x04 to restart conversion, raise CS
  • Drop CS, which should cause DOUT to go high.
  • 200ms after that SYNC command DOUT should go low to indicate that the conversion is ready.
  • Send 0xFF FF FF FF while reading in the conversion result.  DOUT should provide results during the 3 and go high on the 4th.
  • Go back to LOOP

What I'm getting is wildly inconstant ADC readings on signals that should be largely stationary.  Am I just grossly misunderstanding how to use this chip?

  • Hi Rob,

    Some questions for you:

    • What data rate are you running at?
    • And are you looking for DRDY to drop low (or pulse high-low) to know when data is ready? Or are you using an internal timer to count the conversion latency?
    • Do you have logic analyzer data to show what is being sent to and received from the ADC? Can you confirm that the actions you are expecting e.g. DOUT/DRDY going high after the last byte, etc. are actually occurring?
    • Do you have a valid reference voltage applied to the ADC?

    If you are writing to the SYS0 register each time through the loop, you do not need to send the SYNC command per the information below.

    Just out of curiosity, why not use the ADS1248 that has a mux already built into the ADC, in lieu of using an external mux?

    -Bryan