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 などのクロックが必要でした。

続きを読む

周波数成分を 90° 移相した三角波による FM 合成

 約 1 年前の 2019 年 3 月 7 日付けの記事 (こちら) で示した、三角波のすべての周波数成分の位相を 90° 移相して得られた「ずんぐりとした正弦波」状の波形を FM 音源の波形のひとつとして追加し、合成波形を見てみました。
 最小限のパラメタのみを変更可能としたホスト・アプリケーションを作成して波形を表示させています。

続きを読む

PSoC Creator の Verilog-HDL のリダクション演算の不具合 (2)

 PSoC Creator のリダクション演算の問題で、回路自体は変更せずに、ゲートを負論理で表現して OR の部分を単項リダクション演算で記述してみたところ、ひとつの式の中に複数のリダクション演算があっても問題なく変換されることが分かりました。
CLA 回路部分を回路自体は変えずに負論理で表現したものを下に示します。

続きを読む

PSoC Creator の Verilog-HDL のリダクション演算の不具合 (1)

 PSoC Creator のユーザ・コンポーネントとして、(LS)TTL / HCMOS の 4 ビット ALU である 74181 の内部回路を Verilog-HDL で書いていて、「リダクション演算」に関する不具合があることに気が付きました。
 回避する方法も判明しているので、実用上は問題ありません。

続きを読む

TM8211 (2)

 TM8211 / PT8211 のデータシートには、(NXP/Philips 製) TDA1311 と機能コンパチブルであることが記されています。
 TDA1311 では、「Continuous Calibration」と称する方式が採用されています。
 TDA1311 の回路構成としては、16 ビット・データ入力の上位 5 ビット・データについては、基準単位電流源を 0 個 ~ 32 個合成することにより表現し、下位 11 ビットについてはその電流を抵抗ネットワークによって分割して、合計 16 ビット分の分解能を得ています。

続きを読む