MP3 Player

 

History

I decided to do this project for several reasons: first I like music, second I have a huge collection of MP3, and third I wanted to be able to play them anytime in my living room.  I began the project with one major restriction, the printed circuit board of MP3 player MUST be single side in order to do it myself.  After 2 months of drawing, I realized this project was in fact ‘feasible’! One major characteristic of this player was the bi-directional remote control. I had to give several information, folders and songs on a small graphic LCD.  In the comfort of your living room you can browse and listen to 30 gig of MP3.

 

The MP3 player is nicely built around the Atmel ATMega128 running at 16Mhz. The MP3 decoder is a VS1001k which gives a crystal clear sound. The USB interface is done via FT232MB, which by the way, makes USB development very simple. In this project I found two big difficulties: understanding FAT32 and transmitting a large quantity of information via Infrared.

 

In order to understand FAT32 I used these tools:

- Windows software for checking the hard drive data on sector like WinHex.

- Microsoft FAT32 white paper's reading (not so easy to understand)

- Other source code of FAT32's analyzing could be useful

  

Infra Red Communication

Devices like GP1UD26xk (infrared sensor) need to have a density of 1's lower then 45% so the Manchester encoding MUST be used with a speed of 2400bps maximum and 2 stop bits. Manchester encoding gives you 50% of 1's. Each time you send "1" you will send "10” and for "0" you send "01".  The utilization of 2 stop bit by bytes will give you approximately 45% of 1's.  The fact is that you loose 50% of the original speed but that's the only way to do it and you will send the double quantity of bytes.

 

ATA Interface

The ATA interface in PIO mode is very simple, if you know how to interface any MCU peripherals this is the same method.  You have a 16 bits address bus which controls the register you want to write to or read from.

 

Features

MP3 Player

puce IDE ATA interface
puce FAT 32 with long file name support
puce USB interface
puce On board power supply (input from 7v to 20v DC)
puce Bootloader firmware upgradeable via USB port
puce Infrared bi-directional interface

Remote Control

puce Back light graphic LCD
puce worked with only 2x AA batteries
puce In sleep mode sink less than 1uA (2.5mA in active mode)
puce 5 buttons for easy navigation
puce Long range (more than 20 feets)

 

Pictures

Click on the pictures to enlarge

MP3 Player

Remote Control

   

PCB with Hard Drive

Inside the Remote Control

   

 

Sources codes & Schematics

-MP3 Player Schematic in PDF format

-Remote Control Schematic in PDF format

-IR Transceiver Schematic in PDF format

-MP3 Player Source Code in ICCAVR format

-Remote Control Source Code in ICCAVR format

-MP3 Player Bootloader source code for MegaLoad in ICCAVR format "via usb"