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.

ADS1292R: Using external clock for respiration modulator

Part Number: ADS1292R
Other Parts Discussed in Thread: ADS1298, ADS1298R, ADS1298RECGFE-PDK

Hello,

I am trying to use an external clock for the respiration modulator on the ADS!292R. I have two PWM signals (one for the modulator and one for the blocking signal) connected to GPIO1 (modulation clock) and GPIO2 (blocking signal) on the ADS1292R. I also have RESP_CTRL=1. Nevertheless, the signal being output by the modulator is much smaller than expected (and appears different than the signal output by the internally generated modulator). I've tried a few different frequencies for the external modulator clock (32kHz, 50kHz, 62.5kHz) and none of them seem to output a proper signal. I've also tried different phase settings for the blocking signal without success. 

I did notice that the ADS1298 datasheet indicates that the internal master clock should not be used when an external modulation clock is used. I was wondering if this is also true for the ADS1292R? If this is the case, what are the limitations on the external master clock spec? Also, the datasheet specifies a tBLKDLY of <5ns. How strict is this requirement? MY tBLKDLY may be ~25ns, but I can't understand how this would affect the modulation signal being output on the ADS1292R. 

Any help would be greatly appreciated. Thank you!

  • Hello Ccent,

    Thanks for evaluating our ADS1292R!

    I'm not sure about the restriction on the internal vs. external master clock when providing external respiration signals. Let me confirm with the designer whether this was omitted intentionally or by mistake.

    Could you share a scope capture of the RESP_MODP and RESP_MODN outputs illustrating the effect? I believe the differential amplitude should still be equal to the reference voltage (VREFP - VREFN).

    Best Regards,
  • We resolved the issue with the modulator, but are not seeing the correct demodulated signal. Can you confirm if the 5ns maximum tblkdly (between modulation clock and blocking signal) could be the problem? How strictly must we adhere to this timing spec?
  • I was wondering if you had any additional insight into the 5ns requirement on the lag between the modulation clock and blocking clock and applied externally. Thank you!
  • Hello Ccent,

    Thanks for the update. I'm still trying to confirm the limit on the tBLKDLY spec with a designer. I think in the end, we chose a limit which we thought gave the best results through empirical testing.

    Intuitively, the reason we block part of the incoming modulated waveform is to reject the initial R-C time constant produced by the switching of the RESP_MODP and RESP_MODN waveforms. What we want to pass through is only the settled voltage that appears at the Channel 1 inputs. The output of the demodulation circuit will reflect how much of the incoming modulated waveform is blocked/passed through (hence the name). If tBLKDLY is too long, you will be passing through some of the initial unsettled waveform, then blocking some of it, then passing through the remaining settled portion.

    The concept is much easier to understand with a plot. See Figure 9 taken from our application note on measuring respiration with impedance pneumography. Notice the difference in the black demodulated waveform - the less you block, the sooner the demodulated waveform follows the input signal. I imagine that if the blocking signal and modulation clock were not phase-aligned, then the resulting waveform will have some distorted result.

    www.ti.com/lit/an/sbaa181/sbaa181.pdf

    Best Regards,

  • This is helpful, but we still haven't been able to fully resolve the issue. Can you confirm that the internal master clock on the ADS1292R can be used when an external modulator clock is provided on the gpio? It seems that the ADS1298R requires an external master clock when an external modulator is used.

  • I'll ask a designer to confirm.

    Regards,
  • Hi Ccent,

    It looks like you will require an external clock for the ADS1292R when using external modulation signals. The reason is that you need the external modulation signals to be synchronized to the ADC sampling frequency, which is generated from the device master clock. If the internal clock were used with external modulation signals, the two would be completely out of sync and the respiration waveform would not be sampled and demodulated properly.

    We apologize for not making that clear initially in the datasheet. I'll make a note to have it added to the next datasheet revision.

    Best Regards,
  • Thanks for the update. Does that mean that the external master clock and external modulator clock have to be synchronized?

  • Yes, the external master clock and external modulator clock must be synchronized.

  • Ok - so it sounds like the master clock must be divisible by the modulator clock? The datasheet seems to indicate that any modulator clock between 32-64khz is possible.
  • Hi Ccent,

    I've given this some more thought and I need to recant for a bit.

    I'll start by saying that synchronizing the ADC master clock with the respiration modulation/demodulation clock is NOT a hard and fast requirement. We absolutely, STRONGLY recommend it, however, to guarantee the best performance. I apologize up front for not thinking this through completely the first time. It can still work if the two are out of sync, but for the reasons below, it's difficult for us to quantify the expected performance.

    Initially, I was thinking that the ADC would be sampling the input signal shown in blue above, which clearly has large transients that are synchronous to the respiration modulation frequency. For that reason, I assumed that you must have the ADC sampling frequency (fMOD = 128kHz) synchronous to the respiration modulation frequency (RESP_MOD = 32kHz or 64kHz) and, more importantly, the blocking signal. However, after thinking about it some more, what the ADC actually samples is the demodulated signal, shown in black above. The signal sampled by the ADC is much closer to DC, with only small glitches that appear right after the blocking signal returns low. The likelihood of these small transients aliasing into the respiration signal bandwidth (i.e. 0.01 Hz to 2 Hz) is much less of a concern. Even if these asynchronous glitches do alias, by the time the signal is low-pass filtered further in the digital domain, most of the aliases should be removed.

    That said - synchronizing the external respiration modulation clock with the ADC master clock (and thus the ADC modulator frequency, fMOD) is the best way to go for optimal performance. The external master clock can range from 485 kHz to 562.5 kHz (CLK_DIV = 0) or from 1.94 MHz to 2.25 MHz (CLK_DIV = 1). That should give you a decent range of options for your RESP_MOD and blocking signals. My answer earlier in the thread still holds true - the respiration modulation clock and blocking signal must be synchronized to within the allowable tBLKDLY spec.

    I hope this makes more sense now and that you agree with the synchronous approach.

    Best Regards,

  • Hi Ryan,

    Thank you for the detailed response. We've configured the ADS1292R so that the clocks are as follows:

    External modulation clock (GPIO1) = 64kHz

    Blocking signal (GPIO2) = 128kHz (multiple duty cycles to test different phases)

    Master clock (external) = 512kHz

    All signals are synchronized within 5ns.

    When measured on the RESP_MODP and RESP_MODN pins, we see the correct signals, however, the result that we receive from the ADC is not correct (when compared to using the internal modulation clock with the same settings). This leads me to believe something may be wrong with the blocking signal. Interestingly enough, if we run the modulation clock=32kHz and the blocking signal=64kHz, we do see the expected signal. Let me know if you have any thoughts on this.

  • Hello Ccent,

    Thanks for the update.

    How are the RESP1 and RESP2 registers configured during these tests? I believe the phase setting (RESP1[5:2]) and the respiration frequency setting (RESP2[2]) are ignored when external respiration signals are used (RESP1[0] = 1). In case that is not correct, can you try setting RESP2[2] = 1 when you run the modulation clock at 64 kHz and blocking signal at 128 kHz? Meanwhile, I'll try to confirm with a designer whether or not that's necessary.

    Also, what is the phase of the blocking signal that you're trying to use?


    Best Regards,

  • Hi Ryan,
    We currently have RESP2[2]=1 and are not seeing the expected signal. As mentioned, the signals look correct on the modulator output pins. Is the blocking signal at 128kHz and 50% duty cycle correct?
  • Hello Ccent,

    That seems correct to me. If the blocking signal is 2x the modulation frequency and 50% duty cycle, you should be blocking for 90 degrees.

    I'm wondering if there is too much of a delay in the signal path for 90 degrees of blocking to be effective. If your blocking signal is synchronous with the modulation and demodulation clock, but not in phase with modulated signal seen at the Channel 1 inputs, then it will have less of an effect. As I mentioned in my previous post, the blocking signal prevents you from demodulating the beginning of the modulated input signal, which contains an unwanted R-C rise component. Aligning the phase of the demodulation clock with the modulated input is not really feasible, so blocking is a simpler alternative. However, if the incoming modulated signal includes a significant delay, this blocking will be less effective, so more blocking time may be needed.

    Try increasing the blocking to more than 90 degrees for 64 kHz modulation clock (it may improve your results with 32 kHz modulation as well). Page 59 of the datasheet gives a few recommended combinations for PGA gain, RESP_MOD frequency, and blocking phase which were empirically found to give the best noise performance.

    Best Regards,

  • Hi Ryan,

    Thank you for the reply. We're still trying to resolve this issue. We think we've narrowed it down to the blocking signal. The part operates fine with an external 512kHz master clock and we're seeing the correct output on the modulator as we change the modulator clock frequency. However, the demodulated signal does not look correct. It is very different from what we see when we run the part with internal modulation and blocking signals at the same frequency and duty cycle. I've included an image of our modulation (64kHz) and blocking (128kHz) signals. This example shows a 157 degrees phase for the blocking signal. We've tried other phases with no success.

    Any additional insight would be greatly appreciated. Thanks!

  • Hi Ccent,

    Thanks for the update.

    I spent some extensive time in the lab on this yesterday. Hopefully I can put together a summary of the results for you this afternoon. For your reference, I'm using the ADS1298RECGFE-PDK since this EVM has much more flexibility to conduct such tests. The respiration feature is largely the same.

    I did note some inconsistencies when using the external modulation clock and blocking signals - at times, it was just as good as with internal signals, but other times it was nothing but noise. Blocking for 157 degrees with RESP_MOD = 64 kHz seemed to yield a smaller peak-to-peak waveform than say 90 degrees, leading me to believe that I was blocking too much of the modulated input waveform.

    Best Regards,
  • Hi Ryan,

    Thanks for looking into this - I look forward to seeing your findings. 

  • Hi Ccent,

    Please excuse my delay.

    The attached Excel sheet summarizes the results of the respiration measurements with the ADS1298R. Using the internal master clock, I first configured the device to use internal respiration and blocking signals. The duty cycle of the blocking signal was varied to produce different phase settings from 22.5 degrees to 157.5 degrees with RESP_MOD = 64 kHz. Of course, the master clock is guaranteed to be an integer multiple of the RESP_MOD and blocking signals and everything is synchronous in this scenario.

    For comparison, I then provided the RESP_MOD clock and blocking signals externally from a dual-output function generator while still using the internal master clock. The results are very similar. In this case, not only is the internal master clock asynchronous to the external RESP_MOD and blocking signals, their frequencies are also no longer integer multiples of one another. I did not see a major difference in the results.

    To confirm, I also tried using an external master clock (10-MHz reference shared with the dual-output function generator) and adjusted its phase relationship to the synchronous external RESP_MOD and blocking signals. I found little to no correlation there either. I was even able to match the datasheet noise spec for respiration impedance measurements.

    What are you using as an input to the ADS1292R to evaluate the respiration performance? Can you also share a summary of the results you obtained with internal and external respiration signals for comparison?

    At this point, perhaps a quick call would make sense. Let me know if you would like to arrange something for early next week and I can contact you offline.

    ADS1298R_External RESP_MOD and Blocking.xlsx

    Best Regards,

  • Hi Ryan,

    Thanks for all of this data. Can we jump on a call this week to discuss further?