Dataflash ที่ใช้ในบอร์ด AVR นี้คือรุ่น AT45DB041B มีขนาดของ memory เท่ากับ 4M bits ประกอบด้วยจำนวน page ทั้งหมด 2048 pages แต่ละ page เก็บข้อมูลได้ 264 bytes โดยใน memory ของ Dataflash นี้ยังมี SRAM buffer อยู่ 2 อัน ในแต่ละ buffer เก็บข้อมูลได้ 264 bytes
Dataflash in AVR Butterfly
.
ภาพด้านบนนี้คือ Block Diagram สำหรับ Operation ในการเขียนข้อมูลลง Dataflash ซึ่งจะมีการอ่านค่ามาจาก I/O Interface (ใน Porject นี้คือการอ่านค่า output voltage จาก Sensor) จากนั้นข้อมูลที่อ่านมาได้จะถูกเขียนลง buffer ตัวที่ 1 หรือ 2 ซึ่งมีขนาด 264 bytes แล้วจึงค่อยส่งผ่านข้อมูลใน buffer ไปยัง page ที่อยู่ใน Flash Memory ที่มีขนาด page ละ 264 bytes
ภาพด้านบนนี้คือ Block Diagram สำหรับ Operation ในการอ่านข้อมูลออกจาก Dataflash ซึ่งสามารถทำได้ 2 วิธีคือ
1.ทำการถ่ายโอนข้อมูลจาก page ใน Flash Memory มาไว้ยัง buffer ตัวใดตัวหนึ่งก่อนจากนั้นจึงค่อยอ่านข้อมูลจาก buffer ตัวนั้นออกมายัง I/O Interface (ใน Project นี้คือการอ่านค่าออกมาทาง Serial port)
2.ทำการอ่านข้อมูลจาก page ใน Flash Memory มายัง I/O Interface โดยไม่ต้องผ่าน buffer
.
ดังนั้นในการเขียนโปรแกรมเพื่อให้บอร์ด AVR ของเราวัดความเร่งแล้วเก็บข้อมูลลง Dataflash ได้จะต้องทำการเขียนโปรแกรมออกมา 2 โปรแกรมนั่นคือ
1.โปรแกรมสำหรับการเก็บบันทึกข้อมูลค่า output voltage ที่อ่านได้จาก Sensor ลงใน Dataflash เพียงอย่างเดียว
2.โปรแกรมสำหรับการนำค่าที่บันทึกใน Dataflash ออกมาทาง Serial port
ซึ่งทั้ง 2 โปรแกรมจะเขียนแยกกันเพื่อให้ง่ายต่อการเขียนและใช้งาน
.
อ้างอิงจาก http://www.atmel.com/products/DataFlash/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น