AC97

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

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

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

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

PIC32MX220F032B (10) -- AC97 コーデックを接続する (7)

今回は、また別の AC97 コーデック (Analog Devices Inc. 製 AD1881) との接続を試しています。 AD1881 は AC97 コーデックとしては、かなり初期の製品で、ADC/DAC ともに 16 ビット分解能のものを 2 ch 内蔵するだけです。 その他の特長としては、 スレーブ…

PIC32MX220F032B (9) -- AC97 コーデックを接続する (6)

別の AC97 コーデック (SigmaTel 製 STAC9708) との接続を試してみました。 これは古い 5.1 ch 出力オーディオ PCI カードから取り外してきたものです。 STAC9708 には 18 ビット分解能の DAC が 4 ch 内蔵されており、オーディオ・カードでは 2ch DAC 内蔵…

PIC32MX220F032B (8) -- AC97 コーデックを接続する (5)

Realtek 製 AC97 コーデック ALC650 の DAC 入力の HPF について調べてみました。 ALC650 は DAC 6 ch と SPDIF 出力 2 ch とを備えています。 ADC はステレオ 2 ch のみですが、その変換出力のディジタル・データを (フロント) ステレオ出力に「ループバッ…

PIC32MX220F032B (7) -- AC97 コーデックを接続する (4)

AC97 コーデック (Realtek (旧Avance Logic) 製 ALC650) を実装し、AD 入力、DA 出力ともに正常に行えることを確認しました。 しかし、DAC 側には HPF (ローカット・フィルタ) が入っていて、DC が出力できないという残念な事実も判明しました。 ALC650 には…

PIC32MX220F032B (6) -- AC97 コーデックを接続する (3)

AC97 コーデックとインターフェースする信号の波形写真を示します。 まだコーデック自体は実装しておらず、ソフトウェアの方もアプリケーションの入出力部分は実装していません。 ダブル・バッファ構成の DMA バッファおよび割り込みハンドラで 1/2 転送完了…

PIC32MX220F032B (5) -- AC97 コーデックを接続する (2)

PIC32MX220F032B には DMA コントローラが 4 ch 内蔵されています。 ひとつの DMA コントローラを入出力に兼用できないので、AC97 コーデックの ADC 入力と DAC 出力とを同時に利用する場合には DMA コントローラを 2 ch 使用することになります。 DMA 用の…

PIC32MX220F032B (4) -- AC97 コーデックを接続する (1)

PIC32MX に AC97 コーデックを接続する実験をしています。 と言っても、現在使用している基板上に実装スペースがないので、実際にはまだ接続しておらず、信号をオシロで観察しながらプログラムを書いている状況です。 当初 DMA や割り込みがうまく起動せず悩…

SH-2A 基板に AC97 コーデックをつなぐ (8)

外部回路により SSIWS / SYNC を発生させる方式は、予定していた回路では問題があり、回路の追加が必要になったので、いったん保留して、仕切り直したいと思います。 実験中の回路を下に示します。

SH-2A 基板に AC97 コーデックをつなぐ (7)

外部回路により SSIWS / SYNC を発生する方式についても実験してみます。 ATmega48/88/168/328 や ATtiny2313 は手持ちがあるのですが、さすがに 28 ピンや 20 ピンの IC を実装して実験する気にはなれなかったので、8 ピンの ATtiny13 を買ってきて使うこと…

SH-2A 基板に AC97 コーデックをつなぐ (6)

今回の実験に使っている ALC650 はプライマリ・コーデック専用で、セカンダリ・コーデックとしては使えないので試すことはできませんが、セカンダリ・コーデックとして動作させると下の図のように SH-2A 側のリソースの消費が少なくなります。

SH-2A 基板に AC97 コーデックをつなぐ (5)

今回は、実験に使っている回路を説明します。 ポリシーとしては、SH-2A 内部のリソースを活用して、外部の「回路」は使わず、「配線」だけで実現することを目指しました。 その代わりに、代替不可能な貴重なリソースを「浪費」することにつながってしまいま…

SH-2A 基板に AC97 コーデックをつなぐ (4)

今回からは、実際の接続について、いくつかの方法を説明します。実験に使った回路については次回説明します。 まずは、外部回路を使うものの、SH-2A 側のリソースの消費が小さく、ソフトウェアの面でも負担の少ない「実用的」な接続方法を下に示します。

SH-2A 基板に AC97 コーデックをつなぐ (3)

前回は、実用性はともかく、原理的には SH-2A のシリアルサウンドインターフェース (SSIF) で AC97 コーデックの 1 フレーム分の全データ 256 ビットを取り扱えることを示しました。 実用的には、全データではなく、一部のデータを扱うことになります。 今回…

SH-2A 基板に AC97 コーデックをつなぐ (2)

AC97 コントローラと、AC97 コーデックとの間のディジタル・インターフェースは、「AC-link」と呼ばれる 5 本の信号を使いますが、リセット信号を除外すれば 4 本となり、また、SDATA_OUT/SDATA_IN は入出力を同時に行うためのものなので、片方向に限れば 3 …

SH-2A 基板に AC97 コーデックをつなぐ (1)

SH-2A のシリアルサウンドインターフェース (SSIF) を利用して、 AC97 コーデックをつなぐ実験をしています。 一応、コーデックから音を出すことには成功しました。 AC97 とは、正式には「Audio Codec '97」と呼ばれる PC 用のサウンドインターフェース規格…