DCCパルスの全体的な周期を見てみる [DCCコントローラ]
またまた生存報告になります。
まずは、少し前に大船駅に185系が止まっていたので、そのうちの記録のために撮っておきました。(PCのローカルフォルダから探すのが面倒なので、Webに上げるという横着)
で、久しぶりに鉄道模型をしようと思ったのですが、作業台の上がゴミ箱化して久しいため、
収納ボックスとかを買って、整理してみました。 ふるさと納税などもありますが、気が付いたら、HOゲージが大量にあります。おまけに、半分以上DCC化以前に全く走らせていなかったりします・・・。
で、片づけた後の写真がこれですが、あまり変わっていない。いや、すべて箱に入れたんだが。
あとは、アカデミー賞を取ったということで、韓国映画『パラサイト 半地下の家族』を見に行きました。賞取ったというだけあって面白かったです。韓国映画、私が前見たのは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やスピードを操作しながら、パケット周期の確認をしました。
まずは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ぐらいパルス出さなくてもいいんでしたっけ?
まずは、少し前に大船駅に185系が止まっていたので、そのうちの記録のために撮っておきました。(PCのローカルフォルダから探すのが面倒なので、Webに上げるという横着)
で、久しぶりに鉄道模型をしようと思ったのですが、作業台の上がゴミ箱化して久しいため、
収納ボックスとかを買って、整理してみました。 ふるさと納税などもありますが、気が付いたら、HOゲージが大量にあります。おまけに、半分以上DCC化以前に全く走らせていなかったりします・・・。
で、片づけた後の写真がこれですが、あまり変わっていない。いや、すべて箱に入れたんだが。
あとは、アカデミー賞を取ったということで、韓国映画『パラサイト 半地下の家族』を見に行きました。賞取ったというだけあって面白かったです。韓国映画、私が前見たのは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やスピードを操作しながら、パケット周期の確認をしました。
まずは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ぐらいパルス出さなくてもいいんでしたっけ?
2020-02-11 21:50
コメント(5)