Introduction (data-driven hook)
Based on aggregated datasheet signals and community bring-up reports, this compatibility report distills the DP83848’s RMII vs MII pin behavior into precise, implementable pin maps and wiring rules. Evidence: cross-checked device documentation and multiple forum bring-ups show consistent mode-dependent signal reassignment. Explanation: Engineers will get concise guidance on which signals change function or direction between RMII and MII, typical strap settings that control mode, and top failure modes to expect during RMII↔MII conversions. (Part: DP83848)
| Feature / Mode | RMII (Reduced MII) | MII (Standard) | User Benefit |
|---|---|---|---|
| Data Bus Width | 2-bit (TXD[1:0], RXD[1:0]) | 4-bit (TXD[3:0], RXD[3:0]) | RMII saves 6-7 PCB traces. |
| Clock Frequency | 50 MHz (Synchronous) | 25 MHz (Asynchronous) | MII offers lower EMI potential. |
| Pin Count | 7-9 Signals | 14-16 Signals | RMII enables smaller MCU packages. |
| Implementation | High (Timing Sensitive) | Medium (Legacy Friendly) | MII is easier for manual routing. |
The PHY supports both RMII and MII modes; protocol-level differences are primarily signal count, clock sourcing, and data width. RMII uses TXD[1:0]/RXD[1:0] with a single 50 MHz REF_CLK (2-bit bus), while MII exposes TXD[3:0]/RXD[3:0] plus separate TX_CLK and RX_CLK (4-bit bus). Application Tip: Choose RMII when MCU MAC has limited pins or provides a common REF_CLK; choose MII when full 4-bit throughput or legacy MAC timing is required—trade PCB pin budget against MAC complexity.
Correct rails and IO domains determine signal tolerance and timing margins. Typical DP83848 power rails include AVDD, DVDD (IO), and VTP; IO domain levels (1.8V/2.5V/3.3V) are strap-configurable or defined by board-level level shifters. Design Note: Clock source location (PHY vs MAC) drives trace-length rules: if REF_CLK is provided by MAC, route a single controlled-impedance trace; if PHY provides buffered clock to MAC, maintain low skew and terminate per datasheet.
Many RMII signals map to a subset of MII signals; some MII lines are absent in RMII. Evidence: Practical mappings show TXD[1:0]→TXD[1:0], RXD[1:0]→RXD[1:0], CRS_DV→CRS/RX_DV semantics differ, REF_CLK→TX_CLK/RX_CLK role changes.
| RMII signal | MII equivalent / notes |
|---|---|
| REF_CLK | TX_CLK / RX_CLK (Dual 25MHz for MII) |
| TXD[1:0] | TXD[1:0] (MII adds TXD[3:2]) |
| RXD[1:0] | RXD[1:0] (MII adds RXD[3:2]) |
| TX_EN | TX_EN (unchanged) |
| CRS_DV | CRS / RX_DV (Combined in RMII) |
By Julian Sterling, Senior Embedded Systems Architect
"When migrating from MII to RMII, the most common oversight is the 50MHz clock trace impedance. Unlike the 25MHz MII clock, the 50MHz REF_CLK is highly susceptible to reflection. Always use a 33Ω series resistor near the source to dampen ringing. Also, watch your 'strap' resistors—if you use LEDs on those lines, ensure the pull-up/down logic isn't fighting the PHY's internal sampling during reset."
Hand-drawn schematic, not a precise circuit diagram
RMII wiring is compact but timing-sensitive. Evidence: Typical checklist items include: connect REF_CLK to MAC or isolate PHY-provided clock with DC blocking if required; route TX/RX differential pairs with controlled impedance; set straps (MODE pins) to force RMII when desired. Explanation: Add ESD diodes on magnetics side, 0R jumpers for optional buffering, and 0.1uF + 10uF decoupling near each power pin.
Converting RMII to MII requires exposing extra data lines and separate clocks. Steps: provide TXD[3:2]/RXD[3:2] connections to MAC, add TX_CLK and RX_CLK traces (or configure PHY to output clocks), and change strap resistors to select MII. Explanation: Where MCU IO voltage differs, insert level shifters; use direction-controlled buffers if host cannot tri-state lines during PHY reset.
Top failures include missing/inverted clocks, half pins tied, and strap misconfiguration. Community reports repeatedly show link-down due to REF_CLK held low by both sides or MDIO address collisions. Fix: Isolate clock vs data by forcing PHY into loopback, toggle strap pins, and use an oscilloscope to confirm REF_CLK presence before asserting link.
Run electrical and protocol checks early. Recommended tests: continuity/impedance, REF_CLK presence and jitter under load, MDIO register R/W, basic link-up and 10/100 negotiation. Automated retries and logging speed up root-cause analysis in production test fixtures.
This report gives a compact, data-driven roadmap to map and validate DP83848 RMII and MII pins during design and bring-up. For constrained designs prefer RMII; for full legacy or timing-critical interfaces choose MII. (Part: DP83848)
Q1: How do I force DP83848 into RMII mode if my board provides a MAC REF_CLK?
Set the MODE strap pins per the datasheet to select RMII, route the MAC REF_CLK to the PHY REF_CLK pin with controlled impedance, and ensure the PHY is not driving an opposing clock. Verify via MDIO reads.
Q2: What MDIO checks should firmware perform during boot?
Firmware should read PHY ID (Registers 2 & 3) immediately after reset, check mode bits in the status registers to reflect RMII/MII straps, and confirm link capability bits.