40.Loconet マルチ表示ユニットの作成

はじめに
   車輌番号表示機の開発後に、車輌のアドレス表示だけでなくCTC制御盤 
   のように在線やポイント開通方向なども表示できないか考えていました。
   実際のポイントや線路に装置を取り付けて配線するのではせっかくのDCC
   のメリットが出ません。
   Loconetには、車輌の制御から、ポイント、信号などのアクセサリ機器の制御
   に関係するコマンドが流れているので、これを活用してできないかということで
   BDL168による在線表示ユニットとポイント切替のコマンドを出力するスイッチ
   表示ユニットを作成しました。
   

1.仕様
  1.方式
     Loconetから出力されるコマンドを利用し、BDL168のセクション(在線)
     コマンド及び、ポイントなどアクセサリ機器を制御するスイッチコマンドを
     取得して、マイコンの出力ポートへON/OFFさせます。
    
     セクションとスイッチはコマンドと用途が違うのでプログラムば、個別で
     作成しますが、基板は共通とし、汎用性のあるものとします。
     用途別に個別機能追加が必要な場合は、拡張ボードを付加することで
     対応するものとします。

  2.仕様PIC
     I/Oのピン数、USART機能からすでに使用しているPIC16F873Aとします。

  3.Loconetとの通信
    USARTモードを使用し、Loconetとは受信のみとします。
    USARTは以下の設定とします。
       Mode : Asyncronous transfer mode only
       Speed: 16K bps(12h 20Mhz)
       Bit : startx1 datax8 stopx1
       ※Loconetはボーレート16600bpsと特殊です。ここでは設定値から16447bps
        にしています。

  4.PIC16F873A ピンアサイン
      RB0〜RB6  出力
      RA0〜RA3  出力
      RA5      出力
      RC0〜RC2  出力
      RA4  状態表示用 LED
      RC3  セットアップ用ジャンパーピン
      RC6 TX(送信)(未使用)
      RC7 RX(受信)

  5.セットアップモード

    5-1.セクション表示ユニットの場合
      1.本機とコマンドステーションと必要に応じスロットルを
        Loconetケーブルで接続し、本機のジャンパーピン(JP)
        をショートピンで接続して電源を投入します。
      2.スロットルのスイッチ操作でBDL168のアドレス番号を
        指定して[t]を押します。
      3.登録されると本機のLEDが0.5秒間隔で点滅します。
      4.ジャンパーピンを外し電源を切ります。

    5-2.スイッチ表示ユニットの場合
      1.本機とコマンドステーションと必要に応じスロットルを
        Loconetケーブルで接続し、本機のジャンパーピン(JP)
        をショートピンで接続して電源を投入します。
      2.スロットルのスイッチ操作で登録したいスイッチ番号を
        指定して[t]を押します。
      3.登録されると本機のLEDが0.5秒間隔で点滅します。
      4.ジャンパーピンを外し電源を切ります。
      ※登録した番号から+15までの計16アドレスがボードのポート
       に出力されます。

  6.コマンド受信と動作
    6-1.セクション表示
       Loconetより、セットアップモードで登録されたBDL168の
       ボードアドレスのセクションコマンドのみ受信して、該当の
       ポート(1〜16)に出力します。 検出で”H” 未検出で”L”
       となります。
    6-2.スイッチ表示
       Loconetより、セットアップモードで登録されたスイッチ番号
       から+15まで16個のスイッチ番号を受信し、該当のポート
       (1〜16)に出力します。 「t」で”H” 「c」で”L”となります。

  7.BDL168のコマンド

    7-1.LoconetのBDL168からくるSection On/Off のコマンド
       先頭が0xB2で始まる4バイトのコマンド    
       B2 aa bb cc
      aa =  0 A7 A6 A5 A4 S3 S2 S1
      bb =  0 n S0 L  A3 A2 A1 A0

              n=1 常時1
              L=1 検出  L=0 未検出
              A7〜A0 BDL168のアドレス
              S3〜S0 セクション番号(0〜15)
        cc =  check SUM;
    7-2.LoconetのSwitch のコマンド
        BC aa bb cc  
      aa =  0 A6 A5 A4  A3 A2 A1 A0
      bb =  0 0 S1 S2 A10 A9 A8 A7

              A7〜A0 Switchのアドレス
              s1=0 Thrown  s1=1 Close
              s2=0 output off S2=1 output 0n
        cc  =  check SUM;
    7-3.Switch の t Or C を選択時のコマンド (セットアップモードのみ)
       B0 aa bb cc
      aa =  0 A6 A5 A4 A3 A2 A1 A0
      bb =  0 0 S1 S2 A10 A9 A8 A7
              A7〜A0 Switchのアドレス
              s1=0 Thrown  s1=1 Close
              s2=0 output off S2=1 output on
        cc  = check SUM

      注:DCS50KとDT300で出力が違い dt300では ONと0FFを続けて
        出力するが、DCS50KではONのみを出力します。


2.プログラムの開発

  開発ツールは、MicroChip社のMPLAB IDE v8.92です。

  基板は共通ですが、機能ごとにプログラムは分離しました。
  
  セクション表示
   ASMファイル  MDBMSC01.asm   2015/07/01 Ver1.00
   HEXファイル  MDBMSC01.HEX  2015/07/14 Ver1.00
  スイッチ表示
   ASMファイル  MDBMSW01.asm   2015/07/01 Ver1.00
   HEXファイル  MDBMSW01.HEX  2015/07/14 Ver1.00

3.回路図

    回路図はこちら (pdfファイルです)

4.部品リスト

名称  回路表記 品名 数量
PIC  Q1 PIC16F873A 1
ICソケット  Q1 28ピン 1
ダイオード  D1 1N4148 1
抵抗 1/6w  R2 1kΩ 1
 R3,R5 10kΩ 2
 R4 680Ω  1
 R6 47kΩ 1
セラロック 20MHz  X1 CSTLS20M0X51-B0 1
積層セラミックコンデンサー  C1 0.1μF 1
電解コンデンサー   C3  10μF 16V 1
 C2 22μF 16V  1
ターミナルブロック2P緑・縦・特小   MPT 0.5/2-2.54 / 1725656 2
6極6芯モジュラージャック  J2-1 J2-2 7002-6P6C  2
1連 ピンヘッダ         2P JP   1
1連 ピンヘッダ        10P J1 J2   接続方法により各自で変更 2
1連 ピンヘッダ         6P ICSP   1

 入手しやすいパーツにしています。(秋月電子でほとんど購入可能です)
 
 ・C3の電解コンデンサーは、容量を大きくすると、PICKitとの接続による
  ICSPの機能が効かなくなります。10μF以下を使用してください。

5.プリント基板と実装

   PCBEでプリントパターンを作成して 海外のPCBCARTに発注しました。
   ポートからの出力の抵抗など設置せず外付けにすることとしました。
   電源は、外部から5Vの安定化電源の供給を受けることとし、基板内に
   実装していません。
   
   表面                             裏面
   

   作成した基板
   

   実際に基盤に実装した様子
   
   

6.拡張基板(参考)

   メインユニットから16本の出力ポートと5Vの電源のピンがあるのでこれを
   上下に接続することで、任意の回路を組んでコントロールすることができます。
   写真はRailroad & Co. のTrainControllerから出力される信号のスイッチコマンド
   (2つのスイッチアドレスで1組)を1つの信号表示に変換するユニットです。
 
   CTCの場合、3灯でも表示は赤・青の2灯表示するケースが多いのでこれに
   あわせて3灯信号を2灯に変換してLEDで表示させるユニットです。
   基板に乗っているICはPIC12F609です。安価なものであればロジックICと
   値段も変わらずプログラムでロジックを変更できるメリットがあります。

   アイデア次第でいろんなものが作れると思います。

  

  

  組込事例 (H様作成中 写真もH様より提供)
  
  額縁のようなパネルに表示ボードを作成

     
  裏にはセクション・転轍(ポイント)・信号用のボードがたくさん
  並んでいます。

  
  表示の一例:在線・転轍(ルート)・信号と表示されています。


開発後記

 実はこのユニットは2度目の作成になります。
 下の写真が初期のバージョンでトランジスタアレイのドライバを積んでいました。
 サイトをご覧くださっているH様からお話をいただき、再度見直しをして
 H様の企画と並行して進めておりました。
 H様にはこの場を借りて感謝・お礼申し上げます。


  


  ご注意: ・このサイトに記載してある内容・製作・改造に関し、万一損害が生じても
        当方では責任を持ちませんのでご自身の責任の範囲でお願いします。

       ・サイト内のコンテンツの転載・商用利用は固くお断りいたします。


Copyright (c) 名古屋電鉄 http://nagoden.la.coocan.jp/