[Urgent] Extenal reference voltage for Nordic ADC

Hello,

We have a project which requires high accuracy for 14-bit resolution ADC output by using Nordic nrf52832, we regard that the accuracy is linked to the internal reference voltage 0.6v that we had used in the firmware.

The current output accuracy of power supply for Nordic Vdd is 2.8v +/- 2%, we're using internal reference voltage.

Here are several questions, can you help me out?

1. What's the accuracy level of Nordic nrf52832 internal reference voltage - 0.6v?  

    After checking from the blog, we find some answers, like +/- 3%, +/- 0.2%, which one is correct?

    If both of them are incorrect, what's the correct tolerance of accuracy?

2. If we want to achieve more accurate reference voltage, can we use a more accurate Vdd supply?

    Would the accuracy of Vdd be impacted by Nordic internal LDO (or DC/DC)?

    If we use a high accurate external power supply for Vdd, like 3v (+/- 0.08%), can I get 0.75v (+/- 0.08%) (Vdd/4 mode) as reference voltage for ADC?

 

3. Is there another way that we could use external reference voltage to achieve a high accuracy of reference voltage?

    For example, it seems like external reference can be used for comparator; can we use "Analogy input port" to achieve reference voltage with high accuracy for ADC?

4. Does Nordic have any recommended solution to achieve 14-bit resolution of ADC in a stable and accurate manner for nrf52832 from hardware and/or software aspects?

    Any recommendation on the accuracy level of power supply to achieve 14-bit resolution on nrf52832?

  • Hi,

     

    1. What's the accuracy level of Nordic nrf52832 internal reference voltage - 0.6v?  

        After checking from the blog, we find some answers, like +/- 3%, +/- 0.2%, which one is correct?

        If both of them are incorrect, what's the correct tolerance of accuracy?

    It is not directly stated in the PS, but the spec is +/-3% over the whole temperature range, and typically +/- 0.2% at room-temp.

    2. If we want to achieve more accurate reference voltage, can we use a more accurate Vdd supply?

        Would the accuracy of Vdd be impacted by Nordic internal LDO (or DC/DC)?

        If we use a high accurate external power supply for Vdd, like 3v (+/- 0.08%), can I get 0.75v (+/- 0.08%) (Vdd/4 mode) as reference voltage for ADC?

    If you set VDD as a reference, the reference will be as accurate as what it is sourced from. I would recommend that you test with both external and internal source to see the difference between the two.

    3. Is there another way that we could use external reference voltage to achieve a high accuracy of reference voltage?

        For example, it seems like external reference can be used for comparator; can we use "Analogy input port" to achieve reference voltage with high accuracy for ADC?

    REFSEL is either internal or VDD/4.

    Given the specs that you posted in your initial reply, I assume you have already read this thread? There are some good discussion here related to ADC integration and testing:

     nRF52833 ADC reference external interface 

    4. Does Nordic have any recommended solution to achieve 14-bit resolution of ADC in a stable and accurate manner for nrf52832 from hardware and/or software aspects?

        Any recommendation on the accuracy level of power supply to achieve 14-bit resolution on nrf52832?

    The effective number of bits (ENOB) is 9 for the SAADC:

    https://docs.nordicsemi.com/bundle/ps_nrf52832/page/saadc.html#d944e45805

     

    This can be improved to approx. 10.5 if using OVERSAMPLING=4x, as described in this thread:

     RE: nRF52 ADC ENOB 

    And always ensure that you are doing an offset calibration by triggering task TASKS_CALIBRATEOFFSET on boot-up and if your environment changes.

     

    What are your requirements in terms of ENOB and sampling rate? If you need ENOB>10.5 bit, then I would recommend looking at external ICs for AD converting.

     

    Kind regards,

    Håkon

     

  • What are you sampling? There may be a way to use a ratiometric measurement mode; in this recent answer I achieved a measured value of 905.2 Ohms with 0.02% error on a 905.0 Ohm test resistor using 12-bit sampling (14-bit slightly better) using a noisy USB supply (even better using a battery supply). I included a schematic and my code.

    nrf52833-adc-reference

    // Internal 0.6v Ref 12-bit S0S1 RTD actual value 905.0 Ohm (reference 2001.4 Ohm) - Forward current measurement
    //        VDD     Iref    RdsOnA    RdsOnB      V1      V2      V3      V4         Vrtd         Vref        Rrtd  Error
    //     ======   ======  ========  ========  ======  ======  ======  ======  ===========  ===========  ========== ======
    // RTD 2982mV,  926 uA,  173 Ohm,  136 Ohm, 2821mV, 1989mV, 1977mV,  126mV,  477 counts, 1055 counts, 904.9 Ohms -0.01%
    // RTD 2979mV,  925 uA,  168 Ohm,  139 Ohm, 2823mV, 1984mV, 1984mV,  129mV,  477 counts, 1054 counts, 905.8 Ohms  0.08%
    // RTD 2978mV,  926 uA,  174 Ohm,  150 Ohm, 2816mV, 1989mV, 1989mV,  139mV,  478 counts, 1055 counts, 906.8 Ohms  0.20%
    // RTD 2981mV,  925 uA,  172 Ohm,  144 Ohm, 2821mV, 1989mV, 1989mV,  134mV,  477 counts, 1054 counts, 905.8 Ohms  0.08%
    
    // Internal 0.6v Ref 12-bit S0S1 RTD actual value 905.0 Ohm (reference 2001.4 Ohm) - Reverse current measurement
    //        VDD     Iref    RdsOnA    RdsOnB      V1      V2      V3      V4         Vrtd         Vref        Rrtd  Error
    //     ======   ======  ========  ========  ======  ======  ======  ======  ===========  ===========  ========== ======
    // RTD 2984mV,  922 uA,  135 Ohm,  183 Ohm,  125mV,  965mV,  970mV, 2815mV,  475 counts, 1051 counts, 904.5 Ohms -0.05%
    // RTD 2980mV,  922 uA,  144 Ohm,  180 Ohm,  133mV,  960mV,  959mV, 2814mV,  475 counts, 1051 counts, 904.5 Ohms -0.05%
    // RTD 2981mV,  923 uA,  144 Ohm,  179 Ohm,  133mV,  961mV,  965mV, 2815mV,  475 counts, 1052 counts, 903.7 Ohms -0.15%
    // RTD 2979mV,  921 uA,  145 Ohm,  170 Ohm,  134mV,  970mV,  965mV, 2822mV,  475 counts, 1050 counts, 905.4 Ohms  0.04%
    
    // Measured 12-bit value of 905.0 Ohm test resistor is 905.2 Ohms with  0.02% error
    
    // Internal 0.6v Ref 14-bit S0S1 RTD actual value 905.0 Ohm (reference 2001.4 Ohm) - Forward current measurement
    //        VDD     Iref    RdsOnA    RdsOnB      V1      V2      V3      V4         Vrtd         Vref        Rrtd  Error
    //     ======   ======  ========  ========  ======  ======  ======  ======  ===========  ===========  ========== ======
    // RTD 2976mV,  923 uA,  169 Ohm,  138 Ohm, 2820mV, 1979mV, 1972mV,  128mV, 1898 counts, 4205 counts, 903.4 Ohms -0.18%
    // RTD 2973mV,  924 uA,  174 Ohm,  136 Ohm, 2812mV, 1975mV, 1977mV,  126mV, 1899 counts, 4211 counts, 902.6 Ohms -0.27%
    // RTD 2968mV,  923 uA,  154 Ohm,  136 Ohm, 2825mV, 1989mV, 1978mV,  126mV, 1897 counts, 4209 counts, 902.0 Ohms -0.33%
    // RTD 2973mV,  923 uA,  167 Ohm,  130 Ohm, 2818mV, 1983mV, 1978mV,  120mV, 1898 counts, 4209 counts, 902.5 Ohms -0.28%
    
    // Internal 0.6v Ref 14-bit S0S1 RTD actual value 905.0 Ohm (reference 2001.4 Ohm) - Reverse current measurement
    //        VDD     Iref    RdsOnA    RdsOnB      V1      V2      V3      V4         Vrtd         Vref        Rrtd  Error
    //     ======   ======  ========  ========  ======  ======  ======  ======  ===========  ===========  ========== ======
    // RTD 2968mV,  924 uA,  130 Ohm,  168 Ohm,  121mV,  954mV,  958mV, 2812mV, 1912 counts, 4213 counts, 908.3 Ohms  0.36%
    // RTD 2973mV,  923 uA,  131 Ohm,  173 Ohm,  121mV,  964mV,  960mV, 2813mV, 1909 counts, 4209 counts, 907.7 Ohms  0.30%
    // RTD 2979mV,  925 uA,  136 Ohm,  175 Ohm,  126mV,  959mV,  963mV, 2817mV, 1908 counts, 4216 counts, 905.8 Ohms  0.08%
    // RTD 2976mV,  924 uA,  132 Ohm,  170 Ohm,  122mV,  953mV,  966mV, 2818mV, 1909 counts, 4214 counts, 906.7 Ohms  0.18%
    
    // Measured 14-bit value of 905.0 Ohm test resistor is 904.9 Ohms with -0.01% error
    

  • Thanks for your quick response.

    We are planning to use a more stable power supply for Vdd of Nordic 52832, by doing so, we can compare the difference between internal reference and Vdd/4. I will let you know once we have a test results.

Related