This article explains how to use the built-in 4-channel @ 10 bit A/D converter lines

The A/D converter input lines are available on the following pins:

Signal Description CORE9G25
3.3V 3.3 volt power line W24
AVDD Clean 3.24V out for A/D circuitry  
VREF A/D voltage reference input W19
AGND Analog GND  
AD0 Analog input 0 W20
AD1 Analog input 1 W21
AD2 Analog input 2 W22
AD3 Analog input 3 W23
GND Digital GND W1

Test the Module

Loading the module should have created a sysfs directory in /sys/bus/iio/devices/iio:deviceN, N being between 0 and 255. It is most likely to be 0, but you can be sure by looking into the name file in that directory.

root@at91sam9g20ek:~# ls -l /sys/bus/iio/devices/iio\:device0/
drwxr-xr-x    2 root     root            0 Mar 10 02:24 buffer
-r--r--r--    1 root     root         4096 Mar 10 02:24 dev
-r--r--r--    1 root     root         4096 Mar 10 02:24 in_voltage0_raw
-r--r--r--    1 root     root         4096 Mar 10 02:24 in_voltage1_raw
-r--r--r--    1 root     root         4096 Mar 10 02:24 in_voltage2_raw
-r--r--r--    1 root     root         4096 Mar 10 02:24 in_voltage3_raw
-rw-r--r--    1 root     root         4096 Mar 10 02:24 in_voltage_scale
-r--r--r--    1 root     root         4096 Mar 10 02:24 name
drwxr-xr-x    2 root     root            0 Mar 10 02:24 power
drwxr-xr-x    2 root     root            0 Mar 10 02:24 scan_elements
lrwxrwxrwx    1 root     root            0 Mar 10 02:24 subsystem -> ../../../../bus/iio
drwxr-xr-x    2 root     root            0 Mar 10 02:24 trigger
-rw-r--r--    1 root     root         4096 Mar 10 02:24 uevent

If you have devtmpfs, it will also have created an iio:deviceN file under /dev.

Software Triggers

Software triggers are an ADC operating mode where the software starts the conversion.

This feature is exposed by IIO through the following files:

  • in_voltageX_raw: raw value of the channel X of the ADC
  • in_voltage_scale: value you have to multiply in_voltageX_raw with to have a value in microvolts

Reading into in_voltageX_raw will perform a software trigger on the ADC, then block until the conversion is completed, and finally return the value of this conversion.

Please note that conversions are done one channel at a time.

Here is the output on the AT91SAM9 console that shows an ADC measure when a 3V DC power supply is connected between analog ground AGND and ADC input 0 AD0 pins:

root@at91sam9g20ek:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw 
948
root@at91sam9g20ek:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage_scale 
3222.000000

We can calculate the result: 948 x 3222 = 3.0V

More Details, Reading the A/D converter lines:


Market Mail : market@armdevs.com
Support Mail: support@armdevs.com Sales Phone: +86-755-29638421


CoreWind Online Chat>
Work time: 09:00-18:00
Copyright @ 2014 to 2020 - CoreWind Tech.