This project shows you how to connect MMC, SD and SDHC memory cards to AVR microcontroller. This general purpose library can be used to read and write FAT16/32 formatted cards. It comes with feature: low-level MMC, SD and SDHC read/write routines, a simple FAT16/FAT32 read/write implementation, and partition table support.
In this project, Roland Riegel uses ATmega168 to read and write FAT16 formatted cards and ATmega328 with bigger flash size for FAT32 formatted card. The software is written in C. It might not be the smallest or the fastest one, but it is quite flexible. For example application, user may use simple command prompt which is accessible via the UART at 9600 Baud. With commands similar to the UNIX shell (not all commands are available), you can browse different directories, read and write files, create new ones and delete them again.