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

  • Norbert said:
    No, as I said earlier, SW9 is in middle position (VDD). The power is coming from the USB I/F.

    Yes, but as mentioned this will not supply the device through VDDH, which means that your SAADC's measurement of the VDDHDIV5 might be correct even still. If you wish to supply the device through the VDDH pin you will need to have the nRF52840 in High Voltage mode, which can be achieved by switching the SW9 to Li-po. In this case you will have to supply the nRF through the J6 or P27 port.

    Best regards,
    Karl

  • Hi Karl,

    Sorry for closing the thread before.

    Back to the topic: In my understanding, with SW9 in position "VDD", VDD_nRF is about equal to VDD_HV, so the measurement should work. I checked the VDD_HV level and it is ~3.0V, same as VDD_nRF (there is only an load switch between the two).

    Am I wrong here?

    Thanks,

    Norbert

  • Hello Norbert,

    Norbert said:
    Sorry for closing the thread before.

    No problem at all - the feature is intended to summarize tickets by highlighting the answer that solved the issue, but it also locks the thread to avoid that it later diverges from the original issue.

    Norbert said:

    Back to the topic: In my understanding, with SW9 in position "VDD", VDD_nRF is about equal to VDD_HV, so the measurement should work. I checked the VDD_HV level and it is ~3.0V, same as VDD_nRF (there is only an load switch between the two).

    Am I wrong here?

    Yes, from what I can tell VDDH is not really in use when the nRF is in Normal voltage mode, so I do not think it is a valid source to measure the nRF's supply voltage when not in high voltage mode. I will reach out to the developers of the nRF52840 DK to see if they have any additional comment on this.

    Could you specify where you accessed VDD_HV on the board when you measured it?
    Could you also try to switch the SW9 to Li-Po, provide 3 V to the J6 or P27 port, and then see what your results for the VDDHDIV5 measurements are?

    However, if you are not using the nRF in high voltage mode you should just use the SAADC's _VDD input instead of the VDDH to measure the voltage of the supply.

    Best regards,
    Karl

  • Hello Karl,

    reach out to the developers of the nRF52840 DK to see if they have any additional comment on this

    Sounds good. I am interested to hear their comments, if any.

    Could you specify where you accessed VDD_HV on the board

    C19 next to the chip.

    Could you also try to switch the SW9 to Li-Po, provide 3 V to the J6 or P27 port, and then see what your results for the VDDHDIV5 measurements are?

    With 3.0V supplied to P27 and SW9 in LiPo position, I get a reading of 170 (=3.0V) too. So indeed VDDHDIV5 is invalid if not in HV power configuration. That is totally OK for me.

    However, if you are not using the nRF in high voltage mode you should just use the SAADC's _VDD input instead of the VDDH to measure the voltage of the supply.

    Okay. My experiment was for the next board architecture. I was not aware of any dependency between SAADC input and power configuration (in hindsight it is obvious, though).

    Thanks for your time,

    Norbert

  • Hello again Norbert,

    Norbert said:
    C19 next to the chip.

    Thank you for confirming this.

    Norbert said:
    Sounds good. I am interested to hear their comments, if any.

    The DK developers just got back to me, they too concluded that this must then be caused by something internal to the SoC when operating in normal voltage mode contra high voltage mode. They conclude that this must be the case since you are measuring 3 V on C19.

    Norbert said:
    Okay. My experiment was for the next board architecture. I was not aware of any dependency between SAADC input and power configuration (in hindsight it is obvious, though).
    Norbert said:
    With 3.0V supplied to P27 and SW9 in LiPo position, I get a reading of 170 (=3.0V) too. So indeed VDDHDIV5 is invalid if not in HV power configuration. That is totally OK for me.

    Great, I am glad to hear that you too are seeing the expected measurements in the High voltage configuration, and that this is not an issue for your next project.

    Norbert said:
    Thanks for your time,

    It is no problem at all, Norbert - I am happy to help!

    Please do not hesitate to open another ticket if you should encounter any other issues or questions in the future.

    Good luck with your development!

    Best regards,
    Karl

Related