FAT32 Hard-drive-based
MP3 Player with 512 bytes of SRAM
Background
This project shows how
an 8-bit Microcontroller can be interfaced to an IDE (ATA) Hard
Drive with the minimum of external circuitry. A FAT32 File System
with long filenames and multiple directories are supported with
only 512 Bytes of SRAM. The user-selected file's data is streamed
to an MP3 Decoder, which in turn streams the raw (decoded) data
to a 16-bit DAC. The user-interface is RS232, but this can be
adapted to any suitable protocol that interfaces with an MMI
unit (text display and switches).
The project's aim was two-fold.
First to increase my embedded knowledge and experience and secondly
to prove that with careful embedded firmware design, a lot can
be achieved with the minimum of resources (a requirement many
embedded engineers are faced with every day).
This is the reason I
challenged myself to design a circuit that uses the minimum
of SRAM to interface to IDE and decode FAT32.
A more suitable microprocessor
choice would have been the ATMEL ATMEGA161,
which features 1024 Bytes of SRAM and 35 I/O pins (if external
SRAM is not used). This would have enabled a whole IDE sector
(512 bytes) to be buffered and then processed, which would have
simplified the FAT32 decoding. It also features an internal
brown-out reset circuit and the ability to upgrade it's firmware
internally (i.e. Boot Loader scheme, etc.). Unfortunately,
it will only start to be available in May 2000.
Development Tools
Schematic (2001-04-26)

(Click to download in PDF format)
|