Update Time:2026-04-03

EN25QH128 Datasheet, Pinout & Compatibility Guide 2026

EN25QH128 128Mbit SPI Flash: Complete specs, pinout diagram, W25Q128 compatibility, alternatives, design guide. Download datasheet. Programming examples included.

Network & Communication

EN25QH128

Quick Specs Summary

EN25QH128 = 128Mbit (16MB) SPI NOR Flash memory chip manufactured by EON Silicon Solution.

At-a-Glance:

SpecificationValue
Capacity128Mbit (16,777,216 bytes)
InterfaceSPI, Dual SPI, Quad SPI
Speed133 MHz (Quad SPI max)
Voltage2.7V - 3.6V
PackageSOIC-8 (208mil), WSON-8
Temp Range-40°C to +85°C (industrial)
ManufacturerEON Silicon Solution (Taiwan)
Similar ToW25Q128, GD25Q128

Quick use cases: Firmware storage, BIOS chips, embedded systems, IoT devices, router/modem firmware.


Key Features & Applications

Main Features

Large Capacity: 16MB storage (enough for complex firmware) ✅ Fast SPI: 133 MHz Quad SPI (50+ MB/s read speed) ✅ Wide Voltage: 2.7-3.6V (compatible with 3.3V systems) ✅ Low Power: <1µA deep power-down, 15mA active ✅ High Reliability: 100,000 program/erase cycles, 20-year retention ✅ Pin-Compatible: Drop-in replacement for W25Q128/GD25Q128

Target Applications

1. Embedded Firmware Storage

  • Microcontroller external program storage
  • ESP32/ESP8266 firmware
  • Arduino projects requiring large storage

2. BIOS/UEFI Flash

  • Motherboard BIOS chips
  • Embedded computer BIOS
  • Industrial PC firmware

3. Networking Equipment

  • Router firmware
  • Switch boot code
  • Modem configuration storage

4. IoT Devices

  • Smart home controllers
  • Sensor data logging
  • OTA (Over-The-Air) firmware update staging

5. Consumer Electronics

  • Set-top boxes
  • IP cameras
  • Smart displays

Detailed Technical Specifications

Memory Organization

Total Capacity: 128Mbit = 16,777,216 bytes = 16MB

Organization:
├─ 65,536 programmable pages × 256 bytes/page
├─ 2,048 erasable sectors × 4KB/sector  
└─ 256 erasable blocks × 64KB/block

Address Space: 0x000000 to 0xFFFFFF (24-bit addressing)

Bank Structure:
├─ 16 banks × 4 groups = 64 banks total
└─ Page buffer: 256 bytes

Performance Specifications

Read Performance:

ModeClock SpeedThroughput
Standard SPI104 MHz max~13 MB/s
Dual SPI104 MHz max~22 MB/s
Quad SPI133 MHz max~50 MB/s

Write Performance:

OperationTypicalMaximum
Page Program (256B)0.8 ms3 ms
Sector Erase (4KB)45 ms200 ms
Block Erase (32KB)120 ms800 ms
Block Erase (64KB)150 ms1000 ms
Chip Erase (16MB)30 sec100 sec

Endurance & Retention:

  • Program/Erase Cycles: 100,000 typical
  • Data Retention: 20 years @ 85°C, 100 years @ 25°C

Electrical Characteristics

Supply Voltage:

  • Operating Range: 2.7V - 3.6V
  • Recommended: 3.0V - 3.3V (most common)

Current Consumption:

ModeConditionCurrent
Active Read50 MHz SPI15 mA typ, 25 mA max
Active WritePage program20 mA typ, 30 mA max
Standby/CS high10 µA typ, 20 µA max
Deep Power-DownLow-power sleep1 µA typ, 3 µA max

Temperature Range:

  • Industrial: -40°C to +85°C
  • Extended (EN25QH128A-104HIP): -40°C to +105°C

Pinout Diagram & Pin Functions

SOIC-8 / WSON-8 Pinout

        EN25QH128
    ┌───────────────┐
/CS │1  ●        8│ VCC (2.7-3.6V)
DO  │2           7│ /HOLD (or /RESET)
/WP │3           6│ CLK (SPI Clock)
GND │4           5│ DI (Data In)
    └───────────────┘
         SOIC-8

Note: Pin 1 marked with dot (●)

Pin Functions (Standard SPI Mode)

Pin #NameTypeFunction
1/CSInputChip Select (active low) - enables device
2DO (IO1)Output/IOData Output in SPI mode / IO1 in Dual/Quad
3/WP (IO2)Input/IOWrite Protect (active low) / IO2 in Quad mode
4GNDPowerGround (0V)
5DI (IO0)Input/IOData Input in SPI mode / IO0 in Dual/Quad
6CLKInputSPI Clock input (max 133 MHz)
7/HOLD (IO3)Input/IOHold/Pause transfers (active low) / IO3 in Quad
8VCCPowerPower supply (2.7-3.6V)

Pin Functions in Different SPI Modes

Standard SPI (Single I/O):

  • DI (pin 5): Data input only
  • DO (pin 2): Data output only
  • /WP (pin 3): Write protect control
  • /HOLD (pin 7): Pause operation

Dual SPI (2× I/O):

  • IO0 (pin 5): Bidirectional data
  • IO1 (pin 2): Bidirectional data
  • /WP (pin 3): Not used (pull high)
  • /HOLD (pin 7): Not used (pull high)

Quad SPI (4× I/O):

  • IO0 (pin 5): Bidirectional data
  • IO1 (pin 2): Bidirectional data
  • IO2 (pin 3): Bidirectional data
  • IO3 (pin 7): Bidirectional data

Performance Characteristics

Read Speed Comparison (vs Competitors)

Quad SPI Read @ 133 MHz:

EN25QH128: ~50 MB/s (EON)
W25Q128:   ~50 MB/s (Winbond) ✓ Identical
GD25Q128:  ~50 MB/s (GigaDevice) ✓ Identical
MX25L128:  ~45 MB/s (Macronix) ← Slightly slower

Verdict: EN25QH128 matches industry leaders

Erase Speed Comparison

Sector Erase (4KB):

EN25QH128: 45 ms typical ✓ Fast
W25Q128:   45 ms typical ✓ Same
GD25Q128:  50 ms typical ← Slightly slower

Chip Erase (16MB):

EN25QH128: 30 sec typical ✓ Excellent
W25Q128:   30 sec typical ✓ Same
GD25Q128:   40 sec typical ← Slower

Power Consumption Comparison

Active Read (50 MHz):

EN25QH128: 15 mA ✓ Good
W25Q128:   15 mA ✓ Same
GD25Q128:  12 mA ← More efficient

Deep Power-Down:

EN25QH128: 1 µA ✓ Good
W25Q128:   0.1 µA ← Best (10× lower)
GD25Q128:  1 µA ✓ Same as EN25QH128

Verdict: EN25QH128 offers competitive performance matching W25Q128 in most metrics.


Compatibility Analysis

EN25QH128 vs W25Q128 (Pin-Compatible)

Compatibility: ✅ 98% (Excellent)

AspectCompatible?Notes
Pinout✅ YesIdentical SOIC-8/WSON-8
Voltage✅ YesBoth 2.7-3.6V
Speed✅ YesBoth 133 MHz Quad SPI
Capacity✅ YesBoth 128Mbit (16MB)
Commands✅ YesStandard JEDEC SPI commands
Manufacturer ID⚠️ DifferentEN: 0x1C, Winbond: 0xEF
Device ID✅ SameBoth: 0x4018

JEDEC ID Comparison:

EN25QH128: 1C 70 18
  ├─ 1C = EON manufacturer
  ├─ 70 = Memory type
  └─ 18 = 128Mbit capacity

W25Q128: EF 40 18
  ├─ EF = Winbond manufacturer
  ├─ 40 = Memory type
  └─ 18 = 128Mbit capacity

Drop-In Replacement: Yes, if firmware accepts manufacturer ID 0x1C or doesn't check ID.


EN25QH128 vs GD25Q128 (Also Compatible)

Compatibility: ✅ 95% (Excellent)

Both use same pinout, voltage, and capacity. Main difference: Manufacturer ID (EN: 0x1C, GD: 0xC8).


Compatibility Checklist

✅ EN25QH128 works as direct replacement if:

  1. System doesn't check Manufacturer ID
  2. OR firmware updated to accept 0x1C (EON)
  3. PCB has SOIC-8 or WSON-8 footprint
  4. Power supply provides 2.7-3.6V

⚠️ May need firmware update if:

  • System validates Manufacturer ID
  • Only accepts W25Q128 (0xEF) or GD25Q128 (0xC8)

Solution: Update firmware to accept multiple IDs:

if (mfgID == 0xEF || mfgID == 0x1C || mfgID == 0xC8) {
  // Accept Winbond, EON, or GigaDevice
  flashOK = true;
}

Design Guidelines

PCB Layout Recommendations

Trace Routing:

SPI Signal Traces:
├─ Impedance: 50Ω single-ended (CLK, DI, DO)
├─ Length matching: ±5 mm between signals
├─ Keep traces short: <100 mm ideal, <150 mm acceptable
└─ Avoid vias: Route on single layer if possible

Spacing:
├─ Minimum trace-to-trace: 0.2 mm (8 mils)
└─ Ground plane clearance: 0.3 mm (12 mils)

Power Supply Design:

Decoupling Capacitors (Critical!):

Place near EN25QH128 VCC pin (pin 8):
├─ 0.1 µF ceramic (X7R) ← Primary, closest to pin (<5 mm)
├─ 10 µF ceramic (X7R) ← Bulk, within 10 mm
└─ Optional: 47 µF electrolytic for system supply

ESR requirement: <100 mΩ for 0.1µF cap
Voltage rating: 6.3V minimum (10V recommended for 3.3V supply)

Pull-Up Resistors (for unused Quad SPI pins):

If using Standard SPI only:
├─ /WP (pin 3): 10kΩ pull-up to VCC
└─ /HOLD (pin 7): 10kΩ pull-up to VCC

Reason: Prevents floating inputs, reduces noise

Signal Integrity Considerations

Clock Signal (CLK - Pin 6):

  • Most critical signal (affects data integrity)
  • Route as 50Ω controlled impedance
  • Add series termination resistor (22-33Ω) if trace >50mm
  • Avoid crossing other signals

Data Signals (DI, DO, IO2, IO3):

  • Less critical than CLK, but keep short
  • Match lengths within ±5mm of CLK
  • Avoid sharp bends (use 45° or curved traces)

Chip Select (/CS - Pin 1):

  • Can be slower (not clock-synchronized)
  • Standard trace routing sufficient
  • Add 10kΩ pull-up if master SPI may tri-state /CS

Programming Guide

Command Set Overview

Essential Commands:

CommandCodeFunction
Write Enable0x06Enable write/erase operations
Write Disable0x04Disable write/erase
Read Status0x05Read status register
Write Status0x01Write status register
Read Data0x03Standard read (up to 104 MHz)
Fast Read0x0BFast read with dummy byte
Dual Read0x3BDual output fast read
Quad Read0x6BQuad output fast read
Page Program0x02Write up to 256 bytes
Sector Erase0x20Erase 4KB sector
Block Erase 32KB0x52Erase 32KB block
Block Erase 64KB0xD8Erase 64KB block
Chip Erase0xC7 or 0x60Erase entire chip
Read ID0x9FRead JEDEC manufacturer/device ID

Read Operation Example (Arduino)

// Read data from EN25QH128
// Requires SPI library

#include <SPI.h>

#define CS_PIN 10  // Chip select pin

void setup() {
  pinMode(CS_PIN, OUTPUT);
  digitalWrite(CS_PIN, HIGH);  // Deselect initially
  
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV4);  // 4 MHz for Arduino Uno
}

// Read 1 byte from address
uint8_t flashRead(uint32_t address) {
  digitalWrite(CS_PIN, LOW);
  
  SPI.transfer(0x03);  // Read Data command
  SPI.transfer((address >> 16) & 0xFF);  // Address byte 2
  SPI.transfer((address >> 8) & 0xFF);   // Address byte 1
  SPI.transfer(address & 0xFF);          // Address byte 0
  
  uint8_t data = SPI.transfer(0x00);  // Read data
  
  digitalWrite(CS_PIN, HIGH);
  return data;
}

// Read JEDEC ID to verify chip
void readJEDEC() {
  digitalWrite(CS_PIN, LOW);
  
  SPI.transfer(0x9F);  // Read ID command
  uint8_t mfg = SPI.transfer(0x00);   // Should be 0x1C for EON
  uint8_t type = SPI.transfer(0x00);  // Should be 0x70
  uint8_t cap = SPI.transfer(0x00);   // Should be 0x18 for 128Mbit
  
  digitalWrite(CS_PIN, HIGH);
  
  Serial.print("JEDEC ID: ");
  Serial.print(mfg, HEX);
  Serial.print(" ");
  Serial.print(type, HEX);
  Serial.print(" ");
  Serial.println(cap, HEX);
}

Write Operation Example (Page Program)

// Write data to EN25QH128
// Note: Must erase sector first!

void flashWriteEnable() {
  digitalWrite(CS_PIN, LOW);
  SPI.transfer(0x06);  // Write Enable command
  digitalWrite(CS_PIN, HIGH);
  delayMicroseconds(1);
}

void flashPageProgram(uint32_t address, uint8_t* data, uint16_t length) {
  if (length > 256) length = 256;  // Max 256 bytes per page
  
  flashWriteEnable();
  
  digitalWrite(CS_PIN, LOW);
  
  SPI.transfer(0x02);  // Page Program command
  SPI.transfer((address >> 16) & 0xFF);
  SPI.transfer((address >> 8) & 0xFF);
  SPI.transfer(address & 0xFF);
  
  for (uint16_t i = 0; i < length; i++) {
    SPI.transfer(data[i]);
  }
  
  digitalWrite(CS_PIN, HIGH);
  
  // Wait for write to complete (~1-3 ms)
  delay(3);
}

void flashSectorErase(uint32_t address) {
  flashWriteEnable();
  
  digitalWrite(CS_PIN, LOW);
  
  SPI.transfer(0x20);  // Sector Erase (4KB) command
  SPI.transfer((address >> 16) & 0xFF);
  SPI.transfer((address >> 8) & 0xFF);
  SPI.transfer(address & 0xFF);
  
  digitalWrite(CS_PIN, HIGH);
  
  // Wait for erase (~45-200 ms)
  delay(200);
}

Alternative Parts & Cross-Reference

Direct Pin-Compatible Replacements

ManufacturerPart NumberCompatibilitySpeedPowerNotes
WinbondW25Q128JVSIQ✅ 98%SameSimilarIndustry standard
GigaDeviceGD25Q128CSIG✅ 95%SameSlightly betterCost-effective
MacronixMX25L12835F✅ 90%SameSameGood alternative
ISSIIS25LP128⚠️ 85%FasterBetterDifferent power modes

Recommendation: W25Q128 or GD25Q128 as primary alternatives.

Upgrade Options (Higher Capacity)

Part NumberCapacityUpgrade Path
EN25QH256256Mbit (32MB)2× capacity, same pinout
W25Q256256Mbit (32MB)Industry standard 32MB
GD25Q256256Mbit (32MB)Cost-effective 32MB

Note: 256Mbit chips require 4-byte addressing mode (different commands).


Common Issues & Solutions

Issue 1: Chip Not Detected

Symptom: JEDEC ID reads as 0xFF FF FF or 0x00 00 00

Possible Causes:

  1. Power supply not stable (check decoupling caps)
  2. SPI clock too fast (reduce to <10 MHz for testing)
  3. /CS not toggling properly
  4. Bad solder joints

Solution:

  • Check VCC: must be 2.7-3.6V stable
  • Add 0.1µF cap close to VCC pin
  • Verify /CS goes LOW during communication
  • Re-flow solder joints

Issue 2: Data Corruption After Write

Symptom: Written data reads back incorrectly

Possible Causes:

  1. Sector not erased before write
  2. Write enable not sent
  3. Voltage drops during write

Solution:

  • Always erase sector with 0x20 command first
  • Send 0x06 (Write Enable) before every write/erase
  • Ensure stable power supply (check for voltage sags)

Issue 3: Slow Read Speed

Symptom: Read speed <5 MB/s

Possible Causes:

  1. Using Standard SPI Read (0x03) instead of Fast Read (0x0B)
  2. SPI clock too slow
  3. Poor PCB layout (long traces)

Solution:

  • Use Fast Read (0x0B) or Quad Read (0x6B) commands
  • Increase SPI clock to 40-80 MHz (if MCU supports)
  • Optimize PCB: shorter traces, proper impedance

Issue 4: Firmware Rejects EN25QH128

Symptom: System doesn't boot with EN25QH128, works with W25Q128

Cause: Firmware checks Manufacturer ID and only accepts 0xEF (Winbond)

Solution: Update firmware to accept EN25QH128's ID (0x1C):

// Before:
if (mfgID != 0xEF) return ERROR;

// After:
if (mfgID != 0xEF && mfgID != 0x1C) return ERROR;

Datasheet Resources

Official Documentation

📄 EN25QH128 Datasheet (PDF):

  • Search: "EN25QH128 datasheet PDF" on manufacturer website
  • Version: Check for latest revision (Rev. 2.0 or newer)

📊 Application Notes:

  • AN-001: SPI Flash Layout Guide
  • AN-002: Power Supply Design for Serial Flash

Development Tools

🔧 Software Libraries:

  • Arduino SPIFlash Library (compatible with EN25QH128)
  • ESP32 SPI Flash Driver (ESP-IDF)
  • STM32 HAL SPI examples

🛠️ Programming Hardware:

  • CH341A USB Programmer (budget option)
  • SEGGER J-Flash (professional)
  • Dedicated SPI Flash programmers

Cross-Reference Databases

🔍 Part Number Search:

  • Octopart: Component cross-reference
  • FindChips: Availability checker
  • AiChipLink: Technical comparison tool

Conclusion

EN25QH128 is a capable 128Mbit SPI Flash chip offering excellent compatibility with industry-standard parts like W25Q128, making it a viable choice for embedded system firmware storage, BIOS applications, and IoT devices. With 133 MHz Quad SPI support (50+ MB/s read), wide voltage range (2.7-3.6V), and high reliability (100K cycles, 20-year retention), EN25QH128 delivers solid performance for most applications.

Key advantages:

  • ✅ Pin-compatible with W25Q128/GD25Q128
  • ✅ Fast erase performance (30sec chip erase)
  • ✅ Standard JEDEC command set
  • ✅ Wide availability
  • ✅ Competitive specifications

Considerations:

  • ⚠️ Requires firmware update if system validates Manufacturer ID
  • ⚠️ Higher deep power-down current than W25Q128 (1µA vs 0.1µA)

Recommendation: EN25QH128 works excellently as W25Q128/GD25Q128 alternative. Update firmware to accept Manufacturer ID 0x1C for seamless integration.

For technical support, cross-reference guides, and embedded design resources, visit AiChipLink.com.

Search EN25QH128 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

What is EN25QH128?

EN25QH128 is a 128Mbit (16MB) SPI NOR Flash memory chip from EON Silicon Solution. It supports Quad SPI up to 133 MHz, operates at 2.7–3.6V, and is widely used in embedded systems, BIOS storage, and IoT firmware.

Is EN25QH128 compatible with W25Q128?

Yes, they are pin-compatible and largely interchangeable. Both share the same package, command set, and performance. The only key difference is the JEDEC Manufacturer ID (0x1C vs 0xEF), which may require firmware updates.

Can EN25QH128 replace W25Q64?

No, because of different capacity. EN25QH128 is 16MB, while W25Q64 is 8MB. Although pin-compatible, firmware designed for 8MB will not automatically utilize the full 16MB.