2017年10月23日

Nucleo-F401RE + W5500モジュール + MicroPythonでインターネット接続

w5500-nucleo.jpg

先日、Arduino用のイーサネットシールドを無理やりNucleo-F401REボードに接続しましたが、この状態だとやはり危なっかしいので、より小型のモジュールを入手しました。
前回使用したW5100の兄弟チップのW5500を使用したモジュールです。
W5100はSPI以外に8bitバスでも制御可能でしたが、W5500はSPI専用です。
購入したモジュールはフリスクケース程度の大きさでした。
価格はAmazonマーケットプレイスで1000円程度でしたが、Aliexpressからだと$6〜$8くらいで買えるようです。
w5500.jpg


使い方はほぼW5100と同じですが、MicroPythonにはW5500用のドライバを組み込む必要があります。
W5100と違って、W5500はMicroPythonでサポートされていますので、コードを書き換える必要はありません。
現時点のバージョンのMicroPythonでは、makeのオプションで「MICROPY_PY_WIZNET5K=5500」というようにWIZnet5Kのチップ種別を指定できるようになっていますので、gitでcloneするところからmakeのやり方を以下に載せておきます。

git clone https://github.com/micropython/micropython.git
cd micropython/
git submodule update --init
cd ports/unix
make deplibs
make
cd ../stm32/
make BOARD=NUCLEO_F401RE CROSS_COMPILE=~/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi- MICROPY_PY_WIZNET5K=5500
cp build-NUCLEO_F401RE/firmware.hex /mnt/hgfs/share/
#このあとST-Link Utilityでボードに書き込む


接続する端子も、SPIですので基本的には同じです。
購入したモジュールのピン配列(裏面)は下図のようになっていました。

w5500-pins.jpg


ちなみにですが、私の購入したモジュールはピンヘッダが下のように斜めになっていました・・・
実用上は問題ないですが、ちょっと気にはなりますね。

w5500module.jpg


Nucleo-F401REとの接続は以下のようになります(SPI2を使用する場合)。
リセットは自由に決められますが、あとは使用するSPIバスによって自動的に決まってしまいます。

W5500 Nucleo-F401RE
3.3V 3V3
MISO PB14(MISO)
MOSI PB15(MOSI)
SCS PB12(NSS)
SCLK PB13(CLK)
5V -
GND GND
RST PC8
INT -
NC -
表面から見た接続図
stm32-w5500-2.png

(W5500モジュールのfritzingデータはこちら

MicroPythonからの使い方は、W5100のときと全く同じです。
コードは完全に互換性があります。
例によってSTARWARSサイトに接続してみました。
w5500-starwars.png

STM32 + W5500の組み合わせは、Arduino + Ethernetシールドよりもパワフルで、サイズもコンパクトに納まり、有線で使用するにはなかなか良いのではないかと思います。
ラベル:MicroPython
posted by boochow at 23:18| Comment(0) | stm32 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
人気記事