จะเลือกแพลตฟอร์ม MCU ได้อย่างไร [ปิด]


43

มีแพลตฟอร์ม MCU จำนวนมากและเมื่อมีคนคุ้นเคยกับพวกเขาพวกเขามักลังเลที่จะเปลี่ยนไปใช้แพลตฟอร์มอื่น

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


2
แจ้งให้เราทราบประเภทโครงการและปริมาณที่คุณมีในใจและจะช่วยให้เราตอบคำถาม
Rocketmagnet

3
วัตถุประสงค์ทั่วไปเป็นมากกว้างเกินไป มันมีเหตุผลเล็กน้อยที่จะใช้ uC เดียวกันสำหรับการกระพริบ LED จักรยานและสำหรับ RTOS ที่มีหน้าจอสัมผัสสีความละเอียดสูง
Wouter van Ooijen

1
ใช่คุณจะมีชิปหลายอย่างที่คุณคุ้นเคยสำหรับปัญหาเกี่ยวกับขนาดที่แตกต่างกันและพร้อมที่จะรับชิปใหม่ถ้ามันเหมาะสำหรับงานโดยเฉพาะ
Chris Stratton

2
@WoutervanOoijen แนวคิดเกี่ยวกับคำถามนี้มีดังนี้: มีงานมากมายที่แพลตฟอร์มใด ๆ สามารถจัดการได้อย่างง่ายดาย (เช่นงานวัตถุประสงค์ทั่วไป) หนึ่งคือสมบูรณ์ฟรีเพื่อเลือกระหว่างแพลตฟอร์ม ในกรณีนี้ "ปัจจัยที่อ่อนนุ่ม" เช่นความง่ายในการใช้งานการนับองค์ประกอบภายนอกเป็นต้นกลายเป็นสิ่งสำคัญ - ฉันต้องการค้นหาว่าแพลตฟอร์มแตกต่างกันอย่างไรดี / ไม่ดีเมื่อเทียบกับแพลตฟอร์มอื่น ๆ
ARF

7
ศาสนา
vicatcu

คำตอบ:


30

หนึ่งปีฉันได้พูดคุยเกี่ยวกับการเลือกไมโครคอนโทรลเลอร์ (ใช้เวลาประมาณ 1.5 ชั่วโมง) ผู้ชมเป็นโปรแกรมเมอร์และผู้ผลิตซอฟต์แวร์ระดับสูง ผู้ชมส่วนใหญ่ไม่เคยมีประสบการณ์μCมาก่อนส่วนที่เหลือเล่นกับ Arduino เท่านั้น จำนวนผู้ชมเป็นเรื่องเกี่ยวกับ 30 ดังนั้นนี่คือ multicast ซึ่งตรงข้ามกับคลินิกแบบหนึ่งต่อหนึ่ง

สไลด์สำคัญในการพูดคุยคือ:

ขนาด

สำหรับการเปรียบเทียบไมโครคอนโทรลเลอร์ รายการอยู่ในลำดับจากมากไปน้อย

  • สภาพแวดล้อมการพัฒนา (ห่วงโซ่เครื่องมือ)
    • การพัฒนาสภาพแวดล้อม
    • ฉันพูดถึงสภาพแวดล้อมการพัฒนาหรือไม่?
  • สนับสนุน
    • แอปพลิเคชันบันทึก
    • การสนับสนุนเพียร์: ความรู้เกี่ยวกับเผ่า, เพื่อน, ฟอรั่ม, รหัส teh [sic]
  • คุณสมบัติ
    • หน่วยความจำ
    • อุปกรณ์ต่อพ่วง
    • ความกล้าหาญในการคำนวณ
  • การใช้พลังงาน
  • ราคา

PS

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

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


คุณมุ่งเน้นไปที่สภาพแวดล้อมการพัฒนา ทำให้รู้สึกถึงฉัน ข้อสรุปของคุณคืออะไร?
ARF

@ArikRaffaelFunke เอาล่ะกระสุนในกระทู้ข้างบนนี้เป็นข้อสรุป ข้อสรุปไม่เพียงพอหรือไม่ วัตถุประสงค์ของฉันสำหรับการพูดคุยคือ: (1) ระบุคำถามขั้นต่ำที่ต้องถามระหว่างการคัดเลือก (2) แสดงตำแหน่งและวิธีค้นหาคำตอบ ฉันได้หลีกเลี่ยงการทำข้อสรุปอย่างหนักโดยเฉพาะ: ครอบครัว X ดีถ้า ... , ครอบครัว Y ดีถ้า ...
Nick Alexeev

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

1
@ChrisStratton การใช้พลังงานเป็นอีกสิ่งหนึ่ง [นอกเหนือจากเอฟเฟกต์ปริมาณการผลิตสูง] ซึ่งสามารถทำให้ปวดหัวได้บ้างในบางครั้ง เด็กน้อยสามารถทำได้ถ้าเขาต้องการการใช้พลังงานที่ต่ำมากและยูซีซี (ซึ่งเขาเลือก) ไม่สามารถรองรับได้
Nick Alexeev

9
การมุ่งเน้นที่สภาพแวดล้อม dev นั้นถูกต้องอย่างแน่นอน คุณสามารถมีชิปที่ดีที่สุดในโลก แต่ถ้าคุณไม่สามารถตั้งโปรแกรมและแก้ปัญหาสิ่งที่น่ากลัวก็อาจจะเป็นอิฐ ฉันได้ยินสิ่งดีๆเกี่ยวกับ NXP แต่ไม่มีประสบการณ์โดยตรง ฉันคิดว่า Freescale ไม่ดี แต่หลังจากนั้นฉันลองใช้ TI (MSP และ DM36x แล้ว) และตอนนี้ Freescale เป็นสัญญาณที่เปล่งประกายแห่งความสดใสในสายตาของฉัน คำแนะนำที่ดีที่สุดกับสภาพแวดล้อมใด ๆ dev: สร้าง / ติดตั้งในเครื่องเสมือนและเก็บสำรองของมันอย่างเต็มที่ในรัฐทำงานจึงจะไม่ทำลายเมื่อย้ายคอมพิวเตอร์ / อัพเกรดระบบปฏิบัติการ ฯลฯ ...
จอห์นยู

25

เนื่องจากคำถามนี้ไม่ได้สร้างการเปรียบเทียบแพลตฟอร์มที่ฉันหวังไว้ฉันจึงพยายามสร้างตัวเองขึ้นมาโดยการศึกษาวรรณกรรมรวมถึงคำตอบอื่น ๆ บางทีนี่อาจช่วยคนอื่นในอนาคต

โปรดแจ้งให้เราทราบหากมีข้อผิดพลาดใด ๆ หรือหากมีข้อมูลที่ฉันสามารถเพิ่ม


เปรียบเทียบแพลตฟอร์ม

หมายเหตุเกี่ยวกับการเปรียบเทียบ:

  • IDE: ความคิดเห็นเกี่ยวข้องกับเวอร์ชันฟรี

PIC:

  • โดยไกลชิประดับเริ่มต้นที่ถูกที่สุด
  • หลายคนมีหน่วยงานกำกับดูแลแรงดันไฟฟ้าภายใน
  • ในราคาที่กำหนดมักจะมีอุปกรณ์ต่อพ่วงมากขึ้นและดีขึ้น
  • มาตรฐานอุตสาหกรรมกึ่ง: ห้องสมุดที่ดีมากและการสนับสนุนนักพัฒนา
  • IDE: การจำลองและการดีบักแบบออฟไลน์เต็มรูปแบบโดยใช้ NetBeans โดดเด่น
  • debuggers บุคคลที่สาม: ประมาณ $ 25
  • แพคเกจหลากหลายมาก
  • จุดขายที่ไม่ซ้ำใคร: 1. XLP = มีอุปกรณ์พลังงานต่ำพิเศษ; 2. ชิปที่ทันสมัยจำนวนมากมี Capacitive Sensing Module สำหรับปุ่มสัมผัส ฯลฯ

AVR:

  • โดยทั่วไปแล้ว AVR จะล้าหลังอุปกรณ์ต่อพ่วงที่ต่อเนื่องและมีราคาแพงกว่าเล็กน้อย อย่างไรก็ตามโดยรวมแล้ว AVR นั้นคล้ายกับ PIC ในด้านการใช้งานและราคา
  • ชิป 8 บิต AVR นั้นเร็วกว่าชิป PIC 8 บิต
  • โปรแกรมจำลองบุคคลที่สาม: ประมาณ $ 20
  • แพคเกจหลากหลายมาก

Arm Cortex-M:

  • สถาปัตยกรรมหน่วยประมวลผลที่ทันสมัย: ไม่มีธนาคารหน่วยความจำมัลติทาสกิ้งที่ดี
  • โดยอุปกรณ์ 32 บิตที่ถูกที่สุด
  • ค่อนข้างง่ายที่จะย้ายระหว่างชิปที่แตกต่างและผู้ผลิตที่แตกต่างกัน
  • อุปกรณ์โดยทั่วไปต้องการส่วนประกอบภายนอกมากกว่า PIC
  • อุปกรณ์ USB ราคาถูกมากพร้อม ROM bootloader: NXP LPC1342 / LPC1343
  • สนับสนุนห้องสมุดที่เหมาะสม
  • IDE: สมเหตุสมผลไม่มีการจำลองแบบออฟไลน์
  • อินเตอร์เฟซ SWD ช่วยให้การเขียนโปรแกรมในระบบการดีบักและติดตามด้วยฮาร์ดแวร์ที่ง่ายต่อการสร้าง (
  • ชิป NXP ราคาไม่แพงมาในแพ็คเกจขนาดเล็กหรือพิทน้อยเท่านั้น
  • จุดขาย: 1. แพลตฟอร์ม 32 บิตที่ถูกที่สุด; 2. แพลตฟอร์มที่ถูกที่สุดด้วย USB ROM bootloader

PSoc: (จากคำตอบของ Rocketmagnet)

  • ราชาเมื่อพูดถึงอุปกรณ์ต่อพ่วงแบบอะนาล็อก: ชิปที่กำหนดสามารถกำหนดค่าใหม่ภายในเพื่อให้อุปกรณ์ต่อพ่วงแบบอะนาล็อกและดิจิตอลที่แตกต่างกัน
  • ราคาแพงกว่า PIC มาก
  • IDE: ยอดเยี่ยม
  • โปรแกรมเมอร์ $ 88 (อนุญาตให้ทำการดีบั๊กหรือไม่)
  • แพ็คเกจ SMD เท่านั้น

ใบพัด: (จากคำตอบของ Rocketmagnet)

  • multi-core MCU: แกนที่แตกต่างกันสามารถทำงานแบบจำลองในงานที่แตกต่างกัน
  • กำจัด / ลด (?) จำเป็นสำหรับการอินเตอร์รัปต์
  • อุปกรณ์ต่อพ่วงฮาร์ดแวร์ไม่กี่ตัวจะต้องถูกเข้ารหัสอย่างชัดเจนเพื่อให้ทำงานบนหนึ่งในแกนประมวลผลให้ความยืดหยุ่นอย่างเหลือเชื่อ
  • อ่อนแอเมื่อพูดถึงอุปกรณ์ต่อพ่วงแบบอะนาล็อก
  • IDE: ยอดเยี่ยม
  • มีแพ็คเกจกรมทรัพย์สินทางปัญญา

เปรียบเทียบตามแอพพลิเคชั่น

ยูเอสบี:

"Legend" สำหรับรายการด้านล่าง:

  • bootloader = USB bootloader ที่เตรียมโปรแกรมไว้ล่วงหน้า
  • ตัวปรับแรงดันไฟฟ้า = สามารถขับเคลื่อนจากบัสโดยไม่มีตัวควบคุมภายนอก
  • pullups = ไม่จำเป็นต้องใช้ pullup ภายนอก
  • การจับคู่ความต้านทาน = ไม่จำเป็นสำหรับตัวต้านทานการจับคู่ภายนอก
  • oscillator แม่นยำ = ไม่จำเป็นต้องใช้คริสตัลภายนอก

คุณสมบัติของอุปกรณ์ที่มีราคาแพงที่สุด: (โดยประมาณในลำดับราคา)

  • PIC: 8 บิต, ความเร็วต่ำและเต็ม, ตัวควบคุมแรงดัน, pullups, การจับคู่ความต้านทาน, การป้องกัน ESD
  • NXP: 32 บิต, bootloader, ความเร็วเต็มที่เท่านั้น, การป้องกัน ESD
  • Freescale: 8 บิต, ความเร็วต่ำเท่านั้น, ตัวควบคุมแรงดันไฟฟ้า, การจับคู่ความต้านทาน, การป้องกัน ESD
  • Atmel: 8 บิต, bootloader, ความเร็วเต็มที่เท่านั้น, ตัวควบคุมแรงดันไฟฟ้า, pullup, การป้องกัน ESD
  • STM: 32 บิต, bootloader, ความเร็วเต็มเท่านั้น, การดึง, การจับคู่ความต้านทาน, การป้องกัน ESD
  • ห้องปฏิบัติการซิลิคอน: 8 บิต, ความเร็วต่ำและเต็มความเร็ว, แรงดันไฟฟ้า, pullups, การจับคู่ความต้านทาน, ออสซิลเลเตอร์ความแม่นยำ
  • TI: 32 บิต, bootloader, ความเร็วต่ำและความเร็วเต็ม, คุณสมบัติอื่น ๆ ที่ไม่รู้จัก
  • PSoc: กำหนดค่าได้เป็นโมดูลคุณสมบัติอื่น ๆ ที่ไม่รู้จัก
  • ใบพัด: 32 บิตการกัดเท่านั้น

อีเธอร์เน็ต:

  • PIC: อุปกรณ์ราคาถูกพร้อม PHY ในตัว

1
หมายเหตุเล็กน้อยที่นี่: ใบพัดไม่มีการขัดจังหวะเลยและไม่มีการสนับสนุนการดีบักใน IDE อย่างเป็นทางการ กลไกการดีบั๊กที่ต้องการนั้นน่าจะเป็นการเชื่อมต่อสิ่งต่าง ๆ เข้ากับทีวีและใช้ไลบรารีที่มีให้ซึ่งแสดงตัวแปรบนหน้าจอ ยังไม่มีการทำให้โค้ดเสร็จสมบูรณ์ไม่มีการจำลองไม่มีการรวมกับระบบการจัดการรหัสการใช้งานที่ผิดปกติของการรวม ... ยังไม่มีอุปกรณ์ต่อพ่วงฮาร์ดแวร์ยกเว้นสองตัวนับต่อคอร์เท่าที่ฉันรู้
AndrejaKo

2
หมายเหตุเกี่ยวกับใบพัด - มันไม่มีการขัดจังหวะ เลย หากคุณต้องการบางสิ่งที่คล้ายกับอินเทอร์รัปต์ดั้งเดิมคุณจะเพิ่มซีพียูคอร์เพิ่มเติมและทำให้มันหมุนได้
Connor Wolf

4
รายการดังกล่าวแทบไม่มีจุดหมายอย่างหลีกเลี่ยงไม่ได้และล้าสมัย ผู้ผลิตทุกรายแข่งขันกันตลอดเวลาและพยายามเสนออะไรบางอย่างในแต่ละหมวดหมู่มากที่สุด - คุณทำแบบสำรวจเมื่อคุณมีความต้องการเลือกวิธีแก้ปัญหาและถ้ามันทำงานได้ตามที่คุณต้องการจนกว่าคุณจะมีความต้องการ ซึ่งมีทางออกที่ดีกว่า
Chris Stratton

2
สำหรับสิ่งที่คุ้มค่าคุณสามารถรวมสาย MSP430 ที่นี่เช่นเดียวกับการใช้พลังงานต่ำเป็นพิเศษ
boardbite

2
"Embedded Systems / Particular Microprocessors"มีข้อมูลที่คล้ายกันเกี่ยวกับวิธีการเลือกโปรเซสเซอร์ที่สามารถแก้ไขได้ (หวังว่า) จะทำให้มันทันสมัยและเป็นกลาง
davidcary

7

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

ฉันทำงานเป็นส่วนใหญ่ ปัญหาหลักของฉันคือพยายามหาไมโครคอนโทรลเลอร์ที่มีชุดอุปกรณ์ต่อพ่วงที่ฉันต้องการ นี่เป็นเรื่องยากมากเนื่องจากข้อกำหนดของเราดูเหมือนจะไม่สำคัญ เราต้องการสิ่งต่าง ๆ เช่น 5 ช่องสัญญาณ PWM, ตัวถอดรหัสสี่เหลี่ยมจัตุรัส 5 ช่อง, พอร์ต SPI ที่ไม่ได้มาตรฐาน 2 พอร์ต, และ UART ที่มี IO ที่ไม่ได้ใช้งาน

MCUs เดียวที่ฉันเห็นซึ่งสามารถจัดการกับความต้องการเหล่านั้นได้อย่างง่ายดายคือ PSoC และใบพัด

ชิปใบพัด

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

PSoC

PSoCs มีสองรสชาติคือ 3 และ 5 และ 3 คือ 8051 คอร์และ 5 คือคอร์เท็กซ์ M3 รวมอยู่ในชิปเป็นบล็อกดิจิตอลและอะนาล็อกที่สามารถกำหนดค่าได้ใหม่ซึ่งสามารถทำเป็นอุปกรณ์ต่อพ่วงได้หลากหลาย: ADCs, ฟิลเตอร์, op-amps, DACs, SPI, UART, ตัวถอดรหัสสี่เหลี่ยมจัตุรัส, CRC generator ฯลฯ

สภาพแวดล้อมในการพัฒนานั้นยอดเยี่ยมมาก คุณมีการแก้ไขซอร์สโค้ดปกติของ IDE ทั่วไป แต่คุณยังมีเอดิเตอร์ schematic คุณสามารถวางสายวงจรดิจิตอลใด ๆ ที่คุณต้องการเชื่อมต่ออุปกรณ์ต่อพ่วงกับประตู flipflops ฯลฯ ต้องการ 5 PWM หรือไม่ ง่ายเพียงนำมันไปวางไว้ในแผนผังวางสายลงและออกไป คุณสามารถเขียนอุปกรณ์ต่อพ่วงของคุณเองใน Verilog หากคุณต้องการบางสิ่งที่ไม่มีให้ แอปพลิเคชั่นของคุณสามารถนำไปใช้กับฮาร์ดแวร์ประเภทนี้ได้อย่างมากมาย

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


ใบพัดเป็นแนวคิดที่อยากรู้อยากเห็น ฉันต้องคิดเรื่องนี้สักหน่อย เกี่ยวกับ PSoC: ฉันได้พิจารณาสิ่งเหล่านั้นในอดีตเนื่องจากความยืดหยุ่นที่เหลือเชื่อ แต่ความต้องการโปรแกรมเมอร์ราคา $ 250 ทำให้มันค่อนข้างไม่ใช่ตัวเริ่มต้นสำหรับฉัน
ARF

@ArikRaffaelFunke - โปรแกรมเมอร์เป็นเพียง$ 88น้อยกว่าครึ่งหนึ่งของราคาที่ICD3
Rocketmagnet

@ArikRaffaelFunke - ข้อควรพิจารณาอีกประการคือบรรจุภัณฑ์ หากคุณวางแผนที่จะสร้างต้นแบบของคุณเองการทำงานกับแพคเกจ DIP ก็ง่ายกว่ามาก PICs และ ATmel AVRs ส่วนใหญ่มาพร้อมกับ DIP เช่นเดียวกับ Propeller PSoC 3 และ 5 ทำไม่ได้
tcrosley

3
schmartboard มี smt เพื่อจุ่มโซลูชันที่ใช้งานง่าย: youtube.com/watch?v=-32orELxkpE
hulkingtickets

1
@ quantum231: ฉันคิดว่ามัน แต่: 1) FPGAs ดูเหมือนจะมีขนาดใหญ่และมีราคาแพงกว่าไมโครคอนโทรลเลอร์ (และหุ่นยนต์มักจะสั้นในพื้นที่) และ 2) ฉันไม่ได้มีประสบการณ์มากมายกับ FPGAs และมันเป็นเรื่องยุ่งยากเสมอที่จะต้องเรียนรู้ชุดเครื่องมือที่แตกต่างกันโดยสิ้นเชิงและวิธีคิดสำหรับแอปพลิเคชั่นเล็กน้อย
Rocketmagnet

3

สำหรับฉันความต้องการที่สำคัญที่สุดคือถ้าอุปกรณ์ / IDE ได้รับการสนับสนุนอย่างดีในพีซีที่ไม่ใช่ Windows ของฉัน (Linux) กลับกลายเป็นว่าสำหรับ Atmel AVR นั้นมีการรองรับ (โอเพ่นซอร์ส) ที่ดีกว่า PIC


3

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

ส่วนใหญ่มีเครื่องมือในการพัฒนาที่ดี arduino มี visual studio, pic มีเครื่องมือที่ยอดเยี่ยมและอื่น ๆ ดังนั้นสำหรับฉันมันเป็นวิธีที่รวดเร็วและง่ายดายฉันจะทำงานให้สำเร็จได้อย่างไร + มีคนโอเพ่นซอร์สกี่คนที่ทำงานในเรื่องเดียวกัน?


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

คุณสามารถถามคำถามในฟอรัมต่างๆเช่นนี้ อธิบายใบสมัครของคุณและขอความช่วยเหลือ
Visual Micro

2

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

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

ดังที่มีคนพูดถึงว่าคุณเลือกชิปสำหรับโครงการของคุณฉันได้เห็นโปรเจ็กต์ที่ใช้ชิป ARM เป็นเซ็นเซอร์วัดอุณหภูมิหรือตัวแปลงโฆษณาแบบเดียวกับที่ฉันเคยเห็น aduinos และ PIC 16 ผลักไปที่ขีด จำกัด เพื่อสร้างเกมผู้รุกรานอวกาศ เป็น galso reat และเป็นสิ่งที่ดีที่จะเข้าใจ HDL ถ้าคุณจริงจังในการออกแบบอิเล็กทรอนิกส์ .. แต่น่าเสียดายที่มีไม่กี่โครงการในโลกแห่งความเป็นจริงที่คุณจะต้องใช้งานส่วนใหญ่ที่มีปริมาณน้อยการออกแบบที่รวดเร็วและราคาที่ จำกัด นี่คือที่ 8 บิต uC ปกครองสูงสุด


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

1

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

ข้อกำหนดขั้นต่ำเปลือย
หาก MCU ไม่ตอบสนองสิ่งเหล่านี้ทั้งหมดไม่ควรใช้

  • รับการผลิตอย่างน้อย 1 ปี
  • errata ซิลิคอนมีให้บริการและได้รับการแก้ไขอย่างน้อยหนึ่งครั้ง
  • สุนัขเฝ้าบ้านภายใน
  • เครื่องตรวจจับแรงดันไฟฟ้าต่ำ / ตกภายใน
  • หน่วยความจำแฟลชบนชิป
  • ป้องกัน ESD
  • JTAG / SWD หรืออินเตอร์เฟสการดีบักแบบสายเดี่ยว
  • แกนกลางใช้ 8 บิตไบต์และความสมบูรณ์เสริมของ 2
  • ตัวอย่างและบอร์ดประเมินผลพร้อมใช้งาน
  • มีการสนับสนุนทางเทคนิคที่ตอบสนองโดยตรงจากผู้ผลิต

สัญญาณเตือน - ฮาร์ดแวร์ MCU
สิ่งเหล่านี้เป็นสิ่งที่คุณไม่ควรเสียเวลากับในปี 2019

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

สัญญาณเตือน - โซ่เครื่องมือ

  • อาศัยตัวจำลองซอฟต์แวร์ในพีซีหรือ bootloader บางลักษณะแทนที่จะกระพริบ MCU ทั้งหมดและใช้การเรียกใช้ / การดีบักบนชิป
  • ไม่ได้มาพร้อมไดรเวอร์ / ตัวอย่าง / ไลบรารีที่เขียนขึ้นโดยมืออาชีพ อาศัยการคิดค้นล้อใหม่หรือฟอรัมอินเทอร์เน็ต / โอเพนซอร์ส
  • CRT สำหรับคอมไพเลอร์ C ไม่ได้ตอบสนองความต้องการที่ระบุไว้ที่นี่
  • คอมไพเลอร์ C มาพร้อมกับรายการคุณสมบัติมาตรฐาน C แบบยาวที่ไม่รองรับ
  • คอมไพเลอร์ C ยังคงไม่รองรับ C11 (ไม่ว่าคุณตั้งใจจะใช้หรือไม่ก็ตาม)
  • IDE จะทำข้อผิดพลาด linker แปลก ๆ หลายครั้งในครั้งแรกที่คุณลองใช้โปรแกรม "สวัสดีโลก"
  • พบ IDE หรือข้อบกพร่องของคอมไพเลอร์ในช่วงสัปดาห์แรกของการใช้งาน

นี่คือความเชื่อที่มากเกินไป คุณได้ตัดค่าใช้จ่ายตัวเลือกบรรจุภัณฑ์ (โอเพ่นซอร์ส! = ไม่เป็นมืออาชีพ) คุณภาพของอุปกรณ์ต่อพ่วง ฯลฯ อย่างสมบูรณ์ฉันไม่เห็นด้วยกับสิ่งนี้ แต่ส่วนมากเช่น "สแต็ก [... ] ข้อ จำกัด " หมายความว่าคุณจำเป็นต้องรู้การแลกเปลี่ยนที่นำไปสู่ข้อ จำกัด เหล่านี้ในสถานที่แรก
awjlogan

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

แน่นอนว่ามันเป็นโครงการเฉพาะ แต่คุณได้เพิ่มค่าใช้จ่ายพื้นฐานของคุณทันทีโดยระบุ 16/32 บิตเฉพาะในรายการของคุณ (สแกน Digikey อย่างรวดเร็ว) และฉันไม่เห็น 6 pin M0 เมื่อเร็ว ๆ นี้ หากคุณไม่ต้องการสิ่งใด (รวมถึงเวลา) อย่าใช้จ่ายเงินพิเศษนั่นคือการตัดสินใจที่คุณควรทำในฐานะมืออาชีพ แต่ใช่เครื่องมือที่ดีนั้นสำคัญมากไม่สามารถตกลงกันได้อีก
awjlogan

@awjlogan LPC81X เปิดมานานกว่า 5 ปีแล้ว ฉันเพิ่งค้นพบเกี่ยวกับ Cypress PSoC4 ซึ่งดูน่าสนใจ และอื่น ๆ จำนวนพินไม่ได้เป็นเพียงแค่ขนาดและประเภทของกล่อง หากคุณสามารถทน QFN หรือ BGA คุณจะได้รับชิปขนาดเล็กมาก
Lundin

ตกลงว่าตัวเลือกของคุณแคบขนาดเล็ก (เหมือนกันสำหรับสถาปัตยกรรมใด ๆ ) ประเด็นโดยรวมของฉันคือในขณะที่ทุกสิ่งในรายการของคุณเป็นที่น่าพอใจคุณควรได้รับข้อมูลเพียงพอที่จะรู้ว่าจะทำลายเมื่อใด
awjlogan

0

หากคุณกำลังจะทำภารกิจทั่วไปที่สามารถประมวลผลแบบอะนาล็อกและดิจิตอลได้ฉันก็จะชอบ PSoC สำหรับ IDE, Debugger และจำนวนที่แท้จริงของสิ่งที่คุณสามารถทำได้

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


1
มันอาจคุ้มค่าที่จะเพิ่มข้อมูลอีกเล็กน้อยบน PSoC เพื่อให้มีประโยชน์มากขึ้นคำตอบอื่น ๆ สองสามคำครอบคลุมอยู่แล้ว
PeterJ

@PeterJ: ฉันต้องการที่จะแสดงความคิดเห็นสำหรับคำตอบของ Rocketmagnet แต่ฉันไม่มีชื่อเสียงที่จะให้ความเห็น
ganesh737

มีเหตุผลที่คุณไม่ได้ไปออกแบบซอฟต์คอร์อย่างเช่นใช้ Nios II บน Altera FPGA หรือ microblaze / picoblaze บน Xilinx FPGA หรือไม่? พวกเขาสามารถใช้เพื่อให้ได้ผลเช่นเดียวกับ PSoC และฉันจะเถียงในหลาย ๆ ทางเลือกที่เหนือกว่า
quantum231

1
@ quantum231: ฉันจะยอมรับ แต่ข้อ จำกัด หลักสำหรับฉันในเวลานั้นคืองบประมาณและสิ่งนี้มีให้ฟรีในแผนกอิเล็กทรอนิกส์ของเรา
ganesh737
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.