温度センサや距離センサなどの各種アナログセンサを使った工作には必須のポートです。
BeagleBone Blackからは読み取りの方法が変わったようなので、調べてみました。
(私の環境はBeagleBone Black - Ubuntu13.04です)
参考元:
Reading analog (ADC) values on BeagleBone black
BeagleBone Black Analog Input
BeagleBone BlackでA/D変換をする手順は以下の通りです。
まずはA/D変換を有効にします。
echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
上記コマンドでデバイスファイルが作成され、各ポートの値がファイルシステム経由で取得できるようになります。dmesg | grep bone を実行すると、 起動時にeMMCとHDMI用のデバイスドライバ?が読み込まれているのがわかります。
A/D変換ポートは
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN0
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN1
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN2
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN3
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN4
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN5
cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN6
現状では2度読みしないと値が更新されないようなので注意が必要です。
以前は12ビットの値がそのまま出力されていましたが、現時点ではミリボルト単位で出力されるようになっています。自分で変換する必要がないので便利ですね。