MicroPythonでSTM32のEthernetが正式サポートされました

何度かこのブログでも話題にしてきた、STM32用MicroPythonのEthernetサポートですが、ついに正式に導入されました。

stm32: Add support for ETH RMII peripheral (version 2) by dpgeorge · Pull Request #4541 · micropython/micropython

コードはD. P. Georgeさんがフルスクラッチで書き直して、以前私がとりあえずで入れていたSTM製のドライバコードは完全に置き換えたようです。

今のところ、NUCLEO F767ZIとSTM32F7 DiscoveryとSTM32F769 DiscoveryとNUCLEO F429ZIの4つのボードで動作しています。
これらのボードでは、デフォルトでMicroPythonにEthernetドライバが組み込まれます。

使い方は、networkモジュールにLANクラスが追加されていて、以下のようになります。

import network
lan = network.LAN()
lan.active(1)

デフォルトではIPアドレスをDHCPで取得するようになっていますが、

lan.ifconfig(('192.168.0.123','255.255.255.0','192.168.0.1','192.168.0.1'))

のようにすると静的アドレスを指定できます。パラメータはアドレス、ネットマスク、デフォルトゲートウェイ、デフォルトDNSサーバです。

通信スピードもかなり高速なので、NUCLEOボードの性能を十分発揮することができそうです!(AV機能が充実しているDiscoveryボードが欲しくなってきました・・・7~8千円するので、ちょっとお高いのですが。)

コメント