2007/10/13(土)CF-R6 で Vista を XP に入れ替えた

はてブ数 PC

ノートPCのCF-R6を使うことになったのですが、Vista Businessがプリインストールされていて、メモリが512MBのせいか普通に動くんだけどいまいち使いにくいんですよね。メモリを増設すれば快適に使えそうではあるんですが、メモリ増設するとバッテリー駆動時間がかなり低下するらしく(1.5Ahぐらい食うようです*1)ノートPCとして致命的な気がして躊躇してました。

いろいろ調べているとWindows XPにアップグレードすると、パフォーマンスが向上してバッテリー駆動時間も長くなるという話をキャッチし、早速入れ替えてみました。

*1 : バッテリ7.2V*5.8A=42W, メモリ:1.8V*1.5A=2.7W。もし標準で5時間駆動とすれば42/5=8.5W/hなので、8.5/(8.5+2.7)=75%。駆動時間が25%減る計算となります。

用意したもの

  • Windows XP SP2(OEM版)
  • USB FDD
  • IDE CD-ROMドライブとIDE-USB変換
upgrade_xp1.jpg
upgrade_xp2.jpg
upgrade_xp3.jpg

検索するとOEM版でも問題なくダウングレード&電話アクティべーションできるとのことでしたので、こんな構成です。USB CD-ROMを買うのはバカらしかったので、USB HDDを分解してUSB-IDE変換だけ取り出しました。USB FDDはチップセットが Intel 945GMS なので、ドライバディスクを入れてHDDを認識させるために必要でした。

インストール作業は難なく終了。XPのプロダクトIDを入れて「いざ電話アクティべーション」と思ったのも束の間、オンラインアクティべーションが通ってしまいました(苦笑)

入れ替えたあと

Vistaが一応普通に動作していたのですが、XPに入れ替えたらXPがすごい快適にサクサク動作しています。ドライバや標準アプリも1つずつ選んで入れたので、余計なものが入らず良い感じ。要らないサービスも止めて、起動時のメモリ消費が200MBぐらいになりました。Vistaは400MBでしたから、この差は大きいですね。

それとやや不安定だった無線LANなぜか安定しました(^^

Intel PROSet/Wirelessを外す 2007/10/13

Intel PROSet/Wireless がやたらメモリを食っていたうえ、ユーザーを切り替えるたびに無線LANの接続が切れる使えなさ素敵仕様だったので(おまけに無線LANの設定がユーザー個別になってるし)、レジストリから消えてもらいました。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
C:\Program Files\Intel\Wireless\Bin\ZcfgSvc.exe
C:\Program Files\Intel\Wireless\Bin\ifrmewrk.exe

を削除。これでWindowsが無線LANを管理しますが、やや不安定です。そこで「コントロールパネル」→「管理ツール」→「サービス」からPROSet/Wirelessアプリケーション用のサービス3つに消えてもらいました(自動起動→手動起動への設定変更)。

  • Intel(R) PROSet/Wireless Event Log
  • Intel(R) PROSet/Wireless Registry Service
  • Intel(R) PROSet/Wireless Service

これらのサービスと止めるとWindows管理のもと快適に無線LANが使えます。Windowsの無線LAN管理デーモンが20MBほど食ってますが、それでもIntelツールを使うよりも50MBほど空きメモリが増えました。

初めからIntelの無線LAN管理ツールはインストールせずに、ドライバだけ適用した方が幸せになれると思います。

単3電池式 ヘッドホンバイポーラバッファアンプ

はてブ数 2007/10/09電子::HPA

このヘッドホンアンプは当ブログの中で、初代に当たります。こんなんでもヘッドホンアンプになるんだという感じであって音も別段悪くはないのですが、成熟度の面から以下の新しいものを推奨します。

このアンプはいわゆるダイアモンドバッファのみのアンプで、どこにでもある部品(2SC1815/2SA1015)で作ることができます。出力電圧範囲が狭い問題などもありますが(高能率ヘッドホンならば十分な音量が出せる)、ちょっと試すには面白いと思います。こんな回路なのに、音も決して悪くありません。

概要

  • 単3電池2本で動く、とてもシンプルなヘッドホンアンプです。
  • トランジスタ式ですが、オペアンプ式+少々の手間で製作できます。
  • 解像度が非常に高く、立ち上がり立ち下がりの大変良い音です。
  • 低音から超高域まで綺麗に再生するNO-NFB型DCアンプです。
  • LM4880よりいい音がします
  • 大音量は出せません。出力レベルが低い再生機器とは接続できません。また低能率ヘッドホンでは駆動力不足になります。
  • 歪み率が(音量によりますが)最大1%程度あります。

回路と解説

回路図は片チャンネル分です。電源以外はもう1つ製作してください。

headphone_buf_amp.gif

  • 単3電池2個、特にニッケル水素電池でも動作できるように回路定数を決めています。
  • R1は発振防止用です。当然無い方が歪み率がよいのですが、外したり(短絡したり)これ以上小さくすると入力ボリュームの位置によって発振することがあります(特にGNDに落としたとき)。*1
  • コンデンサはOSコンだと音質か良いと思いますが、動かすだけなら何でも構いません。音響用コンデンサ(Muse,UTSJ等)でも構いませんが、コンデンサは音質に直結します。
  • ボリュームは専用の記事を参照
  • 回路の抵抗値や電源電圧は安易に変更しないでください。無闇に電圧をあげるとトランジスタが熱暴走する(壊れる)可能性があります。
  • 部品点数が少ないので好みに応じて音響用抵抗を使うと良いと思います。特にNO-NFBなので抵抗が与える音質への影響は大きめです。1Ωの抵抗がない場合は少し大きく(~4.7Ω)しても構いません。適当な1Ω抵抗は今のところMPC78 1Ωです。無誘導巻線抵抗の方が音がいいのですが(OHMITEとかDALEとか)。
  • R2/R3の100Ωは1mA程度のCRD(定電流ダイオード)でも構いません(こちらを参考に)。

再生について

  • このアンプはAB級動作ですが無音時の消費電流は大きめです。電源電圧やトランジスタにもよりますが、片チャンネルで常時10~15mA、両チャンネルで20~30mA消費します。
  • OSコンを使用した場合、エージング(電池をつないで放置する)は100時間程度必要なことがあります。
  • 電池の電圧が下がってくると音が歪みます。音が歪んだら電池を交換してください。ニッケル水素に比べ非経済的ですが、オキシライド乾電池やアルカリ電池を使う方が歪みは少なくなります。
  • 2500mAhのニッケル水素2本で(音量によりますが)連続24時間以上再生できます。

*1 : そんなに小さいボリュームには合わせないということならば、外してください

詳しい解説

詳しい方はすぐわかると思いますが、ただのダイアモンドバッファ回路です。

ヘッドホンで音楽を再生しているとき、その信号(電圧レベル)は通常入力電圧よりも小さくなります。オペアンプの利得は少なくとも80dB程度あり、オペアンプ入力端子ではピーク0.1mV程度の信号(電圧差)を扱っています(小さい音ならば1uV以下)。回路中に小さな信号が存在するということは、それだけ電源や外来ノイズに弱くなることを意味しています。

最近の再生装置(ラインアウト)は+4dBuと言われ、ヘッドホン直結時には(電流不足は別として)音割れして聴けないぐらいの信号が出ています。ほとんどのケースで、再生装置出力側の最終段にオペアンプが付いていてバッファしています。

mosikizu1.gif

あまり意味のない*2再生装置側のオペアンプを排除してしまうという割り切った考えでこの回路は作られています。

  • デメリット
    • 負帰還回路が存在せず最大1%程度の歪み率が代償となっている。
    • 出力インピーダンスがオペアンプ帰還使用時ほど下がらない(0.1Ω未満か、0.5Ωかの差)。
  • メリット
    • (負帰還回路がないので)超高域まで優れた立ち上がり特性を得られる。

メリットについて解説します。オペアンプではその高い利得から周波数追従性を優先すれば回路が不安定になります。発振しないように収めこまれていても、位相特性の変化は避けて通れません。オーバーシュートもその1つで(これは顕著な例であるだけで他にもある)波形の乱れによる音質劣化が避けて通れません。

NO-NFBといわれるオーバーオール帰還のない回路では、波形くずれのない優れた高周波特性を得ることができます。

また、一般に両電源を作るため006P(9V乾電池)から生成する回路がよく使われますが、この回路は両電源回路です。中点からGNDを生成する回路では、電流を流したときに(大きな音が鳴ったときに)GNDの電位がゆらいでしまい音がぼやけます。*3

*2 : その後実験した結果、現在は負帰還による恩恵を除いたとしても実際には意味があることが分かってきています。たとえばこの回路でボリュームとダイアモンドバッファの間に1倍のオペアンプバッファを入れると音質が改善されることがあります。

*3 : 気になる方は製作後に乾電池の中点とコンデンサとの接続を切り離して試してみると良いでしょう。

音質評価

以下の部品は当時のもので、今もって推奨しているわけではありません(特に上2つ)。

  • ボリューム アルプス製ミニデテント10kΩ
  • 抵抗 タイヨーム音響用抵抗(30円/本)
  • トランジスタ 2SA1015/2SC1815
  • 電源 SANYOニッケル水素 2500mAh

大変にクリアな音です。ノイズは皆無。再生装置の音が如実にヘッドホンから出てきます。音の立ち上がり、立ち下がりが非常によく超高域まで綺麗に再生され、それでいて刺々しさは微塵もなく非常になめらかな音がなります。DCアンプだけあり、超低音まできちんと再生され、またその低音がきちんと止まります。ビートを打つような曲で変にもわもわすることはありません。

LM4880と比べると、LM4880の再生音が雑に感じます。そしてLM4880の高域がまるい(スライドガラス越しに聞いている)印象です。(LM4880は決して悪い音ではないのですが……)

(音量によって)歪み率が最大1%程度ありますが、通常再生時に歪みを感じることはありません。ただし、電池の電圧が下がると歪みます(このときは電池を交換します)。電源を入れて1時間ぐらいで鳴り方が変わり、より良くなります。

NO-NFBですので、NO-NFBアンプの製作について(マイナーオーディオの部屋さん)の解説はそのまま当てはまります。

PIC16F88 による シリアル接続型PIC-ADC

はてブ数 2007/10/08デバイス

PIC16F88を用いたシリアル接続型のAD変換プログラムと回路図です。PCに接続出来ますので、そのままPCでデータ処理が行えます。(写真は動作確認時のもの)

pic_adc.jpg

仕様

AD変換回数1000sps(1msに1回)
AD変換解像度10bit
AD変換誤差1bit
シリアル通信速度RS-232C 38400bps
シリアル通信オプションパリティなし、フロー制御なし
電源電圧3.3~5V程度

PIC16F88用ですが、USARTとADコンバータの乗っているPICならば簡単に移植できます。きちんとレベルコンバータIC(MAX232C)を通してますので、いわゆるUSBシリアルでも動作します。

変換レートの1000spsは内部タイマで割り込みをかけているので、(クロックと同じ程度)正確な間隔で計測されます。外部に8MHz水晶発振器などをつければ、正確に1kHzの間隔でサンプリングできます。

回路図とファームウェア

pic_adc.gif

シンプルな回路構成です。電源は3.3~5Vで動作すると思います。もっと違う電圧でも動くでしょう。簡便のためPICの内部発振を使っていますが、より正確な計測が必要な場合は外部に水晶をつけてください。

PICの電源に大容量低インピーダンスコンデンサをつけていますが、たまたま手元にあっただけでここまで大きい必要はありません。100uF程度で十分でしょう。AD変換の精度のことを考えると、低インピーダンス品は使いたいところですが。

使い方

RS-232C経由でコマンドを送信することで制御を行います。コマンドは文字 1byte です。

送信文字機能
Rデバイスをリセットします。AD変換を停止させます。
SAD変換を開始します。
VPICファームウェアのバージョン情報を表示します。

AD変換中に送られるデータは2byteで1つのデータとなっています。並びはビッグエンディアンです。例えば、受信データ配列をchar buf[size]、電源電圧を5Vとすれば、次のようにAD変換電圧を取得できます。

for(int i=0; i<size; i+=2) {
    float volt = ((buf[i]<<8) + buf[i+1])*5/(float)1024;
         :
         :(データ処理)
}

ライセンス

修正BSDライセンスとします。質問とか相談とか、開発とかありましたらコメント欄にどうぞ。

2007/10/04(木)携帯/PHSのステレオミニミニジャックピンアサイン

ステレオミニミニジャックの先端から1、2、3ピンとしたとき。

ピン方向機能
1pin入力端子外部にマイクなどを接続
2pin出力端子外部にヘッドホンなどを接続
3pin-GND

2pinからは(非通話時)+0.5V程度の電圧がでており、短絡させることで呼び出し中の電話を取る(着信を受ける)ことができる。

D社販売、平型端子(315円)の内部ケーブルの場合

cellphone_hira.jpg
cellphone_hira2.jpg

写真右の上から順に。

方向機能
入力端子電話に出るときのスイッチ。GNDと短絡→電話に出る
出力端子外部にヘッドホンなどを接続
入力端子外部にマイクなどを接続
GND-

PICを少し便利に使うアセンブラマクロ

はてブ数 2007/10/02デバイス

PICを初めてさわってみたんですが、アセンブラが癖ありますね。x86(やZ80)に慣れた人間には少々使いにくいのでマクロ集を作ってみました。あまり大がかりにならず、適当な規模にしてあります。

PICマクロ集

マクロ集

利用は用途を問わず自由にどうぞ。

マクロW保存機能
bank0bank0に切り替え
bank1bank1に切り替え
bank2bank2に切り替え
bank3bank3に切り替え
mov reg,reg2×reg ← reg2
movi reg,imm×reg ← imm
and reg,reg2×reg ← reg and reg2
andi reg,imm×reg ← reg and imm
test reg,reg2×w ← reg and reg2
testi reg,imm×w ← reg and imm
or reg,reg2×reg ← reg or reg2
ori reg,imm×reg ← reg or imm
xor reg,reg2×reg ← reg xor reg2
xori reg,imm×reg ← reg xor imm
add reg,reg2×reg ← reg + reg2
addi reg,imm×reg ← reg + imm
sub reg,reg2×reg ← reg - reg2
subi reg,imm×reg ← reg - imm
cmp reg,reg2×w ← reg - reg2
cmpi reg,imm×w ← reg - imm
xor reg,reg2×reg ← reg xor reg2
xori reg,imm×reg ← reg xor imm
jz labelif (zero) goto label
jnz labelif (non zero) goto label
ja labelif (a>b) goto label
jae labelif (a>=b) goto label
jb labelif (a<b) goto label
jbe labelif (a<=b) goto label
  • reg … レジスタファイル
  • imm … 即値
  • label … ラベル

注意

  • mov と movi、and と andi のように第2オペランドをレジスタ/即値で書き分けますが、互いに書き間違えてもアセンブルは通過してしまうのでご注意ください。
  • マクロは1命令ではないので、btfsc などで「次の1命令を飛ばす」を併用する場合は特にご注意ください。

条件分岐(jxx)の使用例

cmpi MEM0, h'20'  ; W = MEMO - 20h
ja   LABEL        ; if (MEMO > 20h) goto LABEL

メモ