2010年4月6日火曜日

Ethernet Shieldと SDカードの併用

SPIを使った複数デバイス動作の当面の目標、というより手元にある Ethernet Shieldと SDカードを同時に動作させてみた。

まず先の実験の結果より、SDカードと Ethernet Shieldの出力が衝突しないように回路を追加する。
デバイスの選択は SSピンにより行なわれるが、AVRを SPIマスタとして使用しているときは単純なデジタル出力で、ソフトウェアで制御する必要がある。ハードで勝手に制御されるわけではない。これは 2つ目のデバイス用の SSを、適当なピンに割り当てて使用できるということであり、都合が良い。今回は SDカード用の SSを digital pin 9に割り当てた。

2つのライブラリが SPI機能を使うわけだから、競合して不具合が起きないようにしなければならない。SSの割り当て変更のついでに FatFSを修正した。内容は AVRの SPI機能の初期化部分の削除と SS制御部分の変更だけだ。SPI機能の初期化は Ethernet用ライブラリに任せるため、初期化の順序は気を付けなければいけない。

こんな大雑把な方法で良いのかよく判っていないのが本音だが、うまく動いているようだ。

ハードの改造が前提の部分が多少面倒だが、こういった組合せで使いたかった人の参考になれば幸いだ。

0 件のコメント:

コメントを投稿