행복한 하루

Raspberry Pi Pico(라즈베리파이 피코) W5100S-EVB-PICO 테스트하기(C/C++ 버전) 본문

RaspberryPi/Raspberry Pi Pico

Raspberry Pi Pico(라즈베리파이 피코) W5100S-EVB-PICO 테스트하기(C/C++ 버전)

변화의 물결 2022. 8. 23. 00:06

 

안녕하세요.

 

  Raspberry Pico를 가지고 테스트해보고 있지만, 살짝 아쉬운 것이 네트워크 연결을 할 수 없다는 것입니다. 특히, 원격지에서 제어를 할 수 없고, 단순 반복 제어나 standalone 프로그램으로 동작된다는 것이 아쉬웠습니다. (사실 시리얼 Bluetooth나 별로의 WiFi를 연결해서 가능은 합니다.)

  그러다가 찾은 것이 라즈베리파이 피코에 네트워크 모듈을 부착시켜 놓은 제품이 있어 테스트해보았습니다. WiZnet 제품은 유선과 WiFi 버전으로 나와 있어고, 기존 Raspberry Pico 버전과 호환된다고 나와있습니다.

  그리고 최근에, Raspberry Pico W라고 해서 Raspberry 단체에 Pico에 WiFi 모듈을 장착한 정식 제품 출시했습니다. 이 제품도 추후에 확인해보도록 하겠습니다.


1.  기본 사양

 (1) 기본 Pico 스펙

 RP2040 microcontroller with 2MByte Flash

   – Dual-core cortex M0+ at up to 133MHz

   – 264kByte multi-bank high performance SRAM

   – External Quad-SPI Flash with eXecute In Place (XIP)

   – High performance full-crossbar bus fabric

   – 30 multi-function General Purpose IO (4 can be used for ADC)

   – 1.8-3.3V IO Voltage (NOTE. Pico IO voltage is fixed at 3.3V)

   – 12-bit 500ksps Analogue to Digital Converter (ADC)

   – Various digital peripherals

     – 2 × UART, 2 × I2C, 2 × SPI, 16 × PWM channels

     – 1 × Timer with 4 alarms, 1 × Real Time Counter

  ...

(2) Includes W5100S (embedded Ethernet controller) 스펙

  – Supports Hardwired Internet Protocols: TCP, UDP, WOL over UDP, ICMP, IGMPv1/v2, IPv4, ARP, PPPoE

  – Supports 4 Independent Hardware SOCKETs simultaneously

  – Internal 16 Kbytes Memory for TX/ RX Buffers

  – SPI Interface

  – Micro-USB B port for power and data (and for reprogramming the Flash) 

  – 40 pin 21×51 ‘DIP’ style 1mm thick PCB with 0.1″ through-hole pins also with edge castellations 

  – 3-pin ARM Serial Wire Debug (SWD) port

  – 10 / 100 Ethernet PHY embedded

  – Supports Auto Negotiation

    – Full / Half Duplex

    – 10 / 100 Based

...

2. C/C++ SDK 설치 및 빌드하기

1) 빌드 사전 준비

  - 이전에 내용의 “Pico C/C++ SDK 설치 및 빌드해보기”를 참조해서 Pico SDK 환경을 만듭니다. (이전 내용을 해보셨다면 패스)

https://remnant24c.tistory.com/414

 

Raspberry Pi Pico(라즈베리파이 피고) 간단하게 C/C++ SDK 설치 및 빌드해보기

안녕하세요. Raspberry Pi Pico에 Python을 이용해서 많이들 프로그램을 하는데, C/C++로 프로그램해보고 싶다는 생각이 들어서 간단하게 MicroPython.uf2 올려서 하면 되겠지 생각했는데, gcc 등 설치할 것들

remnant24c.tistory.com

 

2) RP2040-HAT-C 소스 다운로드

  - D:\RP2040 폴더에 github 소스를 다운로드합니다.  “x86_x64 Cross Tools Command Prompt for VS 2019” 커멘트 창을 실행시켜 git으로 다운로드합니다.

git clone --recurse-submodules https://github.com/Wiznet/RP2040-HAT-C.git

 

  - D:\RP2040\RP2040-HAT-C\ CMakeLists.txt 파일 확인 (구매한 제품의 이더넷 칩 W5100S으로 설정되어 있는지 확인)

 

3) build 폴더 생성

  - build 관련 파일이 생성된 폴더를 만들고 폴더로 이동합니다.

D:\RP2040\RP2040-HAT-C> mkdir build  
D:\RP2040\RP2040-HAT-C> cd build

 

4) Makefile를 생성

D:\RP2040\RP2040-HAT-C\build> cmake -G "NMake Makefiles" ..

5) 빌드를 진행

D:\RP2040\RP2040-HAT-C\build> namke

   - 위와 같이 나왔다면 빌드는 문제없다고 생각할 수 있습니다.

3. http 서버 동작 확인

1) 소스 수정

 - 기본 예제에 아이피 정보와 동일하다면 수정할 필요 없지만, 내부적으로 사용하는 IP 대역대가 다를 수 있습니다. 그래서 소스 부분을 조금 수정해보도록 하겠습니다.

 - http server 예제 소스로 이동해서 코드를 수정합니다. (Visual Studio Code 혹은 메모장을 이용해서 수정 가능)

  D:\RP2040\RP2040-HAT-C\examples\http\server\w5x00_http_server.c

  - 수정 후 다시 nmake로 빌드합니다.

 

2) 다운로드

  - build 폴더 안에 있는 w5x00_http_server.uf2 파일을 확인 후 보드를 리셋 버튼을 눌러 다시 연결해서 파일을 붙여넣기 합니다. 그러면 재부팅되면서 http 서버가 시작합니다.

 

3) 작동 확인

  - 크롬으로 주소로 접속해보면 Hello, World 웹 페이지를 볼 수 있습니다.

  

  - ping 신호도 확인 가능합니다.

 

  - 위의 내용을 볼 때 원격지에서 각종 제어와 웹상에 정보를 띄어 줄 수 있는 제품으로 생각해보아도 될 좋을 것 같습니다.

 

감사합니다.

 

 

<참고 사이트>

1. W5100S-EVB-Pico

https://www.wiznet.io/ko/product-item/w5100s-evb-pico/

 

 

Comments