LPC_W5500_TCPStream
First-ever W5500 driver for NXP LPC54114 dual-core MCU. Custom non-blocking implementation filling the gap in industrial Ethernet solutions.
* 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
| Feature | This Project | Typical Alternatives |
|---|---|---|
| Platform | LPC54114 (Dual Cortex-M4+M0+) | LPC1768 (built-in MAC) or ENC28J60 |
| Driver Architecture | Custom non-blocking SPI | Generic blocking libraries |
| Performance | 60MHz SPI, hardware TCP/IP | 10Mbps (ENC28J60) |
| Development | MCUXpresso IDE native | Mixed toolchains |
Getting Started
- Hardware Setup: Connect W5500 module to LPC54114 via SPI6
- Configuration: Adjust IP settings in
W5500_config.h - Build: Import project into MCUXpresso IDE
- Deploy: Flash and connect via Ethernet
Detailed documentation available in /doc directory.
- Pin Mapping Table
| LPC54114 Pin | Function | W5500 Pin | Pin Number | Notes |
|---|---|---|---|---|
| PIO0_5 | SPI6 MOSI | MOSI | 39 | Master Out Slave In |
| PIO0_6 | SPI6 MISO | MISO | 40 | Master In Slave Out |
| PIO0_7 | SPI6 SCK | SCLK | 41 | SPI Clock (60MHz) |
| PIO1_11 | SPI6 SSEL1 | SCSn | 42 | Chip Select (Active Low) |
| PIO0_2 | GPIO Input | INTn | 36 | Link Status / Interrupt (Optional) |
| 3.3V | Power | VDD | - | 3.3V Power Supply |
| GND | Ground | GND | - | Ground |
- Additional W5500 Connections
| W5500 Pin | Connection | Notes |
|---|---|---|
| RSTn | 3.3V (Pull-up 10kΩ) | Hardware reset (Active Low) |
| PMODE[2:0] | All to GND or VDD | Configure PHY mode (see W5500 datasheet) |
| RJ45 Interface | Ethernet Jack with magnetics | Use 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 clockMaximum 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 debugExpanding 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

