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

USB 2.0 Audio Devices Design Platform


The USB 2.0 Audio Design Platform is a complete, integrated solution dedicated to use in USB based Audio Devices like microphone or speakers.

The complete Audio 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
  • Audio Devices software stack optimized for DP8051XP 8-bit CPU
  • FPGA board with ready to use, preprogrammed example USB stereo speakers 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
  • Microphone
  • Speakers


Symbol

 clkcpu
 prgromdata (7:0)
 prgramdata (7:0)
 ramdatai (7:0)
 sfrdatai (7:0)
 xdatai (7:0)
 int0
 int1
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 
 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
int0inputExternal interrupt 0
int1inputExternal interrupt 1
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
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

CPU interface
DP8051XP CPU
clkcpu
prgromdata (7:0)
prgramdata (7:0)
ramdatai (7:0)
sfrdatai (7:0)
xdatai (7:0)
int0
int1
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
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

Units

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.

DP8051XP CPU

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

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.

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-6404060/>100
CYCLONE-III-6404070/>100
STRATIX-II-32750100/>100
STRATIX-III-22750110/>100
Arria GX-6275080/>100

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

ImplementationSpeed
grade
Utilized Area
[Slices]
Frequency
[MHz]
cpuclk/utmiclk
SPARTAN-III-5239050/>100
SPARTAN-IIIE-5239060/>100
VIRTEX-4-12239075/>100
VIRTEX-5-3126590/>100

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

ImplementationSpeed
grade
Utilized Area
[Slices]
Frequency
[MHz]
cpuclk/utmiclk
SC-72120100/>100
ECP2-7229580/>100
ECP2M-7229570/>100
XP2-7255560/>100

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