LRADC

From ArmadeusWiki
Revision as of 18:28, 2 February 2013 by GwenhaelG (Talk | contribs) (Load driver)

Jump to: navigation, search

Introduction

This description uses Linux kernel > 3.7.

LRADC is a 12 bits 16 channels Analog to Digital Converter integrated into the iMX28 processor.

Only channels 0-6 may be used to generic conversions and channels 2, 3, 4, 5 are used to the touchscreen.

  • Channel 0 is available on pin J10 p.38;
  • Channel 1 is available on pin J10 p.36;
  • Channel 6 is available on pin J10 p.35;

Driver

Driver is by default included if you choose an APF28 as target.

Otherwise, you can select it that way:

[  ] $ make linux-menuconfig
Device Drivers  --->
    <M> Staging drivers  --->
         IIO staging drivers
            Analog to digital converters
                <M>   Freescale i.MX28 LRADC

Then compile the distribution :

[  ] $ make linux && make

Use it

Load driver

To use the LRADC, first load lradc module:

# modprobe mxs-lradc

Read channels value

# cd /sys/bus/iio/devices/iio:device0
# ls
buffer                   in_voltage11_raw  in_voltage2_raw   name
dev                       in_voltage12_raw  in_voltage3_raw   power
in_temp8_raw      in_voltage13_raw  in_voltage4_raw   scan_elements
in_temp9_raw      in_voltage14_raw  in_voltage5_raw   subsystem
in_voltage0_raw   in_voltage15_raw  in_voltage6_raw   trigger
in_voltage10_raw in_voltage1_raw   in_voltage7_raw   uevent

To read adc value just «cat» an input :

# cat in_voltage0_raw 
4095

All values are not converted (ie. directly the register content). To have the mV value, you must doing: value_mV = read_value * 1850/4095