Difference between revisions of "LRADC"
From ArmadeusWiki
(→Read channels value) |
(→Load driver) |
||
Line 39: | Line 39: | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # modprobe lradc | + | # modprobe mxs-lradc |
</pre> | </pre> | ||
Revision as of 18:28, 2 February 2013
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