« 【PICマイコン】ワンコインFLデコーダーに挑戦⑤ | トップページ | 【PICマイコン】ADC機能を使った電圧チェッカー »

2017/11/19

【PICマイコン】Loconetに接続(パケットの受信)

16番でDCC化に取り組んでますが、NMRAのDCC規格とDigitrax社のLoconet規格のふたつを理解しないと、電子工作して遊ぶのは辛いようです。先人の方々の知恵をお借りして、Loconet上のパケットをLCDモニターにダンプしてみましたので、忘備録代わりにメモしておきます。


(参考)
Loconet: The Digitrax Difference
LocoNetネットワーク機器と制御ソフトウエア
PICマイコンで電子工作(その7:I2C接続LCDモジュール)
PICマイコンで電子工作(その9:I2C接続LCDモジュール②)

PICマイコンはPIC12F1822で、ピンの設定は次のとおりです。
・RA1:I2C(SCL1)入出力+プルアップ
・RA2:I2C(SDA1)入出力+プルアップ
・RA5:EUSART(RX)入力(47KΩを通じてLoconetに接続)



Loconetのパケットは、EUSART機能で受信します。受信割込みを使い、割込処理ルーチンで受信したデータをリングバッファに格納しています。メインの処理では、リングバッファからデータを読みだしています。(詳しくは、参考サイトをご覧下さい。)

Loconetのボーレート(16,667bps)に対応したSP1BRG(12F1822ではSPBRG)は、次のとおりです。計算式で初期値をヘッダーに宣言しておくと便利です。


(I2C機能を使う場合は、Fosc=1MHzは選択できません。)




アドレス0001のポイントを切り替えた時のパケットです。


続く。。

« 【PICマイコン】ワンコインFLデコーダーに挑戦⑤ | トップページ | 【PICマイコン】ADC機能を使った電圧チェッカー »