Renew FFASRCは実現するか? 2013.9.21
ASRCはディジタルオーディオにおいて、サンプル周波数を変更する機能をもち、たとえば44.1kHzを192kHzに
アップサンプリングしたり、反対に192kHzを444.1kHzにダウンサンプリングできる便利な機能をもっています。
私もはじめてASRCを作成したのが2005年(もう8年前?)で、それから色々とバージョンアップしてきましたが、
基本的には入力はSPDIFだけでした。最近の入力ソースではPCM(SPI)が増えてきているので、直接的に
PCM信号がアップサンプリングできると便利だな〜と思うようになりました。
現在リリース中のFFASRCの構成は
SPDIF入力 → CS8416(DIR) → SRC4193 → DIT4193 → SPDIF出力
ですが、CS8416の後ろにPCMの入力信号を切り替えることができれば実現できそうです。
でも、FFASRCのリリースからもだいぶ時間も経っているので、すこし新しいSRCデバイスを探してみました。
DIGIKEYで"SRC"をキーワードで探してみると、こんな石が見つかりました。
2005年リリースの素子のようです。でも去年の12月にリビジョンされてますね?まだまだマイナーチェンジがあるのかな?
この石の特徴はDAIもSRCもDITも含まれているので、FFASRCで持ちたCS8416、SRC4193,DIT4192の3つのICの機能を
このIC1つで持っています。ものすごく便利そうです。
それに入力はSPDIFもあればPCMも2系統あります。出力もSPDIFに加えてPCMもありますから、色々な用途につかえそうです。
なんと
どんなICか詳しくみてみようとマニュアルをDLしてみると、なんと100ページ近くあります。ちょっと眺めるには時間がかかりそうですが、
まずは先行してICを発注しておきましょう。
また楽しみが増えてきました。
準備の為に 2012.9.22
SRC4392の動作を調べるためには、色々なフォーマットのソースが必要になってきますから、
それを提供するため手元のFFASRCをもう1枚つくることにしました。久しぶりのコテ握りです。
FFASRCが完成しました。
まずは電源を入れて動作するか確認です。LCDが点灯して文字がでました。
まずは一安心です。
動作は大丈夫そうです。
最後に操作スイッチをとりつけますが、基板単体で完結するように、補助基板を取り付けて、
そこにスイッチを2つとりつけました。
こんな感じでFFASRCを作成しました。
SRC4392届きました。
木曜日に頼んでいた部品が日曜日に到着しました。
ひとつは肝心のSRC4392です。予備をみて2個注文しておきました。
SRC4392が到着しました。
SRC4392のコア電圧は1.8Vです。この電圧レギュレータはTIのマニュアルにもTPS79318が推奨されているので、
これもついでに注文しました。
1.8VレギュレータのTPS79318です。
変換基板に載せましょう!
変換基板は秋月で買ったものです。0.5mmピッチの48pinの変換基板です。
変換基板に載せました。
テストはブレッドボード上で行いますが、配線数を減らすために電源とGNDラインは変換基板上で配線しておきます。
ついでにチップコンデンサも搭載しておきます。
変換基板上で配線をします。
ついでに1.8Vレギュレータも変換基板に実装しておきましょう!
空中配線の極みです。
でもこれで3.3Vの単一電源で動作させることができます。
1.8Vレギュレータを搭載しました。
変換基板上での配線はこんな感じになります。備忘録です。
変換基板での配線
クロック供給は・・・
クロック供給にはMAX9485をつかってみましょう。このICはPLL1707よりジッタが少ないようです。
また、制御がI2Cでできるので、制御に必要な信号線数が少なくできるので便利そうです。
ただし、クロックは1系統しかないので、それで十分かどうか確認する必要があります。
というのもSRC4392はMCLKとRXCKIが必要なのですが、それぞれの役割がいまいち区別がつかないところがあり、
クロックが1系統でよいのか、それとも2系統必要なのか見極めようと思っています。
MAX9485の動作確認のための変換基板上の配線です。
この変換基板は以前につくったことがあったので、今回はI2C通信で動かしてみることにしました。
MAX9485の動作確認の様子です。
次は
クロックの動作が確認できたところで、SRC4392と組みあわせてみました。
あちち!!!
電源を入れておもむろにSRC4392を触ってみると、アッチッチです。
あわてて電源を切りましたがなにが悪かったんだろう?
配線をチェックしてみるとRDY(出力端子)がGNDに接続されていました。
そりゃ、電流流れるわな〜。心配なのはICの焼損ですが、なんとか破損は免れました。
まあ、こんなことではへこたれないないでしょう(笑)。
気を取り直して・・・
簡単なプログラムを書き込んで動作チェックです。
アナログ出力もわかるように、R−2RDACをつないでみました。
SRC4392とR-2R DACをつないで動作の確認中です。
ちゃんと波形も出ることを確認しました。
面倒だな〜・・・・・
動作チェックはいろいな項目がありますが、いちいちプログラムを書き換えるのも面倒です。
ICを取り外して、プログラムを書き込んで、また差し込んで・・・・
何回も繰り返すとだんだん疲れてきます。
ということで、任意のアドレスに任意のデータが書き込めるように環境を整えました。
表示用のLCDと入力用のスイッチをとりつけました。
これで、あとあとのチェックが簡単にできそうです。
動作チェック用の環境を整えました。
次はSRCを動かしてみよう 2013.9.27
SPDIF→ DIR → PORT-A → DAC
の動作確認ができたので、次はSRC(Sampling Rate Convertor)を機能させてみましょう。
SPDIF→ DIR → SRC →PORT-A → DAC
という信号の流れです。でも、色々と設定をしても・・・・・
動かない・・・・・
なぜかSRCを機能させようとしても、出力はうんともすんとも動きません。
ひょっとして、RDY端子をショートして加熱したときに焼損したのかな〜、
といやな想像が頭をよぎります。
こういうときはもう少し、原点に立ち戻りましょう。ということで、もう一度マニュアルを見直してみました。
するとMUTE端子はACTIVE HIGHではありませんか!
無意識にMUTE端子はRESET端子と同じようにACTIVE LOWと勘違いしていた模様です。
MUTEをACTIVEにしていました。
動いた〜
MUTEをGNDに接続して無事信号が出るようになりました。
SRCを動作させた場合の波形の変化は下表のようです。低い周波数ではその効果はわかりにくいですが
高い周波数ではアップサンプリングで波形が滑らかになっているのがよく判ります。
入力周波数 1kHz | 入力周波数 4kHz | |
44.1→48kHz にリサンプリング 24.576MHz/512 |
||
44.1→64kHz にリサンプリング 24.576MHz/384 |
||
44.1→96kHz にリサンプリング 24.576MHz/256 |
||
44.1→96kHz にリサンプリング 24.576MHz/128 |
次はPCM入力をSRCしてみよう!
構成は
DAC2707→ PORT-B → SRC →PORT-A → DAC
です。
こんな感じで接続しています。
あっさり動作しました。
だいたい、使い方はわかってきたような感じです。
48→48kHzリサンプル( 4kH正弦波) 48→192kHzリサンプル( 4kH正弦波)
今回のテストで確認できたことは
・クロックはMCLKへの供給のみでOK。
・MUTEはLOWに固定
・RSTはHIGH固定でも大丈夫。
・動作電流は全体で150mA程度(LCDバックライト含む)
という感じかな。
どんな構成にするかな? 2013.9.30
こんな記述もあります。一般的なPLLのクロック発振器は避けるべきとあります。
でもPLLは周波数の変更が簡単なので便利です。となると、PLLとジッタクリーナの組み合わせがいいかもです。
それとも、一般的な水晶発振器を2つ搭載して、切り替えてつかうかな?
とりあえず、必要になりそうなICを基板に配置して、検討してみましょう。
部品は比較的少なくて済みそうです。
パターン検討中です。 2013.10.1
ほぼ完成? 2013.10.4
だいたいこんな感じでパターンを作成しました。
なんやかんやと、結構配線が多くなってしましました。
完成かな?
基板ができあがりました。 2013.10.16
配送いただいた宅配便の方には頭ががさがります。この台風の中・・・・・
こちらは部品面。
こちらは半田面。
一気に部品を実装しましょう!
こんな感じです。
LCDを基板上に実装した状態です。
通電して動作確認していきましょう! 2013.10.20
まずはLCDが動作するかを確認のため、PICに最低限のプログラムを書き込んで動作確認です。
まずはLCDが動作しました。
次は、いままでのブレッドボードで動かしていたソフトを動くように追加でスイッチを加えました。
以前のソフトが動くようにスイッチを増設しました。
あれ?
見かけ上は動いていそうなのだけど、なぜか出力がうんともすんともいいません。
原因を切り分けるべく、上流側からチェックです。
ジッタクリーナが動いていない・・・・・
どうやらソフトに一部ミスがあったようです。それで、ソフトを修正しても・・・・・動きません。
ジッタクリーナの出力におかしな出力がでていませす。Si5317の動作電圧をすべて確認してみましたが問題ありません。
電圧といっても、ランドの電圧なので実際のSi5317に加わっているかどうかは別です。
そこで、再度半田付けのチェックです。ルーペでみているど、どうやら怪しそうなところがありまっした。
で、フラックスを塗って再度半田付けです。これで動いてね・・・・
まだ動かない・・・・
んん・・・・なぜかな?
再度ルーペで確認すべく、フラクスの残りかすを飛ばすべくアルコール洗浄です。
綿棒の先にアルコールをつけて、コシコシこすってやると、綺麗にフラクスをふき取ることができます。
で、再度ルーペで確認してみましたが問題なしです。
どうしてだろう?
動いた!!!
とりあえず電源を入れてみると、今度は動き出しました。
おそらく半田不良があったのと、フラクスに隠れていた半田屑が悪さをしていたのかもしれません。
それとも、もっと別の要因があるかもしれません、とりあえず動いて何よりです。
半田付けは何年もやって大丈夫と思っていても、やはりミスはでてくるものです。
動作の最終確認!
本格ソフトを組む前に、最終動作確認用のソフトを入れてみましょう!
といっても、コマンドを書き込んで所定の動作をするかどうかのチェックです。
以下はコマンド設定に備忘録みたいなものです。
SPDIF1→SRC→PORT−A出力
adrs | Register | data | content |
0x01 | POWER&RESET | 0x3f | POWER ALL ON |
0x03 | PORT-A control 1 | 0x3f | Master mode , SRC. RJ24 format |
0x04 | PORT-A control 2 | 0x03 | Div512,MCLK |
0x05 | PORT-B control 1 | 0x01 | slave mode |
0x06 | PORT-B control 2 | 0x03 | Div512,MCLK |
0x07 | Transmitter | 0x78 | Div512,MCLK,SRC |
0x0d | Receiver 1 | 0x08 | CH.1 MCLK |
0x0e | Receiver 2 | 0x11 | RXO, Free run |
0x0f | PLL1 | 0x22 | P=2,J=8,D=0 |
0x10 | PLL1 | 0x00 | |
0x11 | PLL1 | 0x00 | |
0x2d | SRC1 | 0x02 | DIR,MCLK |
0x2e | SRC2 | 0x00 | |
0x2f | SRC3 | 0x00 |
テストに出力にR-2RDACをつないでいます。
48kHz出力時 192kHz出力時
波形はOKです。
ソフトを組みましょう! 2013.10.23
さて、どんどんソフトを組んでいきましょう。ここからは半田付け作業が少なくなるので机の上が汚くならないです(笑)。
ソフト作成中に気になったのが、ちょっと液晶表示がさびしいです。
最近はバックライト付きのものを多用していたので、バックライトがないとなんとなく寂しく感じます。
コントラスト的には問題ないのですが、ちょっと交換してみましょう。
バックライトの無いLCDでの表示です。これでも結構綺麗には見えます。
バックライト付きのLCDに交換しました。まだバックライトは点灯していませんがコントラストも向上しているようです。
バックライトを点灯しました。やはり綺麗に見えますね。
LCDを固定しましょう!
LCDはコネクタでの片持ちになっているので若干不安点です。そこで、バックライトの電源供給と同時にコネクタと
反対側を基板とリード線で接続しました。ちょうどLCDに合致するような位置にパッドを設けています。
LCDのコネクタの反対側をリード線で接続。これでLCDの固定が安定しました。
ソフトの最終確認中です。 2013.10.29
ソフトの確認のために、入力にSPDIFやPCMなどを色々と入れ替えてテストしています。
ソフトの確認中です。
搭載機能
機能を色々と考えるのは楽しいですが、基本的なところは押さえましょう。
0.Front page
起動時はこの画面になります。入力チャンネルと電子ボリュームの状態、入出力の周波数が表示されます。
Front page
1.M1 Status disp.
ジッタクリーナの状態(JC),Digital Interface(DIR)の状態、Sample Rate COnvertor(SRC)の状態を示します。
JC:SLはSignal OK,.LOCK DR:UはUNLOCK(PCM入力なのでUNLOCK)、SRC:RはREADYを示しています。
M1 Status disp.
2.M2 PCM OUTPUT F
PCM出力のフォーマットを設定します。
M2 PCM OUTPUT F
3.M3 PCM INPUT F
PCM入力のフォーマットを設定します。
M3 PCM INPUT F
4.M4 JC BandWidth
ジッタクリーナーのバンド幅を設定します。Lowest,Low、Mid、High、Highestから選択します。
M4 JC BandWidth
5.M5 Decimation F
Decimation Filterの設定です。有効にするか、直接サンプリングするかを選択します。
M5 Decimation F
6.M6 DEM Freqency
DeEmphasis周波数を設定します。Disable,32kHz,44.1kHz,48kHzから選択します。
M6 DEM Frequency
7.M7 DEM AUTO
DeEmphasisの自動切換えを設定します。Disable,Enableから選択します。
M7 DEM AUTO
試聴してみよう! 2013.10.30
ソフトもほぼ出来上がったのでDACと接続して試聴してみましょう!
DACには最近出来上がったDAC1242-5を使います。このDACには差動アンプを接続することができますが、
まずは簡単にシングルエンド出力でつかって、アンプにつないで試聴しましょう。
PCM入力でRenewASRCを介してDACへ接続します。
試聴に用いたソースはちょっとマイナーな合唱曲です。プーランクの人間の顔というやつです。
非常に濃厚なダブルコーラスの合唱曲ですが、非常に魅せされる曲です。
いや〜、DAC1242-5はいいですね。というよりFN1242Aのなんとも中音域の音の厚さが
合唱にあうようです。
まずはPCM入力で試聴です。
次はDSD入力で!
DSDのソースはUSB-AUDIOでそのままDAC1242-5に接続します。音楽ソースは、以前にデータ変換した
大黒マキさんのナンバーです。先の試聴に用いた合唱曲とは趣が大きくちがいます。
最初に聞いた印象は、これもいいな〜という感じです。ソースの違いというよりPCMとDSDの違いかな?
なんか、何を比較しているのかわからなくなってしまいました(笑)。
つぎはDSDで試聴です。
DAC1242-5 V2基板ができました。 2013.11.21
PCM再生時に必要な3本のジャンパーパターンを追加したV2基板ができあがりました。
一度、超速便で頼んだらほんとに早く到着しました。
V1基板 修正後のV2基板(違いわかるかな?)
このくらいのマイナー修正なら、とくに動作確認は不要かな?と思いましたが、念のため動作確認です。
部品点数は少ないので、1時間くらいで完成しました。
完成したV2基板
V2基板のロゴです。
動作確認!
RenewFFASRCと接続して動作確認です。
問題なく動作することを確認しました。
動作確認の様子です。
これでDAC1242-5が2枚手元にできました。2つの基板を並列につないで片チャンネル2パラじゃなくて、4パラで使うかな(^^)!
(つづく?)