EBC Analog In
Embedded Linux Class by Mark A. Yoder
Analog in
(This is based on BeagleBone Black Analog Input.)
The bone has eight Analog Inputs. Seven are exposed on P9. They are labeled AIN in table 11 below.
The AIN pins are sampled at 12 bits and 100k samples per second. The input voltage is between 0 and 1.8V. Fortunately, both voltages are available on P9.
The photo below shows a small potentiometer wired to the bone. One end goes to the analog ground (P9_34), the other analog 1.8V (P9_32). The wiper is attached to AIN5 which is pin P9_36.
You interact with the analog in much like the gpio, but it appears in a different place. We have to run a command before the AIN interface appears. Just run them now, later we'll explain what you did.
bone$ SLOTS=/sys/devices/bone_capemgr.*/slots bone$ echo cape-bone-iio > $SLOTS
You can now access the analog interface, but where do they appear. Try using the find command.
bone$ find /sys -name "*AIN*" ./devices/ocp.3/helper.18/AIN0 ./devices/ocp.3/helper.18/AIN1 ./devices/ocp.3/helper.18/AIN2 ./devices/ocp.3/helper.18/AIN3 ./devices/ocp.3/helper.18/AIN4 ./devices/ocp.3/helper.18/AIN5 ./devices/ocp.3/helper.18/AIN6 ./devices/ocp.3/helper.18/AIN7
You paths may be slightly different. Now explore.
beagle$ cd /sys/devices/ocp.3/helper.18 beagle$ ls -F AIN0 AIN2 AIN4 AIN6 driver@ power/ uevent AIN1 AIN3 AIN5 AIN7 modalias subsystem@
There are the various analog inputs, but watch out. This interface starts numbering at 1 and Table 11 starts at 0, so to read AIN5 you need to look at AIN6!
bone$ cat AIN6 1185
Change the pot and rerun cat. What's the min and max value you get? Is it 12 bits?
Challenge
Rewrite the scripts from before to read an AIN pin and continuously display it's value.
Embedded Linux Class by Mark A. Yoder