SlideShare a Scribd company logo
คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0

BIT MODIFY INSTRUCTION

           คําสั่งนี้ใชสําหรับสั่งเปลี่ยนแปลงแกไขขอมูลในรีจิสเตอรของ MCP2515 เฉพาะในตําแหนงบิตที่
ตองการเทานั้น ทั้งนี้ก็เนื่องจากวาโดยปรกติแลว รีจิสเตอรของ MCP2515 มีขนาด 8 บิต แตในบางกรณีมี
ความจําเปนตองสังเปลี่ยนแปลงแกไขขอมูลในรีจิสเตอรเพียงบางบิต สวนบิตอื่นๆยังคงตองการใหมีคาคง
                        ่                                                                          
เดิมไว แตเนื่องจากโครงสรางสถาปตยกรรมของ MCP2515 ไมสามารถเขาถึงขอมูลในระดับบิตเพื่อทําการ
แกไขเปลี่ยนแปลงคาขอมูลเปนรายบิตไดเองโดยตรง ดังนั้น วิธีการตามปรกติเมื่อตองการเปลี่ยนแปลง
แกไขขอมูลเพียงบางบิตนั้น โดยทั่วไปจะตองทําการสั่งอานคาขอมูลเดิมออกมาจากรีจิสเตอรแลวทําการสั่ง
กระทําทางโลจิกเพื่อเปลี่ยนแปลงแกไขขอมูลบิตที่ตองการ เมื่อเสร็จเรียบรอยแลว จึงทําการสั่งเขียนขอมูล
นั้นกลับไปยังรีจิสเตอรของ MCP2515 ใหมอีกครั้งหนึง ซึ่งในการสั่งอานและเขียนขอมูลใหกับรีจิสเตอรของ
                                                          ่
MCP2515 นั้นตองกระทําผาน SPI ซึ่งตองมีการสงลําดับคําสั่ง ตําแหนงรีจิสเตอร และ ขอมูล เรียงลําดับ
กันไปครั้งละ 24บิต ถาตองมีการสั่งเปลี่ยนแปลงคาขอมูลเพียงบิตใดบิตหนึ่งซ้ําๆกันหลายๆครั้ง จะทําให
เกิดความลาชาเสียเวลาเปนอยางมาก
           แตเมื่อใชคําสั่ง BIT MODIFY นี้จะสามารถชวยลดเวลาในการติดตอสื่อสารเพื่อสั่งงาน MCP2515
ไดเปนอยางมาก ทําใหการทํางานมีความรวดเร็วมากขึ้น แตอยางไรก็ตามคําสั่งนี้จะไมสามารถเขาถึง
รีจิสเตอรของ MCP2515 ไดทงหมด แตจะสามารถเขาถึงรีจิสเตอรไดเพียงบางรีจิสเตอรและบางบิตเทานั้น
                                     ั้
ซึ่งผูใชสามารถตรวจสอบไดจากตาราง รีจิสเตอร MAP ใน Data Sheet ดังรูปตาราง




      แสดง ตําแหนงและบิตขอมูลของรีจิสเตอร           ที่สามารถใชกับคําสั่ง BIT MODIFY ได


ETT CO.,LTD                                 -17-                                 WWW.ETT.CO.TH
คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0

        ซึ่งการเขาถึงของขอมูลแบบบิต ของ MCP2515 นั้นจะไมไดใชการเขาถึงขอมูลระดับบิตโดยตรง
เนื่องจากไมมีรูปแบบคําสั่งการเขาถึงแบบบิตดังไดกลาวไปแลว แตการทํางานของคําสั่ง BIT MODIFY นี้จะ
ใชเทคนิคพิเศษ โดยทํางานรวมกับ Buffer พิเศษที่ออกแบบมารองรับการทํางานโดยเฉพาะ คือ Buffer ของ
MASK BYTE และ DATA BYTE เพื่อนําคาขอมูลใน Buffer ทั้ง 2 ชุดนี้ไปกระทําทางโลจิกกับขอมูลเดิมใน
รีจิสเตอร แลวนําผลลัพธที่ไดเขียนกลับไปใหรีจิสเตอรใหม ซึ่งกระบวนการทั้งหมดนี้กระทําอยูภายในชิพ ใน
สวนของผูใชก็เพียงแตกําหนดคา DATA BYTE และ MASK BYTE ใหคําสั่งเทานั้น
        โดยคําสั่ง BIT MODIFY นี้จะมีขนาด 4 ไบท โดยไบทแรกเปนรหัสคําสั่งมีคา 0x05 (0000 0101)
สวนไบทที่ 2 เปนคาตําแหนงรีจิสเตอร และ คาไบทที่ 3 และ ไบทท4 จะเปนคาของ MASK BYTE และ
                                                                      ี่
DATA BYTE ตามลําดับ
             • MASK BYTE เปนคาสําหรับกําหนดตําแหนงบิตขอมูลที่ตองการเปลี่ยนแปลงคา โดยถา
                  ตองการเปลี่ยนแปลงแกไขขอมูลในบิตใดของรีจิสเตอรก็ใหกําหนดคาใน MASK BYTE ใน
                  ตําแหนงบิตเดียวกันใหมีคาเปน “1” สวนตําแหนงบิตใดที่ไมตองการเปลี่ยนแปลงคา ก็ให
                  กําหนดใหมีคาเปน “0” ไว
             • DATA BYTE เปนคาที่ตองการกําหนดเปนคาขอมูลชุดใหมที่จะเขียนไปยังรีจิสเตอร ซึ่      ง
                  ขอมูลนี้จะมีผลไปเปลี่ยนแปลงแกไขคาใหมใหกับรีจิสเตอรของMCP2515 เฉพาะตําแหนง
                  ที่ตรงกันกับบิตที่มคาเปน ”1” ใน MASK BYTE เทานั้น เชนถากําหนดคาของ DATA
                                     ี
                  BYTE เปน 0x21 (0010 0001) และ กําหนดคา MASK BYTE เปน 0x35 (0011 0101) จะ
                  ทําใหคาในรีจิสเตอรใหมมีคาเปน XX10 X0X1 โดยขอมูลใน บิตที่ 1,3,6 และ 7 จะมีคาคง
                  เดิมไมเปลี่ยนแปลงตามคาใหมใน DATA BYTE ดังรูป




ETT CO.,LTD                                  -18-                                 WWW.ETT.CO.TH
คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0




                 แสดง รูปสัญญาณ SPI ของคําสั่ง BIT MODIFY INSTRUCTION




BYTE WRITE INSTRUCTION

         คําสั่งนี้ใชสําหรับเขียนขอมูลไปยังรีจิสเตอรของ MCP2515 โดยในชุดคําสั่งนี้จะมีจํานวน 3 ไบท
หรือมากกวาในกรณีเขียนแบบเรียงลําดับตอเนื่อง โดยไบทแรกเปนรหัสคําสั่ง มีคาเปน 0x02 (0000 0010)
สวนไบทที่ 2 เปนคาตําแหนงแอดเดรสเริ่มตนของรีจิสเตอรที่ตองการเขียนขอมูลให และไบทท3 เปนคา
                                                                                              ี่
ขอมูลไบทแรกที่ตองการเขียนไปยังรีจิสเตอร ซึ่งถาตองการเขียนขอมูลไบทถัดไปใหกับรีจิสเตอรตําแหนที่
                                                                                                   ง
อยูตอเนื่องกันไปจากตําแหนงปจจุบันก็สามารถเขียนขอมูลไบทถัดไป เรียงลําดับกันไปไดอีกครั้งละ1 ไบท
โดยไมจําเปนตองสงรหัสคําสั่งและคาตําแหนงแอดเดรสเริ่มตนใหมแตอยางใด โดยเมื่อตองการสิ้นสุดการ
เขียนก็ใหทําการเปลี่ยนสัญญาณ CS# กลับเปน “1” โดยมีรปแบบของสัญญาณในการสื่อสารดังนี้
                                                            ู




                 แสดง รูปสัญญาณ SPI ของคําสั่ง BYTE WRITE INSTRUCTION




ETT CO.,LTD                                 -19-                                 WWW.ETT.CO.TH

More Related Content

PPT
CME Boards & Finances July 2012 Presentation
PPT
1 2 programming
PDF
Man et mini spi can1
PPT
Kam Habibi
DOC
ðIều kiện bảo hiểm c
PPSX
Project in Mapeh
PDF
Man et mini spi can3
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
CME Boards & Finances July 2012 Presentation
1 2 programming
Man et mini spi can1
Kam Habibi
ðIều kiện bảo hiểm c
Project in Mapeh
Man et mini spi can3
2024 Trend Updates: What Really Works In SEO & Content Marketing
Ad

Man et mini spi can2

  • 1. คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0 BIT MODIFY INSTRUCTION คําสั่งนี้ใชสําหรับสั่งเปลี่ยนแปลงแกไขขอมูลในรีจิสเตอรของ MCP2515 เฉพาะในตําแหนงบิตที่ ตองการเทานั้น ทั้งนี้ก็เนื่องจากวาโดยปรกติแลว รีจิสเตอรของ MCP2515 มีขนาด 8 บิต แตในบางกรณีมี ความจําเปนตองสังเปลี่ยนแปลงแกไขขอมูลในรีจิสเตอรเพียงบางบิต สวนบิตอื่นๆยังคงตองการใหมีคาคง ่  เดิมไว แตเนื่องจากโครงสรางสถาปตยกรรมของ MCP2515 ไมสามารถเขาถึงขอมูลในระดับบิตเพื่อทําการ แกไขเปลี่ยนแปลงคาขอมูลเปนรายบิตไดเองโดยตรง ดังนั้น วิธีการตามปรกติเมื่อตองการเปลี่ยนแปลง แกไขขอมูลเพียงบางบิตนั้น โดยทั่วไปจะตองทําการสั่งอานคาขอมูลเดิมออกมาจากรีจิสเตอรแลวทําการสั่ง กระทําทางโลจิกเพื่อเปลี่ยนแปลงแกไขขอมูลบิตที่ตองการ เมื่อเสร็จเรียบรอยแลว จึงทําการสั่งเขียนขอมูล นั้นกลับไปยังรีจิสเตอรของ MCP2515 ใหมอีกครั้งหนึง ซึ่งในการสั่งอานและเขียนขอมูลใหกับรีจิสเตอรของ ่ MCP2515 นั้นตองกระทําผาน SPI ซึ่งตองมีการสงลําดับคําสั่ง ตําแหนงรีจิสเตอร และ ขอมูล เรียงลําดับ กันไปครั้งละ 24บิต ถาตองมีการสั่งเปลี่ยนแปลงคาขอมูลเพียงบิตใดบิตหนึ่งซ้ําๆกันหลายๆครั้ง จะทําให เกิดความลาชาเสียเวลาเปนอยางมาก แตเมื่อใชคําสั่ง BIT MODIFY นี้จะสามารถชวยลดเวลาในการติดตอสื่อสารเพื่อสั่งงาน MCP2515 ไดเปนอยางมาก ทําใหการทํางานมีความรวดเร็วมากขึ้น แตอยางไรก็ตามคําสั่งนี้จะไมสามารถเขาถึง รีจิสเตอรของ MCP2515 ไดทงหมด แตจะสามารถเขาถึงรีจิสเตอรไดเพียงบางรีจิสเตอรและบางบิตเทานั้น ั้ ซึ่งผูใชสามารถตรวจสอบไดจากตาราง รีจิสเตอร MAP ใน Data Sheet ดังรูปตาราง แสดง ตําแหนงและบิตขอมูลของรีจิสเตอร ที่สามารถใชกับคําสั่ง BIT MODIFY ได ETT CO.,LTD -17- WWW.ETT.CO.TH
  • 2. คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0 ซึ่งการเขาถึงของขอมูลแบบบิต ของ MCP2515 นั้นจะไมไดใชการเขาถึงขอมูลระดับบิตโดยตรง เนื่องจากไมมีรูปแบบคําสั่งการเขาถึงแบบบิตดังไดกลาวไปแลว แตการทํางานของคําสั่ง BIT MODIFY นี้จะ ใชเทคนิคพิเศษ โดยทํางานรวมกับ Buffer พิเศษที่ออกแบบมารองรับการทํางานโดยเฉพาะ คือ Buffer ของ MASK BYTE และ DATA BYTE เพื่อนําคาขอมูลใน Buffer ทั้ง 2 ชุดนี้ไปกระทําทางโลจิกกับขอมูลเดิมใน รีจิสเตอร แลวนําผลลัพธที่ไดเขียนกลับไปใหรีจิสเตอรใหม ซึ่งกระบวนการทั้งหมดนี้กระทําอยูภายในชิพ ใน สวนของผูใชก็เพียงแตกําหนดคา DATA BYTE และ MASK BYTE ใหคําสั่งเทานั้น โดยคําสั่ง BIT MODIFY นี้จะมีขนาด 4 ไบท โดยไบทแรกเปนรหัสคําสั่งมีคา 0x05 (0000 0101) สวนไบทที่ 2 เปนคาตําแหนงรีจิสเตอร และ คาไบทที่ 3 และ ไบทท4 จะเปนคาของ MASK BYTE และ ี่ DATA BYTE ตามลําดับ • MASK BYTE เปนคาสําหรับกําหนดตําแหนงบิตขอมูลที่ตองการเปลี่ยนแปลงคา โดยถา ตองการเปลี่ยนแปลงแกไขขอมูลในบิตใดของรีจิสเตอรก็ใหกําหนดคาใน MASK BYTE ใน ตําแหนงบิตเดียวกันใหมีคาเปน “1” สวนตําแหนงบิตใดที่ไมตองการเปลี่ยนแปลงคา ก็ให กําหนดใหมีคาเปน “0” ไว • DATA BYTE เปนคาที่ตองการกําหนดเปนคาขอมูลชุดใหมที่จะเขียนไปยังรีจิสเตอร ซึ่ ง ขอมูลนี้จะมีผลไปเปลี่ยนแปลงแกไขคาใหมใหกับรีจิสเตอรของMCP2515 เฉพาะตําแหนง ที่ตรงกันกับบิตที่มคาเปน ”1” ใน MASK BYTE เทานั้น เชนถากําหนดคาของ DATA ี BYTE เปน 0x21 (0010 0001) และ กําหนดคา MASK BYTE เปน 0x35 (0011 0101) จะ ทําใหคาในรีจิสเตอรใหมมีคาเปน XX10 X0X1 โดยขอมูลใน บิตที่ 1,3,6 และ 7 จะมีคาคง เดิมไมเปลี่ยนแปลงตามคาใหมใน DATA BYTE ดังรูป ETT CO.,LTD -18- WWW.ETT.CO.TH
  • 3. คูมือการใชงานบอรด ET-MINI SPI CAN CONTROL V1.0 แสดง รูปสัญญาณ SPI ของคําสั่ง BIT MODIFY INSTRUCTION BYTE WRITE INSTRUCTION คําสั่งนี้ใชสําหรับเขียนขอมูลไปยังรีจิสเตอรของ MCP2515 โดยในชุดคําสั่งนี้จะมีจํานวน 3 ไบท หรือมากกวาในกรณีเขียนแบบเรียงลําดับตอเนื่อง โดยไบทแรกเปนรหัสคําสั่ง มีคาเปน 0x02 (0000 0010) สวนไบทที่ 2 เปนคาตําแหนงแอดเดรสเริ่มตนของรีจิสเตอรที่ตองการเขียนขอมูลให และไบทท3 เปนคา ี่ ขอมูลไบทแรกที่ตองการเขียนไปยังรีจิสเตอร ซึ่งถาตองการเขียนขอมูลไบทถัดไปใหกับรีจิสเตอรตําแหนที่ ง อยูตอเนื่องกันไปจากตําแหนงปจจุบันก็สามารถเขียนขอมูลไบทถัดไป เรียงลําดับกันไปไดอีกครั้งละ1 ไบท โดยไมจําเปนตองสงรหัสคําสั่งและคาตําแหนงแอดเดรสเริ่มตนใหมแตอยางใด โดยเมื่อตองการสิ้นสุดการ เขียนก็ใหทําการเปลี่ยนสัญญาณ CS# กลับเปน “1” โดยมีรปแบบของสัญญาณในการสื่อสารดังนี้ ู แสดง รูปสัญญาณ SPI ของคําสั่ง BYTE WRITE INSTRUCTION ETT CO.,LTD -19- WWW.ETT.CO.TH