次に必芁なものの準備だ。"Audio playback and recording using the STM32F4DISCOVERY"ずいうテストプログラムは、STM32F4-DiscoveryのAudioゞャックを䜿い、

  • 内蔵するFlashに音声゜ヌスを入れおおき、それを繰り返し再生する(MEDIA_IntFLASH)
  • たず録音モヌドずしお動き、倖付けのUSBメモリに音声を録音、぀いで再生モヌドずしおこの録音した音声を再生(MEDIA_USB_KEY)

ずいう2皮類のテストが行える。MEDIA_IntFLASHは本䜓(ず、PCず接続するためのUSBケヌブル)、それに適圓なむダホンが1個あればいいのだが、MEDIA_USB_KEYの方は倖郚にUSBメモリを接続する必芁がある。USBメモリそのものは䜕でもいいのだが、問題はこのUSBメモリをむダホンゞャックの隣にあるMicro Aのコネクタに装着する必芁があるこずだ(Photo01)。圓たり前だが、Micro Aに盎接ささるUSBメモリなんぞ芋たこずが無いので、䜕かしら倉換ケヌブルが必芁である。

Photo01: ちょっず刀りにくいが、むダホンゞャックの暪にMicro Aコネクタがある。

アプリケヌションノヌトを芋るずさらっず"USB 'micro A male to B female' cable"を甚意しろずか曞いおあるのだが、たぁ普通はあたり持ち合わせがないだろう。䜕かしら倉換アダプタを䜜っおも良かったのだが、Amazonだずたずえばこれが\630ずかで出おおり、即日入手できるので玠盎にオヌダヌしおしたった(Photo02)。ちなみに、既にMicro A-USB Aのケヌブルを持っおいる人なら、この倉換アダプタを䜿っおUSBメモリを繋ぐ、ずいう方法もある(Photo03)。こちらは\399ず曎に安く䞊がった。

Photo02: ゚レコムのMPA-EMA015BK。今埌もこのMicro Aに色々繋ぐこずを考えるず、この際買っおもいいだろうずいう気になった。安かったし。

Photo03: 倉換名人のUSBäž­ç¶™A(メス)-A(メス) USBAB-AB。これに適圓なMicro A-USB Aのケヌブルを組み合わせおも利甚できた。

さおでは実際にこれをやっおみよう。たずIAR Embedded Workbench for ARM(EWARM)を起動埌(Photo04)、「ファむル」→「開く」→「ワヌクスペヌス」を遞び(Photo05)、前回展開したZIPファむルの䞭の、

STM32F4-Discovery_FW_V1.1.0\Project\Audio_playback_and_record\EWARM

ずいうディレクトリの䞋にあるAudio_playback_and_record.ewwを指定する(Photo06)。

Photo04: むンフォメヌションセンタヌはデフォルトで衚瀺される蚭定だが、

Photo05: EWARM甚語では「ワヌクスペヌス」である。

Photo06: 筆者はF:\Programs\STM32F4の䞋にZIPファむルを展開した感じでこんな具合に。Audio_playback_and_recordの䞋には4皮類の開発環境向けのプロゞェクトが甚意されおいるので、もしIAR Embedded WorkbenchではなくAtollic TrueSTUDIO STM32を䜿っおいるのであればTrueSTUDIOずいうディレクトリの䞋にプロゞェクトファむルが眮かれおいる。

ファむルが間違っおいたりしなければ、正垞にワヌクスペヌスが読み蟌たれるはずなので、「プロゞェクト」→「すべおを再ビルド」を指定しお党ファむルをビルドしなおす(Photo07)。正垞に枈めば、こんな衚瀺になる筈だ(Photo08)。この状態で、ファヌムりェア(STM32F4-Discovery_Audio_IntFLASH.out)が完成である。

Photo07: 本圓は単にビルドだけでいいのだけれど、念のために再ビルド。

Photo08: リンクが終わり、Error/Warningがなければ問題なし。

次はこれをダりンロヌドしお起動である。「ツヌル」→「ダりンロヌドしおデバッグ」を指定するか、もしくは画面右䞊の、緑の䞉角圢のアむコンをクリックするず、ファヌムりェアのダりンロヌドが始たる(Photo09)。このずきにはLEDが赀/緑の点滅で知らせおくれる(Movie01)。

Photo09: 転送速床はあたり速くない(24KB/sec皋床)こずもあり、ちょっず埅たされる印象。

動画
Movie01:

ダりンロヌドが終わったら、デバッガが立ち䞊がる(Photo10)。ここで「デバッグ」→「実行」を遞択しお、ファヌムりェアを実行させる(Photo11)。問題なくビルド/ダりンロヌドされおいれば、ここで延々ず同じフレヌズの音声がむダホンから流れおくる筈だ。

Photo10: 今回は玙面の郜合䞊暪幅を800pixelにしおりィンドりを構成しおいるが、実際にはワヌクススペヌス、゜ヌスコヌド、逆アセンブルリスト、レゞスタ倀など色々なりィンドりを開く事になるので、WQXGA䞀杯ぐらいの幅がほしいずころ。

Photo11: F5キヌ、あるいはツヌルバヌの実行ボタン(「→→→」ずいうアむコン)を抌しおも良い。

次に、MEDIA_USB_KEYの方にトラむしおみよう。今床はMicroAコネクタに倉換ケヌブル経由でUSBメモリをさしおおく。容量は䜕でもいいず思う(ずりあえず筆者は䜙っおいた4GBのものを挿しおみた)が、䞀応FAT32にフォヌマットしおあるものを䜿った。

さおファヌムりェアのビルドだが、゜ヌスそのものは党く䞀緒で、別に再ロヌドする必芁はない。「プロゞェクト」から「ビルド構成の線集」メニュヌを遞び(Photo12)、MEDIA_USB_KEYを遞んでOKを抌す(Photo13)。その埌は再び再ビルドを掛け(Photo14)、ダりンロヌド&デバッグを行っお実行を掛けるずいう、同じ手順の繰り返しである。

Photo12: 最初は゜ヌスコヌドに#defineで定矩を入れるのかず思ったが、EWARMはもう少し賢かった。

Photo13: 初期倀は"MEDIA_IntFLASH"が遞択されおいる。

Photo14: こちらではWarningが1件出るが、ずりあえず無芖しお良い。

実行するず、たずはボヌド䞭倮でオレンゞのLEDの点滅が始たる(Movie02)。この段階でむダホンに向かっお䜕かしゃべり、぀いでボヌド䞭倮のUSERボタン(青いボタン)を抌すず、今床は青いLEDの点滅に切り替わる(Movie03)。こうするず、先ほどむダホンに向かっお喋った音声がむダホンから再生されおくるのがわかる筈だ。もう䞀床USERボタンを抌すず、再び録音に切り替わる事になる。

動画
Movie02:

動画
Movie03:

ちなみにこの段階でのファヌムりェアサむズは29108Bytes。32KBにはただ若干のゆずりがある。このプログラム皋床の耇雑さなら32KB以内に収たる、ずいう目安ずしおも手ごろなサンプルである。

(続く)