ในบทความนี้เราจะมาดูวิธีการเขียนและอ่านจากหน่วยความจำแฟลชโดยใช้ Arduino โดยใช้วงจรไมโคร 25L8005 เป็นตัวอย่าง
จำเป็น
- - ชิปหน่วยความจำแฟลชพร้อมรองรับ SPI
- - อะแดปเตอร์สำหรับหน่วยความจำหรือแผงที่มีอัตราขยายเป็นศูนย์ (แผง ZIF)
- - Arduino;
- - คอมพิวเตอร์;
- - สายเชื่อมต่อ
คำแนะนำ
ขั้นตอนที่ 1
อันดับแรก เราต้องสร้างมันขึ้นมาเพื่อให้สามารถเชื่อมต่อกับไมโครเซอร์กิตได้อย่างง่ายดาย ในการทำเช่นนี้ คุณสามารถใช้อะแดปเตอร์พิเศษที่คุณต้องบัดกรีไมโครเซอร์กิต หรือ (ซึ่งดีกว่า) ใช้แผงรับศูนย์ (แผง ZIF ที่เรียกว่า)
ขั้นตอนที่ 2
ตอนนี้เรามารวมแผนภาพไฟฟ้าสำหรับเชื่อมต่อชิปหน่วยความจำแฟลชกับ Arduino กัน เราจะใช้อินเทอร์เฟซ SPI สำหรับการเขียนโปรแกรมหน่วยความจำ ดังนั้นเราจะเชื่อมต่อกับพินมาตรฐาน:
- CS - พินดิจิตอล 10, - MOSI - พินดิจิตอล 11, - MISO - พินดิจิตอล 12, - SCK - พินดิจิตอล 13
ขั้นตอนที่ 3
ก่อนเขียนข้อมูลลงหน่วยความจำ จำเป็นต้องลบเซกเตอร์หรือเพจที่เราจะเขียนก่อน หากไม่มีข้อมูลให้เขียนมากนัก (ในตัวอย่างการสอนของเรา จะมีขนาดเพียง 16 ไบต์) ก็เพียงพอที่จะลบ 1 เซ็กเตอร์ จากเอกสารประกอบของ microcircuit เราจะเห็นว่าลำดับการลบมีดังต่อไปนี้ ตั้งค่าการอนุญาตการเขียน (1 ไบต์) ส่งคำสั่งลบ (1 ไบต์) และที่อยู่ (3 ไบต์) ตั้งค่าห้ามเขียน (1 ไบต์). นี่คือสิ่งที่ร่างด้านบนทำ ลองโหลดลงใน Arduino หลังจากสเก็ตช์เสร็จแล้ว แฟลชไดรฟ์ก็พร้อมสำหรับการบันทึก
ขั้นตอนที่ 4
ทีนี้มาเขียนข้อมูลกัน ลองใช้อาร์เรย์ขนาดเล็ก 16 ไบต์เป็นตัวอย่าง ดังที่คุณเห็นจากเอกสารประกอบ ขั้นแรกคุณต้องตั้งค่าสิทธิ์ในการเขียน (1 ไบต์) จากนั้นส่งคำสั่งเขียน (1 ไบต์) ที่อยู่เริ่มต้น (3 ไบต์) และข้อมูล (ในตัวอย่างของเราคือ 16 ไบต์) ที่ ท้ายสุดกำหนดห้ามเขียน (1 ไบต์)
อัปโหลดภาพร่างไปยัง Arduino หลังจากดำเนินการร่างนี้ อาร์เรย์ทดสอบของเราควรจะเขียนลงในหน่วยความจำแฟลชแล้ว ลองตรวจสอบว่าเป็นเช่นนี้หรือไม่
ขั้นตอนที่ 5
มาเขียนสเก็ตช์เพื่ออ่าน 16 ไบต์จากหน่วยความจำแฟลช โหลดลงใน Arduino แล้วเปิดมอนิเตอร์พอร์ตอนุกรม ในจอภาพตามที่คาดไว้อาร์เรย์ของเราที่อ่านจากหน่วยความจำโดยใช้ Arduino จะแสดง 1 ครั้งต่อวินาที