CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ファンコントローラ

グルーロジックが入ったCPLDは付けたのであとはROMを挿せばCPU周りの挙動を確認できますが、このボードにはもう一か所プログラマブルな部分があり、そこを先に確認しておきます。

基板の隅っこに8ピンPICを使って簡単な空冷ファンのコントローラを置きました。CPUの表面温度を電圧出力温度センサかサーミスタで計測しDCファンをPWM制御する目論見です

はたして486CPUに空冷ファンが必要かどうかですが、手元のデータシートのDC. Specificationsで供給電流を見てみると
 80C86              80mA (8MHz)    ・・・0.4W
 80C286          185mA (10MHz)  ・・・0.9W
 386DX          260mA (20MHz)   ・・・1.3W
 486DX          700mA (25MHz)   ・・・3.5W
 486DX2      1200mA (66MHz)   ・・・6.0W
 PentiumP5 3200mA (66MHz)  ・・・16.0W

クロックの高速化と高集積化で供給電流、消費電力が急上昇してます

昔のPC98とかのパソコンでの実装だと386はヒートシンク無し、486はヒートシンクのみの自然空冷、ペンティアム以降はファンで強制空冷必須でしょうから損失10Wくらいが境目かもしれません。・・今どきのCPU(Intel Core14世代)だと低電圧化してるのに125Wも食うらしいので驚き・・

先ずはICSPで基板上のPIC12F1822にLEDチカチカプログラムを注入して正常動作することを確認。

温度をアナログ値で読み込んでPID制御によってファンをPWM無段階変速なんて大げさに考えてましたが、ファンの羽根が小さくて軽いのであまり回転数制御の幅がなさそうです。単純にON/OFFのみの「コタツ制御」でいいかもしれません。

 

このファンコントローラはメインの486CPUと当然独立して動作しますが、ちょっと工夫してあってPICのICSP端子(J7)とシリアルコントローラのチャンネルB(J4)を以下のように2×6のピンヘッダで並べて引き出してあります

それぞれPICKIT3、TTLシリアル-USB変換ケーブルのピンアサインにしてありますが、このようにジャンパプラグを差すとPICとシリアルコントローラのTxD/RxDがうまい具合にクロス接続されます

こうしてCPUが自身の温度やファン制御量を取得できるようにしたのですが、逆にCPUが自身の冷却をOFFする自爆コマンドを組込むことができてしまいます