車載用ファンクションデコーダ(FL Decoder 2)
部品代250円で作るファンクションデコーダを紹介します。
基本はワンコインデコーダ2のデコーダの技術を利用していますので、そちらもご一読ください。
最新版はコチラです。
旧Verはこちらです。
トピックス
2009.11.03 CV7(デコーダバージョン番号)サポート、アナログ判定時間修正
2009.09.23 F0正逆,F1出力ピンの標準設定を変更しました。(ソフトVer1.01、回路図Ver1.2)
2009.09.07 CV読み込み機能をサポートしました。112~128アドレス選択時の不具合を修正しました。
2009.08.15 ページ構成を4ページに見直し、部品説明、製作方法の詳細の解説を追加しました。
2009.08.14 回路図とソフトに不整合があったので、ソフトを修正しました。(F0 Rev For出力の端子が異なっていました。)
2009.08.08 回路図に電流制限抵抗を追記しました。DCS50Kでのアドレス設定について追記しました。
2009.05.23 従来の「ファンクションデコーダ」を改良した、「ファンクションデコーダ2」を公開しました。Pageモードをサポートしたことから市販のデコーダと同じくプログラム線路でCVを変更することが可能となりました。その他14,28ステップに対応を行いました。是非作ってみてください。
はじめに...
鉄道模型をDCCシステムで楽しんでいる方が増えてまいりました。私も昨年導入してからというもの高価なデコーダを買っては所有車両に搭載工事を行ってきました。
このたび改良した「ワンコインデコーダ2」をもとに、「ファンクションデコーダ2」を製作しました。プログラム線路におけるPageモードでのCV設定、14、28ステップ対応などの機能UPをしました。
回路は従来の「ファンクションデコーダ」と同じですから、PICマイコンのソフトを更新して利用することが可能です。
また専用プリント基板を作成し、面実装部品を採用することで、Nゲージにも搭載できるように小型に製作することができましたので、別のページでご紹介したいと思います。
ご注意: ・本サイトの情報を元にした製作等に関わる破損、傷害等につきましてはご自身の責任のもとでお願いします。 ・ご紹介している方法は一例です。最善の方法とは限りませんので、ご自身でもご検討いただければ幸いです。 ・使用する部品の規格を確認のうえ必要であれば定数の変更等をお願いいたします。 |
概要
NMRA規格のコマンドを受信し動作するDCCのファンクションデコーダです。ただしNMRAが規定するすべての内容を盛り込んではいませんので、準拠とは申しません。ご注意をお願いします。
マイクロコントローラーには電子工作で人気のあるマイクロチップテクノロジー社のPICマイコンを用います。8ピンのPIC12F683を使用します。DCC信号読み取りの関係でPIC12F629や675は使用できません。プログラムは、アセンブラソースとHEXファイルを公開いたします。
電源にはDCC信号電流を整流しDC12Vを生成しています。また、マイコン回路自体は5Vで稼動させるので、78L05を搭載し、5Vを生成しています。PICマイコンでファンクションを制御できる信号を生成します。
特徴
F0制御は128ステップのみならず、古典的な14,28ステップでもサポート。
ライト(FO)は前後進自動切換え。電流は最大100mA程度。
アナログ運転もサポート(性能は仕組み上、補償できません)
2桁アドレス(001~128)、4桁アドレス(0128~9983)サポート。
CV値の書き込みはOPSモードに加え、Pageモードもサポートしました。
CV値の読み込みも可能になりました。(Pageモード)
CV29の設定により、前後進の入れ替えが可能。(ライトも同時に入れ替えできます)
製作事例
製作事例1 ・・・ こちらをメインに製作解説します。
F0の正方向、逆方向をサポートしています。サイズは全然大きいですが、機能的にはFL12のイメージです。
縦長に製作したので、なんとかNゲージでも搭載できると思います。16番なら余裕です。
製作事例2
専用プリント基板を製作し面実装部品で小型に製作した事例です。ファンクションはトランジスタによる制御で100mA程度までをドライブすることを想定しています。当方ではNゲージ モデモの江ノ電シリーズに搭載できるように約10×20mmのサイズで作成しました。このサイズなら一般的なNゲージに十分搭載可能と思います。
表 裏
回路図
回路図(pdf)はこちら 2009.9.23変更
回路図です。BSch3Vで作成しました
回路の説明
回路を簡単に説明しておきます。
レールからの電力をブリッジダイオードを介して整流します。電流容量は1Aもあれば十分でしょう。電解コンデンサで平滑し直流12Vを得ます。12Vは青線を通じてライト類に電流を供給する電源になります。3端子レギュレータIC(78L05)を用いてPICの電源となる5Vを得ます。
レールからのDCC信号は33kΩの抵抗を介してPICマイコン(PIC12F683)のGP3端子に入力します。マイコンでソフト処理された信号はGP1、GP2端子に出力されます。各端子の使用方法は次のとおりです。
GP0 F1出力(拡張用)
GP1 F0(逆方向)出力
GP2 F0(正方向)出力
GP3 DCC信号入力
GP4 F2出力(拡張用)
GP5 F3出力(拡張用)
PICの出力はトランジスタ(2SC1815)でスイッチさせライトを制御できるようにしています。
今回はファンクションデコーダとしてF0の逆方向、正方向のみ制御できるようにしていますが、ソフトウェアとしてはF1~F3(GP0、4,5端子)も動作するように製作してありますので、F0と同様のトランジスタ外部回路を作成すれば動作します。(輝度の高いLEDで電流を抑えればPICで直接ドライブも可能です。)
集電が安定しない車両に搭載すると電源電圧が不安定になりPICマイコンがリセットし、ライト制御が明滅をくり返します(特に走行中)。この場合、5V回路の電解コンデンサの容量をUPさせると改善できる場合があります。
部品表
ファンクションデコーダ部品表
種類 | 品名、規格 | 数量 | 単価 | 小計 | 備考 | 主な入手先 | まとめ買い |
IC | PIC12F683-I/P | 1 | 150 | 150 | DIP8 | 秋月 | |
78L05 | 1 | 20 | 20 | 秋月 | @ | ||
トランジスタ | 2SC1815 | 2 | 5 | 10 | 相当品可 | 秋月 | @ |
ブリッジダイオード | DI1510 | 1 | 19 | 19 | 相当品可 | 秋月 | @ |
抵抗器 1/6W | 1KΩ | 2 | 1 | 2 | 秋月 | @ | |
33KΩ | 1 | 1 | 1 | 秋月 | @ | ||
電解コンデンサ(高さ5mm品) | 10μF 25V | 1 | 15 | 15 | 千石 | ||
22μF 6.3V | 1 | 20 | 20 | 千石 | |||
合計 | 237 |
ファンクションデコーダ(面実装版)部品表
種類 | 品名、規格 | 数量 | 単価 | 小計 | 備考 | 主な入手先 | まとめ買い |
IC | PIC12F683T-I/SN | 1 | 100 | 100 | SOP8 | 秋月 | @ |
78L05F | 1 | 30 | 30 | 秋月 | @ | ||
トランジスタ | 2SC3325 | 2 | 10 | 20 | 相当品可 | 秋月 | @ |
ブリッジダイオード | D1UBA80 | 1 | 60 | 60 | 相当品可 | LEDパラダイス | @ |
チップ抵抗器 3216サイズ | 1KΩ | 2 | 8.4 | 16.8 | 秋月 | @ | |
33KΩ | 1 | 8.4 | 8.4 | 秋月 | @ | ||
チップ積層セラミックコンデンサ | 10μF 25V | 1 | 12.5 | 12.5 | 秋月 | @ | |
100μF 6.3V | 1 | 30 | 30 | 秋月 | @ | ||
合計 | 277.7 |
部品表です。特に入手性の悪い部品は使用していないつもりです。雑材料αでも余裕で500円に収まると思います。
部品代は参考です。纏め買いした場合の単価も含まれて降りますので、厳密にはワンコインにならない場合がありますが、ご容赦ください。
また、リスト以外に「ハンダとこて等の工具」、「電線」、「ユニバーサル基板(紙フェノールタイプのこと。ガラスエポキシは切断に不向きです)」「ICソケット」等の用意が必要です。
面実装(SOP版)の書き込みには秋月のアダプタを利用します。もちろん自作アダプタでもOKです。
部品の概要
ワンコインデコーダで使用する部品を紹介します。
ワンチップマイクロコンピューター:PIC12F683
PICとはマイクロチップテクノロジー社のワンチップマイコンのことで、電子工作ではよく利用されているマイコンです。
この部品は取り付ける向きがあります。取り付ける際には注意してください。
凹みを左にして左下が1ピン、反時計回りに2ピン、3ピンの順で、左上が8ピンになります。
8ピンのPIC12F683は国内でも流通しており、店頭だけでなく、通信販売でも容易に入手できます。
同様に8ピンのPICではPIC12F629やPIC12F675ではDCC入力回路のフォトカプラによる絶縁は必要だったため、PIC12F683を使用しています。
プログラムの書き込みには、Pickit2等のマイクロチップテクノロジー社純正プログラマを使用します。
面実装(SOP版)の書き込みには秋月のアダプタを利用します。もちろん自作アダプタでもOKです。
PICなどマイクロコントローラーは目的の動作をするようにプログラムを書き込んで使う部品です。 プログラムを書き込まないで製作した場合は動作しません。 |
3端子レギュレータ:78L05
3端子レギュレータとは電源ICの仲間です。
変動する電源から、安定した決まった電圧の電源を生成する目的に用いられます。
外形は2SC1815等を同じTO92パッケージです。面実装タイプはSOT-89パッケージです。
トランジスタ: 2SC1815
FETドライブ用のトランジスタです。電子工作では安価に入手できることで有名な2SC1815を使用しています。秋月でまとめ買いしました。
外観とリード線の名称はデータシートを参照してください。
ブリッジダイオード:DI1510、D1UBA80
(写真はDI1510)
DCC信号を整流し、直流電力を得るためにブリッジダイオードを用います。DI1510は秋月電子で入手できるブリッジダイオードから700V
1.5Aのものを選びました。交流の入力側と直流の出力側が隣同士にならんでいるため実装に便利です。DIPタイプですが、スペースの関係上、縦に搭載することが多いです。面実装タイプのダイオードブリッジは選定に苦労しましたが、新電元のD1UBA80を使用しました。LEDパラダイスというお店で入手しました。
1/6w炭素皮膜抵抗、チップ抵抗3216サイズ
(写真は1/6w炭素皮膜抵抗)
1/4W品では大きくて製作しにくくなりますので、1/6W品の小さな炭素皮膜抵抗を用いてます。
小さくてカラー表示が判別できない場合はルーペでの確認や、テスターで抵抗値を確認しましょう。
面実装の場合はちょっと大きめな3216サイズを使用しました。千石等で入手できる2016サイズよりはんだ付けしやすいからです。
3216サイズのチップ抵抗は鈴商やサトー電気で入手しました。
1/6W、チップともに極性はありません。
電解コンデンサ、 チップ積層セラミックコンデンサ
線路に流れるDCC信号から、走行用電源、マイコン動作用電源を作るために用いています。
千石電商で入手できる小型品(高さ5mm)から10μF/25V、および22μF/6.3V品を使用しました。
どちらも+-極性があります注意しましょう。
本来100μF/25Vを使用するところを、ICソケットの中に隠れるように実装するため直径が小さい22μF/6.3V品を用いています。
製作事例2(面実装)で小型化する場合は電解コンデンサは使用せずチップ積層セラミックコンデンサを使います。サイズは容量が稼げ比較的ハンダ付けがしやすい3216サイズを使用しました。電圧は12Vと5Vなので耐圧25V品と6.3V品を使用しました。極性はありません。
ICソケット:DIP8ピン
PIC12F683のプログラムを更新する際に基板から取り外せるようにしたいため使用します。
製作事例1ではコンデンサを隠す場所としても使っています。
写真の右のように加工して使用します。青線部をニッパ等で切断し力の逃げを作ってから赤線部を切断します。いきなり赤線部を切断すると破損する場合があります。慎重に作業しましょう。
製作事例2(面実装)で製作する場合は使用しません。
製作方法
「ワンコインFLデコーダ」の製作方法を紹介します。
部品配置図
表面から見た、部品配置図です。部品番号は回路図の番号と一致しています。
配線図(表側)
表側からみた配線イメージです。
青線は実際は裏面に配線されます。
(2009.9.23修正)
各段階でこの図を確認しながら作業をします。
配線配線図(裏側)
裏側からみた配線図です。青線は裏面ですずメッキ線やリード線の余り等で配線します。
(表側の図と左右が反転しています。注意願います。)
(2009.9.23修正)
各段階でこの図を確認しながら作業をします。
(1)ユニバーサル基板の切断(その1)
ユニバーサル基板を切断します。紙フェノールタイプの基板を使用します。ガラスエポキシタイプは硬いため切断に不向きです。
定規をあててカッターナイフで切りこみをいれます。表、裏、両方ともにスジをつけます。
縦4穴、横12穴残るように切断します。
(2)ユニバーサル基板の切断(その2)
表裏とも、スジをつけたら、机の角を利用して力をいれるとキレイに折れます。
同様に、4面ともに同じ作業を繰り返します。
(3)ユニバーサル基板の切断(その3)
縦4穴、横12穴残るように切断した様子を示します。
(4)IC2用のICソケットの取り付け
IC2用のICソケットを取り付けます。
向きと位置に注意して半田づけします。
(5)ブリッジダイオードの取付
D1の取付を行います。
部品の取り付ける向きが決まっていますので、注意して取り付けます。
~、~表示がDCCレール側、+,-表示が3端子レギュレータ側です。
(6)電解コンデンサ C1 の取付
C1の電解コンデンサを取り付けます。 部品の取り付ける向きが決まっていますので、注意して取り付けます。
足の長いリード線が「+」です。足の短いリード線が「-」です。
「-」側は外形フィルムに「-」の表示があります。
リード線は根元から直角に曲げます。部品の向きに注意して曲げます。
「-」側のリード線はユニバーサル基板ではなく、ダイオードブリッジの「-」端子にハンダ付けします。
やりにくい場合は、マスキングテープ等でコンデンサを固定してハンダ付けすると作業しやすいです。
(7)電解コンデンサ C2 の取付
C2の電解コンデンサを取り付けます。部品の取り付ける向きが決まっていますので、注意して取り付けます。
足の長いリード線が「+」です。足の短いリード線が「-」です。
「-」側は外形フィルムに「-」の表示があります。
リード線は根元から直角に曲げます。部品の向きに注意して曲げます。
「+」側のリード線は1ピン側(写真右)です。 「-」側のリード線は8ピン側(写真左)です。
(8)3端子レギュレータの取付
5V生成用の3端子レギュレータ(IC1)を取り付けます。
部品の取り付ける向きが決まっていますので、注意して取り付けます。
ICソケットとぶつかりますので、写真のように少々逃げ気味に取り付けます。
(9)R1の取付
R1を取り付けます。部品の向きはありません。
配線が基板端部になる部分があります。仮固定しながらの作業をお勧めします。
(10)R2,R3の取付
R2,R3を取り付けます。ICソケットにあまり近づけすぎるとICの抜き差しの邪魔になりますので、注意します。
部品の向きはありません。
(11)Q1,Q2の取付
Q1,Q2を取り付けます。部品の取り付ける向きが決まっていますので、注意して取り付けます。
(12)リード線の半田づけ
各色のリード線をはんだ付けします。
はんだ付けする個所は以下の写真を参考にしてください。
PICの5,6,7番ピンの配線は下図が正しいです。
図で示すと以下の通りです。
(2009.9.23修正)
ご自身でも回路図と見比べて確認してみてください。
黄線、白線はショートしやすいので注意してつなぎます。
(灰色は基板の端部を表しています。)
ソフトウェア
ファンクションデコーダ2のソフトです。
通常はHEXファイルをPickit2等でマイコンに書き込んでください。書込み方法はこのページを参照してください。
参考までに、ソースファイルも置いておきます。動作方式の解析、改良等に活用ください。MPLABでアセンブルしてください。
動作しない場合の調整方法は下述いたしますが、自己責任でのご利用をお願いします。当方でのサポートも致しかねます。
すべてのDCC環境で、動作保証するものではありません。
なお、著作権は主張します。無断転載は禁止します。また、商業目的の利用も禁止とします。
尚、ファイルは右クリックし対象を保存を選択して下さい。そのままクリックして保存すると拡張子がtxtになる場合があります。
(最新版Ver1.03) HEXファイルはこちら 2009.12.11 蓄電式対応 チラつき改善
(最新版Ver1.03) ASMソースファイルはこちら 2009.12.11 蓄電式対応 チラつき改善
(DCC信号の0/1判定部はしみずさんのページのDCCデコーダを参考にしています。)
注意:アナログ対応について
アナログ対応はレールの電圧極性を読み取り、F0の方向点灯制御をおこなっています。PICマイコンが正常に動作するのには約8V程度(3端子レギュレータのドロップ含む)の電圧が必要であり、低速運転時に正常に点灯しない場合があります。DCC運転がメイン機能で、アナログ対応は、あくまで簡易機能とお考え下さい。
注意:4桁アドレスの設定について
DCS50Kで「AD4」と表示され4桁アドレスを設定するモードでは、一部DirectモードによるCV設定が行われる場合があります。このため、CV29が正常に書込みされない場合があります。この場合、CV29を新たに設定(CV設定値38)することで、使用可能になります。
本デコーダでの4桁アドレス設定は、CV17,CV18,CV29を個別に設定することをお勧めします。詳細はCV設定ページを参照してください。
注意:CVの読み出しについて
CVの読み出しには、コマンドステーションから1から順次アドレス番号を増やしていき、自分のアドレスに該当するときの動作として、消費電流の増加で応答しています。
特に、ファンクションデコーダはモータが無いため、ライト類のONで電流を増加させていますが、LED等で消費電流が低い場合、応答が正常に認識されず、コマンドステーション側でCVの読み込み処理に失敗する場合があります。(電流値の目安はDCCの規格上60mA以上となっています。)
完成
製作したユニットにプログラムを書き込んだPICマイコンを差し込み完成です。
差し込む方向は写真の通りです。
成功への手引き
まずは車両に搭載できないような大きなユニバーサル基板で、自分で回路図を見ながら、部品の役割を理解しながら、試作することをオススメします。
確実に動作するものを作ってから小型化するのが結果的に早道ですし、小型化したときどこが悪いのか比較しながら探求がしやすくなります。
(小さく作るには、はんだ付けも難しい)
試作に成功したら、車両搭載用に小さく作ってみます。
ご紹介している部品の実装方法以外にも、部品を立てて搭載したり、空中配線をして小型化を図ることもできます。ご自身でチャレンジしてみてください。
調整手順
車両に搭載するまえに、デコーダが正常に動作するかを確認します。、まずソケットにPICを挿さない状態で、電源ピンに5Vが出ているかを確認します。それから、プログラムを書き込んだPICマイコンを準備しソケットに挿入してから動作確認をします。
動作確認の手順としてはDCC信号を正常に読み込めているかの検証を行います。スロットルの進行方向に応じてFOファンクション制御のライトが点灯するかを確認してください。
私は、車両に搭載しなくてもデコーダの動作確認ができるような基板を作成しています。市販のデコーダでも活用できますので、皆さんもぜひ作って見てください。
どうしても、DCC信号の読み込みがうまくいかないようなら、プログラムのソースファイルにある、読み込みタイミングの調整値を変更し、HEXファイルを作成しPICに書き込んでみてください。初期値は16進数で10です。ソースでは0x10と表記しています。これを0x0fとか0x11等にしてみて試してください。大抵は初期値のままでOKのはずです。
DCC信号の読み込み及び、モータ電圧の制御に問題がないようであれば、アドレス等、必要なCV値をこの段階で予め行っても良いでしょう。
DCS50Kは内部のマイコンにバグがあることが知られており、「AD4」と表示され4桁アドレスを設定するモードでは、一部DirectモードによるCV設定が行われる場合があります。このため、CV29が正常に書込みされない場合があります。この場合、CV29を新たに設定(CV設定値38)することで、使用可能になります。
本デコーダでの4桁アドレス設定は、CV17,CV18,CV29を個別に設定することをお勧めします。詳細はCV設定ページを参照してください。
車両への搭載
動作確認が終了したら、車両に搭載します。ショート保護回路は搭載していませんので、各部の絶縁には十分に注意しましょう。(最悪、部品が焼損します。)
最後に...
意外に簡単に自作DCCデコーダが作れると思いませんか?
基板の形をサイズを工夫し小型化もできると思いますから、Nケージへの搭載もなんとか可能かと思います。
配線ミスさえしなければ短時間で仕上がってしまいますから、時間をかけて丁寧に作りましょう。
自分で作ったDCCデコーダで運転を思い存分に楽しみましょう!
モータ制御も可能なワンコインデコーダや、ポイント用デコーダ等にもチャレンジしてみてくださいね。