SSブログ

DCCパルスの全体的な周期を見てみる [DCCコントローラ]

 またまた生存報告になります。
 まずは、少し前に大船駅に185系が止まっていたので、そのうちの記録のために撮っておきました。(PCのローカルフォルダから探すのが面倒なので、Webに上げるという横着)
re_IMG_20200125_170325.jpg
re_IMG_20200125_170301.jpg
re_IMG_20200125_170357.jpg

 で、久しぶりに鉄道模型をしようと思ったのですが、作業台の上がゴミ箱化して久しいため、
re_IMG_20200202_105143.jpg

 収納ボックスとかを買って、整理してみました。 ふるさと納税などもありますが、気が付いたら、HOゲージが大量にあります。おまけに、半分以上DCC化以前に全く走らせていなかったりします・・・。
re_IMG_20200202_134951.jpg

 で、片づけた後の写真がこれですが、あまり変わっていない。いや、すべて箱に入れたんだが。
re_IMG_20200209_171539.jpg

 あとは、アカデミー賞を取ったということで、韓国映画『パラサイト 半地下の家族』を見に行きました。賞取ったというだけあって面白かったです。韓国映画、私が前見たのは20年ぐらい前の「猟奇的な彼女」ですね。アカデミー賞も、ヨーロッパの映画祭のように、他国の映画を受賞させて、(世界から選んでやっているという箔を付けて)権威を保つという方向にシフトしたんだなと感じました。

 さて、本題です。少し前にDCC Cheap Controllerを作るときに、スケッチで適当な重い処理を入れると、途端にDCCパケットが出力されないという話がありました。
 DCCデコーダによっては、パケットのパルスが数ms止まって、+12V、-12Vのどちらかが出続ける状態を掴んでしまい、アナログモードに移行して、そのまま彼方までフルスロットルで暴走してしまうというようなことがあるかもです。(推測)
 もしかしたら、昔のS88Masconの暴走もこのパルスのフリーズ関係かもと思い、SoundBox Control Decoderを使ってDCCのパルスの周期をスペクトルのように解析できるスケッチを作ってみました。0.5秒間、周期を区切りごと(A:0~5msを100usごと、B:0~500msを10msごと)にカウントしてスペクトルのようなものを生成させます。スケッチはこちらです。D2のIntからDCC信号をみるだけですので、ブレッドボードでも適当に作れるかとは思います。
 で、こんな感じで、S88Mascon系を3つ数珠繋ぎして、Functionやスピードを操作しながら、パケット周期の確認をしました。
re_IMG_20200211_195931.jpg

まずはDSOneです。S88Masconが繋げられるやつです。
A(0.1ms),4,1579,856,0,10,13,0,10,2,0,
(1),0,0,0,0,0,0,0,1,0,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),0,0,0,0,0,0,0,0,0,0,
(4),0,0,0,0,0,0,0,0,1,13,(5),
B(10ms),2487,1,0,0,0,0,1,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),
見方ですが、結果は0.5秒ごとにSerialから結果が出力され
A(0~5msレンジ)は0~100usに4個、100us~200usに1579個、200us~300usに856個・・・のパルスがあるとみていきます。
(5)の手前の13は5ms以上のパルスの数です。
また、B(0~500msレンジ)は0~10msに2487個のパルス、10~20msに1個のパルスと見ていきます。
70msに一個パルスが出ており、これとか、暴走パルスに当たるものなのかしらん?と想像します。

次にDSmainR5です。こっちもDSJoyを繋げて実験しています。こちらは古い設計で、制御はArudinoNano。パケット生成にもう一つATMega328PUを使用して分業していますので、妙に長いパルスは存在しません。優秀です、多分。一番長くても3.3ms程度です。
A(0.1ms),1,1833,777,0,10,1,0,1,0,0,
(1),0,0,0,0,1,0,0,0,0,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),8,0,1,0,0,0,0,0,0,0,
(4),0,0,0,0,0,0,0,0,0,0,(5),
B(10ms),2633,0,0,0,0,0,0,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),

で、せっかくなので、DSair2。ArudinoNanoに制御もパケット生成もやらせているので、DSOneっぽい動きをしていますが、、最長パルスは10~20msで、DSOneよりもましです。ただし、5ms以上のパルスが10個ほど出ているようです。DSair2はS88Masconを繋いでいません。スマホを一つだけ繋ぎFunctionやスライダーを連打、変更しながらやっています。
A(0.1ms),1,1959,694,0,0,0,0,0,0,0,
(1),0,0,0,0,1,0,0,0,3,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),0,0,0,0,0,0,0,0,0,0,
(4),1,0,0,0,0,0,0,0,0,10,(5),
B(10ms),2667,2,0,0,0,0,0,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),

あとはせっかくなので、Functionやスライダーを連打、変更しながら、DCC Cheap Controllerも見ていました。
A(0.1ms),0,1770,684,2,0,0,0,0,0,0,
(1),0,0,0,0,0,1,0,0,0,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),0,0,0,0,0,0,0,0,0,0,
(4),0,0,0,0,0,0,0,0,0,17,(5),
B(10ms),2474,0,0,0,0,0,0,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),
まあ、軽い処理しか入れていないので、悪くない結果です。5ms以上のだんまりが17個出てますがなんでしょう?

せっかくのなのでDCS50Kも見てみますと、美しいです。最も長いものは1.4~1.5msに一個出ているだけです。大きなパルスが存在しないため、結果としてパルス総数も多いです。(3172個)
A(0.1ms),1,2046,1124,0,0,0,0,0,0,0,
(1),0,0,0,0,1,0,0,0,0,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),0,0,0,0,0,0,0,0,0,0,
(4),0,0,0,0,0,0,0,0,0,0,(5),
B(10ms),3172,0,0,0,0,0,0,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),

とか言っても、仕様では200msぐらいパルス出さなくてもいいんでしたっけ?

コメント(5) 

コメント 5

twaydcc

fujigaya2さん、こんにちは
ミント缶はOLED表示のオーバーヘッドが気になるので試してみました。画面をアクセサリモードに変える時に70msのパルスが出ます。
画面を分割表示にすれば改善する筈です。'0'最長の10ms未満は難しいけどアナログモード移行の30ms以内には押さえないといけないかな。
A(0.1ms),2,1913,1247,12,7,0,0,0,1,0,
(1),0,1,0,0,0,0,0,0,1,0,
(2),0,0,0,0,0,0,0,0,0,0,
(3),0,0,0,0,0,0,0,0,0,0,
(4),0,0,0,0,0,0,0,0,0,1,(5),
-> 4.9ms x 1
B(10ms),3184,0,0,0,0,0,1,0,0,0,
(100),0,0,0,0,0,0,0,0,0,0,
(200),0,0,0,0,0,0,0,0,0,0,
(300),0,0,0,0,0,0,0,0,0,0,
(400),0,0,0,0,0,0,0,0,0,0,(500),
-> 70ms x 1

by twaydcc (2020-02-12 21:05) 

fujigaya2

コメントありがとうございます。
こんなにすぐにスケッチを使う人がいるとは思いませんでした。
桂庵様のページ見ると(いやDCCの仕様書読めという話はありますが)
'1’が58±3us,’0’が95~9900usと書いてあるやつですね。
30msでアナログモードに移行するんですね。
面白そうだからデコーダがどのくらいからアナログモードに移行するか試してみようかとか、ふと思いました。

by fujigaya2 (2020-02-12 22:55) 

twaydcc

SPI版OLEDはオーバーヘッドが低くて70msも占有する筈も無く、操作しないで放置しても70msが出ました。CVリードエラーを避けるためEmptyBoxのMcoreを使ったので、30msを超える頻度もほゞ同じで、DSairのに変更したら頻度が下がりました。アナログモードビットをオフで運転するのが無難の様です。
// BlueBox
B(10ms),3878,0,0,0,0,0,15,0,0,0,
// DSairFirm_r2n4
B(10ms),1809,0,0,0,1,0,0,0,0,0,
// mintcan IV R1.6
B(10ms),3216,0,0,0,0,0,1,0,0,0,

by twaydcc (2020-02-13 22:20) 

Yaasan

デジトラックスは、凄まじく早くアナログモードに移行しますね。
数十msでアウトな感じです。
by Yaasan (2020-02-14 19:19) 

あや

片付けるのに収納ケースを買うのはダメなパターンですよ^^;
びーだま転がすおもちゃは作ったのですか?
by あや (2020-02-14 22:22) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。