第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
© Copyright 2024 Paperzz