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:

  • LQFP64 (PS2251-03-Q) - dual channel version
  • LQFP48 (PS2251-03-V) - single channel version

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