Electoday 2025

ไมโครคอนโทรลเลอร์ => Microchip PIC => Topic started by: anodize on May 31, 2017, 01:36:44 PM

Title: ผมต้องการให้ pic16f887 คุยกับ sd card ครับ
Post by: anodize on May 31, 2017, 01:36:44 PM
pic16f887 >> spi >> Module SD Card

หาและอ่านข้อมูลมาพอสมควร แต่ติดปัญญหาตรงใช้ FatFs ไม่ถูกครับ

(https://image.ibb.co/bUi5fv/modules.png)

ผมเขาใจว่าต้องสร้างส่วน low level ขึ้นมาเอง แต่ไม่ทราบว่าจะนำไปเชื่มต่อกับส่วน FatFs module ยังไงอะครับ

ขอบพระคุณล่วงหน้า ครับผม
Title: Re: ผมต้องการให้ pic16f887 คุยกับ sd card ครับ
Post by: wlasoi on June 03, 2017, 02:40:58 PM
 pic16f887 โดยขนาด Flash/Ram ค่อนข้างจำกัด กลัวว่า Ram มันจะไม่พอใช้งานอ่ยางอื่นด้วยสิ ครับ .. ถ้าทรัพยากร MCU ไม่พอไปใช้ Fat แบบ Chip สำเร็จจะดีกว่า ..
Title: Re: ผมต้องการให้ pic16f887 คุยกับ sd card ครับ
Post by: dec on June 03, 2017, 04:15:13 PM
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 ได้เลย
Title: Re: ผมต้องการให้ pic16f887 คุยกับ sd card ครับ
Post by: anodize on June 12, 2017, 12:33:03 PM
ผมได้ตั้งกระทู้ถามมามากมายหลายกลุ่ม แต่ก็มีกลุ่มนี้แหละครับที่รู้สึกได้ว่าจริงใจต่อการให้ความช่วยเหลือมากที่สุด

ผมคิดว่านี้คือเหตุผลหนึ่งที่ทำให้กลุ่มนี้ได้รับความนิยม

ขอบพระคุณทุกท่าน มากๆ ครับ
Title: Re: ผมต้องการให้ pic16f887 คุยกับ sd card ครับ
Post by: Conormccager on June 05, 2018, 03:00:52 PM
ผมกำลังหาวิธ๊อยู่ดีเลยครับว่าควรจะทำไงดี หาไม่ได้เลยเหมือนที่เจ้าของกระทู้บอกเลยครับ