มีแพลตฟอร์ม MCU จำนวนมากและเมื่อมีคนคุ้นเคยกับพวกเขาพวกเขามักลังเลที่จะเปลี่ยนไปใช้แพลตฟอร์มอื่น
คำถามของฉันคือ: หากมีใครเริ่มใช้ MCU สำหรับงานที่มีวัตถุประสงค์ทั่วไปในวันนี้ใครจะเลือกได้อย่างไร จุดขายที่เป็นเอกลักษณ์ของแพลตฟอร์มที่แตกต่างกันคืออะไร
มีแพลตฟอร์ม MCU จำนวนมากและเมื่อมีคนคุ้นเคยกับพวกเขาพวกเขามักลังเลที่จะเปลี่ยนไปใช้แพลตฟอร์มอื่น
คำถามของฉันคือ: หากมีใครเริ่มใช้ MCU สำหรับงานที่มีวัตถุประสงค์ทั่วไปในวันนี้ใครจะเลือกได้อย่างไร จุดขายที่เป็นเอกลักษณ์ของแพลตฟอร์มที่แตกต่างกันคืออะไร
คำตอบ:
หนึ่งปีฉันได้พูดคุยเกี่ยวกับการเลือกไมโครคอนโทรลเลอร์ (ใช้เวลาประมาณ 1.5 ชั่วโมง) ผู้ชมเป็นโปรแกรมเมอร์และผู้ผลิตซอฟต์แวร์ระดับสูง ผู้ชมส่วนใหญ่ไม่เคยมีประสบการณ์μCมาก่อนส่วนที่เหลือเล่นกับ Arduino เท่านั้น จำนวนผู้ชมเป็นเรื่องเกี่ยวกับ 30 ดังนั้นนี่คือ multicast ซึ่งตรงข้ามกับคลินิกแบบหนึ่งต่อหนึ่ง
สไลด์สำคัญในการพูดคุยคือ:
ขนาด
สำหรับการเปรียบเทียบไมโครคอนโทรลเลอร์ รายการอยู่ในลำดับจากมากไปน้อย
- สภาพแวดล้อมการพัฒนา (ห่วงโซ่เครื่องมือ)
- การพัฒนาสภาพแวดล้อม
- ฉันพูดถึงสภาพแวดล้อมการพัฒนาหรือไม่?
- สนับสนุน
- แอปพลิเคชันบันทึก
- การสนับสนุนเพียร์: ความรู้เกี่ยวกับเผ่า, เพื่อน, ฟอรั่ม, รหัส teh [sic]
- คุณสมบัติ
- หน่วยความจำ
- อุปกรณ์ต่อพ่วง
- ความกล้าหาญในการคำนวณ
- การใช้พลังงาน
- ราคา
PS
ฉันควรกำหนดขอบเขตที่คำตอบของฉันนี้ จำกัด ฉันเห็นคำถามการเลือกแพลตฟอร์มนี้ผ่านเลนส์สองชนิด คนแรกคือต้นแบบ สิ่งที่สองคือผู้พัฒนาอุปกรณ์มืออาชีพที่มีราคาตามท้องถนนตามคำสั่งของ $ 3k และปริมาณในหลายร้อยปี เลนส์งานอดิเรกก็อยู่ไม่ไกลเช่นกัน ในกรณีเหล่านี้ค่าใช้จ่ายที่เพิ่มขึ้นของไมโครคอนโทรลเลอร์มีขนาดเล็กเมื่อเปรียบเทียบกับค่าใช้จ่ายในการพัฒนาหรือค่าอุปกรณ์มืออาชีพที่ไมโครคอนโทรลเลอร์ไป
แน่นอนว่ามีมุมมองที่แตกต่างกันมากในการผลิตเป็นจำนวนมาก เมื่อใครบางคนเลือกไมโครคอนโทรลเลอร์สำหรับอุปกรณ์ราคาถูกซึ่งจะผลิตในปริมาณมาก (ของเล่นกระแสหลักเป็นตัวอย่างที่ดี) พวกเขาจะถูกขับเคลื่อนด้วยต้นทุนของฮาร์ดแวร์ การประหยัดต้นทุนฮาร์ดแวร์เพียงเล็กน้อยด้วยปริมาณการผลิตจำนวนมาก (ในจำนวนหลายแสนหรือมากกว่า) อาจแสดงให้เห็นถึงความเจ็บปวดจากการใช้สภาพแวดล้อมการพัฒนาที่ไม่มั่นคงและไมโครคอนโทรลเลอร์ราคาต่อรองพร้อมการสนับสนุนแบบปานกลาง
เนื่องจากคำถามนี้ไม่ได้สร้างการเปรียบเทียบแพลตฟอร์มที่ฉันหวังไว้ฉันจึงพยายามสร้างตัวเองขึ้นมาโดยการศึกษาวรรณกรรมรวมถึงคำตอบอื่น ๆ บางทีนี่อาจช่วยคนอื่นในอนาคต
โปรดแจ้งให้เราทราบหากมีข้อผิดพลาดใด ๆ หรือหากมีข้อมูลที่ฉันสามารถเพิ่ม
หมายเหตุเกี่ยวกับการเปรียบเทียบ:
PIC:
AVR:
Arm Cortex-M:
PSoc: (จากคำตอบของ Rocketmagnet)
ใบพัด: (จากคำตอบของ Rocketmagnet)
ยูเอสบี:
"Legend" สำหรับรายการด้านล่าง:
คุณสมบัติของอุปกรณ์ที่มีราคาแพงที่สุด: (โดยประมาณในลำดับราคา)
อีเธอร์เน็ต:
ทางเลือกของ MCU ขึ้นอยู่กับประเภทของโครงการที่คุณกำลังทำอยู่ คุณกำลังสร้างอุปกรณ์ที่มีปริมาณมากราคาถูกสุด ๆ และใช้งานง่ายเช่นไฟกะพริบจักรยานหรือไม่? คุณกำลังพัฒนาหุ่นยนต์ต้นแบบที่ซับซ้อนซึ่งต้องจัดการกับอุปกรณ์และเซ็นเซอร์ IO ที่แปลกประหลาดมากมายหรือไม่?
ฉันทำงานเป็นส่วนใหญ่ ปัญหาหลักของฉันคือพยายามหาไมโครคอนโทรลเลอร์ที่มีชุดอุปกรณ์ต่อพ่วงที่ฉันต้องการ นี่เป็นเรื่องยากมากเนื่องจากข้อกำหนดของเราดูเหมือนจะไม่สำคัญ เราต้องการสิ่งต่าง ๆ เช่น 5 ช่องสัญญาณ PWM, ตัวถอดรหัสสี่เหลี่ยมจัตุรัส 5 ช่อง, พอร์ต SPI ที่ไม่ได้มาตรฐาน 2 พอร์ต, และ UART ที่มี IO ที่ไม่ได้ใช้งาน
MCUs เดียวที่ฉันเห็นซึ่งสามารถจัดการกับความต้องการเหล่านั้นได้อย่างง่ายดายคือ PSoC และใบพัด

Propeller นั้นเป็น MCU 32- บิตแปดตัวในชิปตัวเดียว หากคุณต้องการอุปกรณ์ต่อพ่วงบางประเภทคุณเพียงแค่โปรแกรมหนึ่งใน MCU เพื่อทำงานดังกล่าว ดังนั้นคุณสามารถมีสิ่งที่คุณต้องการ

PSoCs มีสองรสชาติคือ 3 และ 5 และ 3 คือ 8051 คอร์และ 5 คือคอร์เท็กซ์ M3 รวมอยู่ในชิปเป็นบล็อกดิจิตอลและอะนาล็อกที่สามารถกำหนดค่าได้ใหม่ซึ่งสามารถทำเป็นอุปกรณ์ต่อพ่วงได้หลากหลาย: ADCs, ฟิลเตอร์, op-amps, DACs, SPI, UART, ตัวถอดรหัสสี่เหลี่ยมจัตุรัส, CRC generator ฯลฯ
สภาพแวดล้อมในการพัฒนานั้นยอดเยี่ยมมาก คุณมีการแก้ไขซอร์สโค้ดปกติของ IDE ทั่วไป แต่คุณยังมีเอดิเตอร์ schematic คุณสามารถวางสายวงจรดิจิตอลใด ๆ ที่คุณต้องการเชื่อมต่ออุปกรณ์ต่อพ่วงกับประตู flipflops ฯลฯ ต้องการ 5 PWM หรือไม่ ง่ายเพียงนำมันไปวางไว้ในแผนผังวางสายลงและออกไป คุณสามารถเขียนอุปกรณ์ต่อพ่วงของคุณเองใน Verilog หากคุณต้องการบางสิ่งที่ไม่มีให้ แอปพลิเคชั่นของคุณสามารถนำไปใช้กับฮาร์ดแวร์ประเภทนี้ได้อย่างมากมาย
ประโยชน์ที่แท้จริงคือคุณสามารถใช้ชิปตัวเดียวรู้ว่ามันสามารถรับมือกับโปรเจ็กต์มากมายที่คุณต้องการจะทำในอนาคต สิ่งที่ฉันพบว่าน่ารำคาญเกี่ยวกับ PICs นั้นมีการสืบค้นผ่านอุปกรณ์หลายสิบตัวที่กำลังมองหาอุปกรณ์ที่มีชุดอุปกรณ์ต่อพ่วงที่ฉันต้องการ ตอนนี้ฉันไม่มีปัญหานั้น
สำหรับฉันความต้องการที่สำคัญที่สุดคือถ้าอุปกรณ์ / IDE ได้รับการสนับสนุนอย่างดีในพีซีที่ไม่ใช่ Windows ของฉัน (Linux) กลับกลายเป็นว่าสำหรับ Atmel AVR นั้นมีการรองรับ (โอเพ่นซอร์ส) ที่ดีกว่า PIC
การใช้มากกว่าหนึ่งแพลตฟอร์มนั้นไม่เป็นไร การเลือกที่ดีที่สุดสำหรับแต่ละงานและความพร้อมของรหัสและตัวอย่างที่เกี่ยวข้องกับงาน
ส่วนใหญ่มีเครื่องมือในการพัฒนาที่ดี arduino มี visual studio, pic มีเครื่องมือที่ยอดเยี่ยมและอื่น ๆ ดังนั้นสำหรับฉันมันเป็นวิธีที่รวดเร็วและง่ายดายฉันจะทำงานให้สำเร็จได้อย่างไร + มีคนโอเพ่นซอร์สกี่คนที่ทำงานในเรื่องเดียวกัน?
ไมโครคอนโทรลเลอร์เป็นโลกที่เปลี่ยนแปลงอย่างรวดเร็วมีข้อดีหลายประการของการเรียนรู้เกี่ยวกับชิป "ใน" ปัจจุบันและ IDE ที่ได้รับความนิยมมากที่สุดคือการได้รับความช่วยเหลือจากชุมชน ในฐานะที่เป็นบุคคล PIC ฉันจะบอกว่า Aduino อาจมี IDE และบอร์ดพัฒนาที่ดีที่สุดสำหรับมือใหม่ในขณะนี้และคุณสามารถเพิ่มบอร์ด Aduino ขั้นพื้นฐานได้มากมายโดยไม่ต้องสัมผัสหัวแร้ง
ใครก็ตามที่ใช้ aduino สำหรับชีวิตจริงในไม่ช้าอาจต้องการที่จะเดินหน้าต่อไป แต่เมื่อถึงเวลานั้นคุณจะได้เรียนรู้อุปกรณ์อิเล็กทรอนิกส์พื้นฐานจำนวนมากและชุดย่อย C ที่ดีเพื่อใช้สิ่งที่เหมาะสมได้ง่ายขึ้น
ดังที่มีคนพูดถึงว่าคุณเลือกชิปสำหรับโครงการของคุณฉันได้เห็นโปรเจ็กต์ที่ใช้ชิป ARM เป็นเซ็นเซอร์วัดอุณหภูมิหรือตัวแปลงโฆษณาแบบเดียวกับที่ฉันเคยเห็น aduinos และ PIC 16 ผลักไปที่ขีด จำกัด เพื่อสร้างเกมผู้รุกรานอวกาศ เป็น galso reat และเป็นสิ่งที่ดีที่จะเข้าใจ HDL ถ้าคุณจริงจังในการออกแบบอิเล็กทรอนิกส์ .. แต่น่าเสียดายที่มีไม่กี่โครงการในโลกแห่งความเป็นจริงที่คุณจะต้องใช้งานส่วนใหญ่ที่มีปริมาณน้อยการออกแบบที่รวดเร็วและราคาที่ จำกัด นี่คือที่ 8 บิต uC ปกครองสูงสุด
เนื่องจากคำตอบที่โพสต์จำนวนมากมุ่งเน้นไปที่การใช้งานอดิเรกนี่คือคำแนะนำที่หลากหลายที่มุ่งเน้นไปที่นักพัฒนามืออาชีพเท่านั้น
ข้อกำหนดขั้นต่ำเปลือย
หาก MCU ไม่ตอบสนองสิ่งเหล่านี้ทั้งหมดไม่ควรใช้
สัญญาณเตือน - ฮาร์ดแวร์ MCU
สิ่งเหล่านี้เป็นสิ่งที่คุณไม่ควรเสียเวลากับในปี 2019
intซึ่งจะมาพร้อมกับอันตรายที่ซ่อนอยู่ทั้งหมดของการส่งเสริมการขายจำนวนเต็มภาษา Cสัญญาณเตือน - โซ่เครื่องมือ
หากคุณกำลังจะทำภารกิจทั่วไปที่สามารถประมวลผลแบบอะนาล็อกและดิจิตอลได้ฉันก็จะชอบ PSoC สำหรับ IDE, Debugger และจำนวนที่แท้จริงของสิ่งที่คุณสามารถทำได้
ฉันได้ใช้ PSoC3 ในวิทยาลัยสำหรับโครงการของฉันและมันค่อนข้างง่ายที่จะโท มีเพียงสิ่งเดียวคือถ้าคุณต้องการชิปประสิทธิภาพบางอย่างคุณจะยังต้องแยกชิปเหล่านั้นออก มีพอร์ตที่ดีพอ ดังนั้นหากคุณกำลังมองหาชิปที่มีประสิทธิภาพพร้อมกับชุดพัฒนาให้ไปหาส่วนประกอบแยกกัน