Из чего состоит микроконтроллер

Микроконтроллер – это такая микросхема, которая представляет собой мини-компьютер, предназначенный для выполнения различных функций. Данная микросхема работает в соответствии с заложенной в нее программой, которую создает программист. Микроконтроллер может в себе содержать различное количество так называемых периферийных модулей, которые определяю его возможности, а также стоимость. К периферии микроконтроллера относятся, например: АЦП (аналого-цифровой преобразователь), различные таймеры, аналоговый компаратор, UART (по простому говоря COM-порт), USB, CANи т.д. Но, как правило, любой микроконтроллер содержит следующие основные узлы:

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

  • Арифметико-логическое устройство (АЛУ или ALU);
  • Оперативная память (ОЗУ);
  • Постоянная память (ПЗУ);
  • Генератор тактовой частоты;
  • Порты ввода/вывода;
  • Таймеры;

Вот так выглядит упрощенная структурная схема микроконтроллера:

Сердцем микроконтроллера является арифметико-логическое устройство (АЛУ). АЛУ производит все арифметические и логические операции с двоичными данными. Бывают АЛУ различной разрядности: 8-, 16- или 32-разрядные. Например, если АЛУ 8-разрядное, то оно может провести операцию над двумя восьмиразрядными числами и выдать восьмиразрядный результат операции.

К арифметическим операциям относятся: сложение, вычитание, сравнение и т.д.

К логическим операциям относятся: операция умножения «И», сложения «ИЛИ», отрицания «НЕ», «исключающее ИЛИ», сдвиг вправо, сдвиг влево и т.д. Есть также операции, которые не относятся ни к логическим, ни к арифметическим, например сброс в «0» или установка в «1».

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

Однако, для нормальной работы микроконтроллера регистров общего назначения недостаточно, т.к., например, 32 байта – очень маленький объем памяти. Для того, чтобы можно было хранить больше информации, используется оперативно-запоминающее устройство (ОЗУ). Регистры общего назначения содержат данные, с которыми АЛУ работает в данный момент, а ОЗУ – остальные.

Команды, а точнее последовательность команд, которые выполняет АЛУ, хранятся в постоянно-запоминающем устройстве (ПЗУ). Обычно это Flash-память. Данная последовательность команд является ничем иным, как программой микроконтроллера, которую создает программист. Все команды находятся в ПЗУ по определенным адресам.

Микроконтроллеры это просто.#0 ЦПУ.

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

Данные из ПЗУ попадают в регистр команд. АЛУ постоянно «смотрит» содержимое регистра команд и если в нем появляется команда, то АЛУ сразу же начинает ее выполнять.

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

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

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

Основные узлы микроконтроллера

  • ОЗУ — как вы догадалить это оперативная память;
  • ПЗУ — постоянная память;
  • порты ввода/вывода;
  • генератор тактовой частоты;
  • таймеры;
  • АЛУ-арифметико-логическое устройтсво.

Структурная схема микрокнтроллера

Арифметико-логическое устройство

Основой любого МК является АЛУ, в этом узле производятся все возможные арифметические — сложение, вычитание, сравнение и логические операции. В зависимости от того с каким числом разрядов может работать МК , они бывают 8-ми, 16-ти и 32-разрядные.

Если например микроконтроллера имеет 8-ми разрядное АЛУ, то он может выполнить какую либо операцию только с 8-ми разрядными числами и выдать такой-же результат.

К логическим операциям относятся:

  • умножение-логическое «И»;
  • сложение — логическое «ИЛИ»;
  • отрицание — логическое «НЕ»;
  • исключающее «ИЛИ»;
  • сдвиг влево;
  • сдвиг вправо;

Также и МК есть и другого рода операции такие как сброс в «0» или установка в «1» которые не относятся ни к арифмитическим не к логическим операциям.

Подробнее о внутренних блоках микроконтроллера

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

JTAG Interface — важный интерфейс который позволяет производить внутреннюю отладку прямо в чипе используя блок внутренней отладки (OCD), без использования эмуляторов. Можно сказать что JTAG — это интерфейс для «железной» отладки микроконтроллера. Через JTAG-адаптер микросхема напрямую подключается к программному комплексу для программирования и отладки.

Используя данный интерфейс можно в пошаговом режиме выполнять программу прямо в микроконтроллере, смотреть как изменяется содержимое регистров, как мигают индикаторы и светодиоды что подключены к микроконтроллеру после каждого шага и т.п. Для подключения к JTAG интерфейсу достаточно 4-х проводников: TDI(Test Data In), TDO(Test Data Out), TCK(Test Clock), TMS (Test Mode Select).

JTAG интерфейс доступен далеко не во всех микроконтроллерах AVR, как правило таким вкусным дополнением обладают чипы у которых 40 и более лапок, а объем памяти доступен в размере не менее 16КБ. Для серьезных задач — серьезные материалы и инструменты. )

FLASH — память программ, энергонезависимое ПЗУ(постоянное запоминающее устройство) что выполнено по технологии FLASH. Здесь хранится программа, которая будет исполняться блоком ALU микроконтроллера. Флешь-память чипа можно многократно перезаписывать, тем самым меняя или дополняя программный код для выполнения. Данный тип памяти может сохранять записанные в нее данные в течение 40 лет, а количество возможных циклов стирания/записи может достигать 10000.

В зависимости от модели микроконтроллера размер FLASH-памяти может достигать 256 KБ.

Serial Peripheral Interface, SPI — последовательный периферийный интерфейс (SPI) который зачастую применяется для обмена данными между несколькими микроконтроллерами со скоростью до нескольких MГц (нескольких миллионов тактов в секунду).

Для обмена данными по SPI интерфейсу между двумя устройствами достаточно 3-х проводников:

  1. MOSI (Master Output Slave Input) — Данные от ведущего к ведомому;
  2. MISO (Master Input Slave Output) — Данные от ведомого к ведущему;
  3. CLK (Clock) — тактовый сигнал.

Устройства с SPI-интерфейсом делятся на два типа: ведущий(Master) и ведомый(Slave). Если к интерфейсу подключено несколько устройств то для обмена данными между ними нужны дополнительные линии связи(проводники) чтобы мастеру можно было выбрать ведомое устройство и сделать запрос к нему.

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

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

Для EEPROM выделено отдельное адресное пространство которое отличается от адресного пространства RAM и FLASH. Память EEPROM микроконтроллера — очень ценный ресурс, поскольку ее как правило очень мало — от 0,5 до нескольких килобайт на чип. Количество перезаписей для данного типа памяти составляет порядка 100000 что в 10 раз больше чем ресурс FLASH памяти.

ALU — Арифметико-логическое устройство, которое синхронно с тактовым сигналом и опираясь на состояние счетчика команд (Program Counter) выбирает из памяти программ (FLASH) очередную команду и производит ее выполнение.

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

  • внутренний RC-генератор, который можно калибровать на нужную частоту;
  • керамический или кварцевый резонатор с конденсаторами (не у всех моделей);
  • внешний тактовый сигнал.

Установка источника тактовых импульсов производится при помощи FUSE-битов.

FUSES (с англ.: плавление, пробка, предохранитель) — специальные 4 байта(4*8=32 бит) данных, которые настраивают некоторые глобальные параметры микроконтроллера в процессе прошивки. После прошивки данные биты нельзя изменить через внутреннюю программу что записана в МК.

Данной конфигурацией бит мы указываем микроконтроллеру вот что:

  • какой использовать задающий генератор (внешний или внутренний);
  • делить частоту генератора на коэффициент или нет;
  • использовать ножку сброса (RESET) для сброса или же как дополнительный пин ввода-вывода;
  • количество памяти для загрузчика;
  • другие настройки зависимо от используемого микроконтроллера.

CPU — это мозг микроконтроллера, который содержит в себе АЛУ, регистры и оперативную память.

К ALU подключен блок из 32-х регистров общего назначения (32 General Purpose Registers — регистровая память), каждый из которых представляет собою 1 байт памяти (8 бит). Адресное пространство регистров общего назначения размещено в начале оперативной памяти (RAM) но не является ее частью. С данными что помещаются в регистры можно производить разнообразные арифметические, логические и битовые операции. Выполнение подобных операций в оперативной памяти не доступно. Для работы с данными из RAM нужно их записать в регистры, произвести в регистрах нужные операции, а потом записать результирующие данные из регистров в память или в другие регистры для выполнения каких-то действий.

RAM — оперативная память. В нее можно записывать данные из регистров, считывать данные в регистры, все операции с данными и расчеты производятся в регистрах. Для разных семейств AVR чипов размер оперативной памяти ограничен:

  • ATxmega — до 32 KБ;
  • ATmega — 16 Кб;
  • ATtiny — 1 Кб.

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

A/D Converter — данный блок преобразовывает аналоговое значение напряжения в цифровое значение, с которым можно работать в программе и на основе которого можно выполнять определенные действия. Как правило диапазон напряжений что подаются на вход АЦП в AVR микроконтроллере находится в пределах 0-5,5 Вольт. Для данного блока очень важно чтобы микроконтроллер питался от стабильного и качественного источника питания. Во многих AVR микроконтроллерах есть специальный отдельный вывод для подачи стабильного питания на схему АЦП.

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

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

Для подобной связи МК с COM-портом компьютера нужен конвертер логических уровней напряжения (+12В для COM — в +5В для микроконтроллера), или же просто RS232-TTL. Для подобных целей используют микросхемы MAX232 и им подобные.

Для подключения микроконтроллера к компьютеру через USB используя UART-интерфейс можно использовать специализированную микросхему FT232RL. Таким образом на новых компьютерах и ноутбуках можно не имея физического COM-порта привязать микроконтроллер используя USB-порт через USART интерфейс.

TWI — интерфейс для обмена данными по двухпроводной шине. К такой шине данных можно подключить до 128 различных устройств, используя две линии данных: тактовый сигнал (SCL) и сигнал данных (SDA). Интерфейс TWI является аналогом базовой версии интерфейса I2C.

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

Watchdog Timer представляет собою систему контроля зависания устройства с последующим его перезапуском. Это как автоматическая кнопка RESET для старенького компьютера с глючной ОС. ))

I/O Ports, GPIO — это набор блоков портов ввода/вывода к пинам которых можно подключить разнообразные датчики, исполняющие устройства и цепи. Количество пинов вход/выход, что идут от портов в микроконтроллере, может быть от 3 до 86.

Выходные драйверы в портах AVR микроконтроллера позволяют напрямую подключать нагрузку з потребляемым током 20 мА(максимум 40 мА) при напряжении питания 5В. Общий нагрузочный ток для одного порта не должен превышать значение в 80 мА (например на 4 пина для одного из портов повесить по светодиоду с током 15-20 мА).

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

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

Timers/Counters — набор таймеров и счетчиков. Микроконтроллер, как правило, содержит в себе от одного до четырех таймеров и счетчиков. Они могут применяться для подсчета количества внешних событий, формирования сигналов определенной длительности, вырабатывать запросы на прерывания и т.п. Разрядность таймеров и счетчиков составляет — 8 и 16 бит (смотреть в даташите для чипа).

Микроконтроллеры. Устройство и особенности. Применение

Микроконтроллеры. Устройство и особенности. Применение

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

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

Что такое микроконтроллеры

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

  • Микропроцессор.
  • Оперативную память.
  • Комплект периферии, состоящей из портов обмена информацией с обслуживаемым устройством.

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

Устройство МК

Mikrokontrollery ustroistvo

  • Арифметико-логическое устройство служит для производства логических и арифметических операций, выполняет работу процессора совместно с регистрами общего назначения.
  • Оперативно запоминающее устройство служит для временного хранения информации во время функционирования микроконтроллера.
  • Память программ является одним из основных структурных элементов. Она основана на постоянном запоминающем устройстве с возможностью перепрограммирования, и служит для сохранения микропрограммы управления работой микроконтроллером. Она называется прошивкой.
  • Память данных используется в некоторых моделях микроконтроллеров для записи различных постоянных величин, табличных данных и т.д. Эта память имеется не во всех микроконтроллерах.
  • Для связи с внешними устройствами существуют порты ввода-вывода. Их также используют для подключения внешней памяти, различных датчиков, исполнительных устройств, светодиодов, индикаторов. Интерфейсы портов ввода-вывода разнообразны: параллельные, последовательные, оборудованные USB выходами, WI FI. Это расширяет возможности применения микроконтроллеров для различных сфер управления.
  • Аналого-цифровой преобразователь требуется для введения аналогового сигнала на вход микроконтроллера. Его задачей является преобразование сигнала из аналогового вида в цифровой.
  • Аналоговый компаратор служит для выполнения сравнения двух сигналов аналогового вида на входах.
  • Таймеры используются для выполнения установки диапазонов и задержки времени в функционировании микроконтроллера.
  • Цифро-аналоговый преобразователь исполняет обратную работу по преобразованию из цифрового сигнала в аналоговый.
  • Действие микроконтроллера синхронизируется с генератором тактовыми импульсами с помощью блока синхронизации, который работает совместно с микропрограммой. Генератор тактовых импульсов может быть, как внутренним, так и внешним, то есть, тактовые импульсы могут подаваться с постороннего устройства.
Центральный процессор
Этот элемент микроконтроллера содержит следующие узлы:
  • Арифметико-логическое устройство (АЛУ).
  • Специальный интерфейс, обеспечивающий распределение потока данных.
  • Генератор сигналов, вырабатываемых согласно инструкциям управляющей программы.

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

Память

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

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

Оперативная память (ОЗУ или RAM) используется для промежуточного хранения машинных данных. Они безвозвратно теряются, когда от микроконтроллера отключается питающее напряжение. Еще одно средство временного хранения информации – внутренние регистры, представленные соответствующими структурами в составе МП.

Периферийные устройства

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

Основные виды периферийных средств это:
  • АЦП.
  • ЦАП.
  • Генераторы опорного напряжения.

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

Прошивка и отладка микроконтроллеров

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

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

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

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

Организация электропитания МК
Микроконтроллеры, как и другие электронные устройства, способны выполнять свои функции только при наличии качественного электроснабжения. Для этого в их составе предусматривается целый ряд технических средств это:
  1. Интегрированные в структуру стабилизаторы напряжения.
  2. Модули управления и оптимизации потребления электроэнергии.
  3. Супервизоры.

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

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

Принцип работы микроконтроллера

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

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

Разновидности МК
Микроконтроллеры производятся многими известными мировыми фирмами в ассортименте, достаточном для удовлетворения запросов потребителя. Среди выпускаемой в различных странах продукции встречаются следующие семейства электронных устройств:
  • Современные 32-битные микроконтроллеры.
  • Менее «мощная» 16-битная разновидность.
  • «Простенькие» 8-битные модели (i8051, например, и ее аналоги).

Внутри каждого такого семейства встречаются схожие модели, различающиеся лишь скоростью работы ЦПУ и заявленными объемами памяти. В настоящее время насчитывается более 200 модификаций МК, совместимых с i8051 и множество других разновидностей.

Известные разработчики МК

Особой популярностью у разработчиков программно-управляемых гаджетов пользуются 8-битные МК PIC от «Microchip Technology». Не менее популярны и такие изделия, как:

Mikrokontrollery 2

  • Микропроцессоры AVR фирмы «Atmel».
  • 16-битные MSP430 фирмы «TI».
  • 32-битные МК архитектуры ARM (разработка фирма «ARM Limited»).
  • 16-битное 28-pin PDIP PIC24 изделие.
Области применения и достоинства
Микроконтроллеры применяются в различных цифровых устройствах, к которым относятся всевозможные игрушки, электронные часы и подобные им гаджеты. Кроме того, они применяются для управления следующими видами современной техники:
  • Станочное оборудование.
  • Насосные и вентиляционные системы.
  • Большинство домашней техники.
  • Автоматические системы различного класса (включая «умный дом» и т. п.).

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

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

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

Похожие темы:
  • Arduino Uno. Устройство и применение. Особенности
  • Ардуино для проекта «Умный дом». Работа и особенности установки
  • Системы автоматики. Виды и особенности применения
  • Электронные генераторы. Виды и устройство. Работа и особенности
  • Компараторы. Устройство и работа. Виды и применение. Особенности
  • Операционные усилители. Виды и принцип действия. Питание
  • Программируемый логический контроллер. Типы и работа. Особенности
  • КМОП транзисторы. Работа и применение. Особенности
  • Микроэлектромеханические системы (МЭМС). Особенности
  • ПЗС матрицы. Виды и устройство. Параметры и особенности
  • Аналого-цифровой преобразователь (АЦП). Устройство и работа

УСТРОЙСТВО МИКРОКОНТРОЛЛЕРОВ AVR

CISC и RISC
По числу команд микропроцессоры подразделяют на CISC (Complex Instruction Set Computer) и RISC (Reduced Instruction Set Computer). Термин CISC обозначает сложную систему команд, RISC — сокращенную.
Идея RISC — это тщательный подбор команд, которые можно было бы выполнить за один такт. Т. о. упрощается аппаратная реализация процессора, сокращается число транзисторов, снижается потребляемая мощность и цена.
Очевидно, что в общем случае одной CISC-команде должны соответствовать несколько RISC-команд. Однако обычно выигрыш в быстродействии у RISC перекрывает потери. Так, самая быстрая команда у 8051 выполняется за 12 тактов. Даже если для каждой CISC-инструкции потребуется выполнить три RISC-инструкции, то в итоге RISC-архитектура будет в 4 раза производительней.
В настоящее время грань между RISC и CISC стирается. Например, AVR имеют 133 команды, что соответствует CISC, но большинство из них выполняется за один такт, что является признаком RISC. Поэтому основным признаком RISC стало принято считать выполнение команд за один такт.

Сердцем микроконтроллеров AVR является 8-битное микропроцессорное ядро или центральное процессорное устройство (ЦПУ), построенное на принципах RISC-архитектуры. Основой этого блока служит арифметико-логическое устройство (АЛУ). По системному тактовому сигналу из памяти программ в соответствии с содержимым счетчика команд (Program Counter — PC) выбирается очередная команда и выполняется АЛУ. Во время выбора команды из памяти программ происходит выполнение предыдущей выбранной команды, что и позволяет достичь быстродействия 1 MIPS на 1 МГц.
АЛУ подключено к регистрам общего назначения РОН (General Purpose Registers — GPR). Регистров общего назначения всего 32, они имеют байтовый формат, то есть каждый из них состоит из восьми бит. РОН находятся в начале адресного пространства оперативной памяти, но физически не являются ее частью. Поэтому к ним можно обращаться двумя способами (как к регистрам и как к памяти). Такое решение является особенностью AVR и повышает эффективность работы и производительность микроконтроллера.
Отличие между регистрами и оперативной памятью состоит в том, что с регистрами можно производить любые операции (арифметические, логические, битовые), а в оперативную память можно лишь записывать данные из регистров.

Фоннеймановская и гарвардская архитектура
В 1945 г. американский математик Джон фон Нейман сформулировал основные принципы работы современных компьютеров. Им была предложена архитектура, получившая его имя (von Neumann architecture) и предполагающая хранение программ и данных в общей памяти (1946 г.). Сегодня такая архитектура наиболее характерна для микропроцессоров, ориентированных на использование в компьютерах. Примером могут служить микропроцессоры семейства х86.
Архитектура, предполагающая раздельное использование памяти программ и данных, носит название гарвардской (Harvard architecture). Гарвардская архитектура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность.

В микроконтроллерах AVR реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но и шины доступа к ним. Каждая из областей памяти данных (оперативная память и EEPROM) также расположена в своем адресном пространстве.

Память программ (Flash ROM или Flash ПЗУ)

Память программ предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, и имеет 16-ти битную организацию. Все AVR имеют Flash-память программ, которая может быть различного размера — от 1 до 256 КБайт. Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т. е. допускает многократное стирание и запись информации. Программа заносится во Flash-память AVR как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на собранной плате. Возможностью внутрисхемного программирования (функция ISP) через коммуникационный интерфейс SPI обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28.
Все микроконтроллеры семейства Mega имеют возможность самопрограммирования, т. е. самостоятельного изменения содержимого своей памяти программ. Эта особенность позволяет создавать на их основе очень гибкие системы, алгоритм работы которых будет меняться самим микроконтроллером в зависимости от каких-либо внутренних условий или внешних событий.
Гарантированное число циклов перезаписи Flash-памяти у микроконтроллеров AVR второго поколения составляет не менее 10 тыс. циклов при типовом значении 100 тыс. циклов. (В официальной технической документации Atmel Corp. указывается значение 10 тыс. циклов.)

Память данных разделена на три части: регистровая память, оперативная память (ОЗУ — оперативное запоминающее устройство или RAM) и энергонезависимая память (ЭСППЗУ или EEPROM).

Регистровая память (РОН и РВВ)

Регистровая память включает 32 регистра общего назначения (РОН или GPR), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью.
В области регистров ввода/вывода расположены различные служебные регистры (регистры управления микроконтроллером, регистры состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. По сути, управление микроконтроллером заключается в управлении этими регистрами.

Энергонезависимая память данных (EEPROM)

Для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы, используется EEPROM-память. Все AVR имеют блок энергонезависимой электрически перезаписываемой памяти данных EEPROM от 64 Байт до 4 КБайт. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, коэффициентов, серийных номеров, ключей и т.п. EEPROM может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора. Число циклов стирание/запись — не менее 100 тыс.

Оперативная память (ОЗУ или RAM)

Внутренняя оперативная статическая память Static RAM (SRAM) имеет байтовый формат и используется для оперативного хранения данных.
Размер оперативной памяти может варьироваться у различных чипов от 64 Байт до 4 КБайт. Число циклов чтения и записи в RAM не ограничено, но при отключении питающего напряжения вся информация теряется.
Для некоторых микроконтроллеров возможна организация подключения внешнего статического ОЗУ объемом до 64К.

Периферия микроконтроллеров AVR включает: порты (от 3 до 48 линий ввода и вывода), поддержку внешних прерываний, таймеры-счетчики, сторожевой таймер, аналоговые компараторы, 10-разрядный 8-канальный АЦП, интерфейсы UART, JTAG и SPI, устройство сброса по понижению питания, широтно-импульсные модуляторы.

Порты ввода/вывода (I/O)

Порты ввода/вывода AVR имеют число независимых линий «вход/выход» от 3 до 53. Каждая линия порта может быть запрограммирована на вход или на выход. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).
Архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода (пина) существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами, особенно в условиях внешних электрических помех.

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

Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника тактовой частоты, и как счетчики внешних событий.
Их можно использовать для точного формирования временных интервалов, подсчета импульсов на выводах микроконтроллера, формирования последовательности импульсов, тактирования приемопередатчика последовательного канала связи. В режиме ШИМ (PWM) таймер/счетчик может представлять собой широтно-импульсный модулятор и используется для генерирования сигнала с программируемыми частотой и скважностью. Таймеры/счетчики способны вырабатывать запросы прерываний, переключая процессор на их обслуживание по событиям и освобождая его от необходимости периодического опроса состояния таймеров. Поскольку основное применение микроконтроллеры находят в системах реального времени, таймеры/счетчики являются одним из наиболее важных элементов.

Сторожевой таймер (WDT)

Сторожевой таймер (WatchDog Timer) предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Он имеет свой собственный RC-генератор, работающий на частоте 1 МГц. Как и для основного внутреннего RC-генератора, значение 1 МГц является приближенным и зависит прежде всего от величины напряжения питания микроконтроллера и от температуры.
Идея использования стоpожевого таймеpа предельно проста и состоит в pегуляpном его сбpасывании под упpавлением пpогpаммы или внешнего воздействия до того, как закончится его выдеpжка вpемени и не пpоизойдет сбpос пpоцессоpа. Если пpогpамма pаботает ноpмально, то команда сбpоса стоpожевого таймеpа должна pегуляpно выполняться, пpедохpаняя поцессоp от сбpоса. Если же микpопpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp, от сильной помехи по цепи питания) либо зациклился на каком-либо участке пpогpаммы, команда сбpоса стоpожевого таймеpа скоpее всего не будет выполнена в течение достаточного вpемени и пpоизойдет полный сбpос пpоцессоpа, инициализиpующий все pегистpы и пpиводящий систему в pабочее состояние.

Аналоговый компаратор (AC)

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

Аналого-цифровой преобразователь (A/D CONVERTER)

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

Универсальный последовательный приемопередатчик (UART или USART)

Универсальный асинхронный или универсальный синхронно/асинхронный приемопередатчик (Universal Synchronous/Asynchronous Receiver and Transmitter — UART или USART) — удобный и простой последовательный интерфейс для организации информационного канала обмена микроконтроллера с внешним миром. Способен работать в дуплексном режиме (одновременная передача и прием данных). Он поддерживает протокол стандарта RS-232, что обеспечивает возможность организации связи с персональным компьютером. (Для стыковки МК и компьютера обязательно понадобится схема сопряжения уровней сигналов. Для этого существуют специальные микросхемы, например MAX232.)

Последовательный периферийный интерфейс SPI

Последовательный периферийный трехпроводный интерфейс SPI (Serial Peripheral Interface) предназначен для организации обмена данными между двумя устройствами. С его помощью может осуществляться обмен данными между микроконтроллером и различными устройствами, такими, как цифровые потенциометры, ЦАП/АЦП, FLASH-ПЗУ и др. С помощью этого интерфейса удобно производить обмен данными между несколькими микроконтроллерами AVR.
Кроме того, через интерфейс SPI может осуществляться программирование микроконтроллера.

Двухпроводной последовательный интерфейс TWI

Двухпроводной последовательный интерфейс TWI (Two-wire Serial Interface) является полным аналогом базовой версии интерфейса I2C (двухпроводная двунаправленная шина) фирмы Philips. Этот интерфейс позволяет объединить вместе до 128 различных устройств с помощью двунаправленной шины, состоящей из линии тактового сигнала (SCL) и линии данных (SDA).

Интерфейс JTAG был разработан группой ведущих специалистов по проблемам тестирования электронных компонентов (Joint Test Action Group) и был зарегистрирован в качестве промышленного стандарта IEEE Std 1149.1-1990. Четырехпроводной интерфейс JTAG используется для тестирования печатных плат, внутрисхемной отладки, программирования микроконтроллеров.
Многие микроконтроллеры семейства Mega имеют совместимый с IEEE Std 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры Mega с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG.

Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов микроконтроллера. Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках, хотя практически любой AVR-микроконтроллер с заявленной рабочей частотой, например, в 10 МГц при комнатной температуре легко может быть «разогнан» до 12 МГц и выше.

Система реального времени (RTC)

RTC реализована во всех микроконтроллерах Mega и в двух кристаллах «classic» — AT90(L)S8535. Таймер/счетчик RTC имеет отдельный предделитель, который может быть программным способом подключен или к источнику основной тактовой частоты, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два вывода микросхемы. Внутренний осциллятор оптимизирован для работы с внешним «часовым» кварцевым резонатором 32,768 кГц.

AVR функционируют при напряжениях питания от 1,8 до 6,0 Вольт. Ток потребления в активном режиме зависит от величины напряжения питания и частоты, на которой работает микроконтроллер, и составляет менее 1 мА для 500 кГц,5 . 6 мА для 5 МГц и 8 . 9 мА для частоты 12 МГц.
AVR могут быть переведены программным путем в один из трех режимов пониженного энергопотребления.
Режим холостого хода (IDLE). Прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и сторожевой таймер продолжают функционировать. Ток потребления не превышает 2,5 мА на частоте 12 МГц.
Стоповый режим (POWER DOWN). Сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов, и, следовательно, останавливаются все функции, пока не поступит сигнал внешнего прерывания или аппаратного сброса. При включенном сторожевом таймере ток потребления в этом режиме составляет около 80 мкА, а при выключенном — менее 1 мкА. (Все приведенные значения справедливы для напряжения питания 5 В).
Экономичный режим (POWER SAVE). Продолжает работать только генератор таймера, что обеспечивает сохранность временной базы. Все остальные функции отключены.

Сброс при снижении напряжения питания (BOD)

Схема BOD (Brown-Out Detection ) отслеживает напряжение источника питания. Если схема включена, то при снижении питания ниже некоторого значения она переводит микроконтроллер в состояние сброса. Когда напряжение питания вновь увеличится до порогового значения, запускается таймер задержки сброса. После формирования задержки внутренний сигнал сброса снимается и происходит запуск микроконтроллера.

Это оригинальная статья myROBOT.ru
Постоянный адрес статьи: http://myrobot.ru/stepbystep/mc_architecture.php

Назначение микроконтроллера

На основе микроконтроллера может быть создано любое электронное устройство.

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

Cемейства микроконтроллеров

Наиболее популярными семействами микроконтроллеров в настоящее время являются:

AVR компании ATMEL (серия AT90S);

PIC компании Microchip;

HC11 компании Motorola.

Микроконтроллеры семейства MCS-51 разработаны компанией Intel, но производятся различными компаниями: ATMEL (серия AT89), Philips (серия P89LPC).

В составе семейства MCS-51 выделяются линии (Product Line), первыми из которых являются:

8051 технологии n-MOS (отечественный аналог — серия КР1816);

80C51 технологии CMOS (отечественный аналог — серия КР1830).

Семейство MCS-51 появилось в начале восьмидесятых годов прошлого века. После него появилось множество более новых семейств, например, MCS-196 (отечественный аналог — 1874ВЕ36). Однако, семейство MCS-51 в настоящее время очень широко используется, поскольку для многих приложений его возможностей вполне достаточно, а программная и методологическая база этого семейства довольно велика.

AVR. Учебный Курс. Вводная. Что такое микроконтроллер.

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

Но, если сильно все упростить, то основной функцией микроконтроллера является «дрыганье ножками». Т.е. у него есть несколько выводов (от 6 до нескольких десятков в зависимости от модели) и на этих выводах он может выставить либо 1 (высокий уровень напряжения, например +5вольт), либо 0 (низкий уровень напряжения, около 0.1 вольта) в зависимости от программного алгоритма зашитого в его память. Также микроконтроллер может определять состояние сигнала на своих ножках (для этого они должны быть настроены на вход) — высокое там напряжение или низкое (ноль или единица). Современные микроконтроллеры также почти поголовно имеют на борту Аналогово Цифровой Преобразователь — это штука подобная вольтметру, позволяет не просто отследить 0 или 1 на входе, а полноценно замерить напряжение от 0 до опорного (обычно опорное равно напряжению питания) и представить его в виде числа от 0 до 1024 (или 255, в зависимости от разрядности АЦП)

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

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

MSC-51
Самое обширное и развитое это MSC-51, старейшее из всех, идущее от intel 8051 и ныне выпускаемое массой фирм. Иногда кратко зовется С51. Это 8-ми разрядная архитектура, отличается от большинства других восьмиразрядников тем, что это CISC архитектура. Т.е. одной командой порой можно совершить довольно сложное действие, но команды выполняются за большое число тактов (обычно за 12 или 24 такта, в зависимости от типа команды), имеют разную длину и их много, на все случаи жизни. Среди контроллеров архитектуры MSC-51 встречаются как динозавры вроде AT89C51, имеющие минимум периферии, крошечную память и неважнецкое быстродействие, так и монстры вроде продукции Silicon Laboratories имеющие на борту весьма мясистый фарш из разнокалиберной периферии, огромные закрома оперативной и постоянной памяти, мощные интерфейсы от простого UART‘a до USB и CAN, а также зверски быстрое ядро, выдающее до 100 миллионов операций в секунду. Что касается лично меня, то я обожаю архитектуру С51 за ее чертовски приятный ассемблер на котором просто кайфово писать. Под эту архитектуру уже написаны гигабайты кода, созданы все мыслимые и немыслимые алгоритмы.

Atmel AVR
Вторым моим любимым семейством является AVR от компании Atmel. Вообще Atmel производит и MSC-51 контроллеры, но все же основной упор они делают на AVR. Эти контроллеры уже имеют 8-ми разрядную RISC архитектуру и выполняют одну команду за один такт, но в отличии от классического RISC ядра имеют весьма развесистую систему команд, впрочем не такую удобную как у С51, за что я их недолюбливаю. Но зато AVR всегда снаряжены как на войну и просто напичканы разной периферией, особенно контроллеры подсемейства ATMega. А еще их очень легко прошивать, для этого не нужны ни специализированные программаторы, ни какое либо другое сложное обрудование. Достаточно лишь пяти проводков и компьютера с LPT портом. Простота освоения позволила этому контроллеру прочно запасть в сердца многих и многих радиолюбителей по всему миру.

Microchip PIC.
Еще один 8-ми разрядный RISC микроконтроллер, отличается весьма извратской системой команд, состоящей всего из пары десятков команд. Каждая команда выполняется за четыре такта. есть ряд достоинств, в первую очередь это низкое энергопотребление, и быстрый старт. В среднем PIC контроллере нет такого количества периферии как в AVR, но зато самих модификаций PIC контроллеров существует такое количество, что всегда можно подобрать себе кристалл с периферией подходящей точно под задачу, не больше не меньше. На PIC‘ax традиционно построены бортовые компьютеры автомобилей, а также многочисленные бытовые сигнализации.

Какое же семейство выбрать? О, это сложный вопрос. На многочисленных форумах и конференциях по сей день идут ожесточенные бои на тему какое семейство лучше, фанаты AVR грызутся с приверженцами MSC-51, попутно не забывая пинать по почкам PIC‘овцев, на что те отвечают тем же.

Ситуация тут как в Starcraft 🙂 Кто круче? Люди? Зерги? Протоссы? Все дело в применении, масштабах задач и массе других параметров. У каждого семейства есть свои достоинства и недостатки. Но лично я бы выбрал AVR и вот по каким причинам:

  • 1. Доступность в России. Эти контроллеры заслуженно популярны и любимы народом, а значит наши торговцы их охотно возят. Впрочем, как и PIC. С MSC-51 ситуация хуже. Морально устаревшие AT89C51 достать не проблема, но кому они нужны? А вот современные силабы это уже эксклюзив.
  • 2. Низкая цена. Вообще низкой ценой в мире славится PIC, но вот ирония — халявы начинаются только если брать его вагонами. На деле же, на реальном прилавке, AVR будет процентов на 30-40 дешевле чем PIC при несколько большем функционале. С MSC-51 ситуация ясна еще по первому пункту. Эксклюзив это не только редко, но и дорого.
  • 3. Очень много периферии сразу. Для серийного устройства это скорей недостаток. Куда лучше иметь только то, что надо в текущей задаче, а остальное чтобы не мешалось и не кушало зря энергию. Этим славится PIC со своим развесистым модельным рядом, где можно найти контроллер в котором будет нужное и не будет ненужного. Но мы то собираемся изучать и делать для себя! Так что нам лучше чтобы все, сразу и про запас. И вот тут AVR на голову выше чем PIC, выкатывая раз за разом все более фаршированные контроллеры. Купил себе какую-нибудь AtMega16A и все, можешь все семейство изучить.
  • 4. Единое ядро. Дело в том, что у всех современных AVR одинаковое ядро с единой системой команд. Есть лишь некоторые различия на уровне периферии (и те незначительные). Т.е. код из какой нибудь крошечной ATTiny13 легко копипастом перетаскивается в ATMega64 и работает почти без переделок. И почти без ограничений наоборот. Правда у старых моделей AVR (всякие AT90S1200) совместимость сверху вниз ограниченная — у них чуть меньше система команд. Но вот вверх на ура. У Микрочипа же существует целая куча семейств. PIC12/16/18 с разной системой команд. 12е семейство это обычно мелочь малоногая (вроде Tiny в AVR), а 18 это уже более серьезные контроллеры (аналог Mega AVR) И если код с 12го можно перетащить на 18, то обратно фиг.
  • 5. Обширная система команд контроллеров AVR. У AVR около 130 команд, а у Microchip PIC всего 35. Казалось бы PIC в выйгрыше — меньше команд, проще изучить. Ну да, именно так и звучит микрочиповский слоган, что то вроде «Всего 35 команд!». Только это на самом деле фигня. Ведь что такое команда процессора? Это инструмент! Вот представь себе два калькулятора — обычный, бухгалтерский и инженерный. Бухгалтерский куда проще изучить чем инженерный. Но вот попробуй посчитать на нем синус? Или логарифм? Нет, можно, не спорю, но сколько нажатий кнопок и промежуточных вычислений это займет? То то же! Куда удобней работать когда у тебя под рукой куча разных действий. Поэтому, чем больше система команд тем лучше.
  • 6. Наличие бесплатных кроссплатформенных компиляторов Си. Конечно, кряк всегда найти можно. Где где, а в нашей стране это проблемой никогда не было. Но зачем что то воровать если есть халявное? 😉
  • 7. Ну и последний аргумент, обычно самый весомый. Наличие того, кто бы научил и подсказал. Помог советом и направил на путь истинный. Я выбрал для себя AVR и на этом сайте (по крайней мере пока) досконально будет разбираться именно это семейство, а значит выбора у тебя особого нет :))))))

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

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

ATmega16А — 16PI

  • AT — сделано в Atmel
  • Mega — вид семейства. Существует еще Tiny и Xmega (новая — фаршу жуть, полный вертолет). Вообще задумывалось, что Тини это, вроде как, малобюджетное с малым количеством фарша и вообще ущербная, а Мега наоборот — все и сразу. В реальности, разница между семействами Тини и Мега по фаршу сейчас минимальная, но в Тини меньше памяти и корпуса у нее бывают с числом выводов от 6 до 20.
  • 16 — количество памяти флеша в килобайтах. Вообще тут не все так просто. Числом памяти является степень двойки. Так что Mega162 это не контроллер со 162КБ флеша, а своеобразная Мега16 модификации2 с памятью 16кб. Или вот Мега88 — не 88кб, а 8кб флеша, а вторая 8 это вроде как намек на то, что это дальнейшее развитие Мега8. Аналогично и Мега48 или Мега168. Тоже самое и семейством Тини. Например, Тини2313 — 2килобайта флеша. А что такое 313? А хрен знает что они имели ввиду 🙂 Или Тини12 — 1кб Флеша. В общем, фишку просек.
  • А — префикс энергопотребления (обычно). Этой буквы может и не быть, но в новых сериях она присутствует почти везде. Например, V и L серии — низковольтные, могут работать от 2,7 вольт. Правда за низковольтность приходится платить меньше частотой. Но оверклокинг возможен и тут, ничто человеческое нам не чуждо 🙂 A и P имеют новые серии AVR с технологией PicoPower т.е. ультраэкономичные. Разницы по фаршу и внутренней структуре с их безиндексовыми моделями нет, тут все различие в работе всяких спящих режимов и энергопотреблении. Т.е. Mega16A легко меняется на Mega16 без А. И ничего больше менять не нужно.
  • 16 — Предельная тактовая частота в мегагерцах. В реальности можно разогнать и до 20 😉
  • P — тип корпуса. Важная особенность. Дело в том, что далеко не всякий корпус можно запаять в домашних условиях без геморроя. Рекомендую пока обратить внимание на P — DIP корпус. Это громоздкий монстр, но его легко запаять, а, главное, он легко втыкается в специальную панельку и вынимается из нее обратно. Корпуса вида SOIC (индекс S) или TQFP (индекс A) пока лучше отложи в сторонку. Без хорошего опыта пайки и умения вытравить качественную печатную плату к ним лучше не соваться.
  • I — Тип лужения выводов. I — свинцовый припой. U — безсцвиновый. Для тебя никакой совершенно разницы. Бери тот что дешевле.

Рекоменую следующие модели:

  • ATMega16A-16PU — недорогой (около 100-150р), много выводов, много периферии. Доступен в разных корпусах. Прост, под него заточен мой учебный курс и все дальнейшие примеры.
  • ATTiny2313-20SU — идеальный вариант для изготовления всяких часов/будильников и прочей мелкой домашней автоматики. Дешев (рублей 40), компактен. Из минусов — нет АЦП.
  • ATmega48/88/168 любой из этих контроллеров. Компактен (в корпусе tqfp является самым тонким и мелким из AVR), дешев (рублей 100-150), фарширован донельзя.
  • ATmega128 для искушенных. Большой, мощный, дофига памяти. Дорогой (около 400р)

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

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

94 thoughts on “AVR. Учебный Курс. Вводная. Что такое микроконтроллер.”

Mazayac :

«В среднем PIC контроллере нет такого количества периферии как в AVR»
Ага-ага, используем сейчас Пики с Ethernet-ом на борту, 80 ног, закупаем по 135 рублей. AVR такие есть?

DI HALT :

Конкретно с эзернетом не встречал. По моему это вообще фишка именно пика. Другие до такого не дошли 🙂 Но я же говорил не конретно про наличие чего либо, а в целом по архитектуре. А вообще, возьми любую АВРку — так у ней на борту стандартный набор это АЦП, ШИМ, УАРТ, СПИ, и2с, зачастую есть часы, компаратор. Пики они более узкозаточенные. Хотя есть АТМЕГА и начиная со 64й на нее можно сделать эзернет программно, библиотека готовая в WinAVR есть. Только PHY подрубить.
Кстати в том пике PHY внутренняя?

nokfyt :

не знал куда написать, решил написать сюда) Хотел бы попросить совета. Учусь на тором курсе. Есть вот такой вот стенд:
http://opensys.com.ua/Stend/Ev8031 с LCD. Поставлена задача реализовать на нем протокол ModBus RTU, чтобы он выступал как мастер и опрашивал какое-то устройство. С микроконтроллерами дела до этого я не имел. Огромное количество информации — не знаю за что хвататся: i8051, uart, сам модбас…
В голове полная каша. Посоветуйте как правильно построить изучение и на что обратить внимание в первую очередь, какую-небудь литературу конкретную, которая поможет разобратся.
Потрясающтй сайт! Отличный статьи для начинающих! Спасибо вам за труд.

Удивил езернетом на пике. Нагугли xmega атмеловский и прикинь может ли это все пик =)

Команда в PIC выполняется за 4 такта! (а не 1)… Периферии, например, в достаточно популярных 16F873 — 876 вполне достаточно в большинстве случаев. Примерно то же, что и в MEGA32, только памяти поменьше. Но ее много и не к чему (если внутрь Бэйсик не пихать). Зато у PIC есть важное отличие от Атмелов — таймер с предделителем с внешнего входа могут считать до 70-80 МГц даже у 16F84 с тактовой 4 Мгц! Удобно для частотомеров. Атмелам до этого ох как далеко…
А вообще, все микроконтроллеры хороши, надо только оптимально их использовать. Еще в 80х годах я на работе разрабатывал и изготавливал для нужд производства контроллеры сначала на 580ИК80, затем 1816ВЕ35 (MCS 48!), и они прекрасно справлялись с многозадачной работой в режиме реального времени, и ПЗУ 2-4 Кб вполне хватало. (Это вам не VISTA)!

DI HALT :

Много периферии важно для новичков. Чтобы купив один кристалл изучить сразу все возможное. За это я и люблю Атмел.

Оцените статью
TutShema
Добавить комментарий