A DSP based Digital Audio (MP3) Player

Features - what's cool?

DSPdap hardware consists of a 10cm x 9cm dual-layer Plated Through Hole PCB with SMT mounted components. These are the features:

  • TMS320VC5507 16-bit Fixed Point DSP chip
  • TLV320AIC23 High quality 90dB/96KHz stereo CODEC with headphone amp
  • Operates over 2 AA sized 1.5V/1.2V alkaline/rechargeable batteries
  • Full speed USB 2.0 connectivity
  • Compact Flash card for data storage (virtually any capacity supported)
  • Bootloading and programming over USB
  • Stereo Line-in support for high quality music recording (from walkman/radio)

Overview - how does it work?

The DSP is the Central Processing Unit of the player. The DSP is dumb without the necessary software. It is the software that adds functionality to the player. The music and data files are stored in the CompactFlash card using the FAT file system.

Block Diagram
Block Diagram

In Player mode, the DSP reads the mp3 files from the CF card, decodes the mp3 file into stereo 16-bit PCM samples and sends it over to the CODEC chip at a rate of 44.1 KHz. The CODEC converts these digital samples into an analog audio signal, which are amplified and sent to the Headphones. The DSP also scans the keys to check if the user has pressed any button and takes necessary action. (E.g. if VOL+ button is pressed then the DSP commands the CODEC to raise the audio volume) It really is the software on the DSP that manages the player tasks and does the mp3 decoding.

When plugged into the USB port of a PC, the DSP communicates over USB using the USB mass storage specifications. It exposes itself over USB as a mass storage device with the CF card as its storage medium. Windows shows it as a removable drive in My Computer. Files can be transferred to the CF card using Windows explorer. In this case, the DSP transfers files between USB and CF card. Again it's the software on the DSP that does this!!

You can download the latest hardware release from http://sourceforge.net/dspdap. Have a look at the schematics, the bill of materials and the PCB layout.

DSP - Digital Signal Processor

The DSP is a 16-bit fixed point DSP from Texas Instruments (TMS320VC5507). It has 128KB of on-chip data/program RAM.

The DSP has an on-chip full speed USB 2.0 peripheral controller, I2C bus, SPI bus, McBSP bus and an External Memory Interface. It also has the capability of bootloading from USB and I2C. We use this bootloading feature to program the DSP.

We need the LQFP-144 package for the DSPdap board. It costs about $10.25 in bulk but can be ordered from Digikey at $15.

CODEC chip

The CODEC chip is a TLV320AIC23 from Texas Instruments. You could also use TLV320AIC23B since it's an exact equivalent. It is a 24-bit resolution Sigma-Dealta CODEC supporting up to 96 KHz sampling rate and comes with a built in headphone amplifier. The CODEC (coder-decoder) converts the digital samples produced by the DSP into an analog signal that can be fed to the headphones. It can also convert the analog signal connected to the line-in jack into digital signals and feed it to the DSP for processing.

The CODEC chip has a control port and a data port. The control port is linked to the DSP's SPI port whereas the data port is linked to the DSP's McBSP port. The DSP can control the CODEC configuration (e.g. volume, sampling rate, mute, etc). The data port is used to transfer digital audio samples to/from the CODEC.

We need the TSSOP-28 package for the DSPdap board. You can obtain it through TI sampling or Digikey.

CompactFlash card

The CompactFlash card is used as the storage medium to store music and data files. The CF card is connected to the DSP through the External Memory Interface (EMIF). It is operated in True-IDE mode. We will operate the CF card at 3.3V. Make sure you obtain a Type-I or Type-II 3.3V CF card with a decent capacity that suits your budget. You could get one at your camera accessories dealer or buy one online from SterlingTek. A 64MB card costs around $5.


Do not use your camera's CompactFlash card with DSPdap since you will loose all the data on the card. The card will work with DSPdap but is not guaranteed to work with your camera again. It is best to buy a separate one for DSPdap.


The serial EEPROM is used to hold the player firmware. The EEPROM is linked to the DSP through the I2C bus. While powering up, the DSP bootloads itself by reading the firmware from the EEPROM. We will use the 24LC512 chip which is a 64KB I2C EEPROM from Microchip.

We need a 8-pin DIP package for the DSPdap board. You can obtain it through Microchip sampling or Digikey.

Boost Converter

The Boost Converter is used to generate fixed 3.3V from 1V to 3V battery input. We use a TPS61103 chip from Texas Instruments. This converter has soft startup capability, 2-bit battery level indication and power good indication. We use the 3.3V supply to power the DSP I/O and all other peripherals.

We need a 20-pin TSSOP package for the DSPdap board. You can obtain it through TI sampling or Digikey.

Step-down Charge Pump

The Charge Pump is used to generate 1.6V core supply for the DSP. We use a TPS650500 charge pump IC from Texas Instruments. It is a high efficiency 250mA step down converter.

We need a 10-pin MSOP package for the DSPdap board. You can obtain it through TI sampling or Digikey.

Supply Voltage Supervisor

The IC TPS3106K33 from Texas Instruments is used as the supply voltage supervisor. It is responsible for generating a clean RESET signal on power up and whenever the power rails fail.

We need a 6-pin SOT-23 package for the DSPdap board. You can obtain it through TI sampling or Digikey.

Low Drop-out Regulator (LDO)

We use an LDO to generate 3.3V supply from the 5V USB power rail. This is to ensure that the device powers up when connected to USB and uses USB power instead of battery power. We use the TPS73601 LDO from Texas Instruments.

We need a 6-pin SOT-223 package for the DSPdap board. You can obtain it through TI sampling or Digikey.

Other Components

The other components on board are standard capacitors, resistors, diodes, connectors and switches. Please refer to the Bill of Materials for the complete list of components.

One component that is noteworthy of mentioning is the power inductor L1. This inductor should have low series resistance and current rating of about 1.8A. We use the CDRH74NP-100MC inductor from Sumida. You can obtain almost all the components from Digikey.

Building it

Please refer to the Building it section for the procedure for building DSPdap.