2011年8月31日水曜日

クロック系の見直し

TIのクロックCDCE925のアプリケーションノートに”低周波からオーディオデータコンバータ用の低位相ノイズのクロックを生成する”があり、これを見ていてPLLで生成するのも悪くない可能性がありそうだと思い、このアプリケーションノートの構成をそのまま流用しようかと考えていました。

ちなみにエレアトさんもCDCE913を利用したPLLの制作を考えられているようです。




 また、AIT LaboさんのJitter低減クロック構成方法を見ていて、AES/ADATの受信データバッファの残量が一定になるようにクロックを生成する方法を取り入れてみることを考えています。


 SACDPやMUSILAND Monitor 03 USから受信する場合、クロック同期が問題になり、その解決策として、現行案のクロックをDAC側から供給するのではなく、この方法にするほうが、DAP側が何でも対応でをき、リスクの高いクロック交換をしなくてもよく、Jitter特性を良好に保てるのならこちらの方式のほうが良いかと考えています。


その後、clio9330さんのブログにCirrus LogicのCS2300を使用したクロック系の記事によりCS2000シリーズの存在を知りました。
このシリーズのCS2000-CPで構成する方が、TIのPLL構成方法よりシンプルかつフレキシブルな構成がとれそうで、Jitter特性もデータシートのCLK_IN Sinusoidal Jitter Transferを見る限りよさそうな感じがします。このへんはよくわかりません。





変更したクロック系統図


ということで、上図のような構成にクロック系統を変更し、大別して、基準クロックを搭載CXO下表のように①搭載CXO(NZ2520SD)、②受信データ同期 ③EXTクロックに同期の3モードがとれるようにするように方針変更。


クロックモード一覧




受信データ同期モードでのクロック系統

受信データに同期したクロックの生成方法は、FPGA内部PLLで22.5792MHz/24.576MHzから361.2672MHz/393.216MHzに16逓倍し、そこからCS2000のFrequency Reference(現在のところ周波数未定)を分周して生成します。受信データのバッファの残量が、中心値より多くなる傾向の時は、分周数を-1してFrequency Referenceを速くし、逆の場合は+1して遅くする制御により実現することを考えています。

現在の基盤、3.3VとGNDをどこかでショートさせてしまいました orz
  ショート箇所を探ってみましたが、今のところ見つけられていません。この際なので、Eagleでボード図を作成して、プリント基板化を画策中。

2011年8月29日月曜日

MachXO2 Pico Development Kit


ラティスセミコンダクターのニュースレターで29ドルのMachXO2ピコ開発キットを知り、思わず購入してみようかとしましたが、送料が$42と本体よりかなり高いので、安い意味がないじゃん!ってことで一旦やめました。
調べてみると、Digi-Keyで¥4,612で販売しているので、他の部品の発注の機会に合わせて1万弱分で発注してみました。



MachXO2 Pico Development Kit


 Latticeの開発ツールは使ったことがない(かなり昔にGALは使用したことがありますが...)のでツールを使いこなすまでが大変そうですが、LatticeXP2には、MAX IIなどのCPLDでは搭載されていない、メモリ、PLLを搭載しており、小規模のデザインなら今回のDAC、その他の論理回路用に使えそうです。

 デモアプリではLattice Mico8 Microcontrollerの周辺構成とソフトが使えます。USB経由のシリアルモニタ機能も搭載されているようなので、この点はTerrasicのFPGAボードでは、デモアプリが用意されていないので便利そう。

 使用想定としては、もしMUSILAND Monitor 03 USの空きスペースに実装できたら、I2SをADAT(2)変換してTOSで引き出すことをたくらんでいます。入るかどうかはかなり微妙なところです。
 MULINKケーブルでI2Sを引き出すことで考えていましたが、光化が可能ならそうしたいので...

 DE0-nanoでは大きすぎて入りません。小さいのはないかと探してみましたが、あまりこれといったのがありません。こいつならもしかすると入るかもしれません。

 ダメな場合はSACDPからのDSDデータの引き出し用にでもしようかと...

2011年8月23日火曜日

ポータブルシステム実装5-Arduino Pro Mini

新しいArduino Pro Mini 328 - 3.3V/8MHzが届いたので、Arduino Pro MiniをBufflaloIIに接続するため、仮組によりLCD16×2とロータリーエンコーダを接続し、Arduinoの基本的な使用方法を確認し、プログラムの修正を行いました。

ひとつは、オリジナルではLCDとして20×4のLCDを使用していますが、残念ながら大きくて積めませんので、16×2のLCDで表示できるようにプログラムを修正しました。



Opening画面 左:LCD20×2 右:LCD16×2

通常画面 左:LCD20×2 右:LCD16×2 


 表示内容

主な変更点
  1. オープニング表示を16×2領域に入るように変更
  2. 表示領域が半分以下になるため、ボリューム表示をオリジナルフォントによる1文字9キャラクタ表示領域使用から普通の1キャラクタ表示に変更。
  3. 表示項目部を省略し、パラメータのみに
  4. サンプルレート表示を6ケタから下位2ケタを省略した4ケタ表示に
上記により、なんとか16×2内に押し込みました。


変更時の変更項目選択表示
ボタンを押すたび"→"表示が黄色の部分を順次移動する



 設定変更時は、上手の黄色の部分をボタンを押すたび"→"カーソルが移動し、ロータリーエンコーダを回すことによりパラメータを変更できるようになっています。
今回その"→"を表示するエリアがないため、パラメータ表示の先頭文字、あるいは"・"キャラクタ表示の部分で"→"を表示させるようにしました。
そのままでは、パラメータ変更操作後、元の表示が消えてしまったため、再度表示できるように変更しました。


もう一つは、オリジナルはArduino UNOやDueminaloveなどの5V電源のマイクロコントローラを積んでいますが、今回、なるべく小さく、省電力であることを選定基準としてPro Mini 328 - 3.3V/8MHzを選択しました。
 Bufflalo IIとのI2Cの接続は3.3V同士でよいのですが、ロータリーエンコーダは、少し探した限りは5V電源のデバイス、5V電源での組み込み例ばかりで3.3V電源で動作させている例が見つけられません。
 ひとつだけ見つけましたが、回路図が不正確そうです。
 どうしようかと悩んでいましたが、twitterで、5V用のロータリーエンコーダでも3.3Vで動作させることができるとのアドバイスをもらい、実際試してみると問題なく動作するようです。
 
 今回ロータリーエンコーダはパナソニックのEVE-VCGJL016Bを使用しました。
 押しボタンスイッチ機能が付いているため、パラメータ変更時、押して設定項目を選び回してパラメータを選択するが、1つのスイッチでできるため、操作しやすく、またパネル装着部品が減らせて便利です。



 Arduino Pro Mini 328 と LCD16×2 、ロータリーエンコーダ


動作中のLCD表示(バックライト点灯させていないので見にくい)


ざっと見た限りは、LCD表示もボリューム操作も動いているようです。

サンプリング周波数が1763(176.3kHz)になっていますが、これは、FPGAで50MHzCXOから22.5792MHzが作れず、近似の22.57143MHzを作っているためです。これは仮実装です。

続いて、ArduinoでPLLクロックドライバCDCE925の設定ができるようにし、クロック系の動作確認を進める予定。

2011年8月18日木曜日

SACDPからの5.1ch DSDデータの転送方法

 SACDPから抽出した5.1ch分のDSDデータの転送方法についてですが、TOSリンクによる転送にしようと考えています。
 電気的に完全に分離できることと、下記に示すようにADATを2倍速にすれば5.1chを1本のTOSリンクで転送可能となるからです。
簡単なブロック構成は下図になります。
クロックはMatrix Switchで11.2896MHzを生成して、TOSリンクでSACDPへ転送し、PLLで90.2768MHz、 22.5692MHz, 11.2896MHzを生成します。




SACDPからのDSDデータのADAT2転送構成


 プレーンのADATでは、24bit×44.1kHz×8ch=8.4672Mbit/sの音声データを転送する帯域しかありません。これに受信側においてデータストリームからクロックをリカバリするためのエッジの密度を確保するために4ビットにつき1ビットの"1"固定ビットが割り当てられ、またブロック同期のために10連続の"0"と"1"固定に挟まれた4bitのUser bitが有り、(16bit+(24bit+6bit)×8ch)×44.1kHz×=11.2896Mbit/sが伝送速度になります。

 これに対し、5.1ch(6ch)のDSDのデータ帯域は、32bit×88.2kHz×6ch=16.9344Mbit/sで、丁度ADATの音声データ転送帯域の2倍となります。

 そこで、以前から定義しているADATの2倍速のADAT2が24bit/1chで16chのところを32bit/1chで12chに定義しなおし、DSD 1chにつき2ch使用で6ch全てを1本で転送することにしようかと考えています。



ADAT / ADAT2_24bit / ADAT_32bit Format

2011年8月17日水曜日

MultiDAC構成変更2



 2010年12月9日木曜日の投稿以来、新しく得た知識や考えの変遷により、構成をかなり修正してきています。

  1. DAC部は、1出力毎に別筐体とし、一部ポータブルとして使用可能とする
  2. Clock部も別筐体とする。HDMIケーブルによりLVDSで分配
  3. MatrixSwitch/DAC/Clockの各部はバッテリー電源とする
  4. MatrixSwitch部のFPGAボードはDE0-nanoに変更
  5. 各DAC部にもDE0-nanoを搭載し、MutrixSwitch=>DAC間はTOS(原則ADAT2)で接続
  6. SACDP(SCD-XE600)にもDE0-nanoを搭載し、ADAT2で5ch伝送し、クロックもTOSで供給し同期させる
  7. MUSILAND Monitor 03 US追加しPCからの24/384kbit/s再生対応
  8. USB Dual Audioは一旦構成から外す
  9. FFTフィルタによるチャネルデバイダも一旦構成から外す(もう1台DE0-nanoを搭載して実現予定)
  10. その他もろもろ...
 
 
システム構成 2011/8/17

Cpariceの接続方法については思案中。
現在仮運用中のDE0は、解体して新たにMatrixSwitch筐体として作り直す予定です。

2011年8月15日月曜日

FET差動バランス型ヘッドホンアンプ 4

 ノイズの原因は、わかりました。見逃しで抵抗が2つ不足していました。
訂正した回路図は下記になります。VR3,VR4位置(固定抵抗)の150Ωが抜けていました。


FET差動バランス型HPA回路図(誤記訂正)

きれいに音が出るようになりました。


下の写真のように下に左ch、上に右chという形にでケースに収めることにより、45mm高のケースに収まりました。実際にはもう少し小さい40mm高のケースにも入りますが、作成中のポータブルシステム(DAP+DAC)と揃えました。
 下段は実際には上側(LEDがあるため)、上段が下側で向かい合わせに実装

 正面側にヘッドホンアウトと電源LED

ポータブルシステムとスタックしたところ

あとは電源コネクタを選定して取り付けるのと、バッテリーの方の準備が残っています。

基盤の実装を見ると搭載されていない部品も多いためかなりガラガラです。CNCで基盤が作れるようになったら、ポータブル用にコンパクト化したのを作ってみたいところです。


FET差動バランス型ヘッドホンアンプ 3

  Arduino Pro Mini 328に接続するLCDを16×2から昨日購入した20×4に変更した際、端子配置を確認したところピン収容が同じと勘違いして電源逆接してしまいました。ピン配は電源だけテレコでした。なんでそこだけ変えるか!
  結果LCDもどうかわかりませんが、  Arduino Pro MiniかFTDI Basic Breakout - 3.3Vが壊れてしまったようです。早速手配しなおしましたがしばらくかかりそうです。




 そこで随分と時間が経ってしまいましたが、ペルケ式のFET差動バランス型ヘッドホンアンプの組立てを先にやることにしました。


 まず当初の予定を下記に変更することにしました。
 ・バッテリー駆動をデフォルトとすることとし外部から12V供給
 ・ヘッドフォンアンプ単独でケースに実装。ケースはポータブルシステムと同じタカチCD-180BB
 ・入力・出力とも ヒロセ電機  HR10A-7R-6S


 ずいぶんと作成が遅れた理由のひとつは、Parts Connexion の対応と日本郵便の配送の問題でキャンセルしたはずの部品が届いて、その後手配しなおした欲しいほうの荷物が送り返されてしまったことにあります。未だに正式に発注した方は届いておらず、クレジットからはキャンセル分含め引き落とされている状況です。
 この件は、気が向いたら書くことにしますが、あまりに不誠実な対応をするParts Connexion二度と発注することは無いでしょう。


 
 トランジスタとコンデンサは、ペルケさんの配布部品を購入してあり、コンプリ・ペア間でhFEのばらつきが22%以内になるように選別されています。

 2SA1015-GR/2SC1815-GR

 2SK170 BL

2SA1358-Y/2SC6421-Y


 さて組み立てて音だししてみましたが、どこかで発振しているようで、"ばばばば”という感じの大きなノイズの奥に小さく音楽が鳴っている状況で、今のところ何が悪いのか皆目検討がついていません。









 

2011年8月13日土曜日

CNC検討中2

 検討候補のmini-CNC BLACKII 1510 の開発元、ORIGINALMIND社のmini-CNCシリーズのHAKUの切削デモをロボット ショップ テクノロジアで土曜日の午後のみ行っているようなので、見てきました。


テクノロジアでのCNCデモ

HAKUとBLACKIIの違いについて訊いてみました。
・加工範囲の差
・スピンドルの回転数が(HAKU:8,000r/min  BLACKII:4,600r/min )異なるので仕上げ時間に差がある。
主にはこの2点の差であり、加工精度に差があるわけではないとのこと。基板製作ならBLACKIIで十分ではないかとのこと。

また、パターンの細さはどのくらいまで対応できるかについても訊いて見ましたが、エンドミルの刃径で決まるとのことで、0.2mmのエンドミルもあるようです。ピンピッチの狭いフラットパッケージも対応可能そうです。


帰りに秋月でArduino用の20×4 3.3V電源LCDと千石でケース内のシールドに用いる予定でパンチングシート?と、6倍ルーペと60倍顕微鏡を購入。


 20×4 3.3V電源LCD


パンチングシート?

 パンチングシート?拡大

 6倍ルーペ

  6倍ルーペ LED点灯

 60倍顕微鏡

 60倍顕微鏡 青色LED点灯 白色LEDもあり

 ついでに現在活用中のMegaView 倍率が上がるとピントが合う範囲が狭いのがつらいです。


 現在活用中のMegaView 4倍ルーペ 他に1.7倍・2倍・2.5倍のレンズもあり

2011年8月12日金曜日

Arduino Pro Mini

 BuffaloII ES9018の設定変更とPROGRAMMABLE PLL VCXO CLOCK SYNTHESIZER CDCE925の設定は、いずれもI2Cインタフェースにより行うようになっており、これをAKC12でコントロールすることを考えていました。
しかしAKC12は、うまく動作してくれていません。またES9018は問題ないでしょうが、CDCE925に制御が本当にできるか一抹の不安もありました。


そこで、代案を検討。
ひとつは当初よりの最終形態であるNiosIIで制御。
もうひとつは、Arduino 。


CDCE925のほうについては、NiosIIでもArduinoでも、参考とするプログラムもないのであまり大差はないかと思っていますが、ES9018制御については、HiFiDUINOさんの制御コードがありこれをベースにするほうがかなり楽になりそうです。
また、LCD制御があり、そのままだと 20 × 4であるため、サイズが大きすぎて搭載できないので 16 ×2あたりに落とさないと駄目ですが、AKC12では不可能なLCD制御が比較的容易に実装できそうです。(NiosIIでも可能)


ということで、Arduino Pro Mini 328 - 3.3V/8MHzにすることにし、スイッチサイエンスより購入しました。
Arduinoにはいくつか種類がありますが、小さく、コンパクトで、省電力あることが望ましいので、

①3.3V動作(低消費電力)
②サイズが最も小さい
③USBは別カード(サイズと消費電力に有利)
④CPUクロック8MHz(低消費電力)

といずれの選択肢も1番適合するArduino Pro Mini 328 - 3.3V/8MHzを選択。
書き込みに必要な3.3V動作Arduino製品向け小型USB-シリアルアダプタ FTDI Basic Breakout - 3.3Vとともに購入。

ボリューム制御用のロータリーエンコーダーが別に必要ですが、それを入れてもAKC12より小さく、実装の自由度も上がります。
また、ArduinoのコードはC/C++をベースとしており、NiosIIへ移植するのも比較的容易そうです。


 FTDI Basic Breakout - 3.3V および Arduino Pro Mini 328 - 3.3V/8MHz

 Arduino Pro Mini 328 - 3.3V/8MHz

 Arduino Pro Mini 328 - 3.3V/8MHz 裏

 TDI Basic Breakout - 3.3V

TDI Basic Breakout - 3.3V 裏

2011年8月11日木曜日

MUSILAND MULINKケーブル到着

 MUSILAND MULINKコネクタが到着しました。
現在はp41audioで買えるようになっています。
Monitor 03 USにちゃんと接続できます。最初うまくはまらず、1ピンだけなにか詰まっているように見えたので誤挿入防止でもしているのかと思いましたが、きついだけでした。

HiFiDUINOさんにこのコネクタではないかという投稿がありますが、ちょっと違うかも?
まあどちらにしても1個¥2,287で、PC内蔵サウンドカード用 MU-LINK出力拡張カードを\2,990で買ったほうがケーブル処理も不要になり、後述のようにアダプタカードも使えそうなのでお得だと思います。


 MULINKケーブル(PCアダプタカード用)

 MULINKケーブル コネクタ部拡大

 Monitor 03 USに接続


 PCアダプタカードですが、正面版のプレートを外してそのまま受け側のインタフェースに使えそうです。74LCX245 という5V耐圧の双方向CMOSドライバの2回路を抵抗を介してワイヤードORをとって1つにまとめています。
 3.3V電源供給で使用可能。本来出力として使用するはずですが、方向制御もDigitalI/Oという内部用コネクタに接続されているのでフラットケーブル越しに制御可能。
 ひとつもジャンパー、カットなしで使えそうです。
 

MULINK PCアダプタカード

MULINK PCアダプタカード ドライバIC部拡大


 一緒に1万円以上で送料無料になるよう、HDMIケーブルとS.M.S.L SA-S3 というデジタルアンプを購 入。
 HDMIケーブルはクロック伝送用に使う予定。2軸同軸でよさそうなのがあればそれにしようと考えていましたが、何が良いのか良く分からないので芯数が過剰ですが高速差動伝送用に使用する入手性の良いケーブルとしてはHDMIが良さそうということで、HDMIを想定しています。
 



 25Wx2デジタルアンプ S.M.S.L SA-S3  裏面

ポータブルシステム実装4-クロック・ISO・etcボード

 クロック供給、I2SのFPGA=>DAC間アイソレートとアイソレート後のリタイミング、未だ未実装ですがminiSDカードスロット、その他を実装する基板の配線が大体できました。


 面実装部品については、ここ参考に、ICをポリイミドテープ上に接着し、配線は、0.2mm径UEWを用いました。見本よりかなりぐだぐだです。


  当初、リタイミングには、,SN74AHC574を使用するつもりでした。入力と出力のサイドが別れているため配線しやすいのが主な理由です。
  しかしピンピッチが0.4mmと今回の他のICの最小値の0.65mmより細く半田づけを試してみましたが、目がついていけず。4倍の拡大鏡で見ても、とても無理無理。
 あきらめて0.65mmピッチのHC175に変更。


 ピンピッチが0.4mm SN74AHC574と0.65mmピッチのCDCE925

クロックセクションの3端子レギュレータは、フィデリックスの3.3Vと1.8Vで、1.8VはCDCE925のコア電源のみに供給。3.3VはCXOとCDCE925のIO電源、ISOの一次側用。

 最後にCXOを実装しようとしたら、NZ2520SD - 22.579200Mが紛失していることが発覚。配送されてきたときの不必要にでかいダンボールに入れていたのですが、中を見ると入っていない。何かの際に取り出してそのままにして、中身がちいさいものだからただの空き袋と勘違いして捨てたか...?
 しかたがないので、再度見積もりを出しましたが、納期はきっと3ヶ月以上先ですね...orz


 クロック・ISO・etcボード

クロック・ISO・etcボード 裏側

 ケース実装イメージ

 面実装の配線はやはりきついですね。やはりパターンにしたいところです。

 今日は、ES9018のコントローラ AKC12は、PCからのモニタが出来ないし、NAS(WHS)も突如故障してアクセス不能に投稿を公開なるし、など散々...orz 直せるのかな?直せないと復旧できないファイルがいくつかあり結構大変です。

2011年8月8日月曜日

MUSILAND Monitor 03 USのMULINKコネクタ

MULINKに使われているコネクタ、ちょっと探してみましたが見つけられていません。どこのメーカかも分からんのでなかなか厳しい...

 MUSILAND MD11MD30には、MULINKケーブルが添付されいるようです。

そこでp41audioさんに、MULINKケーブルを別売りで入手できないか聞いてみたところ、MUSILAND Electrical社に問い合わせをしてくれましたが、残念ながら別売りはしていないとのこと。

しかし、PCカード用のMULINK変換ケーブルアダプタ?なら購入可能とのことなので、こいつを購入してみることにしました。


PCオーディオカード用のMULINKケーブル変換アダプタ


ちょっともったいないですが、切断してI2S抜き出し用に使いたいと思います。