Як вибрати мікроконтролер ARM Cortex M3?


26

Виходячи з моїх грубих вимог бути в діапазоні від 36 до 72 МГц, маючи 16kb + SRAM, 128kb + flash, будучи програмованим на C, я вирішив, що для свого застосування я хочу використовувати ARM Cortex M3 MCU.

Питання в тому, якими критеріями користувачі користуються, щоб вибрати, яку версію M3 використовувати? Є багато можливих постачальників, таких як TI, ST, NXP, Freescale тощо, тощо.

Основним диференціатором з моєї точки зору буде простота програмування. В ідеалі я тестую його на платі прориву / розробки з подальшим впровадженням у власну друковану плату.


11
Це корисне питання, будь-хто, будь ласка, не закривайте його, як головним чином, на основі думки .
Дзарда

2
Вибір постачальника чіпів - лише частина проблеми. Чи замислювались ви над тим, який ланцюжок інструментів розвитку ви збираєтеся використовувати?
kkrambo

5
Я б сказав, що важливість вибору мікросхеми UC в такій ситуації сильно завищена. Всі чіпи, які відповідають основним вимогам, зроблять. Я дотримуюся C або C ++ і не потребуєте фантазійних периферійних пристроїв, які ви можете навіть пізніше вмикати, не докладаючи зусиль. Я б базував свій вибір на кількості підтримки, яку ви можете отримати від www, постачальника, (групи користувачів), списків, форумів тощо, до яких ви маєте легкий доступ.
Wouter van Ooijen

5
"Є десяток виробників одного і того ж ядра. На які речі люди дивляться, щоб допомогти їм вибрати?" мені здається прекрасним питанням.
Скотт Сейдман

5
Це найвище запитувальне запитання у списку наших 250 найновіших, з трьома улюбленими етикетками. З цією статистикою, якщо це ОТ, ми можемо розглянути питання, чому. Я думаю, що цілком зрозуміло, що плакат вважає "простоту програмування" ОДНИМ із критеріїв, якими він зараз користується, і він просить більше. З чотирьох відповідей лише один дає чітку рекомендацію для контролера, а інші обговорюють, за якими критеріями вони використовують для вибору. Я зробив невелику редагування, яка повинна зробити питання більш тематичним, але мені здалося досить зрозумілим перед редагуванням.
Скотт Сейдман

Відповіді:


19

Я думаю, що @markt, безумовно, в потрібному місці: ланцюжок інструментів, периферія, пакети, devkits.

Я додам кілька, а може, і зняти кілька. Інструментальна мережа, безумовно, важлива, але БЕЗКОШТОВНО може бути, а може і не бути. Іноді робота без реальної підтримки може бути дорожчою, ніж ви вважаєте, що є, і використання розумного комерційного пакету цілком може коштувати для даної ситуації. Іноді важлива також можливість пройти ретельний аудит ліцензій, а використання безкоштовного інструменту з обмежувальною ліцензією може згодом укусити вас.

Для мене необхідна хороша бібліотека CMSIS для підтримки мікроконтролера. CMSIS - Cortex Microcontroller Software Interface Standard - arm.com/products/processors/cortex-m/… - це апаратний шар абстракції для мікроконтролерів серії Cortex-M. Теоретично, якщо бібліотека сумісна з CMSIS, вона не залежить від постачальників, і її легше обмінювати різними сім'ями, і вам не доведеться вивчати навколишнє середовище з нуля, щоб мати можливість користуватися бібліотекою. Один із привабливих аспектів середовища ARM Cortex - це можливість змінювати платформи без цілої кількості поту. Якщо ви виберете платформу, яка не купується в структуру CMSIS, можливо, ви не зможете пересуватися так зручно.

Для мене дешеві та зручні дошки для розробників - це обов'язково, але це може бути або не так важливо, як деякі інші речі (я думаю, що у серії STM32 є дивовижні розробки). Якщо в сім'ї є дуже зручні та дешеві плати для розробників, ви, швидше за все, допоможете знайти більшу базу користувачів, якщо вона вам потрібна. Крім того, ці фішки, як правило, є в SMT-пакетах. Коли ви неминуче підірвати чіп, або порт на мікросхемі, або трохи на порт на мікросхемі, заміна чіпа - це PITA, що включає SMD переробку. Якщо ви можете придбати дві-три дошки по 10–15 доларів за кожну і замінити їх, коли ви їх перебираєте, ви навіть не думаєте про те, щоб SMD переробляв!

Подумайте "Екстра". Можливо, вам знадобиться щось вище і поза тим, що вважається "периферійним". Наприклад, можливо, у вас є великі потреби в bluetooth, і ви можете вибрати для цього підтримку Nordic Semiconductor. Ви можете розглянути деякі інші речі, як, наприклад, легкість завантаження і т.д.

Продумайте документацію. Я був трохи менш вражений тим, як важко перебрати частину документації на STM.


+1 Повністю згоден. Минулого року я почав працювати з ARM Cortex-M3 / M4 за допомогою STM32. Я майже завершив дизайн STM32F207, коли ми перейшли на STM32F407 на основі ціни / доступності. Це було випадом обладнання, а зміни програмного забезпечення були тривіальними. Документація та складність зробили навчання трохи болісним, але дизайн міцний і заслуговує на клопоти. Я використовую компілятор GCC (безкоштовно) для написання тестового коду, а обмежений розмір коду - безкоштовна версія eval Keil для запису / тестування драйверів зразків. Наш програміст має ліцензію на повний компілятор Keil. Обидва здаються солідними.
Тут

1
@NickHalden, "ARM" ліцензує ядро ​​ARM виробникам мікросхем, які їх пакують і додають периферійні пристрої. CMSIS - Cortex Microcontroller Software Interface Standard - arm.com/products/processors/cortex-m/… - це апаратний шар абстракції для мікроконтролерів серії Cortex-M. Теоретично, якщо бібліотека сумісна з CMSIS, вона не залежить від постачальників, і її легше обмінювати різними сім'ями, і вам не доведеться вивчати навколишнє середовище з нуля, щоб мати можливість користуватися бібліотекою.
Скотт Сейдман

1
@YoungMoney Отримайте найдешевший, який дасть вам принаймні вдвічі більше ресурсів, які, на вашу думку, знадобляться.
маркт

1
Розвивайтесь на великому, просто щоб не зациклюватися на речах. Як тільки ви добре зрозумієте, які ресурси вам потрібні, скоротіть.
Скотт Сейдман

1
Безкоштовні ланцюги інструментів важливі в професійному контексті не через вартість, а через безпеку доступу - переходьте із заблокованою ланцюжком інструментів, а ваша здатність підтримувати проект погіршується ліцензіями, які можуть закінчитися чи не доступні для вашого ноутбука для подорожей або співпрацівники, ключі, які можуть загубитися, сервери ліцензій, які можна відключити через кілька років тощо. Більшість вбудованих конструкцій мають час життя далеко за рамки настільних апаратних версій та версій операційної системи, що використовуються для їх розробки, і зможуть відновити оригінал інструменти в майбутньому важливі!
Кріс Страттон

14
  1. Шукайте безкоштовну інструментальну мережу, RTOS та недорогу підтримку JTAG / SWD.
  2. Поміркуйте, з якими пакунками ви можете / готові працювати - якщо DIP обов'язковий, виключайте кремнієвих постачальників, які не пропонують пакети DIP.
  3. Подивіться, які периферійні пристрої пропонуються та що ви, швидше за все, хочете / потребуєте.
  4. Шукайте вибуху - використовуйте один або кілька великих веб-сайтів постачальників електроніки, щоб порівняти яблука з яблуками.

Враховуючи ваше бажання розробляти дошки, подумайте, що там є.

Якщо ви переходите з іншої платформи (PIC, Atmel тощо), прийміть, що в багатьох напрямках на переході до ARM буде справедлива крива навчання, але це добре і справді того варте.


Так - безкоштовні ланцюги інструментів важливі для безпеки майбутнього / альтернативного комп'ютера / альтернативного доступу інженера до ланцюжка інструментів більше, ніж для витрат. Для частин Cortex ланцюги інструментів є досить універсальними, тому більш відомо, що ви можете запрограмувати їх за допомогою простого в роботі з інтерфейсним інтерфейсом SWD, який буде доступний або заново створений і може бути керований з вашої теперішньої (і майбутньої) ОС вибір.
Кріс Страттон

5

Якщо у вас немає сильних переваг (наприклад, ціна, розмір, потужність, плюс те, що перераховано іншими), я б розглядав, хто вас підтримує. Якщо виробник не відповість на ваші запитання, це може бути проблемою. Або у них є місцевий дистриб'ютор з FAE (Field Applciation Engineer), про який ви можете запитати? Це особливо важливо для малих компаній та хобістів.

Деякі деталі можуть бути недоступними у невеликій кількості. Наприклад, ті, які мають DRAM в одному пакеті, орієнтовані на великих покупців (> 10 к одиниць).


2

Можливо, STM32L151VBT6 відповідає вашим вимогам. Навіть ми використовували його в нашій компанії, оскільки вони мали помірні витрати та вигоди з точки зору енергоспоживання. також ви отримаєте більшу частину дизайнерських ресурсів на http://www.st.com .

Основні характеристики MCM STM32L151VB:

Платформа надмірної потужності від 1,65 В до 3,6 В

Діапазон температур від -40 ° C до 85 ° C / 105 ° C

Режим очікування 0,3 мкА (3 гнізда)

0,9 мкА в режимі очікування + RTC

0,57 мкА режим зупинки (16 ліній будильника)

1,2 мкА Стоп-режим + RTC

9 мкА Малопотужний режим роботи

214 мкА / МГц Режим роботи

10 нА наднизький витік вводу / виводу

<8 мкс час пробудження

Ядро: 32-бітний процесор ARM®Cortex ™ -M3

Від 32 кГц до 32 МГц макс

33,3 пік DMIPS (Dhrystone 2.1)

Блок захисту пам'яті

Скидання та управління постачанням

Ультрабезпечний малопотужний BOR (скидання коричневого відключення) з 5 вибираються порогами

POR / PDR ультрапотужної потужності

Програмований детектор напруги (PVD)

Часові джерела

Кристалічний генератор від 1 до 24 МГц

Осцилятор 32 кГц для RTC з калібруванням

Високошвидкісний внутрішній 16 МГц заводсько-оброблений RC (+/- 1%)

Внутрішня низька потужність 37 кГц RC

Внутрішня багатошвидкісна мала потужність від 65 кГц до 4,2 МГц

PLL для тактового процесора та USB (48 МГц)

Попередньо запрограмований завантажувач

USART підтримується

Підтримка розвитку

Підтримка послідовної проводки підтримується

Підтримується JTAG і слід

До 83 швидких вводу / виводу (толерантний 73 В / О 5В), все можливе відображення на 16 зовнішніх векторах переривання

Спогади:

До 128 Кб Flash із ECC

До 16 КБ оперативної пам’яті

До 4 Кб справжнього EEPROM з ECC

80 Резервне копіювання байтів

РК-драйвер до 8х40 сегментів

Підтримка регулювання контрасту

Підтримка миготливого режиму

Перехідний перетворювач на борту

Багаті аналогові периферійні пристрої (до 1,8 В)

12-бітний АЦП 1 Msps до 24 каналів

12-бітний канал DAC 2 з вихідними буферами

2x компаратори ультра низької потужності (режим вікон та можливість пробудження)

Контролер DMA 7x каналів

8x інтерфейс зв'язку периферійних пристроїв

1x USB 2.0 (внутрішня 48 МГц PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Мбіт / с

2x I2C (SMBus / PMBus)

10-часові таймери: 6x 16-розрядні з до 4-х каналів IC / OC / PWM, 2x 16-бітний базовий таймер, 2x таймери сторожових годин (незалежні та віконні)

До 20 ємнісних каналів зондування, що підтримують сенсорний, лінійний та обертовий сенсорні датчики CRC, 96-бітний унікальний ідентифікатор

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.