2015年3月22日日曜日

自転車ビーコンの第4世代リモコン

予定していた通り、自転車ビーコンのリモコンをタカチのPS-65プラスチックケースに移行し、歴代最小のリモコンが出来上がりました。
画像左のPS-85(全長85mm)と右のPS-65(全長65mm)比べると、スペック以上に小さく感じます。手の中にすっぽり収まる小ささとなり、小型化に関しては納得のいくレベルになりました。

 電池交換後に手動で強制リセットが必要、ボタンが中央に無いために持ち方に気を遣う必要があるなど、心残りな点がまだあるので、また基板を起こして作り直す予定です。

TWE-Liteの外部リセット回路

 TWE-LiteでリセットICを使うに至った経緯を書いたばかりですが、まだ詰めが甘かったです。TOCOSさんの技術情報にあったリセット回路から部品点数を減らして簡略化したリセット回路にしたところ、自作TWE-Lite Rからファームウェアのプログラミングモードに入れなくなりました。
 最初は、push-pull動作のリセットICとライターでRST信号の競合が起きているかと思い、リセットICとTWE-LiteのRST端子の間に抵抗を入れてみました。しかし、現象は変わりませんでした。テスターで調べてみると、ボルテージディテクタ(リセットIC)が電圧不足を判定してRESET#をアサートしている時に、TWE-LiteのRST端子からVccと同じ電圧が出力されていました。
TWE-LiteのMCUであるJN5164のリセット端子は入力専用ですので、不可解な動作です。もしかすると、JN5164のRSTが直接出ていないのかもしれません。このような現象に直面し、TOCOSさんの技術情報にあるリセット回路が、RST端子のアサートではなくGNDの切り離しでリセットを実現している意味が理解できたような気がします。TWE-Liteでは、起動に至る前にRST端子が出力動作をする事があって、通常のリセットICの使い方では起動の制御ができないのではないかと思います。
 観念して、 技術情報にあったリセット回路と同等の回路を組むことにしました。リセットICの追加だけでなくGNDの切り離しが必要なため、小手先の変更では対応できそうにありません。Elecrowから基板が届いたばかりですが、早速作り直しが必要です。

 今回のリセットICにまつわる試行錯誤で得た教訓は「TWE-LiteのRST端子にリセットICを接続するな」です。

2015年3月9日月曜日

コイン型リチウム電池でTWE-Liteを動作させて経験した問題

 TWE-Liteを間欠的に動作させた場合、その平均消費電流はかなり小さくなるため、CR2032等のコイン型リチウム電池でも、長期間動作させることができます(たぶん)。

 CR2032の標準放電電流は0.2mAであるのに対し、TWE-Liteが電波を送受信するときの消費電流は約20mAと、100倍の開きがあります。TWE-Liteで造った最初の作品である自転車ビーコンでは、リモコンの電源としてCR2032を使用し、大きな電流を取り出すためのバッファとして、1Fの電気二重層コンデンサを用意しました。
 しかし、この回路では、CR2032から流れ出す電流を制限していなかったため、TWE-Lite動作時に大電流を放電する事に変わりは無く、CR2032は短期間で電池切れになりました。

CR2032の特性を調べていくうちに、大きな電流を流した場合、標準放電電流で取り出せる220mAhよりもはるかに少ない容量しか取り出せない事を知りました。電池を長く持たせるには電流を制限する必要があると考え、最近試作した戸締まりチェッカーのセンサー子機では、バッファコンデンサとの間に抵抗を入れてみました。
この回路は一見うまく行くかに見えましたが、始動性に問題がありました。C1の両端電圧を見てみると、2Vから全く上昇しなくなるのです。オシロスコープが無いので実際の波形は不明ですが、イメージとしては下のようなグラフになります。
この現象はコンデンサの容量とは関係なく発生し、2Vに達した段階でCR2032からは数mAの電流が連続して流れていました。しかし、R1を100Ωにすると発生しなくなります。
 ファームウェアで何とかならないかと、SVM(Supply Voltage Monitor)の設定変更を試してみましたが、cbAppColdStart()にすら達していないようで、お手上げでした。

 この現象は、C1が充分に高い電圧まで充電されていれば発生しません。試しに、2Vで頭打ちになった状態でRSTをGNDに一瞬落としてみると、C1は3V近くまで充電されます。C1両端電圧の変化イメージは、下のようなグラフになります。
 どうやらこれは、TOCOSさんの技術情報「信頼性向上のための検討」に書かれたリセットICが必要なケースのようです。そこで、高い始動電圧を確保するために、2.63VのリセットIC(TCM809R)を追加しました。TWE-Liteの内部プルアップを考慮して、外部の10MΩプルアップは省略しています。
 起動後は、Q1でリセットICを無効化します。これは、起動後の電圧ドロップでリセットICが再動作してリセットを繰り返すのを防ぐ事と、リセットICの動作電流(9μA)を節約するためです。

 リセットICを追加したところ、2Vで頭打ちになる現象は発生しなくなりました。 この時のC1両端電圧の変化イメージは、下のようなグラフになります。
  定常時のスリープ中に電池から流れる電流を測ったところ、約1.5μAでした。Q1によるリセットICの停止が効果を奏しているようです。

 今後は、コイン型リチウム電池で真面目に電源を設計する場合、リセットICは必ず付けるようにします。

2015年8月13日追記

CR2032の放電特性を検証した結果、電気二重層コンデンサとリセットICを使用しない方向で見直しをしています。詳しくは、
 コイン型リチウム電池でTWE-Liteをバースト送信させた場合の電池寿命を検証してみる

で始まる放電実験をご覧ください。

2015年3月8日日曜日

自転車ビーコンの歴代リモコン4世代

歴代リモコンを並べて撮影してみました。左が古く、右へ進むほど新しくなっています。

 左端は初代リモコン。内部に基板は無く、TWE-Lite DIP PCBを両面テープで固定していました。実際に動くものを手っ取り早く1台作りたかったので、ケースはMINTIA BREEZEの廃品流用です。

 2代目は、コンパクトで安定したケースに入れたかったので、タカチのCS-75と専用ユニバーサル基板で作りました。2代目以降のTWE-Liteは、DIPではなくSMDを使用しています。TWE-Lite SMDはユニバーサル基板に乗らないので、テープで固定していました。2代目の途中から、LEDのパイロットランプを点滅するようにしました。
 小型化については充分でしたが、内蔵したタクトスイッチの厚さに無理があったせいか、チャタリングと思われる誤動作が頻発しました。それ以外にも、スイッチが押しにくい、選定した電気二重層コンデンサの特性が不適切などの問題がありました。

 右から二番目は、現在使用している3代目です。スイッチを大型化し、内部抵抗の小さな電気二重層コンデンサを採用して、2代目にあった問題は改善されました。使用したケースはタカチのPS-85で、大人の掌からはみ出るサイズは大きいと言わざるを得ず、コンパクト化に関しては後退してしまいました。
 3代目からは、KiCadで設計してElecrowで製造したプリント基板を使用しています。お陰で、組み立てがだいぶ楽になりました。

 一番右は、次に作る予定の4代目で使用するケース(タカチのPS-65)です。3代目と比較して半分の大きさのスイッチを使用し、電池をCR2032からCR1220に変えることで、このサイズに納まる予定です。

2015年3月1日日曜日

自転車ビーコンのリモコンケースをCS-75からPS-85に引越し

自転車ビーコンのリモコンを新調し、ケースと基板を一新しました。

ケースは、タカチのプラスチックケースCS-75から、同じくタカチのPS-85に変えました。これは、EDLC(電気二重層コンデンサ)を大きな物に交換するためです。

 CS-75で使っていた電気二重層コンデンサ(ELNA DCK-3R3E224-E)は、サイズ重視で採用したものの、内部抵抗が大きく、TWE-Liteの駆動に必要な約5~20mAの電流を流すと電圧降下が1V以上も発生してしまいます。EDLCはCR2032から取り出す電流を平準化するために導入したものの、DCK-3R3E224-Eでは全く役に立たない事がはっきりしたので、内部抵抗が小さくて稼動実績もある、大容量のSE-5R5-D105VYVに戻すことにしました。SE-5R5-D105VYVは大きくてCS-75に納まらないため、ケースをPS-85に変更しました。

 PS-85にはCS-75のような専用のユニバーサル基板が用意されていませんが、最近はKiCadで設計した基板をElecrowで作るようにしたので、既製基板の有無はどうでもよくなりました。PS-85になって部品サイズの制限が緩くなったので、貧小な10円タクトスイッチから、大きくて押しやすそうな丸型タクティルスイッチに変更しました。

 この画像は、KiCadで設計した基板に部品を載せた状態です。こちらは表面。
 電池ホルダーはSMTU2032です。容量1FクラスのEDLCは分厚くて、平置きタイプではPS-85でも入り切らないため、薄型の縦置き用EDLCを横倒しにして、基盤を挟み込むように配置しています。

 こちらは裏面。UARTのTXとRXを逆に配線するというミスをしたのに加え、後から思いついたアイデアを試すために部品を追加したため、切ったり貼ったりが痛々しいです。
今回から、ケースの加工に型紙を使う事にしました。穴の位置をFreeCADの図面上に描いてからSVGファイルにエクスポートし、これをInkScapeで読んで印刷すると、原寸ぴったりの型紙になります(FreeCADでは原寸プリントができないようです)。

 印刷した型紙をケースに糊付けします。
 糊が乾いたら、型紙に書かれた位置に穴を開けます。大きな穴は、ドリルで開けた穴をハンドリーマーで広げました。
 用が済んだ型紙は、剥がしてから糊を水ぶきすると、綺麗に取り除けます。スイッチ穴の縁が角張っていると手触りが悪いので、ヤスリで傾斜を着けて押しやすくしました。
パイロットランプは、穴を開けずに淡い透過光を見せるようにしました。この方が、穴あけ加工が省略できるうえ、外観がすっきりしてデザイン的にもいい感じです。
黒いケースは光を透過しないので、やむなくLED用の穴を開けました。こういうデザインは好みではないので、この黒いケースはもう使いません。
スイッチの窪みがかなり深いので、カバンの中に入れても誤作動は起こりにくいと思います。明日から、このリモコンを使ってみます。

 できたばかりの新リモコンですが、PS-85のサイズは満足できる小ささではないので、使用する部品を見直して、よりコンパクトなプラスチックケース PS-65で作り直す予定です。既に基板はElecrowへ注文済みで、仕上がりを待っているところです。
 寸法確認のために使ったKiCadの3Dプレビューはこんな感じです。
 ケースに食い込んで見えるスイッチは、穴あけ加工後は若干引っ込んだ状態で露出します。同じく食い込んで見えるLEDは保険のつもりで置いた予備で、実際は並列に配線した表面実装LEDで賄うので、最終的には無くなります。

3月5日追記
型紙作成のため、PS-65ケースにタクティカルスイッチの穴を追加した3Dモデルを用意しました。この角度からは見えませんが、始動を確実にするためのリセットICを追加したため、配線が変わっています。