VS1011ES Breakout Board and Library

A breakout board and library for the VS1011E-S mp3 codec.

Hardware

VS1011E-S product page
VS1011E-S data sheet
Sparkfun product page
Link to KiCad files

There are currently 2 versions of the board. "mp3 board" is the prototype. "mp3 board 2" is the next iteration; it uses the correct (SOIC-28W, as opposed to the standard SOIC-28 that the datasheet calls for) footprint for the VS1011E-S and includes a pull-down resistor for the reset pin.

/media/uploads/rgerhart3/1211162234a-2.jpg mp3 board

/media/uploads/rgerhart3/mp3_board.png mp3 board 2

Wiring

P1 (mp3 board)Mbed
1 (XDCS/Bsync)any GPIO pin
2 (Dreq)any GPIO pin
3 (XCS)any GPIO pin
4 (SCLK)SPI SCK (p7 or p13)
5 (SO)SPI MISO (p6 or p12)
6 (SI)SPI MOSI (p5 or p11)
P2 (mp3 board)
1 (left output channel)audio amplifier
2 (right output channel)audio amplifier
3 (RESET)any GPIO pin (Mbed)
4 (Vcc)Vcc (3.3V from the Mbed)
5 (GND)GND (Mbed)
6 (NC)

Code

Import program4180_Project_vs1011e

Under construction

Currently not working. The code provided should write the given file to the mp3 board via spi, however when run there is no sound output.

Import programvs1011e_readWriteTest

vs1011e prototype test code

This code tries to write a value of 0x0A to the zero register of the vs1011e (this would put it into 1002 mode, the mode we want to use for playback) and then reads back the value of the zero register. It currently does not work, a value of 0 or 255 is given. This may mean that we are not getting a response and the spi bus is floating.

Moving Forward

In order to debug our hardware and software we would first get the read-write test working. Some things to look for would be ensuring correct clock speed and ensuring that there is no discrepancy between the Mbed's SPI library and the VS1011e. A logic analyzer could be used to ensure bits are being sent in the correct order at the proper clock speed. Once that is done we would put the VS1011e into sine test mode. This would ensure that there are no problems with the analog output. Once that has been accomplished mp3 playback should be simple. A file with a known bit sequence and a logic analyzer would come in handy to ensure that packets being sent are of the correct size, in the right order, being sent most significant bit, etc.


Please log in to post comments.