2014-09-01から1ヶ月間の記事一覧

ソフト S/PDIF トランスミッタ (16)

STM32CubeMX の「バグ」と思われる現象について触れたいと思います。 ただし、この状態を解消するのは簡単な操作ですみます。 発生する条件/タイミングについては不明ですが、発生した場合には生成された C コードでフラッシュ・メモリの読み出しのウェイト…

ソフト S/PDIF トランスミッタ (15)

今回は補足的な内容について述べます。 まず、STM32CubeMX には次の開発環境、 IAR EWARM 6.70 Keil/ARM MDK-ARM 4.73 Atollic TrueSTUDIO 4.3.1 用のプロジェクト・ファイルを生成する機能があり、自動生成した C コードを指定した開発環境ですぐコンパイル…

ソフト S/PDIF トランスミッタ (14)

STM32CubeMX で (STM32F4xx 用の) C 初期化コードを生成すると、次のファイル、 stm32f4xx_hal_conf.h stm32f4xx_it.h main.c stm32f4xx_hal_msp.c stm32f4xx_it.c が作られます。 このうち、「.c」ファイルにはユーザが記述を追加できる領域があり、「お約…

ソフト S/PDIF トランスミッタ (13)

今回は STM32CubeMX のプロジェクト・ファイル (.ioc ファイル) を掲載し、ソース・プログラムの本体は次回の記事に掲載します。 後に示すリストを「コピー・アンド・ペースト」してプロジェクト・ファイルを作成し、STM32CubeMX に読み込ませ、C コードを生…

PT8211-S の測定

aitendo で販売されている、高性能ではないけれど安価 (単価 50 円) な 16 ビット・ノン・オーバーサンプリング・オーディオ DAC「PT8211-S」の特性を測定してみました。 パッケージは 8 ピン SOP (1.27 mm ピッチ) で BU9480F と同じですが、当然ピン・コン…

ソフト S/PDIF トランスミッタ (12)

今回はデータの「生成」側と「消費」側との「同期」の方法についての話です。 次のような不具合、 送信中のデータを新しいデータで上書きしてしまう (オーバーラン・エラー) 送信データが必要なタイミングまでに新しいデータが間に合わない (アンダーラン・…

ソフト S/PDIF トランスミッタ (11)

Nucleo ばかりでなく、同じ STM32F4xx ファミリのチップ (STM32F407VGT) を使った「STM32F4-Discovery」ボード用のプログラムも作ってみました。 STM32CubeMX アプリで STM32F4-Discovery ボード用のコンフィギュレーションでプロジェクトを作成し、デフォル…

ソフト S/PDIF トランスミッタ (10)

今回はオーディオ・データの BMC エンコード・プログラムの本体についてです。 DMA 機能を持つ Cortex-M0 プロセッサとして、手持ちの Nuvoton NUC120LE3AN についてもプログラムを作ってみたところ、Cortex-M3/M4 用と同じプログラム記述では効率がよくなか…

ソフト S/PDIF トランスミッタ (9)

今回はオーディオ・データの BMC エンコードと変換テーブルの作成についてです。 16 ビット・オーディオ・データを上位 8 ビットと下位 8 ビットとに分割し、それぞれを BMC 符号化して 2 つの 16 ビット・パターンを得ます。 このエンコードを 1 ビットずつ…

ソフト S/PDIF トランスミッタ (8)

秋葉原へ出かけて、 FM 音源チップ YMF276-M (FM 音源ガチャ) STM32 Nucleo-F411RE (マルツ) を買ってきました。 YMF276-M については別の記事で触れることにして、今回は Nucleo F411RE について書きます。 Nucleo シリーズの F411RE 以外のボードについて…

ソフト S/PDIF トランスミッタ (7)

前回の話に関する補足です。 1 ブロックの内容を繰り返し送信する場合、 1 ブロックは 192 オーディオ・サンプルで構成されるので fs = 48 kHz では、4 ms 周期 (周波数 250 Hz) で同じ波形が繰り返されることになります。 ここで、送信バッファの 1 ブロッ…