จะเลือกไมโครคอนโทรลเลอร์ ARM Cortex M3 ได้อย่างไร


26

ตามข้อกำหนดคร่าวๆของฉันที่อยู่ในช่วง 36 ถึง 72 MHz มี 16kb + SRAM, 128kb + แฟลชเป็นโปรแกรมใน C ฉันตัดสินใจว่าสำหรับแอปพลิเคชันของฉันฉันต้องการใช้ ARM Cortex M3 MCU

คำถามคือผู้คนใช้เกณฑ์ใดในการเลือกรุ่น M3 ที่จะใช้ มีผู้ค้าที่เป็นไปได้มากมายเช่น TI, ST, NXP, Freescale และอื่น ๆ

ความแตกต่างหลักจากมุมมองของฉันจะง่ายในการเขียนโปรแกรม เป็นการดีที่ฉันจะทดสอบมันบนกระดานฝ่าวงล้อม / การพัฒนาตามด้วยการใช้งานใน PCB ของฉันเอง


11
นี่เป็นคำถามที่มีประโยชน์ทุกคนโปรดทำไม่ได้อยู่ใกล้เป็นส่วนใหญ่มีความคิดเห็นตาม
Dzarda

2
การเลือกผู้จำหน่ายชิปเป็นเพียงส่วนหนึ่งของปัญหา คุณเคยคิดบ้างไหมว่าเครื่องมือการพัฒนาที่คุณจะใช้?
kkrambo

5
ฉันจะบอกว่าความสำคัญของการเลือกชิป uC ในสถานการณ์เช่นนี้เป็น overrated อย่างรุนแรง ชิปทั้งหมดที่ตอบสนองความต้องการขั้นพื้นฐานจะทำ ฉันติดกับ C หรือ C ++ และไม่ต้องการอุปกรณ์ต่อพ่วงแฟนซีคุณสามารถเปิดได้ในภายหลังด้วยความพยายามเล็กน้อย ฉันจะเลือกตามจำนวนการสนับสนุนที่คุณจะได้รับจาก www ผู้ขาย (ผู้ใช้) กลุ่มรายการเวที ฯลฯ ที่คุณสามารถเข้าถึงได้ง่าย
Wouter van Ooijen

5
“ มีผู้สร้างแกนหลักเดียวกันจำนวนโหลผู้คนมองสิ่งใดเพื่อช่วยให้พวกเขาเลือกได้” ดูเหมือนจะเป็นคำถามที่ดีสำหรับฉัน
Scott Seidman

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

คำตอบ:


19

ฉันคิดว่า @markt อยู่ในตำแหน่งที่ถูกต้อง: Toolchain, อุปกรณ์ต่อพ่วง, แพ็คเกจ, devkits

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

ห้องสมุด CMSIS ที่ดีเพื่อสนับสนุนไมโครคอนโทรลเลอร์เป็นสิ่งที่จำเป็นสำหรับฉัน CMSIS - Cortex Microcontroller Software Standard Interface - arm.com/products/processors/cortex-m/… - เป็นเลเยอร์ abstraction ของฮาร์ดแวร์สำหรับไมโครคอนโทรลเลอร์ Cortex-M ซีรี่ส์ ในทางทฤษฎีหากห้องสมุดเป็นไปตามมาตรฐาน CMSIS มันเป็นผู้ขายที่ไม่ขึ้นกับใครและง่ายต่อการสลับตระกูลที่แตกต่างกันและคุณไม่จำเป็นต้องศึกษาสภาพแวดล้อมจากพื้นดินขึ้นมาเพื่อให้สามารถใช้ห้องสมุดได้ หนึ่งในแง่มุมที่น่าสนใจของสภาพแวดล้อม ARM Cortex คือความสามารถในการเปลี่ยนแพลตฟอร์มโดยไม่ต้องเหนื่อย หากคุณเลือกแพลตฟอร์มที่ไม่ได้ซื้อในโครงสร้าง CMSIS คุณอาจไม่สามารถเคลื่อนที่ได้อย่างสะดวก

สำหรับฉันแล้วบอร์ด dev ที่ราคาถูกและสะดวกสบายเป็นสิ่งที่จำเป็น แต่นี่อาจจะสำคัญหรือไม่สำคัญเท่ากับบางสิ่งอื่น ๆ (ฉันคิดว่าชุด STM32 นั้นมีนักพัฒนาที่น่าทึ่ง) หากครอบครัวมีบอร์ด dev ที่สะดวกและราคาถูกคุณก็มีแนวโน้มที่จะได้รับความช่วยเหลือจากฐานผู้ใช้ขนาดใหญ่ถ้าคุณต้องการ ชิปเหล่านี้มักจะอยู่ในแพ็คเกจ SMT เมื่อคุณหลีกเลี่ยงการระเบิดชิปหรือพอร์ตบนชิปหรือบิตบนพอร์ตบนชิปอย่างหลีกเลี่ยงไม่ได้การเปลี่ยนชิปคือ PITA ที่เกี่ยวข้องกับการทำงานซ้ำ SMD หากคุณสามารถซื้อบอร์ดสองหรือสามบอร์ดในราคา $ 10 - $ 15 ต่อบอร์ดและแทนที่บอร์ดได้ในขณะที่คุณจับคุณจะไม่คิดเลยว่าจะทำ SMD ซ้ำ!

คิดว่า "พิเศษ" คุณอาจต้องการบางสิ่งที่เหนือกว่าสิ่งที่ถือว่าเป็น "อุปกรณ์ต่อพ่วง" ตัวอย่างเช่นคุณอาจมีความต้องการบลูทู ธ จำนวนมากและคุณอาจเลือกที่จะไปกับ Nordic Semiconductor สำหรับการสนับสนุนประเภทนั้น คุณอาจพิจารณาสิ่งอื่น ๆ เช่นความง่ายในการ bootloading เป็นต้น

คิดว่าเอกสาร ฉันรู้สึกประทับใจเล็กน้อยกับความยากลำบากในการอ่านเอกสาร STM บางอย่าง


+1 เห็นด้วยทั้งหมด ปีที่แล้วฉันเริ่มต้นด้วย ARM Cortex-M3 / M4 โดยใช้ STM32 ฉันเกือบจะเสร็จสิ้นการออกแบบ STM32F207 เมื่อเราทำการสลับไปที่ STM32F407 ตามราคา / ความพร้อมใช้งาน มันเป็นแบบดรอปอินสำหรับฮาร์ดแวร์และการเปลี่ยนแปลงซอฟต์แวร์นั้นเล็กน้อย เอกสารและความซับซ้อนทำให้มันเจ็บปวดเล็กน้อยในการเรียนรู้ แต่การออกแบบนั้นแข็งแกร่งและคุ้มค่ากับปัญหา ฉันใช้คอมไพเลอร์ GCC (ฟรี) สำหรับการเขียนโค้ดทดสอบและขนาดรหัส จำกัด เวอร์ชันฟรีของ Keil สำหรับการเขียน / ทดสอบไดร์เวอร์ตัวอย่าง โปรแกรมเมอร์ของเรามีใบอนุญาตสำหรับคอมไพเลอร์ Keil เต็มรูปแบบ ทั้งคู่ดูแข็งแกร่ง
Tut

1
@NickHalden, "ARM" ให้สิทธิ์การใช้งาน ARM core แก่ผู้ผลิตชิพที่บรรจุหีบห่อและเพิ่มอุปกรณ์ต่อพ่วง CMSIS - Cortex Microcontroller Software Standard Interface - arm.com/products/processors/cortex-m/… - เป็นเลเยอร์ abstraction ของฮาร์ดแวร์สำหรับไมโครคอนโทรลเลอร์ Cortex-M ซีรี่ส์ ในทางทฤษฎีหากห้องสมุดเป็นไปตามมาตรฐาน CMSIS มันเป็นผู้ขายที่ไม่ขึ้นกับใครและง่ายต่อการสลับตระกูลที่แตกต่างกันและคุณไม่จำเป็นต้องศึกษาสภาพแวดล้อมจากพื้นดินขึ้นมาเพื่อให้สามารถใช้ห้องสมุดได้
Scott Seidman

1
@YoungMoney ไปให้ถูกที่สุดที่จะให้ทรัพยากรอย่างน้อยสองเท่าที่คุณคิดว่าคุณต้องการ
markt

1
พัฒนาตัวใหญ่เพื่อป้องกันไม่ให้สิ่งติดขัด เมื่อคุณเข้าใจทรัพยากรที่ต้องการได้ดีแล้ว
Scott Seidman

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

14
  1. ค้นหาtoolchain ฟรี RTOS และการสนับสนุน JTAG / SWD ต้นทุนต่ำ
  2. พิจารณาแพ็คเกจที่คุณสามารถ / เต็มใจที่จะทำงานด้วย - ถ้าจำเป็นต้องมีให้ออกกฎผู้ขายซิลิกอนที่ไม่ได้นำเสนอแพคเกจกรมทรัพย์สินทางปัญญา
  3. ดูอุปกรณ์ต่อพ่วงที่มีให้และสิ่งที่คุณต้องการ / ต้องการ
  4. ค้นหา bang-for-buck - ใช้เว็บไซต์ผู้จำหน่ายอุปกรณ์อิเล็กทรอนิกส์รายใหญ่อย่างน้อยหนึ่งแห่งเพื่อเปรียบเทียบแอปเปิ้ลกับแอปเปิ้ล

ให้ความต้องการกระดาน dev พิจารณาสิ่งที่มีอยู่

หากคุณกำลังมาจากอีกแพลตฟอร์มหนึ่ง (PIC, Atmel ฯลฯ ) ยอมรับว่าจะมีช่วงการเรียนรู้ที่ยุติธรรมในหลาย ๆ ด้านในการย้ายไปที่ ARM แต่มันก็คุ้มค่าและคุ้มค่าอย่างแท้จริง


ใช่ - เครื่องมือฟรีที่มีความสำคัญต่อความปลอดภัยของอนาคต / คอมพิวเตอร์สำรอง / วิศวกรสำรองสามารถเข้าถึง toolchain มากกว่าราคา สำหรับ Cortex ชิ้นส่วนของ Toolchains นั้นค่อนข้างเป็นสากลดังนั้นคุณจึงรู้ว่าคุณสามารถตั้งโปรแกรมด้วยส่วนต่อประสานอุปกรณ์ SWD ที่ใช้งานได้ง่ายซึ่งจะพร้อมใช้งานหรือสร้างใหม่ได้และสามารถขับเคลื่อนจาก OS ปัจจุบัน (และอนาคต) ของ ทางเลือก.
Chris Stratton

5

หากคุณไม่มีการตั้งค่าที่แข็งแกร่ง (เช่นราคาขนาดพลังงานรวมถึงรายการอื่น ๆ ที่ระบุไว้) ฉันจะพิจารณาว่าใครสนับสนุนคุณบ้าง หากผู้ผลิตไม่ตอบคำถามของคุณนั่นอาจเป็นปัญหา หรือพวกเขามีตัวแทนจำหน่ายในพื้นที่ที่มี FAE (Field Applciation Engineer) ที่คุณสามารถถามได้ นั่นเป็นสิ่งสำคัญอย่างยิ่งสำหรับ บริษัท ขนาดเล็กและผู้ที่ไม่อยู่ในแวดวง

บางส่วนอาจไม่สามารถใช้ได้ในปริมาณเล็กน้อย ตัวอย่างเช่นผู้ที่มี DRAM ในแพ็คเกจเดียวกันนั้นมีเป้าหมายที่ผู้ซื้อรายใหญ่ (> 10 k หน่วย)


2

น่าจะเป็น STM32L151VBT6 ที่เหมาะสมกับความต้องการของคุณ แม้เราจะใช้มันใน บริษัท ของเรา แต่ก็มีค่าใช้จ่ายพอสมควรและดีในแง่ของการใช้พลังงาน คุณยังจะได้รับประโยชน์สูงสุดจากทรัพยากรการออกแบบบนhttp://www.st.com

คุณสมบัติที่สำคัญของ STM32L151VB MCU คือ:

แพลตฟอร์มพลังงานต่ำพิเศษ 1.65 V ถึง 3.6 V

ช่วงอุณหภูมิ -40 ° C ถึง 85 ° C / 105 ° C

0.3 μAโหมดสแตนด์บาย (3 ขาปลุก)

0.9 μAโหมดสแตนด์บาย + RTC

0.57 μAโหมด Stop (16 สายปลุก)

1.2 μAโหมดหยุด + RTC

9 μAโหมดเรียกใช้พลังงานต่ำ

โหมดเรียกใช้ 214 μA / MHz

การรั่วไหลของ I / O ต่ำพิเศษ 10 nA

<8 μsเวลาปลุก

แกนหลัก: ARM®Cortex™ -M3 CPU 32 บิต

จาก 32 kHz สูงสุด 32 MHz

33.3 DMIPS peak (Dhrystone 2.1)

หน่วยป้องกันหน่วยความจำ

รีเซ็ตและจัดการอุปทาน

BOR ที่ใช้พลังงานต่ำและปลอดภัยเป็นพิเศษ (รีเซ็ตเป็นสีน้ำตาล) พร้อมเกณฑ์ที่เลือกได้ 5 แบบ

POR / PDR พลังงานต่ำพิเศษ

เครื่องตรวจจับแรงดันไฟฟ้าที่ตั้งโปรแกรมได้ (PVD)

แหล่งสัญญาณนาฬิกา

คริสตัลออสซิลเลเตอร์ 1 ถึง 24 MHz

32 kHz oscillator สำหรับ RTC พร้อมการสอบเทียบ

RC ความเร็วสูงตัดแต่งภายในโรงงาน 16 MHz (+/- 1%)

พลังงานต่ำภายใน 37 kHz RC

Internal multispeed ใช้พลังงานต่ำ 65 kHz ถึง 4.2 MHz

PLL สำหรับนาฬิกา CPU และ USB (48 MHz)

bootloader ที่ตั้งโปรแกรมไว้ล่วงหน้า

รองรับ USART แล้ว

สนับสนุนการพัฒนา

รองรับการดีบักแบบอนุกรม

รองรับ JTAG และการติดตาม

มากถึง 83 I / O ที่รวดเร็ว (73 I / Os ความต้านทาน 5V), แมปทั้งหมดใน 16 เวกเตอร์ขัดจังหวะภายนอก

ความทรงจำ:

แฟลชสูงสุด 128 KB พร้อม ECC

สูงสุด 16 KB RAM

EEPROM จริงมากถึง 4 KB ด้วย ECC

80 Byte Backup Register

ไดรเวอร์ LCD สำหรับกลุ่มมากถึง 8x40

รองรับการปรับความคมชัด

สนับสนุนโหมดกระพริบ

ตัวแปลง Step-up บนเครื่อง

อุปกรณ์ต่อพ่วงแบบแอนะล็อกรวย (ลงไป 1.8 V)

ADC 12 บิต 1 Msps สูงสุด 24 ช่อง

12-bit DAC 2 channel พร้อมบัฟเฟอร์เอาต์พุต

2x ตัวเปรียบเทียบพลังงานต่ำพิเศษ (โหมดหน้าต่างและความสามารถในการปลุก)

ตัวควบคุม DMA 7x แชนเนล

อินเตอร์เฟซการสื่อสาร 8x อุปกรณ์ต่อพ่วง

1x USB 2.0 (ภายใน 48 MHz PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbits / s

2x I2C (SMBus / PMBus)

ตัวจับเวลา 10 เท่า: 6x 16- บิตพร้อมช่อง IC / OC / PWM มากถึง 4 ช่อง, ตัวจับเวลาพื้นฐาน 2x16 บิต, ตัวนับ Watchdog 2x (อิสระและหน้าต่าง)

ช่องตรวจจับ capacitive สูงสุด 20 ช่องที่รองรับปุ่มกด, เซ็นเซอร์เชิงเส้นและโรตารี่ระบบสัมผัส CRC ยูนิตการคำนวณ, ID เฉพาะ 96 บิต

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