fc2ブログ

Latest Entries

入手可能な PIC12LF1840 で ワンコインデコーダ を作る

2023.4.17追記 PIC12F1822の在庫は復活したようです。

2023.4.3追記 ポイント用ソフトを更新しました。特定環境下で動作しない問題を解決しました。

(Config2 のBORV設定を高にすると動作しないことがあったので低に設定しなおしました。)


==============

 秋月電子にて、現時点で入手可能な「PIC12LF1840」で「ワンコインデコーダ」を作る記事です。


 注意点がありますので、チャレンジされる方はよくお読みください。

 ※初心者の方にはお勧めしません。

 ※ワンコインデコーダの製作経験者、もしくは、電子工作に精通されている方向けです。


世界的な半導体不足のあおりを受けて、秋月電子で取り扱いのフラットパッケージのPICマイコンの在庫が壊滅的な状況です。

 唯一、在庫がある「PIC12LF1840」を使用してワンコインデコーダを作るための方法を解説します。



 いつまで、在庫があるかわかりませんが、PIC12F1822の在庫が復活するまで、なんとか凌ぎたいものです。


 さて、PIC12LF1840PIC12F1822と違いがあります。それは低電圧版ということです。つまり、電源に5Vを使用するとマイコンが壊れます。

 このため、組み立ての際、3端子レギュレータは「NJM78L33SU3」などの3.3Vタイプを使用してください。


 従って、電圧調整機能がないライター(例:スマイルライターコンボTypeP)を使用して書き込みしようとすると壊れますので注意してください。書き込みには純正もしくはジェネリックのpickit2や3,4を用います。SNAPは電源供給機能がないので使えません。



 33157693_iOS.jpg


 上記理由から、書き込みアダプタのUSB電源供給は禁止です。これはUSB電源が5Vであることが理由です。


 ソフトは12F1822と12F1840はレジスタ構造は同じでプログラム容量は2倍ありますので容易に移植できます。そして、その低電圧版がLF1840ということになります。


 12LF1840版としてアセンブルしたHEXファイルを置いておきます。

   (機械的に変換したのみのため、不具合などあればメールください。)








 Pickit3でIPEを使用して書き込みをする手順です。通常版の手順もよく読んで、このページとの差分をよく理解してください。


 IPEを起動したら、Advanceモードに切り替えます。



 2022-09-07 (1)



 「Mid-Range...」を選択し、使用するマイコンを「PIC12LF1840」を指定。「Apply」します。

 そして、使用するツール「pickit3」などを選択して「Connect」します。




 2022-09-07 (2)


 pickitのPower設定で、pickitから電源供給するためのチェックボックスをチェックして、

 電圧値を確認します。3.25V程度が良いでしょう。



 「Operate」の画面に戻って、LF版のHEXファイルを読み込んで「Prpgram」を押下して書き込みます。



 Pickit2の場合の注意点は以下のような感じとなります。


 2022-09-07 (3)


 マイコンをアダプタに刺した状態で起動すると「PIC12LF1840」を認識します。

 VDD PICKIT2の項目で、3.3Vに設定し、電源のチェックボックスをチェックします。


 LF版のHEXファイルを読み込んで書き込みします。


 モータドライバのTB67H450FNGは2.0-5.5Vの入力に対応しているため、5V版PIC使用時と大差はないと思います。


 ファンクションの出力を直接使用する場合は3.3V出力となりますので、直接白色LEDなどの点灯はVf電圧の関係で厳しいとおもいます。トランジスタなどの外付け回路を使用を検討してください。


 このあたりは各ユーザーさまで工夫していただけると幸いです。

Windows11にPickit2 Programmerをインストールする

 PCを買い替えた際に、Windows11にPICkit2 Programmerをインストールしようとしたのですが、Windows10と同様に途中で止まってうまくインストールできなかったので、やり方を備忘録としてUPしておきます。

 Windows11は、必要な.Net Frameworkが標準でインストールされていないのですが、従前のように同梱版をインストールしてもダメです。

 Windows11の設定を変更する必要があります。

 「スタート」>「設定」を開き、「オプション機能」を選びます。
 2022-06-05 (1)

 「Windowsのその他の機能」を選びます。
 2022-06-05 (2)

 目的の「.Net Framework 3.5。。。」にチェックを入れて「OK」
 2022-06-05 (4)

 「。。自動でダウンロード」を選択します。
 2022-06-05 (5)

 2022-06-05 (6)  

 2022-06-05 (7)

 しばらくすると完了するので「閉じる」で抜けます。 
 2022-06-05 (8)

 これで、PICkit2 Programmerをインストールする準備ができました。

 この後、.Net Programmer同梱していない版を無事インストールできます。



s88N Train Detecor と Auto Reverse Contoroller の接続

 デジタル鉄道模型フォーラムに題記のご質問がありましたので説明図を描いてみました。

 リバース区間はご存じのとおり、左右レールの極性が転極する区間です。

 転極しない区間と、転極する区間では、s88N Train Detector を共用出来ないので、図(1)のとおり、Auto Reverse Controller の下流は検知外区間として設置します。

arc-rev-con1.png



 転極区間においても在線検知をさせたい場合は、図(2)のとおり、転極区間用のs88N Train Detecotorを専用で設けます。

 Auto Reverse Controller の下流にはポイントマシン等の電流を消費するものを接続できないのですが、s88N Train Detecotorは電流を消費しませんので接続可能です。

(s88N Train Detecotorの動作電流はs88にて供給されます。また、s88回路と線路電源回路はフォトカプラにより電気的に絶縁されていますので転極の影響を受けません。)
arc-rev-con2.png


※Auto Reverse Controllerはいずれの場合も転極機能がある「リバース出力」を用います。


「踏切制御ユニット基板」の使い方

「踏切制御ユニット基板」の使い方について解説したいと思います。


【基板の説明】
usaga.png
在線検知センサーを入力する端子は(1)~(3)があります。
使用するセンサー、動作モードに合わせて使用してください。


【複線 点制御モード】
ctrl-con1.png
 下り線の場合、始動点Aを踏むと踏切が鳴動開始します。
 終止点Bを踏み、列車の最後部が通過すると、警報を停止します。

 上り線の場合、始動点Cを踏むと踏切が鳴動開始します。
 終止点Dを踏み、列車の最後部が通過すると、警報を停止します。

 下り線を逆走した際は、終止点Bを踏むと鳴動しますが、Bを抜けると鳴動停止します。
 その後、Aを踏むと鳴動開始しましが、終止点を踏まないので鳴動持続となります。
 (上り線の逆走も考え方は同じです。)
 この場合、タイマー復帰設定が有効の場合、一定時間経過後、鳴動を停止します。
 RESETスイッチを押しても鳴動を停止できます。

 警報区間に2列車以上在線させると正しく動作できず、1列車目が通過した際に鳴動を停止し、2列車目は無警報となります。始動点増やして並列に接続することで対応できますが、模型の場合、警報区間は概ね短いため「続行対策」は省略しています。

【複線 連続モード】
ctrl-con2.png

 下り線はATを踏んでいる間、警報をします。ATを抜けると警報停止します。
 s88の在線検知の場合、電流を消費する車両の検知をしますので、貨車等で電流消費しない車両の場合、列車の最後部検知が出来ないことを注意してください。(在線検知の仕様です。)
 BTの接続も可能ですが、この例では省略しています。

 上り線はCT又はDTを踏んでいる間、警報をします。DTを抜けると警報停止します。
 上り線は警報区間の途中に信号機を設置したいため、検知区間を分ける必要がある例を示しています。

 連続方式の場合、逆走しても警報持続にはなりません。(警報区間から列車が進出すると鳴動停止します。)

【単線 点制御モード】
ctrl-con3.png
 下り列車の場合、Bを踏んで警報開始します。Cを踏み、進出すると警報を停止します。この際、抜け側始動点Dのマスク処理を開始します。Dを踏んでもマスク中となっているため、警報しません。Dを抜けるとマスクを解除して、上り列車に備えます。

 上り列車の場合、Dを踏んで警報開始します。Cを踏み、進出すると警報を停止します。この際、抜け側始動点Bのマスク処理を開始します。Bを踏んでもマスク中となっているため、警報しません。Bを抜けるとマスクを解除して、下り列車に備えます。

 センサーの不検知、列車の途中折返し等があると警報持続したり、マスク中が継続したりと、動作が不正となるため、タイマー復帰モードが有効の場合は、一定時間で鳴動を停止してマスク処理を解除するようにしています。
(ある意味、強制的に鳴動停止させる危険な機能ですが、模型なので、警報持続も興ざめなところがあるのであえて機能実装しています。)
 警報区間中に駅があり、長時間停車する環境の場合、機能を停止させてください。

<注意点>
 B,Dを同時に跨るような長編成は正常に動作できません。(正確にはBの進出確定に2秒経過させていますが、その間にDを踏むとダメです。)
 動作がおかしい場合、短編成を、スケール速度で走らせてみてください。改善することが多いです。
 実物は、最低でも設計警報時間が29秒程度あるため、65km/hの線区でも警報距離は530m程度確保する必要があります。65km/hのローカル線に500mを超える列車は走行していません。130km/hの線区であれば同様に1050m程度となるため、なが~い貨物列車でも問題ありません。

【単線 連続制御モード】
ctrl-con4.png
 下り列車の場合、ATを踏んで警報開始します。ATとBTを跨った際にBT側のマスク処理を開始します。ATを抜けると警報停止します。BT進行中はマスク処理が継続されます。BTを抜けるとマスクが解除されて、次の上り列車に備えます。

 上り列車の場合、BTを踏んで警報開始します。BTとATを跨った際にAT側のマスク処理を開始します。BTを抜けると警報停止します。AT進行中はマスク処理が継続されます。ATを抜けるとマスクが解除されて、次の上り列車に備えます。

 連続制御のため、途中折返し等で列車が警報区間からいなくなると警報を停止します。(点制御のような鳴動持続にはなりません。)




鉄道模型用「踏切制御」ユニット基板 頒布開始します。


 鉄道模型の踏切を作るために、警報音・警報灯を制御する「ALOSユニット」を以前作りましたが、これに接続して使用する「踏切制御ユニット」を作りました。

 両ユニットは積み重ねて使用します。
 ※積み重ねて使用する場合、「ALOSユニット」のソフトは2021.11.25公開のVer0.95以上を使用してください。
 s-20211124_145256569_iOS.jpg

 各種センサー類を接続して、DIPスイッチを設定することで、4つのモード切替を実現しています。

 (1)複線 点センサー(TCSセンサー、s88Nリフレクタ等の点センサー)
 (2)複線 連続センサー(s88N TrainDetector等の連続センサー)
 (3)単線 点センサー
 (4)単線 連続センサー

  各動作モードの様子はTwitterに動画をアップしていますので参照ください。
  (1)(2)の複線モードでは京成の倍速制御もサポートしています。(動画あり)


 頒布基板外観
 s-20211124_143401231_iOS.jpg

将来的には説明ページを作りますが、暫定的にこのブログにwiki的な説明を記載します。

技術的な相談は「デジタル鉄道模型フォーラム」にお願いします。
※警報持続する等の不具合の多くは、センサーと踏切が近すぎる、列車の速度が速すぎる、列車が長すぎるといった原因がほとんどです。不具合時は1両を低めの速度で走行させて様子をみて調整してください。

【前提条件】
 電子工作や、PICマイコンへの書き込み等の知識をお持ちであることが前提です。
 (ワンコインデコーダを製作されたことがあれば大丈夫だと思います。)

【必要工具・ツール】
 はんだごて、半田、ニッパー、およびPICKit等のPICマイコンへソフト書込みするツール
 パソコン(書込み操作をするため)、MPLAB X IDE(PIC開発環境)

【回路図】
 プリント基板を作成した際の回路図です。
 

【使用部品】
 秋月電子で購入可能な部品を中心に作成しています。LED等は相当品で問題ありません。
 TCSセンサー用のコネクタは秋月電子では未取扱いですので、当方の頒布をご利用ください。
 s-20211124_143831202_iOS.jpg
 (TCSセンサー未使用な場合や、使用でもコネクタを交換する等を行う場合は、当該コネクタは不要です)

部品番号 使用 数量 秋月品番
C1 100uF/16V 1 P-10271
C2,C3,C4,C5 10uF/16V 4 P-03116
C6,C7,C8 0.1uF/50V 3 P-00090
CN1 1X6 1 C-00167
X1~4 (TCSの場合) 53048-03 4 頒布他
CN2~5(その他) 1X3/90 C-01627
CN6 1X5/90 1 同上
CN7 1X10 15mm 1 C-07914
D1,2,3,4,5,6,7,8 1N4148 8 I-00941
IC1 PIC16F1827-I/P 1 I-04430
IC2,IC3 74HC132AP 2 C-07914
LED1,2,3,4 3mm 緑 4 I-00563
LED5,6,7 3mm 赤 3 I-16173
LED8,9 3mm 黄 2 I-15354
R1,3,6,9,12,14,15 10kΩ /1/4W 7 R-25103
R2,5,8,11 1kΩ /1/4W 4 R-25102
R4,7,10,13,16~20 2.2kΩ /1/4W 9 R-25222
RN1,2 10kΩ 集合4素子 2 R-11909
SW1 タクトSW 1 P-03648
SW2 ピアノDIP SW 1 P-15243
※基板間のスペーサは15mmのもの(例:P-07320)を使用ください。

【組み立て例】 回路図と部品表にチェックしながらをお薦めします。
※部品数が多いので誤取付に注意(一度ハンダ付けすると取り外しは困難です。)

 s-20211124_143417821_iOS.jpg

 ※上の写真はデバック用にTCS用コネクタと、ピンヘッダを両方付けていますが、
  ピンヘッダのみの場合はL型推奨します。(制御基板を2枚以上重ねる場合があるため)

【PICマイコンソフト】

 Hexファイル(書込み用):https://web.nucky.jp/dcc/fumikiri/ctrl/CTRL0.9.hex

 PICKitはCN1に直接は刺さりませんので、延長ケーブル等を接続して使用します。
 (基板の三角マークとPICKitの三角マークを合わせて接続します。)
 
 制御に使用する時素(チャタリング防止の時間タイマー値)を調整する場合や、
 好みの制御方法に変更する場合は、ソースを改変してください。

 s-20211124_143514903_iOS.jpg

【DIP SWの説明】
DIP SWの設定で動作モード等を変更できます。

※設定を変更した場合は、RESETスイッチを押してください。押さない場合、設定変更が正しく反映されません。

SW1 SW2 動作モード
OFF OFF 複線 点センサー
(A,B,C,D入力使用)
OFF ON 複線 連続センサー
(A,(B),C,(D)入力使用)
ON OFF 単線 点センサー (B,C,D入力使用)
ON ON 複線 点センサー
(A,B入力使用)

SW3 京成上下倍速タイプ
OFF 無効
ON 有効
※京成上下(倍速)タイプの制御は複線制御時に有効です。
(単線では上下同時接近があり得ないため)

※この機能はALOSユニットの音色変更を一つ上位にスライド制御する機能です。
 このため音色を「JR他 汎用タイプ」に設定しておき、「京成上下(倍速)タイプ」になるように使用します。
 他の音色設定とした場合、上下離合時に音色が変わってしまいますのでご注意ください。

SW4 鳴動持続時
タイマー復帰
OFF 有効
ON 無効
※タイマー復帰は「複線 点センサー」「単線 点センサー」の各モードのみ有効です。
 これは不用意に点センサーを検知すると警報持続となるため、一定時間経過後に強制的に鳴動を停止させる機能です。このため警報区間内で、徐行運転や長時間停車すると警報を停止してしまいます。
※連続センサータイプは警報区間から進出すると鳴動を停止するため、当機能は対象外となっています。

【接続端子】 以下の3種類のセンサー入力のうち1種類を用いて使用します。
・X1~4 TCSセンサー接続用
・CN2~CN5 汎用点制御センサー接続用 (1,3番ピンが中央2番ピンGNDに接続されると検知)
・CN6 汎用連続センサー接続用(▼側からA,B,C,D,GND A,B,C,Dに5V入力で検知)
 s88N TrainDetectorの場合、s88N Indicator経由で信号を取り出して接続します。

説明が長くなりましたので、詳細な使用方法等は後日、詳細解説ページを作ります。



Appendix

カレンダー

04 | 2023/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

プロフィール

nucky

Author:nucky
Web Nucky Blogへようこそ!

検索フォーム