デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2015年10月01日

スマイルデコーダ用の設定書き換え手段

スマイルデコーダですが、CV読み込みができないという声がチラホラ言われます。

いろいろ考えました。コストとCV読み込みのどっちが優先事項は高いのでしょうか?そもそもCV読み込みを、DCCで行う必要はありますか?

ユーザー様から、「シリアルのピンを引き出して欲しい。デバッグに使いたい」という要望を頂いたのですが、ピンを引き出す余裕がなく、「ソフトウェアシリアルでどうにかできませんか?」と回答しました。
その時、もしかしてソフトウェアシリアルでデバッグだけでなくCV設定とかやれば楽じゃない?と気付きました。

そして、この基板を設計しました。

SSSA_artwork.png

なんだこれは、と思うかもしれません。スマイルデコーダのスマイルコネクタ部分は、AVRのICSP(SPIによるファームウェア書き換え)なのですが、これを内部ソフトが動き出した時はソフトウェアシリアル通信機能を用いて、シリアルコネクタに利用しようというものです。

5VとGND、リセットはそのままとして、MISO,MOSI,SCKの3ピンが余ります。これらは、ソフトシリアルのTXとRXにそれぞれ割り付けます。そして最後のSCKは、GNDにあえて落とします。GNDに落とすことがポイントです。

Arduinoには、ソフトウェアシリアルのライブラリが最初から入っており、9600bpsとか低速なら余裕で通信ができます。→Arduino 日本語リファレンスのサンプルコードページ

スケッチ側ですが、まず、Setup関数内で、SCKのピン(PB5, ArduinoだとD13)を入力にして内部プルアップをONにします。これで、もし何も繋がっていない時は、常に入力信号値はHIGHになります。このアダプタをつなげると、GNDに落ちるので、これでアダプタ有無を検出できます。

SCKのピン、D13の入力がLOWの時はアダプタがあると認識して、CV読み書きモードになれば良いのです。これでCV読み書きし放題になります。しかもDCC経由より早い!安い!うまい!もちろんデバッグもできます。LOWではない時は、デバッグメッセージを出さないようにすれば、少々荷が重いソフトウェアシリアル処理の実動作時の遅延も皆無です。

次の基板製造で本アダプタは生産予定です。まだ実証してませんが、課題になるようなところは無いので、アッサリ動くと思われます。CV読み書きツールもWindows用で用意したいと思います。Macの場合では、シリアルのターミナルでポチポチとコマンドを入力すれば同じことはできるようにしておきます。

■追記

もしかして、基板作らなくてもスマイルライターで同じことができそうな気がしてきました。でも、ちょっとお値段が高いですし、使い勝手が悪いので基板は作ろうと思います。
posted by yaasan at 07:58 | Comment(0) | 鉄道模型
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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