SD card interface and FAT16 implementation on a PIC18F series microcontroller