<<HOME>>

Mp3 Player V1

 

No, its not supposed to be like like that, its dead :(


Description

This is my first attempt at am mp3 player. It uses the very nice vs1001, this single IC includes the mp3 decoder, D/A and audio amp to drive headphones. The player accepted MMC cards which slotted behind the LCD, these can be loaded with mp3s using a standard card reader. FAT32 code was written in assemble, this included non-sequential file reading and Long files names (what a mess they made adding long file name support to FAT32!). Files are first read from the root directory, but could easily be read from any directory. Audio quality was very good, as was stability of the player. As you can see from the last picture, this player is now no more, I think the screen broke in my bag, oh well, the perfect opportunity to make a nice new one!

Including 128mb memory it cost around £40-£50, I could of course have bought one for about that, but that would have been much less fun!


Specification Main Features

MCU: ATMEGA 162L @ 8Mhz

Mp3 decoder: vs1001

On board Memory: 128Kbytes (currently only 64Kbytes used)

Mp3 memory: MMC card, any size formatted to FAT32

Display: Nokia 48x84 B/W lcd display

Power Supply: 3.9v Sony J5 mobile battery (700mAh)

Size(Height/Width/Depth): (70mm X 56mm X 15mm)

  • Small and light
  • Full FAT32 read support:
    -No hard-coded constants (Variable cluster size, fat size, partition start ect)
    -Full directory support
    -Reads Long file names
    -some error reporting
  • Low power - 40ma playing
  • Scrollable Vram area (with individual line offsets)
  • Multitasking applications possible
  • All hardware I/O controlled by timers transparently
  • Auto key lock
  • All written is ASM, hence small code size..currently for full working mp3 player take under 2000word (under 1/4 of device capacity)
  • games to be added..tetris, snakes

How it works

A very simple operating system was designed to run on the player consisting of a fast (16ms) and slow (200ms) timer. The timer interrupts took care of all the hardware I/O and mp3 playing, including screen refreshing (30Hz) and input monitoring. This enabled application to be easily written without worrying about keeping the mp3 buffer full, or SPI enable conflicts.' Programs' written for it need only writing to the Vram and look at memory for button status. If anyone wants more info on this, then I will gladly help..


Files

AVR code for MEGA 162: mega162asm.asm

PCB for LCD header (Express PCB): lcd con.pcb

Main PCB: mega 162 with 128kbsram single.pcb

 

 

<<HOME>>