Four Ways to Add Ethernet: Hardwired TCP/IP vs MCU MAC+PHY vs SPI MAC+PHY
There are four architectures for adding Ethernet to a product, differing in where the TCP/IP stack runs, whether the MCU has a MAC, and what interface is used. This guide lays out hardwired TCP/IP (WIZnet W5500), MCU MAC + external PHY (GD32 + DAVICOM), SPI MAC+PHY (DM9051) and the software-stack option, with a three-question decision table.
Four architectures for adding Ethernet
There are four common architectures for adding Ethernet to a product, differing in where the TCP/IP stack runs, whether the MCU has a MAC, and what interface is used: 1) hardwired TCP/IP (the stack lives in the chip, the MCU uses socket registers over SPI, e.g. WIZnet W5500); 2) MCU integrated MAC + external PHY (the MCU has its own Ethernet MAC and connects to an external PHY over an MII/RMII parallel bus, e.g. GD32F207 + DAVICOM DM9162); 3) an SPI-interface MAC+PHY single chip (added when the MCU has no MAC, e.g. DAVICOM DM9051); 4) MCU MAC + PHY + a software stack (running something like lwIP on the MCU). Which to pick comes down to whether your MCU has a MAC, whether you need to fill 100Mbps, and whether you want to offload networking from the MCU.
1) Hardwired TCP/IP (WIZnet W5500 / W6100 / W6300)
The entire TCP/IP stack is built into the chip’s silicon; the MCU only reads and writes socket registers inside the chip over SPI/QSPI, with no software stack to run on the MCU and no need for an RTOS, and packet buffering lives on-chip (32KB on the W5500/W6100). It suits resource-constrained MCUs and links that must come up fast and stay stable; for IPv6 choose the W6100 / W6300. The trade-off is that throughput depends on the SPI rate (the W5500 product page lists ~55Mbps; the W6300 with Quad SPI reaches 90Mbps and above). In one line: it offloads networking wholesale from the MCU to a dedicated chip.
2) MCU MAC + external PHY (GD32 + DAVICOM)
When the MCU already integrates a 10/100 Ethernet MAC (e.g. GigaDevice GD32F207 / GD32F407), you only add a cheap external PHY (e.g. DAVICOM DM9161A / DM9162) plus magnetics and an RJ45 to fill 100Mbps over an MII/RMII parallel bus — better at saturating the bandwidth than an SPI interface. The trade-off is choosing an MCU that has a MAC (not every part does — the GD32F405, for instance, has no Ethernet MAC) and handling the RMII 50MHz reference clock. It suits high-throughput industrial-networking designs that already use a MAC-equipped MCU such as the GD32.
3) SPI MAC+PHY (DM9051) and 4) a software stack
When your MCU has no integrated MAC (e.g. a small M0/M3, or the GD32F405), a chip like the DAVICOM DM9051 that integrates MAC+PHY and talks to the MCU over SPI is the pin-saving, easy-to-integrate choice; but throughput is limited by the SPI clock, suiting low-to-medium-bandwidth telemetry/control rather than filling 100Mbps. Alternatively, if your MCU has a MAC and you want to control the stack yourself, there is the fourth option — MCU MAC + external PHY + a software stack (lwIP) — the most flexible, but you maintain the stack yourself and it consumes the MCU’s Flash/RAM and CPU cycles, which is exactly what hardwired TCP/IP saves you.
How to choose (a three-question table)
Follow three questions: 1) Does your MCU have an Ethernet MAC? No → hardwired TCP/IP (W5500) or SPI MAC+PHY (DM9051); yes → MCU MAC + external PHY (DM9162). 2) Do you need to fill 100Mbps? Yes → MCU MAC + PHY (the parallel bus saturates best); low-to-medium bandwidth is fine → an SPI solution. 3) Do you want to offload networking from the MCU and not maintain a software stack? Yes → hardwired TCP/IP (W5500/W6100; for IPv6 choose W6100/W6300). JLink Technology distributes WIZnet (hardwired TCP/IP), DAVICOM (PHYs and SPI MAC+PHY) and GigaDevice (MAC-equipped GD32 MCUs), covering all four architectures from one source; tell us your throughput needs, MCU and volumes and we will help with selection and reply with samples, datasheets and pricing.
Products mentioned
W5500 Hardwired TCP/IP Ethernet Controller
W5500 is WIZnet's flagship Ethernet controller with a unique hardwired TCP/IP stack, enabling direct network connectivity without software TCP/IP implementation. Connects to the host MCU via SPI, features 32KB TX/RX buffer, supports up to 8 sockets — the most widely adopted Ethernet chip in the Arduino/Raspberry Pi ecosystem.
GD32F207 Cortex-M3 MCU with Ethernet MAC
The GD32F207 is a high-performance 32-bit Arm Cortex-M3 MCU from GigaDevice at 120MHz, with up to 3072KB flash / 256KB SRAM and an integrated 10/100 Ethernet MAC (with IEEE 1588) — pair it with an external Ethernet PHY (e.g. DAVICOM DM9161A/DM9162) for wired networking. It also offers USB 2.0 FS (OTG), dual CAN 2.0B, up to three 12-bit ADCs and two DACs; larger SKUs add a TFT-LCD interface (TLI), camera interface (DCI), and AES/HASH/TRNG security. At 2.6~3.6V in LQFP64~176, it suits industrial gateways, HMI, and networking gear.
DM9051 SPI Interface 10/100M Ethernet Controller
DM9051 is a DAVICOM single-chip 10/100M Fast Ethernet controller with an SPI interface, eliminating the need for 8/16-bit parallel bus and greatly simplifying hardware design. Features 16KB SRAM TX/RX buffer, full-duplex flow control, and native Linux kernel driver support — ideal for network expansion on ARM or RISC-V MCU systems.
Need these components or design help?
JLink Technology provides parts, datasheets, and engineering support.
Request a Quote