ちょっと古いコンピュータのマザーボードには、システムパラメータを保存するための不揮発性のメモリ(NVRAM)や、時刻を保存・更新するためのRTCの専用チップが使われていることがある。 これらのチップの中には、バッテリを内蔵していて、バッテリが消耗するとチップごと交換することを前提に作られているようである。 代表的なチップは、MT48T02, MT48T08, MT48T59Y (Sunのワークステーションに入っているRTC&NVRAM), DS1287 (IBM PS/2やPC互換機のRTC&NVRAMとして)がある。 新しいものだとSGI Origin 300やSGI Altix 3000で、各ブリックにこの種のバッテリ封入型NVRAMが使われている。
この手の部品は交換が必要になるものなので、ソケットに実装されていることが多いのだが、コスト削減か信頼性向上のためか、ソケットを用いずマザーボードにハンダ付けしているシステムも少なからず存在する。 こういったシステムの例は、Sony NWS-1460, DEC AlphaStation 500だ。 バッテリが消耗したとき、これらのマシンは起動の度に時間を設定しなければいけなくなる他、マシンによってはEISAコンフィギュレーションエラーやCMOS Cheksumエラーで起動できなくなることもある。 チップをうまく取り外せれば良いのだが、実装密度が高い基板の場合はそれも困難である。
そこで、基板からチップを取り外さずに、その場で封入されたバッテリを切り離し、新しいバッテリのソケットをチップ上に実装した顛末を報告する。 SunのワークステーションやSGI Indyなどでは、チップを削り封入バッテリを切り離し、新しいバッテリをソケットをチップ上部に実装する手法が存在するが、SunやSGIの場合RTCがソケット実装のため、基板から取り外して作業することが前提となっている[1][2]。 この報告のポイントはソケット実装でない場合でも同様の手法を用いることができることを示した点である。
今回の被験者はACROSSER AR-B1374だ。
PC互換でISAボード型のマザーボードで、CPUのAm386™SX-40はハンダ面に実装されているので写真では見えない。
ちょっとうまくいくか自信なかったので、2枚持ってる上わりと大事ではないこのボードで試すことにしたというのが本当のところ。
なお、右上のバッテリソケット的なものはRTCの電池で、元々はPowerMac 8600とかで使うタイプの紫色の3.6Vリチウム電池がハンダ付けされていた。
NVRAMは真ん中に見えるBENCHMARQ bq3287AMT
で、ピンアウトはDS1287と同じような気がする。
このボードはNVRAMの電池が切れると毎回BIOS SETUPを要求される上、設定内容を保存できなくなる。
DS1287は大変親切なページに詳細な説明があるので、これを参考にしつつ、電動ドリルにヤスリを付けて削った。
前後運動だと基板を傷つける恐れが高かったため、むしろ回転で削れる電動ドリルの方が安全な気がする。
結果は:
分かりにくいが、左側(GND)の方で端子を切断し、封入されたバッテリを回路から取り除いている。
ある日急にクローズになったりするといやなので。
電池ホルダはゴミ捨て場に落ちていたSony Playstation 2のものと思われる基板から移植した。
表面実装用なのでこういう場合はむしろ使いやすい。
チップと電池ホルダの固定はホットメルトガンの樹脂で行った。
ちなみに、私はこのての配線をするときにはフラットケーブルをばらしたものを使っている。
柔らかさといい太さといい大変使いやすいのでおすすめ。
そして、この基板は無事BIOS SETUPの設定値を保存できるようになった。報告は以上。2013-06-07.