STARM マイコン基板 (11) -- USB オーディオ
「シバ某」さんの Web サイト (→こちら) に、STM32F103 を USB オーディオ (USB スピーカ) として機能させるサンプルプログラム「Audio_Speaker」を CQ-STARM 基板用に修正して動作させたという記事が掲載されています。
「Audio_Speaker」プロジェクトは、開発ソフトをインストール後、サンプルプログラムのフォルダを探検している時から気になっていました。
実際に動かした方がいるということで、おくればせながら、私もプロジェクトのファイルに修正を施し、うまく動作しました。
この時、Web サイトの記述を見ながらではなく、自分流に修正を行いました。
そして、Web サイトに戻り、詳しく読んでいくと、微妙に記述が食い違うことが感じられました。
実は、シバ某さんが動かしたプロジェクトと、私の動かしたプロジェクトとは、同一ではなく、別のフォルダにある別のプロジェクトでした。
シバ某さんは付属 CD-ROM の
\soft\ST\USB関連のサンプル・プログラムおよびマニュアル\STM32F10xUSBLib\USBLib\demos\Audio_Speaker
のプロジェクトを扱っていて、私は IAR Systems の開発ツールがインストールされているフォルダの
ARM\examples\ST\STM32F10x\IAR-STM32-SK\AudioDevice
を見ていたのでした。
両者とも USB オーディオのサンプルプログラムであり、「Audio_Speaker」、「AudioDevice」と似たプロジェクト名のため、混同したのです。
「AudioDevice」の方は、IAR Systems 社の「IAR STM32-SK」評価ボード用のサンプルで、STM32-SK ポード上の LCD に表示するためのプログラムも含まれています。
その他の主な相違点は、
プロジェクト名 | Audio_Speaker | AudioDevice |
---|---|---|
PWM 周波数 | 約 280 kHz | 約 70 kHz |
PWM ビット数 | 8 | 10 |
データ形式 | 22 kHz 8 bit mono | 48 kHz 16 bit mono |
機能 | 再生のみ | 再生/録音 |
となります。
「FM音源プログラム」としては、USB オーディオを取り込むメリットはないに等しいのですが、「Audio Interface Class」のサブクラスとして「MIDIstreaming Interface Subclass」があり、これを利用して USB-MIDI インターフェース機能を取り込もうと考えています。
これをスクラッチから書くのは大変ですが、「Audio Interface Class」のサンプルが2つあるわけですから、これらを応用して実現できるのではないかと考えています。