Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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 SDATAC command never releases DOUT/DRDYn

Other Parts Discussed in Thread: ADS1248, ADS1246

After I configure the ADC properly, I am able to get consistent readings.

If i want to change a configuration register, (say SYS0 for instance), I write the SDATAC and then a wait with DIN = '1'. I never receive a DOUT/DRDYn falling edge.

Si I do not believe the ADC is stopped and a as a result I can not seem to change the SYS0 register.

  • Chris,


    First, what part are you working with?

    If it's something like the ADS1248, you should be able to change a configuration register at any time, regardless of the DOUT/DRDYn falling edge or even if there's an SDATAC command. I would just try a write to the SYS0 register, get a logic analyzer shot of the transaction, read the same register, and get a similar shot. Run these commands consecutively to see if the part responds back with the read register correctly.

    In the pics that you show, it looks as if you've issued an SDATAC. Note that this command does not take effect until after the next DRDYn indication. This means that once the device gets this command, it will still complete the current conversion and update the output register with that conversion, before stopping the updates.


    Joseph Wu

  • I am using ads1248,

    After SDATAC, I never get a falling edge on Dout.

    Is this command necessary before a Read configuration register?

    If not, what is the purpose of the command?

  • Chris,


    I had to look this one up a bit. It's been a long time since we had a similar question.

    The SDATAC prevents data from being updated to the DOUT register. In comparison, when the device is in the RDATAC mode the data is updated to the DOUT register every time it becomes available.

    SDATAC can be useful when you don't have the timing for /DRDY available. This way when you're clocking out DOUT or reading out all the registers, you don't have to worry about another data being available and the device updating your DOUT without you being aware of it. If you're always able to synchronize your transactions to /DRDY this isn't necessary.

    When in SDATAC mode, DOUT is no longer updated at the completion of the conversion. This is also the case for the combined DOUT/DRDY function. DOUT is no longer going to be updated to the /DRDY indication. We were talking about it here and we had thought that it the updates would stop after the next /DRDY indication after the command, but we're not sure. As I mentioned, we've covered this before, so we're looking for the last time we answered this.

    You could test this by running the command and plot both the DOUT/DRDY line and the /DRDY too to see what happens when /DRDY goes low. By issuing the SDATAC command, you may stop the device from updating the DOUT line, but you don't stop the device from converting.

    In short, if you do issue the SDATAC command, you should not expect the DOUT/DRDY function to give you the conversion ready indication and you would need to rely on the /DRDY pin.


    Joseph Wu
  • Do I need to issue the SDATAC before writing or reading configuration registers? If no, why do I need to issue the SDATAC?
  • Chris,


    You never need to issue the SDATAC command when you only want to write to the device. Since SDATAC's purpose is to stop updating the DOUT register with ADC data, it's not going to affect DIN.

    If you want to read a register from the device, you don't absolutely need to write an SDATAC command either, you could just wait for one of the /DRDY indications, and then read the register, then you have a full conversion period to complete the read before DOUT is updated with the conversion data.

    In RDATAC mode, which is default, you could have the case where you did a RREG of all the registers. If in the middle of clocking out the registers, you complete an ADC conversion, the device DOUT is over written with the ADC data, and it would forget that you were in the middle of RREG.

    You issue the SDATAC command to prevent DOUT from being updated automatically with the ADC data. Then you would issue RDATA to read the data or RREG to read registers.



    Joseph Wu
  • Chris,


    A colleague of mine was able to test it out what the DOUT/DRDY does when in RDATAC mode and in SDATAC mode.

    In RDATAC mode, DOUT/DRDY follows the /DRDY. While in SDATAC mode, the DOUT/DRDY stays high (as you've found)/

    When in SDATAC mode, I'd use the START pin or SYNC command to initiate conversions, and wait enough time to get the proper data, or use the /DRDY pin to get the data ready indication.


    Joseph Wu
  • Joseph,

    Will the datasheet be updated to reflect this?

  • Chris,


    We're planning on an overhaul of the ADS1248 datasheet (including the ADS1246) sometime this year. I'll include that as a change.


    Joseph Wu
  • Joseph,

    My post heading inadvertently referred to the ADS1246. I meant to type 1248.

    Did your test use the ADS1248?

  • Chris,

    The ADS1246 and ADS1248 are the same device. The only differences are the features activated through tfinal test.

    Joseph Wu