PCM4222を試してみるの巻き。 2012.6.11

たぶんBBSでの書き込みだったような気がしますが、PCM4202の後継のPCM4222は
S/Nも向上しているのでいかがですか?という内容があった。
そこで、digikeyに他の部品を注文するときに1個買ってみました。
おもしろそうという理由のほかに、7500円を越えないと送料無料にならないから、
たぶん併せて買ったんだと思います。でも、そのままだとまた部品箱の
肥やしになりかねないので、動作させてみましょう。

まずは1個買ってみました。

 まずは変換基板にとりつけです。いままでつかったADCはPCM1804やPCM4202でしたが、いずれもSSOP28です。
今回のICはQFPの48ピンです。なぜ、こんなに足が多いのか不思議ですが、基本的にPCM4222はハードウエアモードのみで動くようです。
最近ではSPIあるいはI2Cシーケンスでのソフトウエアモードをサポートしているものが多いので意外です。
ハードウエアモードがつかえるとわざわざマイコンを用意する必要がないので設定が簡単ですが、反対に他の設定に変更しようとしたときに、
たくさんのジャンパーを設定し直す必要があります。それにADCだけハードウエアモードで動いたとしても、他のICがソフトウエアモードで
動作させるとなると、結局マイコンが必要になったりします。しかし、なぜハードウエアモードのみにしているのかな?
考えてみると、ADCはもっとも入力に近いところですからS/Nに敏感なこともあり、マイコンをつかわないことを前提にしているのかもしれません。


まずは変換基板に取り付け。取り付け終わったらディジカメでマクロ撮影して半田付けのチェックです。


PCM4222のピン配置。ピン数が多いが、左側にアナログ、右側にディジタル関連の
端子が集中しており基板レイアウトに考慮がされている。

思い出したように再開! 2014.8.3

久しぶりに部品箱を整理していたら、変換基板に半田づけされたPCM4222を見つけました。
そういえば、企画を立ち上げてから2年間くらいほったらかしにしていましたね〜〜。
さて、思い出したように試運転にめがけて作業しましょう。。
そういえば、まだまだほったらかしにしている企画は一杯あるのですが・・・まあ趣味なので・・・。

まずはブレッドボードにとりつけられるように変換基板にピンを半田づけです。

まずはピンをとりつけ。

PC4222へ供給する電源はディジタル部は3.3Vでアナログ部は4Vが推奨されています。
ディジタルについては3.3Vのレギュレータがあるので、それをつかえば簡単にくみあがります。
4Vの電源については、どうしようか考えましたが、ここは簡単に3.3Vのレギュレータ出力に下駄をはかせる
ことにしました。すなわちレギュレータのGNDにダイオードを挟み込んで0.6V程度の下駄を履かせます。

下側のレギュレータは4V用。右側にダイオードが見えます。

まずは出力電圧を確認です。おおよそ4Vの出力になっていますね。
基板にするときには、アナログ電圧部は低ノイズが必要ですからTPS7A47あたりをつかうのが
いいかもしれません。

4Vの出力が得られました。

どんどん配線しましょう!


ブレッドボード上にどんどん配線していきましょう!

とりあえず配線してみましたけど、グチャグチャです(笑)。
まずはPCMモードに設定しています。

グチャグチャになっちゃいますね。

一応、セッティングを整理しておきましょう!

PCM4222はすべてハードウエアでのセッティングでモードを決定します。
これはマイコンが不要であるというメリットはあるものの、セッティングの為のジャンパー配線が沢山いることを意味しています。
何気に配線してしまうと間違えそうなので、一応整理しておきましょう。

1.PCMモード、I2S出力、24Bit、NORMALクロック(44.1 or 48kHz 256fs:11.2896MHz or12.288MHz)

PIN NAME IO SETTING
16 PCMEM I H H:PCM Enable L:PCM Disable
17 HPFDR I/O L L:Enable H:Disable
18 HPFDL I/O L L:Enable H:Disable
19 FS0 I/O L NORMAL MODE
20 FS1 I/O L
21 DF I/O L L:Classic response, H;Low Group Delay
22 DSDEN I/O L L:DSD disable H:DSD Enable
23 MODEN I L ALWAYS LOW(MBM Disable)
24 DSDMODE I L L:64DSD H:128DSD
25 SUB1 I/O L SUB0
26 SUB0 I/O L
39 S/M I L ALWAYS MASTER
41 OWL1 I L 24Bit mode
42 OWL0 I L
43 FMT1 I L I2S mode
44 FMT0 I H


配線をチェックしていざ通電です。クロックは源発振を24.576MHzにして、1/2分周したものを入力しています。


こんな感じで配線しています。

動作j確認のひとつとしてLRCKの周波数を確認します。
48kHzならばOKですが、問題ないようです。ブレッドボードなので波形自体はあまり綺麗なものではありません。

出力が48kHzになっています。

アナログ部も組み込んでみましょう!

アナログ部に必要な機能は正負信号を作成することになります。
このため反転増幅器をいくつか組み込みます。さらに一定のオフセットを入れるために、
PCM4222のVCOM出力を正入力に入れることで、信号のかさ上げを行います。
下図ではOPA2134をつかって回路を組んでいます。

アナログ部を組みました。

PCM出力の確認はDAC1242-5と接続しました。

PC4222の出力が正常にでているかを確認するために、DAC1242-5と接続しました。
I2Sでの接続になるので、DAC1242−5側ではJP5を短絡させて使用しています。

こんな感じで出力の確認を行っています。

出力は問題ないようですね、入力に1kHzの正弦波をいれていますが、DAC変換の出力も同じく1kHzの出力がでています。

出力は問題ないようです。


SPDIFの出力は?

SPDIF出力を得るためにはPCM信号からの変換用のDIT4192が必要です。
これもブレッドボードに実装します。DIT4192はソフトモードでも動きますが、今回はハードモードで動かします。
そのためジャンパー設定が結構沢山あります。

ブレッドボードにDIT4192を実装しました。

SPDIFからの出力を確認するためにDACに接続します。ここではDAC1242-1.6に接続しました。
FN1242AをつかったDACですが、もうこの石(FN1242A)もかなり入手が困難になってきました。


SPDIF出力の動作確認のためDAC1242-1.6に接続しました。

SPDIF出力も問題なく動作確認できました。

DACからの出力確認です。

さてさて、どうするかな?

悩むところはクロック源です。44.1kHzと48kHz系があるので2種類の水晶を準備するのか、
あるいはPLLをつかって複数の周波数を生成するかです。ただPLLをつかうとジッタが増えてします。
それを抑制するためにジッタクリーナを使うという手もありますが、回路が複雑になります。
色々な周波数が必要なSARCであればジッタクリーナを使う手もありますが、ADコンバータでは
単一の周波数での使用がメインになりそうですから、そこまで複雑な回路は必要ない気がします。
ということで、水晶発振子を切り替えてつかうようにすると回路もシンプルになってよさそうです。

基板を描いてみました。 2014.8.23

こんな感じでしょうか。
いつものサイズより少し大きめです。DAC9018Dやメモリーバッファーと同サイズです。

こんな感じです。

基板が到着しました。 2014.9.2

久しぶりに大振りの基板です。裏はベタ面ですがディジタルとアナログを分離して、
PCM4222の直下で結合しています。


部品面の様子

半田面の様子。ほとんどベタ面です。


さっそく組み立てましょう。
 組み立て時の王道はまずは背の低い小型のものからとりつけて、最後に大型の
コンデンサや放熱板などをとりつけることになります。すなわち部品の大小関係
を重視してとりつけます。こうすることにより基板のハンドリングがし易くなります。
 それに対して試作時は回路の上流側から、動作チェックをしながら組み立てます。
さもないと、最上流の電源回路にトラブルがあれば、基板上全体の回路を破壊しかねません。
ということで、今回の動作チェックの順番は

1.電源部(アナログ、ディジタル)
2.アナログ入力部
3.AD変換部、出力部


こういった感じでパート別に動作確認です。


まずは電源部から
この基板の電源はアナログとディジタルを分離して供給することができます。

アナログ部はオペアンプを駆動するための8〜15V程度の正負電圧を供給します。
その中でPCM4222に供給するアナログの4Vについてはオペアンプ用の電源から
LM317を用いて降圧させて生成します。

LM317の出力電圧は4Vに設定するので、抵抗の組み合わせは
R1=240ΩとR2=528Ωです。R2の528Ωの抵抗は470Ωと51Ωの抵抗を合わせて521Ω
としました。ぴったしは無理ですが、このくらいでいいでしょう。
LM317の出力は正確には
VO = 1.25 V (1 + R2 / R1) + IADJ×R2  IADJは0.1mA程度
なので、あらためて計算すると
VO = 1.25 V (1 + 521 / 240) + 0.0001×521 = 4.0156V
ですからちょうどいいでしょう。


アナログ部の4V電圧を確認しました。56Ωでもいいかな?

ディジタル部は5V供給です。最近のディジタルICの電源電圧は3.3Vが主流ですが、
この基板の中で使用するDIT4192が5VコアをもつICなので、5Vが必要です。
そしてディジタル電源の3.3Vは5Vのラインから低ドロップタイプの3.3Vレギュレータ
を使用して生成します。


ディジタル部の3.3Vも確認しました。

ディジタルとアナログ部を分離するとすれば8〜15Vの正負電源と5Vの正電源が
必要になりますが、簡易にするには8〜15Vの正電源からディジタル用の5V電源
を生成することも可能です。これには電圧レギュレータの定番の7805をつかっており、
消費電力も大きいので放熱板をとりつけるようになっています。


今回は電源1系統で動くようにしました。

さてこれで、電源部の動作の確認が終わりました。

次は入力アナログ部だ!

 ここは、淡々と部品を載せていくだけです。PCM1804のデータシートからの回路を流用しています。
PCM4222のデータシートなどではバランス入力、バランス出力のICが用いられています。これは
PCM4222がバランス入力で動作するようになっているためですが、民生オーディオ機器のほとんどは
シングルエンドでの使用でしょから、シングルエンドで受けて、バランス出力にできるように回路を
組んでいます。すなわち、負側には一回路だけ反転増幅器が挿入されています。


アナログ部が組みあがりました。

ここの動作確認は、発振器の入力をして、それぞれ反転出力が得られるかどうかでチェックです。
なお、このアナログ入力回路ではVCOM分のオフセットを加えることになりますがPCM4222を実装して
いないとVCOMが得られないので、動作確認のため一旦GNDに落としています。

あれ?
予期した波形がオシロから出ません。パターンを確認してみると、なんと単純なミスを発見です。
オペアンプの正負入力を反対にしていました。
ということで、まずはオペアンプの正負入力を入れ替える作業をしました。
配布を考えた場合は、これは修正しておく必要がありますね。


オペアンプの入力を入れ替えています。

で、入力を入れ替えたら無事動作することを確認しました。
 
入力信号に対して互いに位相が反転する波形を確認しました。ちょっとピントボケボケです。

次はディジタル部だ!
すでに色々な部品が搭載されているので、半田ごての取り回しが面倒なところがありますが、
まだまだスペースがあるので問題ないでしょう。

おや?
このADC基板ではクリスタルを2個使用します。24.576MHzと22.5792MHzです。
今回はDAC9018Sなどで用いた100MHzの発振器と同じパッケージのFXCOというものをつかいました。
外観をよく見れば、周波数を区別するマークがありません。こりゃ、混じってしまうと大変だな〜。
というわけで、実装するまではICのパッケージ袋から取り出さないようにした方が無難です。
いつもはパーツボックスに入れて保管するのですが、万が一混じったらどうしようもありませんからね。

同じ外面の違う水晶発振子


いまのうちに半田付けしておきましょう!

さて、まずは表面実装部品をとりつけて・・と考えたら、ほとんどが表面実装部品です。
リードタイプのものは少量の抵抗とコンデンサだけでした。こちらもなんとか完成です。


とりあえず完成です


その他必要なピン類も付け加えました。上の写真との間違い探しです(笑)。

設定方法を整理

このADC基板は動作モードを設定するためのいくつかのジャンパーが必要になります。
そのジャンパーをここで一度整理しておきましょう。

区分としては出力が
1.PCM出力(周波数44.1,48,88.2,96,176.4,192kHz と 出力I2S、LJの設定)計8設定
2.DSD出力(64fs出力、128fs出力の設定)計2設定

があります。

一覧表にしてみましょう。
 2014.9.9







動作確認開始です。 2014.9.10

動作設定のためにはジャンパーピンが沢山必要になります。
簡単に半田付けでジャンパーをしてもよいのですが、変更をいろいろとする可能性があるので、
ジャンパーピンをすこし多目に調達しました。
秋月電子で安価に購入ができます。

秋月でジャンパーピンを購入しました。

まずはPCM出力を確認

まずは44.1kHzの出力に設定してみました。動作一覧表に従ってジャンパーピンを設定します。

まずは44.1kHzのPCM出力に設定します。

動いていそうです。

電源を投入して、入力に発振器の出力を入れて動作確認です。
PCM出力端子(CN2)を確認です。DATAとLRCKの出力をオシロで観測しましたが、問題なく動いていそうです。
すこしホットします。
 
DATA出力                            LRCK出力

つぎはSPDIF出力を確認です。これが動けばDIT4192が無事に動いていることを確認できます。
おもむろにSPDIF出力を確認してみましたが、問題なく動いていそうです。

SPDIF出力も大丈夫そうです。

SPDIF出力の確認にはDACに接続する必要があります。手元にある小型のDACに接続してみました。
かなり昔に作成したものですが、PCM61Pを使用したDACに接続してみました。


DACと接続して動作確認の様子です。

DACの出力も大丈夫です。

無事DACからADC4222に入力した信号アナログ信号が再生して出力されることを確認しました。
 
下:入力信号 上:DAC出力信号 (左は入力信号がオーバフローした状態)


入力がオーバするとOVFのLEDも点灯します。

次はDSD出力の確認です。

まずはDSD64の出力設定からです。ジャンパーピンを若干修正します。

DSDの設定です。

DSD出力(CN1)の出力を確認してみましょう。まずはDATA−L出力端子ですが
パルス密度変調の様子がよくわかる出力が得られました。
下のオシロの写真で粗密が周期的(1kHz)ででているのがわかるかとおもいます。
まずは異常はないようです。



DSD出力(CN1)のDATA-L出力です。

DAC1242-5と接続してみましょう!

DSD入力が可能なDACとしてDAC1242-5と接続して動作確認を行ってみました。

DAC1242-5とDSDでの出力接続です。

問題なく出力が得られることを確認しました。
かなりホットしました。あとは、さらに周波数設定などの動作確認を進めていきましょう!

下:入力信号 上:DAC1242-5出力信号

周波数変更の確認です!

その前に・・ 
2014.9.23

OPアンプ部分のパターンを修正したv1.1基板ができあがりました。
DUAL OPA部分の入力の+−が入れ替わっていたのを修正しています。
さて、違いは判るでしょうか(笑)。

v1基板(修正前) v1.1基板(修正後)

最終確認! 2014.9.28

すべての出力(SPDIF,PCM,DSD)の最終確認です。
そのために下図のような接続で試しています。

ADC4222 → PCM179X−2.1 アナログ出力確認用 
       → Renew FFASRC ディジタル出力&周波数確認用


最終動作確認の様子です。

SPDIFでチェック・・・あれ?

まずはSPDIF出力でチェックです。最初は44.1kHz、48kHzは問題なく動いているようです。
同時にDACの出力からアナログ波形も確認です。
次は最も高い周波数192kHzに変更して電源ON! あれ、動かない・・・・。
SPDIFの出力波形が安定しません。さらにDIT4192を触ると出力が変わります。

あ、これは・・・・電源GNDが抜けているかも・・・・・(予感)・・・・。

裏返してみると、見事にDIT4192のGND接続が抜けていました。周囲のベタGNDに接続すればいいのですが、
直接接続するには熱容量の大きな半田ゴテもいるので、近くのGNDランドにジャンパー線を飛ばしました。
 
要修正箇所の拡大です。                   黄色線のところをジャンパーさせます(GND接続)。

 
修正した様子です。

さて、修正すると無事に192kHzでも動作しました。

192kHzで動作確認です。

つぎは96kHzに変更してチェック・・・あれ???

ここまでくれば96kHzも問題なく動くはずなのですが、ジャンパーピンを再設定して電源ONしても
なぜかうごきません。Renew FFASRCの出力も****と周波数不明の出力を表示したままです。
でも、DACからアナログ出力は問題なくでています・・・。なぜだろう?

これは、容易に推測つきました。DITの設定テーブルの間違いです。
で、確認したらCLK1、CLK0の設定が反対になっていました。
正しくは、

I2S出力の場合/PCM出力/24ビット



IL(左詰め)出力の場合/PCM出力/24ビット


これで再設定すると、無事に96kHzの出力も確認できました。

 
 96kHzも確認です。

PCM,DSDも動作確認終了!

SPDIF出力が動いているということは、PCM出力も問題ないことを示しているのですが、
念のためDACのアナログ出力から確認して44.1〜192kHzで動作することを確認しました。
DSDも64fsで確認済みですが、128fsもあわせて動作確認しました。
ちなみにクリスタルを24.576MHzで128fs設定にすると、動作周波数は6.144MHzになりますが、
DAC側の出力も問題なく得られるようです。
ひょっとして12.288MHzでも動くかな?

さて、これで一通りの動作確認が終わりました。

(つづく、かな?)