Как выбрать микроконтроллер для проекта

от admin

Карпутер 3. Выбираем микроконтроллер

Итак, со схемами в proteus наигрались, теперь голова полна идеями, хотелками и желалками. Но ни одна идея не реализуется сама собой, поэтому надо выбрать "движок" для нее.

Как выбирают контроллер?

Во-первых, по личным предпочтениям. Кому-то нравится одна архитектура, кому-то другая. У кого-то уже есть опыт с одними микроконтроллерами и ему лень изучать другие … Но я считаю, что раз опыта и предпочтений нет, поэтому — stm32. Вам на данном этапе все равно, а мне потом спасибо скажете.

Во-вторых, по скорости. Если задача сложная, то думаю понятно, что работающий на 72МГц контроллер обгонит работающего на 16МГц (грубо — у кого больше литраж у двигателя, тот быстрее разгонится или больше увезет). А если устройство работает от батареек, то наоборот, устройство работающее на 16МГц легко даст фору работающему на 72х (опять же, чем больше литров, тем чаще на заправку надо будет ездить). Но на данном этапе нам совершенно все равно, какая скорость у контроллера — для нас подойдет любая.

И наконец, по числу портов и их возможностями. Все порты делятся на два типа: цифровые и аналоговые. Цифровые оперируют уровнями типа "есть сигнал" и "нету сигнала", а аналоговые — "какой уровень у сигнала?". Говоря другими словами — кнопки, выключатели и прочие переключатели — это цифровые, а всякие регуляторы, измерители и прочее — аналоговые. На каждую кнопку, релюшку или измеритель надо по одному порту (конечно, есть куча возможностей, как от этого уйти, но пока нам этого не надо). И крайне рекомендую при выборе зарезервировать пару портов под всякие доделки и внезапно всплывшие идеи.

Ладно, хватит разговоров, пора выбирать то, на чем делать будем, а то очень охота в магазине денег потратить, пока еще есть возможность.

Что будем делать-то? В смысле для чего мы все это затеяли? Давайте начнем с простого. Пусть будет система автоматического включения света в машине. Как пример использования: садимся в машину, включаем зажигание, заводим машину и через некоторое время наш контроллер включает фары. Выключили зажигание — все выключилось. Сплошные бонусы: стартеру легче крутить двигатель — фары не отбирают лишних ампер и вам не надо будет помнить о включении фар.

Какой будет алгоритм работы?

1. Измеряем напряжение бортовой сети
2. Напряжение меньше 13В? если да, иди на п.1
3. Подождать 5 секунд.
4. Включить фары.

Все, никаких заморочек. Просто и совсем не страшно. Как видно, нам потребуется всего 2 порта: один аналоговый для измерения напряжения в сети и один цифровой, для управления релюшкой фар.

(отступление) Не хотите фары включать? Ну тогда например можно автоматически включать и выключать компрессор в пневмосистеме. Или в зависимости от температуры включать нагреватель или вентилятор. В общем, подойдет любой вариант "измерил что-то и как это что-то достило такого-то уровня — включил или выключил нечто".

Вернемся к нашим баранам. Нам нужен микроконтроллер, у которого есть как минимум 1 аналоговый порт на вход и 1 цифровой порт на выход. Сейчас смешно, да. Но потом всего будет не хватать и начнутся мучения.

Теперь готовимся скачать много из сети. Для начала нам нужна программа STM32CubeMx. (Все поисковики ее легко находят, но вот прямая ссылка www.st.com/web/catalog/to…533/PF259242?sc=stm32cube там мотайте страницу в самый низ и справа будет маленькая красная кнопочка Download).

Зачем нужна эта программа? Как я писал в первом посте, STM32 имеют один, но очень большой и неприятный минус — очень сложно начать с ними работать. В этих микроконтроллерах очень много возможностей и вариаций, поэтому даже просто запустить его составляет очень большую проблему. Команды инициализации, предназначенные для одной серии, не подходят для другой. Один и тот же порт может выполнять разные функции на разной частоте, причем все это настраивается в четырех или пяти местах. В общем, реальный кошмар после атмеловских контроллеров и 99% причин неработащих программ.

Вот и придумали этакий "генератор кода инициализации", когда можно мышкой не торопясь повыбирать порты и их функции. При этом идет одновременный контроль правильности использования порта и непересечение его с другими функциями. В общем, скачивайте, распаковывайте и запускайте программу (может потребовать java, так что тоже ставьте). Как ставить программы, нажимая next, я рассказывать не буду 🙂

Перед вами откроется очень информативное окно. New Project — это создать новый проект, Load Project — загрузить старый, который редактировали раньше. Нам естесственно надо выбрать создать новый. И тут …

И тут перед вами откроется окно, в котором собрана вся (почти) линейка микроконтроллеров. Первая вкладка — MCU Selector позволяет выбрать подходящие контроллеры в их голом виде. Слева в табличке функционал, справа — подходящие контроллеры. Скажем, нужно нам в нашем проекте использовать одновременно ethernet и часы реального времени, так значит ставим галочки и получаем, что нам подходят 88 микроконтроллеров из 590 (на момент написания). Но эта вкладка для продвинутых пацанов.

Нам нужна следующая вкладка, которая называется Board Selector. Тут уже можно выбрать готовые платы, со всем распаянным. Сразу рекомендую нажать кнопку ">>", которая будет показывать изображение платы.

Механизм тот же самый — слева выбираем что хочется, а справа получаем список того, где это есть. Потом открываем веб-сайт ближайшего магазина электроники и смотрим на наличие и цену. Лично у меня есть платы STM32L100 и STM32F3 (именно она изображения на скриншоте). Так как F3 мне нравится больше, то и в дальнейшем я буду использовать именно эту плату. Но повторюсь, вы можете использовать любую плату или процессор — главное, что бы он вам подошел по характеристикам.

Выбрав плату или процессор, жамкаем на кнопоку ОК в самом низу. Компьютер немного подумает и потом выдаст примерно вот такую картинку.

Слева будут всякие возможности, которые умеет процессор, а справа — как и на что распределены ножки и процессора. Если вы вышли сюда из выбора плат, то программа сама показала, что на плате куда подключено. Как видите, все ножки помечены разными цветами.

Желтенькие и светлозеленые — ножки, назначение которых изменить нельзя. Питание, земля и прочие подобные ножки.
Оранживенькие — ножки, на которые повешено то, что есть на плате и что можно либо отключить, либо заиспользовать. У меня это кварцевые резонаторы, гироскоп с компасом, USB порт и так далее.
Зелененькие — это ножки, на которые тоже повешено то, что есть на плате, но это ТО — кнопки, светодиодики и прочее. Грубо говоря, отличие только в сложности с точки зрения контроллера. Таким же цветом будут обозначаться и ножки, которые вы выделили для вашего проекта.
Серенькие — свободные ножки, которые можно использовать.

"Пришпилленость" ножки означает, что программа не может менять ее назначение, как бы этого ей не хотелось. Дело в том, что если у вас нету предпочтения, какой именно порт для чего использовать, то программа постарается "раскидать" их так, что бы микроконтроллер был наиболее функциональным.

Как менять назначение ножек? Есть два способа. Первый — это просто мышкой ткните на ножке. Вот для примера я ткнул на ножке, которая у меня подключена к голубой кнопке.

Как видите, эта ножка может выполнять аж 17 функций, но сейчас она работает как GPIO_Input (я ниже объясню, что это значит).

А второй способ — воспользоваться левой вкладкой и включить нужную функцию.

Как видим, у функции вообще горит желтый предупреждающий знак, который показывает, что что-то с ней не то. Открыв ее, можно увидеть подсвеченным красным подфункцию. В данном случае это IN1. Подведя мышку к красному, можно узнать, что с чем конфликтует. В данном конкретном случае можно увидеть, что 1й канал 1го аналого-цифрового преобразователя конфликтует на ножке процессора PA0, которая уже стоит в режиме GPIO_Input. Белиберда, да? Но ничего. Для примера можно обидеться и раз нам не дают использовать IN1, выбрать IN3, что бы это не значило. И обратите внимание, на рисунке процессора справа одновременно начнет показываться как "занятая" соответствующая ножка процессора. В нашем случае это PA3, в левом нижнем углу.

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

Итак, как же понять, какие функции можно повесить на ножку? Что бы не забивать голову, я опишу только наиболее нужные и часто используемые функции. Назначение других можете узнать сами, когда прижмет (но 90% это никогда не понадобится).

Итак, что можно выбрать?

ADC — Или АЦП, аналогово-цифровой преобразователь. Показывает значение напряжения. У большинства АЦП есть каналы, к которым он может подключаться. А каналы напрямую подключены к ножкам. То есть когда вам надо измерить напряжение на 1,2 и 3й ножке, то микроконтроллер на самом деле будет выполнять примерно следующее "подключить ацп к ножке 1, измерить, подключить ацп к ножке 2, измерить, подключить ацп к ножке 3, измерить". В принципе, для большинства задач этого достаточно, ведь измерение одного канала занимает от 1 до 10 мс. Но есть задачи, когда необходимо реально одновременно измерить напряжение на несколких ножках. В таком случае используют два или больше АЦП. Например, в F3 серии аж 4 АЦП, поэтому мы можем измерять 4 уровня одновременно. Если мы заиспользуем все доступные ресурсы, то сможем за 0,1с измерить 59 аналоговых выводов (ардуинщики, вы рыдаете? :).

DAC — или ЦАП. Цифро-аналоговый преобразователь. Преобразует некоторое значение в уровень сигнала на выходе. Обычно один DAC имеет от 1 до 10 выходов, каждый из которых можно регулировать отдельно.

TIM — таймеры. Срабатывающие "раз в нное время" сигналы. На таймерах в stm делается очень многое — от PWM (управление сервомоторами и яркостью) до подсчета частоты смены сигнала на входе. Немножко к ним имеют отношение RTC — часы реального времени (которые считают минуты и секунды, а не тики и такты) и WDG — системы, которые автоматически перезагружают контроллер, если он завис, но я их касаться не буду

USART/UART — контроллеры для связи с "внешним миром": с компьютерами, с другими контроллерами и так далее.

И наконец GPIO. Это порты общего назначения. То есть на них можно вешать все, что душе угодно. Они могут быть GPIO_Input — порт, работающий на вход (который принимает сигнал "есть" и "нет") и GPIO_Output — порт, работающий на выход (который выдает сигнал "есть" и "нет"). Вы можете увидеть GPIO_Reset — это означает, что порт находится в хз каком стоянии и GPIO_EXTI — это выход прерывания. В общем лишнее на данном этапе.

Все ножки маркируются следующим способом: [подсистема]_[функция]. Пример:

ADC1_IN6 — 6й вход 1го АЦП контроллера
DAC1_OUT1 — 1й выход 1го ЦАП контроллера
USART1_TX — порт передачи 1 контроллера связи.

Но вернемся назад. Из всего выше перечисленного нам нужен один ADC ввод и один GPIO_Output вывод. Для ввода я заиспользую ADC1_IN2 (ножка PA1), а для вывода GPIO_Output — PC5. Они расположены на одной стороне реальной платы, поэтому мне будет удобно с ними работать. И что самое главное, они не конфликтуют ни с чем, что уже есть на плате.

Щелкаем и меняем назначение нужных нам ножек. Обратите внимание на то, что у PA1 нет булавки, а у PC5 — есть. Это та самая функция переназначения портов, когда вдруг функционал будет конфликтовать, а нам нет разницы, откуда его брать. Что бы "прикрепить" функционал к ножке, надо просто правой кнопкой мышки по ней щелкнуть и выбрать Signal Pinning. Теперь ни одна сволочь не отберет у нас ее :). Кстати, там же можно и дать название ножке, что бы не запутаться.

Согласитесь, так немного красивее? И так по всем ножкам-функциям, которые нам потребуются в нашем будующем устройстве. Не подходит что-то — возвращяемся назад и выбираем другую плату/микроконтроллер. Но я буду считать, что мы этот этап успешно преодолели и с большим трудом выбрали и назначили так нужные нам аналоговый порт на вход и цифровой порт на выход.

Можно сохранить проект на всякий случай, ибо это только начало.

Теперь щелкаем следующую вкладку — Clock Configuration. И у некоторых сейчас порвет мониторы 🙂

На этой вкладке вы можете увидеть, с какой скоростью работают внутренности микроконтроллера. Эта вкладка очень полезна тогда, когда мы озабочены энергопотреблением микроконтроллера. Играясь тут, можно легко на порядок понизить энергопотребление микроконтроллера. Но нам это не надо, поэтому переходим на следующую — Configuration

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

На картинке мы видим включенный контроллер ADC1 (для него нужны контроллер DMA, NVIC и RCC) и контроллер GPIO (Для него нужен RCC). В общем, давайте поверим, что нам это надо.

На этом экране у нас есть возможность тонкой настройки. Жмем на ADC1

Тут собраны все тонкие настройки для данного контроллера. Особо менять нечего, за исключением подсвеченного — Continuous Conversion Mode. Поставьте его в Enabled. Данная галочка говорит, что мы желаем запрограммировать контроллер так, что бы он постоянно мерял свои входы. И более того, измерянные значения сразу присваивал переменным. Ну ленивый я, пусть железка сама все делает 🙂

Аналогичную картинку можно получить и по GPIO портам.

Тут можно тоже поизменять разные параметры, но нам тут менять тоже ничего не надо.

В общем, полезная вкладка, особенно когда начинаешь использовать более сложные вещи, как USART или USB — здесь можно настроить все.

И наконец, последняя вкладка — Power Consumption Calculator. Тут можно прикинуть, сколько электричества будет потреблять микроконтроллер.

Но подчеркиваю, именно прикинуть. Ибо система не знает, сколько потребляет то, что еще подключено к этому контроллеру. На приведенном выше скриншоте я уже понажимал все кнопки. Согласно картинке, если мы ничего не будем подключать к этому микроконтроллеру, то на полной мощности он будет потреблять 30 миллиампер. Или говоря другими словами, от одной батарейки АА он проработает 3 с лишним суток. И это я не тыкал в различные режимы энергосбережения …

Итак, остался один последний шаг. Сгенерировать исходный код, котрый будет компилироваться и прошиваться в контроллер. На панели сверху есть кнопка "шестеренка с палкой". Нажимаем ее и …

Заполняем, где будут располагаться файлики и как мы обзовем проект. Так же выберем, для какой среды разработки будет генерироваться исходный текст. Выбор небольшой и все предлагаемые системы — полный шлак (тут конечно у каждого свои фломастеры, но тот же бесплатный CoCox уделывает Keil как бог черепаху), поэтому выберите MDK-ARM, как наиболее описанную в русском интернете.

Если вы запускаете генерацию в первый раз, система предложит скачать Firmware Package именно для вашего процессора. Ждем пока скачает и нагенерирует.

Увидели это окошко? Поздравляю! Вы прошли большую часть пути. Остался еще один шаг. Всего один …

Открываем браузер на www.keil.com/download/product/ и выбираем MDK-ARM v5. Вам дадут анкету, в которой реально проверяется только email. Проверяется — в смысле их сервер подключается к вашему серверу и проверяет валидность ящика, поэтому емайлы типа 2@1.co не проходят. Остальное нужно только для того, что бы выбрать, на каком языке потом вам напишет продавец со словами "купите у нас". Как обычно, у данной версии есть ограничения и самым главным из которых является ограничение в объеме кода в 32 килобайта. Поверьте, это довольно приличный объем для микроконтроллеров и вам его хватит надолго. Но если вас это напрягает, то сами знаете где можно найти вылеченную версию совершенно бесплатно.

На данном этапе можете спокойно идти пить чай. Версия, которую вам предлагают, занимает 500 мегабайт и скачаться мгновенно не может. А самизнаетекакая версия занимает еще больше, потому что в нее напихали всякого нужного и ненужного.

Как обычно, рассказывать как ставить программы с помощью нажатия кнопки next, я не буду. Единственное, что при первом запуске вылезет Packs Installer — дождитесь, пока он отработает и закрывайте его. Так что ставьте Keil и в той папочке, куда сохранили проект, найдите каталог Projects, в нем MDK-ARM и там ваш файл с типом mVision4 Project. Нажимаем на него …

Я тут его немного сплющил, но вы увидите именно это. Теперь нажимаем на кнопочку, которая во втором ряду, под "открыть". Похожа на папку для бумаг, в которую входит стрелочка. Ну или на клавиатуре F7. Этим мы запускаем компиляцию всего того, чего мы нагородили выше.

И только после того, как вы увидели в окошке снизу строчку 0 Errors(s), 0 Warning(s) вы можете поздравить себя — у вас есть полностью готовая прошивка для микроконтроллера. Ну и что, что она пока ничего не делает, зато 90% нашей первоначальной задачи уже выполнено. Теперь вы можете идти в магазин и покупать реальный микроконтроллер за реальные деньги. И у вас есть уверенность, что он заработает.

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

Выбор микроконтроллера [7] является одним из самых важных шагов, ведущих к успеху или провалу задуманного проекта. При этом необходимо учесть и оценить большое количество факторов. Обычно выбор проводится в 3 стадии:

Определение разработчиком необходимых характеристик МКпутем ответа на вопрос: «Что должен делать микроконтроллер в данной системе?». При этом немаловажной целью является выбор наименее дорогого МК, но удовлетворяющего требованиям по производительности, надежности, условиям применения и т. д.

Выбор микроконтроллеров или группы семейств МК, удовлетворяющих всем системным требованиям, включая необходимый подборлитературы, технических описаний и возможность получения консультаций, отдавая предпочтение однокристальным устройствам – из-за цены и надежности, с учетом стоимости и габаритов.

Выбор из списка приемлемых устройств одного путем анализа ряда факторов: цены, доступности, средств разработки, поддержки производителя, стабильности производства, наличия других производителей или поставщиков. Для выработки оптимального решения, возможно, весь процесс придется повторить несколько раз.

Рассмотрим основные критерии выбора МК в порядке значимости.

Пригодность МК для конкретной прикладной системы. Из возможных вариантов реализации системы (применением набора устройств автоматики, специализированных микросхем или однокристального МК промышленного производства) необходимо окончательно выбрать МК как гибкое, универсальное и недорогое средство автоматизации. Представляя основные задачи МК в разрабатываемой системе, необходимо выбрать МК с наиболее подходящим количеством контактов/портов ввода/вывода и набором встроенных дополнительных периферийных устройств (последовательные порты ввода/вывода, RAM, ROM, A/D, D/A, ШИМ, и т. д). Также надо убедиться в отсутствии избыточности по структуре и в оптимальном соотношении производительности и стоимости МК.

Доступность выбранного МК.Используя информацию о поставщиках и производителях МК, необходимо определить, имеются ли данные МК в количествах, достаточных для реализации вашего проекта, производятся ли сейчас и каковы перспективы их приобретения в будущем?

Поддержка разработчика МК. Для эффективной реализации задуманного проекта немаловажную роль играют такие факторы, как наличие ассемблеров и/или компиляторов с развитыми средствами отладки: оценочных модулей (EVM), внутрисхемных эмуляторов, насадок для логических анализаторов, отладочных мониторов, отладчиков программ в исходных текстах. Существенную помощь оказывают разработчики МК, осуществляющие информационную поддержку распространением примеров применения со схемами и исходными текстами программ, сообщений об ошибках, а также бесплатных оценочных ассемблеров. Для поддержки применений фирмы-поставщики обязаны иметь специальные группы поддержки применений, включающие инженеров, техников и менеджеров, обеспечивающих быструю реакцию на запросы о помощи.

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

Системные требования. Системный анализ проекта позволяет ответить на ряд вопросов и выявить существенные системные требования, в числе которых:

состав периферийных устройств. Реализация некоторых функций ввода/вывода и обработки данных возможна как чисто программными средствами, так и с использованием встроенных специализированных средств – периферийных устройств, позволяющих повысить производительность МК, однако набор таких устройств для МК различных фирм-производителей и внутри семейств МК может различаться;

манипуляции при программной обработке данных. Структуры обрабатываемых данных могут существенно повлиять на производительность системы, поскольку обработка битовых полей и числовых данных требует различного подхода к алгоритмам и программам. Еще более существенной разницы в затратах потребует обработка данных по алгоритмам целочисленной арифметики и при операциях с плавающей запятой;

принцип управления системой. На успешное решение проекта может влиять правильность выбора одного из принципов управления системой: по командам, по готовности или по прерываниям, когда система должна работать в реальном времени (с жесткими характеристиками откликов);

типы устройств ввода/вывода. Для связи с объектом управления и оператором могут потребоваться различные устройства: терминалы, выключатели, реле, контакторы, клавиатура, сенсоры и датчики (температуры, света, напряжения, тока, положения), звуковые устройства (микрофоны, синтезаторы), индикаторы: жидкокристаллические (LCD); светодиодные (LED), аналого-цифровые (ADC) и цифроаналоговые (DAC) преобразователи;

тип системы электропитания.В разрабатываемой системе может потребоваться стабилизированное напряжение питания не только для МК, но и для устройств связи с объектом. При этом номинальные значения напряжений и мощности источников вторичного питания (ВИП) будут определяться составом системы. В ряде случаев может потребоваться бесперебойная система электропитания со встроенными аккумуляторными батареями;

условия эксплуатации.Выбор элементов системы должен учитывать диапазон рабочих температур, атмосферного давления, влажности, а также агрессивность и взрывоопасность среды при эксплуатации и хранении системы;

массогабаритные характеристики.Наличие ограничений по массогабаритным характеристикам определяет много дополнительных требований, среди которых могут быть требования по базированию пользовательского программного обеспечения (на компакт-дисках, на твердотельных дисках, на микросхемах).

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

Разрядность. Существуют группы 8-, 16-, 32-разрядных МК – по размеру АЛУ и индексных регистров или по размеру шин обмена данными и инструкциями.

Тактовая частота (или более точно – скорость шины) определяет, сколько операций ввода/вывода и вычислений может быть выполнено за единицу времени. Ранние МК могли работать в узком диапазоне частот, новые – в широком, вплоть до нулевой. Снижение тактовой частоты уменьшает потребление, а повышение – приводит к возрастанию вычислительной и потребляемой мощностей. Однако следует ожидать, что система с более высокой тактовой частотой будет стоить больше уже потому, что все дополнительные микросхемы (RAM, ROM, PLD) тоже будут дорогостоящими. В некоторых случаях выбор тактовой частоты может быть связан с требованиями определенной скорости обмена данными по последовательным каналам.

Язык программирования. Выбор языка программирования: ассемблер или язык высокого уровня (чаще всего «Си»).

Технология изготовления. Сравнивая технологии изготовления МК отметим, что N-канальную применяли в более ранних разработках. Современная технология HCMOS позволяет использовать полный диапазон напряжений от 0 до U питания, МК потребляют меньшую мощность, меньше нагреваются, имеют меньшие габариты и, следовательно, более дешевы в производстве, так как на одном кристалле получается большее количество чипов.

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

Память – устройство для хранения данных и программ. Оперативная память (RAM) используется для записи и хранения данных, полученных путем обмена с датчиками и терминалами или в процессе обработки (вычислений) во время работы системы. Постоянная память (ROM) используется для хранения программы, которая записывается один раз, до того как система начнет работать. Другие типы устройств памяти – перепрограммируемая (EPROM), электрически перепрограммируемая (EEPROM), FLASH – позволяют делать перезапись от сотен до десятков тысяч раз, что необходимо при отладке системы или может быть использовано для хранения некоторых параметров настройки.

Читать:
Напряжение в сети 190 вольт что делать

Таймер – это часы реального времени и таймеры прерываний. Следует иметь в виду разрешение и диапазон таймеров (тактовую частоту и разрядность), а также наличие функций захвата событий и входных сигналов, что позволяет реализовывать эффективные алгоритмы обработки данных и управления аппаратурой.

Средства ввода/вывода включают порты параллельные и последовательные, аналого-цифровые (ADC) и цифроаналоговые (DАC) преобразователи, драйверы клавиатуры и дисплея – жидкокристаллического (LCD) или вакуумного флуоресцентного (VFD).

Сторожевой таймер (WDT) – таймер слежения за нормальным функционированием МК, система обнаружения отказа тактового генератора или «зависания» программы – бесконечного ожидания или циклического выполнения какой-то части программы в ущерб функционированию системы.

Системный интеграционный модуль (SIM) позволяет выбрать конфигурацию памяти и настроить внешние контакты микросхемы на ввод или вывод данных, а также настроить специальные регистры, управляющие работой всех встроенных периферийных устройств. В большинстве МК с внутрисхемными ресурсами содержится блок конфигурационных регистров для управления этими ресурсами, обеспечивающими необходимую гибкость при низкой стоимости.

Набор команд микроконтроллера. Набор команд МК играет важную роль в определении возможностей системы: манипуляции с битовыми полями, арифметические операции, умножение, деление и табличные преобразования.

Система команд микроконтроллера тесно связана с архитектурой. На рис. 20 показаны примеры выполнения арифметической операции с двумя операндами для процессоров с различной архитектурой.

Для большинства 8-разрядных микроконтроллеров (типа MCS-51, PIC) с «классической» аккумуляторной архитектурой операция сложения выполняется в 3 этапа:

загрузка первого операнда в аккумулятор, имеющий связь с одним из портов арифметическо-логического устройства (АЛУ);

извлечение второго операнда из оперативной памяти, сложение с данными, находящимися в аккумуляторе, и автоматическая передача результата в аккумулятор;

пересылка результата выполнения операции по месту назначения (в ОЗУ).

Такой подход позволяет существенно уменьшить формат команд за счет сокращения адресной части (необходим адрес только одного операнда), что уменьшает объем памяти программ.

По мере развития микропроцессорной техники аккумуляторная архитектура стала тормозом в повышении производительности процессора, появилась регистр-регистровая архитектура (16-разрядные микроконтроллеры MCS-196).

Основное отличие новой архитектуры заключается в том, что любые ячейки интегрированной на кристалл сверхбыстродействующей оперативной памяти, регистрового ОЗУ могут служить источником или приемником данных, т. е. могут выполнять функции аккумулятора. При этом любая команда процессора может быть трехоперандной и необходимость в дополнительных операциях по пересылке данных в аккумулятор и в ОЗУ отпадает. Естественно, время обработки данных сокращается, но сложность и формат команд увеличиваются. В сочетании с возможностью обработки 16-разрядных данных производительность MCS-196 по сравнению сMCS-51 увеличивается в несколько раз при работе на одной и той же тактовой частоте.

Прерывания. В системах реального времени очень важную роль имеет система прерываний. От того, насколько быстрой будет реакция системы на внешнее событие, зависит ее способность выполнять свою роль в процессе управления. Количество линий и уровней прерываний, имеющихся и используемых в системе, определяет число событий, которые может обработать система. Наличие маски прерываний позволяет на время исключить влияние некоторых событий. Наличие индивидуальных векторов для программ обработчиков прерываний позволяет каждое событие обрабатывать отдельной программой, что исключает необходимость опрашивать все возможные источники прерываний. Системы реального времени оцениваются по времени реакции на прерывание – т. е. по времени перехода к первой команде программы обработки.

Характеристика разработчика системы. Специально подготовленный и обученный персонал и наличие специальных средств разработки позволяет существенно сократить сроки и повысить вероятность успеха разработки.

Характеристика поставщика. Поставщиком может быть производитель МК или дилер нескольких компаний, обеспечивающий оптовые поставки.

Как выбрать правильный микроконтроллер для встраиваемого приложения

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

Выбор подходящего микроконтроллера для проекта — всегда сложное решение, потому что это сердце проекта, и от него зависит успех или неудача системы.

Существует тысячи различных типов микроконтроллеров, каждый из которых обладает уникальными характеристиками или конкурентными преимуществами — от форм-фактора до размера корпуса и емкости RAM и ROM, что делает их пригодными для определенных приложений и непригодными для определенных приложений. Таким образом, часто, чтобы избежать головной боли, связанной с выбором правильного, дизайнеры выбирают микроконтроллеры, которые им знакомы, которые иногда даже не совсем удовлетворяют требованиям проекта. В сегодняшней статье мы рассмотрим некоторые важные факторы, которые следует учитывать при выборе микроконтроллера, включая, среди прочего, архитектуру, память, интерфейсы и объем ввода-вывода.

Важные факторы, которые следует учитывать при выборе MCU

Ниже приведены некоторые из важных факторов, на которые следует обратить внимание при выборе микроконтроллера, включая, среди прочего, архитектуру, память, интерфейсы и объем ввода-вывода.

1. Применение

Первое, что нужно сделать перед выбором микроконтроллера для любого проекта, — это выработать глубокое понимание задачи, для которой будет развернуто решение на основе микроконтроллера. В ходе этого процесса всегда разрабатывается лист технических спецификаций, который помогает определить конкретные особенности микроконтроллера, который будет использоваться в проекте. Хороший пример того, как приложение / использование устройства определяет микроконтроллер, который будет использоваться, демонстрируется, когда микроконтроллер с блоком с плавающей запятой принят для разработки устройства, которое будет использоваться для выполнения операций, включающих множество десятичных чисел.

2. Выберите архитектуру микроконтроллера.

Архитектура микроконтроллера относится к внутренней структуре микроконтроллера. Для разработки микроконтроллеров используются две основные архитектуры;

  1. Архитектура фон Неймана
  2. Гарвардская Архитектура

В архитектуре фон Неймана используется одна и та же шина для передачи данных и выборки наборов инструкций из памяти. Поэтому передача данных и выборка команд не могут выполняться одновременно и обычно планируются. Архитектура Гарварда, с другой стороны, предусматривает использование отдельных шин для передачи данных и выборки инструкций.

Каждая из этих архитектур имеет свои преимущества и недостатки. Гарвардская архитектура, например, представляет собой компьютеры RISC (сокращенный набор инструкций) и, таким образом, может выполнять больше инструкций с меньшими циклами, чем компьютеры CISC (комплексный набор инструкций), основанные на архитектуре фон Неймана. Одним из важных преимуществ микроконтроллеров на основе Гарварда (RISC) является тот факт, что наличие разных шин для данных и набора команд позволяет разделить доступ к памяти и операции арифметического и логического блока (ALU). Это уменьшает количество вычислительной мощности, требуемой микроконтроллером, и приводит к снижению затрат, низкому энергопотреблению и тепловыделению, что делает их идеальными для разработки устройств с батарейным питанием. Многие ARM,Микроконтроллеры AVR и PIC основаны на архитектуре Гарварда. Примеры микроконтроллеров, использующих архитектуру фон Неймана, включают 8051, zilog Z80 и другие.

3. Размер бит

Микроконтроллер может быть 8-битным, 16-битным, 32-битным и 64-битным, что является текущим максимальным размером бит, которым обладает микроконтроллер. Разрядность микроконтроллера представляет собой размер «слова», используемого в наборе команд микроконтроллера. Это означает, что в 8-битном микроконтроллере представление каждой инструкции, адреса, переменной или регистра занимает 8-битное. Одно из ключевых значений размера битов — это объем памяти микроконтроллера. Например, в 8-битном микроконтроллере имеется 255 уникальных ячеек памяти в зависимости от размера бит, в то время как в 32-битном микроконтроллере имеется 4294967295 уникальных ячеек памяти, что означает, что чем выше размер бит, тем больше количество уникальных ячеек. ячейки памяти, доступные для использования на микроконтроллере. Однако в наши дни производителиразрабатывают способы предоставления доступа к большему количеству ячеек памяти микроконтроллерам меньшего размера посредством пейджинга и адресации, так что 8-битный микроконтроллер становится 16-битным адресуемым, но это имеет тенденцию усложнять программирование для разработчика встроенного программного обеспечения.

Влияние размера битов, вероятно, более заметно при разработке прошивки для микроконтроллера, особенно для арифметических операций. Различные типы данных имеют разный размер памяти для разного размера микроконтроллера. Например, использование переменной, объявленной как целое число без знака, которое из-за типа данных потребует 16 бит памяти в кодах, которые должны выполняться на 8-битном микроконтроллере, приведет к потере самого значимого байта в данных, который иногда может быть очень важно для достижения задачи, для которой было разработано устройство, на котором будет использоваться микроконтроллер.

Таким образом, важно выбрать микроконтроллер с размером бит, который соответствует размеру обрабатываемых данных.

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

4. Интерфейсы для связи

Связь между микроконтроллером и некоторыми датчиками и исполнительными механизмами, которые будут использоваться в проекте, может потребовать использования интерфейса между микроконтроллером и датчиком или исполнительным механизмом для облегчения связи. Например, для подключения аналогового датчика к микроконтроллеру потребуется, чтобы микроконтроллер имел достаточное количество АЦП (аналого-цифровых преобразователей) или, как я упоминал ранее, изменение скорости двигателя постоянного тока может потребовать использования интерфейса PWM на микроконтроллере. Поэтому важно подтвердить, что выбранный микроконтроллер имеет достаточно необходимых интерфейсов, включая UART, SPI, I2C и другие.

5. Рабочее напряжение

Рабочее напряжение — это уровень напряжения, при котором система предназначена для работы. Это также уровень напряжения, с которым связаны определенные характеристики системы. При проектировании аппаратного обеспечения рабочее напряжение иногда определяет логический уровень, на котором микроконтроллер взаимодействует с другими компонентами, составляющими систему.

Уровни напряжения 5 В и 3,3 В являются наиболее популярным рабочим напряжением, используемым для микроконтроллеров, и решение о том, какой из этих уровней напряжения будет использоваться, следует принять в процессе разработки технической спецификации устройства. Использование микроконтроллера с рабочим напряжением 3,3 В в конструкции устройства, в котором большинство внешних компонентов, датчиков и исполнительных механизмов будут работать с уровнем напряжения 5 В, будет не очень разумным решением, поскольку потребуется реализовать логический уровень. переключатели или преобразователи, позволяющие обмениваться данными между микроконтроллером и другими компонентами, и это без необходимости увеличивает стоимость производства и общую стоимость устройства.

6. Количество контактов ввода / вывода

Количество портов ввода / вывода общего или специального назначения и (или) контактов, которыми обладает микроконтроллер, является одним из наиболее важных факторов, влияющих на выбор микроконтроллера.

Если микроконтроллер должен иметь все другие функции, упомянутые в этой статье, но не имеет достаточного количества контактов ввода-вывода, как того требует проект, его нельзя использовать. Важно, чтобы микроконтроллер имел достаточно выводов ШИМ, например, для управления количеством двигателей постоянного тока, скорость которых будет изменяться устройством. Хотя количество портов ввода-вывода на микроконтроллере можно расширить за счет использования регистров сдвига, он не может использоваться для всех типов приложений и увеличивает стоимость устройств, в которых он используется. Поэтому лучше убедиться, что микроконтроллер, который будет выбран для проекта, имеет необходимое количество портов ввода / вывода общего и специального назначения для проекта.

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

7. Требования к памяти

С микроконтроллером связано несколько типов памяти, на которые разработчик должен обратить внимание при выборе. Наиболее важными из них являются RAM, ROM и EEPROM. Количество необходимой памяти может быть трудно оценить до тех пор, пока она не будет использована, но, судя по объему работы, требуемой от микроконтроллера, прогнозы могут быть сделаны. Эти упомянутые выше устройства памяти образуют память данных и программ микроконтроллера.

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

С другой стороны, память данных используется во время выполнения. Все переменные и данные, созданные в результате обработки среди других действий во время выполнения, сохраняются в этой памяти. Таким образом, сложность вычислений, которые будут происходить во время выполнения, можно использовать для оценки объема памяти данных, необходимой для микроконтроллера.

8. Размер упаковки

Размер корпуса относится к форм-фактору микроконтроллера. Микроконтроллеры обычно поставляются в пакетах, начиная от QFP, TSSOP, SOIC и заканчивая SSOP и обычным пакетом DIP, который упрощает монтаж на макетной плате для создания прототипа. Важно заранее спланировать производство и предусмотреть, какая упаковка будет лучшей.

9. Потребляемая мощность.

Это один из наиболее важных факторов, которые следует учитывать при выборе микроконтроллера, особенно когда он должен быть развернут в приложении с батарейным питанием, таком как устройства IoT, где желательно, чтобы микроконтроллер имел как можно более низкое энергопотребление. Технические данные большинства микроконтроллеров содержат информацию о нескольких аппаратных и (или) программных технологиях, которые могут использоваться для минимизации количества энергии, потребляемой микроконтроллером в различных режимах. Убедитесь, что выбранный вами микроконтроллер соответствует требованиям к питанию для вашего проекта.

10. Поддержка микроконтроллера.

Важно, чтобы микроконтроллер, с которым вы работаете, имел достаточную поддержку, включая: образцы кода, справочные проекты и, если возможно, большое сообщество в Интернете. Работа с микроконтроллером впервые может быть сопряжена с различными проблемами, и доступ к этим ресурсам поможет вам быстро их преодолеть. Хотя использование новейших микроконтроллеров из-за тех крутых новых функций, с которыми они пришли, — это хорошо, рекомендуется убедиться, что микроконтроллер существует не менее 3-4 месяцев, чтобы гарантировать большинство ранних проблем, которые могут быть связаны с микроконтроллером было бы решено, так как разные клиенты должны были бы провести много тестов микроконтроллера с разными приложениями.

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

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

Какой микроконтроллер выбрать

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

Если ты хочешь выбрать микроконтроллер, тогда эта статья для тебя. Сегодня мы попробуем разобраться в современном рынке микроконтроллеров. Замечу, что говорить мы будем только о бюджетных и широко специализированных модельных линейках, то есть о тех, которые используют электронщики.

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

Логотип компании Microchip Technology

Открывает наш парад компания Microchip Technology с серией PIC. Эти МК отличаются между собой разрядностью (8/16/32), набором периферии и корпусом чипа. Восьмибитные варианты же делятся на четыре семейства: baseline, mid-range, enhanced mid-range и PIC18. Более подробная информация приведена в таблице.

Выбор микроконтроллера. Таблица

Также есть 16-битные «пики» — PIC24F и DsPIC30/33F. Ну и 32-битные — PIC32MX. Эти непонятные сочетания букв и цифр — часть идентификатора чипа. То же, что и марки у машин. Например, широко распространенный камень PIC16F628A расшифровывается так: семейство PIC16F6 (Mid-range), а остальная часть имени — указатель на конкретный камень. У рассмотренных далее МК в имени может содержаться еще больше информации.

Цена и содержимое

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

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

Эти микроконтроллеры имеют среднюю стоимость. Например, камень PIC6F628 в Chipdip стоит около 150 рублей, а PIC18F2550 — 620 рублей.

Более дешевые экземпляры имеют в своем составе минимум периферии. У упомянутого ранее PIC6F628 следующие характеристики: встроенный тактовый генератор для работы с частотой 4 или 8 МГц; 18 пинов, из них 16 — ввод/вывод, а 2 — питание; для работы на более высоких частотах можно подключить кварцевый резонатор; Flash-память объемом 2048 слов; 4 аналоговых входа; два 8-битных таймера и один 16-битный; 224 байта ОЗУ (самому смешно); 128 байт EEPROM (это программно перезаписываемая энергонезависимая память, вроде жесткого диска); интерфейс UART.

Программирование и использование PIC

Программируют для микроконтроллеров, как правило, на ассемблере и на Си. Есть множество сред разработки: MPASM и MPLAB, MicroC, JALedit (язык JAL, сам про него впервые слышу). Скачать MPLAB

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

Вторым плюсом можно указать встроенные независимые (от тактового генератора) счетчики. Благодаря этому факту семейство зарекомендовало себя в качестве «мозгов» для частотомеров. Пара таких контроллеров лежит у меня в мастерской на черный день. Из минусов можно выделить только высокую стоимость оригинальных программаторов, которые зовутся PICkit.

Выбор микроконтроллера. PICKIT3

PICKIT3

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

Как выбрать микроконтроллер. Atmel

Логотип компании Atmel

Микроконтроллеры AVR производит компания Atmel. Если не знал, это те самые контроллеры, из которых собирают Arduino. Некогда Atmel была независимой компанией, но позже ее купила упомянутая ранее Microchip, которая продолжает выпускать эти МК. Они делятся на три семейства: tinyAVR (ATtinyxxx), megaAVR (ATmegaxxx), XMEGA AVR (ATxmegaxxx).

TinyAVR имеет следующие характеристики:

  • Flash-память до 16 Кбайт;
  • RAM до 512 байт;
  • ROM до 512 байт;
  • число пинов (ножек) ввода-вывода 4–18;
  • небольшой набор периферии.
  • FLASH до 256 Кбайт;
  • RAM до 16 Кбайт;
  • ROM до 4 Кбайт;
  • число пинов ввода-вывода 23–86;
  • расширенная система команд (ассемблер) и периферии.
  • FLASH до 384 Кбайт;
  • RAM до 32 Кбайт;
  • ROM до 4 Кбайт;
  • четырехканальный контроллер DMA (для быстрой работы с памятью и вводом/выводом);
  • «инновационная» система обработки событий.

Как и в случае PIC, у моделей AVR в названии содержится ценная информация. Например: ATMega328PU — семейство megaAVR, 32 Кбайта Flash, 8-битный, P — говорит о модификации (примерно как у пистолета Макарова модернизированного — ПММ).

Как выбрать микроконтроллер. Расшифровка названия чипа

Расшифровка названия чипа

Цена и начинка

Эти микроконтроллеры имеют, как и PIC, среднюю стоимость. Например, упомянутый ранее камень ATmega328P в Chipdip стоит 160 рублей, а ATxmega128A1 — 590 рублей.

TinyAVR дешевле и проще своих старших братьев. Немного характеристик ATmega328P: предельная частота работы 20 МГц (слышал, правда, что под охлаждением и посильнее разгоняли); 23 пина ввода-вывода; Flash-память на 32 Кбайта; 8 аналоговых входов; два 8-битных таймера и один 16-битный; 6 ШИМ-каналов; 2 Кбайта RAM; 1 Кбайт EEPROM; интерфейсы UART, SPI, I2C.

Программирование и использование AVR

Благодаря распространению плат прототипирования Arduino, как у нас, так и за рубежом, эти МК имеют низкий порог вхождения. Программируются на ассемблере, Си, C++; можно воспользоваться графическими генераторами кода типа Scratch (см. Scratchduino). Для работы есть Atmel Studio, IAR AVR, WinAVR. Ну и Arduino IDE, куда уж без нее. Лично я использую связку из Geany и avrdude. Для прошивки есть большое разнообразие программаторов: как дешевые, так и подороже. Я для этих целей прикупил недорогой экземпляр USBasp где-то за 1,5 доллара (на Aliexpress есть масса вариантов). А можно в качестве программатора использовать и Arduino UNO.

Информации об этих контроллерах в интернете много: чего только стоит канал AlexGyver! И благодаря Arduino существует масса обучающих наборов на любой вкус. В общем, низкий порог вхождения — весомый плюс этих контроллеров.

Кстати, если заказываешь из Китая, то взять плату с чипом будет дешевле, чем чип отдельно.

О компании ARM и ее продукции ты наверняка слышал. Однако производит эта компания не сами микроконтроллеры, а лишь архитектуру. Лицензию на нее покупают конечные производители и используют так, как им захочется. Кто только их не выпускал! Но как микроконтроллеры наибольшее распространение получили чипы компании STMicroelectronics.

Выбор микроконтроллера. STMicroelectronics

Логотип STMicroelectronics

Они делятся на два семейства: STM32 и STM8. Как понятно из названий, такие чипы бывают 8- и 32-битные. А каждое семейство делится на серии, которых достаточно много.

Что можно о них сказать? Это функциональный аналог AVR, только дешевле. Здесь есть три серии: STM8L c ультранизким энергопотреблением, STM8S для индустриальной аппаратуры и STM8A, именуемые «высоконадежными». Периферия у всех такая же, как у AVR, но есть встроенный тактовый генератор. Из плюсов могу выделить только низкое энергопотребление и маленькую цену. Замечу, у STM8 архитектура не ARM, а собственная. Она очень схожа с ARM и использует идентичный STM32 интерфейс прошивки. Компилятор для них используется тоже один, и при его работе ты просто указываешь, под какую архитектуру собирать код.

STM32

Проще говоря, это старший брат STM8. Его характеристики куда выше и колеблются в больших пределах в зависимости от серии. Программируются практически на чем угодно, даже JavaScript, хотя я бы не рекомендовал.

Прошивка и программирование

Прошиваются STM32 с помощью разработанного компанией ST интерфейса Single Wire Interface Module (SWIM). Еще у МК этой серии есть интерфейс отладки Serial Wire Debugging (SWD). Им я не пользовался, но в большинстве гайдов по STM есть описание его настройки.

А еще на STM можно записывать прошивки по USB. Дело в том, что у многих контроллеров этой серии есть аппаратная поддержка USB. STM благодаря этому может эмулировать разные устройства — например, флешку. Если залить специальную прошивку, можно будет обновлять встроенную программу просто по USB.

Для STM32 есть самые разные программаторы — от весьма крутых до простеньких USB-свистков. Я, например, взял ST-LINK, на «Алиэкспрессе» он стоил около 1,6 долларов. Его достоинство в том, что он может прошить любой контроллер STM.

Программатор ST-LINK

Программатор ST-LINK

Стоит также упомянуть платы STM Nucleo. Вот одна из них.

Плата STM32 Nucleo

Плата STM32 Nucleo

Это что-то вроде Arduino из мира STM. Стоит дороговато, как и оригинальные Arduino, но вещь для новичка отличная. Если деньги есть, стоит взять. Здесь же стоит упомянуть «Амперку» с их «Искрой» и набором для начинающих. Тоже вполне достойный выбор для первого раза.

Плата Iskra JS

Плата Iskra JS

Для программирования можно воспользоваться средами Embedded Workbench, uVision и TrueStudio. Благодаря работе умельцев для этих же целей можно использовать и родной для многих Arduino IDE. Есть также онлайновый IDE — mbed studio.

Партия из пяти плат с обвязкой и STM8 будет стоить около 4,5 долларов. Плата BluePill с STM32F103 сейчас стоит 1,6 доллара. Плата NUCLEO-F072RB — 16,4 доллара. Ссылок давать не буду — на «Алиэкспрессе» все это легко ищется по запросу «stm32».

ESP32

ESP32

И, наконец, пара слов про ESP. С этими МК я не работал и знаю о них немного. Это 32-битные камни с модулем Wi-Fi на борту. Они используют архитектуру xtensa. На них собирают умные дома и прочие интересные штуки (смотри врезку ниже). Программировать можно опять же в Arduino IDE. Знаменитая ESP8266, неоднократно упомянутая на страницах нашего сайта, как раз и относится к этому семейству. К нему же относится ESP32, старший брат ESP8266.

Выводы

Кроме упомянутых выше производителей есть много других: Intel, Renesas Electronics, Texas Instruments и прочие. Но в сообществе электронщиков-любителей они не прижились, хоть и активно используются в промышленности.

Новичкам я рекомендую AVR в виде Arduino: по нему много информации на русском, а порог вхождения невелик. Но засиживаться на них не стоит, а то так и будешь до конца дней собирать и пересобирать этот конструктор.

После Arduino стоит перейти на STM. Для простеньких проектов бери восьмибитные чипы, для более сложных — 32-битные, и будет тебе счастье. И помни, что микроконтроллер — это уже не процессор, но еще не компьютер.

Похожие публикации