Renew Simple DAI ? の巻き 2013.11.28

こんなご意見いただきました。





そういえばDAI単体の機能の基板って、ほとんど無い状態ですね。
DAIはディジタルオーディオの入力のベースになるものですから、ないと不便です。

DAC1242−5もリリースしたことでもあるので、それとつかえるように何かシンプルなDAIも
考えてみましょう。

まずは使い慣れたCS8416をつかったDAI基板を考えてみました。
基板サイズはDAC1242-5と同じにしてみました。
これで2階立てが可能になります。
それと、色々な機能の表示ができるようにLEDをいくつか搭載できるようにしました。

こんな感じ?


試作基板到着!

早速組み立てました。
久しぶりにSSOPパッケージのICを使用しないので、お気楽に作れます。
まあ、半田ミスはないでしょう!

完成しました。

あちゃー!!!

動作確認のため、PICに簡単なソフトを入れて電源OK!
実験用電源の電圧表示がミルミル下がって0.3Vくらいまで落ちていきました。
あちゃー!
どこかでショートしているようです。どこだろう?

あらためて基板パターンCADを眺めてみると、間違い発見しました。
なんと、電源部分の電解コンデンサのパターンで+極の部分が同時にGNDにも落ちていました。
 
パターンミス発見! 電解コンデンサのランドパターンの真ん中は+極になりますが、同時にベタGNDにも接続されていました。

ぐりぐり!

GNDに接続されているパターン削ればいいのですが、70umのパターンを削るのは大変なので、
ドリルの刃をつかってぐりぐりとランドごと削りとります。これが簡単な修正方法です。

ドリルの刃をつかってパターンを削除です。

やっと動いた〜!

パタンカットをしてようやく動きだしました。やれやれです。

パルストランスは?

今回の基板では、SPDIFの出力信号機能もつけました。
バッファーのICは74AHCU04をつかっていますが、パルストランスはなにがいいかな?

お遊びで電源用のインダクターをばらしてパルストランスを作ってみることにしました。

一般のインダクターです。これをばらしてパルストランスを作ってみましょう。

だめだなあ〜

インダクターをばらして作ってみたパルストランスですが、あまり出力波形が綺麗ではありません。
これでも動作しないことはないとはおもいますが、ちょっとこの波形では精神衛生上よくないでしょう。
やっぱり、もっと特性のいいフェライトリングを使う必要がありそうです。

一般のインダクタをばらして作ってみたパルストランスの波形はあまり綺麗ではありません。

専用のパルストランスを使ってみる!

BBSでも紹介いただいたパルストランスをつかってみることにしました。村田製作所のDA100Cシリーズです。

RSコンポで200円程度で購入できます。

やっぱり専用のパルストランスは出力波形が綺麗です。ほとんど波形のダレがありません。
これなら音質面でもよさそうです。それに、なにより精神衛生的によさそうです。

専用のパルストランスをつかると、流石に出力波形も綺麗です。ここではDA102(1:1)を使いました。


動作確認中の様子です。

ソフトを書いていきましょう!

まずは、入力チャンネル設定、フォーマット設定、動作状態を示すLEDの機能定義をしましょう。
  
入力チャンネル設定、フォーマット設定、動作状態を示すLEDなど。

出力フォーマットの設定
L:SHORT H:OPEN
FMT1 FMT0 フォーマット
Right Justified 24Bit
Right Justified16Bit
Left Justfied
Philips I2S
出力クロックの設定
L:SHORT H:OPEN
CLK1 CLK0 フォーマット
Reserved
128fs:96kHz以下(32〜96kHz)
256fs:96kHz超え(176.4〜192kHz)
128fs
256fs

入力の選択はロータリースイッチなどで切り替える方式と、プッシュスイッチでインクリメントできるように2通りの方式を考えてみましょう。

入力Ch.の選択(ロータリースイッチ使用時)
L:P21と接続 H:開放
Ch.0 Ch.1 Ch.2 Ch.3
P25 L H H H
P24 H L H H
P23 H H L H
P22 H H H L

入力Ch.の選択(プッシュスイッチ)
L:P21と接続 H:開放
Ch.0 Ch.1 Ch.2 Ch.3
P25 Lの毎に入力CHをインクリメント
P24 H 電源投入時に左記
の状態になっていること。
P23 L
P22 L

選択Ch.の表示
Ch.0 Ch.1 Ch.2 Ch.3
P20 H L L L
P19 L H L L
P18 L L H L
P17 L L L H

LED表示
LED 状態
D1 点灯時:32kHzあるいは44.1kHz
D2 点灯時:48kHz
D3 点灯時:88.2kHz
D4 点灯時:96kHz
D5 点灯時:176.4kHzでロック
D6 点灯時:192kHzでロック
無点灯時は所定のクロック入力がない状態。
全点滅時はI2C通信エラ(H/W不良)


FN1242は癖がある? 2013.12.11

ソフトを書き込んで、動作確認!

構成は
Renew FFASRC → Renew Simple DAI → DAC1242-5
となっています。
基本的な動作はOKを確認しましたが、ときどき、動作が不安定な時がある。
不安定というのはDAC1242-5のアナログ出力が出ないということ。
Renew Simple DAIからの信号は出ているので、DAC1242-5側の問題ということに
なる。

なぜだろう?わかった!
現象としては、Renew Simple DAI(以下DAI)のSPDIF入力信号を入れずに、
電源を立ち上げると、DAC1242-5が動作しないようだ。
これはCS8416のレシーバが未入力のときには、マスタークロック(MCLK)が
低周波数になってしまうのでFN1242Aの内部処理が進まないからではないかと
思います。FN1242Aをハードウエアモードで使用する場合は問題ないのですが、
モノラル出力で使うためには、シリアル制御にしてコマンドを書き込む必要が
あります。おそらく、MCLKがコマンドの処理がうまくいってないのかな?
データシートを見るとMCLKの最低周波数は既定されていません。
しかしながら、LRCKの最低周波数は10kHzと規定されています。おそらくこれに
ひっかかっているかも。SPDIF入力が無い場合のCS8416のLRCKの出力は概ね
7kHz程度です。
 ん〜。癖のある石だな〜。

ちょっとソフトを変更。

FN1242Aにコマンドを送出してもうまく処理しているかどうかについては
外部からわかりません。ということで、しつこくコマンドを送出することに
しました。送り過ぎるのもなんなんで、およそ0.5秒毎に同じコマンドを送る
ことにしましょう。

その前に 2013.12.14
こんなご意見もいただきました。CS8416はPLLがアンロックのときにシステムクロックに強制的にOMCK
を出力する機能があります。


これは知ってはいましたが、なんとかH/Wの追加なしでいきたいな〜っとは思っていましたが、
DAC1242-5側のソフトを修正するのもややこしいので、なんとかDAI側で解決できるか試してみましょう。

クロック追加!

ということで、基板上に適当なクロック発信器を追加しました。
ここでは25MHzの発信器を載せています。
秋月の年始の福袋に入っていたものです(笑)。

さて、外部クロックを使ってみました。

あれ? 2013.12.15

ソフトを修正してスイッチON。最初に入力は何もつないでいません。
PLLのアンロックを監視して制御しているので、出力は外部発信器のクロックがそのまま出力されます。
そして、入力が入ればその周波数に応答してクロックが変更します。

 
未入力時は外部クロックがそのままに。           入力が入ると256fsの出力がでてきました。

ここまではOKです。DAC1242-5との接続でも、問題となった立ち上がり時の不安定さも解消されたようです。

では、外部クロック信号がない場合はどうなるか?要は水晶発信器を取り付けない状態にしてみました。
まずはSPDIF入力がある状態で電源ON。問題なく出力されます。
次に、SPDIF入力をはずします。そうするとSCLK出力はなくなります。まあ、当然ですね。

つぎに、再度SPDIF入力を入れてみます。あれ? 。出力が回復しないな〜? なぜかな。
ソフトの修正に問題ありかな?

なるほど

「PLLがアンロック時には外部クロックを出力に」を選択した状態にして、外部クロックが未入力にされてしまうと、
一旦PLLがアンロックになると、たとえSPDIF入力がはいってもPLLは再度ロックしないという状況に陥るようです。
外部クロックを途中で入力してやると、PLLが再度ロックするようになります。
すなわち、外部クロックを使用するかしないかは、あらかじめ決定しておく必要があるということみたいです。

これでいきましょう 2013.12.22

※ほんと師走になると忙しくなっていやになっちゃいますね。久しぶりの作業再開です。

外部クロックを加えようか考えましたが、もともとシンプルDAIをコンセプトで考えていましたので、
やっぱり外部クロックはなしにしましょう。DAC1242-5との接続は注意(SPDIF入力がある状態でないと
うまくDAC側が起動しない)が必要ですが、他のDACは問題ないでしょう。
 というわけで、このまま使うことにしましょう。

備忘録でV1基板の修正箇所を記しておきましょう。

C12、C13の真ん中のランドがベタアースに繋がっているので、そこを削除します。
こんな感じで半田面のパターンをカットします。



ドリルの刃を使って修正するイメージです。

 
2箇所のランドでベタアースに繋がっているところを削除します。


拡大するとこんな感じ。

方法はドリルの刃でクリクリと手で回してやれば簡単に削れます。
まちがっても電気で回すと、一気に基板を貫通してしまいます。


ドリルの刃を手で回して、軽く彫る感じです。


(おしまい?)