We were ultimately able to configure the STA013 to
decode MP3 files of various bitrates. Due to the size restrictions
of the flash, we were only able to test the STA013 with small MP3
clips encoded at 32 kbps and 64 kbps. However, we believe that the
STA013 would be able to play MP3 files encoded at higher bitrates
(i.e., 128 kbps). Two push buttons were implemented to start and stop
playback of the given MP3 clip.
With regards to the hard-drive interface, we were
able to initialize the drive, perform a software reboot, and read
and write to and from the drive registers. However, we were not able
to read file information stored in the FAT32 table or files stored
on the hard-drive. Our inability to do this resulted from not fully
understanding the IDE/ATA protocols dealing with the transfer of head/cylinder/sector
data. Given more time, we would have liked to learn more about the
IDE/ATA interface, as well as the FAT32 protocol, so as to implement
data transfer from the hard-drive, via the MCU, to the STA013 MP3
decoder chip.
If we were to redo this project, we would have been
more careful verifying the correctness of our circuits. Various problems
we encountered resulted from incorrect circuit connections. We could
have saved time by checking our circuit more thoroughly before attempting
to debug our software. In addition, we learned to be more careful
when connecting power supplys to given hardware. In the process of
this lab, we destroyed, by supplying an incorrect power supply, an
STA013 decoder chip, a 6 Gig hard-drive, and a pair of amplified computer
speakers
=).