注意:以下のファームウェアはWindows XP SP3 ProfessionalとHome Edition、Windows 7 64bit ProfessionalをOSとするMicrosoft Bluetooth プロトコルスタックだけにしか対応していません。
ここでは、マウスカーソルがPCのディスプレイ画面上を円を描くように動くようにするHidMouse1_1.zipを省エネ化しています。PIC用のファームウェアはHidMouseDeep.zipです。“HidMouse1_1.zip”との違いはmain.cだけです。main.cの中で、YTS-ADD”や“YTS-CHANGE”で、その違いを示してありますので、簡単にお分かり頂けると思います。なお、回路図は以下のように少し変えました。
PIC基板の回路図を以下に示します。(拡大図)
bluetooth-USBドングルは結構電力を消費します。Bluethoothをしばらく使わない時には、PICをスリープ状態にするほうが賢明です。そこで、PICに備わっているdeep sleep機能の使用を試みました。deep sleep時には、PICの消費電流はスペックで20nAです。PICがdeep sleep状態の時には、bluetooth-USBドングルの電源も切らなければ、省エネの意味がありません。そのために、回路図の様に、ON抵抗が小さいSSM3K119TU(MOSFET)を使いました。挿入損失は電圧で2mV(電流は60mA程度)でした。一方、deep sleep状態の時の電流は、ほぼ5Vから3.3Vを得るための3端子レギュレータできまり、XC6202P332TBのスペック通り10μA程度でした。なお、deep sleep用の簡単な例がPIC24FJ64GB002 (サンプル)の節にあるので参考にしてください。
使用法:まず、最初にPCと接続するときは、PIC回路の電源を入れる際、ドングルのLEDが青く光るまで、接続用タクトスイッチSW1を押し続けてください。2回目以降の接続は、タクトスイッチを離したまま、単にPIC回路の電源を入れるだけです。PCとの接続が完了するとLEDが光ります。 接続が完了すると、10秒間(タイマー23割り込みを使っています)、マウスカーソルがPCのディスプレイ画面上を円を描くように動きます。その後deep sleep状態に入ります。マウスカーソルは、もちろん止まります。deep sleep状態から回復するためには、復帰用タクトスイッチ(SW2: INT0割り込みを使います)を押します。すると、自動的に再接続が行われ、また10秒間、マウスカーソルが円を描くように動きます。