STM32F4-Discovery 用FM音源プログラム -- TGSTM32F4 (6)

STmicroelectoronics のサイトに、STM32F4XX ファミリの (I2S クロックを含む) クロック設定のための ツールが用意されていることが分かりました。
Excel のマクロとして実現されていて、グラフィカルに表示されます。
ドキュメントとしては、アプリケーション・ノート

AN3988
"Clock configuration tool for STM32F40x/41x microcontrollers"

があり、Excel のマクロのファイルは、「stm32f4_clockconfig.zip」という名前になっています。
下に実行した場合の画面のスナップショットを示します。 (クリックで拡大します)
stm32f4_clock_conf.png
これは、HSE (外部高速クロック) を 8 MHz とし、I2S のサンプリング周波数 48 kHz、MCLK 生成ありの状態に設定した場合です。
この画面で指定した通りの設定にするためのスタートアップ・プログラムのソース「system_stm32f4.c」を生成する機能もあります。
ただし、PLLI2S 関係は、PLL_N、PLL_R の値の定義部分だけで、PLL を設定するプログラム自体は生成されません。
これに対しては、STM32F4 Discovery のサンプル・プログラム「Audio_playback_and_record」のプロジェクトに含まれる「system_stm32f4.c」内の設定プログラム部分の記述をコピーして利用するという手があります。
また、私は Excel 97 という非常に古いバージョンしか持っていないので、ソース生成などの動作でエラーとなり、試せない機能が多く、上の画面は「Expert」モードという、手動入力モードで実行させたものです。
FM 音源プログラムのほうは、CS43L22 を DMA で使用し、サンプリング周波数を可変できるところまで進みました。
現状では、STM32F4 Discovery 本体のみで、内蔵デモ曲を演奏させて確認していますが、MIDI 入力でテストするためには外部のハードウェア工作が必要となり、ちょっと進行のペースが落ちます。