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

Can nRF51822 ADC external reference (AREF0/1) voltage be as low as 0.5V or less?

According to PS, external reference min. voltage is 0.83V. However, I've experimented with voltages of about 0.2V and it appears to work. Specifically, I connected a voltage divider with 47K to VCC=3.2V and 3K3 to GND, then connect the midpoint to pin p0.06 (AREF1), with the following code:

NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled; NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos) | (ADC_CONFIG_INPSEL_AnalogInputNoPrescaling << ADC_CONFIG_INPSEL_Pos) | (ADC_CONFIG_REFSEL_External << ADC_CONFIG_REFSEL_Pos) | (channel << ADC_CONFIG_PSEL_Pos) | (ADC_CONFIG_EXTREFSEL_AnalogReference1 << ADC_CONFIG_EXTREFSEL_Pos);

NRF_ADC->TASKS_START = 1; while (((NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) >> ADC_BUSY_BUSY_Pos) == ADC_BUSY_BUSY_Busy) ; value = NRF_ADC->RESULT;

It seems to work, but maybe it's an illusion... So the question is: actually what is supposed to happen exactly if I use an external reference voltage lower than 0.83V?

Regards, P.G.

  • Hi,

    When using AREF the reference voltage is fed straight into the ADC which is only designed to work within the limits given in the PS. As is the case with many of the peripherals, things might seem to work outside their limits, but you have no guarantees from us in terms of accuracy or that it won't break anything in the long run. If you chose to use the ADC outside of spec you do so at your own discretion.

    If you need a different fullscale you have to use the gain setting.

  • Hi Martin, thank you for your response. What's that "gain setting" you mention? Yes, I need a different fullscale but without sacrificing resolution bits, so no software-based "map" allowed. BTW, I don't really worry about accuracy nor even about noise (provide it's really random noise, not quantize distortion). I'm only worry about "monotonicity", that is, if voltage goes up then ADC reading goes up too, and vice-versa, since my sampling is in fact a feedback for a PID control system. The signal I want to sample is really small, but I want to avoid using OpAmp as possible, due to lack of space in PCB, and because a good instrumentation opamp requires symmetrical supply, which is way overcomplex for my project.

    So, the question is: what ADC characteristic is the 0.83V limitation based on? Having a clue to this, we may be able to predict consequences of working outside that limit.

  • I was mixing terminology. With 'Gain' I meant 'Input Prescaling' (its called Gain in the nRF52). As you may have seen in the Reference Manual you can use a prescaler of 1, 2/3, or 1/3 and effectively divide the input by e.g. 3. That should get you higher resolution at smaller signals.

  • It's just the opposite... I use prescaler "1"; what I have to divide to get better resolution is the reference, but the 1.2V bandgap can't be prescaled :-(

  • You're right of course. I don't know what I was thinking. Have you had a look at the nRF52 though? It has a wider selection of gain settings (from 1/6 to 4) and an internal voltage reference at 0.6V.

Related