teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:1/544 記事一覧表示 | 《前のページ | 次のページ》

ワンコインデコーダ DCC信号「0」「1」判定

 投稿者:nucky  投稿日:2017年10月27日(金)22時16分54秒 KD113159056153.ppp-bb.dion.ne.jp
  通報 返信・引用 編集済
  ワンコインデコーダシリーズで、DCC信号の「0」と「1」の判定をするところの
プログラムの動作についてある方からご質問をいただきましたので解説します。

「0」と「1」判定部は以下の方が作成されたものをベースにしております。
http://www006.upp.so-net.ne.jp/tohrus2010/

解説をご覧いただく前提として、DCC信号の「0」と「1」の時間的な規定をご理解いただいている前提です。
詳細は以下のWebを参考にしてください。
(本家NMRA)
https://www.nmra.org/index-nmra-standards-and-recommended-practices
https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.1_electrical_standards_2006.pdf
(桂庵)
http://www13.plala.or.jp/katsuraan/AboutDCC/AboutDCC.htm

これを見るとわかりますが、「1」は58usプラスマイナス3usなので、これをマイコンで監視しています。

わかりやすいようにPICマイコンを4MHzで動作させると1命令1usとなるので、それで考えるとラクです。

プログラムの各STEP冒頭で、2度ほど入力端子を参照してから、どちらかが「L」だったら約30us後にもう一度、
入力を参照して「H」だったら「1判別」、引き続き「L」だったら「0判別」としています。

ここで注意したいのは「1」は58usですが、1周期「L時間」+「H時間」を足したのが58usなので、半分の29us+誤差分を足した時間経過したのちに測定しているのがポイントです。

参考ですが、昔プログラムの検証をするさいに、自分で処理速度をカウントした資料がありましたので、添付します。


http://web.nucky.jp/

 
 
》記事一覧表示

新着順:1/544 《前のページ | 次のページ》
/544