![]() |
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 |
เรื่องก็มีเท่านี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น