วันอังคารที่ 20 ธันวาคม พ.ศ. 2565

24C128 EEPROM

 

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

เรื่องก็มีเท่านี้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

MAPs

วันก่อนได้ลองเขียนแบบ แบบตัวนั้นมันต้องแนบแผนที่สังเขปของโครงการ ลองๆ แล้วก็ใช้ snazzymaps แล้วก็เอามาทำต่อใน inkscape มันก็ออกมาดูได้ระดับห...