Wiznet makers

bruno

Published November 26, 2025 ©

129 UCC

14 WCC

30 VAR

0 Contests

0 Followers

0 Following

Original Link

A custom bootloader and FOTA update mechanism for the STM32L152RE.

It supports HTTP updates using the W5500 module from Wiznet.

COMPONENTS
PROJECT DESCRIPTION

원문 링크 : https://www.linkedin.com/posts/ankit-gote-50b50128a_hi-everyone-for-the-past-few-days-i-was-activity-7399048785156427776-8H8j

1) Introduction

본 프로젝트는 STM32L152RE MCU에 대해 직접 개발한 커스텀 부트로더를 기반으로, HTTP 프로토콜을 이용한 FOTA(Firmware Over-The-Air) 업데이트 기능을 구현한 사례이다.
특히 무선 통신이 아닌, WIZnet W5500 하드웨어 TCP/IP Ethernet 모듈을 사용하여 안정적인 유선 기반 FOTA 메커니즘을 구축하였다.

본 문서는 다음 질문에 초점을 맞춘다.

“왜 FOTA용 통신 모듈로 W5500을 선택했는가?”

이를 기술적 관점에서 분석하고, 구성 예시와 함께 정리한다.


2) Required Components

STM32L152RE Cortex-M3 MCU

WIZnet W5500 Ethernet 모듈 (WIZ850io, W5500-EVB 또는 커스텀 설계 보드)

SPI 연결 배선

3.3V 전원

HTTP 서버 또는 펌웨어 파일 호스팅 서버

개발 환경: STM32CubeIDE / Keil MDK / GCC

W5500용 ioLibrary_Driver


3) Hardware Setup

W5500은 STM32L152RE와 SPI 기반으로 연결되며, MCU는 완전한 TCP/IP 스택을 소프트웨어로 처리할 필요 없이, W5500의 하드웨어 스택을 그대로 사용해 안정적인 HTTP 통신을 수행한다.

특징:

W5500 내부에 TCP/IP 가속 엔진 존재

STM32L152RE 같은 저전력·저성능 MCU도 고속 네트워크 처리 가능

부트로더 영역에서도 쉽게 동작 (RTOS 필요 없음)


4) Interface Explanation (SPI)

W5500은 SPI를 통해 제어되며, 다음과 같은 이유로 FOTA 시 매우 유리하다.

Low-overhead 인터페이스

STM32L152RE는 Cortex-M3 기반으로 연산 자원이 제한적이다.
SPI 기반의 단순 I/O 제어만으로도 W5500이 패킷 처리 전체를 오프로드해 주기 때문에 MCU 부하가 거의 없다.

하드웨어 안정성

유선 Ethernet 기반 FOTA는 신호 감쇠나 전파 간섭을 받지 않으며, SPI는 MCU에서 구현하기 가장 단순한 유선 프로토콜이다.


5) Wiring Table

STM32L152RE PinW5500 PinDescription
PA5SCLKSPI Clock
PA6MISOSPI Data In
PA7MOSISPI Data Out
PB6 (또는 임의의 GPIO)CSChip Select
PB7INTnInterrupt (옵션)
PB0RSTnReset (옵션)
3.3V3.3VPower
GNDGNDGround

6) Software Environment Setup

WIZnet ioLibrary_Driver 적용

HTTP GET 기반 파일 다운로드 구현

Flash Write 기능이 포함된 커스텀 부트로더 제작

펌웨어 업데이트 단계:

W5500 초기화

DHCP 또는 Static IP 설정

HTTP 서버 접속

이미지 다운로드

CRC/무결성 검사

Flash Write 후 리부팅


7) Full Code Examples

(핵심 로직만 요약)

W5500 Init

 
wizchip_init(tx_buf, rx_buf); network_init();

HTTP GET 요청

 
send(sn, http_get_request, strlen(http_get_request));

수신된 펌웨어 처리

 
while(recv(sn, buffer, sizeof(buffer)) > 0) {    flash_write(address, buffer, len);    address += len; }

8) Testing Steps

W5500 정상 링크 확인

HTTP 서버에 최신 펌웨어 업로드

부트로더에서 HTTP GET 요청 수행

Flash 영역에 이미지 저장

재부팅 후 정상 동작 여부 확인


9) Troubleshooting

링크 DOWN → 케이블 및 PHY 상태 점검

HTTP 수신 누락 → 버퍼 크기 설정 확인

Flash Write 실패 → Page Erase 순서 검증

업데이트 중 전원 Off → 부트로더 Dual-Bank 방식 고려


10) Use Cases & Market Potential

산업용 센서, IoT 게이트웨이

현장에서 유지보수가 어려운 장비

저전력 MCU 기반 고신뢰 Firmware Update 시스템

무선이 불안정한 산업 환경


11) Module/Chip Technical Overview

W5500의 강점

하드웨어 TCP/IP Stack

Zero-copy 방식으로 높은 Throughput

안정적인 유선 Ethernet

매우 낮은 MCU 부하

저전력 동작 가능

HTTPS 제외 모든 TCP 기반 프로토콜 구현 가능

STM32L152RE 특성

저전력 L-series

Cortex-M3

Flash 용량 제한

복잡한 소프트웨어 TCP/IP를 돌리기에는 부담

이 조합에서 W5500은 MCU가 하기 어려운 네트워크 업무를 완전히 오프로드하는 핵심 역할을 수행한다.


12) Conclusion

STM32L152RE용 커스텀 부트로더 기반 FOTA 업데이트를 설계할 때 W5500을 선택한 이유는 명확하다.

✔ MCU 부하 없이 안정적인 TCP/IP 처리

✔ 저전력 MCU에서도 고성능 HTTP 다운로드 가능

✔ 유선 기반의 높은 신뢰성

✔ 소프트웨어 스택 구현 부담 제거

✔ FOTA 구조를 단순화해 개발 리스크 감소

결과적으로 W5500은 **“작고 단순한 MCU가 안정적인 네트워크 FOTA를 수행할 수 있게 만드는 가장 적합한 솔루션”**이다.

 

Documents
Comments Write