Documentation
 ALTERA datasheet 
 XILINX datasheet 
 LATTICE datasheet 
 ASIC datasheet 
FPGA Kit available - PCB board Development Tools
MS_Platform

USB 2.0 Mass Storage Devices Design Platform


The USB 2.0 Mass Storage Design Platform is a complete, integrated solution dedicated to use in wide range of USB based Mass Storage Devices like portable flash memory device, digital audio player, card reader or digital camera.

The complete HID Design Platform includes:
  • DUSB2 peripheral controller designed to support 12 Mb/s "Full Speed" (FS) and 480 Mb/s "High Speed" (HS) serial data transmission rates
  • DP8051XP ultra high performance, speed optimized, fully customizable 8051 8-bit microcontroller with built in DoCDTM debug IP core
  • Mass Storage Devices software stack optimized for DP8051XP 8-bit CPU
  • FPGA board with ready to use, preprogrammed example flash memory device application
  • HAD2 – DoCDTM Hardware Assisted Debugger board
  • DoCDTM Debug Software
  • DoCDTM driver for Keil development software
  • DoCDTM driver for IAR development software



Key Features

Applications

  • Full compliance with the USB 2.0 specification
  • Full-speed 12 Mbps operation
  • High-speed 480 Mbps operation
  • Supports UTMI Transceiver Macrocell Interface
  • Synchronous RAM interface for FIFOs
  • Suspend and resume power management functions
  • 100% software compatible with industry standard 8051
  • Up to 256 bytes of internal (on-chip) Data Memory
  • Up to 64K bytes of internal (on-chip) or external (off-chip) Program Memory
  • Up to 16M bytes of external (off-chip) Data Memory
  • User programmable Program Memory Wait States solution for wide range of memories speed
  • User programmable External Data Memory Wait States solution for wide range of memories speed
  • Allows operation from a wide range of CPU clock frequencies
  • Fully synthesizable
  • Static synchronous design
  • Positive edge clocking
  • No internal tri-states
  • Lite design, small gate count and fast operation
  • Scan test ready
  • Portable flash memory device
  • Digital audio player
  • Card reader
  • Digital camera


Symbol

 clkcpu
 prgromdata (7:0)
 prgramdata (7:0)
 ramdatai (7:0)
 sfrdatai (7:0)
 xdatai (7:0)
 sxdmdatai (7:0)
 int0
 int1
 t0
 t0
 t1
 gate1
prgaddr (15:0) 
prgdatao (7:0) 
prgramwr 
ramaddr (7:0) 
ramdatao (7:0) 
ramwe 
ramoe 
sfraddr (6:0) 
sfrdatao (7:0) 
sfrwe 
sfroe 
xaddr (23:0) 
xdatao (7:0) 
xdataz 
xprgrd 
xprgwr 
xdatard 
xdatawr 
sxdmaddr (15:0) 
sxdmdatao (7:0) 
sxdmoe 
sxdmwe 
 utmiclk
 utmilinestate (1:0)
 utmidatai (7:0)
 utmirxvalid
 utmirxactive
 usbrxerror
 utmitxready
utmiopmode (1:0) 
utmidatao (7:0) 
utmitxvalid 
utmisuspendm 
utmixcvrselect 
utmitermselect 
 sramdatai (7:0)
 sramdataib (7:0)
sramaddra (13:0) 
sramaddrb (13:0) 
sramdataoa (7:0) 
sramdataob (7:0) 
sramwea 
sramweb 

Pins description

PinTypeDescription
clkcpuinputCPU clock
prgromdata (7:0)inputData bus from internal ROM program memory
prgramdata (7:0)inputData bus from internal RAM program memory
ramdatai (7:0)inputData bus from internal data memory
sfrdatai (7:0)inputData bus from user SFR’s
xdatai (7:0)inputData bus from external memories
sxdmdatai (7:0)inputData bus from synchronous external data memory (SXDM)
int0inputExternal interrupt 0
int1inputExternal interrupt 1
t0inputTimer 0 input
t0inputTimer 0 gate input
t1inputTimer 1 input
gate1inputTimer 1 gate input
utmiclkinputUSB clock
utmilinestate (1:0)inputUSB line state
utmidatai (7:0)inputUSB parallel data input bus
utmirxvalidinputUSB receive valid
utmirxactiveinputUSB receive active
usbrxerrorinputUSB receive error
utmitxreadyinputUSB transmit ready
sramdatai (7:0)inputSRAM port A data input bus
sramdataib (7:0)inputSRAM port B data input bus
prgaddr (15:0)outputInternal program memory address bus
prgdatao (7:0)outputData bus for internal program memory
prgramwroutputInternal program memory write
ramaddr (7:0)outputInternal Data Memory address bus
ramdatao (7:0)outputData bus for internal data memory
ramweoutputInternal data memory write enable
ramoeoutputInternal data memory output enable
sfraddr (6:0)outputAddress bus for user SFR’s
sfrdatao (7:0)outputData bus for user SFR’s
sfrweoutputUser SFR’s write enable
sfroeoutputUser SFR’s output enable
xaddr (23:0)outputAddress bus for external memories
xdatao (7:0)outputData bus for external memories
xdatazoutputTurn xdata bus into ‘Z’ state
xprgrdoutputExternal program memory read
xprgwroutputExternal program memory write
xdatardoutputExternal data memory read
xdatawroutputExternal data memory write
sxdmaddr (15:0)outputAddress bus for synchronous external data memory (SXDM)
sxdmdatao (7:0)outputData bus for synchronous external data memory (SXDM)
sxdmoeoutputSynchronous external data memory (SXDM) output enable
sxdmweoutputSynchronous external data memory (SXDM) write enable
utmiopmode (1:0)outputUSB operational mode
utmidatao (7:0)outputUSB parallel data output bus
utmitxvalidoutputUSB transmit valid
utmisuspendmoutputUSB suspend
utmixcvrselectoutputUSB transceiver select
utmitermselectoutputUSB termination select
sramaddra (13:0)outputSRAM port A address bus
sramaddrb (13:0)outputSRAM port B address bus
sramdataoa (7:0)outputSRAM port A data output bus
sramdataob (7:0)outputSRAM port B data output bus
sramweaoutputSRAM port A write enable
sramweboutputSRAM port B write enable

Block diagram

DP8051XP CPU
clkcpu
prgromdata (7:0)
prgramdata (7:0)
ramdatai (7:0)
sfrdatai (7:0)
xdatai (7:0)
sxdmdatai (7:0)
int0
int1
t0
t0
t1
gate1
prgaddr (15:0)
prgdatao (7:0)
prgramwr
ramaddr (7:0)
ramdatao (7:0)
ramwe
ramoe
sfraddr (6:0)
sfrdatao (7:0)
sfrwe
sfroe
xaddr (23:0)
xdatao (7:0)
xdataz
xprgrd
xprgwr
xdatard
xdatawr
sxdmaddr (15:0)
sxdmdatao (7:0)
sxdmoe
sxdmwe
CPU interface
UTMI interface
utmiclk
utmilinestate (1:0)
utmidatai (7:0)
utmirxvalid
utmirxactive
usbrxerror
utmitxready
utmiopmode (1:0)
utmidatao (7:0)
utmitxvalid
utmisuspendm
utmixcvrselect
utmitermselect
SRAM interface
sramdatai (7:0)
sramdataib (7:0)
sramaddra (13:0)
sramaddrb (13:0)
sramdataoa (7:0)
sramdataob (7:0)
sramwea
sramweb
EP0
EP1
EP2

Units

DP8051XP CPU

Ultra high performance, speed optimized 8-bit embedded controller, 100% software compatible with industry standard 8051.

CPU interface

The CPU interface module is clocked by cpuclk clock and manages communication with DP8051XP CPU. In this module are located DUSB2 core configuration and status registers.

UTMI interface

The UTMI interface is clocked by utmiclk clock and manages communication with USB 2.0 Transceiver Macrocell. It is responsible for reset detection, speed handshake, token, data and handshake packet reception and transmission.

SRAM interface

The SRAM interface module manages communication with Synchronous Random Access Memory. It generates address, read and write signals for the SRAM memory and buffers data bytes during the FIFO read and write operations.

EP0

Special bidirectional endpoint used for device configuration. Allows generic USB control and status access.

EP1

Unidirectional, configurable data endpoint used for application specific data transmission. Supports INTERRUPT, BULK and ISOCHRONOUS transfers.

EP2

Unidirectional, configurable data endpoint used for application specific data transmission. Supports INTERRUPT, BULK and ISOCHRONOUS transfers.

Performance


Each core has been tested in variety of FPGA and ASIC technologies. Its implementation's results are summarized below.

ImplementationSpeed
grade
Utilized Area
[LC]
Frequency
[MHz]
cpuclk/utmiclk
CYCLONE-II-6469060/>100
CYCLONE-III-6469070/>100
STRATIX-II-33220100/>100
STRATIX-III-23220110/>100
Arria GX-6322080/>100

Implementation results of the USB 2.0 Mass Storage Devices Design Platform in ALTERA devices.

ImplementationSpeed
grade
Utilized Area
[Slices]
Frequency
[MHz]
cpuclk/utmiclk
SPARTAN-III-5279050/>100
SPARTAN-IIIE-5279060/>100
VIRTEX-4-12279075/>100
VIRTEX-5-3146090/>100

Implementation results of the USB 2.0 Mass Storage Devices Design Platform in XILINX devices.

ImplementationSpeed
grade
Utilized Area
[Slices]
Frequency
[MHz]
cpuclk/utmiclk
SC-72470100/>100
ECP2-7268080/>100
ECP2M-7268070/>100
XP2-7299060/>100

Implementation results of the USB 2.0 Mass Storage Devices Design Platform in LATTICE devices.