PS2303 - flowswitch/phison GitHub Wiki
Phison PS2303 (PS2251-03)
PS2303 is a low cost USB3.0 NAND controller used in many modern USB flash drives. Description at Phison's site.
Two packages available:
Chip architecture
PS2303 consists of:
- 8051-compatible 250MHz (yes, 250 !) core with 256 bytes of IRAM (DesignWare DW8051 ?), two timers
- 256KiB (?) RAM used for code/data/USB buffers/NAND buffers
- USB 3.0 function core (Synopsys ?)
- Two NAND flash interface cores
- NAND data processor (ECC, descrambler)
- DMA core (moves data between RAM/NAND/USB at high speed)
Memory map
- CODE 0000-7FFF(?) - program RAM, mapped to PA (physical address) 0 of RAM. Size can be changed ?
- XDATA 0000-EFFF - data RAM, consists of several independently mapped areas
- XDATA F000-F3FF - USB 3.0 function core
- XDATA F400-F4FF - NFC0 (NAND flash channel 0)
- XDATA F500-F5FF - NFC1 (NAND flash channel 1)
- XDATA F600-F6FF - NDP (NAND data processor)
- XDATA F700-F7FF - NFC0/1 interleaved port
- XDATA F800-F8FF - ?
- XDATA F900-F9FF - DMA
- XDATA FA00-FAFF - SYSTEM (RAM mapping, clocks, GPIO, ...)
- XDATA FB00-FBFF - ?
- XDATA FC00-FCFF - ?
- XDATA FD00-FDFF - ?
- XDATA FE00-FEFF - ?
- XDATA FF00-FFFF - ?
Interrupts
- INT0 - USB control interrupt (bus states, EP0 requests)
- INT1 - Timer 0 overflow interrupt (standard 8051 feature)
- INT2 - USB endpoints interrupt (bulk data available)
- INT3 - Timer 1 overflow interrupt (standard 8051 feature)
USB flash drives based on PS2303:
- Patriot SuperSonic Xpress USB 3.0 - full LQFP64 version for 10EUR price (8GB model)
- Kingston DataTraveller 111 - LQFP48 version
- many others