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” (แรงดันไฟฟ้า ๐ โวลต่์) ไป็เป็็น
   13   14   15   16   17   18   19   20   21   22   23