sd card สมัยนี้ block size ขั้นต่ำมักจะอยู่ที่ 512 bytes ครับ pic16 มีแรมอยู่ที่ราวๆ 300 กว่า bytes เอง แค่บัฟเฟอร์สำหรับพักข้อมูลจาก sd card มันก็ไม่พอแล้วครับ ควรเปลี่ยนชิปไปใช้ pic18 หรือ pic24 ที่มีแรมอย่างน้อย 8Kbytes ครับ
ส่วนไฟล์ lowlevel มันมี template ไว้ให้แล้วครับชื่อไฟล์ diskio.c
ในไฟล์ lowlevel มันจะมี function ตามนี้
disk_status - Get device status
disk_initialize - Initialize device
disk_read - Read sector(s)
disk_write - Write sector(s)
disk_ioctl - Control device dependent functions
get_fattime - Get current time
FatFs มันจะเรียกฟังก์ชั่นตามนี้เท่านั้น หน้าที่เราคือไปเขียน 6ฟังก์ชั่นนี้ไว้ มันเชื่อมชั้น lowlevel ผ่านไฟล์ diskio.h ไว้แล้ว
แต่สำหรับ pic24 มันมีตัวอย่างไว้ให้แล้ว ไปโหลดที่เว็บของ fatfs ได้เลย