--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2010/01/23  04:08    WIZ200WEB試用記1
最近、ストロベリーリナックスでWIZ200WEBという
ATMEGA128+W5300+SRAM32KB+FLASH512KBを
搭載したボードが発売されました。
値段は4300円とこれだけいろいろ乗っているにしては安いですし、
TCP/IPコントローラのW5300とSRAMはバス接続になっており、
今まで一度も使ったことがなかった外部バスインターフェースを使う
いい機会になりそうだったので購入しておきました。
やっと時間ができたので、少しずついじっていこうと思います。

まず、適当に回路を作っていきます。
といっても、ボード上に必要な部品はほぼ乗っているので、
3.3Vレギュレータと電源コネクタ、ライタ接続用のコネクタなどを乗せて、
配線したボードを製作しました。
SN3K0367.jpgSN3K0368.jpg

電源供給と書き込みさえできればあとはプログラムの製作です。
もともと、WEBサーバとしての動作ができる面白いボードですが、
今回は、自分のスキルアップとバスの試用、ソケット通信の試用などが
使用目的なので、サンプルは使いません。
まず、ライタでATMEGA128のヒューズをみてみると工場出荷時の状態ではなく、
しっかりとWEBサーバ動作に適切なヒューズ状態が設定されていました。
なので今回はヒューズの設定はいじっていません。

とりあえず今日の目標は、
「イーサネットに接続し、PCからpingを叩いて応答させる」にしました。
結構厄介に聞こえますが、初期設定ができてしまえば
W5300が勝手にpingに応答してくれるので、そこまで難しくはありません。
要するに、ATMEGA128の外部バス出力を行って、W5300の初期設定を行う
という内容です。
W5300で検索すると、あまりいい情報は出てきませんが、
ほぼW5100と一緒なので、W5100について調べたりすれば
それなりに情報が手にはいると思います。
今回参考にしたのは、WIZ200WEBのWEBサーバファームウェアのソース、
Interface2009年12月号プログラム、トランジスタ技術2009年3月号プログラムです。
初期設定に最低限必要なのは、AVRの外部バス出力を有効にすることと、
W5300にMACアドレス、ゲートウェイアドレス、サブネットマスク、IPアドレスを
レジスタに書き込むことです。
続きを読むの方にプログラムは記述しておきました。
見たい人だけ見てください。

この初期設定ができたら、PCからコマンドプロンプトを使用して、
このボードのIPアドレスにpingを送ってみます。
SN3K0369.jpgping.png

ここでちゃんと応答が返ってくれば正常に動作していることがわかります。
結果、画像のように正常に動作を確認できました。

いろいろと初めてのことばかりなので、
調べるのに時間はかかってしまいましたが、
プログラムは簡単に書くことができました。
土曜日は本題のソケット通信の方をやる予定です。

今回の試用で書いたソースプログラム。


という感じです。
MACアドレスはボードに割り当てられたアドレスを使用しましたが、
ここでの記述では0x00にしてあります。
また、w5300.hではw5300にある全てのレジスタのアドレスを
defineしていますが、とても長くなるので今回使用したレジスタの辺り
のみを書いて、残りは省略しました。

動作の内容はとても簡単です。
まず、AVRの外部バス出力を許可する必要があるので、
MCUCRレジスタでは外部バス接続の許可と、
上位のバスアクセスに1waitを追加する設定を行っています。
XMCRAでは上位と下位のアドレス境界を0x8000に設定しています。
次に、W5300の初期設定を行う関数に飛びます。
初期設定では、最初にW5300へソフトウェアリセットを行い、
その後にMACアドレス、ゲートウェイアドレス、サブネットマスク、IPアドレスを
対応するレジスタへ転送しています。
これで必要最低限の初期設定は終わりです。
あとはW5300が勝手にping応答を行ってくれるので、
ATMEGA128は仕事がないためwhile(1)で無限ループさせておきます。
今回のプログラムはこれだけです。
Secret

TrackBackURL
→http://amenotiyukizora.blog76.fc2.com/tb.php/325-e69f5595
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。