Page 18 - The Journal of the Royal Society of Thailand
P. 18
วารสารราชบััณฑิิตยสภา
ปีที� ๔๙ ฉบับที� ๑ มกราคม-เมษายน ๒๕๖๗
8 การต่่อประสานแผงวงจรไมโครคอนโทรลเลอร์เพื่่�อการเรียนร้�กับหน่วยความจำอีอีพื่ร็อมแบบอนุกรมต่ามเกณฑ์์วิธีี I2C
๒. แม่ขี่ายส่งขี�อม้ลขีนาด ๘ บิต่ผ่านสายสัญญาณ SDA โดยให�บิต่ที�มีนัยสำคัญส้งสุด (บิต่ 7) ถ้กส่งเป็็น
บิต่แรก และให� ๗ บิต่แรกเป็็นขี�อม้ลกำหนดเอกลักษัณ์ขีองเลขีที�อย้่ป็ระจำต่ัวอุป็กรณ์ล้กขี่ายที�เป็็นเป็้าหมาย
ส่วนบิต่สุดท�าย (บิต่ 0) ซึ่่�งมีนัยสำคัญต่�ำสุด จะถ้กกำหนดให�มีค่าต่รรกะเป็็น “0” (Write: W) เพื่่�อบอกล้กขี่าย
ว่า ต่่อจากนี�แม่ขี่ายจะส่ง (เขีียน) ขี�อม้ลให�แก่ล้กขี่าย ในการส่งสัญญาณแต่่ละบิต่ สายสัญญาณ SDA ต่�องคงค่า
ต่รรกะขีองบิต่ขี�อม้ลไว�ต่ลอดช่วงเวลานับจากต่อนที�สายสัญญาณ SCL เป็ลี�ยนค่าต่รรกะจาก “0” เป็็น “1” จนถ่ง
ต่อนที�สายสัญญาณ SCL เป็ลี�ยนค่าต่รรกะจาก “1” เป็็น “0” ต่่อจากนี�สาย SDA จ่งจะสามารถเป็ลี�ยนค่าต่รรกะ
ได� เม่�อส่งขี�อม้ลครบ ๘ บิต่แล�ว แม่ขี่ายต่�องรับขี�อม้ลต่อบรับ (acknowledge) ขีนาด ๑ บิต่จากล้กขี่ายเพื่่�อจะ
ได�ทราบว่าล้กขี่าย “รับแล�ว/ไม่รับแล�ว” (ACK/NACK: “0”/”1”) ถ�าขี�อม้ลต่อบรับมีค่าต่รรกะ “0” (ACK) ก็
แสดงว่าส่งขี�อขี�อม้ลได�สำเร็จ แต่่ถ�าเป็็นต่รรกะ “1” (NACK) ก็แสดงว่าส่งไม่สำเร็จ และแม่ขี่ายต่�องหยุดส่งขี�อม้ล
กระบวนการทั�งหมดในขีั�นต่อนนี�หมายถ่งว่า แม่ขี่ายต่�องใช�สัญญาณ SCL ในภาพื่ขีองพื่ัลส์จำนวน ๙ พื่ัลส์ต่าม
แผนภาพื่สัญญาณ SDA และ SCL ในภาพื่ที� ๖
ภาพื่ที� ๖ แผนภาพื่สัญญาณ SDA และ SCL ระหว่างที�แม่ขี่ายส่ง (หร่อรับ) ขี�อม้ล ๘ บิต่แล�วรับ (หร่อ
ส่ง) ขี�อม้ลต่อบรับ ๑ บิต่
ในกรณีที�อุป็กรณ์ล้กขี่ายเป็็นอีอีพื่ร็อมแบบอนุกรม AT24C256 ต่ามภาพื่ที� ๔ ขี�อม้ลขีนาด ๘ บิต่ที�
แม่ขี่ายส่งให�ในขีั�นต่อนนี�จะถ้กกำหนดเป็็น (D7 D6 D5 D4 D3 D2 D1 D0) = (A6 A5 A4 A3 A2 A1 A0 W)
= 10100000b ในระบบจำนวนฐานสอง ซึ่่�งเท่ากับ A0h ในระบบจำนวนฐานสิบหก
๓. แม่ขี่ายส่งขี�อม้ลเพื่ิ�มเต่ิมที�จำเป็็นสำหรับควบคุมการทำงานขีองล้กขี่าย อย่างเช่นหมายเลขีเรจิสเต่อร์
ที�จะรับขี�อม้ลในล้กขี่าย หร่อจำนวนไบต่์ขี�อม้ลทั�งหมดที�แม่ขี่ายจะส่งให�ล้กขี่าย ในกรณีที�ล้กขี่ายเป็็นอีอีพื่ร็อม
แบบอนุกรม ขี�อม้ลเพื่ิ�มเต่ิมในขีั�นต่อนนี�ก็ค่อเลขีที�อย้่เริ�มต่�น (start address) ขีนาด ๒ ไบต่์ (๑๖ บิต่) สำหรับ
การเขีียนขี�อม้ลใช�งาน (working data) ลงในอีอีพื่ร็อม โดยที�ไบต่์แรกมีนัยสำคัญส้งกว่าไบต่์ที� ๒
๔. แม่ขี่ายส่งขี�อม้ลใช�งานที�เกี�ยวขี�องไป็ยังล้กขี่ายต่ามจำนวนที�ต่�องการ หร่อต่ามจำนวนที�ล้กขี่าย
อนุญาต่ ในกรณีที�ล้กขี่ายเป็็นอีอีพื่ร็อมแบบอนุกรม จำนวนขี�อม้ลที�ล้กขี่ายอนุญาต่ให�แม่ขี่ายส่งได�ในแต่่ละรอบ
จะมีค่าส้งสุดจำกัดต่ายต่ัว เช่น ๓๒ ไบต่์หร่อ ๖๔ ไบต่์ ขี่�นอย้่กับขีนาดความจุขีองล้กขี่าย (สำหรับอีอีพื่ร็อม
AT24C256 ค่าจำนวนขี�อม้ลใช�งานส้งสุดที�จะเขีียนได�ในแต่่ละรอบค่อ ๖๔ ไบต่์ โป็รดด้ Atmel, 2009: 10)
๕. เม่�อได�ส่งขี�อม้ลครบต่ามที�ต่�องการหร่อต่ามจำนวนที�ได�รับอนุญาต่แล�ว แม่ขี่ายจะส่งสัญญาณ “ลำดับ
หยุด” (stop sequence) โดยให�สายสัญญาณ SDA เป็ลี�ยนค่าต่รรกะจาก “0” (แรงดันไฟฟ้า ๐ โวลต่์) ไป็เป็็น