
W55RP20 은 W5500 + RP2040 + Flash Memory 가 포함된 SIP 칩으로 W5500이 독자 PIO SPI 버스에 연결되어 있다. SPI를 독립적으로 사용할 수 있다는 장점이 있고 속도도 더 빠르지만 기존에 RP2040에서 사용했던 W5500 라이브러리를 사용할 수 없어 코드 호환에 문제가 있다. 특히 기존에 쉽고 간단하게 사용하던 Arduino 코드를 사용할 수 없었다. 이를 해결하기 위해 Arduino 용 lwIP 라이브러리가 추가 되었고 Arduino Ethernet 관련 예제를 구동해 볼수 있다.
쉽고 간단함이 최고의 장점이 Arduino 예제 작성을 위한 개발 환경 설정을 해보자.
Arduino Preferences에 아래를 추가 한다.
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Arduino Board Manager에서 w55rp20을 검색하면 Arduino-Pico를 추가 할수 있다.

Board Manager 에서 Raspberry Pi Pico/RP2040/RP2350 -> Wiznet W55RP20-EVB-Pico 를 선택한다.

이렇게 하면 W55RP20을 Arduino 환경에서 테스트 할 수 있다.

우선 보드의 가장 기본이 되는 LED, Switch, UART 등을 테스트 해 보자.
[W55RP20 4032] 보드에는 2개의 LED가 GP8, GP9에 연결되어 있다.

#include <Arduino.h>
#define LED_PORT 8
#define Led1On() digitalWrite(LED_PORT, 1)
#define Led1Off() digitalWrite(LED_PORT, 0)
#define LED_PORT2 9
#define Led2On() digitalWrite(LED_PORT2, 1)
#define Led2Off() digitalWrite(LED_PORT2, 0)
void setup() {
pinMode(LED_PORT, OUTPUT);
pinMode(LED_PORT2, OUTPUT);
}
void loop() {
Led1On();
Led2Off();
delay(500);
Led1Off();
Led2On();
delay(500);
}
스위치는 GP2, GP28에 각각 연결되어 있다.

#include <Arduino.h>
#define LED_PORT 8
#define Led1On() digitalWrite(LED_PORT, 1)
#define Led1Off() digitalWrite(LED_PORT, 0)
#define LED_PORT2 9
#define Led2On() digitalWrite(LED_PORT2, 1)
#define Led2Off() digitalWrite(LED_PORT2, 0)
#define SW_PORT1 2
#define GetSwitch1() !digitalRead(SW_PORT1)
#define SW_PORT2 28
#define GetSwitch2() !digitalRead(SW_PORT2)
void setup() {
pinMode(LED_PORT, OUTPUT);
pinMode(LED_PORT2, OUTPUT);
pinMode(SW_PORT1, INPUT_PULLUP);
pinMode(SW_PORT2, INPUT_PULLUP);
}
unsigned int curtime = 0;
unsigned int led_toggle = 0;
void loop() {
if(GetSwitch1())
{
Led1On();
delay(100);
}
else
{
Led1Off();
delay(100);
}
if(millis() - curtime > 500)
{
curtime = millis();
led_toggle ^= 1;
if(led_toggle)Led2On();
else Led2Off();
}
}
디버깅용 UART는 표준 커넥터로 GP1(RXD), GP0(TXD)에 연결되어 있다.

Arduino ( \AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\5.6.0\variants\wiznet_55rp20_evb_pico\pins_arduino.h ) 파일에 아래와 같이 디폴트로 설정되어 있어 특별한 설정 없이 사용하면 된다.
// Serial
#define PIN_SERIAL1_TX (0u)
#define PIN_SERIAL1_RX (1u)
#define PIN_SERIAL2_TX (8u)
#define PIN_SERIAL2_RX (9u)