スレッドの評価:
  • 回答数:0 平均:0
  • 1
  • 2
  • 3
  • 4
  • 5
同じく "DSmain R5.1 で CV Read Error"
#1
HeloHelo2000さんのスレッドに、"DSmain R5.1 で CV Read Error" があったので追加で書き込み
を一度したのですが混乱させてしまってはいけないと考え、別のスレッドにさせて頂きました。

DSmain R5.1利用しているのですが、同じように CVRead Error が発生しています。
室内等の制御にデコーダを使おうとしてアドレスをいろいろ変えたかったので、電流を60mA以上
流すために100Ωの抵抗をつなぎ、初めにアドレスがいくつになっているかを確認しようとして
CV1 をreadしたのですが、何回やってもCVRead Errorが発生して読めません。
使ったFLデコーダは、
  1) Web Nuckyさんの "ワンコインFLデコーダ4.1" 
  2) Ayanoさんの "SmileFunctionDecoder V2" (CVが、読み出しできるようにスケッチを少し見直
      います)
あと、
  3) nagodenさんの "Smile Decoder R6n" (この場合は、モータへの出力ラインに、モータの代わり
      100Ωの抵抗を接続)
 です。


他のコマンドステーション等で CVの読み出しができないのかを確認するため、
  A) KATO DCS51K
  B) Desktop Stationさんの "DSbluebox"
  
C) Desktop Stationさんの "DSair2"
を使い、上記 1) ~3) のデコーダに100Ωの抵抗をつなぎ CV1 を読んでみたところ、A) 及び B) は、
正常に読むことができました(ただし、稀にですが読み出しに失敗する
ことはありました)が、
C) の DSair2 も CVRead Error が発生して読み出しできません。

なお、DCC信号の電圧は 14V以上はでており、また、100Ωの抵抗には並列にLEDをつなぎ点灯状況
を目視で確認していましたが、点滅していたのでAcknowledge信号はでて
いるようです(多分、100mA
以上の電流は流しているようです)。


追加の確認ということで、3) nagodenさんの "Smile Decoder R6n" の出力にモータをつないで
DSmain R5.1 及び DSair2 でCV1 を読み出したところ、この場合はerrorにならず正常に読み出しが
できました。


以上のことから、DSmain R5.1 及び DSair2 も、モータをつなげばCV読み出しができるが、100Ωの抵抗
をつないだ場合は読み出しができない現象となっています。

DSmain R5.1 及び DSair2 の場合は 100Ωの抵抗では NG であり、さらにモータ接続と同等の電流を流す
ような低い抵抗値にしないといけないのでしょうか ?
さらに抵抗値をさげての確認は、これからやってみようと思いますが。
返信
#2
DSmain R5.1 で CV Read Errorの件、デコーダにつなぐ負荷の抵抗値を 100Ω から 50Ω に
変えてCVの読み出しを確認してみました。結果としては、50Ωにすれば、

 ・DSmain R5.1
 ・DSair2
もCVの読み出しができるようです。

コマンドステーションとデコーダのCV読出し状況は、添付ファイルを参照してください。

CV読み出し時のAcknowledgeとしては、60mA以上の電流を流せばよいとされているよう
であり、DC15V出力のACアダプタを使用しているので、100Ωをつなげば少なくとも100mA
の電流は流れているはずであり、DSblueboxやKATO DCS51Kでは、100Ω負荷でCV値が読
み出せていますが、DSmain R5.1及びDSair 2で読み出しできない原因がよくわかりません。

どのような原因が考えられるか、教示頂ければと思います。

追記:
100mA以上は、流れているはずだと書いていますが、実際に流れた電流とDSmainやDSair2
内部で検出した値が、100mA相当の値になっているかを確認したわけではなく何とも言え
ません。
考えられるのは、電流検出器周りと思われるますが、電流検出用ICのはんだ付け不良かな
とも。DSmain R5.1は、自分ではんだ付けしていますが、ただ、DSair2は、電流検出器用
表面実装のICは実装された形で供給されているのではんだ付け等に関しては問題ないので
はと。

実際流れている電流とDSmain側の内部電流信号との関係を何とか調べてみようと思います。


添付ファイル
.pdf   コマンドステーションとデコーダ(負荷は抵抗)のCV読み出し状況結果.pdf (サイズ: 236.91 KB / ダウンロード: 3)
返信
#3
DSシリーズのCV読み出し回路は、他の会社と異なり、ホール素子による電流検出方式を採用しています。
この方式により、プログラム線路向けに別にコネクタを設けずに、CV読み出しができるようにしております。

しかし、現状では、電流センサをかなり大電流側に振っておりまして、電流を大きめにしなければうまく検出できないケースがあります。

DSblueboxですと、この電流センサの検出レベルの調整が可能なようになっております。

なるべく、電流を大きめに流して頂ければ幸いです。
返信
#4
CV読み出しの件、FLデコーダの場合、電流増やす方向で行なうよにしていきます。

電流センサーが、±12.5A・110mV/1A、VCC 5V の場合、2.5Vを中心に最大2.5V振
れる仕様のようであり、DSmain・DSair側の電流検出のスケーリングをよく理解し
ていないのですが、2.5V/110mV = 22A これで A/D変換値が 512カウントとすると、
1カウント当り凡そ42mA。60mAを検出値にすると、2カウント相当以上の少なく
とも90~100mA位は電流を流さないとAcknpowledgeとして検出は難しいのかなと
自分なりの勝手な理解をしました。

過電流検出まで考えると、1カウント相当の60mAを検出するのやはり厳しいですね。

どうもありがとうございました。

DSmain R5.1は、私としては気にいっており、これからも引き続き愛用していきた
いと思っています。
返信
#5
もし、ATMEGA328P-PUに書込みする機器をお持ちであれば、実は閾値は、MCore(DIP 28ピン側のスケッチ)のDSCoreM.cppの24行目

https://desktopstation.net/wiki/doku.php...#downloads
のCore側スケッチ

#define THRESHOLD_CURRENT 10  /* 20A:5d, 12A:10d ,5A:20d */

の数値を変えると調整できます。。
10から数値を下げると、閾値を調整できます。

最終的には平均値を取って、分散を取ってからその値で振り分けすべき所ですが、そこまで実装できておりません・・・。
返信
#6
閾値の情報ありがとうございます。

実は、コマンドステーションでどのようなことを行いどのような処理をしているかを勉強しよう
と思い、DSmain R5.1 のスケッチを悪戦苦闘しながら読んでいったところ、DSCoreM.cpp に Ack
応答時の電流が閾値 "THRESHOLD_CURRENT" を超えたことで、CV値の読み込みができたかどう
かをチェックしているところ見つけたので、この閾値を、


  ・10 ---> 4 ---> 3 ---> 2
    (因みに、DSbluebox は 8、電流センサーICの検出電流値が異なるからではと)

と書き換えて確認してみました。

しかしながら、3 以下の値にしたところ、CVを何回読んでも error となって読み出しできなくなっ
てしまいました(4 だと 100Ω の抵抗でも、読み出しできる場合もあるが error になることも結構な
割合で発生しまいしたが)。

閾値が小さすぎると、電流センサーICの 電流ゼロ時のオフセット・その他の影響で、Ack応答電流
が流れていなくても流れたと判断し、CV のすべての bit が "1" とみなして(NmraDcc.cpp のbit verify
処理が、最初に bit が "1" であるかを確認しているから ?)して、これで error なってしまう ???。

単純に、閾値をさげていくだけではなく、記載されているように何か処理を一緒にしていかいと難
しいのかな~と・・・・・。もう少し、更なる勉強のために色々とやってみようと思いますので宜
しくお願いします。
返信


ページジャンプ:


このスレッドを閲覧中のユーザ: ゲスト: 1