EMBEDDED SD/MMC CARD INTERFACE WITH FAT32 FILESYSTEM SUPPORT

Abhijit K

 

BEGINNINGS:

A number of embedded applications require cheap and abundant non volatile data storage. Flash based memory cards, such as SD and MMC cards and their derivatives, fit this requirement very well. These cards support the SPI (Serial Peripheral Interface) which reduces hardware development effort to a minimum. In addition, the use of a removable card with a PC-readable file system (such as FAT32) gives users the ability to easily transfer data between the embedded devices and PCs.

 

     Most file system code available on project websites (especially mp3 player projects) implement a FAT file system code on controllers such as the ATmega128 or the ARM family, which have relatively large amounts of RAM. The code given here was developed for an ATmega16, and is designed to run with a little over 512 bytes of RAM.

 

The SD and MMC card specifications are not entirely in the open domain. Good FAT32 file system documentation is rare, and the Microsoft documentation is almost totally useless. The following pages contain some useful info about FAT32 on SD/MMC cards.

 

Acknowledgements:

This project was completed under the guidance of Mr. Ajith Kumar, at IUAC, New Delhi. Anand R. and Amarnath S. R. were involved in the initial stages of the project.  The initial part of the project was completed at EIE-Labs, VIT University, Vellore as part of course work. For any comments or clarifications contact abhijitkshirsagarmail-phoenix at YAH00 D0T C0 D0T IN