DCC簡易コントローラについて補足

 

ここでは、主としてInputUnit3装置とBasicUnit装置の機能の紹介、組み立て時のトラブルシューティング解説をおこないます。

 

1:システム構成

 

今まで紹介した回路図を並べて、システム構成例を図1と図2に示します。DC5V電源をBasicUnitへ接続します。他のすべての周辺装置(InputUnit1,2,3, BDxUnit, segLEDdisplayUnit)はBasicUnitから給電されるので、電源は不要です。電源を入れるときの機器接続状態やSW操作により、以下のように、動作モードが切り替わります。

写真1:北米Nゲージレイアウト用のDCC簡易コントローラ製作例

 

 

写真2:写真1のコントローラの表側。制御盤上のLEDで在線状態がモニターでき、さらに、押しボタンSWでルート切り替え(ポイント切り替えと信号機制御)が一括操作できる。このLEDによる在線検知機能は、(本機とは独立に動作する)DCC簡易モニター装置(別ページで紹介済、写真の上に見えている小さな基板)を使っている。

 

 

1-0フラットケーブル:

 

本機の機器間は16芯ないし20芯のフラット(リボン)ケーブルで接続します。これらは「バスライン」となっており、3つ以上の機器を接続するときは、ケーブルの途中にコネクターを増設して接続します(図0)。

 

 

図0:簡単のためここで芯数は少なめに描いてますが、実際には16ないし20芯ケーブルを使います。

 

 

1-1ノーマルモード

 

図1:ノーマルモード時のシステム構成の例

 

図1は通常の状態(ノーマルモード)です。この図において、在線検知回路BDUnitは4つだけ接続しています。すでに述べたとおりカスケード接続(BasicUnit側から一段目は一つ、二段目は2つ、三段目は4つ、四段目は8つの枝分け方式)により最大15個(=1+2+4+8)まで接続可能です。

 

InputUnit3は二つ接続していますが、同様にして増設可能です。InputUnit1InputUnit2はこれらInputUnit3に習って接続してください。InputUnit1,2,3の混在も可能です。ただし、InputUnit1InputUnit2へは7segLEDdisplayUnit用の青いケーブルは接続不要です。

 

DCCコマンドステーションからレールへの給電ライン(RailARailB)の途中でBasicUnitを経由するようにします。DCCコマンドステーションからはLoconetも接続します。

 

BasicUnitRA1端子(つまりSW-1)は、表示したいアドレス(アクセサリーデコーダのとき入力1(SW-off)または在線検知アドレスのとき入力0(SW-on)を選択します。

 

1-2ノーマルモード、スローモードについて補足:

 

このモードで電源を入れると、InputUnit3のすべてPIC16F877ALEDは一時的(0.3秒程度)に点灯し、すぐに消灯します。そうならない場合は他のモードになっています。

 

このモードとするために、BasicUnitPIC16F877ARC2端子は1となっています。InputUnit3PIC16F877ARA4端子は1となっています。

 

スロー(動作)モード代表アドレス表示モードとしたい場合は、ノーマルモードの機器接続状態において、InputUnit3PIC16F877ASW1-1RC0端子)とSW1-8RC7)を同時押し(前者の場合)、またはSW1-7RC6)とSW1-8RC7)を同時押し(後者の場合)ながら電源を入れます。なお、後者の場合はその直後に8つの登録された代表アドレス(ただし、767を引いた数値となることに注意。未登録なら256になる。)を順次表示して、そのまま前者のモードになります。

 

 

1-3レジストモード:DCCコマンドステーションを用いてInputUnit23にルート設定を登録する状態)

 

図2:InputUnit3をレジストモードとした場合のシステム構成

 

図2はInpitUnit3をレジストモード(DCCコマンドステーションをもちいてルート設定を登録する状態)にした場合です。この図には示していませんが、在線検知回路BDUnitへは接続したままでも何ら問題ありません。念のため、レジストモードを持たないInputUnit1,2,3への接続は外します。そして、レジストモードとしたいInputUnit3へはレジストモード用のコネクタへ接続します。InputUnit3回路の右側のPIC16F877A(図中の赤い四角)がレジストモードに対応しています。

 

-4レジストモードについて補足

 

このモードとしたい場合は、図2の機器接続状態において、レジストモードとしたいInputUnit3PIC16F877ASW1-2RC1端子)を押しながら電源を入れます。このときInputUnit3LEDが二回点滅します。ちなみに、点滅の仕方の微妙な違いにより、そのPIC16F877Aに書き込まれたプログラム?????tst2.asm?????tst5.asmの違いを表しています。

 

このモードとするには、BasicUnitPIC16F877ARC2端子は0となっています。InputUnit3PIC16F877ARA4端子は0となっています。

 

もし、SW1-2を押さずに電源を入れると、レジストモードに入らずに、InputUnit3は無反応な状態(LED消灯、すべてのSWは無反応)になります。電源を切り、配線を確かめてください。

 

2:動作時の「仕掛け」について

 

ここでは、参考のため、本機がどのように動作するかを概説します。

 

-BDUnitの在線検知機能:

 

在線検知機能はBDUnitBasicUnitへ(直接または他のBDUnit経由で)接続しなれば動作しません。接続されたBDUnitは在線検知アドレスとその在線状態をBasicUnit同期シリアル通信にて送信します。BasicUnitはそれら在線状態の変化(差分情報)だけをLoconetへ流します。なお、列車のレール短絡事故などによりDCCコマンドステーションが一時的に機能停止し復旧すると、BasicUnitはすべての在線情報をLoconetへ再送信するようにしています。

 

-InputUnit1,2,3によるアクセサリーデコーダ基本操作

 

当然のことながら、InputUnit1,2,3に並ぶ押しボタンSWを操作すると、そこに登録してあるDCCアクセサリーデコーダが反応(つまり、ポイントや信号機などが切り替わり)します。ルート機能も同様です。

 

このときInpuutUnit1,2,3BasicUnit間は次のようにパラレル通信します。InputUnit1,2,3RB0---RB7端子とRA2,3端子にDCCアドレス(10ビットの使用により001-999)を出力した状態でThrown/Closed命令をRE0,1端子に出力します。BasicUnitRD0---RD7端子とRC0,1端子、そしてRC4,5端子で受信します。つまり、BasicUnitは、まずRC4またはRC50になるのを読み取ってThrown/Closed命令を受け取り、そのときのRD0—7RC0,1の状態を読み取って、DCCアドレスを認識します。

 

2-3 InputUnit1,2,3SW同時押しへの対策:

 

SW同時押しは誤作動の原因になります。この対策として、本機は最初に押されたSWにのみ反応して動作します。ルート機能などは一連のシーケンス動作に時間がかかりますが、この間、InputUnit3LEDが点灯したままとなり、動作中を表示します。InputUnit2LEDは待機中に点灯し、動作中は消灯するというInputUnit3とは反対な動作パターンになります。InputUnit1にはそのようなモニターLEDは装備していません。

 

このSW同時押し対策の仕掛けですが、まず、動作中のInputUnit1,3RA1端子が0出力します。つぎに、これをすべてのInputUnit1,3RA0端子で受信し、その後のSW操作をすべて無視するようにしています。ちなみに、InputUnit2はこのときRA2に出力しRA3で受信します。

 

2-4 その他:

 

SegLEDdisplayUnitBasicUnitRB0—7に出力される信号のうち、RE0,1,21が出力されるタイミングだけに反応して、3桁アドレスとして表示するようにしています。RE0,1,2RC3はそのうちどれか一つに循環的に1が出力されるようになっていて、RC3=1のとき7SegLEDdisplayUnitBasicUnitRB0—7出力を無視します。逆に、InputUnit3BasicUnitRC3=1のときのRB0—7出力を受信して、770以上のアドレスによるDCCコマンドステーション等からの遠隔操作を起動します。

 

ちなみに、あるInputUnit3からBasicUnitに対し、770以上のアドレスをThrown/Closed命令として送信すると、BasicUnitLoconet出力部が持つ「ループエコーバック機能(自身の送信内容を自分に返す)」により、他のInputUnit3のルート機能を起動することができます。つまり、BasicUnitLoconetへ接続しなくても起動できます。

 

 

3:組み立て時のトラブルシューティング(動作確認方法)

 

組み立て後は、以下の動作確認をしてください。

 

-1:BasicUnitLoconet接続の確認

 

BasicUnitは電源を入れると同時にLoconetに対し、DCCコマンドステーションの電源を入れる(DCCレールパワーON)ようにしてあります。そのため電源を入れる前に、DCCコマンドステーションの電源をOffにしておけば、電源を入れた瞬間にDCCレールパワーONになります。これにより、BasicUnitLoconet間の接続状態が正常かどうかがわかります。ただし、このときBasicUnitRA2SW3)がOffになっていることが必要です。つまり、SW3ON/OFFすることによっても、DCCコマンドステーションのDCCレールパワー状態をON/OFFできます。

 

3−2:在線検知機能の動作確認

 

まず、BDUnitの単体としての動作確認はBDUnit基板上のLEDでおこないます。これにより第一センサー(RA0の入力)状態が確認できます。第二以降のセンサー回路の動作確認はRA1からRA7端子にテスターを当てて電圧を確認してください。ちなみに、在線時に0になり、不在時は1になります。

 

在線検知機能に関するBasicUnit側の動作確認にはSegLEDdisplayUnit(またはLoconet経由で自動運転ソフト等をインストールしたパソコン)が必要です。なお、BDUnitを一つもBasicUnitへ接続しない状態では、BasicUnitの在線検知機能は動作しません。

 

BasicUnitの電源を入れたときに、接続されているBDUnitのすべての在線情報がBasicUnitを経由してLoconetへ一括送信されます。これはBasicUnitSW1ON(0入力、つまりGND接地)しておいて電源を入れると、SegLEDdisplayUnitに在線アドレスと在線情報(小数点の点灯=在線)が順次(高速)表示されることで動作確認できます。

 

-3:InputUnit1,2,3によるアクセサリーデコーダの制御

 

InputUnit1,2,3のしていることは単純なので、これら基板の単体(BasicUnitは不要)で、テスターにて動作確認できます。基板上のいずれかの押しボタンSW1-1からSW1-8 の一つを押すと、それに対応したDCCアクセサリーデコーダのアドレス(ルート機能なら複数個のアドレス)が、RB0---RB7端子とRA2,3端子に(10ビットの使用により十進数アドレス001-999を二進数)として出力し、そしてThrown/Closed命令がRE0,1端子として出力されます。つまり、RE0,1端子のいずれかがThrown/Closedに応じて命令出力時に0になります。ただし、待機状態ではRB0---RB7端子とRA2,3端子、RE0,1端子はすべて1になっているはずです。

 

InputUnit3は電源を入れたときに、LEDが一時的に点灯し、すぐに消灯するはずです。これによりノーマルモードに入ったことがわかります。

 

InputUnit3に登録されたルート設定内容はスロー動作モード代表アドレス表示モードにより確認することができます(上述の1-2を参照)。

 

-2:InputUnit3のレジストモード

 

InputUnit3は(SW1-2を押しながら)電源を入れたときに、LEDが一時的に点滅し、やがて点灯状態を維持するはずです。

これによりレジストモードに入ったことがわかります。DCCアドレスを書き込むたびに、LEDは点滅し、再び点灯状態になります。レジストモードが終了(999cを入力または14個アドレスを入力後)すると、高速点滅を繰り返します。

 

 

                                           以上。