Какие микроконтроллеры более популярны у разработчиков
Перейти к содержимому

Какие микроконтроллеры более популярны у разработчиков

  • автор:

Выбираем микроконтроллер вместе

image

Прочитав эту статью я заметил большой интерес к выбору микроконтроллера у читателей и решил взглянуть на эту проблему с другой стороны.
Могу предположить, что всех интересует выбор их первого, либо первого 32-х битного МК.

Тем, кто знает, что на фотографии нет ни одного микроконтроллера — прошу в комментарии, дополнить мой рассказ и тем самым поделиться своим опытом с начинающими. Остальным, непременно под кат!

На мой взгляд чем проще будет каждый этап обучения — тем проще будет дойти до самостоятельного плаванья. Поэтому я считаю, что на начальном этапе следует брать все готовое. Ничего не придумывать самому. Представьте:
вы выбрали контроллер,
проглядели даташит,
развели под него плату,
или нашли ее на просторах интернета,
купили все компоненты(или аналоги если советуемых не было),
запаяли все,
написали первый «hello world»,
собрали программатор, прошили контроллер

И… и ничего не происходит! Что-то не работает, и вы не можете понять что: то ли в пайке ошибка, то ли что-то с программой, то ли в интернете кривая схема, то-ли проблемы с софтом.

Новичка такая ситуация ставит в тупик, знаю это по себе.
Чтобы такого не случилось проще всего сделать первые шаги под чьим-то руководством.

Преимущество простого старта отлично показывает платформа Arduino. Посудите сами: возможности контроллеров совсем не велики, цены на платы огромны, зато огромная поддержка сообщества и все уже готова, любые платы расширения, кучи примеров.
За счет этого и живет платформа!

Давайте посмотрим какой у нас вообще есть выбор! На рынке огромное количество производителей и архитектур. Но выбор на самом деле совсем не велик:
я бы сразу отсек все 8-ми и 16-ти битные архитектуры, кроме PIC и AVR, да иногда производители предлагают отладочные платы и контроллеры по очень заманчивой цене
но я не советую их брать потому, что это малораспространенные архитектуры и на них меньше примеров + пересаживаться на другие контроллеры будет сложнее.
По той же самой причине отсек все 32-х разрядные архитектуры кроме ARM + с ними еще начинаются проблемы с примерами, и они постепенно вымирают.

Арм микроконтроллеры делятся на ARM7, ARM9, Cortex M0, 3, 4.
Седьмые и девятые постепенно замещаюся кортексами и вскоре их тоже не будет.

Итого имеем:
AVR
PIC
ARM Cortex

Про пики сказать много не могу, но по-моему AVR их вытесняет из-за распространенности Arduino.
Но я все-же советовал Cortex, их возможности намного шире, к тому же есть выбор между производителями, а это на мой взгляд большой плюс. Да и существует масса упрощающих жизнь библиотек и даже генераторов кода, которые новичкам позволят не сильно вчитываясь в юзер мануал написать первую программу.

Итак, какие производители представлены у нас?
NXP, ST, Freescale, TI, Luminary Micro, Atmel и много других но поменьше распространенных.

Как выбрать из такого большого количества производителей?
надо выбирать не контроллер а отладочную плату, библиотеки, среду разработки и сообщество.

Сам щупал только NXP, ST и Freescale.

Первые 2 производителя наводнили Москву и другие города России дешевыми/бесплатными отладками — это очень хорошо в том смысле, что всегда есть у кого спросить, есть к кому обратиться.
Также не нужны никакие программаторы — все есть на борту!
image
image

Для NXP есть альтернатива от Olimex www.chipdip.ru/product/lpc-p1343.aspx
Есть и минусы: когда захочется расширить их возможности придется искать новую.

Больше всего мне понравилась отлатдка от Freescale, с которой столкнулся на работе.
На мой взгляд это лучший вариант для новичка, но у нее есть один огромный минус:
пока довольно сложно найти в продаже и регионам придется заказывать, но оно того стоит:
Первое и самое важно преимущество: стандартные платы расширения (сначала покупаете стандартный набор, потом докупаете вайфай, сенсоры и тп)
image
image

Еще большущий плюс это среда разработки: благодаря Processor Expert можно генерировать код, и море примеров с объяснениями.

Итак подведем итоги:

1 купить Arduino Uno c AVR за 1000р на плате практически ничего нет, зато в продаже множество плат расширения и огромное сообщество

2 купить STM32L-DISCOVERY c M3 за 16.22дол c сенсорными кнопками, USB и маленьким LСD-дисплеем и дебагером на борту

3 купить за 1000р LPCEXPRESSO c M3 с просто выведеными контактами и дебагером на борту

4 купить KWIKSTICK с M4 за 30дол+ доставку с большим сегментным LCD, USB, входом под наушники, динамиком, сенсорными кнопками, литиевой батарейкой, микрофоном, ИК портом, слотом под SD-карту + возможность расширения функционала без пайки и больших вложений. Большой набор библиотек, примеров и хорошая IDE.

В итоге я считаю, что надо покупать STM32L-DISCOVERY и начинать с нее,
либо если не лень заморочиться с заказом платы и чуть-чуть побольше заплатить брать KWIKSTICK — с ней старт будет полегче, да и хватит ее на дольше, но для общения с коллегами нужен английский.

Прошу всех, знакомых с МК написать свой выбор отладочных средств для новичка, я с удовольствием дополню статьюю

UPD: stm32l-discovery по таким ценам можно купить в Компэле
Kwikstick на сайте freescale

Микроконтроллеры

STM32F0 t

Также как и другие производители, STM озабочена все еще высокой популярностью 8-ми разрядных микроконтроллеров. Хотя на замену уже предлагается множество вариантов систем, разработчики выдают все новые модели. Одним из таких проектов стала серия микроконтроллеров STM 32 F 03 x . Она пришла на замену STM 32 F 05 x и во многих публикациях уже получила громкое имя вроде «Убийцы AVR ок». Тем не менее, при детальном рассмотрении не все так безоблачно, как того хотят рекламные заявления.

LPC800 — новые микроконтроллеры от NXP

lpc800 dip8

В конце 2012 года фирма NXP анонсировала выпуск новых микроконтроллеров серии LPC 800. Главной задачей перед этими микросхемами поставлено вытеснение старых, 8-ми битных контроллеров с рынка. Поэтому в новой серии упор сделан на дружественность к разработчику и простоту внедрения. Множество новшеств, примененных производителем, и традиционные корпуса делают LPC 800 интересным вариантом для разработок простых электронных устройств, особенно с батарейным питанием.

Улучшенное ядро микроконтроллеров серии PIC16

Микроконтроллеры серии PIC 16 одно время находились на вершине популярности. Хорошо отработанное ядро, высокая надежность и простота освоения делали эти микросхемы востребованными среди самого широкого круга любителей и специалистов. Но техника не стоит на месте и с началом массового распространения ARM -микроконтроллеров, старые 8-ми битные системы начали сдавать позиции. При этом многие преимущества все равно остались за ними и компании-производители, пытаясь сохранить позиции, постоянно совершенствуют свои изделия. Коснулось это и серии PIC 16.

Микроконтроллеры серии PIC12

Микроконтроллеры PIC 12 наряду с серией PIC 10 занимают нишу маломощных устройств в линейке процессорной продукции Microchip . Минимум периферии и корпус с 8-ю выводами предполагают их применение только в относительно простых приложениях. Эти же факторы и вытекающая из них низкая стоимость, обусловили популярность данных микроконтроллеров среди большого числа радиолюбителей.

Микроконтроллеры Cortex-M0/M3/M4

Микроконтроллеры Cortex-M стали сегодня одними из самых популярных процессоров, применяемых при разработке и изготовлении электронной техники. Высокая вычислительная мощность, широкий набор периферии и низкая стоимость делают эти устройства привлекательными для самого широкого круга разработчиков. При этом каждый желающий может выбрать наиболее подходящий вариант для решения конкретной задачи. Производители предлагают огромное количество разнообразных микросхем, общим для которых остается только процессорное ядро. На сегодняшний день распространение получили 3 варианта ядер: Cortex-M0, Cortex-M3, Cortex-M4. Отличия этих моделей не всегда явно прослеживаются, поэтому данная статья делает попытку разобраться в особенностях этих вариантов.

V850 — микроконтроллер №1.

v850

Самая продаваемая в мире линейка микроконтроллеров, во всяком случае, по уверению производителя, практически не известна в России. Разработана она японской фирмой NEC уже свыше 15 лет назад, а предоставляется фирмой Renesas , под общей маркировкой V 850 ES .

Еще статьи.

  1. Микроконтроллеры Cortex-M
  2. Микроконтроллеры PIC
  3. Микроконтроллеры
  4. ARM процессоры
  5. MIPS процессоры

Какие микроконтроллеры более популярны у разработчиков

Микроконтроллеры GIGADEVICE. Инструкция по освоению

Микроконтроллеры GIGADEVICE. Инструкция по освоению

Статья была опубликована в журнале Компоненты и технологии №7 2017 г.
авторы: Хафизов Даян, Смирнов Григорий, Александр Сыров, alexandr.syrov@eltech.spb.ru

На сегодняшний день рынок 32-битных микроконтроллеров на основе ядра Cortex-M3 довольно широк. Популярностью у разработчиков цифровых устройств на основе микроконтроллеров пользуется продукция таких производителей, как Microchip, ST Microelectronics, NXP и т.д. Однако, недавно появился еще один производитель, готовый составить им конкуренцию – GigaDevice со своей линейкой микроконтроллеров GD32. В данной статье будет рассказано о микроконтроллерах GD32, приведено сравнение с ближайшим конкурентом, а также представлены примеры работы с одним из представителей семейства GD32 в популярной IDE Keil MDK-ARM.

Бюджетные 8-ми битные микроконтроллеры!

  • Запатентованная технология FPPA – до 4х ядер на одном микроконтроллере
  • Память программ от 1 кБ до 8 кБ (1 KW = 2 KБ)
  • Большинство операций выполняются за один такт
  • Микроконтроллеры для сенсорного управления сертифицированы СS10V
  • Частота ядра до 8 МГц
  • Кол-во выводов от 6 до 28
Узнать больше

Рисунок 1. Логотип компании GigaDevice

Компания GigaDevice (рис.1) была создана в 2005 году в Пекине и вышла на китайский рынок с микросхемами памяти. В 2008 году GigaDevice начали выпуск микросхем памяти SPI NOR FLASH с напряжением питания 3,3 В по технологии 180 нм. Примечателен тот факт, что это первая полностью самостоятельная разработка в Китае. За последующие 5 лет GigaDevice укрепили свои позиции на рынке микросхем памяти и значительно улучшили технологии производства, быстро осваивая более высокие технологические нормы. Сейчас компания производит SPI NOR FLASH с напряжением питания 1,8 В по технологии 65 нм и занимает третье место в мире по объемам продаж в сегменте микросхем энергонезависимой памяти с объемом производства более 1 млрд микросхем в год. Компания GigaDevice в высокой степени сконцентрирована на инженерной работе, так в компании больше половины состава сотрудников – инженеры. Кроме этого, у компании GigaDevice более 100 патентов и около 500 заявок на патенты.
В 2013 году компания GigaDevice приобрела лицензию на ядро ARM Cortex-M3 и объявила о начале производства собственных 32-битных микроконтроллеров GD32. Внешнее сходство и сходство в наименованиях с микроконтроллерами от ST Microelectronics подталкивает к мысли о полном «копировании», но это не так. Несмотря на идентичность в расположении контактов и схожесть характеристик, отличия между GD32 и STM32 есть:

  • рабочая частота до 108 МГц для семейства GD32F1 (у STM32F1 до 72 МГц),
  • объем FLASH памяти до 3 Мб (у STM32F2 не более 1 Мб),
  • объем оперативной памяти до 256 Кб (у STM32 не более 128 Кб),
  • и проч.
    По сравнению с «одноклассником» STM32F1, микроконтроллеров GD32F1 обладают лучшим набором характеристик. В случае, когда не хватает flash-а для программы или хранения данных, или же не хватает быстродействия, оптимально использовать GD32F1. Также большим плюсом GD32 является более низкая, нежели у конкурентов, цена.

Ну что же, плюсы и минусы есть у всех. Проверим работоспособность микроконтроллеров GD32 на реальном железе. Возьмем отладочную плату GD32103E-EVAL (рис. 2) и рассмотрим несколько простых примеров.

Рисунок 2. Внешний вид отладочной платы GD32103E-EVAL

Начало начал. Помигаем светодиодами.
Несмотря на то, что микроконтроллеры GD32 и STM32 не являются абсолютно идентичными устройствами, они являются совместимыми как по выводам, так и по карте регистров в рамках одного семейства. Следовательно, микроконтроллер GD32F103ZET6 будет совместим по выводам с STM32F103ZET6. Таким образом, мы можем воспользоваться популярным среди разработчиков генератором исходного кода STM32CubeMX для создания демонстрационного проекта (рис. 3). В данном случае, ключевым отличием GD32F103ZET6 от «собрата» STM32F103ZET6 являются максимальная частоте работы ядра: 108 МГц у GD, против 72 МГц у STM. Также отметим, что микроконтроллеры серии GD32F103 могут иметь до 3 Мб встроенной Flash памяти против 1 Мб у STM32. Это может стать решающим преимуществом GD32F103 перед STM32.

Рисунок 4. Настройки RCC для GD32F10x

Далее генерируем исходный код для Keil. После установки AddON-ов от GigaDevice в закладке Device появилась возможность выбрать MCU GD32 (рис. 5). В нашем случае выбираем GD32F103ZE.

Рисунок 5. Конфигурирование Keil для работы с GD32

В файле main.c добавляем в цикл:
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1);
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
HAL_Delay(1000);
Затем собираем проект и приступаем к «прошивке» контроллера. На отладочной плате GD32103E-EVAL уже присутствует программатор GD-Link (так же, как и почти на всех отладочных наборах у STM). Так что после установки утилиты от GigaDevice, можем прошивать микроконтроллер и заниматься отладкой программы из Keil. В закладке Debug выбираем CMSIS-DAP Debugger (рис. 6) и в настройках указываем определившийся адаптер (рис. 7). Жмем «OK», прошиваем контроллер, перезапускаем контроллер, наблюдаем за двумя мигающими светодиодами ☺

Рисунок 6. Настройка программатора.

Рисунок 7. Окно выбора режима программатора

Итак, пока получается, что мало того, что для работы с GD32 можно использовать программное обеспечение от STM, так еще и библиотека HAL корректно работает.
Работа с UART, АЦП и таймерами.
Светодиодами помигали, теперь сделаем что-то посерьезнее. Будем снимать данные с АЦП и передавать их в UART. И делать это будем через прерывание от таймера.
Сделаем новый проект в STM32CubeMX. UART заведем на контакты PA9 (TX) и PA10 (RX), на PC3 заведем вход АЦП (рис. 8).

Рисунок 8. Конфигурирование входов-выходов для работы с UART и АЦП

Настроим UART как показано на рис. 9. Для этого перейдем на вкладку Configuration и выберем USART1.

Рисунок 9. Настройки UART

Также настроим ADC. Большая часть настроек остается по умолчанию.

Рисунок 10. Настройка АЦП

АЦП на входе PC3 подключен к потенциометру на 10 кОм (рис. 11). В новом проекте будем снимать значение напряжения с АЦП. Опрос АЦП будем производить в прерывании от таймера TIM6.

Рисунок 11. Подключение потенциометра к контакту РС3

Перейдем на вкладку Clock Configuration. В данном случае воспользуемся настройкой тактирования ядра и периферии, установленными по умолчанию: ядро тактируется частотой 48 МГц, тактирование периферии конфигуратор рассчитает автоматически (рис. 12).

Рисунок 12. Настройки тактирования

Рисунок 13. Конфигурирование таймера TIM6

Таймер TIM6 сконфигурируем так, чтобы прерывание от него срабатывало 1 раз в секунду. Поскольку периферия тактируется с частотой 48 МГц, то для получения периода в 1 секунду значение предделителя приравниваем к 47999, а регистр счетчика – к 999 (рис. 13).
Сгенерируем проект и откроем его в Keil. Все обработчики прерываний находятся в файле stm32f1xx_it.c. Находим обработчик прерывания от таймера TIM6 и вставляем туда функцию отправки данных в UART, как на рис. 14.
HAL_UART_Transmit – функция HAL для отправки данных в UART, сгенерированная STM32CubeMX. Эта и другие функции HAL для UART находятся в файле stm32f1xx_hal_uart.c
transmitBuffer – в данном случае массив, который мы объявили глобально и в который просто записали строчку, которую хотим передавать в UART.

Программирование микроконтроллеров: работа с памятью, ограничения, языки, типы, что купить

Фанат Free Software Foundation, использует Linux и недолюбливает Windows. Пишет истории про кодинг и программы на Python. Влюблён в Lisp, но пока что не умеет на нём программировать.

Алексей Долиненко

Бэкенд-разработчик международного стартапа TraceAir — веб-платформы для контроля строительства на основе данных с дронов.

Содержание выпуска

  • Какие типы микроконтроллеров существуют, для чего они используются, где мы в быту или в каких-то понятных нам предметах можем их найти.
  • Какие технологии путают с микроконтроллерами. COM, SoC, FPGA, DSP. В каких случаях их стоит выбрать вместо микроконтроллеров.
  • Чем программирование микроконтроллеров отличается от других типов программирования.
  • Ограничения и особенности контроллеров. Операционные системы для микроконтроллеров. ОСРВ, FreeRTOS, Mbed OS.
  • Как обеспечивается безопасность кода в микроконтроллерах. Информационная безопасность и safety-critical system.
  • Какие языки программирования используются для программирования микроконтроллеров. Когда и какие стоит выбирать. C, C++, Ассемблер, Python, JavaScript.
  • Какие серии микроконтроллеров наиболее популярны среди любителей. AVR, ARM Cortex-M (STM32), ESP32, PIC, 8051, MSP430.
  • Что такое Arduino, к каким типам контроллеров относится платформа. В чём фишка и причина популярности Arduino.
  • Конкуренты Arduino (не микроконтроллеры): семейство Raspberry Pi, «Марсоход».
  • Какие навыки и знания нужны, чтобы делать что-то интересное на микроконтроллерах.
  • Какой инструментарий понадобится на старте, а какой — когда уже освоишься. Минимальный и максимальный набор инструментов.
  • Что нужно знать и уметь, чтобы работать с микроконтроллерами — то есть устроиться в компанию, которая собирает что-то на них.
  • Где лучше заказывать микроконтроллеры и что заказать на старте.
  • По каким ресурсам и книгам можно изучать работу с микроконтроллерами и программирование на них.

Полезные ссылки

  • Статья Алексея «Многозадачность в микроконтроллерах на основе продолжений».
  • Хоровиц, Хилл — «Искусство схемотехники».
  • Таненбаум, Бос — «Современные операционные системы».
  • Борис Семёнов — «Силовая электроника. От простого к сложному».
  • Герб Саттер — «Решение сложных задач на C++. 87 головоломных задач с решениями».
  • Роберт Мартин — «Чистая архитектура. Искусство разработки программного обеспечения».
  • Роберт Мартин — «Чистый код. Создание, анализ и рефакторинг».

Предложить тему, стать гостем подкаста, похвалить или поругать выпуск: code.media@skillbox.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *