S/PDIF信号はどうなっているのか?



Windowsで音楽を聴いていると、S/PDIFで信号を出すことになりますが、
どういった形で出力されているのか気になったことはありませんか?

一般的なwavサウンドは、44.1kHz16bitです。

これをソフトが処理し、OSのハードウェアミキサーが処理し、
S/PDIF信号として出てくるわけですが、
内部処理のビット数ってどうなっているんでしょう?

24ビットにしてから処理されているのでしょうか。
それとも16ビットで処理されてしまうのか。

ここのところがダメだと、出てくる信号の品質はだいぶ落ちてしまいます。

とりあえず調べてみることにしました。


方法

S/PDIF信号をCS8416で受け、
CPLDに転送。
CPLDからLEDに表示する。
ついでにLRCKをPICでモニタし、
動作周波数を求める。


今回CS8416をソフトモードで動かそうと思います。
難しくはないと思いますが、初めてのことなのでちょっと心配。

制御はPICで行います。


MPLABX(のXC8)には、ビット単位で変数に名前をつける機能があって
非常に便利です。
マイクロチップのサイトにあるUSBなんかのサンプルコードには書いてあるんですが
一般のサイトでは見かけません。
そもそもMPLABX(XC8)ライブラリを公開しているところがほとんどないんですが
企業秘密なんでしょうね。


これでCS8416の設定はできました。
あとは、これを受けるCPLDのコードを書けばいいわけですね。


これで24個のLEDをつければ、片チャンネルの表示はできます。
信号を反転させているのは、

反転すると光る:信号0
反転させないと光る:信号1
光ったまま:信号が変化している

ということで、Windowsから適当な直流データを送ったとき
なんらかの事情で信号が変化していないか確認するためです。

CPLDでプログラムできるロジックは思っていたより非常に少なく
しかもほとんど使い方を知らないのでフォーマットは右詰め24bitに固定しています。

CPLDライタは、USB-Blasterもどきを使いました。
優秀なソフトに感謝です。


さて、まだ作ってないんですが、動くのはいつになるかな?


結果へ


戻る
inserted by FC2 system