↑キット製作例
これらの機能の詳細については「ひろくん」さんのサイトをご参照ください
キット製作オンラインマニュアル(写真が多いのでロードに時間がかかります) キット製作マニュアルダウンロード(Wordフォーマット) 概要 仕様 信号のタイミングチャート 回路図 プリントパターン パーツリスト キーマトリックス表 ソフトウェアダウンロード 動作説明 東芝製ホームターミナルTCJ664での動作 試作機のページへ [トップページへ戻る]
PIC16F84を使用して製作したリモコンです。ひろくんさんとjump_bugさんの解析 結果を使用させていただいて製作しました。この解析により、純正のリモコンには 無い設定用の裏コマンドを送信できるようになりました、ありがとうございます。
回路図を見ていただければわかるように、非常にシンプルな構成になっています。 ただスイッチが32個必要なので部品点数は多くなっています。待機時の電流は 30μAに収まっているので、電源スイッチは不要になりました。
キー数 32キー(SHIFTキーを含む)
純正リモコンにあるキーは全て含まれます
純正リモコンにはないSHIFTキーを使用することで管理用リモコンが発生する各種の特殊コードを送出できます特殊コード DIAGNOSTIC 1
DIAGNOSTIC 2
音量最大
インストールモード
ペアレンタルロック
など14種(現在存在が確認されているもの全て)CPU PIC 16F84A-20/P クロック 3.58MHz 電源 単三アルカリ乾電池3本 到達距離 約3m(抵抗1本を交換することで変更可) 外寸(予定) 70W×155H×27D
単三乾電池を使用するため厚くなっています、単四やリチウム電池を使用することで薄くすることができます重量 (未測定)
赤外線信号のタイミングチャートです。
データコードはそれぞれのキー固有の信号で、リピートコードは連続押しした際に送信されるコードで、どのキーを押しても同じリピートコードが送信されます。
リーダーは連続したデータ0の列です。
データビット列は送る信号に応じたビット列ですが、1と0では長さが異なるために送る信号により長さが異なります。
データビット列の最後には最後のビットが1か0かを定めるための終了ビットが付加されます。データコードの開始から、リピートコードの開始および次のリピートコードの開始までは108msecと定められていますが、リモコンキットのソフトではかなり大雑把に設定して います。また、2.25msecとある部分も実際ははしょって2msecにしています。
赤外線出力の調整
赤外線出力はR1を変更することで調整できます。回路図では10Ωとなっていますが、この値を増やすことで、赤外線出力は減りますが同時に消費電流も減るので電池が長持ちするようになります。通常は10Ωで十分な出力が得られますが到達距離を伸ばしたい場合は5Ωに変更してください。
使用するプリントパターンです、原寸ではないのでご注意を。また、文字でパターンがショートする部分もありますので処理してください。
Copyright 2001 Tickets, All Rights Reserved
パーツNo. 名称 規格 数量 U1 PIC 16F84 1 Q1 2SA1015 NPN Tr 1 D1 赤外LED 1 D2 LED 1 X1 セラミックレゾネータ 3.58MHz 1 C1 タンタルコンデンサ 4.7μF 10V 1 C2 積層セラミックコンデンサ 0.1μF 12V 1 R1 抵抗 10Ω 1/4W 1 R2 抵抗 1.2kΩ 1/4W 1 R3 抵抗 68Ω 1/4W 1 R4〜R11 抵抗 1.2kΩ 1/4W 8 R12〜R15 抵抗 100kΩ 1/4W 4 タクトスイッチ 32 ICソケット 18ピン 1 電池ケース 単三2本用 1 電池スナップ 1 プリント基板 ガラスエポキシ 1 スタッド 15mm 4 カラー 5mm 4 ワッシャ 8 ビス 3mmφ×12mm 4 ビス 3mmφ×5mm 5 ナット 3mmφ 1 パネルシール 1 両面テープ 電池ケース固定用 若干 TAMIYAプラ板 1.2mm厚 1枚 ビニールリード線 ジャンパー用 20cm 使用するPICの選択
Microchip社のスペックシートによれば16F84-10の定格電源電圧は4.5〜5.5Vとなっていますが、単三電池2本で正常に動作しています。ただしメーカー保証の枠を大きく外れていますのでチップ個体によっては正常に動作しない可能性があります、その場合には電池の本数を増やすなどして電源電圧を上げてください。
16F84A-20/Pは定格電源電圧は16F84-10と同じ4.5〜5.5Vですが単三2本で正常に動作しています。
16F84の低電圧タイプの16LF84はこれが2.0〜6.0Vとなっていて最適なのですが、秋月電子では取り扱っていないとのことです。
なお、旧タイプの16C84ではLモデルと同じ2.0〜6.0Vとなっていますが、これも既に秋月電子では取り扱っていません。もし手持ちがあればこちらを使用することをおすすめします。ソフトウェアは16F84と同じ物が使用できます。
元気のある方のためにソフトウェアを公開いたします。
■ ソースコード Ver.3.1 ダウンロード(srcファイル 約10KB)
■ ソースコード Ver.3.1 表示(txtファイル 約10KB)
srcファイルの拡張子をtxtに変えただけのものです、クリックするとブラウザ上で見ることができます■ アッセンブルリスト Ver.3.1 表示 (docファイル 約97KB)
アッセンブル後のアドレス情報を含むリストですパスワードが要求されたら[キャンセル]をクリックしてください、正常に表示されます■ HEXファイル・タイプ1 Ver3.1 表示(hexファイル 約3KB)
Parallax 標準の HEXファイルですMPLABのメモリー領域にインポートできました■ HEXファイル・タイプ2 Ver.3.1 表示(hexファイル 約3KB)
タイプ1からCPUタイプなど付加情報を除いたものです■ キット製作マニュアルダウンロード (Word フォーマット 1.5MB)
ダウンロードするときは上のリンクを右クリックして「対象をファイルに保存」してください左クリックするとファイルを開いてしまいます。
プログラムのバージョンが2.1から3.1に上がりました。以下は主要な変更点です。
○リピートコードの採用
リピートコードを使用するようにしました。
東芝ターミナルのリモコンに使用されている「NEC規格」では同じキーを押しっぱなしにした場合、最初だけはキー固有のコードが出ますが2回目以降は108msecごとにリピートコードと呼ばれる共通の特殊コードが送信されます。
バージョン2.1ではチャンネルと音量のアップダウンに限り約500msecごとにキー固有のコードを繰り返し送信していましたが、今回の修正でリピートコードを送信するようにしました。これにより規格に準拠したものになりましたが、連続押しをした場合単位時間あたりに送信するコードの数が5倍に増えるために消費電力が増えます。
リピートコードを使用することでホームターミナル側では次の動作を実現しているようですが気をつけないとわからないほどの違いです。
チャンネルのアップ/ダウンが連続しているときにいったん画像が安定してから次のチャンネルに移る。
音量のアップ/ダウンが連続しているときに、最初は遅く、続いて速く変化するようにして調整を容易にしている。
なお、他のキーはリピートする意味が無いので、押したときに一度だけ送信するようにしています、これによりボタンを押しっぱなしにしても無駄な送信を行わないので消費電力は大幅に低減されています。
○TCJ664でも一部のキーが使用できるようになりました
記述言語
SPASM というアセンブラの書式で書かれていますので、試していませんが MPLAB など他の環境ではアセンブルできないと思います。
SPASM環境はParallaxのPICプログラマに付属してきます。
Parallax社PICプログラマ
SPASMで生成可能な2種類のHEXファイルも上げました。MPLAB5.30をインストールして試してみたところ、タイプ1のHEXファイルをメモリー領域にインポートすることができました。PICのタイプも正常に認識されているので付加情報も読み込んでいるようです。
このファイルではありませんが、59C11プログラマ用のプログラムが秋月電子製のPICプログラマで焼きこめたとのご報告をいただきました。HEXファイル・タイプ1を読み込んで一部の設定をマニュアルで再設定すれば使用できるようです。詳しくは上記のリンクをご参照ください。
回路図中の Key Matrix 部分の配線、キー表示、マトリックスコード、キーコードの表です。
■ キーマトリックス表(Excelファイル 27KB)
パスワードを要求されたらキャンセルしてください、正常に表示されます。
このマトリックスを実装したものがフロントパネルです。SHIFTキーをいったん押してから別のキーを押すと、キーの右側に緑色で表示されたコマンドが送信されます。
動作が判明していないコードは緑色の斜体で5B のように16進で表示してあります。緑色の文字が無いキーはSHIFT時は55hが送信されます。TCJ552Bは55hには反応しません。
上から2行目左から2列目のキーはSHIFTしていないときは機能を割り振っていません、通常は55hがSHIFT時は44hが送信されます。純正リモコンではここにはキーがありませんので、このようにしています 。保守用コードとフロントパネル表示
フロントパネルに略して書かれている機能の対照表です。これらの機能についての詳細はひろくんさんのサイトで解析結果が発表されています。
キー表示 機 能 D1 DIAGNOSTIC TEST1 D2 DIAGNOSTIC TEST2 MAX 音量最大 CH チャンネル表示が変化 ランプ 全ランプ点灯 5E、5F インストールモードに入るのに使用します (その他のキー) 他のキーと組み合わせて使用するものと
まだ機能が不明なものがあります。
SLEEP状態でキー入力を待ちます、この状態の消費電流は約30μAです。
↓
RB4〜RB7の入力はプルアップされ、RA0〜3、RB0〜3の出力はLに設定されています。
この状態でキー入力があるとRB4〜RB7の入力がH→Lへ変化しインターラプトが発生し、WAKE UPします。↓
キーボードをスキャンし、押されたキーに対応した信号を送信します。
SHIFTモードでは、それに対応した信号が送信されます。
押されたキーがSHIFTの場合はフラグを立てるだけで信号は送信しません。
↓
WAITの後SLEEPモードに入り待機状態に戻ります。
TCJ664を購入して、リモコンキットが使用できるか試してたところリモコンプログラムの旧バージョン(Ver.2.1)では動作しませんでした。TCJ552B用の純正リモコンなどでは664も動作するので、何が違うのか調べてみました。
結論として、TCJ552Bはリモコン信号のタイミングに対する許容範囲が非常に広く、一方でTCJ664はタイミングにシビアであることがわかりました。
ストレージスコープを持っていないので、オシロスコープであたりをつけ、信号のタイミングを変えては試すトライアンドエラーを繰り返した結果、TCJ664でも動作するタイミングに追い込むことができました。
これを新バージョン3.1としてリリースしました。
TCJ552BとTCJ664では使用しているコントロールコードが一部違っています。数字
キーやチャンネル、音量のアップ/ダウンといった機能については同じですがその他の機能に割り振られているコードは全く違うものがありますので、流用してどれほど実用になるかは不明です。
たとえばリモコンキットではキー入力を無視したいときに55hをダミーとして送信しています。
TCJ552Bではこのコードは無視されるのですが、TCJ664ではランプテストのようなことが行われます。