본문 바로가기

RaspberryPi/RP2040_W6100

[RP2040_W6100] Arduino 에서 W6100 이더넷 개발환경 설정

RP2040에서 간단히 W6100을 사용하려면 Ethernet_Generic 라이브러리를 사용하면 쉽게 테스트 해볼 수 있다.

 

우선 W6100을 사용하기 위해 USING_W6100 을 true로 설정한다.

#define USE_W5100                           false
#define USING_W6100                         true

 

 

다음으로 W6100 SPI설정을 해 준다.

#define USE_ETHERNET_GENERIC  true 
#define USE_THIS_SS_PIN                       17    //RP2040 EXP

#define SPI_X spi0
#define SPI_ETHERNET_SETTINGS SPISettings(33000000, MSBFIRST, SPI_MODE0)
#define USING_SPI2                          false

 

 

 

가장 간단하게 W6100을 이용하여 DCHP로 IP를 할당 받는 코드를 테스트 해 보자

#include <SPI.h>

#define USE_UIP_ETHERNET   false

#define USE_W5100                           false
#define USING_W6100                         true

#define USE_ETHERNET_GENERIC  true 
#define USE_THIS_SS_PIN                       17    //RP2040 EXP

#define SPI_X spi0
#define SPI_ETHERNET_SETTINGS SPISettings(33000000, MSBFIRST, SPI_MODE0)
#define USING_SPI2                          false 

#define ETHERNET_USE_RPIPICO      true
#define SPI_HAS_TRANSFER_BUF      true

//#define ETHERNET_USE_RPIPICO_DMA  true
#define ETHERNET_USE_RPIPICO_DMA  flase

#define DebugSerial   Serial
#include "Ethernet_Generic.h"

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = {
  0x00, 0x08, 0xDC, 0x00, 0x00, 0x00
};

void setup()
{
  DebugSerial.begin(115200);
  while (!DebugSerial) {
  //  ; // wait for serial port to connect. Needed for Leonardo only
	}

  DebugSerial.println("SPI INIT");

  pinMode(USE_THIS_SS_PIN, OUTPUT);
  digitalWrite(USE_THIS_SS_PIN, 1);

  // initialize the ethernet device
  Ethernet.init (USE_THIS_SS_PIN);

  Ethernet.begin(mac);
  DebugSerial.println("...");

  // start listening for clients
  
  server.begin();
  DebugSerial.print("Iperf server address : ");
  DebugSerial.println(Ethernet.localIP());
}

void loop()
{

}

 

반응형