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.

ADS1248: Multiplexing query

Part Number: ADS1248


Hi there,

I wonder if you can help me understand how to use the multiplexing facility on the ADS124X.

Here's some pseudo code explaining what I'm currently doing:

//Setup the first channel:
Write registers (0x40)
Write four registers (0x03)
Set +ve input to AIN0, -ve input to AIN1 (0x01)
Disable VBIAS (0x00)
Set gain & rate (0x05)
Delay 1ms for MUX write

RDATA (0x12)

loop while DRDY==HIGH

Store byte 1 (0xFF)
Store byte 2 (0xFF)
Store byte 3 (0xFF)

//Setup the second channel:
Write registers (0x40)
Write four registers (0x03)
Set +ve input to AIN4, -ve input to AIN5 (0x25)
Disable VBIAS (0x00)
Set gain & rate (0x05)
Delay 1ms for MUX write

RDATA (0x12)

loop while DRDY==HIGH

Store byte 1 (0xFF)
Store byte 2 (0xFF)
Store byte 3 (0xFF)

I have 2 questions about this.  First, is it necessary to send an RDATA for each channel?  When START is pulled HIGH does the ADC perform a conversion on the currently selected channel, or on all channels simultaneously?

Secondly, From the datasheet section 10.1.8 it suggests that I could speed up and simplify this by sending the commands needed to change the channel while the data is being read, i.e.

Store byte 1 (0x40)
Store byte 2 (0x00)
Store byte 3 (0x25)

But when I try this I get a zero value out.  Have I misunderstood?

Many thanks,

Foz Hughes