SAADC VDDHDIV5 input on nRF52840 rev. 1

Hello,

I got two PCA10056 1.0.0 DKs equipped with an nRF52840 rev. 1 (code AC0). Both do not measure the VCCH voltage correctly (displayed voltage ~2.4V instead of 3.0V). The setup is based on the peripheral->saadc example with the only modification being:

//      NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN0);
        NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_VDDHDIV5);
        channel_config.gain = NRF_SAADC_GAIN1_2;

I chose to increase the input voltage swing on the ADC by configuring the gain stage from 1/6 to 1/2. This should normally give better results.

The displayed result is around 410: 410/1023 * 0.6V * 5 * 2 = 2.4V. I got the same result with the gain stage set to 1/6. The result is consistent across the two boards. Using NRF_SAADC_INPUT_VDD with gain 1/6 yields the correct result. A custom board with a rev. 2 chip works correctly with VDDHDIV5.

Can you confirm this behaviour? I did not see any erratum against explaining this. I can only guess that this behaviour (if confirmed) is a side-effect of erratum 197.

Thanks,

Norbert

Parents
  • Hello Norbert,

    I chose to increase the input voltage swing on the ADC by configuring the gain stage from 1/6 to 1/2. This should normally give better results.

    Changing the gain to 1/2 will affect your input range - with this configuration you should really only be able to measure values between 0 - 1.2 V. 

    I got the same result with the gain stage set to 1/6. The result is consistent across the two boards.

    That sounds strange to me. Are you getting the same output regardless of gain stage?
    Could you share with me the code you are running when this happens?

    Do you have any possibility of externally measuring or scoping the VDDH of the devices, such as through an oscilloscope? It would be very helpful to know what the voltage on VDDH is for reference during the measurements.

    I can only guess that this behaviour (if confirmed) is a side-effect of erratum 197.

    Could you try this again with the DCDC disabled, to see if it makes any difference to the values you are measuring?

    Best regards,
    Karl

Reply
  • Hello Norbert,

    I chose to increase the input voltage swing on the ADC by configuring the gain stage from 1/6 to 1/2. This should normally give better results.

    Changing the gain to 1/2 will affect your input range - with this configuration you should really only be able to measure values between 0 - 1.2 V. 

    I got the same result with the gain stage set to 1/6. The result is consistent across the two boards.

    That sounds strange to me. Are you getting the same output regardless of gain stage?
    Could you share with me the code you are running when this happens?

    Do you have any possibility of externally measuring or scoping the VDDH of the devices, such as through an oscilloscope? It would be very helpful to know what the voltage on VDDH is for reference during the measurements.

    I can only guess that this behaviour (if confirmed) is a side-effect of erratum 197.

    Could you try this again with the DCDC disabled, to see if it makes any difference to the values you are measuring?

    Best regards,
    Karl

Children
No Data
Related