This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

oscillation at the embed analog front end circuits of SAADC in nRF52832

Hello,

I found the strange phenomena on nRF52832.

By using the SAADC, I have some noise on ADC Data only at a certain temperature range.

Temperature range is depend on individual IC.

I might be the circuit oscillation at analog front end of SAADC, I think.

(internal reference voltage or op amp etc,)

I tried to switch DCDC on/off, but there's no difference on phenomena.

Anyone can resolve it?

I attach the files of real data and measurement condition.

Best regards,

Kiyoshi Iwai

3426.SAADC_noise_devzone.zip

  • Hello,

    The common issue in this case is that you have not considered the clock source for the HFCLK. The accuracy of the ADC rely on the accuracy of the HFCLK.

    Typically when waking up the CPU the internal RC oscillator will be used, while for accurate measurements the external crystal oscillator should be started. The problem in his case may be that the ADC measurements are sometimes done using internal RC oscillator, and sometimes when using external crystal oscillator. For instance the softdevice may start the external crystal oscillator when using the radio. So before doing ADC measurements make sure to:

    sd_clock_hfclk_request(); // Start HFCLK
    while(!sd_clock_hfclk_is_running(); // Wait for crystal oscillator is running or use a 1.5ms delay
    // Do ADC measurements
    sd_clock_hfclk_release() // Stop HFCLK to save power until next measurement

     

     

  • Hello Kenneth,

    Thanks for reply.

    I checked it again by using your instruction, but  nothing changed.

    The clock doesn't concern this phenomena, I think.

    What do you think about it?

    By the way,  HFCLK staus are the following, what clock will be used at ADC?

    SRC=1 (HFXO),  STATE=0 (not running)

    best regards,

    Kiyoshi Iwai

  • Hi, I am not sure how we best should proceed here. It is strange that STATE is not running. I think my recommendation is:

    1. Try to use the ADC without softdevice enabled, to check if you can observe the same.

    2. Check if you can see the same on more than 1 chip.

    3. Make sure you don't have any other peripheral running that may interfere here.

    4. What LFCLK source are using when enable softdevice? Try to use an external 32kHz crystal.

    5. Measure current consumption when the issue occurs, to see if there is any variations in current consumption that could affect voltage levels somehow.

    If you can't find any specific issue, maybe you can send us your hardware so I may repeat the measurements here?

  • Hello Kenneth,

    Thank you for your advice.

    1. I need to modify the software.  So it takes a little bit time to check it.

      But I should use softdevice on real product, if ADC without softdevice will work

      normally, I could not apply it.  It will be in vain,I think.

    2. I already checked 5 devices and 4 in 5 have same failure.

    3. I stopped all peripheral things and checked again. The result was same.

    4. I already use external 32kHz crystal.   I was surprised to hear that, does the LFCLK concern ADC?

      I think ADC is operated by HFCLK only, right or not?

    5. It's a little difficult to measure it, but I will try

    regards,

    Kiyoshi Iwai

  • Hi Kiyoshi!

    Sorry for the late reply, I have been out of office since last Thursday (small vacation).

    To answer your question:

    >  I think ADC is operated by HFCLK only, right or not?

    That is correct, however if you enable the softdevice using the internal RC oscillator as the LFCLK source, then the softdevice will automatically calibrate the RC oscillator for instance when there is change in temperature. This calibration take several 20ms periods and may for instance impact current consumption. So this is the reason I wanted you to make sure you have configured the softdevice to use the 32kHz crystal. This is also the reason I asked if you can repeat the measurements without the softdevice.

    Since the issue you have here is temperature dependent, make sure that all digital input pins have a defined level (for instance pull up or pull down). I have seen floating input pins can cause excessive current consumption at some temperatures. This may also impact measurements here.

    I know you are working closely with Avnet, and Tak-san have tested over several temperatures without experience your issue. So I believe you are on a good track to find the problem in your case by comparing your implementations.

    I would like to reference to an Errata that may affect HFCLK stability:

    http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.Rev1.errata/anomaly_832_68.html?cp=2_1_1_1_1_12 

    This issue descrive that you may experience that sd_clock_hfclk_is_running() is not reliable. A better solution is to use a fixed 1.5ms delay after calling sd_clock_hfclk_request() before doing ADC measurements. Sorry for not linking to this issue earlier.

    Please let me know if you have new findings.

    Best regards,
    Kenneth

Related