2013年5月30日木曜日

LV-1.0 (6) ファームウェアの話

今回はLV-1.0のFW(ファームウェア)の話です。
LV-1.0にはSMBM基板のシステムマイコン(LPC1343)のFWとUSBIM基板のFXマイコン(USBマイコン)のFWがあります。
(これとは別にFPGAの回路プログラムもありますが今は割愛します)

LV-1.0はマルツパーツから購入できますが、初期インストールされているFWはトラ技オリジナルFWは入っていません。マルツFWがインストールされています。
FXマイコンはトラ技FWのみですが、システムマイコンはマルツ製とトラ技製の二種類あります。

トラ技のLV-1.0のFWページ
マルツパーツのLV-1.0のFWページ
-----------------------------------------------------------
ちなみに上記トラ技のFWページですが「PCコントロール・ソフトウェア」の
ダウンロードリンク先が間違っています。

 FPGA書き込み機能限定版
 http://toragi.cqpub.co.jp/Portals/0/download/2012/lv1/soft/LV10_20120110.zip
 画面設定機能付き版
 http://toragi.cqpub.co.jp/Portals/0/download/2012/lv1/soft/LV-1.0_20120130.zip

 が正しいようです。
※本情報はマルツパーツ様にお教え頂きました
-----------------------------------------------------------

何がチガウかというと・・・
トラ技FWは現在(2013/5)もソースコードが公開されていません。
マルツFWはソースコードが一式公開されており開発環境を構築すればユーザが自由に改変出来るようになってます。
動作的にはトラ技FWの方がOLEDの表示などがリッチです。マルツFWはシンプルな表示です。
細かい部分では動作が違いますが、機能操作はどちらも同じ事が出来ます。

システムマイコン(LPC1343)の開発環境の作り方はこんな感じです。

1.LPCXpressoのインストール
  LPCXpressoのインストールと登録はトラ技のHPで紹介されています。
2.LPCXpressoを起動してImport ProjectでマルツFWを登録します。

3.LV-1.0の他にCMSISv1p30_LPC13xxが必要なので
  \lpcxpresso\Examples\NXP\LPC1000\LPC13xx\CMSISv1p30_LPC13xx.zip
  もProjectに追加します。

4.Full Buildしてみてエラーが無ければOKです。
  Buildが正常に出来ればDebugフォルダにLV-1.0.binが出来るはずです。
  ソースいじる環境ができました。

システムマイコンのFW更新は、SMBM基板のジャンパーを差し替えてUSBを繋ぐとUSBメモリとしてPCからアクセス出来るようになります。(システムマイコンはUSBバスパワーで動作可)
中にFirmware.binがあるので削除してから上記環境で出来たLV-1.0.binをコピーします。USBを外しジャンパーを戻して電源を投入すると自動でFWが書き換わります。便利です。

興味のある方は是非環境整えてマイコンFW改変にチャレンジしてみて下さい。
C言語が少し分かれば誰でも簡単にいじり回せますよ!


それにしてもトラ技のLV-1.0ページは放置が酷すぎませんか・・・?
ソースコードはいつまでたっても公開されないし、上記リンクすら直そうとしません。
そもそもトラ技のHPは連絡用のメールアドレスすら無いので指摘も出来ないんですよね。
わざわざ手紙とか書いてやってられませんし。困ったもんです。

2013年5月29日水曜日

サラウンドヘッドホン (3) DR-GA500のプロセッサボックス

DP-GA500ですが中身はどうなってるのでしょう。
分解してみました。
外観はこんな感じ。比較的小さいです。
裏面。ゴム足が貼ってあるのでこれを剥がすとビスが4本あります。
手前に支点に後ろを持ち上げるようにして上蓋を開けます。
基板が出てきました。
中央下のシールドボックスは半田を外さないと取り外せないので今回はパス。
中にDSPチップが入ってるはずなので後日分解してみます。
上の7.1chのアナログ入力付近に並んでいるのはPCM1808です。
ステレオA/Dコンバータで7.1(8)ch分をまずここでPCMに変換しているようです。(4つ)
右の方のはC-MediaのUSBコントローラ。普通の2chUSBオーディオチップのようです。
(ピンぼけで型番が見えません。申し訳ない)
金属部囲われた部分の右側。なじみの無い型番のICが並んでいます。
左上のICはLC89052TAでデジタルオーディオレシーバです。
パターン追いかけていませんがUSBコントローラのSPDIFをI2Sに変換でしょうか。
中央のICはF0513と書かれていますがおそらくマイコンでしょう。LC89052TAのマイコン制御ラインに繋がっています。
DSPが隠れている部分へ何本か配線伸びているのでDSPの制御もこのマイコンがやってるのかもしれません。
ヘッドホン回路と電源周辺
マイクはスルーといいながらなんか回路があります。バイアス掛けてるだけかな?
DSPからのデジタル信号はDAC(WM8728S)で受けて2chアナログに変換後、ボリューム通してヘッドホンアンプに入っています。
ヘッドホンアンプのチップはAAX UARと書かれた16ピンのICですが詳細は不明です。
電源入力は5.2Vです。チョークコイルの後に電源ICがあります。

全体としては7.1ch入力をA/DでI2S変換、もしくはUSBからの2chをI2S変換されたものがDSPに入り、しかるべき処理後にステレオDACでアナログに戻してHPA経由で出力のようです。
PCからみれば、PCのサウンドカードでD/Aされて本機でA/DされてまたD/Aというステップになるので音質劣化は免れません。その割に結構いい音してます。
音質アップを図るのであれば7.1ch入力を全部デジタル入力にして直接DSPに入れてやればD/Aが一回になるのでいいかもしれません。ただ問題は7.1chでマルチステレオデジタル出力できるサウンドボードが現状見当たりません。
本機が5.1chのドルビーデジタル入力出来れば言う事なかったのですが・・・
サウンドボードを改造すれば出来なくも無いですが、そこまでする価値があるかどうか悩みどころです。

というわけでお手軽なら本機のA/D部分のアナログ回路の見直し、D/A部分の見直しあたりかなと思います。
DACの入力をパラで横取りしてSPDIF出力付ければ、お気に入りのDACとHPAに繋げられるので面白そうです。

LV-1.0 (5) 組立と使用感

というわけで個々の基板改造が出来たので一気に組み立ててしまいます。
配線材もキットに全て付属していますが、説明書に書いてある通りケーブルアセンブリしていかないといけないのが結構手間が掛かります。
(流石にコネクタのピン圧着はキットの時点でしてありますがw)
音声信号と対になるGNDをツイストしておきます。これがまた結構あってメンドイ・・・
なんだかんだで一日作業です。

途中経過だけどこんな感じで組み上げていきます。意外とケーブル短くて丁寧に整線出来ません。
端子配線は半田むき出しの加工が無いように熱収縮チューブなどで保護しておきます。

ちなみにLV-1.0で使っている基板間コネクタですが電源以外は日圧のPHシリーズを使っています。
PHは一度コネクタを差し込むとかなり強くロックが掛かるので、抜き差しを何度もするかもしれない場合はあらかじめハウジング側のロック爪を削っておくのもいいかと思います。
(ロック掛からなくても十分固定出来ます)

一通り組み上がったらテスターでチェックして通電です。
リモコンの電源ボタンを押すとOLEDの画面が点灯し、各基板のLEDが点灯します。
(分かってても初回電源投入で問題無く動くと思わずニンマリしてしまいますw)
スピーカに耳を近づけてもノイズは全く聞こえません。優秀です。
ちなみにスピーカはMonitorAudioのRadius90です。小型でとてもいい解像度のスピーカです。
ヘッドホンはインピーダンスの低い感度のいいヘッドホンを繋ぐと少しサーっというホワイトノイズが聞こえます。(CK-100PROだと聞こえる)これはちょっと残念です。ディスクリートということで期待していたのですが…

PCから音楽をいくつかスピーカ再生してみます。解像度のいいリッチな音がします。
小さな音や響きのいい余韻もしっかり聞こえ、気持ちよく聞いてられる音質です。

少しノイズのあるヘッドホン出力ですが、ノイズを無視すれば素晴らしい音です。
低音はハリがあり高音はキレイに響きます。普段使っているオペアンプ+バッファのお手製HPAより明らかにいい音です。
惜しむべきはノイズです。これは後々なんとか出来ないか対策してみたいところです。
ピアノソロなんかだとどうしてもノイズが気になります。これさえ無ければ・・・

PCからの再生ですがLV-1.0は標準でUSB AUDIO Class 1.0対応です。なので96kHz/24bitが最大の対応になります。
試しにPC側の出力を96kHz/24bitとするとOLEDに96kHzが表示され正常に再生されます。
USB基板のFX2マイコンのFWを更新すればUSB AUDIO Class 2.0も対応出来ますが、Windowsでは標準サポートされていないので専用ドライバがないと動作しません。残念ですがLV-1.0ではドライバは提供されていないのでClass2.0を使いたい場合はLinuxかMacを使う必要があります。

とりあえず192kHzも動くか確認したいので同軸デジタル入力を試してみます。
手持ちの機材が借用したUDT-1しかないので繋いでみますが音が出ません。
サンプリングレートを切り替えるとOLEDの表示は切り替わります。全く動いてない訳ではなさそう。
うーん、何故でしょう。OLEDの表示はSPDIFにもなっているし、周波数も切り替わってるので音が出ても良さそうなのですが・・・
デジタル入力が使えないといろいろ繋ぎたかったものが繋がらないので困ります。
追々調べてみようと思います。

総じて完成後の感想は
・落ち着いたデザインで長く使えそう
・音はいい。ただヘッドホンのノイズだけは気になる
・同軸デジタル入力が動いてない?
といった感じでしょうか。

これからいじり回しが楽しみです。