- เริ่มต้นด้วยความต้องการของโครงการ
- ดูพารามิเตอร์แนะนำ
- แรงดันไฟฟ้าในการทำงาน
- ตัวเชื่อมต่อเป้าหมาย
- อินเทอร์เฟซขั้นสูง
- การพัฒนาสภาพแวดล้อม
- ราคาและห้องว่าง
- คุณสมบัติอื่น ๆ
- สรุป
เมื่อพูดถึงการเลือกไมโครคอนโทรลเลอร์มันเป็นงานที่น่าสับสนเนื่องจากมีไมโครคอนโทรลเลอร์หลายตัวในตลาดที่มีคุณสมบัติเหมือนกัน ดังนั้นทุกพารามิเตอร์จึงมีความสำคัญเมื่อต้องเลือกไมโครคอนโทรลเลอร์ ที่นี่เรากำลังเปรียบเทียบไมโครคอนโทรลเลอร์ - PIC Microcontroller และ AVR Microcontroller ที่ใช้กันมากที่สุดสองตัว ที่นี่มีการเปรียบเทียบในระดับต่างๆซึ่งจะเป็นประโยชน์ในการเลือกไมโครคอนโทรลเลอร์สำหรับโครงการของคุณ
เริ่มต้นด้วยความต้องการของโครงการ
รวบรวมข้อมูลทั้งหมดเกี่ยวกับโครงการของคุณที่จะเริ่มต้นก่อนที่จะเริ่มเลือกไมโครคอนโทรลเลอร์ใด ๆ เป็นสิ่งสำคัญมากที่ควรรวบรวมข้อมูลให้มากที่สุดเท่าที่จะทำได้เนื่องจากจะมีบทบาทสำคัญในการเลือกไมโครคอนโทรลเลอร์ที่เหมาะสม
- รวบรวมข้อมูลของโครงการเช่นขนาดของโครงการ
- จำนวนอุปกรณ์ต่อพ่วงและเซนเซอร์ที่ใช้
- ความต้องการพลังงาน
- งบประมาณโครงการ
- ข้อกำหนดการเชื่อมต่อ (เช่น USB, SPI, I2C, UART เป็นต้น)
- สร้างแผนภาพบล็อกฮาร์ดแวร์พื้นฐาน)
- ระบุจำนวน GPIO ที่จำเป็น
- อินพุตอะนาล็อกเป็นดิจิตอล (ADCs)
- PWM
- เลือกสถาปัตยกรรมที่ถูกต้องเช่น (8 บิต 16 บิต 32 บิต)
- รับรู้ความต้องการหน่วยความจำของโครงการ (RAM, Flash ฯลฯ)
ดูพารามิเตอร์แนะนำ
เมื่อรวบรวมข้อมูลทั้งหมดแล้วก็ถึงเวลาที่เหมาะสมในการเลือกไมโครคอนโทรลเลอร์ ในบทความนี้จะมีการเปรียบเทียบไมโครคอนโทรลเลอร์ยี่ห้อ PIC และ AVR ที่มีพารามิเตอร์ต่างๆกัน ขึ้นอยู่กับความต้องการของโครงการในการเปรียบเทียบทั้งสองดูที่พารามิเตอร์ต่อไปนี้เช่น
- ความถี่:ความเร็วที่ไมโครคอนโทรลเลอร์จะทำงาน
- จำนวนพิน I / O:พอร์ตและพินที่ต้องการ
- RAM: ตัวแปรและอาร์เรย์ทั้งหมดที่ประกาศ (DATA) ใน MCU ส่วนใหญ่
- หน่วยความจำแฟลช:ไม่ว่าคุณจะเขียนโค้ดอะไรก็ตามจะอยู่ที่นี่หลังจากรวบรวม
- อินเทอร์เฟซขั้นสูง:อินเทอร์เฟซขั้นสูงเช่น USB, CAN และ Ethernet
- แรงดันไฟฟ้าที่ใช้งาน:แรงดันใช้งานของ MCU เช่น 5V, 3.3V หรือแรงดันไฟฟ้าต่ำ
- Target Connectors:ตัวเชื่อมต่อเพื่อความสะดวกในการออกแบบวงจรและขนาด
พารามิเตอร์ส่วนใหญ่มีความคล้ายคลึงกันทั้งใน PIC และ AVR แต่มีพารามิเตอร์บางตัวที่แตกต่างกันอย่างแน่นอนเมื่อเปรียบเทียบ
แรงดันไฟฟ้าในการทำงาน
ด้วยผลิตภัณฑ์ที่ใช้แบตเตอรี่มากขึ้น PIC และ AVR จึงสามารถปรับปรุงการทำงานที่ใช้แรงดันไฟฟ้าต่ำได้ AVR เป็นที่รู้จักกันดีสำหรับการทำงานด้วยแรงดันไฟฟ้าต่ำกว่าซีรีย์ PIC รุ่นเก่าเช่น PIC16F และ PIC18F เนื่องจากซีรีส์ PIC เหล่านี้ใช้วิธีการลบชิปที่ต้องใช้อย่างน้อย 4.5V ในการทำงานและโปรแกรมเมอร์ PIC ที่ต่ำกว่า 4.5V ต้องใช้อัลกอริทึมการลบแถว ซึ่งไม่สามารถลบอุปกรณ์ที่ล็อกไว้ได้ อย่างไรก็ตามนี่ไม่ใช่กรณีของ AVR
AVR ได้ปรับปรุงและเปิดตัว P (pico-power) รุ่นล่าสุดเช่น ATmega328P ซึ่งใช้พลังงานต่ำมาก นอกจากนี้ ATtiny1634 ในปัจจุบันยังได้รับการปรับปรุงและมาพร้อมกับโหมดสลีปเพื่อลดการใช้พลังงานเมื่อใช้ไฟดับซึ่งมีประโยชน์มากในอุปกรณ์ที่ใช้แบตเตอรี่
ข้อสรุปคือAVR มุ่งเน้นไปที่แรงดันไฟฟ้าต่ำก่อนหน้านี้ แต่ตอนนี้ PIC ได้รับการเปลี่ยนแปลงสำหรับการทำงานด้วยแรงดันไฟฟ้าต่ำและได้เปิดตัวผลิตภัณฑ์บางอย่างที่ใช้ picPower
ตัวเชื่อมต่อเป้าหมาย
ตัวเชื่อมต่อเป้าหมายมีความสำคัญมากในการออกแบบและพัฒนา AVR ได้กำหนดอินเทอร์เฟซ ISP 6 และ 10 ทางซึ่งทำให้ใช้งานง่ายในขณะที่ PIC ไม่มีดังนั้นโปรแกรมเมอร์ PIC จึงมาพร้อมกับสายการบินหรือซ็อกเก็ต RJ11 ซึ่งยากที่จะใส่ในวงจร
สรุปก็คือAVR ทำให้มันง่ายขึ้นในแง่ของการออกแบบและพัฒนาวงจรด้วยขั้วต่อเป้าหมายในขณะที่ PIC ยังคงต้องแก้ไขสิ่งนี้
อินเทอร์เฟซขั้นสูง
ในแง่ของอินเทอร์เฟซขั้นสูง PIC ก็เป็นตัวเลือกอย่างแน่นอนเนื่องจากมีคุณสมบัติขั้นสูงเช่น USB, CAN และ Ethernet ซึ่งไม่ใช่ในกรณีของ AVR อย่างไรก็ตามเราสามารถใช้ชิปภายนอกเช่น FTDI USB กับชิปอนุกรมตัวควบคุม Microchip Ethernet หรือชิป CAN ของ Philips
สรุปคือPIC มีอินเทอร์เฟซขั้นสูงกว่า AVR อย่างแน่นอน
การพัฒนาสภาพแวดล้อม
นอกเหนือจากนี้ยังมีคุณสมบัติที่สำคัญซึ่งทำให้ไมโครคอนโทรลเลอร์ทั้งสองต่างกัน ความสะดวกในการพัฒนาสภาพแวดล้อมมีความสำคัญมาก ด้านล่างนี้เป็นพารามิเตอร์ที่สำคัญบางประการซึ่งจะอธิบายถึงความสะดวกในการพัฒนาสภาพแวดล้อม:
- IDE การพัฒนา
- C คอมไพเลอร์
- ผู้ประกอบ
IDE การพัฒนา:
ทั้งสอง PIC AVR และมาพร้อมกับ IDEs การพัฒนา PIC ทำได้บน MPLAB Xซึ่งเป็นที่ทราบกันดีว่าเป็น IDE ที่เสถียรและเรียบง่ายเมื่อเทียบกับAtmel Studio7 ของ AVRซึ่งมีขนาดใหญ่ 750MB และค่อนข้างอึดอัดพร้อมคุณสมบัติเสริมเพิ่มเติมซึ่งทำให้ยากและซับซ้อนสำหรับมือสมัครเล่นอิเล็กทรอนิกส์มือใหม่.
รูปที่สามารถโปรแกรมผ่านเครื่องมือไมโครชิป PicKit3 และ MPLAB X AVR ถูกตั้งโปรแกรมโดยใช้เครื่องมือเช่น JTAGICE และ AtmelStudio7 อย่างไรก็ตามผู้ใช้เปลี่ยนไปใช้ AVR Studio เวอร์ชันเก่าเช่น 4.18 พร้อม service pack3 เนื่องจากทำงานได้เร็วกว่ามากและมีคุณสมบัติพื้นฐานสำหรับการพัฒนา
สรุปก็คือPIC MPLAB X นั้นเร็วกว่าและใช้งานง่ายกว่า AtmelStudio7เล็กน้อย
C คอมไพเลอร์:
ทั้ง PIC และ AVR มาพร้อมกับคอมไพเลอร์ XC8 และ WINAVR C ตามลำดับ PIC ได้ซื้อ Hi-tech และได้เปิดตัวคอมไพเลอร์ XC8 ของตัวเอง สิ่งนี้รวมเข้ากับ MPLAB X อย่างสมบูรณ์และทำงานได้ดี แต่ WINAVR เป็น ANSI C ที่ใช้คอมไพเลอร์ GCC ซึ่งทำให้ง่ายต่อการพอร์ตโค้ดและใช้ไลบรารีมาตรฐาน IAR C Compiler เวอร์ชัน จำกัด 4KB ฟรีให้รสชาติของคอมไพเลอร์มืออาชีพที่มีราคาสูงมาก เนื่องจาก AVR ได้รับการออกแบบมาสำหรับ C ในช่วงเริ่มต้นเอาต์พุตโค้ดจึงมีขนาดเล็กและรวดเร็ว
PIC มีคุณสมบัติมากมายที่ทำให้ดีเมื่อเทียบกับ AVR แต่โค้ดจะมีขนาดใหญ่ขึ้นเนื่องจากโครงสร้างของ PIC เวอร์ชันที่ต้องชำระเงินมีให้พร้อมกับการเพิ่มประสิทธิภาพมากขึ้นอย่างไรก็ตามเวอร์ชันฟรีไม่ได้รับการปรับให้เหมาะสม
สรุปได้ว่าWINAVR นั้นดีและเร็วในแง่ของคอมไพเลอร์มากกว่า PIC XC8
ผู้ประกอบ:
ด้วยการลงทะเบียนตัวชี้ 16 บิตสามตัวที่ทำให้การกำหนดแอดเดรสและการทำงานของคำง่ายขึ้นภาษาแอสเซมบลีของ AVR นั้นง่ายมากพร้อมคำแนะนำมากมายและความสามารถในการใช้รีจิสเตอร์ทั้ง 32 ตัวเป็นตัวสะสม ในขณะที่แอสเซมเบลอร์ PIC ไม่ได้ดีกับทุกสิ่งที่บังคับให้ทำงานผ่านตัวสะสมบังคับให้ใช้การสลับธนาคารตลอดเวลาเพื่อเข้าถึงรีจิสเตอร์ฟังก์ชันพิเศษทั้งหมด แม้ว่า MPLAB จะมีมาโครเพื่อลดความซับซ้อนของการสลับธนาคาร แต่ก็น่าเบื่อและใช้เวลานาน
นอกจากนี้การขาดคำสั่งสาขาเพียงแค่ข้ามและ GOTO ซึ่งบังคับให้เข้าสู่โครงสร้างที่ซับซ้อนและรหัสที่สับสนเล็กน้อย ซีรีส์ PIC มีไมโครคอนโทรลเลอร์บางชุดเร็วกว่ามาก แต่ จำกัด ไว้ที่ตัวสะสมเดียวอีกครั้ง
สรุปก็คือแม้ว่าไมโครคอนโทรลเลอร์ PICบางตัวจะเร็วกว่า แต่ AVR จะทำงานได้ดีกว่าในแง่ของแอสเซมเบลอร์
ราคาและห้องว่าง
เมื่อพูดถึงราคาแล้วทั้ง PIC และ AVR นั้นใกล้เคียงกันมาก ทั้งสองอย่างมีจำหน่ายในราคาเดียวกันเป็นส่วนใหญ่ ในแง่ของความพร้อมใช้งาน PIC ได้จัดการเพื่อส่งมอบผลิตภัณฑ์ตามเวลาที่กำหนดเมื่อเทียบกับ AVR เนื่องจากไมโครชิพมีนโยบายในเรื่องระยะเวลารอคอยที่สั้นเสมอ Atmel มีช่วงเวลาที่ยากลำบากเนื่องจากผลิตภัณฑ์ที่หลากหลายหมายความว่า AVR เป็นส่วนเล็ก ๆ ของธุรกิจดังนั้นตลาดอื่น ๆ จึงให้ความสำคัญกับ AVR สำหรับกำลังการผลิต ดังนั้นจึงแนะนำให้ใช้ PIC ในแง่ของตารางการจัดส่งในขณะที่ AVR อาจมีความสำคัญต่อการผลิต ชิ้นส่วนไมโครชิปมักจะหาได้ง่ายกว่าโดยเฉพาะในปริมาณที่น้อย
คุณสมบัติอื่น ๆ
ทั้ง PIC และ AVR มีให้เลือกหลายแพ็คเกจ PIC เปิดตัวเวอร์ชั่นมากกว่า AVR การเปิดตัวเวอร์ชันนี้อาจมีข้อดีข้อเสียขึ้นอยู่กับแอปพลิเคชันเช่นเวอร์ชันอื่น ๆ ทำให้เกิดความสับสนในการเลือกรุ่นที่เหมาะสม แต่ในขณะเดียวกันก็ให้ความยืดหยุ่นที่ดีกว่า เวอร์ชันล่าสุดของทั้ง PIC และ AVR ใช้พลังงานต่ำมากและทำงานในช่วงแรงดันไฟฟ้าที่หลากหลาย นาฬิกาและตัวจับเวลา PIC มีความแม่นยำมากกว่า แต่ในแง่ของความเร็ว PIC และ AVR นั้นเหมือนกันมาก
Atmel Studio 7 ได้เพิ่มไฟล์ Production ELF ซึ่งรวมถึงข้อมูล EEPROM, แฟลชและฟิวส์ในไฟล์เดียว ในขณะที่ AVR ได้รวมข้อมูลฟิวส์ไว้ในรูปแบบไฟล์ hex เพื่อให้สามารถตั้งค่าฟิวส์เป็นรหัสได้ ทำให้การถ่ายโอนโครงการไปสู่การผลิตง่ายขึ้นสำหรับ PIC
สรุป
PIC และ AVRเป็นอุปกรณ์ราคาประหยัดที่ยอดเยี่ยมซึ่งไม่เพียง แต่ใช้ในอุตสาหกรรมเท่านั้น แต่ยังเป็นตัวเลือกยอดนิยมในหมู่นักเรียนและมือสมัครเล่น ทั้งสองใช้กันอย่างแพร่หลายและมีเครือข่ายที่ดี (ฟอรัมตัวอย่างโค้ด) พร้อมสถานะออนไลน์ที่ใช้งานอยู่ ทั้งสองมีการเข้าถึงและการสนับสนุนจากชุมชนที่ดีและทั้งสองแบบมีให้เลือกทั้งขนาดและรูปแบบที่มีอุปกรณ์ต่อพ่วงหลักที่เป็นอิสระ ไมโครชิพได้เข้าครอบครอง Atmel และตอนนี้ดูแลทั้ง AVR และ PIC ในตอนท้ายเป็นที่เข้าใจกันดีว่าการเรียนรู้ไมโครคอนโทรลเลอร์ก็เหมือนกับการเรียนรู้ภาษาโปรแกรมเนื่องจากการเรียนรู้ภาษาอื่นจะง่ายกว่ามากเมื่อคุณได้เรียนรู้
ไม่ว่าจะพูดว่าใครชนะ แต่ในเกือบทุกสาขาของวิศวกรรมไม่มีคำว่า "ดีที่สุด" ในขณะที่ "เหมาะสมที่สุดสำหรับการใช้งาน" เป็นวลีที่เหมาะสมที่สุด ทั้งหมดขึ้นอยู่กับข้อกำหนดของผลิตภัณฑ์วิธีการพัฒนาและกระบวนการผลิตโดยเฉพาะ ดังนั้นขึ้นอยู่กับโครงการเราสามารถเลือกไมโครคอนโทรลเลอร์ที่เหมาะสมจาก PIC และ AVR ได้