วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino

สารบัญ:

วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino
วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino

วีดีโอ: วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino

วีดีโอ: วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino
วีดีโอ: Increase Flash Programming Memory for Arduino Nano? YES! 2024, อาจ
Anonim

ในบทความนี้เราจะมาดูวิธีการเขียนและอ่านจากหน่วยความจำแฟลชโดยใช้ Arduino โดยใช้วงจรไมโคร 25L8005 เป็นตัวอย่าง

วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino
วิธีเขียนและอ่านหน่วยความจำแฟลชโดยใช้ Arduino

จำเป็น

  • - ชิปหน่วยความจำแฟลชพร้อมรองรับ SPI
  • - อะแดปเตอร์สำหรับหน่วยความจำหรือแผงที่มีอัตราขยายเป็นศูนย์ (แผง ZIF)
  • - Arduino;
  • - คอมพิวเตอร์;
  • - สายเชื่อมต่อ

คำแนะนำ

ขั้นตอนที่ 1

อันดับแรก เราต้องสร้างมันขึ้นมาเพื่อให้สามารถเชื่อมต่อกับไมโครเซอร์กิตได้อย่างง่ายดาย ในการทำเช่นนี้ คุณสามารถใช้อะแดปเตอร์พิเศษที่คุณต้องบัดกรีไมโครเซอร์กิต หรือ (ซึ่งดีกว่า) ใช้แผงรับศูนย์ (แผง ZIF ที่เรียกว่า)

ชิปหน่วยความจำแฟลชบนแผง ZIF
ชิปหน่วยความจำแฟลชบนแผง ZIF

ขั้นตอนที่ 2

ตอนนี้เรามารวมแผนภาพไฟฟ้าสำหรับเชื่อมต่อชิปหน่วยความจำแฟลชกับ Arduino กัน เราจะใช้อินเทอร์เฟซ SPI สำหรับการเขียนโปรแกรมหน่วยความจำ ดังนั้นเราจะเชื่อมต่อกับพินมาตรฐาน:

- CS - พินดิจิตอล 10, - MOSI - พินดิจิตอล 11, - MISO - พินดิจิตอล 12, - SCK - พินดิจิตอล 13

แผนภาพการเชื่อมต่อหน่วยความจำแฟลชกับ Arduino
แผนภาพการเชื่อมต่อหน่วยความจำแฟลชกับ Arduino

ขั้นตอนที่ 3

ก่อนเขียนข้อมูลลงหน่วยความจำ จำเป็นต้องลบเซกเตอร์หรือเพจที่เราจะเขียนก่อน หากไม่มีข้อมูลให้เขียนมากนัก (ในตัวอย่างการสอนของเรา จะมีขนาดเพียง 16 ไบต์) ก็เพียงพอที่จะลบ 1 เซ็กเตอร์ จากเอกสารประกอบของ microcircuit เราจะเห็นว่าลำดับการลบมีดังต่อไปนี้ ตั้งค่าการอนุญาตการเขียน (1 ไบต์) ส่งคำสั่งลบ (1 ไบต์) และที่อยู่ (3 ไบต์) ตั้งค่าห้ามเขียน (1 ไบต์). นี่คือสิ่งที่ร่างด้านบนทำ ลองโหลดลงใน Arduino หลังจากสเก็ตช์เสร็จแล้ว แฟลชไดรฟ์ก็พร้อมสำหรับการบันทึก

แฟลชเซกเตอร์ลบภาพร่าง
แฟลชเซกเตอร์ลบภาพร่าง

ขั้นตอนที่ 4

ทีนี้มาเขียนข้อมูลกัน ลองใช้อาร์เรย์ขนาดเล็ก 16 ไบต์เป็นตัวอย่าง ดังที่คุณเห็นจากเอกสารประกอบ ขั้นแรกคุณต้องตั้งค่าสิทธิ์ในการเขียน (1 ไบต์) จากนั้นส่งคำสั่งเขียน (1 ไบต์) ที่อยู่เริ่มต้น (3 ไบต์) และข้อมูล (ในตัวอย่างของเราคือ 16 ไบต์) ที่ ท้ายสุดกำหนดห้ามเขียน (1 ไบต์)

อัปโหลดภาพร่างไปยัง Arduino หลังจากดำเนินการร่างนี้ อาร์เรย์ทดสอบของเราควรจะเขียนลงในหน่วยความจำแฟลชแล้ว ลองตรวจสอบว่าเป็นเช่นนี้หรือไม่

ภาพร่างการเขียนอาร์เรย์ไบต์ไปยังหน่วยความจำแฟลช flash
ภาพร่างการเขียนอาร์เรย์ไบต์ไปยังหน่วยความจำแฟลช flash

ขั้นตอนที่ 5

มาเขียนสเก็ตช์เพื่ออ่าน 16 ไบต์จากหน่วยความจำแฟลช โหลดลงใน Arduino แล้วเปิดมอนิเตอร์พอร์ตอนุกรม ในจอภาพตามที่คาดไว้อาร์เรย์ของเราที่อ่านจากหน่วยความจำโดยใช้ Arduino จะแสดง 1 ครั้งต่อวินาที

แนะนำ: