追記(2012/03/24):
なんか急にアクセスが増えてきたので、フォローをしておくと、
http://avr.paslog.jp/article/2361305.html
こんな話もあって、この対策を取ると安定する可能性がある。まだ試せてない。
3.3V系のArduinoとつないで動かす場合に下記の問題が発生しない、という話もある。
その辺をまとめて丸っと検証したいが時間がないなう。
追記(2012/03/30)
ココで検証はじめました。
やっぱりなんか怪しい。
ArduinoのOfficialEthernetShieldにはWizNet社の W5100 が採用されている。
W5100のパッケージは0.4mmピッチのQFP80pinである。
私は不器用なので基板を自作する際、0.4mmピッチは実に辛い。
ところでW5100 はSPI接続とバス接続のいずれかが選択できるようになっているが、上記シールドではSPI接続を選択している。
よって実はArduinoとW5100は高々7本のラインでしか接続していない。
しかし0.4mm,80pinものハンダ付けを”強いられているんだ!!”
これは不合理なので同社製の W5200 に乗り換えたい。
こちらはW5100のSPI接続専用版で0.5mmピッチのQFN48pinである。(多少スペックが上がっていたりもする)
QFNである点はイマイチだが0.5mmピッチになり、かつpin数も半分程度になる。
ぜひW5200に乗り換えるべきである。
さて、ここで問題になるのは2点。
・標準ライブラリこそがArduinoの売りであるためEthernetライブラリからはW5100と同等にみえなければならない
・動くか判らんうちから基板をおこすのは怠い
まず後者を金で解決する。
こことか
ここで評価用基板( WIZ820IO )がうっている。
OfficialEthernetShieldと比べると半値以下だ。
そして前者の解決策は
ここにある。
そう、ベンダー自らArduinoでW5100と同様に使えるようライブラリを提供してくれているのだ。
Downloadタブの中に"Library for Arduino + Ethernet ( IDE ver1.0 )"があるのでこれをDLして所定の位置に展開・上書きすれば良い。
ただしこれを上書きしてしまうと、W5100へのアクセスが出来なくなりそう。
W5100とW5200の切り替えが出来ると良いなぁ、とおもうのでそのうち手を入れて適当に公開することにしよう。
というわけで、SPI系をまるっと接続したら即動いた。
拍子抜け過ぎる。
写真の左、Etherのケーブルが刺さってるコネクタだけのように見えるのがWIZ820IOである。
追記(2012/01/06):
どうも挙動が安定しない。
ExampleのWebServerをそのまま入れて、watchコマンドで5秒に一回取得してみると、1時間ぐらいで死んでしまう。こまった。
オフィシャルの方でも実験してみて再現するならEthernetライブラリの問題。
しないならW5200あるいは入れ替えたW5200用Ethernetライブラリの問題。
追記(2012/01/06):
W5100で同様の実験を行っているが、9時間異常なし。
W5200あるいはW5200用Ethernetライブラリに問題があると見ていいんだろうなぁ。。。ガクリ。
追記(2012/01/07):
丸一日以上異常なし。
W5100は安定しておる。