最終更新日 2024年9月18日
LANモジュールとしてWiZnetのChipであるW5500を使いこなそうと思いました。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
実際に入手したW5500モジュールをBluePillに接続し、動作確認をしました。
- BluePillが提供する3.3Vの電流は精々200mAです。W5500は他のNICチップに比べ明らかに消費電流が小さいです。そのためなんとかW5500モジュールをドライブできます。ここでドライブできなければそのモジュールが不用意な消費電流を食っていることとなります。
- BluePillはSTM32duinoとして使用します。ライブラリは<Ethernet3.h>です。RST端子をDIOを使って起動時に10msecパルスを送って処理します。
- いずれにしてもすんなり動くものです。ただ、HTTPで動かそうとすると電流不足があるみたいです。
ArduinoIDEで使用する場合、ライブラリとして
#include <Ethernet2.h>を使うことになっています。ただ、このライブラリはシールドを使う分にはCSが10番ピンになっていても問題は無いのでしょうが、モジュール相手だと使いづらいです。
ICSP端子からSPIバスを引き出すのであればいいのですが、MEGAで使ったりすると、このライブラリは使いづらいです。
また、リセット端子の扱いもあります。CPUボードのリセット端子との連動は安定しません。RST_DOpinを定義してプログラム内でリセットを掛けることで安定します。その意味でライブラリは、#include <Ethernet3.h>が明らかに使いやすくお勧めです。
2024年9月18年
W5500に対してpingコマンドを実行するとちゃんと反応しますが、どの程度のサイズまで対応しているのか気になりました。
普通にpingを打つと32byteで処理するようです。このサイズはコマンドオプションで変更出来ることを知りました。Windowsクライアントの場合、規定値32 最大65500Byteだそうです。pingによる応答時間で通信速度を判断することも出来るため、サイズは重要です。32Byteでは判断出来なくてもサイズを大きくして時間が掛かれば誤差も少なくなるという考えです。ところが、サーバ側はChipによって制限を受けるようです。
W5500はどこまで対応しているのか確認したくなり実施しました。結果は以下の通りです。
デフォルトは32byteですね。普通に反応します。
WindowsOSの最大値とある65500をセットしてみましたが、実行出来ないようです。これはクライアント側の問題か?
現実的な値を求めるため、1000byteを設定して見ましたが オフセット119でのMISCOMPARE とあります。119バイト以降不一致という意味でしょうか?そこで119バイトで実施すると期待通りの結果です。ただ、時間計測は出来ませんね。
119バイトにどのような意味があるのか判りません。今回のターゲット(.199)はCPUがSTM32F103です。CPUによる違いがあるのかも知れません。そこで、RaspberriPiPicoと接続したW5500で試してみました。
.212は W5500-EVB-Pico を接続しているのですが、結果的には同じですね。pingは接続CPUまで届かない可能性がありますね
119バイトにどのような意味があるのか?W5500のバッファサイズなのでしょうか?それとも返信バイトの最大値として設定されたモノなのか?多分PCからW5500は1000バイトのPINGコマンドは受け付けたんだと思います。これはSTM32F103であればデバッグ出来そうです。今後の課題として置きます。
ちょっと判った事があります。
W5500のping受信はW5500モジュール内で完結しているようです。Wiznetのフォーラムに書かれていました。
https://docs.wiznet.io/Product/iEthernet/W5500/Application/ipraw
https://forum.wiznet.io/t/topic/3888/3データシートには書かれていない問題のようです。実装方法の問題のようです。TIのChipでは完全な実装だというような書込も興味深いです。
pingコマンドの目的を通信確認としておけば32byteで何ら問題が無いように思います。
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。