2009/06/23(火)試作品

ヘッドホンアンプをタカチのLM100(10cm×6cm×高さ2cm)のケースに入れた試作品です。手前が中に入っている回路と基板。アンプ部の回路はここに現在掲載しているものと同じです。

hpa-lm100.jpg
 
hpa-lm100_borad.jpg

最強の低電圧ヘッドホンアンプを目指して、現在考えられるあらゆる高音質化を行ったため音質はアホみたいに良いです(笑)。改造したPCM2702DACと組み合わせて使うと音の良さは感動モノです(多分)。

ちなみにレールスプリット仕様の12V駆動回路と比べると、両電源仕様&2.5V2700uFの大容量OS-CONの恩恵なのか、やけに低音がハッキリ出ます。アイドル電流は12V仕様の方が圧倒的に多いんですけど。*1

どんな小細工をしたか、たまには秘密にしておきましょう(笑)。ひとつひとつの小細工は既に書いたし手前の基板写真を注意深く見ればバレバレですけどね。部品調達に時間がかかるため、登場はまだまだ時間がかかりそうですが、お楽しみに。

*1 : やっぱりレールスプリット仕様のときは、オペアンプ電源をRCフィルタとか安定化とかしないとダメですね。

部品が揃って 2009/07/18

少しですが中域が籠もるので(特に女性ボーカルで顕著)、それ以外は無茶苦茶音はいいんだけどどうしようか……と悩んでいました。歪ませる味付けすればなんとかなるんだけど、それじゃ本末転倒だし。歪みが皆無のUSB-DACを使ったときだけ気になるんで、普通の中~高級プレイヤーとかなら普通に歪みがあるし気にならないし見なかったことにしようかと思ったんですが。

この試作は一部代替部品を使っていて、キットに使う部品がやっと入手できたため試してみたら、何のことはないあっさり問題解消。あーそうかー、そうなのか。そこがネックだったのか(苦笑)*2

歪まない混ざらないを徹底的に目指すときは、一部に音が籠もる部品が入っているとそれが目立ってしまうということを思い知ったのでした。

そんなわけで、キットの音質は冗談抜きで期待していいと思います(笑)

*2 : あとでぜひ上の写真と見比べてどこが違うのか調べてみて欲しいです。手持ちのFETバッファアンプもあとで改良しよう。

100万ヒットまであと何日

4月ぐらいに計算したらちょうどお盆頃かなと思ったのですが、今計算しなおすと7月中旬には達成してそうです。記念の感謝企画を考えていますので、大したものは用意出来ませんが、気になる方は100万ヒットに掲載されるだろう情報にご注目ください。

あとオフ会もできたらいいですね。個人的に夏~お盆前はイロイロと忙しかったりですけど(苦笑)

FFTとは? ~本当は正しくないFFTの周波数特性~

はてブ数 2009/06/15理工読み物

エンジニアや理工系の人と話をしていると、FFT=周波数特性と勘違いしている人が大勢います。それも絶対に正しいと思っている人が居るんだけどそれは大間違いです

なるべく数式を使わずに簡単にFFTとは何であるのかを解説します。

続きを読む

2009/06/09(火)PCM2702 DAC の更なる改良

このPCM2702 USB-DACをさらに高音質化すべく各種の検証をしたのでまとめておきます。元々相当音が良かったのですが、この改良により「10万円CDプレイヤーでも何でももってこい」という気分になりました。PCM2702 DACを作られた人はぜひ挑戦してみてください。

続きを読む

MSP430F5xx の RTCバグ

はてブ数 2009/06/07デバイス::MSP430

MSP430F5xxx(REV L)には、RTCに設定できないというとても迷惑なバグ(RTC3 Errata)があります。

ErrataのPDFを見るとサンプルプログラムの中にRTC_Workaround.zipというファイルがあるからそれを使えとなっています。

中にはアセンブラで書かれたRTC操作ファンクションがあり「編集禁止」と書かれています。これを C から使おうとしたらハマりました。

  • 割り込み禁止中でも構わず割り込みを許可する。
  • LARGE CODE MODELでは動作せず、呼び出すとスタックを破壊しプログラムが暴走する。

LARGE MODELにはいつ切り替わるのかよく分かりませんが、とにかくRTC設定ファンクションを呼び出すと変数が破壊されておかしいし、禁止中の割り込みが呼ばれて大変な目に合うし……と散々でした。*1

ついでにC++からも利用できないので、その辺修正したライブラリを置いておきます。

  • rtc_func.lzh
    • LARGE CODE MODELに対応した。
    • C++から利用可能にした。
    • SetXXXXX() を呼び出すと「常に割り込みが禁止(GIE=0)されて戻ってくる」ので受側で適当に処理してください。

*1 : CALLAで呼び出しているのに、アセンブラ側で RET で戻っているのが原因。CALLにはRET、CALLAにはRETA。