2007/04/05 木

DAC基板

いままで配布したDAC基板たち
blogに移行するとき、これらの情報も整理しようと思っていたのだが、ぜんぜんやっていなかった。
というわけで、とりあえずDAC群だけ載せてみる。

・TDA1543 シングル基板
 最初に配布したもの。配布といっても、自分用に作ったあまり基板(このとき5枚)を出したもの。
1543_2para.jpg
写真は、西川さん作成の物。

・TDA1543 4パラ基板
 この基板を配布することによって、かなりオーディオ友達ができました。
1543_4para.jpg
写真は、青木さん作成の物。

・TDA1543 4パラファイナル基板
 両面基板とし、いろいろ詰め込んだもの。
 ノンオーバーサンプリング(追加基板により、4倍オーバーサンプリング可能)
1543_4paraF.jpg
写真は、西川さん作成の物。

・TDA1543 球ばっふぁ基板
 球なのにB電圧9V(笑)とした、カソフォロバッファDAC基板
1543_tube.jpg
 半分ウケ狙いだったのだけど、わりと人気があった。

・TDA1541 球ばっふぁ基板
 TDA1541に、前述のカソフォロ球ばっふぁをつけた物。
 ノンオーバーサンプリング(追加基板により、4倍オーバーサンプリング可能)
1541_tube.JPG

・TDA1541 OPAMP IV基板
 電源込みのシンプルな基板。手っ取り早く、1541の評価をするために作った物。
 ノンオーバーサンプリング(追加基板により、4倍オーバーサンプリング可能)
1541opiv.jpg

・TDA1543 4para epilogue基板
 TDA1543 DACの最終版。
TDA1543は、L,R2個入りDACだが、これをLチャンネル、Rチャンネル専用としている。 片チャンネルに2個のDACチップを使っているので、4パラ接続となっている。電源はPROST式LED電源。
 4倍オーバーサンプリング(改造によりノンオーバーサンプリング化可能)
1543_epi.jpg

・TDA1541 2para epilogue基板
 TDA1541は、L,R2個入りDACだが、これをLチャンネル、Rチャンネル専用とし、2パラ接続としたもの。電源はPROST式LED電源。
 4倍オーバーサンプリング(改造によりノンオーバーサンプリング化可能)

写真は試作品。

配布を通して、いろいろな方と知り合うことが出来、有意義でした。ありがとうございます。
反面、いやな思いをする事もあり、モチベーションが段々、落ちていきました。 しばらく、オーディオ系基板を作ることも、配布をすることもないと思います。

今現在、手元に生基板は一枚もありません。 このエントリーをきっかけに、私の基板をほしいと思ってくれた方が居てもお役に立てません。すみません。

2007/02/02 金

VirtualServerのゲストOSにFreeBSD(その2)

まだやってんのか!?というのは置いておいて、VirtualServerにFreeBSD6.2を
入れた場合について検証してみた。
VirtualServer2005R2 SP1 betaにて。
FreeBSD6.2Rを導入。ちなみに、FreeBSDゲストは、2つ起動して実験している。

素のままの設定だと、calcru多発。時計が進むなどの問題発生。
最終的に以下のように設定し、ほぼ問題なし。

/boot/loader.conf
----
hint.apic.0.disabled="1"
debug.acpi.disabled="timer"

マルチプロセッサの意味ないし。。。VmWareの設定においても、よく見かける。
あと、acpiのtimerは切っておく。

/etc/sysctl.conf
----
machdep.tsc_freq=2793396462 <- TSC周波数直指定
kern.timecounter.hardware=TSC

timecounterは、TSC以外はバギーだと思った方がよい。
calcruにて、backward, negative timeが多発する。
時計の進み具合は、machdep.tsc_freqにて設定する。
たとえば、私のdmesgでは(Pen4-2.8GHzの例)、、
Timecounter "TSC" frequency 2795872114 Hz quality 800
てな具合で、TSC周波数を計測してくれるわけだが、これは、起動のたびに揺らぐことが多く、あてにならない。
よって、machdep.tsc_freqにて、TSCの値を直指定して、時計の精度を確保する。追い込むと、1時間ごとにntpdateしても、0.01秒くらいの誤差になり、実機並になる。
しかし、ホストマシンのCPUを変更する場合、machdep.tsc_freqの設定を事前に詰めておく必要があるだろう。とくに、サーバとして運用する場合。(まぁ、普通いきなり、サーバハードの入れ替えはしないだろう。)
そういう面倒なことがいやな場合で時計の精度だけ確保するならば、以下のようにしてもいいかもしれず。
/boot/loader.conf
----
hint.apic.0.disabled="1"
debug.acpi.disabled="timer"
kern.hz=100

/etc/sysctl.conf
----
kern.timecounter.hardware=i8254
しかしながら、calcruが多発しまくるのでお勧めできないかも。

しかし、VirtualServerの情報は少ないなぁ。
私は、VmWareより好きなのだが。(元が、Connectix製品というところが。)

2007/01/15 月

リモコンアッテネーター

pingさんのところで、すごいことになってます。
ロータリーエンコーダー対応、各社リモコン対応、その他いろいろの機能が
拡張された、プログラムが公開されています。
液晶表示もかっこよくなっていますので、リモコンアッテネーター基板を持っている人は、試されてはいかがでしょう?
LCDの表示も、pingさんのところで見れます。
http://piroping.cocolog-nifty.com/

2007/01/09 火

VirtualServerのゲストOSにFreeBSD

VirtualServer2005R2のゲストOSにFreeBSDを入れてみたところ、時計が速く進むので萎えた。。。
googleで調べてみると、同じことで悩んでる人はいるが、これで解決という決めてにかけて、決着がつかなかった。
といわけで、私の備忘録としてやったことを列挙しておこう。

FreeBSD4.11
そのままでは、時計が2〜3割早く進む。ntpdateで合わせるとしても限界がある。
APMや、シリアル、パラレルは、カーネルで無効にしてある。

1発目の実験
/etc/sysctl.conf
kern.timecounter.hardware=i8254
これは効いた。でも、microuptime() went backwards が、ぽろぽろと発生する。
また、
microuptime() went backwards (949.141279 -> 253.763991)
といった感じで、結構なズレがある。

2発目の実験
/etc/sysctl.conf
kern.timecounter.hardware=i8254
kern.timecounter.method=1  <追加
これをしたら、
microuptime() went backwards (7437.847218 -> 7437.845208)
こんな感じで、微妙なズレになった。

3発目の実験
2発目でやった、sysctrlに加えて、カーネルコンフィグに以下を追加
options CLK_CALIBRATION_LOOP
options CLK_USE_TSC_CALIBRATION
options CLK_USE_I8254_CALIBRATION
options NTIMECOUNTER=20
なんか、microuptimeが出る頻度が下がった気がする。

最終的に1日動かして、1秒〜3秒程度のズレ(実機並)になったが、
dmesgには、microuptime, たまに、 calcruが出てウザイ。
根本解決になっていないけど、カーネルのメッセージを出す部分をコメントアウトしてしまった(汗
/usr/src/sys/kern/kern_resource.c と、kern_synch.c の2つがそれにあたる。

今のところ安定稼働しているが、ちょっと不安。

FreeBSD6.1でもためしたが、こちらもi8254にし、Kern.Hzを100にすれば安定した。ただし、calcruは多発するので、メッセージを殺すなりしたほうがいいかもしれない。

2007/01/01 月

元旦

さいきん、さっぱり更新しておりませんでした。ネタ切れです(笑

それはともかく、本年もよろしくお願い致します。

2006/11/29 水

続bb-shout

bb-shoutは快適に使えているが、1点、気に入らない点がある。
エラーになると、再接続してくれない。BGMを流しているときにエラーで止まられると、いちいちリセットしなければならない。これは面倒。
なので、PICをつかってリセットをかけるようにした。
●動作
・エラーLEDが点灯したら、リセット待機動作に入る。(10秒待機)
・リセット待機動作中、MenuやMuteボタンが押下されたならば、リセット待機時間しきりなおし(ボタン操作より10秒に再セット)
・無操作が10秒続いたならば、自動的にリセットを行う。
といったロジック。
今後、使いながら少しづついじるかもしれず。
たとえば、リセット待機時間を10秒以上にするとか、リセット待機中にMenuや、Muteボタンが押されたならば、リセット待機動作を完全にやめるとか。
(すなわち、エラーLEDが消灯するまでは、なにもしないようにするとか)
まぁ、現状のプログラムでもはるかにマシなので、このままかも。
19:30修正---
結局、なんらかのボタン操作が行われたら、リセット動作はキャンセルするようにした。
ボタン操作ができるということは、リセットもできるということで、自動リセットする必要がないからだ。

bbs.jpg

欲しい人いないとは思うけど、一応、HEXを(ロジック変更版)
bb-shout.zip

PIC 12C509A用。秋月で150円で売っている。
このあいだ買った、PIC開発ボード(BASIC)で作ろうと思ったんだけど、12C509は非サポート! しかたなくアセンブラで書いた。12C509は、PSのアレの開発に燃えていたときにいっぱい買って余っていたので使った。
プログラムは秋月のPICライターで書き込み可能。

ピンアサインは、
Pin1 : +5V
Pin2 : ERROR LEDへ(R12の、LEDではない方へ接続)
Pin3 : MENU/SET (R19のスイッチ側)
Pin4 : Mute/Cancel (R13のスイッチ側)
Pin5 : リセット待機表示LED。LEDのカソード側を接続。アノードは、470オーム程度の抵抗を通して+5Vへ。
Pin6 : 未使用
Pin7 : Reset (R32のスイッチ側)
Pin8 : GND

といった感じ。

2006/12/16 修正---
手元のPICがなくなりましたので、PICを譲ることができなくなりました。
PICライターを持っていない人は、持っているお友達にお願いするか、
秋月のPICライターあたりを買って焼いてください。
当方では対応できませんので、よろしくお願いいたします。
<< 37/48 >>