1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RP2040でEthernetをつなぐ方法まとめ

Posted at

— よく使われる製品・最短手順・選び方のヒント

本記事は実装ガイドです。特定ベンダーの宣伝目的ではありません。数値・事例は公開資料の要点を工程設計の背景として短く引用します。

背景(1分で把握)

Semiconductors rp2040 case study.jpg
Source: https://investors.raspberrypi.com/reports

  • 公式レポート(上期の発表スライド)では、RP2040を含むMCU出荷H1’23: 1.7M → H1’25: 4.5M と段階的に伸長。
  • 同スライドのケーススタディでは、アプリ層までを含む処理の負荷から設計の複雑さ・期間・コストが課題化し、統合的なオフロード構成が解決策として言及。
  • つまり「RP2040採用拡大 × 有線の安定性要求」という文脈で、実装経路の選択肢が複数並びます。
    出典:Raspberry Pi Holdings plc, “HY 2025 Results Presentation”(掲載スライドの要点)。

実装経路の全体像(まずはここから)

1) SPI Ethernetコントローラ(最も一般的)

  • 代表例:W5x00(W5100S/W5500)、Microchip ENC28J60
  • 長所:RP2040のSPIだけで実装可/資料とサンプルが豊富/再現性が高い
  • 注意:SPIクロック・バッファ設計でスループット・レイテンシが変動

配線SCK, MOSI, MISO, CS(SS), (INT/RST任意), 3V3/5V, GND + RJ45

Arduino最小例:W5x00

#include <SPI.h>
#include <Ethernet.h>
#define ETH_CS 17
byte mac[] = {0x02,0x11,0x22,0x33,0x44,0x55};
EthernetServer server(80);
void setup(){ Serial.begin(115200); SPI.begin(); Ethernet.init(ETH_CS);
  if(Ethernet.begin(mac,10000)==0){ IPAddress ip(192,168,0,50),dns(8,8,8,8),gw(192,168,0,1),mask(255,255,255,0);
    Ethernet.begin(mac,ip,dns,gw,mask);} server.begin();}
void loop(){ auto c=server.available(); if(c){ c.println("HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nRP2040 Ethernet OK"); c.stop();}}

Arduino最小例:ENC28J60(UIPEthernet)

#include <UIPEthernet.h>
#define ETH_CS 17
byte mac[] = {0x02,0xAA,0xBB,0xCC,0xDD,0xEE};
EthernetServer server(80);
void setup(){ Serial.begin(115200); Ethernet.init(ETH_CS);
  IPAddress ip(192,168,0,60),dns(8,8,8,8),gw(192,168,0,1),mask(255,255,255,0);
  Ethernet.begin(mac,ip,dns,gw,mask); server.begin();}
void loop(){ auto c=server.available(); if(c){ c.println("HTTP/1.1 200 OK\r\n\r\nENC28J60 OK"); c.stop();}}

小ワザ:まず SPI 8–10 MHz で安定確認 → 14/20/25 MHzへ段階的に上げる。INTは後付けがデバッグしやすい。

2) USB–Ethernetドングル(USBホスト)

  • :ASIX AX88772B、Realtek RTL8152
  • 長所:追加コントローラ不要
  • 注意:RP2040はUSB FS(12 Mb/s)、USBホストスタック必須/互換性管理・電源余裕

勘所:TinyUSB Host + ECM/RNDIS、エラーパス(抜き差し/サスペンド)試験、バスパワ確認

3) 外部MAC/PHY(RMII/MII)/PIO実験

  • :LAN8720 + 外部MAC/PIOでMAC相当
  • 注意:難度・保守コスト高(研究用途向け)

4) Ethernet-over-Serial

  • SLIP/PPPでシリアルをIP化(帯域/遅延は限定的)

使い分け早見表

要件 おすすめ経路
最短で動かす/資料が豊富 SPIコントローラ(W5x00等)
基板面積・部品点数最小/量産性 SiP統合
USB資産流用・プロトタイプ USB–Ethernet(ホスト)
特殊プロトコル・研究 外部MAC/PHY or PIO
狭帯域の特殊リンク Ethernet-over-Serial

運用Tips

  • リンクフラップ時は ARP更新 → ソケット再オープン
  • DHCP 10sタイムアウト → 静的IP フォールバック
  • 24–72h soak(HTTP+ping)で再接続時間/ジッタ/温度を記録

SiP統合(参考)

  • W55RP20RP2040 + W5500 のSiP
  • ねらい:フットプリント/配線/部品点数の削減、実装工数の軽減
  • 向き:小型化・BOM最適化がKPIの量産段階
  • ソフト:W5x00系とほぼ同フロー(ピン/初期化差分を確認)

まとめ

  • 基本線は SPIコントローラ。要件に応じて USB/外部MAC/Serial/SiP を選択。
  • 背景データとケースは設計判断の文脈として参照。動かしてから最適化が近道。
1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?