ワンコインデコーダ6(One Coin Decoder 6)
サイズワンコイン!部品代ワンコイン(500円)を目指した、激安自作DCCデコーダの第6弾をご紹介します。
モータ用デコーダ/FL両極性デコーダ/ポイント用デコーダ として利用できます。
これは共通ハードウェアで、ソフトウェアやCV設定の変更をすることで実現します。(トマランコンデンサ用部品は一部異なります。)
このページは、モータ用/FL両極性用デコーダとして使用する方法の説明ページです。
関連ページ案内
写真はVer6 プリント基板板厚0.6mmのスリム版(約25x10x4mm)
基板の板厚は0.6mmです。書込みのスマイルコネクタアダプタはスリム版用をお使いください。
一部部品やソフトは従来のVer4とは異なります。
トピックス
2021.08.22 サンプルソフト改良(CV読出し機能改善) 動作に問題なければVerUPする必要はありません
2020.09.09 DCC線路電源投入時にDCCパケット受信までの瞬時暴走するソフトバクについて、暫定対策版配布開始。
2020.07.30 マイコンへソフトを書き込みするためのツールのインストールと使い方について解説ページを作成し、リンクを行いました。(サンプルソフトの箇所から飛べます)
2020.07.26 「ワンコインデコーダ6」の公開開始。ポイントデコーダを安価な「TB67H450FNG」に変更しました。
はじめに...
鉄道模型をDCCシステムで楽しんでいる方が増えてまいりました。私も導入してからというもの高価なデコーダを買っては所有車両に搭載工事を行ってきました。ある日ふと、購入したデコーダを眺めているとPICマイコンが搭載されていました。電子工作でよく使われているPICマイコンなら、デコーダを自作できるかもと思い、研究をはじめました。
どうせ作るなら多くの人がDCCを導入しやすくするために、サイズも費用もワンコイン(500円程度)で製作できることを目指し開発を進め、完成したのが「ワンコインデコーダ・シリーズ」です。
改良版第6弾の「ワンコインデコーダ6」は、やあさん、スマイラ―さんのアイデアである、スマイルコネクタを搭載したワンコインデコーダ4の利便性はそのままに、性能を落とさずに安価に製作するためモータドライバーを東芝製「TB67H450FNG」に変更するとともに、トマラン(蓄電)コンデンサ回路用のダイオードと抵抗の実装も可能としました。
表面実装パッケージのPICマイコンへのソフト書込みの敷居を低くするように専用プリント基板を用いる点は変わらずです。(みなさんのい自作をサポートするため基板の頒布も行っています)
※ただし、スマイルコネクタPIC版(Type-P)はワンコインデコーダシリーズ専用になります。
モータ用とFL両極性用の変更はCV設定で可能です。ポイント用はトマラン用の抵抗を0Ω(ジャンパ)に製作し、ポイント用のソフトウェアをマイコンに書き込むことで使用可能になります。
「ワンコインデコーダ6」では部品の入手製を考え、秋月電子で入手可能な部品を中心に選定し、回路、ソフトの製作しています。
Zゲージでも搭載できるように回路の簡素化による部品点数の削減による小型化と、半田付けしやすい比較的大きいサイズの表面実装部品にこだわり、製作しやすく、組み込みしやすいデコーダとなるように工夫を行っています。
ご注意: ・本サイトの情報を元にした製作等に関わる破損、傷害等につきましてはご自身の責任のもとでお願いします。 ・ご紹介している方法は一例です。一部部品を規格外で使用している部分があり、最善の方法とは限りません。 ご自身でもご検討いただければ幸いです。 ・使用する部品の規格を確認のうえ必要であれば定数、回路の変更等をお願いいたします。 |
概要
NMRA規格のコマンドを受信し動作するDCCのデコーダです。ただしNMRAが規定するすべての内容を盛り込んではいませんので、準拠とは申しません。ご注意をお願いします。
マイクロコントローラーには電子工作で人気のあるマイクロチップテクノロジー社のPICマイコンを用います。8ピンのPIC12F1822を使用しています。
プログラムは、アセンブラソースとHEXファイルを公開いたします。
電源にはDCC信号電流を整流しDC12Vを生成しています。また、マイコン回路自体は5Vで稼動させるので、78L05を搭載し、5Vを生成しています。PICマイコンで直接Hブリッジ回路を制御できる信号を生成します。Hブリッジには秋月でも入手可能TB67H450FNGを使用しています。ピン配置が従来のBD6231F-E2とは異なります。
ヘッドライト等の制御に使用するFL専用デコーダ(ワンコインFLデコーダ)はこちらのページを参照してください。
特徴
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
回路図
![](../../image/pdf32.png)
回路図です。EAGLEで作成しました。
回路の説明
回路を簡単に説明しておきます。レールからの電力をダイオードブリッジを介して整流します。10μFのチップ積層コンデンサで平滑し直流12Vを得ます。12Vはモータドライバを介してモータに電流を供給する電源になります。3端子レギュレータIC(78L05)を用いてPICマイコンの電源となる5Vを得ます。
レールからのDCC信号は34kΩの抵抗を介してPICマイコン(PIC12F1822)のRA2端子に入力します。マイコンでソフト処理された速度信号は方向信号、PWM信号としてRA4,5端子に出力されます。
モータ制御を行うためのモータドライバICはTB67H450FNGを使います。
各端子の使用方法は次のとおりです。
RA0 ; ソフト書込み用ICSP端子(PGD)
RA1 ; ソフト書込み用ICSP端子(PGC)
RA2 ; DCC信号入力
RA3 ; ソフト書込み用ICSP端子(MCLR)
RA4 ; 逆方向PWM出力
RA5 ; 正方向PWM出力
集電が安定しない車両に搭載すると電源電圧が不安定になりPICマイコンがリセット繰り返し、走行がギクシャクする場合があります。この場合、トマラン(蓄電)コンデンサ回路を設けると改善できます。また、ポイント用ではモータドライバの破損防止のため必ずコンデンサを外付けしてサージ電圧を吸収させます。(詳細は後述します。)
部品リスト
パーツ集めで秋葉原等の電気街に足を運ぶのも電子工作の楽しみのひとつですが、最近はネット通販を上手に利用し部品集めをすることも便利かと思います。基板については自作やユニバーサル基板でも製作せきますが、簡単に小型に製作できる専用基板を、当サイトで頒布しています。活用頂ければと思います。
表中の金額は秋月電子で購入した際の金額を参考に見積しています。部品の纏め売りで単価が安くなっている部品を私が良く利用するので少量の部品を調達すると割高になる場合があります。まとめ買い欄に「@」印があるものはまとめ買いした際の単価を示しています。
従来のワンコインデコーダと比較し安価にすることができました。部品変更による部品代の削減効果が大きいと思います。
また、リスト以外に「ハンダとこて等の工具」、「電線」、「ユニバーサル基板(場合によっては専用プリント基板)」「(必要に応じて)ICソケット」等の用意が必要です。
ワンコインンデコーダ6部品表
部品 | 部品番号 | 仕様 | 個数 | 入手先 | 参考単価 | 備考 |
チップ抵抗 | R1 | 33kΩ(34kΩ) | 1 | 頒布 | 基板に同封 | 3216サイズ この記事を参照しC1の容量に注意 ポイント用として使用するときはコチラを参照 |
チップコンデンサ | C1,C2 | 10uF/50V |
2 | 秋月 | @20 | |
PICマイコン | IC1 | PIC12F1822-I/SN | 1 | 秋月 | @110 | SOP8 |
三端子レギュレーター | IC2 | NJM78L05UA | 1 | 秋月 | @20 | |
フルブリッジドライバ | IC3 | TB67H450FNG | 1 | 秋月 | @115 | SOP8 |
ブリッジダイオード | D1 | TS260S | 1 | 秋月 | @22 | |
チップ抵抗 | R2 | 100Ω(105Ω) | 1 | 頒布 | 基板に同梱 | ※ トマランコンデンサ回路用 |
ショットキーバリア ダイオード |
D2 | SS2040FL | 1 | 秋月 | @15 | |
専用プリント基板 | PCB | スマイルコネクタPIC版(Type-P) | 1 | 頒布 | @100 | |
熱収縮チューブ | Φ10×0.25×1m | 少量 | 秋月 | - |
参考単価はまとめ売りの金額を数量で割った参考の単価です。
秋月電子の情報はリンクのページからたどって見てください。
とくに通信販売で入手される場合は、単価、員数、送料で条件が変わってきますので、よく勘案してから注文しましょう。
部品の概要
ワンコインデコーダ6で使用する部品を紹介します。
チップ抵抗 34kΩ、105Ω (3216サイズ)
(写真は「303」表示の30kΩです。34kオームは「343」もしくは「3402」表示です。)
3216サイズと呼ばれる、3.2x1.6mmのサイズも抵抗です。秋月で扱っていないので、頒布しているプリント基板にセットしています。
部品の向き(極性)はありません。
チップコンデンサ (3216サイズ)
チップ抵抗と同じ3216サイズを選定しています。
電圧は12Vと5Vなので耐圧16V品も使用可能ですが、HO等で高い電圧で使用する場合は、若干高価ですが、25か50V耐圧品のほうが設計余裕度があります。
極性はありません。刻印はありますが、一般的には、袋から開封すると選別できなくなるので、半田付けする際に注意しましょう。
PICマイコン:PIC12F1822-I/SN
PICとはマイクロチップテクノロジー社のワンチップマイコンのことで、電子工作ではよく利用されているマイコンです。
8ピンのPIC12F1822は国内で扱っている店も比較的多いと思います。PWMの出力ピンをソフトで変更できるので、直接Hブリッジを接続できます。
プログラムの書き込みには、Pickit3、SNAP等の書込み器(プログラマー)を用いて、スマイルコネクター経由でデコーダ基板上のPICマイコンに直接書込みします。
部品の向き(極性)がありますので、取り付け方向に注意します。
※PICなどマイクロコントローラーは目的の動作をするようにプログラムを書き込んで使う部品です。プログラムを書き込まないで製作した場合は動作しません。
※PICkit2で書込みを行う場合は、デフォルトでは書込みに対応しないため、コチラのページを参考に「デバイス定義ファイルの更新」を行ってください。
3端子レギュレータ:TA78L05F
3端子レギュレータとは電源ICの仲間です。
変動する電源から、安定した決まった電圧の電源を生成する目的に用いられます。
SOT-89パッケージです。部品の向き(極性)があります。
互換性ある他のメーカ製でもOKです。
フルブリッジドライバ:TB67H450FNG
モータ電流を制御するためのHブリッジ回路がワンチップに入っています。秋月で扱っているドライバからより安価なものに変更しました。
外観とリード線の名称はデータシートを参照してください。
従来使用していたBD6231とはピン配置が異なるので、ワンコインデコーダ4に基板では使用できません。
ブリッジダイオード:TS260S
DCC信号を整流し、直流電力を得るためにブリッジダイオードを用います。ショットキーバリアタイプのブリッジダイオードが秋月でも入手できるようになったので、ハンダ箇所の削減を狙って選定しています。
部品の向き(極性)があります。
ショットキーバリアダイオード:SS2040FL
トマラン(蓄電)コンデンサへの充電電流を制限するためと、放電時は素早く放電させるためのダイオードです。
秋月電子で入手できるショットキーバリアダイオードから選定しています。
部品の向き(極性)があります。
専用プリント基板
板厚は0.6mm、スリム版用のコネクタを用います
当サイトで頒布している専用のプリント基板です。3216サイズの抵抗も同梱し頒布しています。
スマイルコネクターPIC版(Type-P)を装備し、面実装のPICマイコンへの書込みを容易にしています。
※重要 スマイルコネクタPIC版(Type-P)はワンコインデコーダシリーズ専用になります。
「Smile Decorder」や、なごでんさんのmp3デコーダ(Type-A)を挿入すると破損します。注意ください。
※注意 基板は何枚か繋がって製造されるため折って切断します。このためバリが残りますので、ニッパーで荒修正し、ヤスリで仕上げます。
きれいに仕上げずに、無理やりコネクタに挿入すると、最悪、コネクタが壊れます。
熱収縮チューブ:Φ10×0.25×1m
プリント基板への半田付け後にショートによる故障を防ぐための絶縁チューブです。
ドライヤーで熱を与えて、収縮させます。
製作方法
「ワンコインデコーダ6」の製作方法を紹介します。表面の番号順、裏面の番号順に半田付けを行います。
部品と部品の間が狭いので、順番を考えて半田付けを行わないと、作業がとても難しくなります。番号は推奨する順番です。
また、①のPICマイコンを半田付けした後、いったん、マイコンを書込みして正常に半田付けできているか確認をすると、失敗が少ないです。
(すべて半田付けした後でも書込み可能(書き換え可能)ですが、半田付け不良の際、探求が難しくなります。)
部品番号は回路図の番号と一致しています。
![](OCD6-parts.png)
部品実装例(表側)
部品実装例(裏側)
成功への手引き (組み立て方)
まずはPICマイコンのみを半田付けして、正常に書込みできるか確認します。この時点で正常に書込み出来ないようであれば、半田付けをやり直します。
あせらず半田付けをすることが大事です。部品が小さいので、私はマスキングテープで基板と部品を固定したうえで半田付けを行っています。
PICマイコンへソフトを書込みする方法は次の項を参照ください。
![](PIC-Write.jpg)
サンプルソフト
「ワンコインデコーダ6」のサンプルソフトです。
通常はHEXファイルをPickit3やSNAP等のライターでマイコンに書き込んでください。
書込みに使用するアダプタ(ハードウェア)はこちらのページを参照ください。
書込みに使用するソフトのインストールはこちらのページを、ソフトの使用方法はこちらのページを参照ください。
参考までに、ソースファイルも置いておきます。動作方式の解析、改良等に活用ください。MPLABでアセンブルしてください。
動作しない場合の調整方法は下述いたしますが、自己責任でのご利用をお願いします。当方でのサポートも致しかねます。
すべてのDCC環境で、動作保証するものではありません。
なお、著作権は主張します。改良版を作成される方は出典を表示のうえ、公開してください。その際、ご連絡をいたければ、リンクを張らせていただきます。
(無断転載は禁止します。また、商業目的の利用も禁止とします。)
尚、ファイルは右クリックし対象を保存を選択して下さい。保存すると拡張子がtxtになる場合がありますので適宜hexに修正してください。
(Ver0.92beta) 書込み用 HEXファイルはこちら 2021.08.22 ※CV読出し機能の改善
(Ver0.92beta) プログラム改良用 ASMソースファイルはこちら 2021.08.22 ※CV読出し機能の改善
(DCC信号の0/1判定部はしみずさんのページのDCCデコーダを参考にしています。)
(Ver0.91beta) プログラム改良用 ASMソースファイルはこちら 2020.09.09 ※電源投入時暴走の暫定対策
(Ver0.9beta) 書込み用 HEXファイルはこちら 2020.07.26 ※電源投入時暴走のバクあり(非推奨)
(Ver0.9beta) プログラム改良用 ASMソースファイルはこちら 2020.07.26 ※電源投入時暴走のバクあり(非推奨)
【お試し版】 集電不良対策としてファンクション動作をフラッシュ(EEPROM)に保存して、集電不良でもDCCパケットを受信するまえでも点灯復帰する機能を実装しました。 ただ、集電が途絶えた状態では点灯はできないため、あくまで車両の集電不良対策が重要であることをご認識ください。 (Ver0.93beta) 書込み用 HEXファイルはこちら 2023.07.2 ※集電不良対策版(不具合検証中のためお試し版ととらえてください。) (Ver0.93beta) プログラム改良用 ASMソースファイルはこちら 2023.07.2 ※集電不良対策版(不具合検証中のためお試し版ととらえてください。) |
注意:アナログ対応について
ワンコインデコーダ6よりアナログ対応は見送りました。ご了承くださいませ。
注意:CVの読み込みについて
CVの読み込みにはコマンドステーションから読み込みするときの応答として、消費電流の増加で応答しています。
モータおよびライトを短い時間だけONの制御をおこない、消費電流を増やしています。
モータ接続せずにデコーダを使用している場合や、ライトがLED等で消費電流が低い場合、応答が正常に認識されず、コマンドステーション側でCVの読み込み処理に失敗する場合があります。(電流値の目安はDCCの規格上60mA以上となっています。)
車両への搭載
動作確認が終了したら、車両に搭載します。モータドライバに出力保護回路が搭載されていますが、過信はできませんので、各部の絶縁には十分に注意しましょう。(最悪、部品が焼損します。)モーター用の接続方法
![](OCD6-con.png)
トマラン(蓄電)コンデンサ回路はオプションです。集電性能が悪くギクシャクする場合にお試しください。
(ただし、線路電源ON時にコマンドステーションの負担になりますからほどほどにしましょう。)
FL両極性用の接続方法
FL両極性Fxデコーダ とは、モータ用の回路をファンクション用として用いることで、ライトユニットの改造をせず、DCC化する機能です。
CV30を2に設定すれば、モータ端子をFL両極性Fxデコーダとして接続可能なモードになります。(詳細はCV設定を参照してください。)
トマランコンデンサ回路はオプションです。集電性能が悪くライトがチラつく場合にお試しください。
(ただし、線路電源ON時にコマンドステーションの負担になりますからほどほどにしましょう。)
ファンクション機能活用方法(上級者向け)
専用の電線接続用のランド(端子)はありませんが、ワンコインデコーダ6ではファンクション機能を利用することができます。ただし、細かい部分への電線のはんだ付けを伴うので、上級者向けです。
ファンクション機能はPICマイコンの6,7ピンを使用しています。
PICの最大定格は25mA/ピンですので、LEDは10mA以下の電流で点灯するよう抵抗を選定してください。
また、マイコンへソフトを書き込む際にも使用する端子ですので、ソフト書き込み時にLEDの接続が悪影響を及ぼすことがあります。
マイコンへソフトを書き込む際は、LED回路を取り外してください。
細かい部分へのはんだ付けを避ける意味で、スマイルコネクタの表と裏の中央の端子を利用する方法もありますが、
こちらも端部へ少量のハンダで接続するようにしてください。
スマイルコネクタアダプタも用いたソフト更新時に接触不良の原因とならないように配慮が必要です。
ファンクション機能利用例 その1
モータドライバの出力はモーターに、ファンクション回路出力にF0~F12用のLEDを接続した例です。F0~F12のどのファンクションを出力するかの設定は、CV設定で行います。
黄色線をF0で、白色線をF1といった使い方はできません。F0利用時は黄色線と白色線がセットになります。
(例 F0:CV33=16,CV34,35,36=0
F1:CV33=1,CV34=0
F2:CV35=2,CV36=0 など)
![](OCD6-con-fl-op1.png)
ファンクション機能利用例 その2
モータドライバの出力はモーターに、ファンクション回路出力にF0両極性のLEDを接続した例です。この場合、ファンクションはF0以外の設定はできません。
(F0以外を出力するCV設定を行うと、意図した点灯になりません。)
![](OCD6-con-fl-op2.png)
ファンクション機能利用例 その3
CV30=2に設定しBD6231の出力は両極性F0に、ファンクション回路出力にF0~F12用のLEDを接続した例です。F0~F12のどのファンクションを出力するかの設定は、CV設定で行います。
(なお、両極性F0と、ファンクション回路をF0の同時設定は可能になっています。)
設定例 両極性F0:CV30=2, F1:CV33=1,CV34=0 F2:CV35=2,CV36=0 など)
![](OCD6-con-fl-op3.png)
その他のファンクション応用例
テープLEDを用いた室内灯等の用途で、大きい電流を流したい場合は、トランジスタを用います。抵抗内蔵のトランジスタ等もありますので、ご自身で研究のうえ、応用なさってください。
![](OCD6-con-fl-op4.png)
トラブル解決(調整方法ほか)
どうしても、DCC信号の読み込みがうまくいかないようなら、プログラムのソースファイルにある、読み込みタイミングの調整値を変更し、HEXファイルを作成しPICに書き込んでみてください。初期値は16進数で20です。ソースでは0x20と表記しています。これを0x1fとか0x21等にしてみて試してください。大抵は初期値のままでOKのはずです。
トラブル解決の進め方、掲示板に寄せられるFAQ等をPdfにまとめています。参考にしてください。
WebNucky部品頒布(トラブル解決編)(pdf)はこちら
CV設定
CV設定については、こちらのページを参照してください。CV設定はワンコインデコーダ4と共通になっています。DCS50Kで「AD4」と表示され4桁アドレスを設定するモードでは、本来Pagedモードのところ、一部DirectモードによるCV設定が行われる場合があります。このため、CV29が正常に書込みされない場合があります。この場合、CV29を新たに設定(CV設定値38)することで、使用可能になります。
本デコーダでの4桁アドレス設定は、CV17,CV18,CV29を個別に設定することをお勧めします。詳細はCV設定ページを参照してください。
ユーザーサイト
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../profile2.gif)
![](../../new.gif)
最後に...
電子工作の経験があれば、自作DCCデコーダが作れると思います。半田付けミスさえしなければ短時間で仕上がってしまいますから、時間をかけて丁寧に作りましょう。
自分で作ったDCCデコーダで運転を思い存分に楽しみましょう!