時間があいてしまいましたが、Core2Quadマシンを静音化するための実験をしてみました。
ブレッドボードに以下の回路を組み立てました。回路図作成にはBSch3Vを使わせていただきました。
回路自体はオーソドックスな降圧型のDCDCコンバータです。PIC12F683のCCP機能を使ってPWMの波形を生成し、それでPch-FETを駆動しています。最初は直接回転数をデューティー比にフィードバックしようかと思ったのですが、うまくいかないのでコンバータの出力電圧を分圧してADコンバータで取り込んでPWM信号のOFF/ONにより電圧を制御してフィードバックしています。そして電圧制御の目標をFANの回転数に応じて変化させています。回転数の目標はもちろんLM35で取得した温度に基づいて決定しています。ただ、ソフトウェア処理になっている関係で追従はかなり遅くなります。・・・が、ケースFANなので問題はないでしょう。
FANの回転数センサの信号はかなりノイズがのるので、PICのソフトウェア処理でノイズ除去をかけて、ポートに再出力してマザーボードに返します。これでFANの回転数がマザーボードからも見えるようになります。
ソフトウェアは1ms周期のタイマ割り込みを基準に動作させています。割り込み処理ルーチン内で以下の処理を行っています。
- 1ms刻時
- 温度と電圧を交互にAD変換
- FANのセンサのノイズ除去と回転量検出(積算)
メインループでは以下の処理を行っています。
- モニタLEDの表示(1ms周期)
- 出力電圧の安定化制御(PWM信号のOFF/ON) (1ms周期)
- 回転速度の計算と、目標出力電圧の決定 (2秒周期)
- 温度に基づく目標回転速度の決定 (2秒周期)
後半の処理は実機にあわせてチューニングが必要なので、現時点ではいい加減なものになっています。