このArduinoのEthernetシールドにはSDカードスロットが付いているんですが、"NOT SUPPORTED"のシールが貼ってあります。っていうことは、動かないと言っているわけです。どういう理由で動かないのかが興味あります。ぜひ有効にしてみたいですね。だって、WEBサーバに最適な構成だからです。
Ether+TCP/IPチップ(W5100)とSDカードスロットがたぶんSPIバスでつながっていると思われます。オープンソースの割には、このシールドは回路図が公開されていません。なので、基板を調査しなければわからないのがしんどいです。少なくともW5100はSPIに繋がっています。なぜなら通常のバス接続がAVRでは出来ないからです。SDカードスロットもこういうマイコンにつなぐ場合、一般的にはSPIですので、きっとそうなっているのだろうと推測できるわけです。
もしかして、W5100がマスター(SCLK発信元)だったりしたら、SDカードスロットはAVR側をマスターにしたいから、SPI数珠つなぎは出来ません。が、W5100のデータシートを見ると、INT(割り込み通知)端子はあるし、SCLKは入力ですので、必ずAVRがマスターになるはずです。であれば、SDカードスロットとの数珠つなぎは可能なはずです。
単に、まだSDカードドライバの設計が間に合ってないだけなのかも知れません。そうならば、待てばいいだけです。もしくはTCP/IP通信とSDカードアクセスの同時アクセスパフォーマンスがうまく発揮できないのかも知れませんが、そこそこW5100にはバッファ(最大送受信8kバイトづつ)がありますし、なんとかなるんじゃないかな?というのが実感です。
やっぱ、設計中というステータスなんだと思います。FAT12/16のドライバを作っているんでしょうねぇ。
ただし、現状のArduinoのIDEで作るソフトウェア構造(setup()とloop()だけの記述)だと、うまくプログラミング出来るかどうかは、ちょっとよくわかりません。マルチタスクとか、うまく割り込みをハンドリングしたりとか、色々工夫しないと難しいかも。
オリジナルArduinoOSを作ってしまうのも手かも知れませんが、それってメインストリームからはずれてしまうからなぁ・・・。悩ましい。
ん、よくわからないけど、Arduinoは(見た目)C++言語なのかしら。もしクラス実装ならば、これを継承すれば、ラッパーOS的なものはつくれるのかもしれないなぁ。もうちょっとArduinoを勉強しないと何とも言えないけど。
2008年10月26日
登録:
コメントの投稿 (Atom)

0 コメント:
コメントを投稿