Nゲージをもっと楽しもう!

 

                     PICマイコン(PIC16F84A)を使う

 

                       ターンアウトシステム(turnout system)
 

トップページ マイコン コントローラー 運行計画 プログラム
接続 オプション 購入 リンク お知らせ/問合せ

このページではマイコン(PIC16F84A)の技術的な側面を説明しています。
苦手な人は斜めに読むか、読み飛ばしてください。

 

  マイコン(PIC16F84A)の入出力

マイコンは入力の信号を読み取り、あらかじめ定められた手順(プログラム)と照らし合わせて、該当するアウトプット指令を行います。

PICマイコン(PIC16F84A)の入出力(GPIO)は13回路あります。
合計13回路の入出力ポートはプログラムで入力とするか、出力とするかを決めることができます。



13回路の全てをポイントに切替に使うと13個のポイントを制御できますが、どのポイントを動かすかの指示ができません。
そこで4回路を動かすポイントの指示用に使用し、残りの9回路をポイントを動かす回路に割り当てました。

一般的にはマンマシンインターフェースにはキーボードスキャン回路を組むことを想定すると思いますが、4×3キーパットを作ると3回路の出力、4回路の入力の合計7回路を占有してしまいます。

多くは無いI/Oポートからキーボードに関連するポートを割り当てると、13回路-7回路=6回路となり、制御できるポイントは6個となってしまいます。

そこで、ビットパターンの生成にはキーボードスキャン回路ではなく、古典的な手法ですがダイオードロジック回路でキーボードを構成しました。

ポイント指示用の4回路は4bit(0001~1111)の15種類のビットパターンとして、PICマイコンに認識させることにしました。

13回路-4回路=9回路となりますから9回路を出力に割当ることができるので、制御できるポイントは9個 となります。




 

  キーボード(Operation Selector Board)

マン・マシンインターフェースは3×5(3行5列)のキーボードによって行います。

ダイオードロジック回路で作り出した0000を除く0001~1111の4ビットの組み合わせで、15種類の運行計画のポイントの動作を指定します。


キーボードに5ビット(5回路)割り当てると31種類の運行計画の動作を指定できますが、動作させることができるポイント数は8個となります。
8個のポイント数ではレイアウトのデザインの自由度が小さくなります。

逆にキーボードに3ビット(3回路)割り当てるとプログラムできる運行計画は8種類になり、動作させることができるポイント数は10個になります。
10個のポイントを使うことのメリットは大きなものですが、運行計画が8種類となると10個のポイントを十分に活用する事ができません。

そこで、運行計画数と制御できるポイントの数のバランスを考えて、プログラムする運行計画数(キーボード入力)を入力SW1~SW15の15種類、動作させるポイント数をP-1~P-9の9個に決めています。

9個のポイントを活用したレイアウトの事例を確認してください。

運行計画数13、ポイント9組(13個)のレイアウトはこちら

運行計画数14、ポイント9組(13個)のレイアウトはこちら

運行計画数12、ポイント9組(15個)のレイアウトはこちら

 

  PICマイコンのメモリ

PICマイコン内にはプログラム領域として1k(1024)ワードのEEPROMと64byteのデータメモリのEEPROM(electrically erasable programmable read-only memory)が内蔵されています。
このメモリーは数十万回以上の書き換えに耐え、10年間ぐらいは内容が保持されます。

15パターンの運行計画と9個のポイントの動作プログラムではメモリ容量を超えることは無いと思いますが、運行計画毎に動作するポイントを無計画に増やすと、メモリ容量を超えてしまいコンパイル出来なくなります。
限界はPLCシーケンスプログラムのステップ数でおおよそ100ステップです。

プログラムの使用したワード数はPLCプログラマー連枝の「ビルド」→「CPU設定」で「ASM/LST定置」にチェックマークを入れて、コンパイル後にLSTフィルの最終行から5行戻ったところの「Program Memory Words Used:」で確認できます。

コントロールボードにはプログラムを書き込むコネクターピンとプログラム書き込みモードと、通常動作モードへの切替スイッチが組み込まれていますから、PICマイコンを取り外すくこと無く書き換えを実施する事ができます。

プログラムの書き換えをコントロールボードから取り外して行うことが可能ですが、ソケットからマイコンを外すことは専用の道具を使っても難しいので、オンボードでの書き込みを機能を実装しています。

 

  PICマイコンのクロック

PIC16F84Aの最大クロックは20MHzです。
ポイントコントローラーではセラミック発振素子を使って20MHzで動作しています。

ポイントコントローラーでは高速の演算は行っておりませんが、PLCプログラマーのCPU設定でデフォルトで20MHzとなっています。


ターンアウトシステム(turnout system)   C 2020 turnout system All Right Reserved.
特定商取引法に基づく表記