Difference between revisions of "LRADC"
(→Read channels value)
|Line 61:||Line 61:|
All values are not converted (ie. directly show the register content). To have the mV value, you must
All values are not converted (ie. directly show the register content). To have the mV value, you must : value_mV = * 1850/4095
Revision as of 14:07, 28 February 2017
This description uses Linux kernel > 3.7.
LRADC is a 12 bits 16 channels Analog to Digital Converter integrated into the i.MX28 processor.
Only channels 0-6 may be used to generic conversions and channels 2, 3, 4, 5 are used for the touchscreen on APF28Dev.
- Channel 0 is available on J10 pin 38 of APF28Dev
- Channel 1 is available on J10 pin 36 of APF28Dev
- Channel 6 is available on J10 pin 35 of APF28Dev
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
To use the LRADC, first load mxs-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» the corresponding input file:
# cat in_voltage0_raw for channel 0 4095
All values are not converted (ie. directly show the register content). To have the mV value, you must do: value_mV = in_voltageX_raw * 1850/4095