Update Time:2026-04-01

W25Q128 vs MX25L128: Are They Actually Interchangeable?

W25Q128 and MX25L128 look identical on paper. But swap one for the other without checking these 5 differences and your firmware will break in production.

Network & Communication

W25Q128 vs MX25L128

Both are 128 Mbit SPI NOR Flash. Both are 8-pin SOIC packages. Both run at 3.3V, support Quad SPI, and have the same 4KB sector / 64KB block / 16MB total layout. On a distributor line card, they look completely interchangeable.

Hundreds of engineers have thought the same thing. Some of them were right. Others found out the hard way during a supply shortage swap that their Quad SPI driver stopped working, their firmware's JEDEC ID check started failing, or their automotive customer rejected the lot because the new part had no AEC-Q100 qualification — even though it came in the same package from a reputable distributor.

This article does not just compare the numbers. It tells you exactly where the W25Q128 (Winbond) and MX25L128 (Macronix) diverge, which differences matter for firmware and hardware, which do not, and — critically — when you can swap one for the other without touching a line of code.

1.0 Which Exact Parts Are We Comparing?

"W25Q128" and "MX25L128" are family names, not single part numbers. Each family contains multiple variants with different voltage ratings, package options, and feature revisions. Before comparing anything, you need to know which specific variants are on your BOM.

Winbond W25Q128 family — current production variants:

Part NumberVCCKey FeaturePackage
W25Q128JV2.7–3.6VLatest revision, DTR support, 3× Security RegistersSOIC-8, WSON, TFBGA
W25Q128FV2.7–3.6VPrevious revision, widely deployed, no DTRSOIC-8, WSON
W25Q128JW1.7–1.95V1.8V low-voltage versionSOIC-8, WSON
W25Q128FW1.7–1.95V1.8V, previous revisionSOIC-8, WSON

Macronix MX25L128 family — current production variants:

Part NumberVCCKey FeaturePackage
MX25L12835F2.7–3.6VCurrent production, MXSMIO Quad I/O, 100K P/ESOIC-8, WSON
MX25L12845E2.7–3.6VAdds DTR read mode, slightly olderSOIC-8, WSON
MX25L12805D2.7–3.6VOlder, no Quad modeSOIC-8
MX25L12833F2.7–3.6VNewer variant with automotive featuresSOIC-8, WSON

For this comparison, we are focusing on the most common pair that engineers try to substitute: the W25Q128JV (or W25Q128FV) versus the MX25L12835F (or MX25L12845E). These are the 3.3V standard-speed variants you will encounter most often on production boards.


2.0 Side-by-Side Specifications

ParameterW25Q128JV (Winbond)MX25L12835F (Macronix)Compatible?
Capacity128 Mbit (16 MB)128 Mbit (16 MB)✅ Identical
VCC2.7V – 3.6V2.7V – 3.6V✅ Identical
Page size256 bytes256 bytes✅ Identical
Sector size4 KB4 KB✅ Identical
Block size64 KB (also 32 KB)64 KB✅ Identical
Total sectors4,0964,096✅ Identical
P/E endurance100,000 cycles100,000 cycles✅ Identical
Data retention20 years20 years✅ Identical
Max SPI clock (standard)133 MHz86–133 MHz (variant dependent)⚠️ Verify per variant
Quad SPI max clock133 MHz (QSPI), 80 MHz (QPI)104–133 MHz⚠️ Verify per variant
Manufacturer JEDEC ID0xEF (Winbond)0xC2 (Macronix)❌ Different
Device ID (128Mbit)0x4018 (JV) / 0x4018 (FV)0x2018 (12835F)❌ Different
Deep power-down current1 µA typical1 µA typical✅ Identical
Standby current3 µA typical3 µA typical✅ Identical
Active read current~25 mA~25 mA✅ Essentially same
QE (Quad Enable) bit locationStatus Register-2, bit 1Configuration Register, bit 6❌ Different
Security registers3× 256-byte OTP2× 64-byte OTP (variant dependent)❌ Different
AEC-Q100 automotiveW25Q128JV-DTR (separate SKU)MX25L12833F (separate SKU)⚠️ Requires separate SKU
Operating temperature (standard)-40°C to +85°C-40°C to +85°C✅ Identical
Package footprint (SOIC-8)5.27mm × 5.18mm5.27mm × 5.18mm✅ Pin-compatible
PinoutCS#, DO, WP#, GND, DI, CLK, HOLD#, VCCCS#, SO, WP#, VSS, SI, SCLK, HOLD#, VCC✅ Pin-for-pin compatible

Summary: The hardware is almost perfectly compatible. The software is where problems appear.


3.0 Hardware Compatibility: Pinout, Package, and Electrical

The good news for PCB designers: the W25Q128 and MX25L12835F are pin-for-pin compatible in the same package. Standard 8-pin SOIC (JEDEC MS-012), WSON 6×5mm, and WSON 8×6mm footprints are shared across both families. You can place either part on the same PCB without any layout change.

Both operate from 2.7V to 3.6V with identical standby and active power profiles. Both support the same 4-wire SPI, 6-wire Dual SPI, and 6-wire Quad SPI physical interfaces. Both have WP# (Write Protect) and HOLD# (or RESET on JV) pins with the same logic polarity.

One hardware detail to verify: The W25Q128JV has a dedicated /RESET pin when the HOLD/RST bit in the Status Register is configured accordingly, while the MX25L12835F uses the HOLD# pin for hold only (no hardware reset pin). If your design uses the hardware reset function of the Winbond part, verify that the Macronix part's HOLD# pin behavior meets your requirement.


4.0 Performance: Where the Real Differences Are

Both parts run at 133 MHz maximum for standard SPI and Dual SPI reads. However, the Quad mode performance picture is more nuanced.

Winbond W25Q128JV Quad modes:

  • Quad SPI (QSPI/QIO): Uses the standard JEDEC QSPI protocol. QE bit in Status Register-2 enables quad mode. Max frequency: 133 MHz → 532 Mbps effective throughput (133MHz × 4 data lines).
  • QPI mode: All-quad command mode where even the instruction and address phases use 4 I/O lines. Enabled by issuing the Enter QPI (38h) command. Max frequency: 80 MHz in QPI mode.
  • DTR (Double Transfer Rate): W25Q128JV supports DTR on both Dual and Quad reads, latching data on both rising and falling clock edges. This doubles effective bandwidth without increasing clock frequency.

Macronix MX25L12835F Quad modes:

  • MXSMIO (Serial Multi I/O): Macronix's proprietary branding for their Quad I/O implementation. Functionally equivalent to JEDEC Quad SPI — uses the same 6 pins (CLK, CS#, IO0–IO3). Max frequency: 104 MHz in standard variants (some sub-variants reach 133 MHz — verify the specific ordering suffix).
  • QPI equivalent: The MX25L12845E supports DTR high-performance read mode; the MX25L12835F supports standard Quad I/O but with slightly different command sequences.
  • No QPI mode on 12835F: The MX25L12835F does not support Winbond's QPI "all-quad" command mode. If your firmware uses the 38h Enter QPI command and expects QPI mode behavior, it will not work on the MX25L12835F.

Erase performance:

OperationW25Q128JVMX25L12835F
Page program (256B)700 µs typical1.4 ms typical
Sector erase (4KB)45 ms typical60 ms typical
Block erase (64KB)150 ms typical700 ms typical
Chip erase200 s typical80 s typical

The Winbond part has a faster block erase and much faster chip erase. The Macronix part has a faster chip erase. For most applications these differences are irrelevant — erase operations happen infrequently. But if your firmware performs frequent 64KB block erases as part of a wear-leveled storage system, the 4.7× difference in block erase time (150 ms vs 700 ms) can affect real-time performance.


5.0 Software Compatibility: Where Most Swaps Break

This is where engineers get burned. The hardware swap takes five minutes; the software investigation takes hours.

The Quad Enable bit is in a different register.

On Winbond W25Q128: enabling Quad SPI requires setting the QE bit (bit 1) in Status Register-2. Your firmware writes to SR2 using the WRSR2 command (31h) or the two-byte WRSR command (01h followed by two bytes).

On Macronix MX25L12835F: enabling Quad SPI requires setting the QE bit (bit 6) in the Configuration Register. Your firmware writes to the Configuration Register using WRCR (01h + SR1 byte + Config byte).

These are completely different register locations with different write commands. A driver written for Winbond that directly writes to SR2 to enable Quad mode will fail silently on Macronix — the write will go to the wrong register, Quad mode will not be enabled, and reads will time out or return garbage data.

Most popular SPI flash libraries (SPIFlash library for Arduino, ESP-IDF's esp_flash component, STM32's QSPI HAL driver) handle this by detecting the JEDEC manufacturer ID and applying the correct register map. This detection relies on reading the RDID (9Fh) command:

  • Winbond response: EF 40 18 (manufacturer 0xEF, device type 0x40, capacity 0x18 for 128Mbit)
  • Macronix response: C2 20 18 (manufacturer 0xC2, device type 0x20, capacity 0x18 for 128Mbit)

If your firmware hardcodes the expected JEDEC ID value instead of using a lookup table, it will fail the identification check and refuse to initialize the Macronix part. This is the most common cause of "the substitute part doesn't work at all" reports.


6.0 ⚠️ Five Differences That Will Break Your Design If You Ignore Them

Pitfall 1: Hardcoded JEDEC ID check in firmware The most common failure mode. A firmware initialization function reads the JEDEC manufacturer ID and compares it against an expected value of 0xEF (Winbond). The Macronix part returns 0xC2, the check fails, and the driver returns an error — often silently, leaving the application with no storage and no obvious error message. Fix: update your flash driver to use a manufacturer lookup table that includes both 0xEF (Winbond) and 0xC2 (Macronix) with the appropriate register map for each.

Pitfall 2: Quad Enable bit location mismatch breaks QSPI As described in Section 5: Winbond's QE bit is in Status Register-2; Macronix's QE bit is in the Configuration Register. Any driver that writes QE without checking the manufacturer ID first will misconfigure the replacement part. Symptom: firmware initializes without errors, standard SPI reads work fine, but switching to Quad SPI mode causes read failures or bus hangs. Fix: manufacturer-conditional QE enable logic in the driver.

Pitfall 3: QPI mode commands are not supported on MX25L12835F Winbond's QPI mode (entered via command 38h, exited via FFh) puts the device into an all-quad command mode for maximum throughput. The MX25L12835F does not have an equivalent QPI mode. If your firmware issues the Enter QPI (38h) command to the Macronix part, the device will interpret it as an undefined command, ignore it, and remain in standard SPI mode — causing all subsequent QPI-format commands to produce garbage. Symptom: intermittent data corruption after initialization completes. Fix: never issue QPI mode commands unless the manufacturer ID confirms Winbond silicon.

Pitfall 4: Block erase time differences can violate real-time deadlines The W25Q128JV typical 64KB block erase is 150 ms. The MX25L12835F typical 64KB block erase is 700 ms — 4.7× longer. If your firmware has a watchdog timer set to 500 ms or a real-time task that must complete within 300 ms, this difference will cause watchdog resets or task deadline violations after the component swap. The failure is timing-dependent and may not appear in all usage patterns, making it difficult to diagnose. Fix: use the maximum erase time from the datasheet (not typical) when sizing watchdog timeouts, and ensure the flash driver runs erase operations asynchronously with status polling.

Pitfall 5: Security register capacity and OTP behavior differ The W25Q128JV has three 256-byte security registers (OTP areas) that can be individually locked. The MX25L12835F has a different OTP architecture with smaller per-register capacity. If your application stores a device certificate, a unique device key, or a manufacturer-locked serial number in the Winbond security registers and then tries to replicate this on Macronix, the available OTP space and the lock/read commands differ. Fix: do not use manufacturer-specific OTP features in production if you need interchangeability. Store device identity information in a designated area of the main flash array with application-layer protection instead.


7.0 When to Choose W25Q128, When to Choose MX25L128

Choose W25Q128JV (Winbond) when:

  • Your firmware uses QPI mode (38h command) for maximum throughput — Macronix does not support this
  • You use the W25Q128's security registers for OTP device identity storage and need the 3× 256-byte layout
  • Your driver relies on Winbond-specific status register layout without manufacturer detection
  • You need the W25Q128JV-DTR automotive AEC-Q100 variant specifically, or the wider ecosystem of Winbond-compatible SPI flash libraries
  • Supply is constrained and you are sourcing the original W25Q128FV already validated in your design

Choose MX25L12835F (Macronix) when:

  • W25Q128 is on allocation and you need a production alternative — provided you have updated the driver's manufacturer detection
  • Your application runs at 104 MHz Quad SPI or below — the Macronix part performs identically at these frequencies
  • You need the faster chip erase time (80 s vs 200 s) for factory programming throughput
  • Your BOM already includes other Macronix parts and supply consolidation simplifies procurement
  • Your driver already uses the JEDEC SFDP (Serial Flash Discoverable Parameters) protocol, which both parts support and which abstracts all manufacturer differences automatically

When NOT to substitute either one for the other without firmware changes:

  • Any design using QPI mode commands (38h/FFh)
  • Any firmware with hardcoded JEDEC ID validation
  • Any application using security registers for OTP key storage
  • Any system with watchdog timers or real-time constraints tuned to Winbond-specific erase timing

8.0 Sourcing, Pricing, and Authenticity

Both the W25Q128 and MX25L12835F are high-volume parts with generally good availability through authorized distributors. Typical pricing is $0.80–$1.50 per unit at 1,000-piece quantities, with MX25L12835F typically priced slightly below W25Q128JV in most market conditions.

Authorized distributors: DigiKey, Mouser, Arrow, Avnet, and LCSC all stock both families from their respective manufacturers. At these channels you can verify the manufacturer (Winbond or Macronix), date code, and country of origin.

Counterfeit risk: Both Winbond and Macronix 128Mbit parts are frequently counterfeited in the secondary market — typically as lower-capacity devices (64Mbit or 32Mbit) with remarked package markings. The most reliable field verification is reading the JEDEC ID (RDID command 9Fh) and comparing the response against the expected manufacturer/device/capacity bytes. A remarked 64Mbit device will return a capacity byte of 0x17 instead of 0x18.

For verified authentic Winbond W25Q128 and Macronix MX25L12835F inventory with full traceability and competitive pricing, visit aichiplink.com.

9.0 Quick Reference Card

Can I swap them without touching my firmware?

ConditionSafe Swap?
Standard SPI reads/writes only✅ Yes
Dual SPI reads only✅ Yes
Quad SPI with JEDEC SFDP detection✅ Yes
Quad SPI with manufacturer-conditional QE code✅ Yes
Quad SPI with hardcoded QE register write❌ No — update QE enable code
QPI mode (38h command) used❌ No — QPI not supported on MX25L12835F
Firmware checks JEDEC ID❌ No — add MX ID (0xC2) to lookup table
Security registers used for OTP❌ No — register layout differs
Watchdog < 3.5 s during erase⚠️ Verify — MX max block erase = 3.5 s

JEDEC IDs:

ManufacturerRDID Response (9Fh command)
Winbond W25Q128JVEF 40 18
Winbond W25Q128FVEF 40 18
Macronix MX25L12835FC2 20 18
Macronix MX25L12845EC2 26 18
Macronix MX25L12805DC2 20 18

Erase Timing Quick Reference:

OperationW25Q128JV (typical/max)MX25L12835F (typical/max)
Page program (256B)0.7 ms / 3 ms1.4 ms / 5 ms
Sector erase (4KB)45 ms / 400 ms60 ms / 300 ms
Block erase (64KB)150 ms / 800 ms700 ms / 3,500 ms
Chip erase200 s / 400 s80 s / 200 s

For sourcing W25Q128JV, W25Q128FV, MX25L12835F, and MX25L12845E with verified authenticity and competitive pricing, visit aichiplink.com.

Search MX25L128 Stock Now

 

 

 

 


 

AiCHiPLiNK Logo

Written by Jack Elliott from AIChipLink.

 

AIChipLink, one of the fastest-growing global independent electronic   components distributors in the world, offers millions of products from thousands of manufacturers, and many of our in-stock parts is available to ship same day.

 

We mainly source and distribute integrated circuit (IC) products of brands such as BroadcomMicrochipTexas Instruments, InfineonNXPAnalog DevicesQualcommIntel, etc., which are widely used in communication & network, telecom, industrial control, new energy and automotive electronics. 

 

Empowered by AI, Linked to the Future. Get started on AIChipLink.com and submit your RFQ online today! 

 

 

Frequently Asked Questions

Why do Quad SPI reads return 0xFF after swapping W25Q128 with MX25L12835F?

The QE (Quad Enable) bit is set differently—your driver used a Winbond-specific command, so on Macronix the QE bit remains 0, causing the data lines to float and return 0xFF; fix by enabling QE using the correct manufacturer-specific register sequence.

Why does my ESP32 project hang during flash writes after switching to MX25L12835F?

The MX25L12835F has longer erase times (up to 3.5s) than Winbond, causing timeout issues in ESP-IDF—adjust flash timeout settings to match the slower erase timing.

Can I design one PCB and firmware for both W25Q128 and MX25L12835F?

Yes—use a shared footprint and detect the JEDEC ID at startup, then apply manufacturer-specific initialization (especially QE handling) so one firmware works for both.

Are Winbond and Macronix 100K P/E cycle ratings equivalent in practice?

Yes—in real-world use their endurance is comparable, and for most applications the difference is negligible unless you approach extreme write-cycle limits.

Can MX25L12845E replace W25Q128JV-DTR in BIOS chips?

Hardware-wise yes, but BIOS firmware often depends on manufacturer-specific behavior, so substitution may require firmware modification or full flash cloning.