- สถาปัตยกรรมและการประยุกต์ใช้ไมโครคอนโทรลเลอร์ PIC:
- การเลือกไมโครคอนโทรลเลอร์ PIC สำหรับบทช่วยสอนของเรา:
- การเลือกซอฟต์แวร์สำหรับบทช่วยสอนของเรา:
- เตรียมพร้อมกับฮาร์ดแวร์:
ในปี 1980 Intel ได้พัฒนาไมโครคอนโทรลเลอร์ตัวแรก (8051) ด้วย Harvard Architecture 8051 และตั้งแต่นั้นเป็นต้นมาไมโครคอนโทรลเลอร์ได้นำการปฏิวัติในอุตสาหกรรมอิเล็กทรอนิกส์และอุปกรณ์ฝังตัว และด้วยความก้าวหน้าทางเทคโนโลยีในช่วงเวลานี้เรามีไมโครคอนโทรลเลอร์ที่มีประสิทธิภาพและใช้พลังงานต่ำมากมายเช่น AVR, PIC, ARM ไมโครคอนโทรลเลอร์เหล่านี้มีความสามารถและใช้งานง่ายมากขึ้นโดยมีโปรโตคอลการสื่อสารล่าสุดเช่น USB, I2C, SPI, CAN เป็นต้นแม้แต่ Arduino และ Raspberry Pi ก็เปลี่ยนมุมมองที่มีต่อไมโครคอนโทรลเลอร์อย่างสิ้นเชิงและ Raspberry Pi ไม่ใช่แค่ไมโครคอนโทรลเลอร์ แต่ยังมีทั้งหมด คอมพิวเตอร์ภายใน
นี้จะเป็นส่วนแรกของชุดของบทเรียนที่ยังมาไม่ถึงซึ่งจะช่วยให้คุณในการเรียนรู้PIC ไมโครคอนโทรลเลอร์ หากคุณมาจากพื้นเพด้านอิเล็กทรอนิกส์และต้องการเริ่มต้นด้วยการเรียนรู้ไมโครคอนโทรลเลอร์บางตัวและเข้าสู่โลกแห่งการเขียนโค้ดและการสร้างสิ่งต่างๆบทเรียนชุดนี้จะเป็นขั้นตอนแรกในการเริ่มต้น
ไมโครคอนโทรลเลอร์ PIC เป็นตัวเลือกที่สะดวกมากในการเริ่มต้นโครงการไมโครคอนโทรลเลอร์เนื่องจากมีฟอรัมการสนับสนุนที่ดีเยี่ยมและจะทำหน้าที่เป็นฐานที่แข็งแกร่งในการสร้างไมโครคอนโทรลเลอร์ขั้นสูงทั้งหมดของคุณที่คุณยังไม่ได้เรียนรู้
บทเรียนเหล่านี้จะทำสำหรับผู้เรียนแน่นอนหรือกลาง; เราได้วางแผนที่จะเริ่มต้นด้วยโครงการพื้นฐานที่สุดไปจนถึงโครงการขั้นสูง เราคาดว่าจะไม่มีข้อกำหนดเบื้องต้นจากผู้เรียนเนื่องจากเราอยู่ที่นี่เพื่อช่วยเหลือคุณจากทุกระดับ ทุกบทช่วยสอนจะมีคำอธิบายทางทฤษฎีและการจำลองตามด้วยการสอนแบบลงมือปฏิบัติ บทเรียนเหล่านี้จะไม่เกี่ยวข้องกับบอร์ดพัฒนาใด ๆ เราจะสร้างวงจรของเราเองโดยใช้บอร์ด perf ดังนั้นเตรียมความพร้อมและหาเวลาทุกสัปดาห์เพื่อเพิ่มประสิทธิภาพให้คุณด้วยไมโครคอนโทรลเลอร์
ตอนนี้เรามาเริ่มต้นด้วยบทนำง่ายๆเกี่ยวกับไมโครคอนโทรลเลอร์ PICและการตั้งค่าซอฟต์แวร์บางอย่างเพื่อให้เราใช้งานบทช่วยสอนต่อไป ตรวจสอบวิดีโอในตอนท้ายสำหรับการติดตั้งและตั้งค่า MPLABX, XC8, Proteus และการแกะกล่องโปรแกรมเมอร์ PICkit 3 อย่างรวดเร็ว
สถาปัตยกรรมและการประยุกต์ใช้ไมโครคอนโทรลเลอร์ PIC:
ไมโครคอนโทรลเลอร์ PIC ได้รับการแนะนำโดยMicrochip Technologiesในปี พ.ศ. 2536 เดิมที PIC เหล่านี้ได้รับการพัฒนาให้เป็นส่วนหนึ่งของคอมพิวเตอร์ PDP (โปรแกรมประมวลผลข้อมูล)และอุปกรณ์ต่อพ่วงแต่ละตัวของคอมพิวเตอร์จะเชื่อมต่อกันโดยใช้ไมโครคอนโทรลเลอร์ PIC นี้ ดังนั้น PIC จึงได้รับชื่อเป็นPeripheral Interface Controllerไมโครชิพในภายหลังได้พัฒนา IC ซีรีส์ PIC จำนวนมากซึ่งสามารถใช้กับแอพพลิเคชั่นขนาดเล็กเช่นแอพพลิเคชั่นแสงสว่างจนถึงขั้นสูง
ไมโครคอนโทรลเลอร์ทุกตัวจะต้องสร้างขึ้นจากสถาปัตยกรรมบางประเภทสถาปัตยกรรมที่มีชื่อเสียงที่สุดคือสถาปัตยกรรมฮาร์วาร์ด PIC ของเราใช้สถาปัตยกรรมนี้เนื่องจากเป็นของตระกูล 8051 คลาสสิก มาดูบทนำเล็ก ๆ เกี่ยวกับสถาปัตยกรรม Harvard ของ PICกัน
PIC16F877A Microcontrollerประกอบด้วย CPU inbuilt I / O พอร์ตองค์กรหน่วยความจำ, A / D converter, จับเวลา / เคาน์เตอร์ขัดจังหวะการสื่อสารแบบอนุกรม, oscillator และโมดูล CCP ซึ่งจะรวบรวมทำให้ IC ไมโครคอนโทรลเลอร์ที่มีประสิทธิภาพสำหรับผู้เริ่มต้นจะเริ่มต้นด้วย แผนภาพบล็อกทั่วไปของสถาปัตยกรรม PIC แสดงไว้ด้านล่าง
CPU (หน่วยประมวลผลกลาง):
ไมโครคอนโทรลเลอร์มี CPU เพื่อดำเนินการทางคณิตศาสตร์การตัดสินใจเชิงตรรกะและการดำเนินการที่เกี่ยวข้องกับหน่วยความจำ ซีพียูต้องประสานงานระหว่างแรมและอุปกรณ์ต่อพ่วงอื่น ๆ ของไมโครคอนโทรลเลอร์
ประกอบด้วยALU (Arithmetic Logic Unit) ซึ่งใช้ในการดำเนินการทางคณิตศาสตร์และการตัดสินใจเชิงตรรกะ นอกจากนี้ยังมีMU (หน่วยความจำ) เพื่อจัดเก็บคำสั่งหลังจากดำเนินการ MU นี้กำหนดขนาดรายการของ MC ของเรา นอกจากนี้ยังประกอบด้วยCU (Control Unit) ซึ่งทำหน้าที่เป็นบัสสื่อสารระหว่างซีพียูและอุปกรณ์ต่อพ่วงอื่น ๆ ของไมโครคอนโทรลเลอร์ สิ่งนี้ช่วยในการดึงข้อมูลหลังจากได้รับการประมวลผลในการลงทะเบียนที่ระบุ
หน่วยความจำเข้าถึงโดยสุ่ม (RAM):
หน่วยความจำ Random Access คือหน่วยความจำที่กำหนดความเร็วของไมโครคอนโทรลเลอร์ของเรา RAM ประกอบด้วยธนาคารที่ลงทะเบียนอยู่ภายในซึ่งแต่ละหน่วยงานได้รับมอบหมายงานเฉพาะ โดยรวมแล้วสามารถแบ่งออกเป็นสองประเภท:
- การลงทะเบียนวัตถุประสงค์ทั่วไป (GPR)
- ลงทะเบียนฟังก์ชันพิเศษ (SFR)
ตามชื่อที่แนะนำGPR ใช้สำหรับฟังก์ชั่นการลงทะเบียนทั่วไปเช่นการบวกการลบเป็นต้นการดำเนินการเหล่านี้ถูก จำกัด ภายใน 8 บิต การลงทะเบียนทั้งหมดภายใต้ GPR นั้นผู้ใช้สามารถเขียนและอ่านได้ พวกเขาไม่มีฟังก์ชันใด ๆ ของตัวเองเว้นแต่จะมีการระบุซอฟต์แวร์ไว้
ในขณะที่SFR ใช้เพื่อทำหน้าที่พิเศษที่ซับซ้อนซึ่งเกี่ยวข้องกับการจัดการ 16 บิตบางส่วนรีจิสเตอร์ของพวกเขาสามารถอ่านได้ (R) เท่านั้นและเราไม่สามารถเขียน (W) อะไรถึงพวกเขาได้ ดังนั้นการลงทะเบียนเหล่านี้จึงมีฟังก์ชั่นที่กำหนดไว้ล่วงหน้าให้ดำเนินการซึ่งกำหนดไว้ในขณะที่ทำการผลิตและเพียงแค่แสดงผลลัพธ์ให้เราเห็นซึ่งเราสามารถดำเนินการที่เกี่ยวข้อง
อ่านอย่างเดียวหน่วยความจำ (ROM):
หน่วยความจำแบบอ่านอย่างเดียวคือที่เก็บโปรแกรมของเรา สิ่งนี้จะกำหนดขนาดสูงสุดของโปรแกรมของเรา จึงจะเรียกว่าเป็นหน่วยความจำโปรแกรมเมื่อ MCU อยู่ระหว่างการทำงานโปรแกรมที่เก็บไว้ใน ROM จะถูกดำเนินการตามแต่ละรอบคำสั่ง หน่วยความจำนี้สามารถใช้ได้เฉพาะในขณะที่ตั้งโปรแกรม PIC เท่านั้นในระหว่างการดำเนินการจะกลายเป็นหน่วยความจำแบบอ่านอย่างเดียว
หน่วยความจำแบบอ่านอย่างเดียวที่ตั้งโปรแกรมได้ด้วยระบบไฟฟ้า (EEPROM):
EEPROM เป็นหน่วยความจำอีกประเภทหนึ่ง ในหน่วยความจำนี้สามารถจัดเก็บค่าระหว่างการทำงานของโปรแกรมได้ ค่าที่เก็บไว้ที่นี่เป็นเพียงการลบด้วยไฟฟ้าเท่านั้นซึ่งค่าเหล่านี้จะถูกเก็บไว้ใน PIC แม้ว่า IC จะปิดอยู่ก็ตาม สามารถใช้เป็นพื้นที่หน่วยความจำขนาดเล็กเพื่อเก็บค่าที่ดำเนินการ อย่างไรก็ตามพื้นที่หน่วยความจำจะน้อยลงมากเมื่อเปลี่ยนเป็น KB
หน่วยความจำแฟลช :
หน่วยความจำแฟลชยังเป็นหน่วยความจำแบบอ่านอย่างเดียวที่ตั้งโปรแกรมได้ (PROM) ซึ่งเราสามารถอ่านเขียนและลบโปรแกรมได้หลายพันครั้ง โดยทั่วไปไมโครคอนโทรลเลอร์ PIC จะใช้ ROM ประเภทนี้
พอร์ต I / O
- PIC16F877A ของเราประกอบด้วยพอร์ต 5 พอร์ต ได้แก่ พอร์ต A พอร์ต B พอร์ต C พอร์ต D และพอร์ต E
- จากทั้งหมดห้า PORTS พอร์ต A คือ 16 บิตและ PORT E เป็น 3 บิต PORTS ที่เหลือเป็นแบบ 8 บิต
- หมุดบน PORTS เหล่านี้สามารถใช้เป็นอินพุตหรือเอาต์พุตได้ตามการกำหนดค่า TRIS Register
- นอกเหนือจากการดำเนินการ I / O แล้วพินยังสามารถใช้กับฟังก์ชันพิเศษเช่น SPI, Interrupt, PWM เป็นต้น
รถบัส:
คำว่า Bus เป็นเพียงสายไฟจำนวนหนึ่งที่เชื่อมต่ออุปกรณ์อินพุตหรือเอาต์พุตกับ CPU และ RAM
บัสข้อมูลใช้ในการถ่ายโอนหรือรับข้อมูล
แอดเดรสบัสใช้ในการส่งแอดเดรสหน่วยความจำจากอุปกรณ์ต่อพ่วงไปยัง CPU พิน I / O ใช้เพื่อเชื่อมต่อกับอุปกรณ์ต่อพ่วงภายนอก UART และ USART ทั้งสองโปรโตคอลการสื่อสารแบบอนุกรมใช้สำหรับเชื่อมต่ออุปกรณ์แบบอนุกรมเช่น GSM, GPS, Bluetooth, IR เป็นต้น
การเลือกไมโครคอนโทรลเลอร์ PIC สำหรับบทช่วยสอนของเรา:
ไมโครคอนโทรลเลอร์ PIC จาก บริษัท ไมโครชิพแบ่งออกเป็น 4 ตระกูลใหญ่ แต่ละตระกูลมีส่วนประกอบที่หลากหลายซึ่งมีคุณสมบัติพิเศษในตัว:
- ตระกูลแรก PIC10 (10FXXX) - เรียกว่า Low End
- ตระกูลที่สอง PIC12 (PIC12FXXX) - เรียกว่า Mid-Range
- ตระกูลที่สามคือ PIC16 (16FXXX)
- ตระกูลที่สี่คือ PIC 17/18 (18FXXX)
เนื่องจากเราเริ่มเรียนรู้เกี่ยวกับ PIC ให้เราเลือก IC ที่ใช้และพร้อมใช้งานในระดับสากล IC นี้เป็นของตระกูล 16F หมายเลขชิ้นส่วนของ IC คือPIC16F877A ตั้งแต่บทช่วยสอนแรกจนถึงตอนท้ายเราจะใช้ IC เดียวกันเนื่องจากIC นี้มีคุณสมบัติขั้นสูงทั้งหมดเช่น SPI, I2C และ UARTเป็นต้น แต่ถ้าคุณไม่ได้รับสิ่งเหล่านี้ตอนนี้ก็เรียบร้อยดีเราจะ รับความคืบหน้าในทุกบทช่วยสอนและในที่สุดก็ใช้คุณสมบัติที่กล่าวมาทั้งหมด
เมื่อเลือก IC แล้วสิ่งสำคัญอย่างยิ่งในการอ่านแผ่นข้อมูลของ IC นี่ควรเป็นขั้นตอนแรกของแนวคิดที่เรากำลังจะลองทำ ตอนนี้เนื่องจากเราได้เลือก PIC16F877A นี้ให้อ่านข้อมูลจำเพาะของ IC นี้ในแผ่นข้อมูล
คุณสมบัติอุปกรณ์ต่อพ่วง ระบุว่ามีตัวจับเวลา 3 ตัวสองตัวคือ 8 บิตและอีกตัวเป็นพรีสแคลเลอร์ 16 บิต ตัวจับเวลาเหล่านี้ใช้เพื่อสร้างฟังก์ชันจับเวลาในโปรแกรมของเรา นอกจากนี้ยังสามารถใช้เป็นเคาน์เตอร์ได้ นอกจากนี้ยังแสดงให้เห็นว่ามีตัวเลือกCCP (Capture Compare และ PWM)ซึ่งช่วยให้เราสร้างสัญญาณ PWM และอ่านสัญญาณความถี่ขาเข้า สำหรับการสื่อสารกับอุปกรณ์ภายนอกก็มีSPI, I2C, PSP และ USART เพื่อความปลอดภัยมีการติดตั้งBrown-out Reset (BOR) ซึ่งช่วยในการรีเซ็ตโปรแกรม while
อนาล็อกคุณสมบัติ บ่งชี้ว่ามี IC 10 บิต 8 ช่อง ADC ซึ่งหมายความว่า IC ของเราสามารถแปลงค่าอนาล็อกเป็นดิจิตอลด้วยความละเอียด 10 บิตและมีพินอนาล็อก 8 พินเพื่ออ่านค่า นอกจากนี้เรายังมีตัวเปรียบเทียบภายในสองตัวที่สามารถใช้เพื่อเปรียบเทียบแรงดันไฟฟ้าขาเข้าได้โดยตรงโดยไม่ต้องอ่านผ่านซอฟต์แวร์จริงๆ
คุณสมบัติพิเศษของไมโครคอนโทรลเลอร์ หมายความว่ามีการลบ / เขียน 100,000 รอบซึ่งหมายความว่าคุณสามารถตั้งโปรแกรมได้ประมาณ 100,000 ครั้ง In-Circuit Serial Programming ™ (ICSP ™)ช่วยให้เราสามารถตั้งโปรแกรม IC ได้โดยตรงโดยใช้PICKIT3 การดีบักสามารถทำได้ผ่านIn-Circuit Debug (ICD) คุณสมบัติด้านความปลอดภัยอีกประการหนึ่งคือWatchdog Timer (WDT)ซึ่งเป็นตัวจับเวลาที่เชื่อถือได้ซึ่งจะรีเซ็ตโปรแกรมทั้งหมดหากจำเป็น
ภาพด้านล่างหมายถึงpinouts ของ PIC16F877A IC รูปภาพนี้แสดงถึงพินแต่ละอันเทียบกับชื่อและคุณสมบัติอื่น ๆ สิ่งนี้สามารถพบได้ในแผ่นข้อมูล เก็บภาพนี้ไว้ใช้ประโยชน์จะช่วยเราในระหว่างการทำงานของฮาร์ดแวร์
การเลือกซอฟต์แวร์สำหรับบทช่วยสอนของเรา:
ไมโครคอนโทรลเลอร์ PIC สามารถตั้งโปรแกรมด้วยซอฟต์แวร์ต่างๆที่มีอยู่ในตลาด ยังมีคนที่ยังใช้ภาษา Assembly ในการเขียนโปรแกรม PIC MCU สำหรับบทช่วยสอนของเราเราได้เลือกซอฟต์แวร์และคอมไพเลอร์ที่ทันสมัยที่สุดซึ่งได้รับการพัฒนาโดยไมโครชิพเอง
ในการตั้งโปรแกรมไมโครคอนโทรลเลอร์ PIC เราจำเป็นต้องมี IDE (Integrated Development Environment)ซึ่งการเขียนโปรแกรมจะเกิดขึ้น คอมไพเลอร์ที่โปรแกรมของเราได้รับที่แปลงเป็น MCU อ่านรูปแบบที่เรียกว่าไฟล์ HEX IPE (แบบบูรณาการโปรแกรมสิ่งแวดล้อม)ซึ่งจะใช้ในการถ่ายโอนข้อมูลไฟล์ฐานสิบหกของเราเป็น PIC MCUs ของเรา
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
ผู้เรียบเรียง: XC8
ไมโครชิปได้มอบซอฟต์แวร์ทั้งสามนี้ให้ฟรี สามารถดาวน์โหลดได้โดยตรงจากหน้าอย่างเป็นทางการ ฉันได้ให้ลิงค์ไว้เพื่อความสะดวกของคุณ เมื่อดาวน์โหลดแล้วให้ติดตั้งบนคอมพิวเตอร์ของคุณ หากคุณมีปัญหาใด ๆ คุณสามารถดูวิดีโอที่ให้ไว้ในตอนท้าย
เพื่อวัตถุประสงค์ในการจำลองเราได้ใช้ซอฟต์แวร์ที่เรียกว่าPROTEUS 8ซึ่งจัดทำโดย Labcenter ซอฟต์แวร์นี้สามารถใช้เพื่อจำลองรหัสของเราที่สร้างขึ้นโดยใช้ MPLABX มีซอฟต์แวร์สาธิตฟรีซึ่งสามารถดาวน์โหลดได้จากหน้าอย่างเป็นทางการผ่านลิงค์
เตรียมพร้อมกับฮาร์ดแวร์:
บทเรียนทั้งหมดของเราจะจบลงด้วยฮาร์ดแวร์ หากต้องการเรียนรู้ PIC ด้วยวิธีที่ดีที่สุดขอแนะนำให้ทดสอบรหัสและวงจรของเราผ่านฮาร์ดแวร์เสมอเนื่องจากความน่าเชื่อถือของการจำลองนั้นน้อยมาก รหัสที่ทำงานบนซอฟต์แวร์จำลองอาจไม่ทำงานตามที่คุณคาดไว้ในฮาร์ดแวร์ของคุณ ดังนั้นเราจะสร้างวงจรของเราเองบนบอร์ด Perf เพื่อถ่ายโอนรหัสของเรา
การถ่ายโอนข้อมูลหรืออัปโหลดรหัสของเราเป็น PIC เราจะต้องPICkit 3. PICkit 3 โปรแกรมเมอร์ / ดีบักเป็นง่ายต้นทุนต่ำดีบักในวงจรที่ถูกควบคุมโดยเครื่องคอมพิวเตอร์ที่ใช้ MPLAB IDE (v8.20 หรือสูงกว่า) ซอฟต์แวร์บน แพลตฟอร์ม Windows PICkit 3 โปรแกรมเมอร์ / ดีบักเป็นส่วนหนึ่งของชุดเครื่องมือพัฒนาวิศวกรของ นอกจากนี้เรายังต้องการฮาร์ดแวร์อื่น ๆ เช่น Perf board, Soldering station, PIC ICs, Crystal oscillators, capacitors เป็นต้น แต่เราจะเพิ่มเข้าไปในรายการของเราเมื่อเราดำเนินการผ่านบทช่วยสอนของเรา
ฉันนำ PICkit 3 ของฉันมาจาก amazon วิดีโอแกะกล่องที่เหมือนกันสามารถพบได้ในวิดีโอด้านล่าง นอกจากนี้ยังมีลิงค์สำหรับ PICKIT3 ราคาอาจจะสูงไปหน่อย แต่เชื่อเถอะว่าคุ้มที่จะลงทุน