STM32F446RE 内蔵の SAI モジュールの AC97 モード (2)

 AC97 では、1 オーディオ・フレームは 256 ビットから構成されており、「BIT_CLK」 (ビット・クロック) の周波数は、 256 × 48 kHz = 12.288 MHz となります。
 256 ビットの 1 フレームはさらに、16 ビット幅のスロットが 1 個、20 ビット幅のスロットが12 個の、合計 13 個のスロットに分割されます。 各スロット内のデータは MSB ファーストで送受されます。

続きを読む

STM32F446RE 内蔵の SAI モジュールの AC97 モード (1)

 STM32F446RE などに内蔵されている SAI (Serial Audio Interface) モジュールの AC97 モードを使って、AC97 コーデックとの接続を試してみました。
 「AC97 リンク・コントローラ」に「AC97 プライマリ・コーデック」ひとつと「AC97 セカンダリ・コーデック」ひとつを接続する構成の図を、AC97 のスペックの資料に準じて示します。

続きを読む

STM32F446RE 内蔵の SAI モジュールの SPDIF 出力

 STM32F446RE などに内蔵されている SAI (Serial Audio Interface) モジュールでは、通常の 2 チャネル・ステレオ・オーディオ DAC/ADC とのインターフェースに加えて、 3 ch 以上のマルチ・チャネル構成や、AC97 や SPDIF などのプロトコルに対応しています。
 リファレンス・マニュアルでは、SPDIF モードの場合には SAI モジュールには 64 fs クロックを入力すると解釈できる記述がありますが、実際に試してみたところ、128 fs や 512 fs などのクロックが必要でした。

続きを読む

STM32CubeIDE 対応 TGSTM32F4 (2)

 「STM32F4 Discovery」(STM32F407VGT 搭載) 用のFM音源プログラム 「TGSTM32F4」を「STM32CubeIDE」に対応させたパッケージを公開しました。(→こちら)
上記リンクをクリックすると Dropbox ボックスが開きます。 (Dropbox のアカウントを持っている必要はありません)

続きを読む

STM32CubeIDE 対応 TGSTM32F4 (1)

 STMicroelectronics 製 STM32F4 マイコン・ボード 「STM32F4 Discovery」(STM32F407VGT 搭載) 用のFM音源プログラム 「TGSTM32F4」(2012 年 04 月 18 日に公開) では、開発環境として、無償版の Atollic TrueSTUDIO for STMicroelectronics STM32 Lite V 2.3.0 を使用しています。
 このバージョンの TrueSTUDIO では、無償版にもかかわらずコードサイズの制限がなかったのですが、その後継のバージョンではコードサイズ 32 KB の制限が加わり、TGSTM32F4 プログラム公開の時点で V 2.3.0 はダウンロードできなくなっていました。

続きを読む

新版FM音源プログラム (28)

gcc の「インライン・アセンブラ」で書いた ARMv7E-M (Cortex-M4) 版の acc_calc_slot() 関数のリストを下に示します。 「中身」は armcc 版と同等です。

続きを読む

新版FM音源プログラム (21)

STM32F4 シリーズには、「Adaptive real-time accelerator」(ART Accelerator) と称するフラッシュ・メモリ読み出しのためのキャッシュ機構が備えられています。
フラッシュの読み出し幅は 128 ビット (16 バイト) で、フラッシュ上の命令 (I-Code) に対しては 64 ライン分の命令キャッシュが用意されており、プリフェッチされた命令が格納されます。
命令キャッシュ・メモリ容量としては、16 × 64 = 1024 バイトとなり、90 バイト足らずの calc_slot() 関数は全体がキャッシュ・メモリ内におさまります。
フラッシュ上のデータ (D-Code) に対しては 8 ライン分のデータ・キャッシュが用意されています。

続きを読む