デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・DesktopStationの商品やDCC部品は DesktopStation部品頒布からどうぞ。 ・DCC同人誌 PDFを無料で公開中!

2015年10月03日

DCCコンプライアンス試験

NMRAの準拠シール貼り付け要件となるコンプライアンステスト手順の内容をざっくり解説して、現在開発中のDSmainR5の準拠状況を確認しようと思います。長い時間パケットをロギングしてはやってないので、あくまで瞬時値レベルであるというところがコンフォーマンスのエビデンスとしてはちょっと弱いところです。

コンフォーマンステスト手順は、2005年12月の0.3版をベースにしてます。

試験対象: DSmainR5試作機・ブースター内蔵タイプ


■S-9.1-A 波形への要求

・"1"bitsの波形幅は55-61us(半周期)の範囲であること。1周期で110-122usの範囲であること。

20141112_260123.PNG

・"0"bitsの波形幅は100us以上の範囲であること。1周期で半周期の2倍の範囲であること。

20141112_260053.PNG

・"0"bitsの幅は95us〜9.9msの範囲でなければならない
・"0"bitsの幅は12msを超えてはいけない。
→Marklin Motorola 2フォーマット(MM2)の対応のため、この要求への対応は除外します。
→DCCのみの対応であれば難なく対応可能。

■S-9.1-B 制御信号、リプル、FCC

・制御信号電圧への要求
→ブースター直接駆動のため、除外

・0クロス時のリプルが100kHz以上で全体の振幅に対して1/5を超えていないか確認する。

20141112_260007.PNG

→スペアナ使ってみないといけないと思いますが、大きなリプルは出ていない。

・FCC type15への適合

試験所に持って行かないと分からない。


■S-9.1-C 電圧実効値の要件

・実効値の電圧範囲(ピーク)が7〜22Vの範囲に入っていること。
→電圧範囲は12V〜20Vと規定している。この範囲以外では動かないようにしている。

・Nゲージの場合、HOゲージで動かす場合
→HOでしか測ってないが、基本は変わらない。

■S-9.2-A パケット標準テスト

最低14bitsの"1"のプリアンブル、パケット開始時に必ず"0"bit、アドレス・データバイトは8bits。

・データのキャプチャ&パケット仕様を満たすか確認する

・ロコアドレス122、速度1, FWDを送った時のパケットがショートアドレスで7A62xx、ロングアドレス時でC07A803Aとなっていること。
→ロジアナ入手次第確認。

・拡張アドレステスト。拡張アドレス対応時は、RP-9.2.1に適合すること。

・速度ステップテスト。ロコアドレス3で、速度12、REVのとき、14STEP時は0x34Cxx、28STEP時は0357xxとなっていること。

■S-9.2-B 1バイト・複数バイトパケットテスト

■S-9.2-C パケット伝送周期テスト

以後、RP(推奨項目)がありますが、オプションであってDCCの拡張部分の話なので省略します。拡張コマンド類(2バイトアドレス)も含まれるので、本当はやっておいたほうが良いんですけどね。

■コンフォーマンステストを受検したコマンドステーション

NMRA warrantリストより。意外とみんな受けてないのね。

・2008-1004 Bachmann Dynamis DCC Digital Control System, Version 1.0 (Base), 1.0
(Remote)Bachmann command
・2007-1011 Hornby Elite Command Station (Software Version 1.2) Hornby command
・2006-1007 5 amp Power Station Bachmann power station
・2003-03 Set-01/10 DCC system Lenz Elektronic GMbH command

デコーダも、アメリカ系メーカーがほとんどでESUがLokpilotをちょろっと古いのを受検しているくらいで、欧州勢はあまりやってないようです。
posted by yaasan at 13:24 | Comment(0) | 鉄道模型

DSmeisterの評価状況

DSmainR5ですが、細かいところを入念に確認を実施しています。
パワー回路を完全に新規に作っていることや、今までモータドライバに任せていた部分を全部自分でやらないといけないからです。今までは軽いノリですぐに販売してましたが、今回はかなり時間とお金をつぎ込んで相当力を入れて作ってます。

メルクリンのBR03(No.37051)を動かして、電流や電圧波形に異常がないかをチェックしました、特に大きな問題は見つからず、電流値のオフセット分を考慮して調整するソフトを追加するくらいというところです。

DSMR5_test20151003a.jpg

もうすぐ入社5年になる品保部の社員にオシロを操作してもらってますが、全く操作を覚えてくれないので非常に困っております。

DSMR5_test20151003b.jpg

波形は前よりはだいぶ良い感じになりました。もっと電流を流してフル負荷の状況を見たいですね。Rocoやメルクリン、デジトラのコントローラに波形対決で負けたら電機屋失格なので、ここは徹底的にこだわるところです。

それにしてもサンケンの石(FKI06269)※は、コストパフォーマンスが素晴らしいですね!

※このブログを見ている人には釈迦に説法ですが、いわゆるパワー半導体であるIGBTやMOS-FETを電機屋は石と呼びます。

出力電圧波形:
20141112_260123.PNG

大きな負荷を掛けたいのですが、5Aを平気で流せる強い電源が社内にないので、どうにかしないとなと考えております。4AのACアダプタでは、4Aだとちょっと無理することになりますので、せめて定格が5Aの1.5倍の容量が欲しいところです。
posted by yaasan at 10:54 | Comment(0) | 鉄道模型

2015年10月02日

スマイルデコーダ用CV読み書きの新方式

スマイルデコーダとソフトウェアシリアル通信を行って、CVの読み書きを行うソフトを作りました。

SSSA_Howto.png

・スマイルライターをCV読み書き用のアダプタにするスケッチ(SmileSoftwareSerialAdapter) DOWNLOAD

先日書いた、FTDI USB UARTケーブル(5V)に変換するアダプタでも代用可能です。

・スマイルデコーダ用のスケッチ(CV読み書き用のソフトウェアシリアル対応) DOWNLOAD

■使用手順

(0) スマイルデコーダにソフトウェアシリアル対応版を書き込む。
(1) スマイルライターをソフトウェアシリアルアダプタ化するか、自分でFTDIケーブルが繋がるように作る。
(2) スマイルデコーダをアダプタに差し込む
(3) シリアル通信できるソフト(Arduino IDEのシリアルモニタでも可)で9600bpsで、COMポートを合わせて接続する。
(4) 以下のコマンドでCV読み書きできます。

SA →全CV表示
RD,CV番号 →CV表示
WR,CV番号,CV値 →CV書き込み
CL,8 →工場出荷時にリセット

■今回のポイント

・DESIGNER_IDを導入。当方頒布のスケッチは255(不明)としてます。 ID割当は、メールにて申請ください。ソフトウェアシリアルのスケッチを公開する意志がある人には無償で発行します。なおフジガヤさんは勝手に228を割り振りしました。もしソフトウェアシリアル対応スケッチを導入される場合はご利用ください。
・PRODUCT_CODEを導入。初期値は255(不明)としてます。コードの管理は各自でお願いします。

この2つのIDで何をするかというと今後作成するCV読み書き管理ツールで、CV一覧表などをデコーダのスケッチに合わせて表示を変えるためです。

■追記

wikiページを作成しました。
posted by yaasan at 20:32 | Comment(0) | 鉄道模型

2015年10月01日

スマイルデコーダ用の設定書き換え手段

スマイルデコーダですが、CV読み込みができないという声がチラホラ言われます。

いろいろ考えました。コストとCV読み込みのどっちが優先事項は高いのでしょうか?そもそもCV読み込みを、DCCで行う必要はありますか?

ユーザー様から、「シリアルのピンを引き出して欲しい。デバッグに使いたい」という要望を頂いたのですが、ピンを引き出す余裕がなく、「ソフトウェアシリアルでどうにかできませんか?」と回答しました。
その時、もしかしてソフトウェアシリアルでデバッグだけでなくCV設定とかやれば楽じゃない?と気付きました。

そして、この基板を設計しました。

SSSA_artwork.png

なんだこれは、と思うかもしれません。スマイルデコーダのスマイルコネクタ部分は、AVRのICSP(SPIによるファームウェア書き換え)なのですが、これを内部ソフトが動き出した時はソフトウェアシリアル通信機能を用いて、シリアルコネクタに利用しようというものです。

5VとGND、リセットはそのままとして、MISO,MOSI,SCKの3ピンが余ります。これらは、ソフトシリアルのTXとRXにそれぞれ割り付けます。そして最後のSCKは、GNDにあえて落とします。GNDに落とすことがポイントです。

Arduinoには、ソフトウェアシリアルのライブラリが最初から入っており、9600bpsとか低速なら余裕で通信ができます。→Arduino 日本語リファレンスのサンプルコードページ

スケッチ側ですが、まず、Setup関数内で、SCKのピン(PB5, ArduinoだとD13)を入力にして内部プルアップをONにします。これで、もし何も繋がっていない時は、常に入力信号値はHIGHになります。このアダプタをつなげると、GNDに落ちるので、これでアダプタ有無を検出できます。

SCKのピン、D13の入力がLOWの時はアダプタがあると認識して、CV読み書きモードになれば良いのです。これでCV読み書きし放題になります。しかもDCC経由より早い!安い!うまい!もちろんデバッグもできます。LOWではない時は、デバッグメッセージを出さないようにすれば、少々荷が重いソフトウェアシリアル処理の実動作時の遅延も皆無です。

次の基板製造で本アダプタは生産予定です。まだ実証してませんが、課題になるようなところは無いので、アッサリ動くと思われます。CV読み書きツールもWindows用で用意したいと思います。Macの場合では、シリアルのターミナルでポチポチとコマンドを入力すれば同じことはできるようにしておきます。

■追記

もしかして、基板作らなくてもスマイルライターで同じことができそうな気がしてきました。でも、ちょっとお値段が高いですし、使い勝手が悪いので基板は作ろうと思います。
posted by yaasan at 07:58 | Comment(0) | 鉄道模型