Wiznet makers

gunn

Published May 09, 2026 ©

92 UCC

4 VAR

0 Contests

0 Followers

0 Following

Original Link

Identity Protocol - Part 10 - W5500 Ethernet

Identity Protocol - Part 10 - W5500 Ethernet

COMPONENTS
PROJECT DESCRIPTION

This is the 10th installment of the 'Identity Protocol' project currently being conducted by developer arvindsa, covering the process of interfacing (connecting) the W5500 Ethernet controller with the MAX32630 microcontroller.

1. Summary of the Post

This post details the implementation process of the 'wired network connection,' the final puzzle piece of the project.

* SPI Communication Setup: To communicate with the W5500, I configured the SPI protocol (a 3-byte header method including address, block, and direction control) and attempted to verify the connection by reading the version register (0x39).

* Voltage Level Issue: Initially, the W5500 did not respond. Upon checking with a logic analyzer, it was found that the MCU (MAX32630) output voltage was 1.8V, whereas the W5500 was expecting a 3.3V logic level. * Solution: When using an external level shifter, a noise (Ghost bits) issue occurred. Ultimately, this was resolved by modifying the MCU settings (IOMAN) to directly increase the SPI pin voltage to 3.3V (VDDIOH).

* Protocol Implementation: Subsequently, static IP configuration and HTTP communication were successfully established through the socket abstraction process (Open → Connect → Send/Recv → Close).

2. Role of the W5500

In this project, the W5500 serves as the 'Ethernet interface responsible for wired communication with the gateway/server.' Its specific roles are as follows:

1. Network Connection Channel:

When a user's ID card (based on MAX32630) attempts authentication via Bluetooth (BLE), the device installed on the door handles the wired LAN connection to send this authentication data to the central server (Django server) or to receive instructions from the server.

2. TCP/IP Stack Processing:

The W5500 has a built-in hardware TCP/IP stack. It acts as a network accelerator that allows sockets to be opened and data to be exchanged using only simple SPI communication, without the MCU needing to handle complex network packet processing directly.

3. Final Integration Between Devices:

While the BLE, keypad, security chip (ATECC508A), and accelerometer in the overall system handle 'local' data, the W5500 acts as the final piece of the puzzle, connecting this data to the outside world (Internet/Intranet).

💡 Additional Explanation: Why Was the W5500 Used?

The author selected the W5500, which has a well-established ecosystem including Arduino libraries, to shorten the time required for implementing complex networks. Although the author struggled with voltage level differences, the goal was to secure stable hardware-based Ethernet communication to complete the project's 'identity verification protocol'.

================================

개발자 arvindsa가 진행 중인 'Identity Protocol' 프로젝트의 10번째 연재 글로, W5500 이더넷 컨트롤러를 MAX32630 마이크로컨트롤러와 인터페이스(연결)하는 과정을 다루고 있습니다.

1. 글 내용 요약

이 포스팅은 프로젝트의 마지막 퍼즐 조각인 '유선 네트워크 연결' 구현 과정을 상세히 설명합니다.

* SPI 통신 설정: W5500과 통신하기 위해 SPI 프로토콜(주소+블록+방향 제어 포함 3바이트 헤더 방식)을 설정하고, 버전 레지스터(0x39)를 읽어 연결을 확인하려 했습니다.
* 전압 레벨 문제 발생: 처음에는 W5500이 응답하지 않았습니다. 로직 분석기로 확인해보니 MCU(MAX32630)의 출력 전압이 1.8V인 반면, W5500은 3.3V 로직 레벨을 기대했기 때문입니다.
* 해결 방법: 외부 레벨 시프터를 사용했을 때는 노이즈(Ghost bits) 문제가 생겼으나, 최종적으로 MCU의 설정(IOMAN)을 변경하여 SPI 핀의 전압을 3.3V(VDDIOH)로 직접 높여 해결했습니다.
* 프로토콜 구현: 이후 소켓 추상화(Open → Connect → Send/Recv → Close) 과정을 거쳐 정적 IP 설정 및 HTTP 통신을 성공시켰습니다.

2. W5500의 역할

이 프로젝트에서 W5500은 '게이트웨이/서버와의 유선 통신을 담당하는 이더넷 인터페이스' 역할을 합니다. 구체적인 역할은 다음과 같습니다.

1.  네트워크 연결 통로:
   사용자의 ID 카드(MAX32630 기반)가 블루투스(BLE)로 인증을 시도할 때, 문에 설치된 장치가 이 인증 데이터를 중앙 서버(Django 서버)로 보내거나 서버의 지시를 받기 위한 유선 랜(LAN) 연결을 담당합니다.

2.  TCP/IP 스택 처리:
   W5500은 내부에 하드웨어 TCP/IP 스택이 내장되어 있습니다. MCU가 복잡한 네트워크 패킷 처리를 직접 할 필요 없이, 간단한 SPI 통신만으로 소켓을 열고 데이터를 주고받을 수 있게 해주는 네트워크 가속기 역할을 합니다.

3.  장치 간 최종 통합:
   전체 시스템에서 BLE, 키패드, 보안 칩(ATECC508A), 가속도계 등이 '로컬' 데이터를 처리한다면, W5500은 이 데이터를 외부 세상(인터넷/인트라넷)과 연결해주는 마지막 퍼즐 조각(Final piece of the jigsaw) 역할을 수행합니다.


💡 보충 설명: 왜 W5500을 썼을까?
작성자는 아두이노 라이브러리 등 기존 생태계가 잘 구축된 W5500을 선택하여 복잡한 네트워크 구현 시간을 단축하려 했습니다. 비록 전압 레벨 차이로 고생했지만, 결국 하드웨어 기반의 안정적인 이더넷 통신을 확보하여 프로젝트의 '신원 확인 프로토콜'을 완성하려 한 것입니다.

 

[Q&A]

Q) 개발자 arvindsa가 진행 중인 'Identity Protocol' 프로젝트의 10번째 연재 글을 모두 표로 정리해 줘. 

 

A)

Part 1 – Plan
프로젝트 전체 기획 및 구조 설명
Part 2 – Django Server
서버 구축
Part 3 – Unboxing and Blinking with Maxim LPSDK
MAX32630 개발환경 세팅
Part 4 – BLE using PAN1326B and BTstack
BLE 통신 구현
Part 5 – Interfacing a Keypad
PIN 입력용 키패드 연결
Part 6 – Snatch Detection with the BMI160 IMU
카드 탈취 감지(IMU 사용)
Part 7 – Colouring on the ICLED FeatherWing
LED UI 처리
Part 8 – Cryptographically Sign with ATECC508 and Verify with Micro-ECC
암호 서명 및 검증
Part 9 – BLE GATT Challenge/Response with BTstack
BLE 기반 challenge-response 인증
Part 10 – W5500 Ethernet
W5500 Ethernet 연결 및 TCP/IP 통신 구현

#제목링크W5500 언급
1Identity Protocol Part 1 - Plan링크
2Identity Protocol - Part 2 - Django Server링크
3Identity Protocol - Part 3 - Unboxing and Blinking with Maxim LPSDK링크
4Identity Protocol - Part 4 - BLE using PAN1326B and BTstack링크
5Identity Protocol - Part 5 - Interfacing a Keypad링크
6Identity Protocol - Part 6 - Snatch Detection with the BMI160 IMU링크
7Identity Protocol - Part 7 - Colouring on the ICLED FeatherWing링크
8Identity Protocol - Part 8 - Cryptographically Sign with ATECC508 and Verify with Micro-ECC링크
9Identity Protocol - Part 9 - BLE GATT Challenge/Response with BTstack링크

W5500 관련: Part 1~9 제목에는 W5500이 등장하지 않습니다. W5500은 오직 Part 10에서만 다뤄지며, 이것이 시리즈의 마지막 기술 구현 파트입니다. Part 10 본문에서 W5500을 MAX32630에 인터페이스하는 것이 프로젝트의 마지막 퍼즐 조각이라고 명시하고 있어, W5500 연동이 이 프로젝트의 최종 단계였음을 알 수 있습니다

Documents
Comments Write