2012年6月18日月曜日

SACDプレーヤー DSDデータ伝送6

昨日まででSCD-XE600単独での再生が確認できましたが、いくつか微調整を行いました。


 ・モード設定レジスタの初期値をデザイン毎に個別指定

   SACDP DSD ADAT転送ボード、MatrixSW、モバイルDDC、各々のモードでの通常設定値は異なるので、通常設定値が初期値にできるように変更。
   今回は、SystemVerilogのInterfaceで初期値を外部モジュール(使用形態毎の別ファイル)で設定するようにしてみました。


 ・SDカードプレイヤー用設定/ステータスレジスタ別モジュール化

    SACDP DSD ADAT転送ボードには、必要ない機能であり、またレジスタモジュールが結構大きくなってきたので、分離しました。


 ・クロック自動切替え機能

    MatrixSWから 11.289600MHz クロックを供給して動作しますが、MatrixSWからのクロック供給が無いとき、SCD-XE600が動作できなくなるだけでなく、その後クロック供給が復旧しても正常に動作しないようです。
   MatrixSWからのクロック供給が無い場合、SACDP DSD ADAT転送ボード内のCXOを元に11.289600MHz をSCD-XE600基板に供給できるようにしないと、立ち上げ手順が必要になるなどいろいろ使い勝手が悪くなります。

  今回はCycloneIVのPLLのクロック スイッチオーバー機能を使いました。2つのクロックソースを切り替えられる機能です。この機能は、自動とマニュアルがありますが、どちらも選択中のクロックソースが正常ならば、選択中のクロックを選択し続け、MatrixSWからのクロックが断状態から復旧してもスイッチオーバは発生しません。
  clkbad0およびclkbad1という各入力クロックの状態を示す信号と、Activeclockという選択中のリファレンスクロックを示す信号により、ボード内のCXO選択中にclkbad0が"0"(正常)になったら、clkswitchというクロックマニュアル切り替え信号をアサートするロジックを追加しました。

 これにより、MatrixSWからのクロック供給が無いときは、ボード内のCXO、MatrixSWからのクロック供給があるときはMatrixSWからのクロックを選択して、PLLが同動作し、11.289600MHz、 22.579200MHz  、 90.3168MHzを生成します。

 実際にMatrixSWからのクロック供給が無い状態で、SCD-XE600の電源スイッチをOFF⇒ONさせても正常に起動し、その後にMatrixSWからのクロック供給を行うとリファレンスがMatrixSWからのクロックに切り替わるようになりました。



クロックスイッチオーバー回路


下図が現状の構成です。未だL/Rチャネルだけで5.1ch転送はサポートできていません。

SACDP DSD ADAT転送ブロック図


 このあと、MatrixSWと接続し、MatrixSWに接続したBuffaloIIでの再生もできることまで確認しました。

 もうひとつ、DE0-nanoのUSBコネクタを引き出せるようにしたいので、 SCD-XE600 の右側面カバーに丸い穴を開けました、位置をかなり雑に決めたため結構ずれてしまい、シャーシパンチで穴を広げてなんとか挿せるように..orz


DE0-nano USBコネクタ用ホール

 とりあえず一段落、そのうち5.1ch転送も作り込みます。

0 件のコメント:

コメントを投稿