見本PDF(1.61MB) - CQ出版WebShop

 第2部 組み込み Android 入門コース
カーネルのデバイス・ファイルを直接制御
第
3章
LED 点灯 / 消灯
アプリケーションの製作
出村 成和
Android が動作するようになったところで,次に,
使用する GPIO
この BeagleBone Black と rowboat ならではの処理を
行ってみます.
こ こ で は,BeagleBone Black の 拡 張 端 子 に あ る
まず,BeagleBone Black の GPIO について確認しま
GPIO(General Purpose Input/Output)に LED を接続
しょう.GPIO は,拡張端子 P8,拡張端子 P9 のどち
し,アプリケーションから LED の点灯と消灯ができ
らにも割り当てられています.ここでは,P9 の GPIO
るようにします(図 1)
.
を利用します.拡張端子 P9 の詳細は,表 1 のとおり
このような GPIO の制御は,Android のアプリケー
です.
ション開発キットである Android SDK ではサポート
BeagleBone Black の拡張端子はピンごとに役割は
されていません.そこで,アプリケーションから,
固定化されておらず,複数の役割が割り当てられてい
Linux カーネルのデバイス・ファイルを直接制御して
ます.これらの役割を切り替えるには,ソフトウェア
実現します.
でピンごとにモードを指定します.
ここでは,LED を拡張端子 P9 の 12 番ピンの GPIO
(GPIO1_28)を利用し,LED を接続,制御します.
接続方法
今回は,拡張端子 P9 の 12 番ピン(GPIO1_28)を利
用します.なお,BeagleBone Black の拡張端子の I/O
電圧は 3.3V となっており,12 番ピンから LED,抵抗
(100 Ω)を接続し,P2(GND)に接続しています(図 2,
写真 1).
図 1 LED を制御する Android アプリケーションの画面
表 1 拡張端子 P9 の配置(13 番ピンまでの抜粋)
ピン
プロセッサ
番号
のピン番号
名 称
モード 0
モード 1
モード 2
モード 3
1,2
GND
3,4
DC_3.3V
5,6
VDD_5V
7,8
SYS_5V
9
PWR_BUT
モード 4
モード 5
モード 6
モード 7
10
A10
11
T17
UART4_RXD
gpmc_wait0
mii2_crs
gpmc_csn4
uart4_rxd_mux2
gpio0[30]
12
U18
GPIO1_28
gpmc_ben1
mii2_col
gpmc_csn6
mmc2_dat3
gpmc_dir
mcasp0_aclkr_mux3
gpio1[28]
13
U17
UART4_TXD
gpmc_wpn
mii2_rxerr
gpmc_csn5
rmii2_rxerr
mmc2_sdcd
uart4_txd_mux2
gpio0[31]
66
SYS_RESET
rmii2_crs_dv mmc1_sdcd
NFS と tftp を使ったネットワーク・ブートで開発効率アップ!
第
2章
1-1
Linux SDK
クロス開発環境の構築
1-2
1-3
石井 孝幸
本章では,カーネルのビルドを含めた作業環境を構
もちろん,ここで言う新しいハードディスクとは仮
築します.ここでは,テキサス・インスツルメンツの
想上のハードディスクで,実際には仮想 PC に接続す
Linux SDK(ソフトウェア開発キット)を使用します.
るディスク・イメージ・ファイルを新しく作ることを
テ キ サ ス・ イ ン ス ツ ル メ ン ツ の Linux SDK は,
指します.
ARM のツールチェインを含んだ形でインストールで
仮想 PC 環境でしたら,物理的なディスク容量が許
き,NFS(Network File System)やtftp(trivial file transfer
す限り仮想ハードディスクを追加し放題です.ですの
protocol)の設定もセットアップ・スクリプトで実行
で,最初に PC Linux をインストールした仮想ディス
してくれるので簡単です.
クとは別に,これから試していく ARM 用のいろいろ
Linux SDK のダウンロードと
インストール
● テキサス・インスツルメンツの Linux SDK の
特徴
な Linux,Android ごとに個別に仮想ディスクを用意
2-1
2-2
2-3
2-4
3-1
3-2
す れ ば,Ubuntu や Android と 切 り 替 え る た び に PC
3-3
Linux をインストールしなおす手間が省けます.
割り当てるディスクの容量の目安は,使い方にもよ
るのですが,Linux で 10G バイト,Android で 20G バ
テキサス・インスツルメンツの Linux SDK は,テ
イト以上は必要になります.
キサス・インスツルメンツのウェブ・サイトからダウ
用意する仮想ディスクのイメージを仮想環境内で
ンロードできます.執筆時点での最新版は,ti-sdk-
使った分だけ増えていくタイプのものにして,余裕を
am335x-evm-06.00.00.00 で,Linux カーネルのリビジョ
見て 32G バイトくらいを割り当てるのがよいと思いま
ンは 3.2.0 となっています.
す.
3-4
4-1
4-2
4-3
最新のカーネルとはいかないのですが,テキサス・
インスツルメンツの Linux SDK は,仕組みや環境が
● ハードディスクのフォーマット
割 と シ ン プ ル で 作 業 内 容 が 把 握 し や す く,Beagle
新しいハードディスクを追加したら PC Linux 上で
Bone Black で使用している SoC AM3358 専用に作ら
そのハードディスクを使用できるようにフォーマット
れているので動作がそれなりに安定しています.
する必要があります.
そのため,PC Linux を使用したクロス開発環境で
まずは,ハードディスクを追加して PC Linux を起
ARM 用 Linux のカーネルやアプリケーションを開発
動 し ま す.Ubuntu で は,Disk Utility を 使 用 す る と
する工程がどのようになっているか,といった学習に
GUI でディスクのフォーマットが可能です.
向いています.
まず初めに,新規ハードディスクのデバイス名を確
4-4
4-5
認します.Disk Utility の左側の「Storage Devices」タ
● ハードディスクの増設
ブから ***Hard Disk をクリックします(図 1)
.一つ目
では早速,前章で構築した PC Linux(Ubuntu)に
のハードディスクが /dev/sda,二つ目のハードディ
ARM 用の Linux 環境を構築していくのですが,仮想
スクが /dev/sdb のように順に割り当てられます.
PC 環境で Linux を使用されている方は,新しいハー
/dev/sda は Ubuntu がインストールされているハー
ドディスクを増設されることをお勧めします.
ド デ ィ ス ク な の で, フ ォ ー マ ッ ト し て し ま う と
119
第 3 部 Linux & Android 環境構築コース
U-Boot のカスタマイズやドライバの作成に必須!
第
4章
JTAGアダプタ+OpenOCDを
使ったデバッグ環境の構築
袴田 祐幸 / 菅原 大幸
先代の BeagleBone と比べてスペックが格段にアッ
● JTAG 端子がない BeagleBone Black
プ し, 価 格 も 約 半 分 の 5,000 円 程 度 に な っ た Beagle
ところで,先代の BeagleBone を使用していた方の
Bone Black.出荷時には,Ångström Linux がプレイ
なかで新たに BeagleBone Black を購入し,「さぁ,デ
ンストールされており,ハードウェアを意識すること
バッグをしてみよう」と思ったとき,
「ん?」と違和感
なくアプリケーションを作成することが可能で,デ
を覚えた方は少なからずいると思います.
バッガを利用しないで済んでしまうケースも多いと思
それは,BeagleBone Black には先代の BeagleBone
います.
にあったデバッグ用の USB ポートがなくなっている
しかし,周辺機能のハードウェアなどを拡張し,
からです.
U-Boot のカスタマイズやドライバなどの作成が必要
実は,先代の BeagleBone では,JTAG 端子を USB
となった場合に,どうやってデバッグするの?デバッ
に変換するデバッグ用の回路が搭載されていて,USB
ガは何を使えばいいの?どんなソフトウェアを用意し
ケーブルを接続するだけでデバッグが可能でしたが,
たらいいの?などと,お困りの方も多いと思います.
BeagleBone Black ではコストダウンのためか削除さ
そこで本章では,BeagleBone Black に JTAG アダ
れてしまいました.
プタを接続してデバッグを行う方法と手順を紹介しま
しかし,BeagleBone Black には CPU の JTAG 端子
す.今回は安価な JTAG アダプタとオープン・ソース
を引き出したコネクタが用意されているので,ここに
の OpenOCD と Eclipse を使用して,実際に U-Boot の
JTAG アダプタを接続することでオンチップ・デバッ
デバッグを行います.
グを行うことができます.
JTAG の機能と
BeagleBone Black
デバッグに必要なハードウェアと
ソフトウェア
● JTAG によるオンチップ・デバッグ
● デバッグに必要なハードウェア
JTAG は,元々デバイスや基板の検査を行うために
BeagleBone Black をデバッグする上で必要なハー
定められたバウンダリ・スキャン・テストの標準規格
ドウェアは,前述した JTAG 端子を利用するための
(IEEE1149.1)ですが,近年はこの JTAG の機能を利
「JTAG デバッガ」です.
用し,オンチップ・デバッグを行う方法が一般的に
JTAG デバッガは世の中に数知れずあります.例え
なっています.
ば,テキサス・インスツルメンツの純正 JTAG デバッ
オンチップ・デバッグとは,CPU に内蔵されたデ
ガ に は「XDS100 エ ミ ュ レ ー タ 」
,ARM 社 の 純 正
バッグ機能を使って,プログラムのデバッグを行うた
JTAG デ バ ッ ガ に は「U-LINK」や「DSTREAM」な ど
め の 機 能 で, プ ロ グ ラ ム の 実 行 や 停 止, メ モ リ や
があります.それぞれ機能や価格はまちまちですが,
CPU の内部レジスタの参照などを行うことができま
基本的には JTAG 端子を利用した JTAG デバッグが目
す.
的です.
今回は,JTAG アダプタとして「HJ-LINK/USB」
(ア
ルファプロジェクト)を使用します.
158
第 4 部 I/O 制御,実験,製作コース
拡張端子を使って外部機器と接続
第
1章
GPIO,A-D コンバータ,
PWM,I2C の使い方
芹井 滋喜
BeagleBone Black は,Linux を搭載した名刺サイズ
のシングル・ボード・コンピュータです(写真 1).
名刺サイズの小型基板ながら Linux を搭載し,USB
ホスト / デバイス,イーサネット,HDMI,microSD
カード・スロット,拡張端子などを搭載しており,購
入してすぐに開発を始めることができます.
BeagleBone Black には豊富なサンプルがあり,SoC
(Sitara AM3359)の内蔵周辺モジュールを使う際に
は,これらのサンプルが役立ちます.また,拡張端子
から GPIO などを使用することもできます.
本稿では,BeagleBone Black の拡張端子を使った
写真 1 BeagleBone Black の外観
GPIO,A-D コンバータ,PWM,I2C の使い方を解説
します.
BeagleBone Black
セットアップ
● PC に繋ぐと USB マス・ストレージ・デバイ
スとして認識される
BeagleBone Black を USB で PC に 接 続 す る と,
USB マス・ストレージ・デバイスとして認識されま
す. 図 1 は,Windows PC に BeagleBone Black を 接
続したときのフォルダの状態です.
BeagleBone Black の USB は複合デバイスとなって
おり,PC からはいくつかの USB デバイスが認識され
BeagleBone Black は,通常,USB で PC に接続して
ますが,マス・ストレージは Windows 標準のドライ
から使用します.
バが使用できます.自動でドライバがロードされるた
め,最初の接続からフォルダを開くことができます.
● マス・ストレージ以外のドライバのインストー
ル
マス・ストレージ以外のドライバは,以下の手順で
別途ロードする必要があります.
BeagleBone Black のフォルダには,START.htm と
いう名前の HTML ファイルがあり,ウェブ・ブラウ
ザで開くことができます.図 2 は,START.htm の画
面です.
START.htm の Step #2 の 項 目 に, 図 3 の よ う に,
対応 OS の一覧が表示されています.
図 1 BeagleBone Black のマス・ストレージの内容
172
該当 OS の「USB Drivers」セル内の文字列をクリッ
AM3359 内蔵マルチチャネル・オーディオ・インターフェース
第
4章
1-1
McASP +外付けコーデックを
使ったオーディオ入出力
袴田 祐幸 / 菅原 大幸
本章では,BeagleBone Black にアナログ・オーディ
うためにオーディオ・コーデック IC に接続して使用
オ 入 出 力 機 能 を 追 加 す る 方 法 を 紹 介 し ま す.
します.
ハードウェアの構成
オーディオ入出力を追加する方法として,USB ス
今 回 は,BeagleBone Black 拡 張 ボ ー ド「XG-
ピーカや USB マイクを接続する方法もありますが,
BBEXT」
( アルファプロジェクト)の構成を例に説明
今回は AM3359 が内蔵しているオーディオ用のイン
します.
ターフェース「McASP」を使って回路を拡張し,アナ
「XG-BBEXT」では,オーディオ・コーデック IC に
ログ・オーディオの入出力ができるようにします.
テキサス・インスツルメンツの TLV320AIC3106 を使
用しています.オーディオ・コーデックの選定にあ
2-2
3-1
3-2
3-3
たっては,McASP に対応していることと,Linux 用
のドライバが公開されていることを基準としました.
McASP(Multichannel Audio Serial Port)とは,テ
公開されているドライバを利用することで,ソフト
キサス・インスツルメンツの CPU や DSP に搭載され
ウェアの開発負担を大きく軽減することができます.
ている汎用オーディオ・シリアル・ポートで,I2S や
図 1 に,AM3359 と TLV320AIC3106 の接続図を示
S/PDIF のほか,複数の通信フォーマットをサポート
し ま す.BeagleBone Black と TLV320AIC3106 は,
しています.
McASP と I2C で接続します.
3-4
4-1
4-2
4-3
McASP の信号は,基本的にクロック,データ,フ
レーム同期信号で構成されます.表 1 に,AM3359 の
● McASP の接続
McASP の端子一覧を記載します.
今回は,McASP のマスタ・クロックには CPU の内
McASP はあくまでディジタル・データの通信を行
部クロックを使用するので,マスタ・クロック入出力
うためのものなので,アナログ・データとの変換を行
端子(McASP0_AHCLKX/AHCLKR)は未接続としま
表 1 McASP 端子一覧
機 能
2-1
2-4
ピーカを直接接続することができません.
I2S や S/PDIF などを
サポートする McASP
1-3
2-3
BeagleBone Black のオーディオ出力は HDMI 経由な
ので,従来のアナログ入力タイプのヘッドホンやス
1-2
説 明
本章での使用例
McASP0_AXR2 出力に設定して使用
McASPx_AXR[3:0]
オーディオ・データ信号の送受信
McASPx_ACLKX
送信ビット・クロック
McASP0_ACLKX 入力に設定して使用
McASPx_FSX
送信フレーム同期
McASP0_FSX 入力に設定して使用
McASPx_AHCLKX
送信マスタ・クロック
内部クロックを使用するため使用しない
McASPx_ACLKR
受信ビット・クロック
McASP0_ACLKX,McASP0_FSX と同期して動作する設定で使
McASPx_FSR
受信フレーム同期
用するため使用しない
McASPx_AHCLKR
受信マスタ・クロック
内部クロックを使用するため使用しない
McASP0_AXR0 入力に設定して使用
197
4-4
4-5
第 4 部 I/O 制御,実験,製作コース
50MHz,16 チャンネル,Android を使って波形表示
第
5章
BeagleBone Black+FPGAボード
で作るロジック・アナライザ
岩田 利王
Android で動く
ロジック・アナライザを作ろう!
「組み込み Android」と聞くと何やらとっつきにくい
イ メ ー ジ が あ る か も し れ ま せ ん が,BeagleBone
高速な信号処理機能とを兼ね備えたシステムを実現し
ます.
BeagleBone Black と
FPGA ボードで作る理由と方法
Black の登場によりそのハードルが一気に下がりました.
ロジック・アナライザのような測定器を実現するに
今回は BeagleBone Black と FPGA(Field Program
は,①信号をいかに高速に取り込むか,② GUI をい
mable Gate Array)を組み合わせることにより,直感
かに構築するか,が主なキーになります.
的で分かりやすい GUI(Graphical User Interface)と,
今回は①を実現するのに FPGA ボード,②を実現
するのに BeagleBone Black を使用します.本節では
これら二つのボードを採用した理由,さらに双方のイ
ンターフェースをとるのに効率的な方法は何かを説明
します.
分解能20ns(50MHz)で16ビット
の信号を観測できる
Androidアプリケー
ションで波形を観測
[波形キャプチャ]ボタンでデータが取り込まれて描画される
16ビット・ジェネレータの
出力をロジック・アナライザ
で当たっている
裏にmicroHDMI(DVI変換アダプタ
経由でディスプレイに繋ぐ)
FPGAボード.
CycloneⅢ
EP3C10E144C8
(アルテラ)搭載
USBホスト(ハブを繋ぐ)
BeagleBone Black
電源5V(AC
アダプタから)
キーボードとマウスを
繋ぐ(ハブ経由)
USBケーブルで
FPGAボードに繋ぐ
写真 1 何を作るか̶̶こんなロジック・アナライザです
これが今回製作する「BBB ロジック・アナライザ」!
BeagleBone Black の USB ホスト・ポートは 1 個しかないのでハブ(3
ポート以上)を介してマウス,キーボード,FPGA ボードに繋ぐ
FPGA ボードは BeagleBone Black から USB 経由で給電される
このようすは以下のサイトで見ることができる
http://www.youtube.com/watch?v=xMH5YJ3hof8
206
写真 2 BeagleBone Black 上で走る Android アプリケーションで
波形描画
これがロジック・アナライザ用 Android アプリケーション− BBB
APP !
BeagleBone Black に搭載の microHDMI コネクタから HDMI ケーブル
→ DVI 変換アダプタを介してディスプレイに繋ぐ
アプリケーションの[波形キャプチャ]ボタンを押すたびにロジック・
アナライザの波形が更新される
このPDFは,CQ出版社発売の「LinuxガジェットBeagleBone
BlackでI/O」の一部見本です.
内容・購入方法などにつきましては以下のホームページをご覧下さい.
内容
http://shop.cqpub.co.jp/hanbai/books/MIF/MIFZ201403.htm
購入方法
http://www.cqpub.co.jp/order.htm