Які хороші мікроконтролери доступні сьогодні? [зачинено]


40

Я маю досвід роботи зі складанням та програмуванням на C для мікроконтролерів, але я не знайомий з різними сімействами MCU та DSP, пропонованими сьогоднішніми компаніями. (наприклад: Texas Instruments, Atmel, Renesas)

Мені хотілося б дізнатися про хороші мікроконтролери / DSP, і що їх хочеться розвивати разом з ними. Будь ласка, підсумуйте свої розуміння щодо різних сімей MCU / DSP, по одній родині за кожну відповідь.

Було б дуже цікаво також, якщо ви детально описуєте, що є основною програмою для цього мікроконтролера.

(Це "вікі-спільнота", тому кожен, хто має репутацію> 100, може уточнити та покращити відповіді)


Я починаю з кількох відповідей, будь ласка, безкоштовно додайте свої! або відредагуйте існуючі сім’ї, щоб додати свою мудрість. Особлива подяка Джейсону S за всю мудрість TI MCU / DSP. chiphacker.com/users/330/jason-s
Едвард

@Edward, Цей сайт перебуває в режимі завантаження, тому кожен може редагувати публікації CW
Earlz

Я хотів би побачити / почути, які з них доступні звідки, і особливо, якщо такі є в якості зразків.
XTL

1
Все це питання є безглуздим і не конструктивним . Як і очікувалося, ви отримуєте багато упереджених думок «за» та «проти» різних ліній процесорів. Голосування про закриття.
Олін Латроп

1
@Ricardo Я фактично пам'ятаю, як писав цей коментар. Хтось збирався за значком археолога чи щось таке. Незважаючи на це, це старе запитання вже не відповідає обсягу зору і потребує відправки.
Метт Янг

Відповіді:


35

ARM - галузевий стандарт для 32-бітних контролерів, хоча PIC32 має деякі приємні функції. Вони досить прості у використанні. Мені подобаються мікросхеми NXP LPC2000 та LPC1000 ARM, але новий чіп Energy Micro ARM Cortex-M3 дуже цікавий через дуже низьке енергоспоживання - такий же, як і MSP430 [Youtube]. Підтримка дуже мінлива, у чіпів NXP є група LPC2000, яку я очолюю, що людям здається подобається - у нас понад 8000 членів!


1
PIC32 використовує ядро ​​MIPS M4K - аналогічно ARM тим, що ядро ​​має ліцензію інших виробників - наприклад, мікрочіп для упаковки та додавання периферійних пристроїв.
smashtastic

Я також голосую за АРМ. повністю стандартні компілятори та налагоджувачі, майже універсальний інтерфейс JTAG, ніякої залежності від патентованих бінарних речей, таких як PICASM та C18. :-)
akohlsmith

1
Ще один вентилятор ARM тут. Я склав прототип проекту, а потім розробив і зібрав друковану плату для TI Stellaris LM3S6965. Достойні документи та бібліотеки програмного забезпечення, перед цим проектом у мене було програмне забезпечення, і документів, наданих TI, було достатньо, щоб навчитися програмувати пристрій, використовуючи їх зразкові схеми як шаблон, я навчив себе робити компонування дошки і створив щось, що працює. Тон особливостей і потужність за гроші. Сьогодні я роздивився різні пропозиції Cortex M4, TI щойно випустив їхні мікрофони M4, але я б не вагаючись оглядався на пропозиції інших постачальників.
Субоптим

27

Atmel AVR , можливо, в Arduino : Я не погоджуюся з Леоном і кажу, що лінія AVR Atmel - це велика сім'я. Це досить різноманітно, починаючи від ATtiny, через ATmega, до Dragon (з яким я не працював.) Я б сказав, що AVR32 і Xmega - це різні сім'ї.

AVRfreaks - один з найкращих електронних форумів в Інтернеті (незабаром його перевершить Chiphacker :), також існує спільнота Arduino, яка орієнтована на любителів. Arduino чудово підходить для вивчення апаратних засобів мікроконтролерів, хоча це не допоможе вам у програмуванні (ОП заявило, що вони знають ASM та C).

Комплект WinAVR простий як пиріг порівняно з іншими ланцюжками інструментів. Просто завантажте, натисніть кнопку Далі кілька разів, введіть код і натисніть F5. Це не стає легше, ніж це. Звичайно, редактор AVR Studio не має всіх функцій, які він повинен мати, але багато IDE постачальників не є кращими або навіть гіршими (* кашель * MPLAB * кашель *).

Я не впевнений у доставці, але я б сказав, що 6-контактний SOT23 ATtiny - це нішевий чіп, і версія SO8 або DIP дуже доступна. У відповідній записці вони також роблять велику роботу зі пошуку їх як у DIP (для прототипування), так і у компактних SMT-пакетах.


3
Якщо ви використовуєте Linux, ви, ймовірно, можете мати повністю працюючу ланцюжок інструментів за півхвилини з "sudo apt-get install gcc-avr avr-libc avrdude". По суті Winavr повністю сумісний. Я зберігав спільну базу коду між цими двома, навіть не змінивши Makefile. Якщо у вас апаратний паралельний або навіть послідовний порт, комплектне обладнання ISP складається з декількох роз'ємів на полиці та пари пасивів (резисторів). Доступно декілька опцій USB, і шина за 30 доларів (постачається по всьому світу) Bus Pirate безпосередньо робить AVR ISP та багато іншого.
XTL

2
AVR також є однією з небагатьох мікросхем, які ваш сусідній магазин електроніки також може мати на полиці.
XTL

1
Ви можете запрограмувати WINAVR (тобто avr-libc) з Eclipse IDE, використовуючи плагін AVR Eclipse. Затьмарення робить все краще!
vicatcu

17

Серія TI MSP430

Обладнання

Різноманітність апаратних периферійних пристроїв не така гнучка, як PIC Microchip, але підтримка програмного забезпечення налагодження програмного забезпечення набагато краща, ніж частини Microchip. Нещодавно TI випустила нову версію Code Composer для мікроконтролерів MSP430 та DSP TMS320F28xx, в якій використовується Eclipse. Підтримка налагодження відмінна.

Це також дуже просто налаштувати контрольні регістри, набагато простіше, ніж 28xx DSP.

MSP430 може бути чудовим для тимчасових інтенсивних застосувань, оскільки він, як правило, матиме більше регістрів зйомки / порівняння для використання. Це може значно спростити системи, де вам потрібно мати справу з багатьма багатьма інтенсивними периферійними пристроями.

Розвиток

Ви можете придбати систему розробки за 150 доларів (є дешевший варіант на MSP430 на USB-накопичувач на 20 доларів, але це свого роду обмежує), і ви отримаєте справжню апаратну систему + відладчик прототипування. Ви також можете отримати новий запуск TI, який постачається з 2 фішками, і коштує $ 4,30.


GCC доступний. mspgcc.sourceforge.net (стара) mspgcc4.sourceforge.net (нова)
XTL

Проблема з TI останнім часом, здається, полягає в тому, що їхній "електронний магазин" просто не працює, а нові комплекти завжди розпродані або інакше відсутні на складі. Здається, що попит на Chronos та Launchpad, а також набори EZ та EZ RF, але, часом, майже не досяжний, якщо ви не знайдете магазин, у якого є кілька запасів. Сподіваємось, це незабаром з’ясується.
XTL

TI також, очевидно, пропонує зразки своїх фішок.
XTL

Elektor також пропонує плату, яка розширить ez430 до більш традиційного devkit. elektor.com/products/kits-modules/modules/…
XTL

Ми не мали жодних проблем із отриманням стартових панелей цього літа. Випуск поставок, можливо, був короткочасним.
Брайан Кноблауш

14

Мікрочіп PIC 16F / 18F

Цільовий ринок

Недорогі 8-бітні мікропроцесори. 16F - одна з попередніх ліній процесорів Microchip і не особливо піддається програмуванню в C / C ++ завдяки:

  • його інструкція встановлює ядро ​​та архітектуру пам'яті
  • необхідність перемикання банків
  • відсутність підтримки загальних операцій з покажчиком
  • низька продуктивність в C / C ++ через архітектуру
  • потрібен більший розмір програми для реалізації алгоритмів

Серія 18F новіша і її слід враховувати, якщо ви можете дозволити це для свого проекту. Це схоже на цільовому ринку, периферійному наборі, пакетах ІС, інструментах розробки та ціні до серії 16F. Ядро 18F було розроблено так, щоб воно було більш прихильним до C і C ++, завдяки:

  • підтримка непрямості
  • конкретні банки оперативної пам’яті, які завжди доступні (не потрібно перемикання банків)

Програмне забезпечення

Досить легко програмувати, ви можете написати , використовуючи свій набір з 30 інструкцій по збірці, або використовувати компілятор Сі . Це 8-бітні MCU, тому якщо ви хочете працювати зі значеннями> 255, вам доведеться самостійно знайти / записати 2-байтний додавання / віднімання / множення / ділення коду. Оперативна пам’ять має 4 "банки", тому, якщо ви пишете в зборах, вам доведеться продовжувати перемикатися вперед і назад, щоб отримати доступ до змінних, що зберігаються в інших банках, ніж поточні.

Обладнання

Ці MCU працюють досить повільно, із типовою швидкістю 4 MIPS та максимальною швидкістю 20 MIPS. У них є декілька вбудованих апаратних функцій, які працюють нормально, якщо їх правильно налаштувати, наприклад, АЦП, послідовний порт, паралельний порт, шина CAN, шина I2C, шина SPI, порівняння напруги, EEPROM, і, звичайно, усі цільові порти вводу / виводу .

Документація

  • У таблицях даних є вся необхідна інформація (розпізнавання, регістри для конфігурації тощо), чітко класифікована та добре зафіксована. Керівництво пояснює також поглиблений про особливості.

Інструменти розробки

  • Microchip має новий інструмент, VDI, який спрощує налаштування різних апаратних функцій MCU, що генерує збірку або код C. Краще, ніж пересипати дані.

  • Microchip пропонував свій MPLAB IDE протягом багатьох років, і хоча програма повільно вдосконалюється, порівняно з інструментами для розробки ПК (Visual C ++, Eclipse / NetBeans для Java / тощо), користувальницький інтерфейс дуже поганий, а програмне забезпечення все ще є дуже глючним. Він також не підтримує C ++, незважаючи на те, що різниця між C і більшістю функцій C ++ (за винятком розподілу динамічної пам’яті, віртуальних функцій та кількох інших функцій) дуже незначна, а C ++ заохочує модульність програмування. Є сторонні постачальники IDE, зокрема IAR, але вони дорогі. (Hi-Tech недавно викупила Microchip.)

  • В деяких схемах налагодження запропоновано інтерфейсом ICD Microchip, 2-контактним послідовним інтерфейсом, до якого можна отримати доступ через адаптери налагодження ICD2, ICD3 , REAL ICE , PICkit2 / 3 тощо. Обов'язково перевірте, чи є обрана вами деталь особливості ICD! Функції налагодження дещо обмежують і мають "ковзання", де ви встановлюєте точку перерви в одній інструкції, а програма зупиняється на кілька інструкцій пізніше. Однак МКБ краще, ніж нічого.

Підтримка

  • Примітки до програми описують код та схему для різних загальних програм
  • Активна спільнота користувачів на форумах Microchip
  • Безкоштовний цілодобовий веб-сайт технічної підтримки, на який ви надсилаєте свої проблеми (квитки), а технічний персонал відповість безкоштовно і навіть дозволить вам зателефонувати, якщо вам потрібна додаткова допомога
  • Презентації (веб-семінари), що пояснюють різні модулі та програми

SDCC також підтримує PIC, я думаю.
XTL

Так, SDCC дуже добре працює для PIC18 і вище. Зауважте, що синтаксис дещо відрізняється від компіляторів Microchip C, хоча, можливо, вам доведеться виконати деякий перенос, якщо ви хочете повторно використовувати код.
Вім

Я неохоче використовував sdcc, оскільки, здається, документація описує генерацію коду pic як експериментальну.
Джон Бертон

Я другий за коментарями PIC16. Стара, химерна, пам'ять, організована в банках, не сприятлива для С. Microchip використовує той факт, що в нього є дуже мало інструкцій, як вчитися як актив, що є просто дурним, IMO. MPLAB IDE - жарт, здається, що це все ще 1998.
Готьє

11

Blackfin від аналогових пристроїв Сімейство Blackfin - це гібридний DSP / мікроконтролер із сильним ядром RISC, а також інструкціями щодо підтримки відео / сигналу. Деякі інструкції підтримують SIMD.

Обладнання

Він має серцевину RISC. Швидкість дії - від одноядерної до 200 МГц до двоядерної - 600 МГц. У нього можуть бути периферійні пристрої: 10/100 Ethernet MAC, UARTS, SPI, CAN-контролер, таймери з підтримкою ШІМ, таймер сторожового часу, годинник в режимі реального часу, а також безклеєвий синхронний та асинхронний контролер пам'яті. Він має динамічне управління потужністю - автоматично відключає частини процесора, які не використовуються.

Розвиток

Два основних інструменти розробки - це VisualDSP ++ AD та ланцюжок інструментів GNU. Також є SDK з великою кількістю коду та приміток до додатків. Код SDK служить або як рамки, або як хороші приклади коду. Є кілька операційних систем, включаючи uCLinux, які будуть працювати на ньому. Існує ряд дощок eval . В Інструкції є обов'язковими.

Вартість в даний час від 2 $ в кількості 1000 одиниць.


Blackfin не має ядра MIPS!
Леон Геллер

А як щодо ціноутворення?
bjarkef

11

Parallax Propeller є oddbird 8-жильного (вісім «гвинтиків» плюс концентратора) мікроконтролер , який може зробити дуже цікаві / вражають речі , включаючи покоління відео SD / VGA.

У нього є власне середовище розвитку, включаючи мову під назвою SPIN. Збірка (PASM) природно доступна.

Існує значна підтримка громади та видимі проекти, що використовують чіп.

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

Програмне забезпечення (внутрішньосистемне), очевидно, складається з послідовного порту та лінії скидання рівня TTL. Доступний ключ з назвою Prop Plug.

http://parallax.com

http://en.wikipedia.org/wiki/Parallax_Propeller



7

dsPIC33F та PIC24 : Microchip має сімейство 16-бітових, 40 MIPS мікроконтролерів під назвою dsPIC33F, які поєднують їх набір інструкцій PIC24F та периферійні пристрої з функціями DSP, такими як два 40-бітні акумулятори з опціями округлення та насичення; одноцикл розмножуються та накопичуються; і до ± 16-бітових зрушень для до 40-бітових даних. Ціни низькі (від 2 доларів в обсязі). Одне, що мені подобається в мікроконтролерах Microchip, - це те, що багато їх пристроїв доступні в пакетах DIP, які ідеально підходять для розміщення хліба. Я використав один з них у проекті, де мені потрібно було декодувати сигнали DTMF; це було рентабельніше, ніж спеціальне апаратне рішення декодера DTMF. У дивовижному uWatch використовується PIC24, "Найпотужніший у світі (і єдиний!) Програмований годинник RPN / алгебраїчний науковий калькулятор".


Великий голос за серію pic24. Ви не бачите в Інтернеті майже стільки ж, як 8-бітні фотографії, але вони швидші, потужніші та простіші у використанні і не коштують більше, ніж 8-бітові схожі характеристики.
Джон Бертон

6

Cypress PSoC1 (CY8C29466) має просте 8-бітове ядро ​​процесора, оточене FPGA-подібними цифровими та аналоговими блоками.

Він має як аналогові входи, так і аналогові виходи. Багато проектів, для яких потрібна купа зовнішніх частин з будь-яким іншим мікроконтролером - підсилювачами, PGA та ін. - можна виконати за допомогою однієї мікросхеми PSoC. Багато комп'ютерних мишей використовують PSoC1. Наприклад, він може декодувати тони DTMF, що надходять в один вхідний контакт, і безпосередньо генерувати незалежні аналогові DTMF сигнали на двох вихідних штирях - справжній аналог, а не ШІМ.

Цифрові та аналогові блоки можуть бути налаштовані так, щоб робити речі повністю незалежно від ядра - а отже, із гарантованим фіксованим часом відгуку, навіть якщо процесор зайнятий тимчасовим перериванням.

Досить низька потужність. Поставляється в пакетах DIP та SMT.

8-бітове, 24 МГц ядро ​​приблизно еквівалентно ядру PIC16F, вигадливій комутації банку та ін. Доступні компіляторні компілятори C доступні, але GCC навряд чи коли-небудь буде перенесений ні на один.

Проект "Gainer.cc" програмує системи на базі PSoC1, що використовують Обробку по USB-кабелю, дуже схожу на більш пізній проект "Arduino".

Форум http://www.psocdeveloper.com/ дружній. Є кілька утиліт, доступних для розробки в Linux: http://m8cutils.sourceforge.net/ .


PSoC1 зводить мене з розуму. Нові PSoC3, однак, є приголомшливими.
Rocketmagnet

5

Freescale HCS08 micros є прямими конкурентами PIC10-18s та AVR, як правило, дешевших, але все ще з досить багатим периферійним набором. Їх бібліотека додатків та довідкових матеріалів досить хороша.

Їх CodeWarrior IDE (безкоштовний компілятор до 32k коду) включає в себе корисні бібліотеки "Ініціалізація пристроїв" для підходу, керованого графічним інтерфейсом до перегортання бітів, і більш досконалий "Processor Expert", який може генерувати драйвери більш високого рівня для периферійних пристроїв. Ви також не зобов’язані користуватися ними, і за бажанням можете просто зробити все в прямому коді С.


4

TI TMS320F28xx серія ЦСП.

Цільовий ринок

Управління двигуном та цифрові керовані перетворювачі живлення: вони мають дуже гнучку ШІМ-периферію та швидкі АЦП.

Обладнання

Ці ДСП мають два основні недоліки:

  • Більш складні в налаштуванні - файли посилання та всі регістри (стан очікування пам'яті тощо) мають занадто багато варіантів, і ви дійсно повинні знати, що ви робите, щоб переконатися, що ви робите це правильно
  • Потрібно два напруги живлення, 3,3 В для вводу / виводу та периферійних пристроїв, і 1,8-1,9 В для центрального сердечника.

Інструменти розробки

Налагодження в режимі реального часу через порт JTAG, використовуючи Code Composer v4 (на основі Eclipse !!!).

Підтримується симулінка MatLAB для автоматичного створення коду (не потрібен досвід програмування)

DSP на TI раніше були дуже дорогими для прототипу, тому що вам потрібен 1500-доларовий струмок налагодження в режимі реального часу (адаптер JTAG), але ціна знизилася (є недорогий за 150-200 доларів), і вони продають дошки eval з вбудовані адаптери JTAG.


Цікава річ у тому, що кожна індивідуально пронумерована адреса пам'яті містить 16-бітове слово.
JustJeff

16-бітний байт?
Нік Т

4

XMOS створює ряд дуже потужних 32-бітових мікросхем паралельної обробки (1600 MIPS з чотирьох ядер з 32 апаратними потоками). Вони досить швидкі, щоб робити високошвидкісні USB та Ethernet в програмному забезпеченні. Їх інструменти дуже хороші, чіпи чудові, вони доступні за ціною (вони починаються від $ 7,50), а люди там дуже корисні. Вони мають два дуже хороших форуми підтримки; один управляється компанією, інший - незалежним.


Я використовую XMOS; Я задоволений їх продуктами.

3

Мені доведеться голосувати за Cypress PSoC3. Я використовую PIC близько 10 років (PIC16, PIC18, dsPIC і PIC32). Вони справді зводять мене з розуму від їх дратівливої ​​периферійної конфігурації та постійного пошуку по таблиці, щоб знайти той біт, який потрібно очистити, щоб зробити певну роботу.

З іншого боку, досвід, який я мав до цих пір з PSoC3, викликав захоплення. Найголовніше, що налаштування цифрової та аналогової периферійних пристроїв - це загальна радість. Послідовні порти, тактові годинники, переривання, драйвери, компаратори АЦП та ЦАП можуть бути підключені на схематичному аркуші, і вони працюють бездоганно.

Наприклад, ви можете підключити свій ШІМ, щоб запустити АЦП на вибірку посередині імпульсу, зробивши вимірювання струму двигуна більш точним. Спробуйте зробити це на PIC.

Хочете 5 ШІМ, 5 квадратурних декодерів, ADC, порт SPI та генератор CRC на одній мікросхемі? Ти маєш це. Ви хочете налаштувати АЦП для послідовної вибірки струму в кожному двигуні в центрі імпульсу? Ти маєш це. Крім того, ви можете підключити всі ці входи та виходи майже до будь-якого потрібного контакту.

О так, і, якщо в бібліотеці немає периферійних пристроїв, ви можете написати свій власний у verilog!


1

Cypress PSoC5 має 32-бітний ARM Cortex M3, оточений FPGA-подібними цифровими та аналоговими блоками.

Аналоговий АЦП та ЦАП 20-бітової роздільної здатності.

Цифрові та аналогові блоки можуть бути налаштовані так, щоб робити речі повністю незалежно від ядра - а отже, із гарантованим фіксованим часом відгуку, навіть якщо процесор зайнятий тимчасовим перериванням.

Досить низька потужність.

32-бітний, 80 МГц ядер ARM Cortex-M3 приблизно еквівалентний ...

Форум http://www.psocdeveloper.com/ дружній.


1
Я б не довіряв 20-бітовому A / D на тій же матриці, що і мікроконтролеру. Шум від UC, ймовірно, робить принаймні 4 біти марними.
stevenvh

Ви можете в це повірити, якби знали, що це всього 180 секунд.
Rocketmagnet

0

Власна підтримка Atmel для AVR не дуже хороша, а їх апаратні засоби трохи невмілі. Хоча чіпи є приємними, але форум AVR Freaks дуже хороший. У них є серйозні проблеми з доставкою нових новіших чіпів, таких як XMega і 6-контактний Tiny чіпс.


Будь ласка, детальніше розробимо апаратні засоби та проблеми з доставкою. Я деякий час використовував чіпи AVR, і вони були дуже приємні та легкі, щоб потрапити у світ фізичних обчислень.
Граф

Погляньте на форум AVR Freaks - люди завжди скаржаться на Dragon та інші інструменти та недоступність багатьох фішок. Вони також скаржаться на відсутність підтримки з боку Atmel.
Леон Хеллер

1
Не впевнений, підтримуєте ви чи голосуєте проти AVR. Чи можете ви розмістити якісь свої особисті переживання? Легко знайти негативні відгуки від розчарованих плакатів, але складніше знайти приємні фішки та хороший форум підтримки. Я не думаю, що не було б спільноти, здатної генерувати 500 000 публікацій на 75 000 тем, якби загальний консенсус був негативним.
Кевін Вермер

Підтримка Atmel AVR з відкритим кодом дуже приємна (avr-gcc та avrdude).
starblue

0

У Zilog також є кілька мікроконтролерів. Особисто я не намагався запрограмувати лінійку мікросхем Z8 Encore , але вони надсилають зразки. У них багато різних мікросхем, від 1 Кб до 16 Кб (можливо, більше) з периферійними пристроями, включаючи UART, ADC, I2C , SPI тощо.

На мою думку, це не дуже хороший хобі-мікроконтролер.


0

Я використав декілька сімей процесорів. Основна проблема вивчення нового процесора - навчитися кодувати сотні конфігураційних регістрів периферійних регістрів, це буде основним трудомістким процесом при переході від однієї родини до іншої. основний код програми, написаний в c, не має значення, яку б сім'ю ми не використовували, я б хотів, щоб там був перероблений стандарт для периферійних регістрів. Якщо хтось знає про будь-який розвиток у цьому напрямку, будь ласка, поділіться ним.


-1

Я використовую PIC, ARM, MSP430, AVR та декілька інших.

Microchip має чудову підтримку та хороші апаратні та програмні засоби, налагодження особливо легко та швидко. 8-бітова архітектура трохи датована. Їх нові 16-бітні чіпи - чудові. Вони є лідером на ринку 8-бітних MCU.


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