Fig.1 EEPROM 24C128N. |
ก่อนความจำที่แสนสั้นจะลืมเลือน เลยมาบันทึกไว้สักหน่อยว่าด้วยเรื่องการเขียนข้อมูลลง EEPROM
มีของอยู่ในมือเป็น Atmel 24C256 และจากจีน ATMTC087 24C128N ต่างกันที่ความจุ ส่วน address ในการอ่าน-เขียนเหมือนกัน 0x50 (A0,A1 floating or GND) ถ้าใช้อันเดียวก็ต่อสาย VCC,GND,SDA,SCL ที่เหลือปล่อยลอยๆ ไม่ต้องต่ออะไร แล้วก็ใช้ address 0x50 (หรือ 80 เลขฐานสิบ)
Fig.2 Pin 24Cxxx pin |
เอาไว้เก็บข้อมูลบางอย่าง เคยเอาไว้เก็บพารามิเตอร์ของโปรแกรม ค่า setting ต่างๆ เมื่อไฟดับลง ค่าที่เก็บไว้ก็ยังอยู่ เปิดเครื่องขึ้นมาก็อ่านเข้ามาใช้งานได้ต่อไป ไม่ต้องไปไล่ตั้งค่ากันอีก
แต่ตอนเขียนข้อมูลนั้นมีข้อควรพึงระวังไว้ ในกรณีเขียนต่อเนื่องมันเขียนได้ทีละ 64byte เกินกว่านี้มันเอาส่วนที่เกินไปเขียนตั้งต้นใหม่ (rollover) ดูรูปประกอบ ก็ต้องเขียนไม่ให้เกินกว่านั้น ถ้าจะข้ามรอยต่อ address 63 และ address 64 ก็เอาส่วนที่เกินไปเริ่มที่ address 64 เป็นแบบนี้เรื่อยไป
แต่ถ้าใช้ไลบรารี่หรือว่าเขียนทีละ address ก็ไม่ต้องกังวล
Fig.3 writing into 24C128,256 EEPROM and rollover |
การอ่านเขียนผ่าน Wire library มีบัฟเฟอร์ 32byte ก็อ่าน-เขียนไม่เกินนี้ เคยเห็นเขาเอาแค่ 28 ประมาณนั้น ตัวอย่าง อ่านทีละ 16 byte จำนวน 10 รอบ ก็ได้ข้อมูล 160 byte ข้อมูลเดิม fill ด้วย 0xFF
Fig.4 Reading data from eeprom q'ty 160byte |
เรื่องก็มีเท่านี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น