はじめに
W55RP20の評価基板(以下、評価基板)を使って実験を行いました。今回の年末年始休みは、ほぼこれで費やしてしまいました。
W55RP20とは、Raspberry Pi PicoとW5500が1Chipになったものです。
実験内容(試したかったこと)
- chip内蔵のネットワーク機能
- 320×240ドットLCD(Pico LCD 2)による表示
- WIZPoE-S1によるPoE(Power over Ethernet)
題材として、天気予報チェッカの移植を行ってみました。1.3インチの240×240ドットのものと比べると、だいぶ大きく感じます。
- chip内蔵のネットワーク機能
- SPI経由でW5500と接続されているものと思い込んでいたところ、まったく動作せず。
- ネットで調べてみると、RP2040とW5500の接続はGPIO20~25が使われているものの、SPI経由ではないらしいです。
- 同じGPIOを消費するならSPIでいいのに、と思いますが…
- PIO(programmable input/output)経由で制御することはわかったのですが、使用していたEthernet_Genericライブラリでは対応していないらしく、他のライブラリを物色して数日を費やしました。
- 結局、Arduino-PicoはW55RP20に対応しているらしいことがわかり、platformio設定のplatformを明示指定(platform_packages)することで解決できました。
- platformio.ini記述
- board = wiznet_55rp20_evb_pico
platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git#4.4.1
- board = wiznet_55rp20_evb_pico
- platformio.ini記述
- Pico LCD 2による表示
- デバイスの説明ページのSpecificationsに「240 (V) RGB x 320 (H) Pixels」とあったので、width=320/height=240としていたのですが、なぜか右端80ドットにゴミが出てしまいます。
- LGFXクラスの設定(横長LCD想定)
- cfg.panel_width = 320; // 実際に表示可能な幅
cfg.panel_height = 240; // 実際に表示可能な高さ
cfg.offset_rotation = 1; // 回転方向の値のオフセット 0~7
- cfg.panel_width = 320; // 実際に表示可能な幅
- LGFXクラスの設定(横長LCD想定)
- ふと「もしかして縦長のLCDなのでは」と思いついて、width=240/height=320としたところ、思った通りに表示してくれました。(説明ページを読み進めると「240 (H) x 320 (V)」との記述もありました。)
- LGFXクラスの設定(縦長LCD想定)
- cfg.panel_width = 240; // 実際に表示可能な幅
cfg.panel_height = 320; // 実際に表示可能な高さ
cfg.offset_rotation = 1; // 回転方向の値のオフセット 0~7
- cfg.panel_width = 240; // 実際に表示可能な幅
- LGFXクラスの設定(縦長LCD想定)
- デバイスの説明ページのSpecificationsに「240 (V) RGB x 320 (H) Pixels」とあったので、width=320/height=240としていたのですが、なぜか右端80ドットにゴミが出てしまいます。
- WIZPoEーS1によるPoE
- こちらは動作しませんでした。
- PoE対応ハブ(FOXNEO製)と接続してみたのですが、まったく電源が供給されず、色々と試しているうちにW55RP20評価基板を壊してしまいました。
- 壊した原因としては、おそらくPoE対応ハブと接続した状態でUSBからも電源供給したりしたせいかと思います。
- LCD表示はできていたので、W5500部分だけ壊れてしまったようです。
- 評価基板上の電源端子(WIZPoEーS1出力)に安定化電源の5V出力を繋ぐと動作するので、WIZPoEーS1が出力してくれないことが原因と思われます。
- ちなみに、PoEスプリッタを使用してラズパイと接続してみたところ、動作したのでハブの方は問題ないと思われます。
- 試しに評価基板上の電源端子(WIZPoEーS1入力)に25KΩの抵抗を付けてハブに接続してみたところ、PoEネゴシエーションらしき波形を観測できました。
- ただ、1秒後には電圧がダウンしてしまい、この動作を繰り返していました。
おそらくですが、NW機器として認識できないと、ネゴシエーション動作を繰り返すのではないかと推察します。この推察は間違いだったようです。上記のWIZPoEーP1での実験ではNW通信を行わないプログラムでも動作していました。
- ただ、1秒後には電圧がダウンしてしまい、この動作を繰り返していました。
プログラムソース
- GitHubで公開しています。