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: How to disable or avoid idle/standby mode

Part Number: ADS1258
Other Parts Discussed in Thread: ADS127L11, ADS127L18, ADS127L14, ADS8900B

Tool/software:

I need to sample a single analog input at 30kHz or 60kHz (or an exact rate close to that), and that needs to be an exact sample rate controlled by the START signal. For discussion that's about 33us or 17us between conversions.

So, I'm using fixed channel conversion, and I have the START signal controlled by an external timer in the MCU. For the 30kHz, I'll set DRATE to 31250 SPS, and for 60kHz, it'll need to be 125000 SPS.

At 31250SPS, the conversion should be finished in 32us, and I want to start the next conversion at about 33us, only 1us later. If I'm reading the datasheet correctly, and if the converter goes into standby too quickly, I may have a 50us delay (table 11)? Is there a time window before the converter drops in to standby, or can I keep the converter active for that 1-2us so that it starts on time. It seems a little absurd to insert a 50us delay into a 33us conversion process. I cant imaging that it jumps from 32us to 82us. I would think the part is capable of sampling at 30kHz. How would I configure the part to do this. Would a longer/higher duty cycle START pulse help delay this issue. (e.g. 25us every 33us). In short, I want to sample at exactly 30kHz and 60kHz determined by the MCU. Is that possible?

  • Hi Lary Cotten,

    If you only need to measure 1x channel, why are you using the 16 channel ADS1258?

    The first conversion will always have a longer latency time compared to subsequent conversions on the same channel. This is shown in Figure 56 below. So if you want to measure 1x channel repeatedly, you may have to discard the first sample (or just know that it will not be available at a frequency of 30/60kHz).

    Ultimately, it's not really clear to me what you want to do. Do you need to measure a single input forever at 30/60kHz? Are you measuring that input continuously, or are you going to start/stop the process? If so, why? If not, are you measuring anything else i.e. switching the multiplexer channel, or will you always be on the same input?

    We can probably come up with a solution, it just needs to be more clear what you are trying to achieve.

    -Bryan

  • Most of your questions don't seem particularly related to the issues, but I'll answer them anyway in case it helps to work around this particular "quirk" in the part. I'm using the multiplexer to switch between different differential input filters corresponding to four different sampling rates (I didn't mention two slower rates). Once a user selects one of the rates, I want to measure continuously and indefinitely at that rate. I wouldn't mind an initial delay or throwing away a first sample, but then I want my continuous 30kHz (or 60 etc.)  based on a 30kHz start signal which the MCU keeps in sync with the signal source I'm measuring. The ADS1258 has this nice START signal so I can, in theory, control the exact sample rate. A free running ADC doesn't help me. Inserting a 50us break between 33us sample or 17 us sample seems almost like a design flaw. For what it's worth, I actually have 6 of these parts on the board for measuring 6 signals simultaneously. 

  • Hi Lary Cotten,

    As I mentioned, there will always be an initial latency associated with the digital filter. This is shown in Figure 56. So whenever you hit START, you will be subject to the time shown in Table 11 for the first conversion. If you keep the START pin high, second and subsequent conversions will be available at approximately 1/data rate (within the tolerance of the clock you use). Then, every time you re-sync the START pin, you will be subject to the delay.

    So if you switch to your channel that requires 30 kHz sampling, then pull START high and keep it high, your first sample will be available at 74.125us (assuming speed mode = 10b, fixed channel mode, CHOP = 0b, DLY = 000b, fCLK = 16 MHz). Then, you will automatically get subsequent samples every 32us (again, within the accuracy of your oscillator), which seems like what you want to do

    -Bryan

  • I will have to abandon the TI part as you've clearly stated that this part only supports the 4 built in sample rates. Or, more to the point, the START signal cannot be used on this part to control the sample rate, without the unfortunate 50-500uS delay (table 11) for every single sample. This is quite disappointing. Does TI have a 24 bit part that will let me control the sample rate up to at least 62kHz? I don't just need a precise controlled sample rate, I need several converters to be simultaneous (withing a few clock cycles) 

  • Hi Lary Cotten,

    So it sounds like you want to restart the conversion for every sample, is that correct? I was under the impression that you wanted to get data out continuously i.e. without restarting the device, which is what the ADS1258 does assuming you remain on a single channel, sample in Fixed Channel Mode, and keep the START pin high

    Instead, you are going to generate a 30 kHz (or 60 kHz) SYNC signal that you send to multiple ADCs. This SYNC signal would connect to the ADC START pins, so the conversion process would restart at the frequency of the SYNC signal

    If that is the case, then I agree the ADS1258 will not work for this application. This ADC has a sinc5 filter, which requires ~5 conversion periods to provide settled data (see this app note for more info: https://www.ti.com/lit/pdf/sbaa535)

    You can consider the ADS127L11. This is a 24-bit, 1 MSPS, 1-ch delta-sigma ADC. I included one of the conversion latency tables below (Sinc4+Sinc1 filter, which is one of several options), where the leftmost column shows the latency time from triggering the START pin to DRDY dropping low. You can also scale the input clock frequency if you want to dial in the latency time to a specific time i.e. 16us for 62.5kHz

    We also have 4-ch and 8-ch simultaneous sampling versions of this device, if that works for your application (it sounds like you wanted multiple ADCs to be synchronized). These are ADS127L14 and ADS127L18, respectively

    -Bryan

  • Thanks for the info. No, I don't want to restart the conversion process each time. That would waste a lot of samples and lower the sample rate considerably. I want to CONTINUE the existing sample process, but in sync with my sample clock. Each sample would be the next sample for the sake of the filters, but each new sample would be delayed a bit till the next "sync" start pulse. I would think that's why they have a "start" signal and not an "enable" or "standby" signal. I might be able to control the master clock, but wouldn't dropping the clock to ~8MHz to get ~61kHz would probably also slow down the max SPI data rate?

  • Hi Lary Cotten,

    So, the START pin on the ADS1258 restarts the conversion every time. This is effectively true for all delta-sigma ADCs, because the filter has to flush if the conversion process is restarted (which is what a START or SYNC pin does - it starts the conversion at a known instant so the output data is available in a deterministic amount of time).

    And yes, reducing the MCLK period on the ADS1258 also reduces the minimum SCLK period, since tSCLK >= 2*tMCLK

    If you really want the start of conversion to be synchronized to an external signal for every conversion, then you will have to operate the device in single-shot mode. Again, this will restart the conversion process each time, but if you need the timing to be continuously resynchronized then I don't see another way. The devices I mentioned in my last post (ADS127L11) are good for this purpose, as they operate much faster and can settle much quicker i.e. within the time period you have described. The SCLK speed is also independent of the main clock speed, unlike ADS1258

    You could also use a SAR ADC, as this is effectively how a SAR ADC operates where you use the CONVST pin to toggle between acquisition and conversion modes. See ADS8900B as an example of a high resolution, higher speed SAR ADC (20-bit, 1 MSPS)

    -Bryan