วันจันทร์ที่ 2 พฤศจิกายน พ.ศ. 2558

LAB05_I2C (IC 24LC64)

1.แนวคิดและวิธีการเขียนโค๊ด

  • แบ่งเป็นสองส่วน คือส่วนที่เขียนข้อมูลลง eeprom และ ส่วนอ่านข้อมูลจาก eeprom
  • ให้ค่า i ซึ่งเป็น address ที่จะเขียนลง IC 24LC64 เพิ่มขึ้นทุกครั้งที่มีการเขียนค่าลงไปใน IC ดังนั้น address จะถูกเลื่อนไปเรื่อยๆเริ่มจาก address 0
  • อ่านค่าจะต้องเริ่มจากตัวแรกสุด แล้วไล่ไปเรื่อยๆตามที่กด Debounce Switch 
  • มีการใช้ BusIn ในการรับค่า switch 7 ตัว เข้ามาเปนเลขฐาน2 7 bit
  • มีการใช้ BusOut ในการส่งค่าไปแสดงผลที่ LED ทั้ง 8 ดวงแบบ binary 7 bit
  •  Debounce Switch เป็นเงื่อนไขในการ ส่ง หรือ อ่านค่า จาก IC ถ้าไม่กด จะไม่เกิดการส่งหรืออ่านค่าทั้งนั้น

2.การทำงานของโปรแกรม

เมื่อ Start Program
  1. switch 0 เป็น logic 0 program อยู่ในโหมดส่งค่า set switch 1-7 ให้เป็น logic 1 แล้วกด debounce switch ส่งค่าไปที่ EEPROM แบบ I2C ค่าแรกที่ส่งคือ '127' 
  2. ไล่สลับ switch ที่1 ถึง 7 เป็น logic 0 พร้อมกับกด debounce switch ทำให้ส่งค่า 63,31,15,7,3,1,0
  3. สลับ switch 0 ให้เป็น logic1 เพื่อเปลี่ยน mode เป็นการอ่านค่า
  4. อ่านค่าตัวแรกมาได้ 127 ไฟ LED ติด 7 ดวง
  5. อ่านค่าตัวต่อๆไปไฟติด 6,5,4,3,2,1 และ 0 ดวงเมื่อ read data ครั้งที่ 8 
  6. มีการเปิด logic analyzer ให้ดูว่าการรับส่ง ตรงกับที่ display ผ่าน Serial Moniter
  7. หลังจากเปลี่ยนโหมดกลับไปที่เขียนค่า จะเริ่มเขียนจาก address 0 ทับลงไปเรื่อยๆ

3.code ที่กลุ่มของเราเขียนขึ้นครับ

http://www.mediafire.com/download/acqde1vf7ms7b1m/LAB05_24LC64_I2C.rar