A lot of time was spent working on the SD card and FAT32 interface. Both are now complete. A few weird bugs were discovered while working on reading the SD card, one of which took hours to resolve and still does not have a solution, but has been worked around. Once the SD card interface was deemed satisfactory, work was started on accessing the FAT file system of the SD card. Most of the libraries for FAT were very lengthy (at least 1000 lines) and were difficult to understand for someone who is fairly new to C. A fairly simple FAT16 library was used as a guideline for creating our own FAT32 accessing code. The code can interpret the boot sector, go to the root directory, then read data one sector at a time and follow cluster chains. WinHex, a memory viewing software, was very useful for verifying what data should be read at certain data locations.
The next step is to work on using DMA to output buffered data to the DAC in parallel to reading new data. Timing may be an issue because the data has to be read and formatted for the DAC before a DMA transfer finishes. Also a 12 bit DAC is being used for 16 bit data samples, so the sound quality will be decreased in downsizing. If the quality sounds poor, we may need to upgrade to a 16 bit DAC.