เฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์ PIC ตั้งแต่เริ่มต้น บทช่วยสอนเกี่ยวกับการเขียนโปรแกรมคอนโทรลเลอร์ PIC สำหรับผู้เริ่มต้น

เมื่อสร้างไดอะแกรม จำเป็นต้องมีบางคนหรือบางสิ่งควบคุมการดำเนินการตามที่จำเป็น สำหรับมนุษย์สิ่งนี้ค่อนข้างเป็นปัญหาเนื่องจากจำเป็นต้องใช้องค์ประกอบต่าง ๆ จำนวนมากเพื่อควบคุมการทำงานของพวกมัน (ทรานซิสเตอร์, ตัวต้านทาน, ไทริสเตอร์, ไดโอด, ตัวเก็บประจุและอื่น ๆ ) แต่วงจรที่ซับซ้อนและขนาดใหญ่ทั้งหมดสามารถควบคุมได้โดยใช้ตัวควบคุม (ไมโครคอนโทรลเลอร์) พวกเขาจะอธิบายอะไรโดยใช้ตัวอย่างครอบครัว RIS แล้วสำหรับหุ่นล่ะ? โครงการของพวกเขาคืออะไรและใช้ที่ไหน

ไมโครคอนโทรลเลอร์ PIC คืออะไร

ตัวควบคุม PIC (หรือไมโครคอนโทรลเลอร์) เป็นวิธีการดำเนินการอัตโนมัติของการดำเนินการบางอย่างโดยใช้โปรแกรมที่เตรียมไว้ล่วงหน้า คุณลักษณะของตัวแทนของกลุ่มผลิตภัณฑ์นี้คือความง่ายในการเขียนโปรแกรมและความพร้อมใช้งานของฟังก์ชันที่จำเป็นทั้งหมดสำหรับการทำงาน เมื่อสรุปการออกแบบแล้ว ควรสังเกตว่ามีคริสตัลซิลิคอนเพียงอันเดียว (นี่เป็นคุณลักษณะเฉพาะของไมโครคอนโทรลเลอร์ทั้งหมด) นอกจากนั้น คอนโทรลเลอร์ PIC ยังมีขาจำนวนหนึ่งอีกด้วย บางส่วนสามารถใช้เป็นอินพุตแบบลอจิคัล บางส่วนเป็นเอาต์พุต ส่วนที่เหลือมีการใช้แบบสองทาง ขาอาจเป็นแบบดิจิทัลหรือแอนะล็อกก็ได้

เพื่อให้ตัวควบคุม PIC ส่วนใหญ่ทำงานได้ ต้องใช้แรงดันไฟฟ้าที่เสถียรที่ 5V นี่เพียงพอแล้วสำหรับเขาที่จะทำงานในโหมดปกติและดำเนินโปรแกรมที่ได้รับมอบหมาย ไม่สามารถโดยตรงจากคอมพิวเตอร์ได้ โปรแกรมเมอร์ใช้เพื่อจุดประสงค์นี้

ครอบครัวผู้ควบคุม

ตัวควบคุม PIC ไม่มีอยู่ในสำเนาเดียว ผู้ผลิตผลิตไมโครคอนโทรลเลอร์จำนวนมากซึ่งแต่ละอันมีลักษณะเฉพาะ ความสามารถ และการใช้งานที่เป็นไปได้ของตัวเอง จำนวนครอบครัวนั้นค่อนข้างใหญ่และขึ้นอยู่กับคุณสมบัติการจำแนกประเภทซึ่งถือเป็นคุณสมบัติหลัก ดังนั้นจึงควรรายงานเฉพาะการจำแนกประเภทหลักซึ่งมีเพียงสามตระกูล: 8-, 16- และ 32- บิต ในทางกลับกันพวกเขาถูกแบ่งออกเป็นกลุ่มอื่น ๆ แต่เนื่องจากครอบครัวไม่ใช่หัวข้อของบทความ พวกเขาจึงไม่ได้พูดคุยกัน

มันใช้ที่ไหน?

เนื่องจากมีความสามารถรอบด้าน คอนโทรลเลอร์ PIC จึงสามารถใช้งานได้เกือบทุกที่ ไมโครคอนโทรลเลอร์สามารถพบได้ในตู้เย็น โทรทัศน์ และเครื่องซักผ้า แต่กลุ่มผลิตภัณฑ์ PIC มีลักษณะพิเศษตรงที่วงจรที่ใช้ตัวควบคุม PIC นั้นเป็นที่นิยมในหมู่นักวิทยุสมัครเล่นและนักหุ่นยนต์ที่เรียนรู้ด้วยตนเอง ด้วยความช่วยเหลือเหล่านี้ คุณสามารถกำหนดค่าการทำงานของหน่วยหรืออุปกรณ์ทั้งหมดได้อย่างง่ายดาย ความนิยมนี้ได้รับการอำนวยความสะดวกด้วยราคาที่สมเหตุสมผล ความง่ายในการเขียนโปรแกรม และสื่อการเรียนรู้จำนวนมาก

คุณสามารถใช้ตัวควบคุม PIC เมื่อสร้างแขนหุ่นยนต์และในงานฝีมืออื่นๆ ที่สามารถทำได้ด้วยงบประมาณที่พอเหมาะ นอกจากนี้ยังสามารถใช้กับอุตสาหกรรมบางอย่างได้ - หัวข้อของการสร้างเครื่องจักรโฮมเมดอัตโนมัติที่ควบคุมโดยไมโครคอนโทรลเลอร์นั้นค่อนข้างเป็นที่นิยม มีขอบเขตการใช้งานที่กว้างขวาง และด้วยแนวทางที่ถูกต้อง เกือบทุกวัตถุประสงค์จึงสามารถบรรลุวัตถุประสงค์ได้ ดังนั้น วงจรบนตัวควบคุม PIC จึงไม่เพียงแต่สามารถมองเห็นได้ในการสร้างสรรค์ของมือสมัครเล่นเท่านั้น

ซอฟต์แวร์สำหรับการทำงานกับคอนโทรลเลอร์ PIC

ซอฟต์แวร์ขั้นต่ำที่จำเป็นคือแผ่นจดบันทึก แต่เนื่องจากการแจกจ่ายฟรี คุณจึงสามารถใช้ซอฟต์แวร์ MPLAB ที่ผู้ผลิตนำเสนอได้ แม่นยำยิ่งขึ้นคือกลุ่มเครื่องมือซอฟต์แวร์ (สภาพแวดล้อมการพัฒนา คอมไพเลอร์) MPLAB ด้วยนโยบายของบริษัท จึงสามารถแจกจ่ายได้ฟรี แต่มีข้อจำกัดบางประการ ดังนั้น ด้วยเวอร์ชันสาธิตระยะสั้น คุณสามารถทดลองใช้ฟีเจอร์ทั้งหมดได้ แต่หลังจากสิ้นสุด ฟังก์ชันการทำงานของโปรแกรมจะลดลง โปรแกรมที่ครบครันประกอบด้วยเครื่องมือสำคัญที่ช่วยให้สร้างโปรแกรมได้ง่าย ค้นหาพื้นที่ปัญหาต่างๆ และเพิ่มประสิทธิภาพโค้ดได้อย่างสะดวก คุณลักษณะการปรับโค้ดให้เหมาะสมอาจถูกยกเลิกหรือจำนวนตัวควบคุมที่โปรแกรมรองรับอาจลดลง ทั้งนี้ขึ้นอยู่กับเวอร์ชัน เพื่อความจริง สมควรที่จะกล่าวว่าบริษัทให้การสนับสนุนเฉพาะตัวแทนที่ได้รับความนิยมสูงสุดเท่านั้น

นอกจากนี้ยังมีซอฟต์แวร์จำนวนหนึ่งที่จัดทำโดยบริษัทอื่น โดยทั่วไปฟังก์ชันการทำงานจะคล้ายกัน แต่ก็มีความแตกต่างเช่นกัน ดังนั้น หลายคนแสดงความไม่พอใจที่ MPLAB มีการออกแบบที่ไม่ซื่อสัตย์ต่อผู้ใช้ ดังนั้นผู้ผลิตจึงต้องรักษาฟังก์ชันที่ถูกตัดทอนและใช้งานง่ายด้วยซอฟต์แวร์ของตน โปรแกรมสำหรับตัวควบคุม PIC จึงมีความหลากหลายมาก ดังนั้นนี่จึงเป็นเรื่องของรสนิยมเป็นส่วนใหญ่

การสร้างโปรแกรมสำหรับคอนโทรลเลอร์ PIC

คุณสามารถสร้างโปรแกรมพิเศษโดยใช้ซอฟต์แวร์ที่เหมาะสมและแม้แต่ในแผ่นจดบันทึกธรรมดา ความเป็นไปได้นี้มีอยู่เนื่องจากการทำงานร่วมกับภาษาการเขียนโปรแกรมเช่นแอสเซมบลีและซี ข้อแตกต่างที่สำคัญคือจำนวนข้อมูลที่จะเขียนและความสะดวกในการระบุข้อมูล คุณได้ยินมามากมายเกี่ยวกับความซับซ้อนของ C แต่แอสเซมเบลอร์นั้นซับซ้อนยิ่งกว่าและต้องการแนวทางที่ระมัดระวังมากขึ้น

ดังนั้นเมื่อสร้างโปรแกรมคุณต้องระบุว่าโปรแกรมนั้นมีไว้สำหรับคอนโทรลเลอร์ตัวใด คุณอาจต้องทำการปรับเปลี่ยนหลายอย่าง แต่จะต้องทำหากคุณมีประสบการณ์หรือมั่นใจในความสามารถของคุณ เพราะข้อผิดพลาดอาจทำให้ไมโครคอนโทรลเลอร์กลายเป็นชิ้นพลาสติกและเหล็กธรรมดาได้

การเขียนโปรแกรมด้วยโปรแกรมเมอร์

แต่จะถ่ายโอนโปรแกรมที่พัฒนาแล้วไปยังไมโครคอนโทรลเลอร์ได้อย่างไร? การเขียนโปรแกรมไมโครคอนโทรลเลอร์ทำอย่างไร? มีอุปกรณ์พิเศษเพื่อการนี้โดยเฉพาะ - โปรแกรมเมอร์ โดยจะส่งสัญญาณไปยังไมโครคอนโทรลเลอร์เพื่อเปลี่ยนเซลล์หน่วยความจำตามโปรแกรม ในการเริ่มกระบวนการถ่ายโอนข้อมูล คุณจะต้องใส่ไมโครคอนโทรลเลอร์ลงในโปรแกรมเมอร์ จากนั้นไมโครคอนโทรลเลอร์จะเชื่อมต่อกับคอมพิวเตอร์ จากนั้นคุณควรรันเฟิร์มแวร์โดยใช้ซอฟต์แวร์ โดยทั่วไปการตั้งโปรแกรมคอนโทรลเลอร์ PIC จะใช้เวลาตั้งแต่สามสิบวินาทีถึงสองนาที

ประเภทของโปรแกรมเมอร์

ฉันควรเลือกโปรแกรมเมอร์คนไหนเขียนโปรแกรมลงไมโครคอนโทรลเลอร์ โดยทั่วไปแล้ว สามารถแยกแยะได้สามประเภท: ทำเองจากบริษัทผู้ผลิต และผลิตจากโรงงานจากบริษัทอื่น การใช้แต่ละอย่างมีลักษณะเฉพาะของตัวเอง

ดังนั้นโปรแกรมเมอร์แบบโฮมเมดจึงมีราคาถูกมาก แต่การใช้งานของพวกเขาเสี่ยงต่อความจริงที่ว่าพวกเขาสามารถเปลี่ยนไมโครคอนโทรลเลอร์ให้กลายเป็นชิ้นพลาสติกและเหล็กได้อย่างง่ายดาย และการเขียนโปรแกรมไมโครคอนโทรลเลอร์ในกรณีเช่นนี้อาจส่งผลที่ไม่พึงประสงค์ในรูปแบบของไฟฟ้าช็อตได้ ดังนั้นคุณควรปฏิบัติตามข้อควรระวังด้านความปลอดภัย นอกจากนี้ หากคุณทำเองตั้งแต่ต้น คุณมักจะได้ผลิตภัณฑ์ที่มีความเป็นไปได้ค่อนข้างจำกัดในการเปลี่ยนวัตถุประสงค์ของงาน แต่บนเวิลด์ไวด์เว็บคุณสามารถค้นหาวิธีแก้ไขปัญหานี้ได้จำนวนมากซึ่งเสนอโดยบุคคลอื่นและอาจไม่ทำให้คุณเกิดปัญหา

โปรแกรมเมอร์ดั้งเดิมจากผู้ผลิตจะสามารถทำงานได้อย่างมีประสิทธิภาพกับไมโครคอนโทรลเลอร์ มีการรับประกัน และหากใช้งานไม่ได้หลังจากได้รับแล้ว เปลี่ยนใหม่ก็ไม่ใช่ปัญหา แต่เป็นเรื่องปกติที่จะแฟลชเฟิร์มแวร์ตัวควบคุม PIC โดยไม่มีปัญหาใด ๆ

แต่ราคาค่อนข้างสูงทำให้ฉันหยุดซื้อมัน

โปรแกรมเมอร์ที่ผลิตโดยบริษัทอื่นมีวัตถุที่ใช้ทำงานค่อนข้างหลากหลาย คุณลักษณะของพวกเขาคือราคาที่ต่ำและ/หรือความสามารถในการทำงานกับไมโครคอนโทรลเลอร์อื่นที่ไม่ใช่ PIC นอกจากนี้ยังมี "สัตว์ประหลาด" ที่เป็นสากลอย่างแท้จริงที่สามารถให้บริการได้หลายประเภท แต่เนื่องจากจำเป็นต้องสร้างการเชื่อมต่อจำนวนมาก ราคาของพวกมันจึงไม่ต่ำเลย

คุณสมบัติแผนผัง

และสุดท้ายก็บางคำเกี่ยวกับโครงร่างรูปภาพ คุณควรได้รับคำแนะนำจากขาตามเอกสารประกอบเนื่องจากแผนผังของไมโครคอนโทรลเลอร์มักจะแตกต่างจากโครงสร้างจริงของพิน สิ่งสำคัญในกรณีเช่นนี้คือการลงนามข้อสรุปและคุณควรได้รับคำแนะนำในการสร้างอุปกรณ์

ตัวควบคุม PIC ยังคงได้รับความนิยมในการใช้งานที่ต้องการระบบที่มีต้นทุนต่ำ กะทัดรัด และใช้พลังงานต่ำ ซึ่งไม่ต้องการข้อกำหนดในการควบคุมที่สูง คอนโทรลเลอร์เหล่านี้ช่วยให้คุณสามารถแทนที่ลอจิกฮาร์ดแวร์ด้วยซอฟต์แวร์ที่ยืดหยุ่นซึ่งโต้ตอบกับอุปกรณ์ภายนอกผ่านพอร์ตที่ดี

ตัวควบคุม PIC ขนาดเล็กเหมาะสำหรับการสร้างตัวแปลงสำหรับอินเทอร์เฟซการส่งข้อมูลแบบอนุกรม สำหรับการใช้งานฟังก์ชัน "การรับ - การประมวลผล - การส่งข้อมูล" และตัวควบคุมอย่างง่ายของระบบควบคุมอัตโนมัติ

Microchip จัดจำหน่าย MPLAB ซึ่งเป็นสภาพแวดล้อมการแก้ไขและดีบักโปรแกรมแบบผสานรวมฟรี ซึ่งเขียนไฟล์ไบนารีไปยังไมโครคอนโทรลเลอร์ PIC ผ่านทางโปรแกรมเมอร์

การโต้ตอบของ MPLAB และ Matlab/Simulink ช่วยให้คุณสามารถพัฒนาโปรแกรมสำหรับตัวควบคุม PIC ในสภาพแวดล้อม Simulink - การสร้างแบบจำลองกราฟิกและการวิเคราะห์ระบบไดนามิก งานนี้กล่าวถึงเครื่องมือการเขียนโปรแกรมคอนโทรลเลอร์ PIC: โปรแกรมเมอร์ MPLAB, Matlab/Simulink และ PIC-KIT3 ในส่วนต่อไปนี้

ลักษณะของคอนโทรลเลอร์ PIC ขนาดเล็ก PIC12F629
สภาพแวดล้อมการพัฒนาแบบรวม MPLAB IDE
การเชื่อมต่อ Matlab/Simulink กับ MPLAB
การเชื่อมต่อโปรแกรมเมอร์ PIC-KIT3

ลักษณะของคอนโทรลเลอร์ PIC ขนาดเล็ก

ตระกูล PIC12xxx ประกอบด้วยคอนโทรลเลอร์ในแพ็คเกจ 8 พินขนาดเล็กพร้อมตัวสร้างสัญญาณนาฬิกาในตัว ตัวควบคุมมีสถาปัตยกรรม RISC และรับประกันการดำเนินการคำสั่งของโปรเซสเซอร์ส่วนใหญ่ในรอบเครื่องเดียว

ตามตัวอย่างด้านล่างเป็นคุณลักษณะของคอนโทรลเลอร์ PIC12F629 8 บิตขนาดกะทัดรัดราคาไม่แพงพร้อมพอร์ตมัลติฟังก์ชั่น การสิ้นเปลืองพลังงานต่ำ และช่วงพลังงานที่กว้าง

สถาปัตยกรรม: RISC
แรงดันไฟฟ้า VDD: 2.0V ถึง 5.5V (< 6,5В)
การบริโภค:
- <1,0 мА @ 5,5В, 4МГц
- 20 µA (ทั่วไป) @ 32 kHz, 2.0V
- <1,0 мкА (тип) в режиме SLEEP@2,0В
การกระจายพลังงาน: 0.8W
ช่อง I/O มัลติฟังก์ชั่น: 6/5
กระแสไฟขาออกสูงสุดของพอร์ต GPIO: 125mA
กระแสไฟฟ้าผ่านตัวต้านทานแบบพูลอัพพอร์ตภายในที่ตั้งโปรแกรมได้: ≥50 (250) ≤400 µA @ 5.0V
ขนาดคอนโทรลเลอร์: 8
ความถี่สัญญาณนาฬิกาจากออสซิลเลเตอร์ภายนอก: 20 MHz
รอบเวลาของเครื่อง: 200ns
ความถี่สัญญาณนาฬิกาจากออสซิลเลเตอร์ RC ภายใน: 4 MHz ± 1%
รอบเวลาของเครื่อง: 1µs
หน่วยความจำโปรแกรม FLASH: 1K
จำนวนรอบการลบ/เขียน: ≥1000
หน่วยความจำข้อมูลแรม: 64
หน่วยความจำข้อมูล EEPROM: 128
จำนวนรอบการลบ/เขียน: ≥10K (-40оС ≤TA≤ +125 оС)
การลงทะเบียนวัตถุประสงค์พิเศษของฮาร์ดแวร์: 16
รายการคำสั่ง: 35 คำสั่ง คำสั่งทั้งหมดดำเนินการในรอบเครื่องเดียว
ยกเว้นคำสั่ง Jump ที่ทำงาน 2 รอบ
กองฮาร์ดแวร์: 8 ชั้น
ตัวจับเวลา/ตัวนับ TMR0: 8 บิตพร้อมพรีสเกลเลอร์
ตัวจับเวลา/ตัวนับ TMR1: 16 บิตพร้อมพรีสเกลเลอร์

คุณสมบัติเพิ่มเติม:
รีเซ็ตการเปิดเครื่อง (พ่อ)
รีเซ็ตตัวจับเวลา (เครื่องกำเนิดไฟฟ้า PWRT เริ่มจับเวลารอ (OST)
รีเซ็ตแรงดันตก (BOD)
Watchdog จับเวลา WDT
เอาต์พุตมัลติเพล็กซ์ -MCLR
ระบบอินเตอร์รัปต์สำหรับเปลี่ยนระดับสัญญาณที่อินพุต
ตัวต้านทานแบบพูลอัพที่ตั้งโปรแกรมแยกกันได้สำหรับแต่ละอินพุต
การป้องกันอินพุตที่ตั้งโปรแกรมได้
โหมดพลังงานต่ำ SLEEP
การเลือกโหมดการทำงานของเครื่องกำเนิดสัญญาณนาฬิกา
การเขียนโปรแกรมในวงจร ICSP โดยใช้สองพิน
รหัสเซลล์แบบกำหนดเองสี่รายการ

จำกัดอุณหภูมิการทำงานสำหรับรุ่น E (ช่วงขยาย) ตั้งแต่ -40°C ถึง +125°C;
อุณหภูมิการจัดเก็บตั้งแต่ -65°C ถึง +150°C

เทคโนโลยีคอนโทรลเลอร์ CMOS มอบโหมดการทำงานแบบคงที่โดยสมบูรณ์ซึ่งการหยุดเครื่องกำเนิดสัญญาณนาฬิกาจะไม่ทำให้สถานะลอจิคัลของโหนดภายในหายไป
ไมโครคอนโทรลเลอร์ PIC12F629 มีพอร์ต GPIO 6 บิต GP3 หนึ่งพินของพอร์ต GPIO ทำงานเป็นอินพุตเท่านั้น ส่วนพินที่เหลือสามารถกำหนดค่าให้ทำงานเป็นทั้งอินพุตและเอาต์พุตได้ พิน GPIO แต่ละตัวมีบิตเปิดใช้งานการขัดจังหวะสำหรับการเปลี่ยนระดับสัญญาณที่อินพุตและบิตเปิดใช้งานตัวต้านทานแบบดึงขึ้นภายใน

สภาพแวดล้อมการพัฒนาแบบรวม MPLAB IDE

MPLAB IDE - สภาพแวดล้อมการพัฒนาซอฟต์แวร์แบบบูรณาการฟรีสำหรับไมโครคอนโทรลเลอร์ PIC ประกอบด้วยเครื่องมือสำหรับการสร้าง แก้ไข ดีบัก แปล และลิงก์โปรแกรม การเขียนโค้ดเครื่องไปยังไมโครคอนโทรลเลอร์ผ่านโปรแกรมเมอร์

MPLAB เวอร์ชันฟรี (รวมถึง MPLAB 8.92) จะถูกจัดเก็บไว้ในเว็บไซต์ Microchip ในส่วน "ดาวน์โหลด ARCHIVE"

การสร้างโครงการ

ตัวอย่างการสร้างโปรเจ็กต์โปรแกรมคอนโทรลเลอร์ PIC ในสภาพแวดล้อม MPLAB มีขั้นตอนต่อไปนี้

1. ติดต่อผู้จัดการโครงการ

2. การเลือกประเภทของไมโครคอนโทรลเลอร์ PIC


3. เลือกคอมไพลเลอร์ เช่น Microchip MPASM สำหรับแอสเซมเบลอร์


4. เลือกเส้นทางไปยังไดเรกทอรีโครงการ (ปุ่มเรียกดู...) และป้อนชื่อโครงการ

5. คุณไม่จำเป็นต้องเชื่อมต่อไฟล์เข้ากับโปรเจ็กต์ในหน้าต่าง Project Wizard → Step Four ซึ่งสามารถทำได้ในภายหลังภายในโปรเจ็กต์ที่ใช้งานอยู่ ปุ่มถัดไปจะเปิดหน้าต่างถัดไป

6. เสร็จสิ้นการสร้างโปรเจ็กต์ (คีย์ Finish)

จากผลลัพธ์ของการสร้างโปรเจ็กต์ FirstPrMPLAB อินเทอร์เฟซ MPLAB จะใช้แบบฟอร์มที่แสดงในรูปที่ 1 1.


ข้าว. 1- อินเทอร์เฟซสภาพแวดล้อม MPLAB v8.92 และเทมเพลตโครงการ

การสร้างไฟล์โปรแกรม
สามารถสร้างโปรแกรมได้โดยใช้โปรแกรมแก้ไขข้อความใดก็ได้ MPLAB มีโปรแกรมแก้ไขในตัวที่ให้ข้อดีหลายประการ เช่น การวิเคราะห์คำศัพท์อย่างรวดเร็วของข้อความต้นฉบับ ซึ่งส่งผลให้คำที่สงวนไว้ ค่าคงที่ ความคิดเห็น และชื่อที่ผู้ใช้กำหนดถูกเน้นในข้อความ

การสร้างโปรแกรมใน MPLAB สามารถทำได้ตามลำดับต่อไปนี้

1. เปิดตัวแก้ไขโปรแกรม: เมนู → ไฟล์ → ใหม่ ในตอนแรก โปรแกรมนี้ตั้งชื่อว่า Untitled

2. พิมพ์หรือคัดลอกโปรแกรม เช่น ในแอสเซมเบลอร์


ข้าว. 2- ตัวอย่างโปรแกรมที่ง่ายที่สุด (ในแอสเซมเบลอร์) สำหรับการส่งสัญญาณออกผ่านพอร์ตคอนโทรลเลอร์ GP0, GP1, GP2, GP4, GP5 ที่ความถี่สูงสุด

การเขียน '1' ในบิตรีจิสเตอร์ TRISIO จะวางบัฟเฟอร์เอาต์พุตที่สอดคล้องกันในสถานะที่ 3 ซึ่งในกรณีนี้พอร์ต GP สามารถทำงานได้เป็นอินพุตเท่านั้น การตั้งค่า TRISIO ให้เป็นศูนย์จะกำหนดค่าพอร์ต GP ให้ทำงานเป็นเอาต์พุต

บันทึก. ตามข้อกำหนดของ PIC12F629 พอร์ต GP3 ของไมโครคอนโทรลเลอร์จะทำงานเป็นอินพุตเท่านั้น (บิตที่สอดคล้องกันของรีจิสเตอร์ TRISIO จะไม่ถูกรีเซ็ต แต่จะอยู่ใน '1' เสมอ)

รีจิสเตอร์ TRISIO และ GPIO อยู่ในฝั่งต่างๆ ของพื้นที่หน่วยความจำ การสลับธนาคารจะดำเนินการโดยบิตที่ 5 ของการลงทะเบียนสถานะ

โปรแกรมแอสเซมเบลอร์ใดๆ จะเริ่มต้นด้วยคำสั่ง org และสิ้นสุดด้วยคำสั่งสิ้นสุด การเปลี่ยนแปลงข้ามไปของ Metka ช่วยให้มั่นใจได้ถึงการดำเนินการแบบวนรอบของโปรแกรม

โปรแกรม (รูปที่ 2) ใช้สัญลักษณ์ต่อไปนี้

คำสั่ง LIST - การกำหนดประเภทคอนโทรลเลอร์
คำสั่ง __CONFIG - ตั้งค่าของบิตการกำหนดค่าคอนโทรลเลอร์
คำสั่ง Equi - การกำหนดค่าตัวเลข
Directive org 0 - เริ่มการทำงานของโปรแกรมจากที่อยู่ 0
คำสั่ง bsf - ตั้งค่าบิตของรีจิสเตอร์ที่ระบุเป็น 1
คำสั่งbсf - รีเซ็ตบิตของรีจิสเตอร์ที่ระบุเป็น 0
คำสั่ง movlw - เขียนค่าคงที่ไปยังการลงทะเบียน W
คำสั่ง movwf - คัดลอกเนื้อหาของการลงทะเบียน W ไปยังการลงทะเบียนที่ระบุ
คำสั่ง goto - ให้การเปลี่ยนแปลงโดยไม่มีเงื่อนไขเป็นบรรทัดที่มีป้ายกำกับ
คำสั่ง End - สิ้นสุดโปรแกรม

การตั้งค่าการกำหนดค่าไมโครคอนโทรลเลอร์ที่จำเป็น
การกำหนดค่าของไมโครคอนโทรลเลอร์ PIC12F629 ขึ้นอยู่กับการตั้งค่าของคำกำหนดค่า (2007h) ซึ่งสามารถตั้งค่าในโปรแกรมผ่านคำสั่ง __CONFIG

โดยตรงหรือผ่านหน้าต่าง MPLAB: เมนู → กำหนดค่า → บิตการกำหนดค่า:

ที่ไหน:

บิต 2-0- FOSC2:FOSC0. การเลือกนาฬิกา
111 - เครื่องกำเนิด RC ภายนอก เชื่อมต่อกับขา GP5 GP4 ทำงานเป็น CLKOUT
110 - เครื่องกำเนิด RC ภายนอก เชื่อมต่อกับขา GP5 GP4 ทำงานเป็น I/O
101 - ออสซิลเลเตอร์ RC ภายใน 4 MHz GP5 ทำงานเป็น I/O GP4 - เหมือน CLKOUT
100 - ออสซิลเลเตอร์ RC ภายใน 4MHz GP5 และ GP4 ทำงานเป็น I/O
011 - เครื่องกำเนิด EC GP4 ทำงานเป็น I/O GP5 - เหมือน CLKIN
010 - เครื่องกำเนิด HC ตัวสะท้อนเชื่อมต่อกับ GP4 และ GP5
001 - เครื่องกำเนิด XT ตัวสะท้อนเชื่อมต่อกับ GP4 และ GP5
000 - เครื่องกำเนิด LP ตัวสะท้อนเชื่อมต่อกับ GP4 และ GP5

บิต 3- WDTE: การตั้งค่าตัวจับเวลา Watchdog
1 - เปิดใช้งาน WDTE แล้ว
0 - WDTE ปิดใช้งาน

ตัวจับเวลาจ้องจับผิดปกป้องไมโครคอนโทรลเลอร์จากการแช่แข็ง - มันจะรีสตาร์ทโปรแกรมหลังจากช่วงเวลาหนึ่งหากไม่ได้รีเซ็ตตัวจับเวลา ระยะเวลาของตัวจับเวลาถูกตั้งค่าไว้ในการลงทะเบียน OPTION_REG การรีเซ็ตตัวจับเวลา Watchdog เกิดจากคำสั่ง CLRWDT

บิต 4- PWRTE: เปิดใช้งานตัวจับเวลาเปิดเครื่อง:
1 - ปิดใช้งาน PWRT
0 - เปิดใช้งาน PWRT

ตัวจับเวลาจะทำให้ไมโครคอนโทรลเลอร์อยู่ในสถานะรีเซ็ตเมื่อมีการจ่ายไฟ VDD

บิต 5- MCLR: การเลือกโหมดการทำงานของเอาต์พุต GP3/-MCLR
1 - ทำงานเหมือน -MCLR
0 - ทำงานเป็นพอร์ต GP3 I/O

บิต 6- BODEN: เปิดใช้งานการรีเซ็ตเมื่อแรงดันไฟฟ้าตก (ปกติ< 2.0В)
1 - เปิดใช้งานการรีเซ็ต BOR
0 - ห้ามรีเซ็ต BOR ตัวจับเวลาจะเปิดโดยอัตโนมัติ

เมื่อเปิดใช้งานการรีเซ็ต BOR ตัวจับเวลา PWRT จะเริ่มทำงานโดยอัตโนมัติ

บิต 7- .CP: บิตป้องกันหน่วยความจำโปรแกรมไม่ให้โปรแกรมเมอร์อ่าน
1 การป้องกันถูกปิดใช้งาน
0 เปิดใช้งานการป้องกันแล้ว

เมื่อปิดการป้องกัน หน่วยความจำโปรแกรมทั้งหมดจะถูกลบ

บิต 8- .CPD: บิตป้องกันหน่วยความจำข้อมูล EPROM
1 การป้องกันถูกปิดใช้งาน
0 เปิดใช้งานการป้องกันแล้ว

หลังจากปิดการป้องกัน ข้อมูลทั้งหมดจะถูกลบ

บิต 11-9- ไม่ได้ใช้: อ่านว่า '1'

บิต 13-12- BG1:BG0. บิตการปรับเทียบการรีเซ็ตพลังงานต่ำ
00 - ขีดจำกัดการสอบเทียบต่ำกว่า
11 - ขีดจำกัดการสอบเทียบด้านบน


การเพิ่มโปรแกรมให้กับโปรเจ็กต์

ตัวอย่างการเพิ่มโปรแกรมให้กับโปรเจ็กต์แสดงไว้ใน (รูปที่ 3)


ข้าว. 3- การเพิ่มโปรแกรม FirstPrMPLAB.asm ให้กับโครงการ FirstPrMPLAB.mcp

การรวบรวม

ในการสร้างไฟล์ไบนารี่ที่มีนามสกุล hex สำหรับการแฟลชเฟิร์มแวร์ไมโครคอนโทรลเลอร์ คุณต้องคอมไพล์โปรเจ็กต์ การคอมไพล์เริ่มต้นด้วยคำสั่งเมนู → โครงการ → สร้างทั้งหมด ผลลัพธ์การรวบรวมสามารถดูได้ในหน้าต่างเอาท์พุต (รูปที่ 1) หากไม่มีข้อผิดพลาดในโปรแกรม คอมไพเลอร์จะแสดงข้อความเกี่ยวกับการคอมไพล์สำเร็จ: BUILD SUCCEEDED คุณจะพบไฟล์ HEX สำหรับบูตในไดเร็กทอรีการทำงาน:

การดีบักโปรแกรม

การดีบักโปรแกรมใน MPLAB IDE สามารถทำได้โดยใช้โปรแกรมจำลองฮาร์ดแวร์ MPLAB REAL ICE หรือซอฟต์แวร์จำลอง MPLAB SIM ส่วนหลังเปิดตัวดังแสดงในรูป 4.


ข้าว. 4- การเชื่อมต่อกับเครื่องจำลอง MPLAB SIM สำหรับการดีบักโปรแกรม

หลังจากเปิดตัวดีบักเกอร์ แท็บ MPLAB SIM จะปรากฏในหน้าต่างเอาท์พุต (รูปที่ 1) โดยที่ MPLAB จะแสดงข้อมูลดีบักเกอร์ปัจจุบัน คำสั่งดีบักเกอร์ (รูปที่ 5) จะทำงานหลังจากเปิดใช้งาน


ข้าว. 5- คำสั่งดีบักเกอร์

คำสั่งดีบักเกอร์:

Run - การดำเนินการโปรแกรมอย่างต่อเนื่องจนกระทั่งถึงจุดพัก หากมีการตั้งค่าไว้
หยุด - หยุดโปรแกรมที่ขั้นตอนการดำเนินการปัจจุบัน
Animate - แอนิเมชั่นของการเรียกใช้โปรแกรมอย่างต่อเนื่อง
ขั้นตอนสู่ - ดำเนินการในขั้นตอน (การโทรดำเนินการในขั้นตอนเดียว)
Step Over - ดำเนินการทีละขั้นตอนรวมถึงคำสั่ง Call
รีเซ็ต - การติดตั้งโปรแกรมครั้งแรก ย้ายตัวชี้ไปที่คำสั่งแรก
เบรกพอยท์ - แสดงรายการเบรกพอยท์ การประมวลผลรายการ

เมื่อรันโปรแกรมทีละขั้นตอน ขั้นตอนปัจจุบันจะถูกเน้นด้วยลูกศร (รูปที่ 6) การเรียกใช้โปรแกรมอย่างต่อเนื่องจะหยุดโดยคำสั่ง Halt หรือเมื่อโปรแกรมถึงจุดพัก จุดพักถูกตั้งค่า/ลบออกในบรรทัดโปรแกรมโดยการดับเบิลคลิก
ตัวอย่างของโปรแกรมแอสเซมเบลอร์ที่เปลี่ยนสถานะของพอร์ตคอนโทรลเลอร์ด้วยความเร็วสูงสุดจะแสดงในรูปที่ 1 6 (ขวา) โปรแกรมจะถ่ายโอนข้อมูล b'10101010' และ b'01010101' ไปยังพอร์ต GPIO register เนื่องจากไม่ใช่ทุกบิตในการลงทะเบียน GPIO จะส่งข้อมูลไปยังพอร์ตคอนโทรลเลอร์ แต่มีเพียง 0,1,2,4 และ 5 เท่านั้น สถานะของการลงทะเบียน GPIO (รูปที่ 6 ซ้าย) จึงแตกต่างกันในค่าต่อไปนี้: b'00100010' และ b'00010101'


ข้าว. 6- สถานะของการลงทะเบียนเพื่อจุดประสงค์พิเศษของคอนโทรลเลอร์ ณ เวลาที่มีการรันโปรแกรม (ทางซ้าย) และโปรแกรมที่กำลังถูกดำเนินการทีละขั้นตอน (ทางขวา)

ในระหว่างกระบวนการดีบัก คุณสามารถตรวจสอบสถานะของรีจิสเตอร์ ตัวแปร และหน่วยความจำในหน้าต่างที่เกี่ยวข้องซึ่งเปิดในส่วนมุมมองของเมนูหลัก ในระหว่างกระบวนการดีบัก คุณสามารถเปลี่ยนแปลงโค้ดโปรแกรม เนื้อหาของรีจิสเตอร์ หน่วยความจำ และเปลี่ยนค่าของตัวแปรได้ หลังจากเปลี่ยนโค้ดแล้ว คุณจะต้องคอมไพล์โปรแกรมใหม่ การเปลี่ยนเนื้อหาของการลงทะเบียน หน่วยความจำ และค่าตัวแปร (ดูหน้าต่างส่วน: การลงทะเบียนฟังก์ชั่นพิเศษ, การลงทะเบียนไฟล์, EEPROM, นาฬิกา) ไม่จำเป็นต้องทำการคอมไพล์ใหม่

สัญญาณอินพุตของพอร์ตรุ่นไมโครคอนโทรลเลอร์สามารถตั้งค่าได้ในส่วน Debugger → Stimulus สถานะของสัญญาณพอร์ตที่ตั้งไว้จะเชื่อมโยงกับเวลาการดีบัก (รอบ)

บางครั้งผลลัพธ์ของการรันโปรแกรมในโหมดดีบักไม่สอดคล้องกับการทำงานของโปรแกรมเดียวกันในคอนโทรลเลอร์จริง ตัวอย่างเช่น โปรแกรมดีบักเกอร์ (รูปที่ 6) ที่ไม่มีคำสั่ง movlw 0x07 และ movwf cmcon แสดงว่าเอาต์พุต GP0 และ GP1 ของการลงทะเบียน GPIO จะไม่เปลี่ยนแปลง - อยู่ในสถานะศูนย์ เนื้อหาของการลงทะเบียน GPIO จะสลับกันเท่ากับ 0x14 และ 0x20 อย่างไรก็ตาม ตัวควบคุมที่รันโปรแกรมโดยไม่มีคำสั่งเหล่านี้จะแสดงบนออสซิลโลสโคปถึงการทำงานแบบวนของเอาต์พุตทั้งห้า: 0x15 และ 0x22 รวมถึง GP0 และ GP1 (ดูรูปที่ 7)

ออสซิลโลแกรมของตัวควบคุมที่รันวงจรโปรแกรม รูปที่. 6 (Metka... ไปที่ Metka) แสดงในรูปที่. 7.


ข้าว. 7- ออสซิลโลแกรมของเอาต์พุต GP0 (ซ้าย) และ GP1 (ขวา) ของไมโครคอนโทรลเลอร์ PIC12F629 ซึ่งขับเคลื่อนโดยออสซิลเลเตอร์ RC ภายใน 4 MHz โปรแกรม (รูปที่ 6) สร้างสัญญาณความถี่สูงสุดที่เอาต์พุตของตัวควบคุมทั้งหมด ในช่วงระยะเวลาสัญญาณ 5.3 µs จะมีการดำเนินการ 5 คำสั่ง (6 รอบเครื่องจักร) แอมพลิจูดของสัญญาณ GP0 บนออสซิลโลแกรมคือ 4.6V กำลังของตัวควบคุมที่วัดโดยโปรแกรมเมอร์คือ 4.75V

เฟิร์มแวร์ไมโครคอนโทรลเลอร์

หากต้องการเขียนโปรแกรมไปยังไมโครคอนโทรลเลอร์ (เฟิร์มแวร์ตัวควบคุม) คุณต้องเชื่อมต่อไมโครคอนโทรลเลอร์กับ MPLAB IDE ที่รวมอยู่ผ่านโปรแกรมเมอร์ โครงสร้างการเชื่อมต่อแสดงอยู่ด้านล่างในส่วน "การเชื่อมต่อโปรแกรมเมอร์ PIC-KIT3"

บันทึก. คอนโทรลเลอร์ PIC12F629 มีค่าคงที่การสอบเทียบจากโรงงานสำหรับการตั้งค่าความถี่ของเครื่องกำเนิดสัญญาณนาฬิกาภายใน หากจำเป็น สามารถอ่านและกู้คืนได้โดยใช้ MPLAB โดยใช้โปรแกรมเมอร์

คำสั่งสำหรับการทำงานกับโปรแกรมเมอร์และการเปลี่ยนการตั้งค่าจะอยู่ในเมนูโปรแกรมเมอร์ MPLAB ประเภทของโปรแกรมเมอร์ใน MPLAB จะถูกเลือกในส่วน: เมนู → โปรแกรมเมอร์ → เลือกโปรแกรมเมอร์


ข้าว. 8- การเลือกโปรแกรมเมอร์เพื่อเชื่อมต่อกับสภาพแวดล้อม MPLAB

เฟิร์มแวร์ของไมโครคอนโทรลเลอร์ผ่านโปรแกรมเมอร์เริ่มต้นด้วยคำสั่ง: เมนู → โปรแกรมเมอร์ → โปรแกรม ข้อความเกี่ยวกับเฟิร์มแวร์ที่สำเร็จจะแสดงในรูป 9.


ข้าว. 9- การเปิดตัวเฟิร์มแวร์ไมโครคอนโทรลเลอร์และแสดงข้อความเกี่ยวกับเฟิร์มแวร์ที่ประสบความสำเร็จ

บันทึก:ขณะกระพริบไมโครคอนโทรลเลอร์ ไฟ LED สีเหลืองบนโปรแกรมเมอร์ PIC-KIT3 จะกะพริบ

กำลังเชื่อมต่อ MATLAB/SIMULINK กับ MPLAB

ในระบบการสร้างแบบจำลองระบบแบบไดนามิก Simulink (แอปพลิเคชัน Matlab) ในภาษาการเขียนโปรแกรมกราฟิก คุณสามารถพัฒนาโปรแกรมสำหรับตระกูลตัวควบคุม PIC ที่มีอินเทอร์เฟซ ADC/DAC, ตัวนับ, ตัวจับเวลา, PWM, DMA, UART, SPI, CAN, อินเทอร์เฟซ I2C ฯลฯ .

ตัวอย่างโปรแกรม Simulink สำหรับคอนโทรลเลอร์ PIC แสดงไว้ในรูปที่ 1 10.


ข้าว. 10- ตัวอย่างของโปรแกรมในภาษาการเขียนโปรแกรมกราฟิกสำหรับตัวควบคุม PIC ที่ทำงานในสภาพแวดล้อมการสร้างแบบจำลองระบบไดนามิก Simulink

การทำงานร่วมกันของเครื่องมือพัฒนาและการคอมไพล์โปรแกรมสำหรับตัวควบคุม PIC ใน Simulink จะแสดงในรูป 11.


ข้าว. 11- โครงสร้างของเครื่องมือสำหรับการสร้างแบบจำลองที่เหมาะสมของตัวควบคุม PIC ในภาษาโปรแกรมกราฟิก

ในการสร้างสภาพแวดล้อมการพัฒนา จำเป็นต้องมีส่วนประกอบ Matlab ต่อไปนี้:

ซิมูลิงค์
Coder แบบฝังในเวิร์คช็อปแบบเรียลไทม์
เวิร์คช็อปแบบเรียลไทม์

และคอมไพเลอร์ Microchip C:

C30 สำหรับคอนโทรลเลอร์ PIC24, dsPIC30 และ PIC33
หรือ C32 สำหรับคอนโทรลเลอร์ซีรีส์ PIC32

การติดตั้งส่วนประกอบ Matlab

ไซต์นี้มีไลบรารี Simulink (dsPIC Toolbox) สำหรับตัวควบคุม PIC และเวอร์ชัน Matlab ตั้งแต่ R2006a ถึง R2012a:

หากต้องการดาวน์โหลดห้องสมุดคุณต้องลงทะเบียน โปรแกรมรองรับการทำงานของไมโครคอนโทรลเลอร์ 100 ตัวจากซีรีย์ PIC 16MC, 24F, 30F, 32MC, 33F, 56GP, 64MC, 128MC, 128GP
เวอร์ชันฟรีใช้งานได้กับคอนโทรลเลอร์ Simulink PIC ที่มีพอร์ต I/O สูงสุด 7 พอร์ต

ในการติดตั้ง dsPIC Toolbox - ไลบรารีของบล็อกคอนโทรลเลอร์ PIC สำหรับ Matlab/Simulink คุณต้องมี:

ดาวน์โหลด dsPIC Toolbox สำหรับเวอร์ชัน Matlab ที่ต้องการ
แตกไฟล์ zip ในโฟลเดอร์ที่จะติดตั้งบล็อก Simulink
เปิดตัว Matlab
ตั้งค่าไดเร็กทอรี Matlab ปัจจุบันเป็นโฟลเดอร์ที่มีไฟล์ที่แตกไฟล์แล้ว
เปิดและรันไฟล์ install_dsPIC_R2012a.m เช่น โดยใช้ปุ่มเมนูหรือแป้นคีย์บอร์ด

ไลบรารี dsPIC และตัวอย่างของโมเดล Simulink ได้รับการติดตั้งในโฟลเดอร์ Matlab ปัจจุบัน (รูปที่ 12) บล็อกที่ติดตั้งไว้สำหรับการสร้างแบบจำลองตัวควบคุม PIC มีอยู่ในส่วน Embedded Target สำหรับ Microchip dsPIC ของไลบรารี Simulink (รูปที่ 13)


ข้าว. 12- เนื้อหาของไดเร็กทอรีปัจจุบันหลังจากรัน install_dsPIC_R2012a.m


ข้าว. 13- บล็อกของไลบรารีที่ติดตั้ง “Embedded Target for Microchip dsPIC”

ในการคอมไพล์โมเดล Simulink ร่วมกันโดยใช้ Matlab และ MPLAB คุณต้องตั้งค่าพาธไปยังไดเร็กทอรี MPLAB ด้วยไฟล์ MplabOpenModel.m, MplabGetBuildinfo.m และ getHardwareConfigs.m ในพาธของตัวแปรสภาพแวดล้อม Matlab ที่มีลำดับความสำคัญสูงสุด:

>>

การติดตั้งคอมไพเลอร์ MPLAB C

คอมไพเลอร์ MPLAB มีอยู่บนเว็บไซต์ Microchip (ดาวน์โหลดไฟล์เก็บถาวร → คอมไพเลอร์ MPLAB C สำหรับ PIC24 และ dsPIC DSC) ในการติดตั้งคอมไพเลอร์ C30 เวอร์ชันสาธิตคุณจะต้องดาวน์โหลดจากลิงค์ PIC24/dsPIC v3.25 (รูปที่ 14) และเรียกใช้ไฟล์ที่ได้รับ mplabc30-v3.25-comboUpgrade.exe


ข้าว. 14- เวอร์ชันคอมไพเลอร์ C (ซ้าย) และโหมดการติดตั้ง (ขวา)

บันทึก. งานนี้ดำเนินการด้วยคอมไพเลอร์ C30 เวอร์ชัน v3.25 สำหรับ PIC24/dsPIC การตรวจสอบพบว่าเวอร์ชันถัดไป v3.30 ไม่รองรับการรวบรวมโมเดล Matlab R2012a (dsPIC Toolbox) โดยไม่มีข้อผิดพลาด

ไฟล์ exe การติดตั้งจะสร้างไดเร็กทอรี mplabc30 ใหม่พร้อมไฟล์ในส่วน c:\Program Files (x86)\Microchip\:


ข้าว. 15- ไดเร็กทอรีคอมไพเลอร์ C30 MPLAB

ลำดับการเขียนโปรแกรม Simulink สำหรับคอนโทรลเลอร์ PIC

1. สร้างไดเร็กทอรีการทำงานและคัดลอก *.mdl ตัวอย่างจากส่วนตัวอย่างไปไว้ (ดูรูปที่ 12)
2. ดาวน์โหลด Matlab.dll ตั้งเป็นไดเร็กทอรีการทำงานของคุณ
3. รวมไว้ในเส้นทางตัวแปรสภาพแวดล้อม Matlab ที่มีลำดับความสำคัญสูงสุดสำหรับเส้นทางไปยัง MPLAB - ไดเรกทอรี c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\:

>> เส้นทาง ("c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\",เส้นทาง)
หมายเหตุ: การใช้คำสั่ง >>path โดยไม่มีอาร์กิวเมนต์จะทำให้ตัวแปร path แสดงรายการอยู่ในหน้าต่างคำสั่ง คุณสามารถลบพาธออกจากตัวแปรพาธได้ด้วยคำสั่ง rmpath ตัวอย่างเช่น:

>>rmpath(" c:\Program Files\Microchip\MPLAB IDE\Tools\MATLAB\")
4. สร้างโมเดล Simulink สำหรับคอนโทรลเลอร์ PIC โดยใช้บล็อกของ Embedded Target สำหรับไลบรารี dsPIC ของ Microchip (รูปที่ 13) หรือโหลดโมเดลสำเร็จรูป เช่น Servo_ADC.mdl

ประเภทของคอนโทรลเลอร์ที่โมเดล Simulink กำลังได้รับการพัฒนานั้นถูกเลือกจากรายการในบล็อก Master > PIC (รูปที่ 16, รูปที่ 10) ซึ่งจะต้องรวมอยู่ในโมเดล


ข้าว. 16- การเลือกประเภทคอนโทรลเลอร์ใน Master block ของโมเดล

5. ตรวจสอบการตั้งค่าการกำหนดค่าโมเดล: เมนู → การจำลอง → พารามิเตอร์การกำหนดค่า - ควรระบุคอมไพเลอร์ S-function dspic.tlc ในบรรทัดอินพุตไฟล์เป้าหมายระบบของส่วนการสร้างโค้ด (รูปที่ 17) การเลือก dspic.tlc จะกำหนดค่าพารามิเตอร์การกำหนดค่าโมเดลอื่นๆ ทั้งหมด รวมถึงขั้นตอนและวิธีการผสานรวม


ข้าว. 17- การเลือกคอมไพเลอร์ฟังก์ชัน S dspic.tlc สำหรับคอนโทรลเลอร์ PIC รุ่นต่างๆ ในส่วน “เมนูหลัก → การจำลอง → พารามิเตอร์การกำหนดค่า → การสร้างโค้ด”

6. คอมไพล์โมเดล tmp_Servo_ADC.mdl การเปิดตัวคอมไพเลอร์จะแสดงในรูป 18.


ข้าว. 18- การรันคอมไพเลอร์โมเดล Simulink

จากผลของการคอมไพล์ที่ประสบความสำเร็จ (ข้อความ: ### ขั้นตอนการสร้างสำหรับรุ่น: Servo_ADC เสร็จสมบูรณ์) ไฟล์ HEX สำหรับการแฟลชคอนโทรลเลอร์ PIC และโครงการสภาพแวดล้อม MCP MPLAB จะถูกสร้างขึ้นในไดเร็กทอรีปัจจุบัน (รูปที่ 19)


ข้าว. 19- ผลการรวบรวมโมเดล

โมเดลเปิดตัวใน Matlab/Simulink โดยใช้ปุ่มในหน้าต่างโมเดล เวลาจำลองแบบมีเงื่อนไขถูกตั้งค่าไว้ในบรรทัด:


การควบคุมการรวบรวมโมเดล Simulink จากสภาพแวดล้อม MPLAB

การควบคุมการคอมไพล์โมเดล Simulink สามารถควบคุมได้โดยใช้คำสั่งจากส่วน Matlab/Simulink ของสภาพแวดล้อม MPLAB ตัวอย่างเช่น ตามลำดับต่อไปนี้

1. พัฒนาโมเดลคอนโทรลเลอร์ PIC ใน Matlab/Simulink บันทึกโมเดล
2. เปิด MPLAB
3. เลือกเมนู MPLAB → เครื่องมือ → Matlab/Simulink และส่วนใหม่จะปรากฏในเมนู


4. ในส่วน Matlab/Simulink ให้เปิดโมเดล Simulink เช่น Servo_ADC โดยใช้คำสั่ง “Matlab/Simulink → ระบุชื่อโมเดล Simulink → เปิด → ชื่อไฟล์ → Servo_ADC.mdl → เปิด” คำสั่ง Open เริ่มต้น Matlab และเปิดโมเดล

5. คอมไพล์โมเดลและสร้างโปรเจ็กต์ MCP โดยใช้คำสั่งสร้างรหัสหรือสร้างรหัสและนำเข้าไฟล์ การแปลโมเดล MDL เป็นโปรเจ็กต์ MCP ดำเนินการโดย Matlab คอมไพเลอร์ TLC
ด้วยเหตุนี้ โครงการ MPLAB จึงถูกสร้างขึ้น:

ด้วยสคริปต์โมเดลในภาษา C

6. เปิดโครงการ: เมนู → โครงการ → เปิด → Servo_ADC.mcp (รูปที่ 20)


ข้าว. 20- โครงสร้าง MCP ของโครงการ Simulink รุ่น Servo_ADC.mdl ในสภาพแวดล้อม MPLAB
โครงการจำลอง Simulink พร้อมสำหรับการแก้ไข ดีบัก และคอมไพล์เป็นโค้ดตัวควบคุมเครื่องจักรโดยใช้ MPLAB

การเชื่อมต่อโปรแกรมเมอร์ PIC-KIT3

คุณสามารถดูว่าโปรแกรมเมอร์คนไหนเขียนโค้ดไบนารี่ลงในไมโครคอนโทรลเลอร์เฉพาะได้ในส่วนเมนู → กำหนดค่า → เลือกอุปกรณ์ของสภาพแวดล้อม MPLAB 8.92 ตัวอย่างเช่น โปรแกรมเมอร์ PIC-KIT3 ไม่รองรับคอนโทรลเลอร์ PIC12C508A (รูปที่ 21 รูปซ้าย) แต่ใช้งานได้กับคอนโทรลเลอร์ PIC12F629 (รูปที่ 21 รูปขวา)


ข้าว. 21- รายชื่อโปรแกรมเมอร์สำหรับเฟิร์มแวร์ไมโครคอนโทรลเลอร์

สามารถขอข้อมูลเกี่ยวกับไดรเวอร์โปรแกรมเมอร์ PIC-KIT3 ที่ติดตั้งได้จากตัวจัดการอุปกรณ์ Windows OS (รูปที่ 22)


ข้าว. 22- ข้อมูลเกี่ยวกับไดรเวอร์โปรแกรมเมอร์ PIC-KIT3 ที่ติดตั้ง

แผนภาพการเชื่อมต่อของไมโครคอนโทรลเลอร์ PIC12F629 กับโปรแกรมเมอร์ PIC-KIT3 แสดงในรูปที่ 1 23.


ข้าว. 23- แผนภาพการเชื่อมต่อไมโครคอนโทรลเลอร์ PIC12F629 กับโปรแกรมเมอร์ PIC-KIT3

เอาต์พุต PGM ของโปรแกรมเมอร์ไม่ได้ใช้สำหรับการกะพริบคอนโทรลเลอร์ PIC12F629 การมีอยู่ของเอาต์พุต PGM สำหรับคอนโทรลเลอร์ PIC ประเภทต่างๆ จะแสดงไว้ในรูปที่ 1 24. ขอแนะนำให้ "ดึง" พิน PGM ไปที่สายสามัญ (GND) ผ่านตัวต้านทานที่มีค่าเล็กน้อย 1K


ข้าว. 24- พินคอนโทรลเลอร์ PGM PIC

ไฟ LED ของโปรแกรมเมอร์ Olimex PIC-KIT3 แสดงไว้ด้านล่าง:

สีเหลือง - สีแดง - สถานะโปรแกรมเมอร์
เปิด-ปิด-เชื่อมต่อด้วยสาย USB
เปิด - เปิด - การทำงานร่วมกันกับ MPLAB
กะพริบ - เปิดตลอดเวลา - เฟิร์มแวร์ไมโครคอนโทรลเลอร์

คุณไม่ควรเชื่อมต่อแหล่งจ่ายไฟไมโครคอนโทรลเลอร์ VDD (รูปที่ 23) เข้ากับโปรแกรมเมอร์หากคอนโทรลเลอร์ใช้พลังงานจากแหล่งพลังงานของตัวเอง

เมื่อจ่ายไฟไมโครคอนโทรลเลอร์จากโปรแกรมเมอร์บนสาย VDD จำเป็นต้องตั้งค่าแรงดันไฟฟ้าในการทำงานเช่น 5V โดยใช้โปรแกรม MPLAB (เมนู → โปรแกรมเมอร์ → การตั้งค่า → พลังงาน) ดังแสดงในรูปที่ 1 25.

บันทึก. หากไม่มีแรงดันไฟฟ้าบนสาย VDD MPLAB IDE จะแสดงข้อความแสดงข้อผิดพลาด: PK3Err0045: คุณต้องเชื่อมต่อกับอุปกรณ์เป้าหมายจึงจะใช้งานได้


ข้าว. 25- การตั้งค่าแรงดันไฟฟ้า VDD บนโปรแกรมเมอร์ PIC-KIT3 โดยใช้ MPLAB IDE v8.92

หากโปรแกรมเมอร์ไม่สามารถตั้งค่าแรงดันไฟฟ้าที่ต้องการได้ เช่น 5V เมื่อจ่ายไฟจาก USB ซึ่งแรงดันไฟฟ้าน้อยกว่า 5V MPLAB IDE จะแสดงข้อความแสดงข้อผิดพลาด: PK3Err0035: ไม่สามารถรับ Device ID ในกรณีนี้คุณต้องวัดแรงดันไฟฟ้าของโปรแกรมเมอร์ก่อน - อ่านในแท็บเมนู → โปรแกรมเมอร์ → การตั้งค่า → สถานะ จากนั้นตั้งค่าแรงดันไฟฟ้า (ไม่เกินที่วัดได้) ในแท็บเมนู → โปรแกรมเมอร์ → การตั้งค่า → พลัง.


ข้าว. 26- การวัด (ซ้าย) และการตั้งค่า (ขวา) แรงดันไฟฟ้า VDD ของโปรแกรมเมอร์ PIC-KIT3 โดยใช้ MPLAB IDE v8.92

ตัวอย่างข้อความ MPLAB ของการเชื่อมต่อไมโครคอนโทรลเลอร์กับโปรแกรมเมอร์สำเร็จโดยใช้คำสั่งเมนู → โปรแกรมเมอร์ → เชื่อมต่อใหม่จะแสดงในรูปที่ 1 27.


ข้าว. 27- ข้อความ MPLAB เกี่ยวกับการเชื่อมต่อไมโครคอนโทรลเลอร์กับโปรแกรมเมอร์สำเร็จ

คุณสามารถตั้งโปรแกรมได้ไม่เพียง แต่คอนโทรลเลอร์ PIC แยกต่างหากเท่านั้น แต่ยังรวมถึงคอนโทรลเลอร์ที่เป็นส่วนหนึ่งของอุปกรณ์ที่ใช้งานได้ด้วย ในการตั้งโปรแกรมคอนโทรลเลอร์ PIC ภายในอุปกรณ์ จำเป็นต้องมีการติดตั้งจัมเปอร์และตัวต้านทานจำกัดกระแสดังแสดงในรูปที่ 1 28.


ข้าว. 28- การเชื่อมต่อไมโครคอนโทรลเลอร์ซึ่งเป็นส่วนหนึ่งของอุปกรณ์อิเล็กทรอนิกส์กับโปรแกรมเมอร์

บทสรุป

ตัวควบคุม PIC แรงดันต่ำมีช่วงการจ่ายไฟที่กว้าง การสิ้นเปลืองพลังงานต่ำ และมีขนาดเล็ก พวกมันถูกตั้งโปรแกรมด้วยภาษาระดับต่ำ การพัฒนาโปรแกรมในภาษาการเขียนโปรแกรมกราฟิก Simulink โดยใช้ไลบรารีจำนวนมากช่วยลดเวลาในการพัฒนาและแก้ไขจุดบกพร่องได้อย่างมากเมื่อเทียบกับการเขียนโปรแกรมในระดับแอสเซมบลี โครงสร้างที่พัฒนาขึ้นสำหรับตัวควบคุม Simulink PIC ยังสามารถนำมาใช้สำหรับการจำลองคอมพิวเตอร์ของระบบไดนามิกที่เกี่ยวข้องกับตัวควบคุมได้อีกด้วย อย่างไรก็ตาม เนื่องจากความซ้ำซ้อนของโค้ด วิธีการนี้จึงใช้ได้กับตระกูลคอนโทรลเลอร์ PIC ที่มีทรัพยากรเพียงพอเท่านั้น
ซิมูลิงค์
  • ตัวควบคุม PIC
  • เพิ่มแท็ก

    • ความถี่สัญญาณนาฬิกา - 20 MHz
    • พอร์ต I/O 8 บิตเต็มรูปแบบ 4 พอร์ต
    • พอร์ตอนุกรมและขนาน
    • บัส I2C
    • ตัวจับเวลาหลายตัว
    • โมดูลเปรียบเทียบ, ตัวเปรียบเทียบ
    • โมดูลการปรับความกว้างพัลส์ (PWM)
    • เอดีซี 10 บิต

    MK นี้แพร่หลายและมักพบในการขายปลีก หากคุณอยู่ในมอสโกคุณควรไปที่ "Chip and Dip" ซึ่งคุณสามารถซื้อได้ในราคาประมาณ 350 รูเบิล ฉันขอแนะนำอย่างยิ่งให้ซื้อเป็นแพ็คเกจ DIP (กว้าง) โชคดีที่ยังมีอยู่ สำหรับการทดลองและการทดสอบเบื้องต้น นี่คือตัวเลือกที่ดีที่สุด หากคุณซื้อมันในแพ็คเกจ PLCC โดยกะทันหันจะมีปัญหามากมายกับการใช้งาน - ระยะพิทช์ของลีดแบบแบน 1.27 มม. ไม่ใช่ตัวเลือกที่สะดวกที่สุด

    ดังนั้นเราจึงตัดสินใจเลือก MK ในไฟล์ของบทความนี้ คุณจะพบคำแนะนำฉบับสมบูรณ์เกี่ยวกับ MK นี้ ตอนนี้ชัดเจนว่าจะซื้ออะไร แต่ตอนนี้เรามาเขียนโปรแกรมเพื่อให้ชัดเจนว่าจะทำอย่างไรต่อไปและจะ "เย็บ" ลงใน MK นี้ได้อย่างไร

    เราเปิดตัวโปรแกรม MPLAB (ซึ่งเราได้ติดตั้งไว้ในบทความก่อนหน้านี้) เลือกรายการเมนู โครงการ -> ตัวช่วยสร้างโครงการ- ในหน้าต่างที่เปิดขึ้น ให้คลิก ต่อไป.

    ในรายการแบบเลื่อนลงของ MCU ที่มีให้เลือก ให้เลือก PIC16F877 คลิก ต่อไป.

    ที่นี่เราจำเป็นต้องเลือกคอมไพเลอร์ที่จะประมวลผลโค้ดโปรแกรมของเรา คุณต้องเลือกรายการ ชุดเครื่องมือ PICC ไฮเทคในรายการแบบเลื่อนลง ชุดเครื่องมือที่ใช้งานอยู่- นี่เป็นคอมไพเลอร์ภาษา C ตัวเดียวกับที่เราติดตั้งในบทความที่แล้ว คลิก ต่อไป.

    ตั้งชื่อโครงการ เช่น ทดสอบ PICและระบุไดเรกทอรีโครงการ มีสองเคล็ดลับที่นี่ ประการแรก MPLAB จะไม่สร้างโฟลเดอร์แยกต่างหากสำหรับโปรเจ็กต์ และจะวางไฟล์ทั้งหมดไว้ในไดเร็กทอรีที่คุณระบุโดยตรง ประการที่สองและที่สำคัญที่สุดคือ MPLAB ไม่เข้าใจตัวอักษรภาษารัสเซียในชื่อเส้นทาง มันจะสร้างโปรเจ็กต์ แต่ในขณะที่โปรแกรมกำลังทำงาน โดยเฉพาะอย่างยิ่งเมื่อบันทึกและเปิดไฟล์ “ข้อบกพร่อง” ดังกล่าวจะเกิดขึ้นจนคุณจะถูกทิ้งให้สงสัยว่าเกิดอะไรขึ้นเป็นเวลานาน ดังนั้นเส้นทางไปยังโฟลเดอร์โครงการจึงไม่ควรมีชื่อภาษารัสเซีย คลิก ต่อไป.

    ที่นี่คุณสามารถเพิ่มไฟล์สำเร็จรูปลงในโปรเจ็กต์ได้ แต่เรายังไม่ต้องใช้ตัวเลือกนี้ คลิก ต่อไป.

    ที่นี่ฉันคิดว่าทุกอย่างชัดเจน คลิก พร้อม.

    โครงการได้จัดเตรียมไว้แล้วแต่ยังว่างเปล่า คลิก ไฟล์ -> ใหม่- หน้าต่างใหม่จะปรากฏขึ้นพร้อมกับชื่อ ไม่มีชื่อ- จากนั้นเลือก ไฟล์ -> บันทึกเป็น...- ระบุชื่อไฟล์ เช่น TestPIC.cและไปที่โฟลเดอร์โครงการของคุณ อย่าลืมทำเครื่องหมายในช่อง เพิ่มไฟล์ในโครงการ.

    ตอนนี้เราวางโค้ดต่อไปนี้ไว้ด้านล่างในหน้าต่างที่เปิดอยู่ของไฟล์โปรเจ็กต์ TestPIC.c (สามารถดูโปรเจ็กต์ทั้งหมดได้ในไฟล์สำหรับบทความนี้)

    #รวม กำหนดค่า (0x03F72); ภายในฉัน=0; เป็นโมฆะหลัก( เป็นโมฆะ) ( T0IE=0; GIE=0; TRISB=0; PORTB=0; ในขณะที่(1==1) ( พอร์ตบี++; สำหรับ(i=0; ผม

    คุณอาจสงสัยว่าผลลัพธ์ของโค้ดนี้จะเป็นอย่างไร สิ่งต่อไปนี้จะเกิดขึ้น: LED 8 ดวงเชื่อมต่อกับ MK เมื่อคุณเปิดเครื่อง ไฟ LED จะเริ่มกะพริบเป็นรูปคลื่น (ควรเห็นสิ่งนี้ดีกว่า โชคดีที่ยังเหลือไม่มาก) มาดูโค้ดกันดีกว่า

    อันดับแรกคือคำสั่ง include ที่คุ้นเคย ซึ่งรวมถึงไฟล์ส่วนหัวพร้อมกับคำจำกัดความของแมโครที่จำเป็นทั้งหมด ถัดมาคือคำสั่งตัวประมวลผลล่วงหน้าอีกคำสั่ง __CONFIG ซึ่งมีเลขฐานสิบหกที่แสดงชุดของตัวเลือกพิเศษและคุณสมบัติที่กำหนดลักษณะการทำงานของ MK เราจะกลับมาที่จุดนี้ในบทความนี้ ตรงไปที่จุดเริ่มต้นของฟังก์ชัน main() ซึ่งเป็นจุดเข้าสู่โค้ดที่ปฏิบัติการได้จริงของโปรแกรม ถัดมาเป็นการดำเนินการกับ T0IE บางส่วน โดยเฉพาะบรรทัดนี้หมายความว่าจำเป็นต้องปิดการใช้งานการขัดจังหวะจากตัวจับเวลาเมื่อ MK กำลังทำงาน TOIE คือที่อยู่ของรีจิสเตอร์พิเศษที่กำหนดโดยใช้ #define ในไฟล์ pic.h ซึ่งมีหน้าที่รับผิดชอบในการดำเนินการนี้ (และโดยทั่วไป หากคุณเห็นตัวแปรแปลก ๆ ที่เขียนด้วยตัวพิมพ์ใหญ่ในโค้ดที่ไม่เคยกำหนดไว้ก่อนหน้านี้ในโค้ด ดังนั้นสิ่งเหล่านี้อาจเป็นชื่อเชิงสัญลักษณ์ของการลงทะเบียน MK) เส้น GIE=0; - ห้ามการประมวลผลการขัดจังหวะใดๆ ทั่วโลกทั่วทั้งไมโครคอนโทรลเลอร์ เราจะไม่ใช้การขัดจังหวะเป็นตัวอย่างง่ายๆ ของเรา เพราะ... เราก็ไม่ต้องการมัน

    ทริสบี=0; - หมายถึงพอร์ต I/O บี PIC16F877 MK จะทำงานเป็นเอาต์พุต เช่น ตอนนี้คุณสามารถเชื่อมต่อโหลดเข้ากับมันได้ ซึ่งสามารถจ่ายไฟ 0 หรือ +5V จาก MK ได้ (โหลดนี้จะเป็น LED) ในบรรทัดถัดไปเราใส่หมายเลข 0 ในพอร์ต B - เช่น พินทั้งหมดบนพอร์ตนี้ที่กำหนดค่าไว้สำหรับเอาต์พุตจะมีแรงดันไฟฟ้าเป็นศูนย์ ถัดมาเป็นการก่อสร้างจากตัวดำเนินการ while และด้วยพารามิเตอร์ที่โปรแกรมเมอร์บางคนที่คุ้นเคยกับการเขียนด้วยภาษา C สำหรับพีซีจะรู้สึกประหลาดใจเล็กน้อย - พวกเขากล่าวว่านี่คือการวนซ้ำไม่รู้จบโปรแกรมจะหยุดทำงาน แต่นี่คือสิ่งที่เราต้องการ MK ไม่สามารถทำอะไรได้ เขาต้องทำอะไรบางอย่างอย่างต่อเนื่อง ดังนั้นสำหรับ MK การรันโปรแกรมแบบไม่มีที่สิ้นสุดจึงเป็นสิ่งจำเป็นอย่างยิ่ง จากนั้นก็มาให้โอเปอเรเตอร์เพิ่มขึ้น 1 ตัวเลขที่อยู่ในพอร์ต B เรามาอธิบายกันสักหน่อย ถ้าคุณเขียน PORTB=0xFF; - ดังนั้นพินพอร์ตทั้งหมดจะมี 1 ถ้า PORTB=0x0; - สำหรับทั้งหมด 0 (ฉันคิดว่านี่ควรจะชัดเจน) เห็นได้ชัดว่าการสร้างตัวดำเนินการ for loop ไม่ได้ทำงาน "ฉลาด" ใด ๆ และจำเป็นเพียงเพื่อจัดระเบียบการหน่วงเวลาเท่านั้น หากเราลบโค้ดส่วนนี้ออก เราก็จะไม่สังเกตว่าแรงดันไฟฟ้าบน LED เปลี่ยนแปลงไปอย่างไร (มันจะเร็วมาก)

    พวกเขาหมายถึงอะไร? ไปตามลำดับกันเลย

    • Oscillator - HS (หมายความว่าจะใช้เครื่องสะท้อนควอทซ์ความถี่สูงเป็นเครื่องกำเนิดสัญญาณนาฬิกา)
    • WatchDog Timer - ปิด (ตัวเลือกพิเศษ หากเปิดใช้งานอยู่ ไมโครคอนโทรลเลอร์จะรีเซ็ตเป็นระยะ [ไปที่จุดเริ่มต้นของ main()] เพื่อหลีกเลี่ยงการค้างใน MK เราไม่ต้องการคุณสมบัตินี้)
    • Power Up Timer - เปิด (หากเปิด MK จะอยู่ในสถานะรีเซ็ตจนกว่าแรงดันไฟฟ้าจะถึงระดับเกณฑ์ที่ต้องการ)
    • Brown Out Detect - เปิด (รีเซ็ต MK หากแรงดันไฟฟ้าของแหล่งจ่ายลดลงต่ำกว่าระดับที่กำหนด)
    • โปรแกรมแรงดันต่ำ - ปิดการใช้งาน (ในกรณีนี้เราห้ามไม่ให้ใช้การตั้งโปรแกรมในวงจรแรงดันต่ำของ MK เนื่องจากเราจะใช้โปรแกรมเมอร์ทั่วไป [ดูบทความต่อไปนี้])
    • การเขียนโปรแกรม Flash - เปิดใช้งาน (เราอนุญาตให้สามารถเขียนโปรแกรมไปยังหน่วยความจำแฟลช)
    • Data EE Read Protect - ปิด (อนุญาตให้อ่านข้อมูลและหน่วยความจำ EEPROM ของ MK)
    • การป้องกันโค้ด - ปิด (ปิดการป้องกันโค้ดใน MK หากเปิดอยู่จะไม่สามารถอ่านโปรแกรมจาก MK ได้ นี่เป็นสิ่งจำเป็นหากคุณต้องการปกป้องโปรแกรมของคุณจากการพยายามแฮ็ก เรายังไม่ต้องการคุณสมบัตินี้ .)

    ถึงเวลารวบรวมโค้ดแล้ว วิ่ง โครงการ -> สร้างทั้งหมด- นี่จะเป็นการเริ่มรวบรวมโปรเจ็กต์และหน้าต่างเช่นนี้จะปรากฏขึ้นพร้อมกับรายการที่ยอดเยี่ยมเมื่อสิ้นสุด BUILD SUCCEEDED

    ตอนนี้ ถ้าคุณดูในโฟลเดอร์โครงการของเรา คุณจะเห็นไฟล์อยู่ที่นั่น TestPIC.hex- ผลลัพธ์ของการทำงานทั้งหมดของเรา ประกอบด้วยรหัสพิเศษที่สร้างขึ้นจากงานเขียนของเราในภาษา C เพื่อโหลดเข้าสู่หน่วยความจำ MK ในการก้าวต่อไป เราจำเป็นต้องมีโปรแกรมเมอร์ซึ่งเราจะเขียนโปรแกรมของเราลงใน MK ถึงเวลาที่จะไปยังบทความถัดไปซึ่งมีการพูดคุยถึงปัญหาในการสร้างโปรแกรมเมอร์ของคุณเอง

    © อีวานอฟ มิทรี
    เมษายน 2550

    เมื่อเร็ว ๆ นี้ฉันตัดสินใจสร้างอุปกรณ์บนไมโครคอนโทรลเลอร์ PIC แต่โปรแกรมเมอร์ Extra-PIC ของฉันล้มเหลวด้วยสาเหตุที่ไม่ทราบสาเหตุ เป็นไปได้มากว่าไมโครเซอร์กิตจะไหม้ แม็กซ์232สิ่งนี้เคยเกิดขึ้นมาแล้วครั้งหนึ่ง ฉันพบวงจรโปรแกรมเมอร์ง่ายๆ บนอินเทอร์เน็ตที่ออกแบบมาสำหรับ IC-Prog และทำงานผ่านโดยไม่ต้องคิดซ้ำสอง คอมท่าเรือ.
    บอร์ดจะต้องถูกมิเรอร์เมื่อพิมพ์ มิฉะนั้นจะต้องบัดกรีซ็อกเก็ตจากด้านแทร็ก


    ต่อไป ฉันเจาะรูและเริ่มบัดกรีชิ้นส่วน ปัญหาที่ใหญ่ที่สุดคือซีเนอร์ไดโอด ฉันเริ่มมองหาซีเนอร์ไดโอดบนบอร์ดจากจอภาพ CRT บนกระดานจะมีป้ายกำกับว่า ZD (Zener Diode) โดยปกติแล้ว เครื่องหมายของมันจะไม่ชัดเจน และคุณไม่รู้ว่าจะดูที่ไหนหรืออย่างไร หากต้องการทราบว่าซีเนอร์ไดโอดมีค่ากี่โวลต์ คุณสามารถประกอบวงจรง่ายๆ ได้


    โวลต์มิเตอร์จะแสดงค่าซีเนอร์ไดโอดได้อย่างแม่นยำว่ามีค่ากี่โวลต์ ด้วยวิธีง่ายๆ นี้ ฉันพบซีเนอร์ไดโอดที่มีค่าระบุโดยประมาณ แทนที่จะเป็น 5.6V ฉันติดตั้ง 6.2V แทนที่จะเป็น 12.6V ฉันติดตั้งซีเนอร์ไดโอด 2 ตัวเป็นอนุกรม 6.2+6.2=12.4V .


    สามารถติดตั้งทรานซิสเตอร์ได้ เคที315- ฉันติดตั้งมันเอง เอส945- ไดโอดก็มีเช่นกันฉันยกเลิกการขายทั้งหมด 3 ชิ้น จากไดโอดบริดจ์ของบอร์ดเดียวกันจากมอนิเตอร์ ค่าของตัวเก็บประจุก็ไม่สำคัญเช่นกัน แต่ถูกกำหนดไว้ที่ค่าที่ระบุ

    เล็กน้อยเกี่ยวกับจุดแดงบนแผง ขาเหล่านี้ไม่ได้บัดกรีเข้ากับแผงเลย อุปกรณ์ที่เสร็จสมบูรณ์แล้วมีลักษณะดังนี้:


    ฉันตัดสินใจไม่บัดกรีซ็อกเก็ตทั้งหมด เพราะ... ฉันแค่ต้องแฟลชมัน PIC16F628A- หลังจากการบัดกรีคุณต้องกำหนดค่าโปรแกรม เราจะแฟลช IC-Prog ดาวน์โหลดโปรแกรมแกะออกจากไฟล์เก็บถาวร ไฟล์ทั้งหมดจะต้องอยู่ในโฟลเดอร์เดียว!

    1) หากคุณใช้ Windows NT, 2000 หรือ XP ให้คลิกขวาที่ไฟล์ icprog.exe - คุณสมบัติ" >> แท็บ " ความเข้ากันได้" >> ตั้งค่าช่องทำเครื่องหมายเป็น " รันโปรแกรมในโหมดความเข้ากันได้สำหรับ:" >>
    เลือก "วินโดวส์ 2000"

    2) มาเปิดโปรแกรมกันเถอะ หากเป็นภาษารัสเซียอยู่แล้ว คุณไม่จำเป็นต้องทำอะไรเลย ให้ไปที่ขั้นตอน 3 .

    หากโปรแกรมเป็นภาษาอังกฤษให้คลิก " การตั้งค่า" >> "ตัวเลือก" >> แท็บ " ภาษา" >> ตั้งค่าภาษา " ภาษารัสเซีย" และคลิก "ตกลง"
    เห็นด้วยกับข้อความที่ว่า” คุณต้องรีสตาร์ท IC-Prog ทันที" (คลิก " ตกลง") เชลล์โปรแกรมเมอร์จะรีสตาร์ท

    3) ตอนนี้คุณต้องกำหนดค่าโปรแกรมเมอร์ คลิก " การตั้งค่า" >> "โปรแกรมเมอร์" ตรวจสอบการตั้งค่า เลือกพอร์ต COM ที่คุณใช้อยู่ คลิก " ตกลง".


    สำหรับคอมพิวเตอร์ที่เร็วมาก คุณอาจต้องเพิ่มการตั้งค่า I/O Latency การเพิ่มพารามิเตอร์นี้จะเพิ่มความน่าเชื่อถือของการเขียนโปรแกรม อย่างไรก็ตาม เวลาที่ใช้ในการเขียนโปรแกรมชิปก็เพิ่มขึ้นเช่นกัน

    4) สำหรับผู้ใช้ Windows NT, 2000 หรือ XP เท่านั้น คลิก " การตั้งค่า" >> "ตัวเลือก" >> เลือกแท็บ " ทั่วไป" >> ทำเครื่องหมายในช่อง " บน ไดรเวอร์ NT/2000/XP" >> คลิก " ตกลง" >> หากไม่เคยติดตั้งไดรเวอร์บนระบบของคุณมาก่อนในหน้าต่างที่ปรากฏขึ้น " ยืนยัน"คลิก" ตกลง " ไดรเวอร์จะถูกติดตั้งและเชลล์โปรแกรมเมอร์จะรีสตาร์ท

    5) คลิกอีกครั้ง " การตั้งค่า" >> "ตัวเลือก" >> เลือกแท็บ " ไอทูซี" >> ทำเครื่องหมายในช่อง: " เปิดใช้งาน MCLR เป็น VCC" และ " เปิดใช้งานการบันทึกบล็อก". คลิก" ตกลง".

    6) "การตั้งค่า" >> "ตัวเลือก" >> เลือกแท็บ " การเขียนโปรแกรม" >> ยกเลิกการเลือกช่อง: " ตรวจสอบหลังการตั้งโปรแกรม"และทำเครื่องหมายในช่อง" ตรวจสอบระหว่างการเขียนโปรแกรม". คลิก" ตกลง".


    เสร็จแล้วตอนนี้โปรแกรมก็พร้อมที่จะทำงานร่วมกับโปรแกรมเมอร์โดยสมบูรณ์แล้ว เราเชื่อมต่อโปรแกรมเมอร์ของเรากับ คอมเลือกไมโครคอนโทรลเลอร์ของเราในโปรแกรม เปิดเฟิร์มแวร์และตั้งโปรแกรม MK ซีรีส์ PIC ใดๆ ขอให้ทุกคนโชคดีในการทำงานกับโปรแกรมเมอร์และคอนโทรลเลอร์!