Wiznet makers

Grace_Koo

Published December 09, 2025 ©

17 UCC

11 WCC

4 VAR

0 Contests

0 Followers

0 Following

Original Link

LPC_W5500_TCPStream

First-ever W5500 driver for NXP LPC54114 dual-core MCU. Custom non-blocking implementation filling the gap in industrial Ethernet solutions.

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

* Cover Image in this article were generated by Gemini.

Overview

WIZnet is excited to share a groundbreaking reference implementation: the first W5500 integration with NXP's LPC54114 dual-core microcontroller. This project fills a critical gap in the embedded Ethernet ecosystem, providing NXP developers with a proven path to add robust networking capabilities to their designs.

Why This Matters

Market Gap Analysis

Our GitHub research revealed a striking pattern:

  • LPC + W5500 projects: 0 results
  • LPC + ENC28J60: Limited to legacy ARM7 designs
  • LPC1768 projects: Rely on built-in Ethernet MAC

This is the first production-ready W5500 driver for the NXP LPC54xxx series.

Technical Differentiation

FeatureThis ProjectTypical Alternatives
PlatformLPC54114 (Dual Cortex-M4+M0+)LPC1768 (built-in MAC) or ENC28J60
Driver ArchitectureCustom non-blocking SPIGeneric blocking libraries
Performance60MHz SPI, hardware TCP/IP10Mbps (ENC28J60)
DevelopmentMCUXpresso IDE nativeMixed toolchains

Getting Started

  1. Hardware Setup: Connect W5500 module to LPC54114 via SPI6
  2. Configuration: Adjust IP settings in W5500_config.h
  3. Build: Import project into MCUXpresso IDE
  4. Deploy: Flash and connect via Ethernet

Detailed documentation available in /doc directory.

  • Pin Mapping Table
LPC54114 PinFunctionW5500 PinPin NumberNotes
PIO0_5SPI6 MOSIMOSI39Master Out Slave In
PIO0_6SPI6 MISOMISO40Master In Slave Out
PIO0_7SPI6 SCKSCLK41SPI Clock (60MHz)
PIO1_11SPI6 SSEL1SCSn42Chip Select (Active Low)
PIO0_2GPIO InputINTn36Link Status / Interrupt (Optional)
3.3VPowerVDD-3.3V Power Supply
GNDGroundGND-Ground
  • Additional W5500 Connections
W5500 PinConnectionNotes
RSTn3.3V (Pull-up 10kΩ)Hardware reset (Active Low)
PMODE[2:0]All to GND or VDDConfigure PHY mode (see W5500 datasheet)
RJ45 InterfaceEthernet Jack with magneticsUse integrated magnetics module

Key Features

1. Custom W5500 Driver Development

Unlike most W5500 implementations that use WIZnet's standard ioLibrary, this project features a platform-optimized custom driver specifically designed for NXP's architecture:

// Non-blocking SPI architecture with callback mechanism
__DATA(SRAM2) W5500_t myW5500;  // Optimized memory placement

static void w5500_spi_Callback(SPI_Type *base, spi_master_handle_t *handle,
                                status_t status, void *userData) {
    W5500_spiCallBack(&myW5500);
}

Benefits:

  • Seamless integration with NXP HAL drivers
  • Non-blocking operation for real-time systems
  • Efficient memory management using SRAM2
  • State machine-based implementation

2. Dual-Core Ready Architecture

The LPC54114's Cortex-M4 + M0+ configuration opens unique possibilities:

  • M4 core: Network communication + main application logic
  • M0+ core: Sensor management, safety functions, or auxiliary tasks

3. Industrial-Grade Reliability

This combination brings together:

  • NXP LPC54114: Long-term availability, extended temperature range, safety certifications
  • W5500: Proven hardware TCP/IP stack with 8 independent sockets

4. High-Speed SPI Interface

userConfig.baudRate_Bps = 60000000U;  // 60MHz SPI clock

Maximum throughput with W5500's hardware-accelerated protocol stack.

Architecture Highlights

Hardware TCP/IP Offloading

W5500 handles the entire network stack, freeing the MCU for application tasks:

  • No software TCP/IP stack overhead
  • Reduced RAM footprint
  • Deterministic timing for industrial applications

Efficient Resource Usage

#define MAX_REC    200
// Optimized buffer management
uint8_t recDataBack[MAX_REC + 10] = {'R','e','c','e','i','v','e','d',':',' '};

Real-Time Echo Server Implementation

Demonstrates practical networking patterns:

  • TCP server with automatic reconnection
  • Non-blocking receive with timeout
  • Periodic heartbeat messages
  • Echo functionality with prefix

Target Applications

This reference design is ideal for:

Industrial Automation

  • Factory floor controllers
  • PLC connectivity
  • Remote monitoring systems
  • Machine-to-machine (M2M) communication

Building Automation

  • HVAC control systems
  • Access control
  • Energy management
  • Sensor aggregation nodes

Medical Devices

  • Patient monitoring equipment
  • Laboratory instruments
  • Data logging systems

General IoT

  • Edge gateways
  • Data acquisition systems
  • Remote control interfaces

Technical Specifications

Hardware:

  • MCU: NXP LPC54114 (Cortex-M4F @ 150MHz + M0+ @ 100MHz)
  • Ethernet: WIZnet W5500 (Hardware TCP/IP)
  • Interface: SPI @ 60MHz
  • Memory: 256KB Flash, 192KB RAM

Software:

  • IDE: MCUXpresso
  • Framework: NXP SDK with CMSIS
  • Debug: J-Link support
  • Driver: Custom W5500 implementation (Version 1.2)

Performance:

  • TCP throughput: Up to 25Mbps (limited by SPI bandwidth)
  • Latency: Sub-millisecond response time
  • Connections: Supports up to 8 simultaneous TCP/UDP sockets

What's Included

├── Custom W5500 Driver (v1.2)
│   ├── W5500.c/h - Core driver implementation
│   └── W5500_config.h - Configuration parameters
├── Complete HAL Integration
│   ├── SPI, GPIO, UART drivers
│   └── Clock and power management
├── TCP Echo Server Example
│   └── Production-ready application template
└── MCUXpresso Project Files
    └── Ready to build and debug

Expanding the W5500 Ecosystem

At WIZnet, we're committed to supporting diverse microcontroller platforms. This project demonstrates W5500's versatility beyond the traditional STM32 ecosystem, now bringing proven Ethernet connectivity to the NXP LPC architecture.

Credits

Driver Development: Mohammadreza Hosseini
Platform: NXP LPC54114
Ethernet Controller: WIZnet W5500

Resources

Community & Support

We encourage developers to:

  • Share your LPC + W5500 implementations
  • Report issues and contribute improvements
  • Join the discussion on WIZnet forums

This project proves that W5500 is the versatile Ethernet solution for any ARM platform.


Why Choose W5500 for Your Next NXP Design?

  • Hardware TCP/IP: Reduce firmware complexity
  • Proven Reliability: Millions deployed worldwide
  • Easy Integration: SPI interface, minimal external components
  • Cost-Effective: Complete networking for under $3
  • Multi-Platform: Now proven on NXP LPC architecture
Documents
  • GitHub:LPC_W5500_TCPStream

Comments Write