5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NuttX for Raspberry Pi Picoで有線LAN接続

Posted at

NuttX for Raspberry Pi PicoでSPIが使用できるようになったので、以下のSPI接続のネットワークモジュールを使ってネットワークに接続します。
デバイス側からの割り込みを受けられる必要があるので、GPIOドライバに割り込み対応を追加しました。

接続

Raspberry Pi PicoとENC28J60を以下のようにつなぎます。

この記事 などでも触れられていますが、Amazon等で売られている上記のENC28J60モジュールはシルク印刷の端子の表記が一部おかしいので注意が必要です。

ENC28J60 Pico端子 Pico ピン番号
GND GND 3, 38 などのGNDピンのどれか
3.3 (Q3) 3V3 36
SI (ST) GP15 (SPI1 TX) 20
SCK GP14 (SPI1 SCK) 19
CS GP13 (SPI1 CSn) 17
SO GP12 (SPI1 RX) 16
INT (LNT) GP11 15
RST GP10 14

NuttXのビルド

コンフィグレーションにraspberrypi-pico:enc28j60を指定してビルドします。
ENC28J60、SPIの他に、ネットワーク周りの機能が有効にされています。

$ git clone https://github.com/apache/incubator-nuttx.git nuttx
$ git clone https://github.com/apache/incubator-nuttx-apps.git apps
$ cd nuttx
$ ./tools/configure.sh raspberrypi-pico:enc28j60
$ make

ENC28J60の接続先は、.configの以下の箇所で設定します。これらを変更することで、接続するSPI、GPIOピン番号を変えることができます。

CONFIG_RP2040_ENC28J60_SPI_CH=1
CONFIG_RP2040_ENC28J60_INTR_GPIO=11
CONFIG_RP2040_ENC28J60_RESET_GPIO=10

ネットワーク周りは、以下のような設定になっています。

  • IPアドレスはDHCPで取得
  • DNSサーバはGoogle Public DNS (8.8.8.8)を使用
  • NTPクライアントを起動して時刻取得

それぞれ、.configの以下の箇所で設定されています。

CONFIG_NETINIT_DHCPC=y
CONFIG_NETINIT_DNS=y
CONFIG_NETINIT_DNSIPADDR=0x08080808
CONFIG_SYSTEM_NTPC=y

起動

NuttXを起動して、ネットワーク周りをいろいろ操作してみます。
(起動時にDHCPでアドレスを取得しているため、最初のプロンプトが出るまで少しかかります)

nuttx-enc28j60.gif

5
6
0

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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?