Yet Another MP3 Player yampp-3/USB
The updated yampp3 now with USB and Power Supply on the PCB
- ATmega161 CPU, 32kB SRAM, VS1001, USB interface, PSU
You can order the PCB, kits or assembled boards for this project at the yampp Web Shop.
New Rev. D, with connector for Nokia LCD connector, and with the new FT8U245BM USB chip !
■ Quick Features:
ATA/IDE interface for a standard harddisk or CD-ROM's.
USB interface for code and song download. Bootloader loads new code over USB in < 2 seconds.
Integrated 5V switch mode power supply.
Headphone output. Can also be used as Line Out.
RS-232 interface for communicating with a PC. Full player control and status information available.
RS-485 interface for long distance remote displays/frontends, such as in a car.
IR receiver for player remote control.
LCD display connector for a Nokia 3310 84*48 pixel graphics LCD.
LCD display connector for a "standard" LCD. Easily configured to 2*16 or 4*20, other formats possible too.
Up to 8 pushbuttons for player control.
■ yampp-3/USB is the new version of the popular yampp-3.
The board layout has been revised with a ground plane, and a USB interface and a switch mode power supply has been added to the board. The USB interface can be used for downloading songs to the player, but also for new code. There's a bootloader in the CPU that enables code download via the USB link.
It also has a RS-485 interface for connecting the yamppDisplay board (to be featured later) over longer distances. Perfect for the car.
You can use two software variants on the yampp-3/USB player.
One is derived from the old yampp-3 and will play songs from a FAT32 formatted harddisk.
The second software variant uses a new special filesystem for the player and transfer program for the PC that handles playlists, system sounds e.t.c. e.t.c.
The transfer program is called yamppLink and info about how to prepare yourplayer for use with yamppLink can be found here.
■ Circuit Description
yampp-3/USB Block Schematic (Click to see high res. version)
The central part of the yampp-3/USB player is the Atmel mega161 CPU.
It's like a big-brother to the classic 8515 CPU that was used on yampp-3.
It has 16 kB Flash and 1024 bytes internal SRAM, both double as much as on the 8515.
It also features a bootloader option. This has been used in yampp-3/USB, where it is now possible to download new code over the USB link.
The USB link is controlled by a FT8U245BM chip from FTDI.
This is a VERY easy to use USB chip, which basically looks like a simple 8-bit buffer (hence the name). There's no need for implementing any specific USB code in the player,
to communicate over the USB link, you just read and write data directly to the chip.
Two status pins indicate if there's any data in the receive buffer, and if the transmitter queue is empty.
The USB chip is memorymapped and occupies a single address in the CPU address space.
Some discrete circuitry is added to the USB chip to enable it to startup in the correct mode, and to handle the power on reset and Soft-Connect feature.
■ USB Address decoding
To simplify the addressing of the USB interface, it has been memory mapped and the decoding is handled by a 74HC138 address decoder which is used to gate the RD and WR signals to the USB chip depending on the state of address lines A14 and A15. With this, the USB chip will be located at address 0x8000.
■ RAM and RAM Address Latch
A standard 32K*8 SRAM helps buffering MP3 frames and texts for the LCD display. As the CPU multiplexes the Data Bus and the lower 8 Address Bus lines on AD0-AD7, an address latch is required. This is handled by a 74HC573 Latch, which is triggered by the ALE signal from the CPU.
■ IDE Interface
A 44-pin 2mm IDE connector interfaces directly to 2 1/2" lap-top hard disks.
To interface to the 16-bit IDE interface, a special trick has to be used because Port A and C on the CPU is not directly accessible when the CPU is in external memory mode. So the CPU is used in I/O mode when the IDE interface is used, but first, the addressing of the IDE registers and chip selects is setup on the address latch, by making a dummy read from an unused address within the address space of the CPU. This latches the address on the 74HC572 address latch, and the CPU is switched to I/O mode, so Port A and Port C can be used for accessing the 16-bit IDE data.
■ Power Supply
A switch mode power supply is integrated on the board.
It's controlled by a Maxim MAX1626 Step-Down DC-DC controller.
It's a high efficiency (>90%) regulator.
The axial 50 uH inductance and a power P-channel FET allows up to
about 2 Amps of output current, enough to drive the player and a 2 1/2" hard disk.
The input is protected against inversed polarity and a transient protection diode is added
for protection against surges and spikes in a automobile environment.
On the board is also a LP2980 3.3V regulator for supplying the VS1001 and the 74LVC245 with 3.3V.
■ MP3 Decoder
The MP3 decoder is, as on other yampp's the VS1001K chip from VLSI.
It's an easy to use decoder with a built in DAC. It's clocked from a 12.288 MHz crystal,
enabling bitrates up to 256k bps. Higher bitrates are possible by changing the crystal.
It also has a built in headphone amplifier.
As the VS1001 is a 3.3V device, a 74LVC245 buffer is used to interface the VS1001 to CPU
that's running on 5V. The 74LVC245 is a special level-converter version of the 74HC245,
and have 5V tolerant inputs.
■ LCD Interfaces
The player have two different LCD interfaces. One is an interface for standard LCD displays
with Hitachi HD44780 (or similar) controllers.
Code is written for 2*16 and 4*20 size displays, but can easily be adapted for other formats.
The second interface is for a Nokia 3310 (or similar) 84*48pixel graphic display.
The standard Display Connector also is used for connecting buttons to the player.
■ Player control Interfaces
The player can be controlled from 3 various sources.
8 keys can be connected to the player and allows up to 16 functions to be controlled.
The player can also be controlled through the IR receiver.
A number of IR remote protocols is supported.
And last, but not least, the player can be controlled over one of the serial interfaces.
Normally, the RS-232 interface is used and can be connected to a PC or any other serial teminal.
The RS-485 interface is optional and can be used for connecting the player to
a remote display/control board over long and/noisy distances.
Such a remote display board ( the yamppDisplay ) is under development,
and will allow the player to be used with alphanumeric and smaller graphical displays
without any CPU load.
Part Value Package
------- -------- ---------
R12,R13 10k R0805
R2 470 R0805
R3 47 R080
R4,R7 0.1R 0207/7
R5 5k 23B Trimpot
R6 1M R0805
R16 4k7 R0805
R10,R11 15 R0805
R15 1k R0805
R18,R19 27 R0805
R20 1k5 R0805
R24 470 R0805
C1-C4 33pF C0805
C5-C7 10uF/16 ELNA_RV2_4
C9,C10 100uF/10 ELNA_RV2_63
C24-C27 100nF C0805
C18 220uF E5-10,5 OS-CON *
C19 47uF E3,5-8 OS-CON *
C23 470nF C3225
C28,C29 1uF/16 CT3216
D1,D5 EL17-21 LED0805
D2 PRLL5818 SOD87
D3 LL4004 SOD87
D4 SM15T15A SOD15
D6 BAS32 SOD80
IC1 ATmega161 TQFP44
IC2 74HC573 SO20L
IC3 62256 SO28L
IC4 MAX202CSE SO16
IC5 LP2980 M5
IC6 74LVC245 SO20L
IC7 VS1001 SOIC-28
IC8 74HC138D SO16
IC9 MAX1626ESA SO8
IC10 DS1813R SOT23
IC11 FT8U245BM QFP32
IC12 MAX481CSA SO08
J1 PROG 5*2 0.1" header
J2 DISPLAY 8*2 0.1" header
J3 RS-232 3*1 0.1" header
J4 IR 3*1 0.1" header
J5 POWER 2*1 0.1" header
J6 Headphones 3.5mm Jack
J7 ATA_IF 44pin 2mm IDE Conn
J8 USB Harting USB-Conn
J9 NOKIA LCD 8*2 2mm connector
L1,L2 10u L1210
L3 22uH HM50
Q1 7.3728 MHz HC49U-V
Q2 12.288 MHz HC49U-V
Q3 6MHz MURATA_CST
S1 RESET ALPS_45
T1 MTD20P03HDL DPAK
* = SANYO Organic low-ESR. Important !
■ Testing the player
To test your newly built player,
a test suite with 17 different tests will help you weed out any problems.
Go to the test page
Download sourcecode for yampp-3/USB Bootloader
■ The yamppLink application has it's own page.
■ You can order the PCB, kits or assembled boards
for this project at the yampp Web Shop.
|HDD MP3 플레이어|
|MP3 Player yampp-3|