2015年7月20日月曜日

エアコンのリモコン修理

「長時間使用されないときは液もれ防止のため電池を取出してください」の通りの故障。
  • 東芝のWH-D4N(エアコン用/平成9年購入)
  • 実家の客間、使用頻度かなり低い
  • 電池の液漏れを見つけたので、掃除した(洗剤は使っていない)
  • 電池交換したが動かない
「ちょっと見て」ということで、確かめてみると。
  • 本体は、強制ボタンで動作OK
  • リモコンの電池を入れ直して
  • リセットしてもLCDが全部点いたり、全く点かなかったり
  • リモコンLEDが光らない
リモコンを預かって帰る。
  • 電池ホルダの金具を紙やすりで磨いてみたが全く現象は変わらず
  • リセットからうまく起動できない感じ(LCD表示がブロックごとに明滅)
ここで「リモコンの故障」なので、ネットで探してみる。
  • 同じ型番の中古品がヤフオクで1500円程度
  • ユニバーサルマルチリモコンと称するものがアマゾンで新品444円!
代わりがあるようなのでバラしてみることにする。カバーを分離するのは、とてもやっかい。はめ込み式なので、大小のマイナスドライバを何本も使って、けがしないように慎重に根気よくカバーをはがす。

電池の液漏れは何度も見てきたが、
  • 液漏れは、バッテリホルダから金具を吸い上がって基板のマイナス側パターン周辺を侵食していた
  • 溶けて銅パターンが無くなっているような個所はなさそう
  • LEDの導通はOK
  • 侵食された付近には、何かの設定用と思われるジャンパーが数か所
  • 初期設定から先に進まない=スイッチが放されるのを待っているみたいな感じ
部品面側の掃除だけでは、現象変わらず。
  • 基板を外して、ボタンコンタクト側を掃除
  • 綿棒が随分と汚れるのは導電性の汚れ?
  • ボタン(導電ゴム)側も掃除する
画面はばっちり、各ボタンにも反応するようになった。終了

2015年7月8日水曜日

PIC USB のまとめ

【ネットで調べると】
ネットで自作記事がいっぱい出てくるが、各記事の年代差が大きく、つまみ食いするとかえって混乱する(混乱した)。
  • 2000年ごろから USB が PC の方で一般的になったため記事が出始めている
  • 2005年1月号トラ技:FTDI の USB-シリアル変換IC FT232BM の紹介/CDC
  • 2008年8月号トラ技:付録基板はまだ仮想COMポート
  • 2009年 PIC USB ブートローダーのアプリケーションノート
  • 2010年1月号トラ技:デバイスドライバ WinUSBの活用記事
  • 最近の記事は、ドライバが不要な HID クラスが主だ
【1対N(ホストとターゲット)のパケット単位の通信】
  • N < 128
  • エンドポイントと呼ばれるバッファメモリを介在する
  • パケットに指定されたアドレスをデバイス側で検知して必要なパケットを受信する
  • デバイスに対して送信データがあるかホストから問い合わせる(デバイスからの発呼不可)
  • フルスピードバルク転送モードの場合、最大64バイト(パケットサイズは選択できる)
【エンドポイント】
  • いわゆるメモリ受け渡しみたいな事
  • 双方向のコントロールエンドポイントがひとつ
  • その他のエンドポイントは、単方向で個数はデバイスにより異なる
  • Windowsからはエンドポイント番号を使って読み書きするだけ
  • Windows側のアプリはパケット分割を意識する必要はない(転送サイズは要)
【転送モード】
  • コントロール転送: 必須事項
  • バルク転送: ロースピードモードでは使用できない
  • インタラプト転送: 周期的な小容量通信(マウスやキーボード)
  • アイソクロナス転送: ロースピードモードでは使用できない(音声や動画)
  • 最も高い優先順位をもつ転送はアイソクロナス転送
  • その次は周期的にデバイスへのアクセスを行うインタラプト転送
【デバイスクラス】
  • CDC(Communications Device Class): 文字通信
  • HID(Human Interface Device Class): キーボードやマウス
  • マスストレージクラス:USB メモリ
  • その他
【ディスクリプタ】
  • デバイスディスクリプタ
    ベンダID,プロダクトIDなど、デバイスの特性や属性などの情報
    コントロール転送を用いて、GET_DESCRIPTOR のリクエストを送る
  • コンフィグレーションディスクリプタ
  • インターフェイスディスクリプタ
  • エンドポイントディスクリプタ
  • ストリングディスクリプタ
【レイテンシ】
  • フレーム単位が1msであるということ
  • USB2.0ではマイクロフレームが追加され、125μs単位
  • レガシーIOは、μsオーダーで反応する(割り込み処理)
  • 入出力の反応時間がばらつくことになる(パソコン制御の大きな欠点に)
  • 転送モードにより優先順位も異なる

今回は、「市販品のIOを購入するほどでもない数本程度の入出力(表示ランプやスイッチ)、あるいは自前のプローブ回路のリレー等の制御を低コストで実現するには」がテーマ。
CDCでとりあえず可能であろうことは分かった。HIDデモを動かしてみたところまで(2015年6月作業分)で、整理しておくことにした。
マイクロチップの「デモ」を動かすところまできたけれども、ネットの情報はバラバラなので、トラ技を古い順に目を通してこの資料をまとめた。しかし、ここから先は、2週間経つも全く進展しない。(やる気、集中力のなさはこの不順な天気のせいか?)  雑誌の記事の「あとがき」に「使いこなすまでの壁が高いが、分かれば楽」とあったけれど、具体的に、こうするにはどこをどう改変すればいいか、が今後の課題。目標は、HIDで、例えばみかけジョイスティックで、信号入出力をExcel VBAから実現すること。
Km2Net USB-IO2.0 がそれに近そう。

数年前、装置にログ機能を持たせるとしたらということで、USBメモリかSDカードを追加できないか検討した。この時は、FATシステムを組み込むとメモリを圧迫すること、ブラックボックス部との共存の不安(開発時に余計なところに時間をかけたくない)から、FATをもつ専用のICを使った方がいいと結論し、サンプルを購入したりして試した。