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

NRF52840 ADC noise

I am currently evaluating nrf52840 - CDSENET E73-2G4M08S1C module with installed CircuitPython 7.0.0-alpha.3. Unfortunately the ADC readings are quite noisy. For example for 256 consecutive readings of a DC signal (0.120V) from a potentiometer the stdev = 39.


Any way to improve this ?

Parents
  • Unfortunately the ADC readings are quite noisy

    How do you know it's not just your input signal that's noisy?

    Your readings seem to be around 2375 +/- 75; ie, a variation of ~ 3% - which is actually not so bad, unless you've taken very great care over your analogue front-end, supply, layout, grounding, shielding, etc ...

  • The input voltage is supplied from ultra-low noise LDO (TPS79933 – output noise voltage 34.65 uV). Also, I have a 47 uF capacitor on the input, as you can see from the picture it is high-frequency noise. In addition, a multimeter measured a stable value 120 mV, which it is a prove that the noise is in uV region. The measures from the internal ADC are in the range: 114.947 mV - 123.851 mV (-5.053 mV to +3.851 mV deviation from the average measure), which I consider not acceptable for the intended application.

  • a multimeter measured a stable value 120 mV, which it is a prove that the noise is in uV region

    Not really.

    A multimeter will do a lot of averaging.

  • With 47uF capacitor on the input ? Using the same LDO with STM32WB55 I get about 11 ENOB in 12-bit mode (no oversampling), deviation about 1 LSB. In the nrf52840 case what is the measured ENOB – 8 ?

    Have some questions: I was trying different boot loaders including open_bootloader from nRF5_SDK_17.0.2_d674dde. Non of them worked, except Adafruit_nRF52_Bootloader. With Nordic tools get errors like:

    Failed to upgrade target. Error is: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

    Any specifics ?

    Also, is there any ready firmware that can use nrf52840 as regular Bluetooth adapter for testing other BLE devices etc. ?

Reply
  • With 47uF capacitor on the input ? Using the same LDO with STM32WB55 I get about 11 ENOB in 12-bit mode (no oversampling), deviation about 1 LSB. In the nrf52840 case what is the measured ENOB – 8 ?

    Have some questions: I was trying different boot loaders including open_bootloader from nRF5_SDK_17.0.2_d674dde. Non of them worked, except Adafruit_nRF52_Bootloader. With Nordic tools get errors like:

    Failed to upgrade target. Error is: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

    Any specifics ?

    Also, is there any ready firmware that can use nrf52840 as regular Bluetooth adapter for testing other BLE devices etc. ?

Children
  • Hello,

    Mtk said:
    With 47uF capacitor on the input ? Using the same LDO with STM32WB55 I get about 11 ENOB in 12-bit mode (no oversampling), deviation about 1 LSB. In the nrf52840 case what is the measured ENOB – 8 ?

    Unfortunately you must expect a couple of LSB deviation with the SAADC. Please see the replies by my colleagues in this and this ticket for more information.
    However, I would also say as @awneil already has; A multimeter is not suited to measure/identify noise, because of its averaging. Do you have access to an oscilloscope with which you could perform these measurements? 

    Mtk said:
    Have some questions: I was trying different boot loaders including open_bootloader from nRF5_SDK_17.0.2_d674dde.

    You likely will have to make some modifications to make it work with your CDSENET module, thought I have no personal experience with this exact module.
    I would ask that you open a separate ticket for the bootloader issues since it diverges from the original ticket, in order to keep the forum tidy and easy to navigate for other users.

    Mtk said:
    Also, is there any ready firmware that can use nrf52840 as regular Bluetooth adapter for testing other BLE devices etc. ?

    Yes, please check out the pc-ble-driver and pc-ble-driver-py. These will let you create a desktop application using either cpp or python.

    Best regards,
    Karl

Related