Устройства на микроконтроллерах своими руками: Микроконтроллеры

Содержание

avr

8-ми битные микроконтроллеры RISC-архитектуры фирмы Atmel. В AVR используется гарвардская архитектура

Устройство отображения аудио спектра

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

Автор: noauthor

0 4.3 [1]
Похожие статьи:

Простой тач-сенсор

Тач-сенсоры (датчики касания) бывают разных принципов действия, например резистивный (проводящие пленки), оптический (инфракрасный), акустический (SAW), емкостной и т.д. Данный проект является экспериментом с емкостным датчиком касания. Используется AVR микроконтроллер.

Автор: noauthor

4 0
[0]

Новогодняя ёлка своими руками на МК

Накануне Нового Года хочется сделать что-нибудь праздничное! А самое лучшее украшение дома — это всеми любимая елка. В статье описывается изготовление ёлки и блока управления световыми эффектами на микроконтроллере ATmega8

Автор: avis_rara

5 0 [0]
Похожие статьи:

Разгон ATmega328 (30 МГц)

Этот проект больше ориентирован на получение удовольствия, чем на что то полезное (или нет), так как ATmega328 не была предназначена для тактовой частоты выше 20 МГц (см. даташит). Поэтому, 30 МГц это очень далеко от предела. 🙂

Автор: alecs

1 4 [3]

Частотомер на AVR

Это достаточно простая конструкция частотомера. Основа схемы — микроконтроллер ATmega8. Измерение частоты в пределах 0-9999 Гц

Автор: zeconir

8 0 [0]
Похожие статьи:

Автомобильные часы — вольтметр на ATtiny261

Этот простой прибор предназначен для установки в автомобиль и включает в себя функции отображения времени и напряжения бортовой сети в пределах 10… 16B.

Автор: u33

7 0 [0]

Схемы на микроконтроллерах, самодельные устройства и программаторы (Страница 2)


Схемы двух телеграфных E-CW-ключей на МК PIC12F675

Две схемы самодельных телеграфных ключей E-CW, которые выполнены на микроконтроллерах PIC12F675. Несколько необычное название телеграфного ключа E-CW родилось в процессе написания статьи и поиска автором описаний аналогичных устройств в Интернете. Как правило, большая часть статей имела названия …

1 203 0

Самодельная бегущая строка, установка текста через компьютерную клавиатуру

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

1 355 0

Самодельный генератор качающейся частоты (ГКЧ) с индикатором АЧХ

Схема самодельного генератора качающейся частоты (ГКЧ) с жидкокристаллическим индикатором АЧХ. Этот прибор создан на базе двух конструкций — функционального генератора и карманного осциллографа, описания которых опубликованы ранее в нашем журнале. С его помощью можно определить резонансную частоту .

..

1 839 0

Дублирующий электронный счетчик показаний использования воды (PIC16F84A)

Предлагаемое устройство даёт возможность постоянно дублировать показания квартирных счётчиков расхода горячей и холодной воды, часто установленных в весьма неудобных для снятия показаний местах. Его же можно применить и для других целей, например, как счётчик витков, деталей на конвейере …

1 206 0

Схема светодиодного куба 5x5x5, описание и конструкция (на МК PIC16F877A)

Схема сборки светодиодного куба 5x5x5 своими руками, ее основа — микроконтроллер PIC16F877A, куб трехмерный, содержит 5 уровней по 25 светодиодов. Автор этой статьи предлагает несложный по схеме вариант. В нём реализованы десять сменяющихся циклически придуманных автором световых эффектов плюс …

1 167 0

Дистанционное управление на ИК-лучах (Arduino UNO)

Была поставлена задача сделать систему дистанционного управления на ИК-лучах, использующую готовый пульт ДУ, и позволяющую включать и выключать четыре нагрузки независимо друг от друга. При этом было необходимо, чтобы система не конфликтовала с имеющейся дома аппаратурой, то есть, аппаратура …

0 138 0

Таймер для насоса отопления на микроконтроллере (Arduino UNO)

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

1 159 0

Управление дачным декоративным фонтаном на Arduino UNO

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

Разработка электроники. О микроконтроллерах на пальцах / Хабр

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

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

Краткое содержание статьи:


Как микроконтроллеры завоевали мир
Архитектура ARM — сегодняшний лидер рынка микроконтроллеров
Конкуренция с младшими братьями
Об укладке асфальта, пользе сна и его разновидностях
Совсем коротко о технологии изготовления и о том, как появляются серии микроконтроллеров
Периферия простейшего ARM микроконтроллера за пол бакса
Самый дешёвый способ получить дополнительные функции
А что добавит переход на Cortex-M4, кроме возросшей в пару раз цены?
Cortex-M7 — когда хочется большего…

Защита кода, возможность его обновления и многообразие помогли микроконтроллерам завоевать мир

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

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

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

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

Да это стоит денег, но содержание FLASH памяти сегодняшних микроконтроллеров настолько хорошо защищено, что попытки грубого “взлома” обойдутся ещё дороже. Кроме того, решается проблема интеллектуальной собственности, а вы, вместе с исходными кодами программы, получаете возможность развивать и совершенствовать своё устройство.

Память программ, в современных универсальных микроконтроллерах, является перезаписываемой, причём процесс перезаписи можно повторять не один десяток тысяч раз. Напрашивается использование этого факта для обновления программного обеспечения с целью устранения найденных в нём ошибок или расширения функций уже работающего устройства. Это достаточно просто реализовать — добавив в программу специальный участок кода под названием “бутлоадер”, вы получаете возможность обновлять программное обеспечение вашего прибора различными способами: в пункте сервисного обслуживания (если устройство имеет специальный, скрытый внутри корпуса от посторонних глаз, разъём), подключив к компьютеру по USB, через сетевой или даже беспроводной интерфейс.

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

Архитектура ARM — сегодняшний лидер рынка микроконтроллеров

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

Микроконтроллеры(MCU), в зависимости от архитектуры вычислительного ядра, принято разделять на крупные семейства. На сегодняшний день, для разработок устройств малой и средней сложности, наиболее популярны микроконтроллеры c ядрами от Cortex-M0 до Cortex-M7. Чем больше цифра, тем больше вычислительные (и не только) возможности, цена и максимальное энергопотребление. Не последнюю роль в популярности ARM сыграла преемственность архитектуры. Разработчик может с минимальными издержками модифицировать программный код своих предыдущих наработок, переходя от микроконтроллеров одного производителя к чипам другого и мигрируя между ядрами с разной производительностью.
Конкуренция с младшими братьями

Однако ARMы «рулили» не всегда. Я хорошо помню времена, когда абсолютными лидерами рынка были 8 битные микроконтроллеры и, с занятых позиций, их безуспешно пытались оттеснить 16 битные коллеги, но, по иронии судьбы, удалось сделать это только 32 битным старшим братьям. Так сложилось, что к моменту их появления, технологии изготовления чипов сильно удешевили интеграцию в них больших объёмов FLASH памяти. Воспользовавшись удобным случаем, программисты стали переходить с ассемблера на язык более высокого уровня — Си, структура которого отлично ложилась на 32 битную архитектуру. В результате 32 битные микроконтроллеры выполняли вычисления гораздо быстрее своих 8 и 16 битных коллег, но была одна проблема — у них был выше ток потребления.

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

Известно, что средний ток потребления вычислительного ядра микроконтроллера существенно увеличивается с поднятием его тактовой частоты. Поначалу 8 битные модели микроконтроллеров отличались заметно меньшим потреблением при сходной частоте и, кроме того, были способны работать от низкой тактовой частоты, вплоть до 32 кГц.

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

На короткое время сложился паритет — 32 битные MCU захватили нишу топовых приложений, а 8 битные уверенно удерживали позиции в устройствах, для которых было важно низкое энергопотребление. Он сохранялся до тех пор, пока 32 битные MCU не освоили в совершенстве «импульсный» режим работы.

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

Об укладке асфальта, пользе сна и его разновидностях

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

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

Можно просто вздремнуть. В этом случае наш чип всегда наготове и как только зазвенел будильник таймера или его потревожило внешнее прерывание, он просыпается практически мгновенно. Как человек во время дремоты может снять напряжение, но не выспаться толком, когда тебя постоянно дёргают, так и микроконтроллер может снизить своё энергопотребление в этом режиме “всего” раз в 10, называют этот режим SLEEP.

Лучший способ хорошо выспаться — раздеться, лечь в постель, задёрнуть шторы на окне и включить будильник. Однако, после такого сна, уже моментально в работу не включишься. Придётся, как минимум, предварительно ополоснуться холодной водой и одеться. Есть такой режим и у микроконтроллера, когда он ограничивает количество внешних раздражителей и выключает основной тактовый генератор. Это режим STOP. В нём можно уменьшить потребление в 1000 раз, но и на выход из него уже потребуется существенное время.

Теперь, представьте себе, что вы перед сном выпили изрядную дозу снотворного, отключили будильник и телефон, закрыли все окна и двери. Это будет режим STAND BY. Вывести из такого режима микроконтроллер можно только с помощью особых выводов и большая часть памяти о том, чем он занимался перед таким сном будет потеряна навсегда, придётся начинать работу заново. Зато находясь в таком режиме MCU потребляет ещё в два раза меньше.

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

Выбирая режим экономии энергопотребления необходимо помнить о последствиях применения:

  • чем глубже сон, тем дольше пробуждение
  • чем глубже сон, тем меньше способов вывести из него микроконтроллер
  • чем глубже сон, тем меньше остаётся информации о предыдущем состоянии микроконтроллера
  • для достижения минимальных заявленных значений, во многих режимах необходимо принимать дополнительные меры, например — отключения периферии
  • для минимизации энергопотребления устройства в целом необходимо грамотно спроектировать схемотехнику всего устройства
  • для минимизации энергопотребления устройства в целом, нужно позаботиться о том, чтобы остальные компоненты и цепи также имели микропотребление в неактивном режиме. Глупо предпринимать огромные усилия для того, чтобы опустить потребление микроконтроллера ниже одного микроампера и, при этом, применять в устройстве дешёвый стабилизатор с током собственного потребления в 100 микроампер но встречается такое сплошь и рядом
  • для успешного использования режимов глубокого сна не только программа, но и схемотехника, должны быть тщательно продуманы, иначе, вместо экономии, можно получить весьма серьёзные проблемы — редко случающееся, зато “мёртвое” зависание устройства по необъяснимой причине, либо слишком частое пробуждение и, как результат, потребление на порядки выше ожидаемого


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

Физически активная часть микроконтроллера, как и подавляющее количество других микросхем, обычно сформирована на пластине монокремния (назовём его, в данном контексте, ЧИП). Чипы занимают очень маленькую площадь, технологически же выгодно производить пластины большого диаметра, поэтому, обычно большое количество чипов, как соты, размещают на одной большой пластине и формируют, в ходе одного технологического процесса. В последствии пластины нарезают на кусочки, получая уже отдельные чипы, которые и помещают в корпуса. Разработка топологии и отладка технологических процессов нового чипа стоит очень дорого, а занимаемое на пластине одним чипом место, как правило, не велико. Производителям выгодно выпускать чипы крупными партиями, но пользователям требуются микроконтроллеры в разных корпусах — кому то важно получить корпус поменьше и подешевле, другому наоборот требуется побольше выводов, чтобы управлять LCD или внешней памятью с параллельным интерфейсом. Производителям выгодно перекрывать все ниши, чтобы клиенты не перебегали к конкурентам, не найдя оптимальной для себя модели.

Очень часто бывает выгодней выпустить крупной партией один универсальный чип и помещать его в разные корпуса, чем запускать десяток различных. У чипов, помещённых в корпуса с малым количеством выводов, часть портов (в данном контексте, под портами будем понимать контактные площадки на поверхности чипа, служащие для общения с внешним миром) просто останутся неподсоединёнными. Часто производители идут дальше — чтобы поднять спрос и цену на микроконтроллеры с большим количеством ножек, они искусственно обрезают функциональность тех, у которых их меньше — отключают некоторые функции, ограничивают объём доступной памяти и т. п.

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


Так из одного стандартного дизайна чипа формируется целая серия микросхем.
Периферия простейшего ARM микроконтроллера за пол бакса

Процессорное ядро — это мозг, но, чтобы он не был подобен “сферическому коню в вакууме”, требуются аналоги органов чувств и конечностей.

В микроконтроллере их роль играют выводы на корпусе, к которым внутри корпуса могут подключаются порты(контактные площадки) чипа. В свою очередь, через внутренние коммутаторы, к одному и тому же порту могут подключаться различные периферийные модули.
Для начала рассмотрим периферию одной из простейших серий от ST на основе ядра Cortex-M0 — stm32F03.

Для этой серии имеем следующий набор базовых функций:
Часы реального времени (Real Time Clock или RTC), которые могут запитываться с помощью отдельного вывода и работают от отдельного низкочастотного резонатора. Этот модуль потребляет крайне мало энергии, в случае пропадания основного питания он может часами работать от заряженного конденсатора, или годами от маленькой встроенной в прибор батарейки. Кроме этого, он может служить в качестве будильника, выводя микроконтроллер из состояния даже самого глубокого сна в заранее заданное время.

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

Универсальные цифровые входы-выходы (General Purpose Input-Output GPIO) — это самая распространённая функция, которую поддерживают большинство выводов микроконтроллера. Они могут конфигурироваться либо как входы, либо как выходы.

Рассмотрим работу в качестве входа. Если напряжение на входе микроконтроллера меньше некоего порога (как правило близкого к половине питания), то оно воспринимается как логический ноль, в противном случае как 1. Цифровые входы обычно имеют очень высокое входное сопротивление, поэтому, если их оставить не подключенными, их состояние может скакать из нуля в единицу и обратно, под действием наводок электромагнитных полей. Для того, чтобы этого не происходило, существуют специальные режимы, когда внутри чипа вход соединяется через сопротивление 20 — 50 КОм с плюсом питания микроконтроллера (pull-up) или с минусом (pull-down).

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

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

На рисунке выше изображён участок схемы, спроектированного мной устройства (спутникового модема), с элементами простейшей защиты портов микроконтроллера. X4 — разъём для внешних коммуникаций. Нас интересуют контакты 5-7, к которым присоединяются тревожные кнопки. Сигналом тревоги служит замыкание на землю, поэтому, в нормальном состоянии, на портах должно присутствовать напряжение питания микроконтроллера, что и обеспечивают резисторы R24-R26, номиналом 1 КОм. Супрессоры VD4-VD6 ограничивают напряжение на уровне 5 вольт, это допустимо потому, что применяемый мной микроконтроллер, хотя и питается напряжением 3,3 вольта, но имеет порты толерантные к напряжению 5 вольт. Резисторы R29-R31 на 100 Ом.
Подобная защита спасёт порты вашего микроконтроллера от внешних перенапряжений. У некоторых микроконтроллеров отдельные порты не боятся напряжений, превышающих их напряжение питания. Так у многих микроконтроллеров STM32Fxx почти все порты будучи сконфигурированными как цифровые могут работать с 5 вольтовыми цепями, но если они работают в аналоговом режиме, например в качестве входа АЦП, теряют эту способность и это необходимо учитывать при разработке схемы.

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

Существует ещё один лайфхак. Иногда их можно оставить входом и замкнуть на другую цепь. Это помогает в случае очень плотной трассировки провести проводник «сквозь» микроконтроллер, что особо актуально для двухслойных плат.

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


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

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

Интерфейсы обмена данными Различные микроконтроллеры данной серии могут иметь по нескольку наиболее распространённых интерфейсов, сильно облегчающих общение с другими чипами и внешним миром:

  • USART — асинхронный последовательный порт, часто использующийся для связи с компьютером там он называется COM или RS232, модемами и другими устройствами
  • SPI — высокоскоростной интерфейс, который имеют очень многие чипы, например внешняя память
  • I2C — двухпроводной интерфейс, разработанный для общения с датчиками и другой периферией на небольшом расстоянии и небольших скоростях обмена. Большой его плюс заключается в том, что одновременно к одной шине можно подключить десятки различных устройств

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

Аналого-цифровой преобразователь АЦП или ADС на котором придётся остановиться подробнее.

Чрезвычайно полезный модуль, который способен измерять напряжение аналоговых сигналов. Оценивает он их в долях от величины опорного источника сигнала, в нашем случае это напряжения питания аналогового модуля микроконтроллера, которое может быть равным или немного ниже основного напряжения питания чипа. Теоретическая точность работы АЦП зависит от его разрядности. В современных микроконтроллерах чаще всего применяется 12 разрядный АЦП последовательного приближения, реже 10 и как экзотика встречается 16.

При питании 3 вольта 12 разрядный АЦП микроконтроллера будет иметь разрешающую способность 3/4096=0. 00073 Вольта — лучше одного милливольта.

Но на практике достичь этого идеала бывает не просто.

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

импульсные помехи по питанию АЦП
  • подключать аналоговое питание к цифровому через простейшие фильтры низкой частоты — подавать питание на аналоговую часть MCU через индуктивность и в непосредственной близости от входа микроконтроллера устанавливать керамический конденсатор с диэлектриком XR7 ёмкостью 100 нанофарад, а ещё лучше, параллельно ему включить танталовый конденсатор с ёмкостью в одну — две микрофарады.

импульсные помехи на входе АЦП
  • пропускать входной сигнал хотя бы через простейший ФНЧ, состоящий из резистора и конденсатора. Для борьбы с помехами от передающих радиотрактов и короткими импульсными помехами иногда достаточно одиночного конденсатора с диэлектриком NP0 ёмкостью в несколько десятков пикофарад, установленного между входом и землёй, в непосредственной близости от входа АЦП
  • не экономить на блокировочных конденсаторах, по крайней мере самого микроконтроллера, устанавливать их в непосредственной близости от каждого вывода питания и в других местах, рекомендованных производителем, рекомендованного им номинала
  • тщательно выбирать месторасположение компонентов и соблюдать правила трассировки цепей питания и особенно “земли”, в идеале аналоговая и цифровая земли должны соединяться в одной точке — рядом с выводом аналоговой земли микроконтроллера

высокое выходное сопротивление источника сигнала, опасно тем, что в момент старта измерения АЦП последовательного приближения, которое чаще всего используется в микроконтроллерах, его вход потребляет некоторый отличный от нуля ток и это может привести к уменьшению истинного значения напряжения, так как сигнал фактически подаётся через делитель напряжения.
  • правильно выбирать параметры настройки АЦП, например во многих микроконтроллерах можно увеличить время зарядки входной цепи, правда тут приходится идти на компромисс, снижая быстродействие
  • устанавливать на входе АЦП буферные усилители на основе ОУ (операционный усилитель), или повторители напряжения. Выбирать их по принципу самых дешёвых не стоит, можно не улучшить, а ухудшить ситуацию, причём значительно. Если не хватает собственного опыта, лучше поискать специально рекомендованные производителями для подобных приложений

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

От цепи VBUT питается вся цифровая часть микроконтроллера. На всякий случай привожу номиналы элементов: R5-10 Ом, С10 0.1 мкФ, без индуктивностей L1 и L2 BLM18PG471SN1D в большинстве случаев можно обойтись.

Ещё один любопытный пример из моей практики. В плате, на которой размещалось большое количество высокопотребляющих чипов ASIC, необходимо было измерять их температуру. Самый простой и дешёвый способ — использование высокоомных термисторов. В качестве фильтров я применил конденсаторы достаточно большой ёмкости, воспользовавшись тем фактом, что температура меняется сравнительно медленно. Для оцифровки звука такой фокус однозначно бы «не прокатил».

Осталось упомянуть ещё одну важную особенность АЦП, характерную для микроконтроллеров. Собственно, модулей АЦП в нём, как правило, один или два, а вот входов может быть много. В описываемой серии модуль 1, а входов может быть до 16. Как же так? Очень просто, входы подсоединены к нему через коммутатор. Если вы собираетесь измерять напряжение с 10 входов, то должны организовать цикл — последовательно переключить коммутатор к каждому из 10 входов и сделать измерение. Это необходимо учитывать, рассчитывая времена измерения. В данной серии АЦП, теоретически, способно сделать измерение за 1 микросекунду. Получается, что полный цикл 10 измерений у вас займёт точно больше 10 микросекунд!


Система прямого доступа в память ПДП или DMA — ещё одна архиважная вещь. Этот модуль позволяет пересылать данные от периферии в память или наоборот.

Например, с его помощью вы можете выделить участок памяти для хранения данных, приходящих из АЦП и сделать из него кольцевой буфер. Далее запускается АЦП в режиме считывания данных через равные промежутки времени. Используя механизмы DMA, считанные данные будут, без участия ядра, самостоятельно, байт за байтом, помещаться в выделенный буфер. Когда буфер будет полностью заполнен, ядро получит сигнал и приступит к их программной обработке, а система DMA начнёт процесс загрузки сначала. Поскольку DMA имеет несколько каналов, то никто не мешает реализовать для нашего случая автоматический вывод на USART данных из буфера. В результате мы получим, работающий без использования ядра процесс передачи считанных с АЦП в USART, и не простая работа программиста по конфигурации DMA окупится сторицей.

Модуль широтно-импульсной модуляции ШИМ или PWM, в силу ограниченности статьи не будем останавливаться на нём подробно, отмечу только, что это крайне полезная и широко используемая функция, с помощью которой возможно управлять яркостью светодиодов, скоростью вращения двигателей, рулевыми машинками, конструировать интеллектуальные DC-DC преобразователи и даже звук синтезировать.

Что можно получить, добавив 30 центов?

Переход на Cortex-M0+. Самый дешёвый способ получить дополнительные функции

А какие дополнительные плюшки предлагает микроконтроллер новейшей серии с ядром чуть посовременнее Cortex-M0+, при стоимости на 20-50 центов дороже аналогов в рассмотренной выше серии по корпусу и количеству выводов?

Таблица отличий между сериями

  • в два раза увеличилась максимальная тактовая частота
  • с 2 до 1. 7 вольт понизилось минимальное напряжение питания
  • АЦП способно работать в два с половиной раза быстрее
  • появились два канала 12 битного цифро-аналогового преобразователя. Это крайне полезная функция, с помощью которой возможно формировать на выводах сигнал заданного напряжения с точностью лучшей чем 1 мВ, например сигналы произвольной формы в звуковом диапазоне частот
  • появились компараторы — устройства для сравнения величин двух аналоговых сигналов, это бывает полезным скажем для определения момента возникновения перегрузки по току
  • добавлен USB интерфейс, посредством которого можно подключать устройства к компьютеру. Особый интерес вызывает наличие поддержки опций управления питанием для реализации USB type3-C совместимого интерфейса. О нём я рассказывал в одной из своих статей на Хабре
  • появился ускоритель AES для процедур 256 битного шифрования/дешифрации
  • UART получил возможность работы в режимах сна и аппаратную поддержку протоколов LIN (простая сеть, широко используется в автопроме), IRDA (протокол передачи данных посредством инфракрасных светодиодов, вспомните телевизионные пульты), SIMcard…
  • расширены возможности таймеров и модуля PWM
  • верхняя граница температурного диапазона работы поднялась до 125 градусов
  • увеличена надёжность работы за счёт расширения режимов перезапуска при возникновении проблем с питанием
  • добавлен “честный” аппаратный генератор случайных значений — полезная функция в криптографии

Ну что же, для многих применений незначительная добавка в цене себя вполне окупает, поскольку можно отказаться от перехода на более дорогостоящие микроконтроллеры старших модельных рядов.
А что добавит переход на Cortex-M4, кроме возросшей в пару раз цены?

  • Максимальная тактовая частота вырастает уже до 80 МГц
  • Появился блок для ускорения вычислений с плавающей точкой
  • Ясное дело, максимальная встроенная память увеличилась
  • Модели с количеством ног 100 и более поддерживают работу с внешней статической памятью
  • USB научился работать в режиме HOST
  • Появился контроллер CAN интерфейса. Это очень перспективный интерфейс разработанный для высоконадёжных приложений. Своё победное шествие он начал с автомобильной промышленности и уже почти 20 лет ведёт затяжную войну с давно устаревшим RS-485 в крайне консервативной отрасли промышленной автоматизации.
  • Появился интерфейс для подключения SDcard. Очень полезная функция — добавляете в своё устройство держатель за 50 центов и получаете съёмный носитель размером в десятки Гигабайт! С большинством карт удаётся работать и по обычному SPI, но намного медленнее
  • Добавили встроенный Операционный Усилитель с большим разнообразием режимов работы. Именно благодаря этой и предыдущей функциям, для своего последнего проекта беспроводного стетоскопа, пришлось остановить выбор на M4 вместо M0+. В результате появилась возможность управлять усилением сигнала с MEMS микрофона и сохранять десятки часов аудиозаписей работы сердца на SD карте
  • Криптомодуль научился аппаратно считать HASH функции.
  • Контроллер сенсорных приложений усовершенствован и теперь поддерживает уже не только кнопки, но и элементы прокрутки

Cortex-M7 — когда хочется большего…

В подавляющем количестве проектов возможностей предоставляемых вышеописанными ядрами достаточно, но случаются и исключения. Лично со мной такое случалось всего пару раз, причём лишь один раз по действительно уважительной причине — требовалась высокая производительность для подготовки данных для ASIC, контроллер Ethernet и шина CAN-FD c повышенной скоростью обмена.

Если на уровне универсальных микроконтроллеров с ядрами Cortex 4 и ниже, на мой субъективный взгляд, по параметру цена/функциональность сейчас лидирует фирма ST, то в области более высокопроизводительных чипов она уступает лидерство ATMEL, вернее, теперь уже недавно поглотившему его MICROCHIP. Поэтому я остановил свой выбор на серии ATSAMV71, стоимостью от 6 долларов.

Помимо вышеописанного (контроллер Ethernet и шина CAN-FD), по большому счёту, мы получаем, существенно увеличивающее производительность ядро с ускорителем операций, работающее на тактовой частоте до 300 МГц, интерфейсы для подключения видеоматрицы и поддержку динамической памяти.

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

Самоделки своими руками на микроконтроллере / Хабр

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

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

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

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

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

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

При подаче на девятую ножку звукового модуля низкого сигнала, модуль начинал воспроизводить. Как только звук воспроизводился на пятнадцатой ноге звукового модуля, устанавливается низкий уровень. Благодаря этому микроконтроллер отслеживал воспроизведение звука.

Поскольку я реализовал паузу между циклами воспроизведения звука, то для остановки воспроизведения звука программа подает низкий уровень на первую ножку звукового модуля (reset). Звуковой модуль является законченным устройством со своим усилителем для звука, и, по большому счету, в дополнительном усилителе звука он не нуждается. Но мне данного усиления звука показалось мало, и в качестве усилителя звука я применил микросхему TDA2822M. В режиме воспроизведения звука потребляет 120 миллиампер. Учитывая, что поимка птицы займет какое-то время, в качестве автономной батареи питания я применил не совсем новый аккумулятор от бесперебойника (всё равно валялся без дела).
Принцип электронного птицелова прост, и схема состоит в основном из готовых модулей.

Программа и схема — atmel-programme.clan.su/Levushka.zip

Работу данного устройства можно посмотреть на видео.

На микроконтроллере » Автосхемы, схемы для авто, своими руками

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

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

Плавное включение и выключение светодиодов в любом режиме (дверь открыта, и плафон включен). Так же авто выключение через пять минут. И минимальное потребление тока в режиме ожидания.

Вариант 1 — Коммутация по минусу. (с применением N-канальных транзисторов) 1) «коммутация по минусу», т.е такой вариант при котором один питающий провод лампы соединен с +12В аккумулятора (источника питания), а второй провод коммутирует ток через лампу тем самым включает ее. В данном варианте будет подаваться минус. Для таких схем нужно применять N-канальные полевые транзисторы в качестве выходных ключей.

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

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

Изначально в Lifan Smily (да и не только) режим работы заднего дворника — единственный, и называется он «всегда махать». Особенно негативно воспринимается такой режим в наступивший сезон дождей, когда на заднем стекле собираются капли, но в недостаточном для одного прохода дворника количестве. Так, приходится либо слушать скрип резины по стеклу, либо изображать робота и периодически включать-выключать дворник.

Немного доработал схему реле времени задержки включения освещения салона для автомобиля Форд (схема разрабатывалась для вполне конкретного автомобиля, как замена штатного реле Ford 85GG-13C718-AA, но была успешно установлена в отечественную «классику»).

Уже не первый раз проскакивают такие поделки. Но почему-то люди жмуться на прошивки. Хотя в большинстве своём они основаны на проекте elmchan «Simple SD Audio Player with an 8-pin IC». Исходниник не открывают аргументируя, что пришлось исправлять проект, что в у меня качество лучше… и т.д. Короче взяли open source проект, собрали, и выдаёте за своё.

Итак. Микроконтроллер Attiny 13- так сказать сердце данного устройства. С его прошивкой долго мучился, никак не мог прошить.Ни 5ю проводками через LPT, ни прогромматором Громова. Компьютер просто не видит контроллер и все.

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

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

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

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

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

Разработка устройств на микроконтроллерах

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

Получить курс!

Получить курс!

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

Однако аппетит приходит во время еды. И наверняка вам хочется чего-то большего. Наверняка вам хочется шагнуть на уровень профессионала. Ну хотя бы на первую ступеньку…

>>> Шагнуть на уровень профессионала >>>

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

Мы живём удивительном мире, который наполнен разными интересными творениями природы, событиями, людьми, которые в свою очередь, наполняют этот мир событиями, новыми людьми и всеми сопутствующими вещами. Например, звуками.

Даже когда человек ещё не умел говорить, он уже мог воспроизводить какие-то звуки. А сегодня человек умеет не только говорить, но и создавать говорящие системы.

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

Разумеется, разговаривают они не сами по себе, а в соответствии с алгоритмами программы, которая в них заложена. Эта программа выполняется микроконтроллером.

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

Всё это, конечно, сложно. Но чертовски интересно…

>>> Научиться создавать говорящие устройства >>>

В наше время беспроводные технологии обмена данными используются очень широко. Wi-Fi, RFID, Bluetooth — это только самые известные технологии, которые приходят сразу на ум, и которыми сегодня пользуются миллиарды людей.

И эти миллиарды людей используют миллиарды устройств, которые непрерывно что-то передают и что-то получают по беспроводным каналам связи.

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

Потому что это уже не будущее — это наше настоящее, без которого жизнь современного человека кажется немыслимой…

>>> Научиться выполнять обмен данными по беспроводному каналу >>>

А вдруг вам захочется создать свой смартфон?

На первый взгляд, это кажется непосильной задачей. Но…

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

Это я к тому, что на самом деле ничего невозможного нет. Было бы желание.

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

Однако эта задача оказывается на деле не такой уж и сложной, если немного подсмотреть, как её решает мастер своего дела…

>>> Подсмотреть за мастером >>>


Микроконтроллеры для ЧАЙНИКОВ

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


Обзор микроконтроллера Ardunio с принципом работы и дизайном

Определение Arduino

На самом деле Arduino — это комплект на основе микроконтроллера, который можно использовать либо напрямую, купив его у поставщика, либо изготавливать дома с использованием компонентов благодаря открытому исходному коду аппаратная особенность. Он в основном используется для связи, а также для управления или управления многими устройствами. Он был основан Массимо Банци и Дэвидом Куартиеллесом в 2005 году.

Архитектура Arduino:

Процессор Arduino в основном использует архитектуру Гарварда, где программный код и программные данные имеют отдельную память.Он состоит из двух запоминающих устройств — памяти программ и памяти данных. Код хранится во флэш-памяти программ, а данные хранятся в памяти данных. Atmega328 имеет 32 КБ флэш-памяти для хранения кода (из которых 0,5 КБ используется для загрузчика), 2 КБ SRAM и 1 КБ EEPROM и работает с тактовой частотой 16 МГц.


Архитектура Arduino

Схема выводов Arduino

Типичным примером платы Arduino является Arduino Uno. Он состоит из 28-контактного микроконтроллера ATmega328.

Схема выводов Arduino

Arduino Uno состоит из 14 цифровых входов / выходов (из которых 6 могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевого генератора 16 МГц, USB-соединения, разъема питания, заголовка ICSP и кнопка сброса

Power Jack : Arduino может получать питание либо от ПК через USB, либо от внешнего источника, такого как адаптер или аккумулятор. Он может работать от внешнего источника питания от 7 до 12 В. Мощность может быть применена извне через вывод Vin или давая опорное напряжение через вывод IORef.

Цифровые входы : Он состоит из 14 цифровых входов / выходов, каждый из которых обеспечивает или принимает ток 40 мА. Некоторые из них имеют специальные функции, такие как контакты 0 и 1, которые действуют как Rx и Tx соответственно, для последовательной связи, контакты 2 и 3 — внешние прерывания, контакты 3,5,6,9,11, которые обеспечивают выход ШИМ, и контакты. 13, где подключен светодиод.

Аналоговые входы : Имеет 6 аналоговых входов / выходов, каждый из которых обеспечивает разрешение 10 бит.

ARef : обеспечивает ссылку на аналоговые входы

Reset : сбрасывает микроконтроллер при низком уровне.

Как запрограммировать Arduino?

Самым важным преимуществом Arduino является то, что программы могут быть загружены непосредственно в устройство, без необходимости использования аппаратного программиста для записи программы. Это происходит из-за наличия загрузчика 0,5 КБ, который позволяет записать программу в схему. Все, что нам нужно сделать, это загрузить программное обеспечение Arduino и написать код.

Окно инструментов Arduino состоит из панели инструментов с такими кнопками, как проверка, загрузка, создание, открытие, сохранение, мониторинг последовательного порта.Он также состоит из текстового редактора для написания кода, области сообщений, в которой отображается обратная связь, например, ошибок, текстовой консоли, которая отображает вывод, и ряда меню, таких как меню «Файл», «Правка», «Инструменты».

5 шагов для программирования Arduino

  • Программы, написанные на Arduino, известны как скетчи. Базовый скетч состоит из 3 частей.

1. Объявление переменных
2. Инициализация: записывается в функции setup ().
3. Управляющий код: Он записан в функции loop ().

  • Скетч сохранен с расширением .ino. Любые операции, такие как проверка, открытие эскиза, сохранение эскиза, можно выполнять с помощью кнопок на панели инструментов или с помощью меню инструментов.
  • Эскиз следует сохранить в каталоге альбомов.
  • Выберите подходящую плату из меню инструментов и номеров последовательного порта.
  • Нажмите кнопку загрузки или выберите загрузку в меню инструментов. Таким образом, код загружается загрузчиком в микроконтроллер.

Некоторые из основных функций Adruino:

  • digitalRead (вывод): Считывает цифровое значение на данном выводе.
  • digitalWrite (вывод, значение): записывает цифровое значение на данный вывод.
  • pinMode (pin, mode): Устанавливает вывод в режим ввода или вывода.
  • analogRead (контакт): считывает и возвращает значение.
  • analogWrite (вывод, значение): записывает значение на этот вывод.
  • serial.begin (скорость передачи): Устанавливает начало последовательной связи, устанавливая скорость передачи данных.

Как создать свой собственный Arduino?

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

  • Разъем IC и разъем питания смонтированы на плате.
  • Добавьте цепи регулятора 5 В и 3,3 В, используя комбинации регуляторов и конденсаторов.
  • Добавьте правильные подключения питания к контактам микроконтроллера.
  • Подключите вывод сброса гнезда IC к резистору 10 кОм.
  • Подключите кварцевые генераторы к контактам 9 и 10.
  • Подключите светодиод к соответствующему контакту.
  • Установите гнездовые разъемы на плату и подключите их к соответствующим контактам на микросхеме.
  • Установите ряд из 6 штыревых заголовков, которые можно использовать как альтернативу для загрузки программ.
  • Загрузите программу в микроконтроллер готового Adruino, а затем извлеките ее и поместите обратно в комплект пользователя.

7 причин, почему в наши дни предпочитают Arduino

  1. Это недорого
  2. Он поставляется с аппаратной функцией с открытым исходным кодом, которая позволяет пользователям разрабатывать свои собственные комплекты, используя уже имеющиеся в качестве справочного источника.
  3. Программное обеспечение Arduino совместимо со всеми типами операционных систем, таких как Windows, Linux, Macintosh и т. Д.
  4. Оно также поставляется с функцией программного обеспечения с открытым исходным кодом, которая позволяет опытным разработчикам программного обеспечения использовать код Arduino для слияния с существующими библиотеками языков программирования. и может быть расширен и изменен.
  5. Легко использовать для новичков.
  6. Мы можем разработать проект на основе Arduino, который может быть полностью автономным, или проекты, которые включают прямую связь с программным обеспечением, загруженным в компьютер.
  7. Поставляется с возможностью простого подключения к процессору компьютера с помощью последовательной связи через USB, поскольку он содержит встроенную схему питания и сброса.

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

Фото Кредит:

  • Схема выводов Arduino с Flickr

6 лучших альтернативных микроконтроллеров Arduino

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

Начало работы с Arduino: руководство для начинающих

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

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

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

1.NodeMCU: дешевая альтернатива Arduino

Одна из наших любимых плат в последнее время — крошечный, но универсальный NodeMCU.По размеру такая же, как у Arduino Nano и Pro Mini, эта плата имеет несколько дополнительных возможностей.

NodeMCU (также известный как ESP8266) может работать со знакомой архитектурой Arduino.Что делает его более универсальным, так это возможность программировать на Lua прямо на доске. Объедините это со встроенным Wi-Fi и аналогичной схемой контактов плат Arduino, и вы поймете, почему многие считают эти миниатюрные микроконтроллеры мощной альтернативой.

Помимо этой дополнительной функциональности реальным преимуществом здесь является цена.Они являются доступной альтернативой большей части линейки Arduino. Мы использовали один в нашем руководстве по освещению корпуса ПК, управляемому Wi-Fi, и почти для всех проектов DIY-электроники NodeMCU является идеальным союзником.

2.Teensy 3: быстрая альтернатива Arduino

Говоря о быстрых альтернативах Arduino, трудно найти что-то лучше, чем линейка плат Teensy.Теперь, на итерации 3.6, эти маленькие платы похожи по форме на меньшие платы Arduino Nano и Arduino Micro, но имеют скрытый эффект.

Последняя версия Teensy 3.6 использует 32-битный процессор ARM Cortex-M4 с тактовой частотой 180 МГц, что обеспечивает поразительный уровень вычислительной мощности для его размера. Последняя версия поставляется со встроенным слотом для карт памяти microSD для дополнительной памяти. Teensy также является жизнеспособной альтернативой с точки зрения стоимости: плата 3.6 стоит чуть более 30 долларов. YouTuber MickMake имеет подробное видео с тестированием платы и демонстрацией некоторых ее возможностей:

Как упоминалось в видео выше, и без того мощный встроенный процессор можно разогнать, что придаст еще больше скорости этой чудо-плате размером с пинту.Эти платы стали популярными для многих мастеров, поскольку они совместимы с Arduino IDE с использованием библиотеки Teensyduino. Это работает в тандеме с собственным программным обеспечением загрузчика Teensy, чтобы написание и загрузка кода были знакомы всем, кто работал с платами Arduino.

Teensy также работает как USB HID-устройство, во многом как Arduino Pro Micro.Это делает его идеальным для сборок, в которых требуется, чтобы плата распознавалась таким образом, как в нашем проекте пользовательских кнопок быстрого доступа.

Популярность досок Teensy растет, и легко понять почему!

3.MSP430 Launchpad: маломощная альтернатива Arduino

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

Решение этой проблемы можно найти в линейке плат MSP430.Уже более 15 лет рассматриваемая как альтернатива с низким энергопотреблением, многие пользователи сообщают, что рабочий ток потребляется в три раза ниже, чем у сопоставимых плат Arduino. Для ознакомления с MSP430 см. Вводное видео Бена Хека:

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

Если вы думаете о мощности, возможно, стоит взглянуть на MSP430!

Хотя почти все платы разработки, подобные Arduino, имеют множество применений, один новичок получает приз за то, что он самый универсальный.Эти платы, также известные как The Blue Pill в просторечии, похожи по размеру на Arduino Nano и Pro Micro. Совместимые с Arduino IDE, они покажутся знакомыми любому, кто раньше играл с платами Arduino. YouTuber Великий Скотт! имеет большое количество сходств и различий между Blue Pill и аналогичными платами Arduino.

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

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

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

5.PocketBeagle: альтернатива Linux

Хотя платы Arduino идеально подходят для простых интерфейсов и физического взаимодействия, иногда вам нужно немного больше.Именно здесь на помощь приходит PocketBeagle на базе Linux.

Некоторые из вас могут задаться вопросом, почему эта плата находится в этом списке, учитывая, что у нее гораздо больше общего с Raspberry Pi Zero, чем с любой платой Arduino.Хотя это правда, у PocketBeagle есть некоторые преимущества, которые делают его соперником.

PocketBeagle имеет пять аналоговых входов, 44 контакта GPIO и слот microSD.Эта крошечная плата для Linux невероятно универсальна и заслужила признание как Arduino, так и Raspberry Pi.

Если вам нужен микроконтроллер, который работает как Arduino, но имеет все преимущества полноценной встроенной операционной системы, PocketBeagle может быть тем, что вы ищете.

6.Сделай сам: Самодельная альтернатива

Если вы ищете действительно нестандартную бюджетную альтернативу Arduino, подумайте о создании своей собственной с нуля.

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

Это также сэкономит деньги по сравнению с ценой официальной платы Arduino, но, когда сейчас доступны гораздо более дешевые альтернативы и клоны Arduino, вам действительно нужно захотеть сделать свою собственную, чтобы оправдать это!

Какую альтернативу Arduino вы используете?

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

Сейчас существует так много вариантов для проектов домашней электроники, что почти наверняка найдется что-то идеальное для ваших нужд.Самое главное, получайте удовольствие!

И не забывайте о своих друзьях, которые любят проекты DIY, когда причитается подарок, вот несколько отличных идей подарков для поклонников Arduino:

Microsoft делает панель задач Windows 10 еще лучше… и это еще не все

В сборку Insider попало множество удобных функций.

Об авторе Ян Бакли (Опубликовано 203 статьи)

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

Больше От Яна Бакли
Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в письме, которое мы вам только что отправили.

определение микроконтроллера и синонимов микроконтроллера (английский)

Кристалл от Intel 8742, 8-битного микроконтроллера, который включает в себя ЦП с тактовой частотой 12 МГц, 128 байт ОЗУ, 2048 байт СППЗУ и ввод / вывод в том же чипе.

Микроконтроллер (иногда сокращенно µC , uC или MCU ) — это небольшой компьютер на единой интегральной схеме, содержащий ядро ​​процессора, память и программируемые периферийные устройства ввода / вывода.Программная память в виде NOR flash или OTP ROM также часто включается в чип, как и обычно небольшой объем RAM. Микроконтроллеры предназначены для встроенных приложений, в отличие от микропроцессоров, используемых в персональных компьютерах или других приложениях общего назначения.

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

используются в автоматически управляемых продуктах и ​​устройствах, таких как системы управления автомобильными двигателями, имплантируемые медицинские устройства, пульты дистанционного управления, офисная техника, бытовая техника, электроинструменты, игрушки и другие встроенные системы.Уменьшая размер и стоимость по сравнению с конструкцией, в которой используются отдельный микропроцессор, память и устройства ввода / вывода, микроконтроллеры делают более экономичным цифровое управление еще большим количеством устройств и процессов. Распространены микроконтроллеры смешанного сигнала, объединяющие аналоговые компоненты, необходимые для управления нецифровыми электронными системами.

Некоторые микроконтроллеры могут использовать четырехбитные слова и работать с тактовой частотой до 4 кГц для низкого энергопотребления (милливатт или микроватт).Как правило, они будут иметь возможность сохранять функциональность во время ожидания события, такого как нажатие кнопки или другое прерывание; энергопотребление во время сна (тактовая частота процессора и большинство периферийных устройств отключены) может составлять всего нановатт, что делает многие из них хорошо подходящими для длительных батарей. Другие микроконтроллеры могут выполнять критически важные для производительности роли, где им может потребоваться действовать больше как процессор цифровых сигналов (DSP) с более высокими тактовыми частотами и потребляемой мощностью.

История

Первым однокристальным микропроцессором стал 4-битный Intel 4004, выпущенный в 1971 году, а Intel 8008 и другие более мощные микропроцессоры станут доступны в течение следующих нескольких лет.Однако оба процессора требовали внешних чипов для реализации работающей системы, что увеличивало общую стоимость системы и делало невозможным экономичную компьютеризацию устройств.

Смитсоновский институт утверждает, что инженерам TI Гэри Буну и Майклу Кокрану удалось создать первый микроконтроллер в 1971 году. Результатом их работы стал TMS 1000, который поступил в продажу в 1974 году. Он сочетал в себе постоянную память, память для чтения / записи и процессор. и часы на одном кристалле и были нацелены на встраиваемые системы. [1]

Частично в ответ на существование однокристального TMS 1000, [2] Intel разработала компьютерную систему на микросхеме, оптимизированной для управляющих приложений, Intel 8048, первые коммерческие части которой были доставлены в 1977 году. Он объединил ОЗУ и ПЗУ на одном чипе. Этот чип будет использоваться в более чем миллиарда клавиатур ПК и других многочисленных приложениях. Тогда президент Intel Люк Валентер заявил, что микроконтроллер был одним из самых успешных в истории компании, и увеличил бюджет подразделения более чем на 25%.

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

В 1993 году введение памяти EEPROM позволило микроконтроллерам (начиная с Microchip PIC16x84) [1] [ требуется ] быстро электрически стирать без дорогостоящего пакета, необходимого для EPROM, что позволяет как быстрое прототипирование, так и Системное программирование.В том же году Atmel представила первый микроконтроллер с флэш-памятью. [3] Другие компании быстро последовали их примеру с обоими типами памяти.

Стоимость

со временем резко упала: самые дешевые 8-битные микроконтроллеры были доступны в количестве менее 0,25 доллара (тысячи) в 2009 году, [ цитата требуется ] и некоторые 32-битные микроконтроллеры примерно за 1 доллар за аналогичные количества.

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

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

Объемы

Около 55% всех продаваемых в мире процессоров — это 8-битные микроконтроллеры и микропроцессоры. По данным Semico, в 2006 году было продано более четырех миллиардов 8-битных микроконтроллеров. [4]

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

Микроконтроллер PIC 18F8720 в 80-выводном корпусе TQFP.

Встроенный дизайн

Микроконтроллер можно рассматривать как автономную систему с процессором, памятью и периферийными устройствами и использовать как встроенную систему. [5] Большинство микроконтроллеров, используемых сегодня, встроены в другое оборудование, такое как автомобили, телефоны, бытовые приборы и периферийные устройства для компьютерных систем.Хотя некоторые встроенные системы очень сложны, многие из них имеют минимальные требования к памяти и длине программы, без операционной системы и с низкой сложностью программного обеспечения. Типичные устройства ввода и вывода включают переключатели, реле, соленоиды, светодиоды, небольшие или настраиваемые ЖК-дисплеи, радиочастотные устройства и датчики данных, таких как температура, влажность, уровень освещенности и т. Д. Встроенные системы обычно не имеют клавиатуры, экрана, дисков, принтеров. или другие распознаваемые устройства ввода-вывода персонального компьютера и могут не иметь устройств взаимодействия с человеком любого типа.

Прерывания

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

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

Программы

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

Производители часто выпускают специальные версии своих микроконтроллеров, чтобы помочь при разработке аппаратного и программного обеспечения целевой системы.Первоначально они включали версии EPROM, которые имеют «окно» в верхней части устройства, через которое память программ может быть стерта ультрафиолетовым светом, готовая к перепрограммированию после программирования («прожига») и цикла тестирования. С 1998 года версии EPROM редки и были заменены EEPROM и flash, которые проще в использовании (можно стереть электронным способом) и дешевле в производстве.

Могут быть доступны другие версии, в которых доступ к ПЗУ осуществляется как к внешнему устройству, а не как к внутренней памяти, однако они становятся все более редкими из-за широкой доступности дешевых программаторов микроконтроллеров.

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

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

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

Другие особенности микроконтроллера

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

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

Многим встроенным системам необходимо считывать данные с датчиков, вырабатывающих аналоговые сигналы. Это предназначение аналого-цифрового преобразователя (АЦП). Поскольку процессоры созданы для интерпретации и обработки цифровых данных, то есть единиц и нулей, они не могут ничего делать с аналоговыми сигналами, которые могут быть отправлены на него устройством.Таким образом, аналого-цифровой преобразователь используется для преобразования входящих данных в форму, которую может распознать процессор. Менее распространенной функцией некоторых микроконтроллеров является цифро-аналоговый преобразователь (ЦАП), который позволяет процессору выводить аналоговые сигналы или уровни напряжения.

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

Специальный блок широтно-импульсной модуляции (PWM) позволяет ЦП управлять преобразователями мощности, резистивными нагрузками, двигателями и т. Д. Без использования большого количества ресурсов ЦП в жестких циклах таймера.

Блок универсального асинхронного приемника / передатчика

(UART) позволяет принимать и передавать данные по последовательной линии с очень небольшой нагрузкой на ЦП.Специальное встроенное оборудование также часто включает в себя возможности для связи с другими устройствами (микросхемами) в цифровых форматах, таких как I²C и последовательный периферийный интерфейс (SPI).

Высшая интеграция

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

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

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

Микроконтроллер — это отдельная интегральная схема, обычно со следующими характеристиками:

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

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

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

Архитектуры микроконтроллеров сильно различаются. Некоторые конструкции включают ядра микропроцессоров общего назначения с одной или несколькими функциями ПЗУ, ОЗУ или ввода-вывода, интегрированными в корпус. Другие конструкции специально созданы для приложений управления. Набор команд микроконтроллера обычно содержит множество инструкций, предназначенных для побитовых операций, чтобы сделать управляющие программы более компактными. [6] Например, универсальному процессору может потребоваться несколько инструкций для проверки бита в регистре и перехода, если бит установлен, тогда как микроконтроллер может иметь единственную инструкцию для обеспечения этой обычно необходимой функции.

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

обычно не имеют математического сопроцессора, поэтому арифметика с плавающей запятой выполняется программно.

Среда программирования

Изначально микроконтроллеры

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

Многие микроконтроллеры настолько причудливы, что им фактически требуются собственные нестандартные диалекты C, такие как SDCC для 8051, которые не позволяют использовать стандартные инструменты (например, библиотеки кода или инструменты статического анализа) даже для кода, не связанного с аппаратными функциями. Переводчики часто используются, чтобы скрыть такие мелкие причуды.

Для некоторых микроконтроллеров также доступна микропрограмма интерпретатора

. Например, BASIC на ранних микроконтроллерах Intel 8052; [7] BASIC и FORTH на Zilog Z8 [8] , а также на некоторых современных устройствах. Обычно эти интерпретаторы поддерживают интерактивное программирование.

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

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

Типы микроконтроллеров

По состоянию на 2008 год существует несколько десятков архитектур микроконтроллеров и производителей, включая:

  • Core процессоры ARM (многие производители)
  • Atmel AVR (8-разрядная версия), AVR32 (32-разрядная версия) и AT91SAM (32-разрядная версия)
  • Ядро M8C от Cypress Semiconductor, используемое в их PSoC (программируемая система на кристалле)
  • Freescale ColdFire (32-бит) и S08 (8-бит)
  • Freescale 68HC11 (8-бит)
  • Intel 8051
  • Infineon: 8, 16, 32 битные микроконтроллеры [9]
  • MIPS
  • Microchip Technology PIC, (8-битный PIC16, PIC18, 16-битный dsPIC33 / PIC24), (32-битный PIC32)
  • NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-бит), LPC900, LPC700 (8-бит)
  • Пропеллер Parallax
  • PowerPC ISE
  • Кролик 2000 (8-бит)
  • Renesas RX, V850, Hitachi H8, Hitachi SuperH (32-бит), M16C (16-бит), RL78, R8C, 78K0 / 78K0R (8-бит)
  • Silicon Laboratories Конвейерные 8-разрядные микроконтроллеры 8051 и 32-разрядные микроконтроллеры на базе ARM со смешанными сигналами
  • STMicroelectronics STM8 (8-бит), ST10 (16-бит) и STM32 (32-бит)
  • Texas Instruments TI MSP430 (16 бит)
  • Toshiba TLCS-870 (8 бит / 16 бит).

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

Задержка прерывания

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

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

Другие факторы, влияющие на задержку прерывания, включают:

  • Циклы, необходимые для выполнения текущих операций ЦП. Чтобы минимизировать эти затраты, микроконтроллеры, как правило, имеют короткие конвейеры (часто три инструкции или меньше), небольшие буферы записи и гарантируют, что более длинные инструкции можно продолжить или перезапустить.Принципы проектирования RISC гарантируют, что большинство инструкций занимают одинаковое количество циклов, помогая избежать необходимости в большинстве таких логических схем продолжения / перезапуска.
  • Длина любого критического участка, который необходимо прервать. Вход в критический раздел ограничивает одновременный доступ к структуре данных. Когда к структуре данных должен получить доступ обработчик прерывания, критическая секция должна заблокировать это прерывание. Соответственно, задержка прерывания увеличивается на время, на которое прерывание блокируется. Когда существуют жесткие внешние ограничения на задержку системы, разработчикам часто требуются инструменты для измерения задержек прерываний и отслеживания того, какие критические разделы вызывают замедление.
    • Один общий метод просто блокирует все прерывания на время критического участка. Это легко реализовать, но иногда критические разделы становятся слишком длинными.
    • Более сложный метод просто блокирует прерывания, которые могут инициировать доступ к этой структуре данных. Это часто основано на приоритетах прерываний, которые, как правило, не соответствуют соответствующим структурам данных системы. Соответственно, этот метод используется в основном в очень стесненных условиях.
    • Процессоры могут иметь аппаратную поддержку некоторых критических секций.Примеры включают поддержку атомарного доступа к битам или байтам в слове или других примитивов атомарного доступа, таких как примитивы исключительного доступа LDREX / STREX, представленные в архитектуре ARMv6.
  • Вложение прерывания. Некоторые микроконтроллеры позволяют прерываниям с более высоким приоритетом прерывать прерывания с более низким приоритетом. Это позволяет программному обеспечению управлять задержкой, давая критичным по времени прерываниям более высокий приоритет (и, следовательно, более низкую и более предсказуемую задержку), чем менее критическим.
  • Частота срабатывания.Когда прерывания происходят последовательно, микроконтроллеры могут избежать дополнительного цикла сохранения / восстановления контекста за счет оптимизации хвостового вызова.

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

Технология встроенной памяти микроконтроллера

С момента появления микроконтроллеров использовалось множество различных технологий памяти. Почти все микроконтроллеры имеют как минимум два различных типа памяти: энергонезависимую память для хранения микропрограмм и память чтения-записи для временных данных.

Данные

С самых ранних микроконтроллеров до сегодняшнего дня шеститранзисторная SRAM почти всегда используется в качестве рабочей памяти для чтения / записи, при этом в регистровом файле используется еще несколько транзисторов на бит. MRAM потенциально может заменить его, поскольку он в 4-10 раз плотнее, что сделает его более рентабельным.

В дополнение к SRAM некоторые микроконтроллеры также имеют внутреннюю EEPROM для хранения данных; и даже те, у которых их нет (или их недостаточно), часто подключаются к внешней последовательной микросхеме EEPROM (например, BASIC Stamp) или внешней микросхеме последовательной флэш-памяти.

Несколько последних микроконтроллеров, начиная с 2003 года, имеют «самопрограммируемую» флэш-память. [3]

Прошивка

Первые микроконтроллеры использовали ПЗУ по маске для хранения прошивки. Более поздние микроконтроллеры (такие как ранние версии Freescale 68HC11 и ранние микроконтроллеры PIC) имели кварцевые окна, которые позволяли ультрафиолетовому свету стирать EPROM.

Microchip PIC16C84, представленный в 1993 году, [10] был первым микроконтроллером, который использовал EEPROM для хранения прошивки.В том же году Atmel представила первый микроконтроллер, использующий флэш-память NOR для хранения прошивки. [3]

См. Также

Банкноты

Внешние ссылки

.

Author:

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

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