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.

ADS1258 channel data read (Register format)

Other Parts Discussed in Thread: ADS1258

Hi all,

I am using ADS1258 in my multi-channel continuous acquisition system. Till date I have been doing channel data read direct to fetch all the conversion results. The DRDY pulse is used to interrupt my controller which reads data on every DRDY pulse. Hence for an 8 channel system there would be 8 ISR executions per round. To reduce the number of times the ISR is triggered, I count pulses (using DRDY to trigger a timer peripheral of the controller) and on the 7th trigger I bring the down the START line and on the 8th I read the conversion results from the channel registers.

Now the dilemma is how do I request ADS1258 to send me the results of a specific channel? The COMMAND AND REGISTER DEFINITIONS section (page 34, SBAS297E June 05, Rev Oct 07) in the reference manual says that C2:C0 be 001 for channel data read command. It also says that MUL bit should be set and rest of the bits are 'don't cares', but I couldn't find anything on specifying the required channel.

Say I want to read REF (External Reference) assuming that it is enabled in SYSRED. How do I do it?

  • MM, 

    You are using auto-scan mode in the channel data read direct mode. When you use Auto-scan mode, you set which channels are to be converted by previously writing to one of four registers:  MUXDIF, MUXSG0, MUXSG1, and SYSRED. Then, depending on which channels you enable/disable, they will be converted and output in the order indicated in Table 11, channel ID priority. 

    Looking at your current configuration, you are using the channel data read direct to fetch the conversion results of eight channels by monitoring the /DRDY pulse. You state that on the 7th trigger, you bring down the START line so stop the conversions after the 8th channel is converted. If you have set the REF bit in the SYSRED register to be read back, it will after the 8th conversion, so you would need to hold START for an additional /DRDY pulse. Any settings to the SYSRED register will only take effect in Auto-Scan mode. You cannot use the SYSRED registers in Fixed-Channel mode. 

    The ADS1258 is a single delta sigma Analog to Digital converter with a built in mux to allow for up to 16 single ended inputs. Therefore, the ADC only has one output register that holds the data for the most current channel that is converted. You cannot run multiple conversions in auto-scan mode over a variety of channels and then read back the converted data of a specific channel at a later time. When the /DRDY pulses the data for the channel that was just converted is ready. Once /DRDY pulses a second time, the previous data in the output register is overwritten.

    If you want the ADC to convert a specific channel and relay the results, you may want to look into Fixed-Channel mode. Fixed Channel mode allows you to select which input channels (AINP and AINN) you would like to set the multiplexor to convert. You simply need to write to the MUXSCH register to set your channel once the CONFIG0 register is set for Fixed-Channel mode. In this mode, you cannot read back the reference voltage in SYSRED. SYSRED is only available in Auto-Scan mode.

    Regards,

    Tony Calabria

     

  • Thanks a bunch Tony, for your quick reply...

    So I will need to monitor all the DRDY pulses and read back the converted data using either of the methods. Wouldn't be much of a problem I guess.

    Thank you once again.