# W25Q32RV Serial NOR Flash Memory

## Overview

W25Q32RV는 Winbond에서 제조한 32M-bit (4MB) Serial NOR Flash Memory입니다. Dual/Quad SPI 및 QPI 인터페이스를 지원하며, 제한된 공간, 핀 수, 전력을 가진 시스템에 적합한 저장 솔루션을 제공합니다.

## 주요 사양

| 항목 | 사양 |
|------|------|
| 용량 | 32M-bit (4MB) |
| 동작 전압 | 2.7V ~ 3.6V |
| 최대 클럭 주파수 | 133MHz (SPI/QPI) |
| Program/Erase 사이클 | 최소 100,000회 |
| 데이터 보존 기간 | 20년 이상 |
| 동작 온도 | -40°C ~ +105°C |
| 대기 전류 | 10µA (typ), 28µA (max @85°C) |
| Power-down 전류 | 0.1µA (typ) |

## 메모리 구조

### 메모리 배열

```
총 용량: 4,194,304 bytes (4MB)
├── 64 Blocks (64KB each)
│   └── 16 Sectors per Block (4KB each)
│       └── 16 Pages per Sector (256 bytes each)
└── 총 16,384 Pages
```

| 단위 | 크기 | 개수 | 주소 범위 |
|------|------|------|----------|
| Page | 256 bytes | 16,384 | - |
| Sector | 4KB | 1,024 | 0x000000 - 0x3FFFFF |
| Block (32KB) | 32KB | 128 | - |
| Block (64KB) | 64KB | 64 | - |
| Chip | 4MB | 1 | 0x000000 - 0x3FFFFF |

### 주소 맵핑

```
Block 0  (64KB): 0x000000 - 0x00FFFF
Block 1  (64KB): 0x010000 - 0x01FFFF
...
Block 63 (64KB): 0x3F0000 - 0x3FFFFF
```

## 핀 구성 (8-pin SOP/WSON/XSON/USON)

| Pin | 이름 | I/O | 기능 |
|-----|------|-----|------|
| 1 | /CS | I | Chip Select (Active Low) |
| 2 | DO (IO1) | I/O | Data Output / IO1 |
| 3 | /WP (IO2) | I/O | Write Protect / IO2 |
| 4 | VSS | - | Ground |
| 5 | DI (IO0) | I/O | Data Input / IO0 |
| 6 | CLK | I | Serial Clock |
| 7 | /HOLD or /RESET (IO3) | I/O | Hold/Reset / IO3 |
| 8 | VCC | - | Power Supply |

## SPI 모드

### 지원 모드

1. **Standard SPI**: CLK, /CS, DI, DO, /WP, /HOLD
2. **Dual SPI**: CLK, /CS, IO0, IO1, /WP, /HOLD
3. **Quad SPI**: CLK, /CS, IO0, IO1, IO2, IO3
4. **QPI**: CLK, /CS, IO0, IO1, IO2, IO3 (4-bit 명령어)

### SPI 모드 0/3 지원

- **Mode 0** (CPOL=0, CPHA=0): CLK idle = LOW
- **Mode 3** (CPOL=1, CPHA=1): CLK idle = HIGH

## 주요 명령어 (Instructions)

### Device ID 읽기

| 명령어 | 코드 | 설명 |
|--------|------|------|
| Read JEDEC ID | 9Fh | Manufacturer/Device ID 읽기 |
| Read Manufacturer/Device ID | 90h | MFR ID (EFh) + Device ID (15h) |
| Release Power-down/Device ID | ABh | Power-down 해제 및 ID 읽기 |

**Device ID 값:**
- Manufacturer ID: `0xEF` (Winbond)
- Device ID (8-bit): `0x15`
- Device ID (16-bit): `0x4016`

### 읽기 명령어

| 명령어 | 코드 | 더미 클럭 | 최대 주파수 |
|--------|------|-----------|-------------|
| Read Data | 03h | 0 | 66MHz |
| Fast Read | 0Bh | 8 | 133MHz |
| Fast Read Dual Output | 3Bh | 8 | 133MHz |
| Fast Read Quad Output | 6Bh | 8 | 133MHz |
| Fast Read Dual I/O | BBh | 4 (Mode bits) | 133MHz |
| Fast Read Quad I/O | EBh | 6 (Mode bits + Dummy) | 133MHz |

### 쓰기/프로그램 명령어

| 명령어 | 코드 | 설명 |
|--------|------|------|
| Write Enable | 06h | 쓰기 활성화 (WEL=1) |
| Write Disable | 04h | 쓰기 비활성화 (WEL=0) |
| Page Program | 02h | 페이지 프로그램 (최대 256 bytes) |
| Quad Input Page Program | 32h | Quad 모드 페이지 프로그램 |

### 지우기 명령어

| 명령어 | 코드 | 크기 | 시간 (typ/max) |
|--------|------|------|----------------|
| Sector Erase | 20h | 4KB | 30ms / 240ms |
| Block Erase (32KB) | 52h | 32KB | 80ms / 800ms |
| Block Erase (64KB) | D8h | 64KB | 120ms / 1200ms |
| Chip Erase | C7h/60h | 전체 | 6s / 40s |

### 상태 레지스터 명령어

| 명령어 | 코드 | 설명 |
|--------|------|------|
| Read Status Register-1 | 05h | SR1 읽기 |
| Read Status Register-2 | 35h | SR2 읽기 |
| Read Status Register-3 | 15h | SR3 읽기 |
| Write Status Register-1 | 01h | SR1 쓰기 |
| Write Status Register-2 | 31h | SR2 쓰기 |
| Write Status Register-3 | 11h | SR3 쓰기 |

### 기타 명령어

| 명령어 | 코드 | 설명 |
|--------|------|------|
| Erase/Program Suspend | 75h | Erase/Program 일시 중단 |
| Erase/Program Resume | 7Ah | Erase/Program 재개 |
| Power-down | B9h | 저전력 모드 진입 |
| Enable Reset | 66h | 리셋 활성화 |
| Reset Device | 99h | 디바이스 리셋 |
| Enter QPI Mode | 38h | QPI 모드 진입 |
| Exit QPI Mode | FFh | QPI 모드 종료 |

## 상태 레지스터 (Status Registers)

### Status Register-1 (05h)

| Bit | 이름 | 설명 | R/W |
|-----|------|------|-----|
| S7 | SRP | Status Register Protect | R/W |
| S6 | SEC | Sector Protect | R/W |
| S5 | TB | Top/Bottom Block Protect | R/W |
| S4 | BP2 | Block Protect Bit 2 | R/W |
| S3 | BP1 | Block Protect Bit 1 | R/W |
| S2 | BP0 | Block Protect Bit 0 | R/W |
| S1 | WEL | Write Enable Latch | R |
| S0 | BUSY | Erase/Write In Progress | R |

### Status Register-2 (35h)

| Bit | 이름 | 설명 | R/W |
|-----|------|------|-----|
| S15 | SUS | Suspend Status | R |
| S14 | CMP | Complement Protect | R/W |
| S13 | LB3 | Security Register Lock 3 | OTP |
| S12 | LB2 | Security Register Lock 2 | OTP |
| S11 | LB1 | Security Register Lock 1 | OTP |
| S10 | LB0 | SFDP Lock | OTP |
| S9 | QE | Quad Enable | R/W |
| S8 | SRL | Status Register Lock | R/W |

### Status Register-3 (15h)

| Bit | 이름 | 설명 | R/W |
|-----|------|------|-----|
| S23 | HOLD/RST | /HOLD or /RESET 기능 | R/W |
| S22 | DRV1 | Output Driver Strength 1 | R/W |
| S21 | DRV0 | Output Driver Strength 0 | R/W |
| S20-S16 | Reserved | 예약됨 | - |

### Output Driver Strength 설정

| DRV1 | DRV0 | 출력 임피던스 |
|------|------|--------------|
| 0 | 0 | 25Ω |
| 0 | 1 | 33Ω |
| 1 | 0 | 50Ω (기본값) |
| 1 | 1 | 100Ω |

## 타이밍 특성

### AC 타이밍 파라미터

| 파라미터 | 심볼 | Min | Max | 단위 |
|----------|------|-----|-----|------|
| Clock Frequency (Fast Read) | fR | DC | 133 | MHz |
| Clock Frequency (Read Data) | fR | DC | 66 | MHz |
| /CS Setup Time | tSLCH | 5 | - | ns |
| /CS Hold Time | tCHSL | 5 | - | ns |
| Data In Setup Time | tDVCH | 2 | - | ns |
| Data In Hold Time | tCHDX | 2.5 | - | ns |
| Clock to Output Valid | tCLQV | - | 4.5 | ns |
| Output Disable Time | tSHQZ | - | 7 | ns |
| /CS Deselect Time (Read) | tSHSL1 | 10 | - | ns |
| /CS Deselect Time (Write) | tSHSL2 | 50 | - | ns |

### 프로그램/지우기 타이밍

| 동작 | 심볼 | Typical | Maximum | 단위 |
|------|------|---------|---------|------|
| Page Program | tPP | 0.25 | 2 | ms |
| Sector Erase (4KB) | tSE | 30 | 240 | ms |
| Block Erase (32KB) | tBE1 | 80 | 800 | ms |
| Block Erase (64KB) | tBE2 | 120 | 1200 | ms |
| Chip Erase | tCE | 6 | 40 | s |
| Write Status Register | tW | 1.5 | 15 | ms |

### 전원 타이밍

| 파라미터 | 심볼 | Min | Max | 단위 |
|----------|------|-----|-----|------|
| VCC(min) to /CS Low | tVSL | 20 | - | µs |
| Power-up to Write Allowed | tPUW | 5 | - | ms |
| Power-down Entry Time | tDP | - | 3 | µs |
| Release from Power-down | tRES1 | - | 3 | µs |
| Reset Time | tRST | - | 30 | µs |

## 전기적 특성

### DC 특성

| 파라미터 | 심볼 | Min | Typ | Max | 단위 |
|----------|------|-----|-----|-----|------|
| Input Low Voltage | VIL | -0.5 | - | 0.3×VCC | V |
| Input High Voltage | VIH | 0.7×VCC | - | VCC+0.4 | V |
| Output Low Voltage | VOL | - | - | 0.2 | V |
| Output High Voltage | VOH | VCC-0.2 | - | - | V |
| Standby Current | ICC1 | - | 10 | 28 | µA |
| Power-down Current | ICC2 | - | 0.1 | 8 | µA |
| Read Current (133MHz) | ICC3 | - | 11 | 20 | mA |
| Program Current | ICC5 | - | 8 | 15 | mA |
| Erase Current | ICC6 | - | 8 | 15 | mA |

## 쓰기 보호 (Write Protection)

### Block Protect 비트 조합 (CMP=0)

| SEC | TB | BP2 | BP1 | BP0 | 보호 영역 | 크기 |
|-----|-----|-----|-----|-----|----------|------|
| X | X | 0 | 0 | 0 | None | - |
| 0 | 0 | 0 | 0 | 1 | Upper 1/64 | 64KB |
| 0 | 0 | 0 | 1 | 0 | Upper 1/32 | 128KB |
| 0 | 0 | 0 | 1 | 1 | Upper 1/16 | 256KB |
| 0 | 0 | 1 | 0 | 0 | Upper 1/8 | 512KB |
| 0 | 0 | 1 | 0 | 1 | Upper 1/4 | 1MB |
| 0 | 0 | 1 | 1 | 0 | Upper 1/2 | 2MB |
| X | X | 1 | 1 | 1 | ALL | 4MB |

## Security Registers

W25Q32RV는 3개의 256-byte Security Register를 제공합니다.

| Register | 주소 범위 |
|----------|----------|
| Security Register 1 | 0x001000 - 0x0010FF |
| Security Register 2 | 0x002000 - 0x0020FF |
| Security Register 3 | 0x003000 - 0x0030FF |

### Security Register 명령어

| 명령어 | 코드 | 설명 |
|--------|------|------|
| Erase Security Register | 44h | Security Register 지우기 |
| Program Security Register | 42h | Security Register 프로그램 |
| Read Security Register | 48h | Security Register 읽기 |

## QPI 모드

### QPI 모드 진입/종료

1. **QPI 진입 조건**: QE 비트가 1로 설정되어야 함
2. **진입**: Enter QPI (38h) 명령어 실행
3. **종료**: Exit QPI (FFh) 명령어 실행

### QPI 모드에서의 명령어 전송

- 모든 명령어, 주소, 데이터가 4비트씩 전송됨
- 명령어 전송에 2클럭만 필요 (SPI 모드의 8클럭 대비)

## 소프트웨어 리셋

디바이스를 초기 상태로 리셋하려면 두 명령어를 순차적으로 실행:

1. Enable Reset (66h)
2. Reset Device (99h)

**주의**: 리셋 중 진행 중인 Erase/Program 동작이 있으면 데이터 손상 가능

## 패키지 정보

| 패키지 | 코드 | 크기 |
|--------|------|------|
| SOP 150-mil | CN | 8-pin |
| SOP 208-mil | CS | 8-pin |
| WSON 6x5-mm | CP | 8-pad |
| XSON 2x3-mm | XH | 8-pad |
| USON 4x3-mm | UU | 8-pad |

## 주문 정보

**Part Number 형식**: W25Q32RV[Package][Temp][Option]

예시: `W25Q32RVCNJQ`
- CN: 8-pin SOP 150-mil
- J: Industrial Plus (-40°C ~ +105°C)
- Q: QE=1 (고정)

## 참조 문서

- Winbond W25Q32RV Datasheet (Revision E, November 2025)
- JEDEC JESD216 (SFDP Standard)

---

*문서 작성일: 2026-01-30*
*소스: W25Q32RV Datasheet Rev.E*
