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.

Parents
  • 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.

  • ...and a 12bit ADC too! That's pretty cool, but for now I'm "married" to the nrf51822. Going back to the question at the beginning, what I would like to know is in what internal characteristic of the ADC that limitation of 0.83V is based... why is it 0.83V and not 1V or 0.5V, for example?

Reply Children
No Data
Related