|
BeagleBoneBlack の情報 †BBB と略す。 BBBについて検索したけれどあまり情報が無かったので調べたことを書く。 お約束とお願い BeagleBoneBlack はシリコンリナックス社製品ではありませんので、弊社にお問い合わせをいただいても返信することができません。このページの内容も未保障です。メモ程度であることを了承ください。 システムリファレンスマニュアル (SRM) †ここの真ん中辺にある System Reference Manual A5.6 (英文PDF) にいろいろ書いてある。 LED †簡単アクセス方法 †起動時はインジケータとしてピカピカしているので、まずそれをを止める # echo none > /sys/class/leds/beaglebone\:green\:usr0/trigger # echo none > /sys/class/leds/beaglebone\:green\:usr1/trigger # echo none > /sys/class/leds/beaglebone\:green\:usr2/trigger # echo none > /sys/class/leds/beaglebone\:green\:usr3/trigger # cat /sys/class/leds/beaglebone\:green\:usr0/max_brightness 255 なので 0-255 を受け付けるように見えるが、実際には 0 か 1 。 1-255は同じ。 点灯 # echo 1 > /sys/class/leds/beaglebone\:green\:usr0/brightness 消灯 # echo 0 > /sys/class/leds/beaglebone\:green\:usr0/brightness GPIO †bbb_pins_P8.pdf 電源投入後のデフォルトでpull-upされているピン、またはpull-downされているピンは Pinファンクション †
GPIO=mode7 プルアップ有り入力 = 0x37 b' 1 1 0 111 プルアップ無し入力 = 0x3F b' 1 1 1 111 プルアップ有り出力 = 0x17 b' 0 1 0 111 BBBBoxのWDI(WatchDogIn)は P9_30 につながっている 上記 &ref(bbb_pins_P9.pdf); から offset 0x998 と読み取れる 0x44E10000 + 0x998 = 0x44E10998 u-bootでのpin function操作 memory dump(表示) U-Boot# md 0x44E10998.l memory write(書き換え) アドレス 値 長さ U-Boot# mw 0x44E10998.l 0x3f 1 (プルアップ無し入力にする)
GPIOレジスタ †
GPIO pin入力 SW0は GPIO0_30なので、0x44E07000+0x138 を long で読み bit30 を評価する U-Boot# md 0x44E07138.l SW1は GPIO1_28なので、0x4804C000+0x138 を long で読み bit28 を評価する U-Boot# md 0x4804c138 GPIO pin出力 LED0R は gpio1_13 なので pin設定を出力にする writel( 0x17, 0x44E10000+0x834); つまり U-Boot# mw 0x44E10834.l 0x17 1 writel( ~(1<<13), 0x4804C000+0x134); // OE writel( 1<<13, 0x4804C000+0x194); // SETDATAOUT つまり U-Boot# mw 0x4804c134.l 0xffffdfff 1 U-Boot# mw 0x4804c194.l 0x2000 1 U-Boot# mw 0x4804c190.l 0x2000 1 Linuxコマンドラインからの操作方法 †例 P9-12番ピン - GND間にスイッチをつないだとき GPIO1_28 => 32+28 => 60 (上記エクセルまたはpdfの "GPIO NO" 列が早見表です) # echo 60 > /sys/class/gpio/export # echo in > /sys/class/gpio/gpio60/direction # cat /sys/class/gpio/gpio60/value 同様に P9-15番ピンは GPIO1_16 => 32+16 => 48 # echo 48 > /sys/class/gpio/export # echo in > /sys/class/gpio/gpio48/direction # cat /sys/class/gpio/gpio48/value この2か所は pull up は働いているっぽいのでGND間でSW直結ok。 debian †microSD に debian 7.0 wheezy をインストールする。 用意するもの
開発PCにて # apt-get install wget dosfstools parted u-boot-tools git parted uboot-mkimage # git clone git://github.com/RobertCNelson/netinstall.git # cd netinstall microSDが開発PCで /dev/sdb として認識するとして # ./mk_mmc.sh --mmc /dev/sdb --dtb am335x-boneblack --distro wheezy-armhf --firmware --serial-mode 以下の2つの質問を訊かれるので、よく考えた上で y と答える。 Are you 100% sure, on selecting [/dev/sdb] (y/n)? y Knowing these issues, would you like to continue to install [am335x-boneblack] (y/n)? y この状態で microSD の中身は次のようになっている。 Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------ Pri/Log Free Space 1.0* sdb1 Boot Primary vfat [boot] 100.6* Pri/Log Free Space 1875.9* microsD を BBB に挿して起動するとインストーラ起動する。 適宜質問に答えていけば debian wheezy のインストールが完了する。 アーキテクチャ名は armhf (arm hard float) CPU速度 †変更 起動時デフォルト # performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 確認 # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq USBハブ †Debian は USB ホットプラグに対応していない模様。 USBハブまたはその先の機器が認識されない。 機器を繋いだ状態でコールドブートすると全て認識される。※Rev.A5Cにて確認 Babble Interrupt Occurred のエラーがあらわれてUSBがクラッシュしてしまうのはBBBで顕著な不具合らしく、上記エラーメッセージで検索すると多数の掲示板がヒットする。 # echo 0 > /sys/bus/usb/devices/usb1/authorized # sleep 2 # echo 1 > /sys/bus/usb/devices/usb1/authorized # sleep 2 # echo 'on' > /sys/bus/usb/devices/usb1/power/control でroot hubをリセットすると復活するらしい ここにpatchっぽいものがある 以下でも討論されている
カーネル †リビジョン †Rev.A6A †ボードの機能と操作に変更は無い。
関連 †BeagleBoneBlackBox †BeagleBone Black用のケースを作りました。 社内関連リンク †自動リンク
外部リンク †
|