ラベル SDカードプレイヤー の投稿を表示しています。 すべての投稿を表示
ラベル SDカードプレイヤー の投稿を表示しています。 すべての投稿を表示

2013年6月22日土曜日

TASCAM DA3000 DSDマスターレコーダー/ADDAコンバーター


 TASCAMからDSD対応新製品! PCM192kHz/DSD5.6MHzのハイサンプリングステレオ録音対応マスターレコーダーDA-3000が発表され8月下旬から発売開始するようです。





TASCAM DA3000 



 レコーダー部はPCM192kHz、 DSD2.8/5.6MHzによる録音に対応。記録メディアはSDHCカードおよびCFカードを採用し、HDDは内蔵せず、またUSBなどのPCとのインタフェースは持ちません。
 HDDのような回転体を内蔵せず、USB接続によるPCからのノイズ流入経路がないことは音質的には有利になるので利便性は損なわれますが、かえって良いと思います。
入出力端子アナログはRCA/XLR、PCMデジタルはRCA COAXIALとXLR AES/EBU、DSDデジタル接続も可能で、BNC SDIF-3入出力端子を装備しています。

デジタル回路とアナログ回路用に別々の巻き線を持つEIコアトランス採用、出力側オーディオ回路は高品位なモノ回路を2系統搭載するデュアルモノーラル構成、オーディオ回路全段においてバランス構成、精度1ppmを誇るTCXO(温度補償型水晶発振器)を搭載など高品位なオーディオ回路に装備しAD/DAコンバーターとしての配慮もされているようです。

 Digtal INをクロックマスターにできるようなので、MatrixSWをマスターとして運用できるはずで、これは私にとって大きなポイントになります。

 またオシレーター搭載(440Hz、1kHz、10kHz)しており、特性を見るときには便利そうです。

ティアックでは、DS-D98でDSDレコーダーを発売していますが、価格帯が下がりDSD5.6MHzに対応する等の点で進化しています。

 そしてなんといってもKORG MR-2000Sにはない、BNC DSDデジタル入出力端子(対応フォーマットSDIF-3/DSD-raw)を装備しているので、MatrixSWに接続してDSDプレイヤーあるいはレコーダーとして使用することが可能になる点が大きなポイントです。

 そのためにはMatrixSW側にSDIF-3のインタフェースを作らないとなりませんが、場合によってはSCD-XE600に取り付けたADAT送受信回路をDA3000に取り付ける方がすでに回路があるので近道となり、アイソレーション上も良いのでADAT送受信回路への改造のほうが良いかもと考えています。
ブロック図からは読めませんが、SDIF-3送受信回路の部分を改造すれば、置き換え可能じゃないかと推測しています。

DA-3000ブロック図

2012年7月21日土曜日

QLS-QA350 壊れた

QLS-QA350が壊れてしまったようです。
ケースから出していたのを、組み直して再生しようとしたら音が出ず。LCDの表示もなし。
CS8406がさわれないほど熱くなっていました。どうもラッチアップさせてしまったようです。

SPDIF出力はすでに殺してしまってあるので、CS8406は無くても問題ないため、外してみました。
LCD表示は出来るようになり、曲名の表示もできているようですが、音は相変わらず出ません。
SDカードアクセスは出来ていて再生開始していないっぽいので、CS8406の初期設定で、デバイス外したため応答なしで止まっているのか???
CS8406のパットは、外した時に結構はがれてしまったので、部品交換も無理そうです。orz

2012年4月1日日曜日

ポータブルDAP+DAC 6_POWボード組立

Powerボードが出来てきました。
早速組立してみましたが、いくつかミスってます。

・DCDC(CC3-0503Sx-E/CC3-0505Sx-E)のRCピンを-Vとショートしていない。
・DCDC(CC3-0503Sx-E/CC3-0505Sx-E)の-V出力ピンが5pinのところ4pinになっていた。
・MOSFET(IRF9204)が大きくてはみ出している。
これはある程度わかっていましたが、縦方向、横方向とも無理がありすぎました。
・端子間がスペース余裕がない

FusionPCBの場合50mm×50mmを超えると倍以上の価格になるため横方向を50mmに抑えようとしているのでどうしても無理しがちです。

また、まだ原因がつかめていませんが、過放電防止回路が動いていません。

ちょっとイマイチのところが多いので、PCB再設計しようかと思案中。

 Power ボード基板

 Power ボード 表面

Powerボード 裏面
 チップ抵抗は購入もれのため未実装

2012年3月26日月曜日

ポータブルDAP+DAC 5_CLKボード組立

クロックボードのハンダ付けが大体完了しました。
リフローを考えていましたが、DesignSparkからCratt ROBOへのデータ受け渡し方法が不明のためあきらめて手付けにしてしまいました。


 DXFファイルの出力はできるのですが、ROBO Masteで開いても何も表示されないですし、Eagle時の出力ファイルと内容が明らかに異なります。
 リフローを考える場合、Eagleに戻らないとダメなのか???


Clockボード 表側

Clockボード 裏側

 とりあえず、CDCE913のモード設定をI2Cで行わないと使えないので、Arduinoから書き込み方法と、設定値、設定手順を調べて書き込みを進めます。

2012年3月18日日曜日

QLS-QA350 I2S引き出し

QLS-QA350のI2S信号の引き出し確認をしてみました。
パターンを調べると下図のようになっているようです。
当初dsPIC33FJ12からは、2系統別々にI2S信号が出ているのではと予想していましたが、1系統しか出しておらず、I2S信号の出力ピンと想定していたピンとは別のピンから出ていました。
33ΩのダンピングがCS8406 とWM8740へのルートへ個別に入っています。BCLKに関しては何故か77pinと78pinに導通があります。これについては調べていません。

下図のようにCS8406へのダンピングの出力側からジャンパーで引き出し、CS8406へのパターンはダンピング近傍でカットするのが良さそうです。
これでSPDIFは使えなくなりますが、HAP出力は活かせたままになり、波形の歪が最も軽い引出し方法になると思います。




 I2S信号の回路構成
R34-37はモジュール抵抗で対応は不明


 ジャンパーで引出し、BuffaloIIと接続して音出しの確認をしてみました。
 カットはまだしていません。
 音が出ることは確認できました。I2Sの信号は以前調査したQA550と同じはずなので波形採取はしていませんが、LJ,RJではない、いわゆるI2Sフォーマットです。

I2S信号引出し(基板表面) 
紺:GND(C7のGND設置側) 黄:BCLK(R6出力側) 橙:DATA(R7出力側)

I2S信号引出し(基板裏面)
 紫:LRCLK (R31出力側)  
左上のU14がWM8740でその右にR34-37の33Ωダンピング抵抗、右下のU10がCS8406


BuffaloIIへ接続して確認

2012年3月17日土曜日

ポータブルDAP+DAC 4_CLKボード到着

クロックボードが到着しました。
今度は結構速く配送されました。

 Clock  + ISO ボード



こんな感じでBuffaloIIに載せます。

 BuffaloII+Clockボード

2012年2月27日月曜日

ポータブルDAP+DAC 3_CLKボード

 電源ボードに続き、クロック+アイソレータボードのパターンを作成しています。
 NZ2520SD - 22.579200M - NSA3449C(日本電波工業)+CDCE913で、BuffaloII用のMCLKとDAP用のクロック(orFPGA用クロック)を生成。
 DAP用のクロック(orFPGA用クロック)はアイソレータで電源分離します。
 3.3VとCDCE913のコア電源1.8Vをレギュレータ(Fidelix LZN7815)も実装。


 クロックラインが長くならないよう、BuffaloIIのCXOの上の空間にはめ込み実装します。





クロック+アイソレータボードパターン

クロック+アイソレータボード 3D

DAP+DAC構成 FPGAなし


 FPGAの実装が、まだ調整が必要そうなので、最初はFPGAは搭載せず、上図の構成で組立、後に下図の構成へ拡張することに変更しようと思っています。

 このため当初、NZ2520SD - 22.579200Mを直接BuffaloIIのMCLKに供給するつもりでしたが、CDCE913を搭載することにしました。
 QA350は多分11.2896MHzだと思われるので、分周が必要になりそうなので、それならデバイダを新たに選定するよりCDCE913載せてしまうという考えです。
 1.8V電源が必要になるのと、i2c制御が必要になるので、簡略化のため載せないことにしていましたが、復活することに...

 これによりBuffaloIIのMCLKに2倍、4倍等の周波数供給も対応できるようになります。


DAP+DAC構成 FPGAあり

2012年2月13日月曜日

ポータブルDAP+DAC 2_電源ボード

 ポータブルDAP+DAC用の過放電防止回路付き電源ボードのパターンを作成中。
DAC部用とFPGA用に2個の5V DC-DC TDKラムダのCC3-0505Sを搭載しています。
最初は、トランスの上のスペースを考えていましたが、ちょっと無理があるので、Lipo電池と一緒に立てて、DACなどの基板の横のスペースに入れる想定で引きました。

DC-DCを載せると基板の高さがケースぎりぎりなので、基板外枠とPadのクリアランスがほとんどとれていません。これでボードを作ってくれるか微妙ですが、とりあえずこれで出してみようと思います。

 電源ボード パターン図 (ベタアースなし)

  
電源ボード 3D view_Top側(赤いのがDC-DC)


電源ボード 3D view_Bottom側

2012年2月6日月曜日

ポータブルDAP+DAC

DAPを Colorfly CK4 から QA550 に変更することにしましたが、それを受けるポータブルDACの構成を検討しています。

まず、DAC自体はBufflaloIIを使用しますが、MCLKは、I2Sと同期したクロックにします。また48kHzはあまり必要とは思えないので、44.1kHzに限定してしまおうと考えています。
ここでMCLKの周波数ですが、サンプリング周波数が44.1kHzならMCLKは22.5792MHzで十分です。88.2kHzまでと、DSDについても22.5792MHzでいけるはずです。
ということで、PLLクロックドライバを搭載して90.3168MHzを生成する方向で考えていましたが、22.579200M - NSA3449C(日本電波工業)をそのままMCLKに入れることにしようと思います。

ケースは今のところ、ぺるけ式FET差動バランス型ヘッドホンアンプ_モバイル版と同じタカチのKCS型フリーサイズケース 74.4mm×29.4mm×135mmを想定して、このケースに入ることを前提に検討。


 
 ちょっと微妙ですが、なんとかDE0-nanoが入りそうなので、入れる方向で考えています。約半年前から停止中のSDカードプレイヤー機能を搭載し、最終的にはQA550再生から内蔵SDカードでの再生に切り替えられればと...


 ポータブルDAP+DACブロック構成

 QA550と接続用のDHMIコネクタ+LVDSドライバ  アイソレータ、SDカードスロット、Aruduino pro miniを載せるIFボード、クロックとアイソレータボード、トランス+DCDC、過放電防止をのせたトランス+Poewrボードの3種類の基板を作ることになる予定です。


2011年7月18日月曜日

ポータブルシステム検討6 据え置きと兼用化

 また構成を変更して、据え置き用ヘッドホンアンプ、通常のアンプへの接続も想定に入れるようにしました。MultiDACの構成も見直しその一部として組み込めるようにする予定です。

それから、SD Card Playerの方は思わしくないので、先ずはSPDIF(光)の送受信ポートを設け、音が出ること確認してからSD Card Playerのデバッグを再開するようにしたいと思います。

もうひとつの変更点は、外部クロック入力ポートを設けること。これはMultiDACの一部として組み込む際に必要な機能となります。

先ずはDE0からDE0-nanoへポート数など下記の図に縮退した形で移植を行いつつ、組み立てを進めます。



 
SDCardPlayerのブロック構成

2011年7月15日金曜日

ポータブルシステム検討5

 タカチ CD-180BBが届きました。やはりでかいです。

さっそく、仮配置させてみましたが、載せてみると以外に狭いです。思ったとおりには配置できそうもないですが、電源基板を縦にすればなんとかはいりそう。

LCD取り付けにうってつけのねじ穴があり、ちょうど合います。チェックしていなかったのでこれはラッキー。

ただAKC-12のボリュームとLCDを共存させる配置がどうも無理そう。別案考えねば....

タカチ CD-180BBに仮配置

 重さは、すでに1300g弱に達しています。ファインメットトランスがケース込みで350g/1個なので半分強を占めています。すべての部品を実装するとバッテリー抜きで1500gを超えそう。ケースCD-180BBが425gなので、ケースとトランスの重さで75%を占めることになります。

2011年7月11日月曜日

ポータブルシステム検討4

 ファインメットトランスは、DAP+DACケースとは別にするつもりでしたが、トランスのケースを外せばKC4-10-17にぎりぎり入ります。

KC4-10-17に仮配置

しかし、DAC (BuffaloII)、DAP (DE0-nano)以外にも、DC-DCなどの電源系、クロック関連、SDカードスロット、スイッチなどを実装するのはちょっと厳しそう、AKC-12は完全に入らなくなってしまいます。

ということで、 ちょっとでかくなりますが、高さが45.mmのタカチ CD-180BB (45mm(H) ×132mm(W) ×180mm(L))に変更することにしました。
 このケースであれば、ファインメットトランスケースも収容可能なはずです。


 ついでに取りあえずはBufflaloII 1つで作りますがBufflaloIIデュアルモノ化も可能な体制も考慮しておくことに。


 クロックドライバを5ポート出力のCDCE925にすることと、DAPからのデータをL用/R用に個別化可能にしておくことが主な修正点です。


 もうひとつLCDをつけることも検討中。




 SDCardPlayerのブロック構成

2011年7月2日土曜日

ポータブルシステム検討3

 いくつか構成を変更するトピックスがあったので、構成図を修正してみました。 

電源についても、また変更する可能性大ですが追記してみました。基本的にDC-DCで電源を分離することで考えています。

 
SDCardPlayerのブロック構成


主な変更点



  • IV変換を"LT1994”から”ファインメットトランス”に
  • ES9018の動作クロックをPureRhythmからPLLクロックドライバ(CDCE913)に
  • ES9018のコントローラとして当面はAKC-12とし、I2C用アイソレータ(ADuM1250)を採用
  • 外部プレイヤー接続は当面保留、SDカード再生専用とする
  • SDカードアクセスはSPIではなくSDモード CMD17シングルリード=>CMD18バーストリード
  • 音楽再生中は全ハード処理化、圧縮FATテーブル採用
  • プログラムはできればSDRAMから内部メモリ化
  • ケースは、KC3-8-14からKC4-10-17に変更
 トランスは前に書いたとおりファインメットトランスがなかなか良いとの情報より、とりあえずこれで試して、LT1994は別バージョンとして考えようかと思います。
 
 ES9018のMCKクロックは、これも前に書いたとおりI2Sの場合、SCKとMCKは同期が取れているほうが断然良いとの情報からで、90.316MHzのCXOというのはなかなか流通していないのでVCXO Clock Synthesizer CDCE913で生成することとしました。

 SDカードプレイヤーについては、なるべく消費電力を低減してバッテリーの持ちを伸ばすと共に、電源に影響を与えないようにとの配慮をいくつか取るつもりです。

 SDカードプレイヤー部とDAC部間はアイソレータで電源・GNDを分離し、アイソレターを通したI2Sの各信号をCXO出力のクロックでリタイミングすることで、SDカード側の影響を排除しています。
 こうすることでSDカードプレイヤー側の電源をいろいろチューンする必要はなくなると考えています。

2011年6月25日土曜日

SDメモリカードプレイヤー機能の実装14(FATクラスタチェーン処理)

 SDカード上の曲データを再生するには、FATクラスタチェーンをたどり次々とクラスタをたどっていく処理が必要になります。

CMD18でバーストリード化すると決めた当初、1クラスタ分をいっきょに読み、CMD17でFATクラスタチェーンの該当部分を読み次のクラスタを検索しながら曲の最後まで再生させる予定でした。

1曲分のクラスタチェーンを曲再生前にすべて検索し内部に持つことも検討していましたが、内部メモリをかなり消費してしまうのであきらめていました。

この方法でも一応問題ないはずですが、再生中のFATクラスタチェーン検索処理分の帯域を消費してしまうことと、内部データFIFOの深さを深めに設定する必要があります。
帯域の消費は、その分SDカードへのクロック速度を上げてあげなければなりませんし、内部FIFOの深さを深くするのは、最終的にNiosIIのプログラムを内部メモリ化することを検討しており、このためにはあまり好ましくありません。


しかし5月24日 SDHCカードの調査で取り上げたInterface 2010年9月号 FATファイルシステム特集の第5章に、参考になる記述があり、FATクラスタチェーンを圧縮する方法が書かれているのを発見。
上記問題の解決に効果があると考えられ、これを採用させてもらうことにしました。


何も書かれていない状態のSDカードに曲をコピーした場合は、ほとんどフラグメントは発生せず実際には1つの連続した領域に格納されるはずです。
よって何回も消去、書き込みをしない限りは、圧縮FATクラスタテーブルのサイズは、8領域分か16領域分も用意しておけば十分のはずです。
個人的に使用している限り、1曲は連続領域に書き込まれているという前提でも良いかもしれません。




 FATテーブルの圧縮

処理の概要は下記のようになります。


*曲再生の前処理(NiosII処理)*

FATクラスタを検索し圧縮FATクラスタテーブルを内部メモリ上に構築



*曲再生中(ハード処理)*


[開始時]
領域①の先頭クラスタアドレスをCMD18のアドレスに指定

[再生中]
ⅰ.内部データFIFOが溢れそうになったら(停止閾値超過)、CMD18を停止
=>内部データFIFO読み取り再開閾値を下回ったら停止した次のクラスタをCMD18の
アドレスに指定してバーストリードを再開

ⅱ.圧縮FATクラスタテーブルの領域最終クラスタアドレスに一致したらCMD18を停止
=>次の領域の先頭クラスタアドレスをCMD18のアドレスに指定してバーストリードを再開

[再生終了]
データ長分の読み取りに達したらCMD18を停止

2011年6月19日日曜日

SDメモリカードプレイヤー機能の実装13 (一応音が出たけどへん)

ようやく16bit/44.1kHzで音が出ました。

デバッグではピアノソナタを再生していますが、ピアノの音色らしい音には聴こえています。、音程が外れてノイズもノリノリの状態です。
前にも似たような現象になった記憶がありますが、何のときだったかさっぱり覚えていないし....

しばらく色々調整してみましたが、今のところ原因がつかめません。
原因がつかめないことには、直りそうもないので、とりあえず24bit/88.2kHzの再生、開始位置の調整(現在適当)、曲の終了処理の追加などを進めながら見ていこうと思います。


上海問屋  SDHC 8GB
SD_CLK 5.6448MHz
Sampling Clock 400kHz
Total AccessTime (4sector)  3.412ms(A-B)   Burst to Burst Cycle Tiime 12.3ms(B-D)


 図は、再生中のSDメモリアクセス波形です。
FPGA内部バッファが溢れない程度でバーストアクセスを停止し、エンプティにならないように読出しを再開させています。結果、4セクタ単位にバーストアクセスしています。
SDクロックは5.6MHzで1/3程度のアクセス帯域となっていますので、2.3MHz程度までクロックを落としても転送レートを確保できそうです。

2011年6月11日土曜日

SDメモリカードプレイヤー機能の実装12(バーストリード化)

CMD17によるREAD_SINGLE_BLOCKでは、いくらクロックスピードを上げても24bit/384kHz再生は不可能ということがわかり、CMD18によるREAD_MULTIPLE_BLOCKに切り替えることにし、とりあえず1クラスタ=64セクタのバーストリードができるようになりました。
CRC16の照合を実施しエラー検出していませんので、きちんとリードできていると思います。

サンプルソースが、CMD17によるREAD_SINGLE_BLOCKであったため、読出しのハード化による高速化をすれば、大丈夫と軽く考えていたのですが、データが出てくるまでの時間が長くて想定外。当初予定とはすっかり実装が変わってきています。



Transcend SDHC 8GB
SD_CLK 22.5792MHz
Sampling Clock 1MHz
Total Access Time  12.49ms(A-B)   Data Read Access Time 11.73ms(T-B)
CMD18によるREAD_MULTIPLE_BLOCK 64セクタ分バーストリード


上図は1クラスタ分リードした波形です。22.5792MHzクロックで、1クラスタ分の転送が12.49ms。
24bit/384kHz再生の場合、1クラスタ分で14.2msの再生時間となるため再生可能な範疇に入りました。
セクタをカウントしているカウンタの下位4bitとデータ転送のステートマシンのモニタ出力を追加しています。黄色の波形の'H'および'L'1つが1セクタ分になります。


32bit/384kHzとなると27MHzぐらいまでクロックをアップさせないとまだ実現できませんが、これは可能なら対応するぐらいで考えます。

転送の概要は下記のようなシーケンスになります。

参考としていたドキュメントだと、CMD12を発行した後に転送中のセクタのデータ転送まで完了して転送終了となるようなタイムチャートに見えるのですが、実際に実施してみると、CMD12を出力したら即停止してしまうようです。
そこでCRC16のサイクルに入ったタイミングでCMD12を出力するように変更しました。


CMD18 によりReadデータが1セクタ分毎CRC16が付与されて出力される。CMD12により転送が停止。

CMD18によるREAD_MULTIPLE_BLOCK 64セクタ分バーストリード


下図は、クラスタ最後の転送(64セクタ目)のCRC16出力直後にCMD12を出力しR1bを受信している波形になります。


CMD18によるREAD_MULTIPLE_BLOCKアクセスのCMD12を出力して転送停止している部分


*図のREAD_MULTIPLE_BLOCKをるREAD_SINGLE_BLOCKと誤記っていたのを訂正 6/12