Name:
Syntax:

Description:

Calibrate the microcontrollers internal ADC by measuring a fixed internal fixed voltage reference.

 0.6V 20M, 28X1, 40X1 1.2V 28X2-3V, 28X2-3V 1.024V All other parts that support this command

Note that this command is not available on 28X2-5V/40X2-5V.

The reference voltage used by the PICAXE microcontrollers ADC reading (readadc/ readadc10) commands is the supply voltage. In the case of a battery powered system, this supply voltage can change over time (as the battery runs down), resulting in a varying ADC reading for the same voltage input.

The calibadc/calibadc10 commands can help overcome this issue by providing the ADC reading of a nominal internal reference. Therefore by periodically using the calibadc command you can mathematically calibrate/compensate the readadc command for changes in supply voltage.

calibadc can be considered as 'carry out a readadc on a fixed reference'.

Note that the reference voltage specified is a nominal voltage only and will vary with each part. Microchip datasheet AN1072 provides further details on how to software calibrate and use this advanced feature.

At clock speeds >= 32MHz it is necessary to use two consecutive 'calibadc' commands together to ensure the Vref has time to settle.

Theory of operation

Calibadc10 will give a result (Nref) which will depend on the reference voltage (Vref) and the PICAXE power supply vltage (Vpsu) as follows -

Nref = Vref * 255 / Vpsu

This can be rearranged to determine the power supply voltage (Vpsu) from the calibadc result (Nref) -

Vpsu = Vref * 255 / Nref

If the Vref were 1.024 volts then this will be -

Vpsu = 1.024 * 255 / Nref

Vpsu = 261.12 / Nref

Rounded to the nearest whole number -

Vpsu = 261 / Nref

Applies To:
All (except 08, 08M, 14M, 18, 18A, 18M, 18X, 28, 28A, 28X, 40X)
Related Create:
Share:
Print:

```main:	calibadc b1	; read the adc reading