PICkit2でPIC12F1822に書き込む

秋月に行ったついでにPIC12F1822(単価¥80)を買ってみました。

目的は「なるべく小ピンかつ外付け部品なしで115.2kbpsのシリアル送受信をしたい」ということからです。

で、調べていたら、PICkit2でPIC12F1822に書き込むには一工夫必要なようです。

PICkit2(書き込みソフトの方)を立ち上げた後、「Help」→「About」としたときに、ダイアログの右上に表示される「Device File Version」が1.62以降でなければならいようです。

Microchip社のPICkit2のページの右のほうに「Device File 1.62.xx」というリンクがあるので、リンク先のZIPファイルを保存します。保存したZIPファイルの中の「PK2DeviceFile.dat」で「C:\Program Files\Microchip\PICkit 2 v2」フォルダの中の同じファイル名のものを上書きすると、認識するようになりました。

Core2Quadマシン静音化(失敗編)

前回、実験に使ったFANは7V 0.04Aのもので、これを9V電源でテストしていました。

そこで、12VのパワーのあるFANをちゃんと回せる回路なのかが気になって、秋月電子で適当に12V電源の3線タイプのFANを2個買ってきました。

で、さっそく2個のうちの1個の山洋電機製のFANをブレッドボードの回路につないで、電源を12Vに変更してみると、爆音を立てて回り始めます。(電源投入直後は全力で回るようプログラムを組んである)

・・・・・・・が、爆音を立てて回り続けるだけで、回転数が下がる気配がありません。オシロで波形をみると、センサからパルスが出ておらず、Lのままになっているように見えます。

もうひとつのミネベア製のFANも同様につないでみましたが、こちらもやはり爆音を立てて回り続けるばかりでまったく回転数が落ちる気配がありません。

で、山洋の型番を頼りにGoogleさんに聞いてみたところ、行き着いたのが、この技術資料です。

こちらによると、センサつきFANは以下の3種類があるようです。

  • パルスセンサ(回転信号出力型)
    モータ1回転につき、2周期の矩形波を出力する
  •  ロックセンサ(回転停止検出型)
    モータが回転しているか、停止しているかを検出して出力する
  •  ロースピードセンサ(回転速度検出型)
    モータの回転速度が設定回転速度より低下したときに出力する

ということで、FANの羽根を無理やり押さえつけて止めてみたら、信号が出力されました。これでは速度パルスを期待して速度制御しようとしても全開で回り続けるのは当たり前です・・・・orz

FreeNASアップデート

嫁さんが「(FreeNASに保存してある)写真にアクセスできない」というので、そんな馬鹿な・・・・と思いながら、管理コンソールにアクセスしてみたら、確かに応答がありません。直接コンソールをみても反応なしです。仕方がないので、強制電源OFF/ONしたら復帰しました。

で、調べてみると、いまインストールしてあるFreeNASは8.0.2なのですが、最新は8.0.4のようですので、アップデートしてみることにしました。

・・・が、その前に、別のHDDに中身をバックアップします。

いつものようにBunBackupを使って、Windows7マシンにつけてある外付けHDDに中身をバックアップします。やはり誤操作ですべてを失うリスクがありますからね。

8.0以降からのアップグレードの手順はこちらにあるようです。基本的な手順は、

  1. 設定ファイルの保存
  2. CDからフルインストール
  3. 設定ファイルの復元

のようですが、WebGUIからもアップデートできるようです。ただ、この場合は設定ファイル保存後に、一旦サービスを停止して、アップデート、再起動・・・という手順を踏むようです。(結構めんどくさい感じ)

で、CD-ROMからアップデートしようかと思ったのですが、結局WebGUIからアップデートをかけてみることにしました。

思ったほど手順は難しくありません。

  1. アップデート用のファイルのダウンロード
    こちらからアップデートに必要なファイルをダウンロードします。 WebGUIでのアップデートに必要なファイルは拡張子がxzになっているものです。あわせて、sha256のチェックサムファイルもダウンロードしておきます。
  2. ファイルの正当性チェック
    「$ sha256sum FreeNAS-8.0.4-RELEASE-x64.GUI_Upgrade.xz」
    として、チェックサムが一致するか確認します。(GUIの中でもチェックされるようです)
  3.  設定ファイルのバックアップ
    一応、設定ファイルをバックアップします。万が一WebGUIでアップデートするのに失敗した際に必要になるのでしょう。(自分は必要ありませんでした)
    Webの管理コンソール画面で、「システム」→「設定」→「一般的な設定」の中に、「設定のダウンロード」というボタンがあるので、これを押すと設定ファイルを保存できます。
  4.  サービスの停止
    「サービス」→「サービスの制御」でONになっているサービスをすべてOFFに変更します。
  5.  コンソール表示の設定
    「システム」→「設定」→「高度な設定」 で「フッタへのコンソールメッセージの表示(UIのリロードが必要)」にチェックを入れて、「Save」を押します。その後、ブラウザでリロードボタンを押すと、下の方にコンソールメッセージが表示されるようになります。
  6. ファームウェアのアップデート(一時保存場所の設定)
    同じ画面(「システム」→「設定」→「高度な設定」)で、「ファームウェアアップデート」を押すと、アップデートファイルを一時保存する場所を聞いてくるので、適当に設定します。(自分はデフォルトのままにしました)
  7. アップデートするファイルの指定
    アップデートするファイルがどこにあるか聞いてくるので、1でダウンロードしたファイルを指定します。併せて、sha256のチェックサムの結果もコピー&ペーストで入力します。
  8. あとはひたすら待つ
    途中、勝手に2回リブートがかかります。再起動の途中でブートメニューが一瞬表示されますが、触る必要はないようです。(自分は触りませんでした)
    コンソール画面を見ていると、2回リブート後に通常の「Console setup」の画面になり、アップデートが終了します。
  9. 停止したサービスを再開
    4で停止したサービスを再開します。

で、意外に簡単に終わりました。

 

Core2Quadマシン静音化(メモ)

マシン静音化工作に関連するものをメモっておきます。随時内容を追加していきます。

1.FANに使われるコネクタの品番(2012/03/23記載)

シリコンハウス共立さんのブログに情報がありました。

  • MOLEX 5051-3 (3Pレセプタクルハウジング=メス側)
    51191-0300を使っている場合があるみたい(3/31追記)
    マルツではケーブル付きで 売っているみたい
  • MOLEX 5159TL (専用コンタクトピン)
    →50802-8000を使っている場合があるみたい(3/31追記)
  • MOLEX 5045-3A (直型ポスト:マザーボードについているやつ)
    →5045-3Aは旧番号で、 22-04-1031が新しい製品番号みたい(3/31追記)
    図面を見ると、2.5mmピッチのみたい。Eagleのライブラリcon-molexの中に、
    22-?-03 として登録されているので、そのまま使える!
  • MOLEX 5046-3A (曲型ポスト:上記のアングルタイプ)
  • MOLEX 5240-31 (3Pプラグハウジング=オス側、ケーブル取付用)
  • MOLEX 5241TL (専用コンタクトピン)

 2.PCB製造メーカーの調査(2012/03/24記載)

調べてみると、こんな感じ。

  • OLIMEX
    定番ですね。160mm×100mmの両面で30ユーロ+送料8.5ユーロ。
    これまではこのサイズに収まれば複数のデザインを面付けしてくれたみたいだけど、2012/03/15からは複数デザインの面付けが有料(5ユーロ/ファイル?)になったようです。なんでも拙い設計の細かい基板をたくさん送ってくる初心者がいて、面付けにかかる時間が無駄だから、とのこと。ちなみに自分で面付けする分には無料とのこと。
  • FusionPCB
    5cm×5cm両面だと10枚で$9.90みたい。送料込みで$13.42だった、なんて話も。
    今回のものは5cm角なんて余裕で収まってしまうだろうから、問題無し。
    パターン幅やドリルの制限も緩いようだし、Eagle用のDRCファイルもあるようだ。
    しかもルーター切り出しもできるので、好きな形の基板が作れるようだ。板厚も選べるらしい。
  • CustomPCB(=SILVER CIRCUITS?)
    6.3inch×4inch(約15cm×10cmくらい?)の2層基板で$18/1枚のようです。
    パターン幅やクリアランスは最小7mil、最小穴は12mil(=0.3mm?)、最小シルク幅6miilみたい(ここを参照)。
  •  Advanced Circuits
    アメリカの会社のようです。 60平方インチの2層基板で$33/pcsのようですが、最小発注数量4pcsなので、最低でも$132かかります。設計ルールは line/space =6mil/6mil。最小穴は15milのようです。
  • ハッピーPCB
    検索で引っかかりました。日本でサービスをしているようですが、製造は韓国のようです。
  • P板.com
    言わずと知れたP板.com。

やっぱりFusionPCBですかね。もうちょっと調べてみましょう。

Core2Quadマシン静音化(実験編)

時間があいてしまいましたが、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秒周期)

後半の処理は実機にあわせてチューニングが必要なので、現時点ではいい加減なものになっています。

rkhunterのwarning

久しぶりに電源を入れたLinuxMint11環境で rkhunter -c を実行したら warning がたくさん出てきました。調べてみると、

$ sudo rkhunter -c

でチェックを行いますが、時々メンテナンスをしてやらないといけないようです。

普通行う作業としては、rootkit検索のためのテキストデータファイルのアップデートを

$ sudo rkhunter –update

で実施します。また、ファイルに変化がないかどうかを調べるためのデータベースファイルのアップデートを

$ sudo rkhunter –propupd

で行います。

ただし後者は無闇に実行すると感染したファイルを比較対象のデータベースに登録してしまうリスクがあります。感染ファイルをデータベースに登録してしまうとチェックの意味がなくなりますので要注意です。信頼できるところからチェックの対象となるファイルのアップデートがかかったときのみ実行するべきでしょう。

Core2Quadマシン静音化(調査編)

最近使っていないCore2Quadマシン(マザーボード:GA-G31M-ES2L、CPU:Core2 Q6600、OS:WindowsXP Home Edition)があります。なぜ使っていないかというと、はっきりいって「うるさい」のです。てっきり、CPUファンがうるさいのかと思っていたのですが、必ずしもそうではないようなので調べてみました。

このマシンにはCPUファンの他にフロントにケースファンがついています。それもかなり大きな多分12cmくらいあるものです。

まずFANの回転数を調べるためにOpen Hardware Monitorをダウンロードしてきて実行してみました。

FAN1が1640rpmくらい、FAN2が1380rpmくらいで回っています。機内温度は34℃くらい、CPU温度は45~50℃くらいであることがわかります。

次に、CPUに負荷をかけるためにIntelBurnTestにかけてみます。

しばらく放置すると、

となって、CPU温度が73℃、機内温度が60℃に達します。このとき、FAN1は2800rpm付近まで回転数が上昇していますが、FAN2は1375rpmでほとんど変わっていません。つまり、FAN2がケースFANで回転数は制御されておらず、常に全力で回っていてうるさいのだと思われます。

こいつ(ケースFAN)を何とかすれば静かになりそうです。(まあ、12cmもあるファンが1400rpmで回ってたら風切音がうるさくて当たり前のような気がしますが)