カテゴリー
Arduino PlatformIO ラズベリーパイ

W55RP20(ネットワーク機能つきラズパイPico)の実験

はじめに

W55RP20の評価基板(以下、評価基板)を使って実験を行いました。今回の年末年始休みは、ほぼこれで費やしてしまいました。

W55RP20とは、Raspberry Pi PicoW5500が1Chipになったものです。

実験内容(試したかったこと)
  • chip内蔵のネットワーク機能
  • 320×240ドットLCD(Pico LCD 2)による表示
  • WIZPoE-S1によるPoE(Power over Ethernet)

題材として、天気予報チェッカの移植を行ってみました。1.3インチの240×240ドットのものと比べると、だいぶ大きく感じます。

  1. 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
  2. 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
    • ふと「もしかして縦長の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
  3. WIZPoEーS1によるPoE
    • こちらは動作しませんでした。
    • PoE対応ハブ(FOXNEO製)と接続してみたのですが、まったく電源が供給されず、色々と試しているうちにW55RP20評価基板を壊してしまいました。
      • 壊した原因としては、おそらくPoE対応ハブと接続した状態でUSBからも電源供給したりしたせいかと思います。
      • LCD表示はできていたので、W5500部分だけ壊れてしまったようです。
    • 評価基板上の電源端子(WIZPoEーS1出力)に安定化電源の5V出力を繋ぐと動作するので、WIZPoEーS1が出力してくれないことが原因と思われます。
      • こちらの記事によると、Power Sourcing Equipment(ハブなどの給電側)は、機器が接続されたときに電圧を印加してPowered Device(受電側)かどうかを判断するようです。
      • 評価基板とWIZPoEーS1の組み合わせでは、このPoEネゴシエーションに対応していないのでは?と推測しています。
        • WIZPoEーS1の入力側に25KΩをはんだ付けしてみたりもしましたが動作しませんでした。
        • よく見るとコンデンサが膨らんでいるようにも感じます。もしかしたら実験中に壊してしまったのかもしれません。
      • 絶縁タイプのWIZPoEーP1に交換してみたところ、こちらでは動作しました。
    • ちなみに、PoEスプリッタを使用してラズパイと接続してみたところ、動作したのでハブの方は問題ないと思われます。
    • 試しに評価基板上の電源端子(WIZPoEーS1入力)に25KΩの抵抗を付けてハブに接続してみたところ、PoEネゴシエーションらしき波形を観測できました。
      • ただ、1秒後には電圧がダウンしてしまい、この動作を繰り返していました。おそらくですが、NW機器として認識できないと、ネゴシエーション動作を繰り返すのではないかと推察します。この推察は間違いだったようです。上記のWIZPoEーP1での実験ではNW通信を行わないプログラムでも動作していました。
プログラムソース
  • GitHubで公開しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA