Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use W25Q128JV: Examples, Pinouts, and Specs

Image of W25Q128JV
Cirkit Designer LogoDesign with W25Q128JV in Cirkit Designer

Introduction

The W25Q128JV is a 128Mb (16MB) serial NOR flash memory chip manufactured by Winbond. It is designed for high-performance applications requiring reliable and fast data storage. The chip operates using a Serial Peripheral Interface (SPI) and supports a wide range of features, including fast read speeds, low power consumption, and advanced security options. Its compact design and robust performance make it ideal for embedded systems, IoT devices, consumer electronics, and industrial applications.

Explore Projects Built with W25Q128JV

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
I2C-Controlled OLED Display with External EEPROM and Interactive Pushbuttons
Image of godmode: A project utilizing W25Q128JV in a practical application
This is a microcontroller-based interactive device featuring a Wemos D1 Mini, an OLED display, external EEPROM, and an I/O expander. It includes user input buttons and status LEDs, with potential MIDI interface capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
RTL8720DN-Based Interactive Button-Controlled TFT Display
Image of coba-coba: A project utilizing W25Q128JV in a practical application
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer
Sound-Activated LED Lighting with ESP32 and INMP441 Microphone
Image of WS2815 v3: A project utilizing W25Q128JV in a practical application
This circuit features an ESP32 microcontroller interfacing with an INMP441 microphone module and controlling a WS2815 LED strip, with signal conditioning provided by an SN74AHC14 hex inverter. It includes a 12V power supply with a 5A fuse for protection and uses a ceramic capacitor for voltage regulation.
Cirkit Designer LogoOpen Project in Cirkit Designer
STM32F103C8T6-Based Spectral Sensor with ST7735S Display and Pushbutton Control
Image of ColorSensor: A project utilizing W25Q128JV in a practical application
This circuit features an STM32F103C8T6 microcontroller interfaced with a China ST7735S 160x128 display and two spectral sensors (Adafruit AS7262 and AS7261). It also includes two pushbuttons for user input, with the microcontroller managing the display and sensor data processing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with W25Q128JV

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of godmode: A project utilizing W25Q128JV in a practical application
I2C-Controlled OLED Display with External EEPROM and Interactive Pushbuttons
This is a microcontroller-based interactive device featuring a Wemos D1 Mini, an OLED display, external EEPROM, and an I/O expander. It includes user input buttons and status LEDs, with potential MIDI interface capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of coba-coba: A project utilizing W25Q128JV in a practical application
RTL8720DN-Based Interactive Button-Controlled TFT Display
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of WS2815 v3: A project utilizing W25Q128JV in a practical application
Sound-Activated LED Lighting with ESP32 and INMP441 Microphone
This circuit features an ESP32 microcontroller interfacing with an INMP441 microphone module and controlling a WS2815 LED strip, with signal conditioning provided by an SN74AHC14 hex inverter. It includes a 12V power supply with a 5A fuse for protection and uses a ceramic capacitor for voltage regulation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ColorSensor: A project utilizing W25Q128JV in a practical application
STM32F103C8T6-Based Spectral Sensor with ST7735S Display and Pushbutton Control
This circuit features an STM32F103C8T6 microcontroller interfaced with a China ST7735S 160x128 display and two spectral sensors (Adafruit AS7262 and AS7261). It also includes two pushbuttons for user input, with the microcontroller managing the display and sensor data processing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Firmware storage in embedded systems
  • Data logging in IoT devices
  • Boot memory for microcontrollers
  • Storage for configuration data in consumer electronics
  • Industrial control systems requiring non-volatile memory

Technical Specifications

Key Technical Details

Parameter Value
Memory Density 128Mb (16MB)
Interface SPI (Serial Peripheral Interface)
Operating Voltage 2.7V to 3.6V
Maximum Clock Frequency 133 MHz
Page Size 256 bytes
Sector Size 4KB
Block Size 32KB or 64KB
Erase Cycles 100,000 cycles (typical)
Data Retention 20 years
Operating Temperature -40°C to +85°C
Package Options SOP-8, WSON-8, USON-8, etc.

Pin Configuration and Descriptions

The W25Q128JV is typically available in an 8-pin package. Below is the pinout and description:

Pin No. Pin Name Description
1 CS# Chip Select (active low). Enables communication with the chip.
2 DO (MISO) Data Output (Master In Slave Out). Transfers data from the chip to the host.
3 WP# Write Protect (active low). Protects specific memory regions from writing.
4 GND Ground. Connect to system ground.
5 DI (MOSI) Data Input (Master Out Slave In). Transfers data from the host to the chip.
6 CLK Clock. Synchronizes data transfer between the host and the chip.
7 HOLD# Hold (active low). Pauses communication without deselecting the chip.
8 VCC Power Supply. Connect to a 2.7V to 3.6V power source.

Usage Instructions

How to Use the W25Q128JV in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V power source and the GND pin to ground.
  2. SPI Interface: Connect the SPI pins (CS#, CLK, DI, DO) to the corresponding SPI pins on your microcontroller or host device.
  3. Write Protect and Hold: If not used, connect WP# and HOLD# to VCC through a pull-up resistor.
  4. Initialization: Configure the SPI interface on your microcontroller to match the W25Q128JV's SPI mode (Mode 0 or Mode 3).
  5. Commands: Use SPI commands to read, write, erase, or configure the memory. Refer to the datasheet for a complete list of commands.

Important Considerations and Best Practices

  • Voltage Levels: Ensure the operating voltage is within the specified range (2.7V to 3.6V).
  • Decoupling Capacitor: Place a 0.1µF decoupling capacitor close to the VCC pin to stabilize the power supply.
  • Erase Before Write: Always erase a memory sector or block before writing new data to it.
  • Avoid Excessive Erase Cycles: Minimize unnecessary erase/write cycles to extend the chip's lifespan.
  • SPI Speed: Use an appropriate SPI clock frequency (up to 133 MHz) based on your application requirements.

Example: Interfacing W25Q128JV with Arduino UNO

Below is an example of how to interface the W25Q128JV with an Arduino UNO using the SPI library:

#include <SPI.h>

// Pin definitions for the W25Q128JV
#define CS_PIN 10  // Chip Select pin connected to Arduino pin 10

void setup() {
  // Initialize Serial Monitor
  Serial.begin(9600);
  
  // Initialize SPI
  SPI.begin();
  pinMode(CS_PIN, OUTPUT);
  digitalWrite(CS_PIN, HIGH); // Deselect the chip
  
  Serial.println("W25Q128JV Initialization Complete");
}

void loop() {
  // Example: Read Manufacturer ID
  digitalWrite(CS_PIN, LOW); // Select the chip
  SPI.transfer(0x90);        // Command to read Manufacturer ID
  SPI.transfer(0x00);        // Dummy byte 1
  SPI.transfer(0x00);        // Dummy byte 2
  SPI.transfer(0x00);        // Dummy byte 3
  byte manufacturerID = SPI.transfer(0x00); // Read Manufacturer ID
  digitalWrite(CS_PIN, HIGH); // Deselect the chip
  
  // Print Manufacturer ID
  Serial.print("Manufacturer ID: 0x");
  Serial.println(manufacturerID, HEX);
  
  delay(1000); // Wait for 1 second
}

Notes:

  • Ensure the CS_PIN is correctly connected to the Arduino's SPI Chip Select pin.
  • Use a logic level shifter if your microcontroller operates at 5V logic levels.

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Response from the Chip

    • Ensure the CS# pin is correctly toggled (active low) during communication.
    • Verify the SPI clock frequency and mode settings on the microcontroller.
  2. Data Corruption

    • Check for proper power supply decoupling.
    • Ensure sectors are erased before writing new data.
  3. Write Operations Failing

    • Verify that the WP# pin is not active (low). If unused, connect it to VCC.
    • Ensure the Write Enable (WREN) command is sent before attempting a write operation.
  4. Device Not Recognized

    • Confirm the SPI connections (CS#, CLK, DI, DO) are correct.
    • Check for loose or faulty wiring.

FAQs

Q: Can the W25Q128JV operate at 5V?
A: No, the W25Q128JV operates within a voltage range of 2.7V to 3.6V. Use a voltage regulator or level shifter if your system operates at 5V.

Q: How do I protect specific memory regions from being overwritten?
A: Use the Write Protect (WP#) pin and the Status Register to configure memory protection settings.

Q: What is the maximum data transfer rate?
A: The W25Q128JV supports a maximum clock frequency of 133 MHz, enabling high-speed data transfers.

Q: How do I erase the entire chip?
A: Use the Chip Erase command (0xC7 or 0x60) to erase all memory contents. Note that this operation can take several seconds.

Q: Can I use the W25Q128JV with a 1.8V system?
A: No, the W25Q128JV requires a minimum operating voltage of 2.7V. Use a level shifter or choose a compatible 1.8V flash memory chip.