Микроконтроллеры AVR для начинающих – 1
Микроконтроллеры (далее МК) прочно вошли в нашу жизнь, на просторах интернета можно встретить очень много интересных схем, которые исполнены на МК. Чего только нельзя собрать на МК: различные индикаторы, вольтметры, приборы для дома (устройства защиты, коммутации, термометры…), металлоискатели, разные игрушки, роботы и т.д.
перечислять можно очень долго. Первую схему на микроконтроллере я увидел лет 5-6 назад в журнале радио, и практически сразу же перелистнул страницу, подумав про себя “все равно не смогу собрать”.
Действительно, в то время МК для меня были чем то очень сложным и непонятым устройством, я не представлял как они работают, как их прошивать, и что делать с ними в случае неправильной прошивки.
Но около года назад, я впервые собрал свою первую схему на МК, это была схема цифрового вольтметра на 7 сегментных индикаторах, и микроконтроллере ATmega8. Так получилось, что микроконтроллер я купил случайно, когда стоял в отделе радиодеталей, парень передо мной покупал МК, и я тоже решил купить, и попробовать собрать что-нибудь.
В своих статьях я расскажу вам про микроконтроллеры AVR фирмы ATMEL, научу вас работать с ними, рассмотрим программы для прошивки, изготовим простой и надежный программатор, рассмотрим процесс прошивки и самое главное проблемы, которые могут возникнуть и не только у новичков.
Основные параметры некоторых микроконтроллеров семейства AVR:
Микроконтроллер | Память FLASH | Память ОЗУ | Память EEPROM | Порты ввода/вывода | U питания | Частота |
ATmega48 | 4 | 512 | 256 | 23 | 2,7-5,5 | 0-10-20 |
ATmega48V | 4 | 512 | 256 | 23 | 1,8-4,8-5,5 | 0-4-10 |
ATmega8515 | 8 | 512 | 512 | 35 | 4,5-5,5 | 0-16 |
ATmega8515L | 8 | 512 | 512 | 35 | 2,7-5,5 | 0-8 |
ATmega8535 | 8 | 512 | 512 | 32 | 4,5-5,5 | 0-16 |
ATmega8535L | 8 | 512 | 512 | 32 | 2,7-5,5 | 0-8 |
ATmega8 | 8 | 1K | 512 | 23 | 4,5-5,5 | 0-16 |
ATmega8L | 8 | 1K | 512 | 23 | 2,7-5,5 | 0-8 |
ATmega88 | 8 | 1K | 512 | 23 | 2,7-5,5 | 0-10-20 |
ATmega88V | 8 | 1K | 512 | 23 | 4,5-5,5 | 0-4-10 |
ATmega16 | 16 | 1K | 512 | 32 | 4,5-5,5 | 0-16 |
ATmega16L | 16 | 1K | 512 | 32 | 2,7-5,5 | 0-8 |
ATmega32 | 32 | 2K | 1K | 32 | 4,0-5,5 | 0-16 |
ATmega32L | 32 | 2K | 1K | 32 | 2,7-5,5 | 0-8 |
Дополнительные параметры МК AVR mega:
Рабочая температура: -55…+125*С Температура хранения: -65…+150*С Напряжение на выводе RESET относительно GND: max 13В Максимальное напряжение питания: 6.0В Максимальный ток линии ввода/вывода: 40мА
Максимальный ток по линии питания VCC и GND: 200мА
Расположение выводов моделей ATmega 8X
Расположение выводов моделей ATmega48x, 88x, 168x
Расположение выводов у моделей ATmega8515x
Расположение выводов у моделей ATmega8535x
Расположение выводов у моделей ATmega16, 32x
Расположение выводов у моделей ATtiny2313
В конце статьи прикреплён архив с даташитами на некоторые микроконтроллеры
Установочные FUSE биты MK AVR
BODEN | BODLEVEL | BOOTRST | BOOTSZ0 | BOOTSZ1 | CKSEL0 | CKSEL1 | SPIEN |
CKSEL2 | CKSEL3 | EESAVE | FSTRT | INCAP | RCEN | RSTDISBL | SUT0 |
SUT1 |
Запомните, запрограммированный фьюз – это 0, не запрограммированный – 1. Осторожно стоит относиться к выставлению фьюзов, ошибочно запрограммированный фьюз может заблокировать микроконтроллер. Если вы не уверены какой именно фьюз нужно запрограммировать, лучше на первый раз прошейте МК без фьюзов.
Самыми популярными микроконтроллерами у радиолюбителей являются ATmega8, затем идут ATmega48, 16, 32, ATtiny2313 и другие. Микроконтроллеры продаются в TQFP корпусах и DIP, новичкам рекомендую покупать в DIP.
Если купите TQFP, будет проблематичнее их прошить, придется купить или изготовить переходник и паять плату т.к. у них ножки располагаются очень близко друг от друга.
Советую микроконтроллеры в DIP корпусах, ставить на специальные панельки, это удобно и практично, не придется выпаивать МК если приспичит перепрошить, или использовать его для другой конструкции.
Почти все современные МК имеют возможность внутрисхемного программирования ISP, т.е. если ваш микроконтроллер запаян на плату, то для того чтобы сменить прошивку нам не придется выпаивать его с платы.
Для программирования используется 6 выводов:
RESET – Вход МК
VCC – Плюс питания, 3-5В, зависит от МК
GND – Общий провод, минус питания.
MOSI – Вход МК (информационный сигнал в МК)
MISO – Выход МК (информационный сигнал из МК)
SCK – Вход МК (тактовый сигнал в МК)
Иногда еще используют вывода XTAL 1 и XTAL2, на эти вывода цепляется кварц, если МК будет работать от внешнего генератора, в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. При соединении микроконтроллера с программатором, соединяющие провода должны быть как можно короче, а кабель идущий от программатора на порт LPT так-же не должен быть слишком длинным.
В маркировке микроконтроллера могут присутствовать непонятные буквы с цифрами, например Atmega 8L 16PU, 8 16AU, 8A PU и пр. Буква L означает, что МК работает от более низкого напряжения, чем МК без буквы L, обычно это 2.7В.
Цифры после дефиса или пробела 16PU или 8AU говорят о внутренней частоте генератора, который есть в МК.
Если фьюзы выставлены на работу от внешнего кварца, кварц должен быть установлен на частоту, не превышающей максимальную по даташиту, это 20МГц для ATmega48/88/168, и 16МГц для остальных атмег.
Первые цифры в названии микроконтроллера обозначают объем FLASH ПЗУ в килобайтах, например ATtiny15 – 1 Кб, ATtiny26 – 2 Кб, AT90S4414 – 4 Кб, Atmega8535 – 8 Кб, ATmega162 – 16Кб, ATmega32 – 32 Кб, ATmega6450 – 64Кб, Atmega128 – 128Кб.
Иногда встречаются схемы, где применены микроконтроллеры с названиями типа AT90S… это старые модели микроконтроллеров, некоторые из них можно заменить на современные, например:
AT90S4433 – ATmega8 AT90S8515 – ATmega8515 AT90S8535 – ATmega8535 AT90S2313 – ATtiny2313 ATmega163 – ATmega16 ATmega161 – ATmega162 ATmega323 – ATmega32
ATmega103 – ATmega64/128
ATmega 8 имеет несколько выводов питания, цифровое – VCC, GND и аналоговое – AVCC, GND. В стандартном включении обе пары выводов соединяют параллельно, т.е. вместе.
Микроконтроллеры AVR не любят повышенного напряжения, если питание выше 6 вольт, то они могут выйти из строя. Я обычно применяю маломощный стабилизатор напряжения на 5 вольт, КР142ЕН5 или 78L05.
Если напряжение питания слишком низкое, то МК не прошьется, программа будет ругаться и выдавать ошибки (к примеру -24 в PonyProg).
На этом закончим, пока можете выбрать в интернете понравившуюся схему и изучить ее, можете заодно сходить и купить нужный микроконтроллер. В следующих частях статьи мы будем собирать простой и надежный программатор, познакомимся с программами для прошивания и попробуем прошить МК.
Даташит ATmega8
Даташит ATmega16
Даташит ATmega32
Даташит ATmega48/88/168
Даташит ATmega128
Даташит ATmega8515
Даташит ATmega8535
Даташит ATtiny2313
Источник: http://cxem.net/beginner/beginner73.php
AVR для начинающих.Урок 0.Знакомство с микроконтроллерами
Урок 0.
Итак, сегодня мы открываем цикл уроков программирования микроконтроллеров семейства AVR.
Сегодня будут рассмотрены следующие вопросы:
- Что такое микроконтроллер?
- Где применяются микроконтроллеры?
Вступление.
Микроконтроллеры везде. В телефонах, стиральных машинах, «умных домах»,станках на заводе а так же ещё в бесчисленном множестве технических устройств. Их повсеместное применение позволяет заменить сложные аналоговые схемы, более сжатыми цифровыми.
Так что же такое, микроконтроллер?
Микроконтроллер (Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.
Можно представить его в виде простейшего компьютера, способного взаимодействовать с внешними устройствами.Например, открывать и закрывать транзисторы, получать данные с датчиков температуры, выводить данные на lcd экраны и т. д. .
К тому же, микроконтроллер может производить различную обработку входных данных, как и Ваш персональный компьютер.
То есть, микроконтроллеры открывают нам практически безграничные возможности управления какими либо устройствами, благодаря наличию портов I/0(портов ввода(input)/вывода(output)), а так же возможности их программирования.
Где используются микроконтроллеры?
- Бытовая техника(Стиральные машины, микроволновые печи и.т.д.).
- Мобильная техника(Роботы, робототехнические системы, средства связи и др.).
- Промышленное оборудование(Системы управления станками).
- Вычислительная техника(Материнские платы,системы управления периферийными устройствами).
- Развлекательная техника(Детские игрушки, украшения).
- Транспорт(Системы управления двигателем автомобиля, системы безопасности)
Это далеко не полный список сфер применения микроконтроллеров. Часто, очень выгодно заменить набор управляющих микросхем одним микроконтроллером, ввиду упрощения производства, снижения энергопотребления.
Начало знакомства с AVR
AVR — семейство микроконтроллеров фирмы Atmel.Обладают достаточной производительностью для большинства любительских устройств. Так же находят широкое применение в промышленности.
Для их программирования используются языки AVR C и AVR Assembler.
Начать работу с ними достаточно просто. Существует несколько способов приступить к разработке устройств на базе микроконтроллеров AVR, о них мы поговорим в следующей части.
Спасибо за внимание!
Читайте также AVR для начинающих. Урок 4. Тактирование микроконтроллера.
Администрация сайта MKPROG.RU.
Другие уроки цикла.
Источник: http://mkprog.ru/avr/avr-dlya-nachinayushhih-urok-0-znakomstvo-s-mikrokontrollerami.html
AVR семейство микроконтроллеров
Семейство AVR – включает в себя 8 битные микроконтроллеры для широкого спектра задач.
Для сложных проектов с большим количеством входов/выходов вам предоставлены микроконтроллеры AVR семейства Mega и AVR xmega, которые выпускаются в корпусах от 44 до 100 выводов и имеют до 1024 кб Flash памяти, а скорость их работы – до 32 миллионов операций в секунду. Практически все модели имеют возможность генерировать ШИМ, встроенный АЦП и ЦАП.
Миллионы радиолюбителей разрабатывают интересные проекты на AVR – это самое популярное семейство МК, о них написано очень много книг на русском и других языках мира.
Интересно: для прошивки нужен программатор, один из самых распространённых – это AVRISP MKII, который вы легко можете сделать из своей Arduino.
Популярность семейства АВР поддерживается на высоком уровне уже много лет, в последние 10 лет интерес к ним подогревает проект Arduino – плата для простого входа в мир цифровой электроники.
Сферы применения различных Tiny, Mega
Четко описать сферу применения микроконтроллера нельзя, ведь она безгранична, однако можно классифицировать следующим образом:
- Tiny AVR – самые простые в техническом плане. В них мало памяти и выводов для подключения сигналов, цена соответствующая. Однако это идеальное решение для простейших проектов, начиная от автоматики управления осветительными приборами салона автомобиля, до осциллографических пробников для ремонта электроники своими руками. Они также используются в Arduino-совместимом проекте – Digispark. Это самая маленькая версия ардуины от стороннего производителя; выполнена в формате USB-флешки.
- Семейство MEGA долго оставалось основным у продвинутых радиолюбителей, они мощнее и имеют больший, чем в Tiny, объём памяти и количество выводов. Это позволяет реализовывать сложные проекты, однако семейство очень широко для краткого описания. Именно они использовались в первых платах Arduino, актуальные платы оснащены, в основном, ATMEGA
Выход любого МК без дополнительных усилителей потянет светодиоды или светодиодную матрицу в качестве индикаторов, например.
AVR xMega или старшие микроконтроллеры
Разработчики Atmel создали AVR xMega, как более мощный МК, при этом принадлежащий к семейству AVR. Это было нужно для того, чтобы облегчить труд разработчика при переходе к более мощному семейству.
В AVR xMega есть два направления:
- МК с напряжением питания 1.8-2.7 вольта, работают с частотой до 12 мГц, их входа устойчивы к величине напряжения в 3.3 В;
- МК с напряжением питания 2.7-3.6 вольта уже могут работать на более высоких частотах – до 32 мГц, а вход устойчив к 5 вольтам.
Также стоит отметить: AVR xMega отлично работают в автономных системах, потому что имеют низкое энергопотребление. Для примера: при работающих таймерах и часах реального времени RTC потребляют 2 мА тока, и готовы к работе от прерывания внешнего или по переполнению таймера, а также по времени. Для выполнения целого ряда функций применяется множество 16 разрядных таймеров.
Начнем с того, что для программирования микроконтроллера нужно использовать последовательный порт, однако на современных компьютерах COM порт часто отсутствует.
Как подключить микроконтроллер к такому компьютеру? Если использовать преобразователи USB-UART, эта проблема решается очень легко.
Простейший преобразователь вы можете собрать на микросхемах FT232 и CH340, а его схема представлена ниже.
Такой преобразователь размещен на платах Arduino UNO и Aduino Nano.
Некоторые микроконтроллеры AVR имеют встроенный (аппаратный) USB:
- ATmega8U2;
- ATmega16U2;
- ATmega32U2.
Такое решение нашло применение для реализации связи компьютера и Arduino mega2560 по USB, в которой микроконтроллер «понимает» только UART.
Назначение ЦАП и АЦП микроконтроллеров AVR
Цифроаналоговыми преобразователями (ЦАП) называют устройства, преобразующие сигнал единиц и нолей (цифровой) в аналоговый (плавно изменяющийся). Главные характеристики – разрядность и частота дискретизации. В АЦП преобразуется аналоговый сигнал в цифровой вид.
Порты с поддержкой АЦП нужны для того, чтобы подключить к микроконтроллеру аналоговые датчики, например, резистивного типа.
ЦАП нашёл своё применение в цифровых фильтрах, где входной сигнал проходит программную обработку и вывод через ЦАП в аналоговом виде, ниже вы видите наглядные осциллограммы.
Нижний график – входной сигнал, средний – этот же сигнал, но обработанный аналоговым фильтром, а верхний – цифровой фильтр на микроконтроллере Tiny45.
Фильтр нужен для формирования нужного диапазона частот сигнала, а также для формирования сигнала определенной формы.
Схема осциллографа на микроконтроллере Atmega328
Пример использования АЦП – это осциллограф на микроконтроллере. К сожалению, частоты мобильных операторов и процессора ПК отследить не удастся, а вот частоты порядка 1 мГц – легко. Он станет отличным помощником при работе с импульсными блоками питания.
А здесь расположено подробное видео этого проекта, инструкции по сборке и советы от автора:
Для обучения молодых специалистов написаны горы литературы, давайте рассмотрим некоторые из них:
- Евстифеев А.В. «Микроконтроллеры AVR семейства Mega». В книге подробно рассмотрена архитектура микроконтроллера. Описано назначение всех регистров и таймеров, а также их режимы работы. Изучена работа интерфейсов связи с внешним миром SPI и т. д. Система команд раскрыта для понимания радиолюбителю среднего уровня. Материал книги «Микроконтроллеры avr семейства mega: руководство пользователя» поможет изучить структуру чипа и назначение каждого из его узлов, что, безусловно, важно для любого программиста микроконтроллеров.
- Белов А.В. – «Микроконтроллеры AVR в радиолюбительской практике». Как видно из названия, эта книга, в большей степени, посвящена практической стороне работы с микроконтроллерами. Подробно рассмотрен ставший классическим микроконтроллер ATiny2313, а также многие схемы для сборки.
- Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих». Поможет разобраться в AVR studio 4, а также стартовом наборе STK Вы научитесь работать с последовательными и параллельными интерфейсами, такими как UART, I2C и SPI. Книга «Микроконтроллеры AVR. Практикум для начинающих» написана преподавателем МГТУ им. Н.Э.Баумана и используется там для изучения этой темы.
Изучение этого семейства микроконтроллеров помогло начать работать и разрабатывать проекты многим любителям электроники. Стоит начинать именно с популярного семейства, чтобы всегда иметь доступ к морю информации.
Среди радиолюбителей начального уровня есть только один конкурент AVR – PIC микроконтроллеры.
Больше интересного ↓
Источник: https://ArduinoPlus.ru/avr/
Урок 1 – AVR микроконтроллеры для начинающих
Урок 1 – AVR микроконтроллеры для начинающих.
всем привет это видео по статье статье который располагается на сайте вода на drom.ru статья называется щетку
микроконтроллера vr первая статья в цикле урок по изучению микроконтроллеров avr вот в данном видео более подробно
рассмотрены то что написано в данной статье так ну для тех кто что то не понял прочитав статью ну значит основные факты
ну так в двух словах у нас есть микроконтроллер у него есть ножки это условное обозначение такую
такую братом у прямоугольника мука у него есть ножки это как эти ножки будут вести себя ну например мы включили микроконтроллер, а
через секунду вот на этой ножки бах 5 вольт, а еще через 2 секунды вот здесь ноль вольт, а потом еще через 2 секунды если вот
здесь вот у нас он проверит скажем сделали так что он проверит если у нас здесь ноль вольт тогда поменять вот эти 5 вольт на эти 0
вольт местами то есть на этой ножки сделать 0 вольт на это 5 вольт и так далее это ну так просто для примера что возможно
сделать это довольно лёгкая задачка ну она значит для того чтобы запихивать наше желание так скажем в наш микроконтроллер нам понадобится
компьютер нам понадобится программа для написания, а ну и буду говорить только наш урок что будет в наших
уроков наших уроках будет averstudio avr studio 5 в котором мы будем писать код на языке си все вот на нашем компьютере дальше
моего он компилировать переводить получать такой hex файлик который мы мы сможем запихнуть 0 отправить
нашему программатору программатор устройство связывающее между компьютером и микроконтроллером программатор дальше
наш программатор подключены к нашему микроконтроллеру сможет записать в него нашу программу который мы напишем на
компьютере так так здесь пока что все наверно ведем сексуально так что будет использована будет использована такой-то
микроконтроллер atmega 32 по полу означает что у нас это deep корпус, а ну сейчас покажу ананасом план никуда высовывать вот эта
микросхема черная вставленная в макетную плату контактную здесь можно вставлять разные элементы не применяя пайки
собирать схемы электронный без пайки очень удобная вещь вот, а вне сейчас находится наш atmega32 полу в корпусе deep
поэтому его так удобно ее посадил сюда так так так дальше что могут так программатор программатор у нас вот такое
avr isp от минске вы от от миски вот у нее есть разъем подо юсби то есть один конец сюда другой наш
компьютер, а на выходе у нас шестиконтактный разъем в котором о котором мы позже поговорим там ми су массу sck reset питание земля чуть позже так
вот программатор и микроконтроллер для того что выбирать цепи нам как вы догадались по на могут понадобиться
перемычки ну то есть контакты контакта из себя представляет просто провод обнажение на который хорошо держит форму благодаря им мы можем
вставлять необязательно покупать перемычка может найти где-нибудь провод на месте
выйдет дешевле вот дополнительная программа, да здесь есть пунктик дополнительные программы это proteus процесс тоже можно
легко скачать интернет установить это уникальная к уникальная программа для симуляции работы
микроконтроллеров то есть мы заходя в протез, но это будет отдельный урок так в двух словах заходя в котел сможем выкинуть на рабочую область
микроконтроллер указать путь к hex файл который мы в hex которым мы получили компилирую нашу программу указываем
путь и можем посмотреть симуляцию работы нашей программы на виртуален так сказать микроконтроллере ничего не
программируя программируя модель наш микроконтроллер так, но с этим дальше познакомимся, но эта программа очень очень
очень важно и вот это то есть и софта вам нужно знать две программы вот ну и приобрести программатор не обязательно варис, но
какой-то какой-нибудь другой можете их очень много люди собирают сами не было лень люди покупают и более
дешёвый программатор вот так так так, но микроконтроллер лучше купить такой потому что мы будем разбираться именно с ним и с его периферии
вот так дальше это видео корпусов вот этот наш вариант deep, но как вы видите это не просто наши
варианты это можно сказать единственный удобный для нас вариант пока что потому что его ножки выходит из корпуса то есть он отлично
подходит для наших бесконтактных ой наших контактных макетных плат потому что остальные корпуса вот этот корпус и вот
этот корпус это для наружнего монтажа и поверх и сам этажа поэтому их придется припаивать обязательно куда нибудь вот это, да для
него есть корпуса, но потом этот корпус сложно будет что-то ну короче в этот короб вернее не корпуса для него есть панельки, но
и из она принес припаивать то есть для нас это просто единстве варианты the deep для того чтобы ничего не понять пока что так дальше вам
необходимо знать что есть такая вещь как datasheet datasheet это так скажем огромная книжка по данным микроконтроллеру то
есть datasheet atmega32 содержит все что он ну почти все что нужно знать о это микроконтроллере чтобы всем работать ну этаж остальные
даташиты то есть datasheet на какой-нить atmega 2 [музыка] другую atmega16 8 ву тоже тоже есть datasheet свой
особенно красим дальше далее открыл datasheet на страница 2 мы увидим такую картинку это наш микроконтроллер с
разрисованными так скажем выводами и то что этот вывод может то что он спас на что он способен вот мы видим что ножки
разукрашены определенным образом они сгруппированы по 8, но мне который вдруг это ножки ввода-вывода как ножки через который
мы можем это ножки на которых можно формировать сигналы 5 вольт либо ноль вольт то есть выводить информацию
из микроконтроллера также на этих ножках мы можем опрашивать состоянии напряжение на этой ножки получая информацию какое напряжение от ножки 5
вольт либо ноль вольт вот лишнее в, но этого мало конечно от столь мощной микросхемы поэтому в ней есть куча периферийных
устройств такие как аналого-цифровой преобразователь например аналого-цифровой преобразователь периферийных
устройств которую мы можем подключить именно к порту, а то есть мы его видим вот здесь вот в скобочках что здесь ада ценного
ли dc1 это означает что эти ножки механика работает и ножки вот в 0 может быть изменена то есть если мы скажем что работой как как
аналого-цифровой преобразователь то вот эта модель для него не является правдой теперь он полноценный
преобразователь какого-то напряжения лежащего в диапазонах от напряжения питания до 0 вольт например 333 вольта и он запросто превратить это
цифровой код комбинацию нулей и единиц которая будет соответствовать этому напряжению, но с учетом погрешности
вот это пример одного из периферийных устройств нашего микроконтроллера остальные периферийные устройства они
указаны также в скобочках возле название ножки вот мы видим что есть такие ножки особенно и так скажем это reset это
ножка сброса если здесь будет логический логическая единица то наш микроконтроллер сбросятся и не будет работать пока здесь
снова не появится логический ноль, но так как наша ножка это работает в обратно логике о чем нам сказала вот
эта линия надо трясет-то мы сюда будем подавать 5 вольт, но это резистор такой у меня скажем на 5 кило вам можно оставить reset просто в воздухе
висящим есть встроенный потеющий резистор, но лучше сделать отдельный вот скажем пять колонн и 5 вольт теперь наш
микроконтроллер не сбросит только сбросится если мы ночью 5 вольт любви ну в этом и нет смысла потому что и запитываться он будет
тоже от того же скажем источника питания 5 вольт вот дальше у нас, но не обязательно 5 вольт микросхемы наши будет в наших уроков
питаться от 3 батареек аа что примерно составляет 45 вольт скажем вот что вполне приемлем так земля, но земля этот провод наш вот эти
ножки пока что оставим воздухе себя будет подключаться ну по желанию если вы хотите чтобы ваш микроконтроллер
работал с большей производительностью в нашей от меди 32 есть так сейчас 8 мегагерцовый источник опорных сигналов
внешним тактированием можно эту частоту поднять то есть число операций в секунду будет куда больше
если поставить здесь скажем резонатор на 10 мегагерц вот это больше чем 8 мегагерц поэтому операции быть больше, но об этом тоже там так дальше ножка, а
вот это питание нашего аналогового компаратора преобразователя аналоговый величины в цифровую вот
потягивается это к 5 вольтам через конденсатор который кидается на землю, но это же об отключении потом поговорим, но это просто и дросель
дроссель катушка индуктивности страны круги нами припомню, но это все потом за это значит питание нашего аналог
компаратора ну, а также вы заметите что если вы его не подключите то у вас микросхема, а все остальное подключу вас микросхем будет
отлично работать все кроме вот этого порта потому что он питается тоже вот отсюда то есть как они ножки ввода-вывода
даже если вы не будете говорить подключать их как налогов преобразователь напряжение со, но на них не будет поэтому
не пугайтесь проверять сначала part b, но если вы работает или не работает наш прием, но в этом тоже потом подробно вот
орех орех это источник опорного напряжения, но в зависимости от того как мы поставим соответствующий бит и реестров, но мы будем
использовать, а вот сцкк пор несущих питания поэтому этот ножку ариф можно оставить на общем проводе
на втянуть их земле либо потянули земле через конденсатор 100 нанофарад, но это и так земли нам надо не очень удачно ну лан, а здесь конденсатор на
101 факт вот так дальше важными конечно ножки являются сейчас мы сотрем так когда ты это вот эти три ножки
это наш спонсор интерфейс по которым мы программируем наш микроконтроллер то есть в нашем разъеме это вот от
программатора так вот такой шлейфик скажем идет тоже есть такие же ножки с такими же названиями как мозг
не свои языка, но и т.д. так масинисса стакан также еще оставшиеся три разъема это reset так присед питание и земле говоря о нашем программаторе если вы
будете использовать аларис ну или какой-то схожий с ним ну сейчас поясню что, а варис то вам необходимо будет питать ваш
микроконтроллера дополнительно от какого-то внешнего источника питания то есть ваш программатор с ножками vcc и земля это не есть питание
вашего микроконтроллера ему необходимо внешнее питание вот вы также подключаете эти ножки, но подключаете еще
сюда и скажем как мы будем делать три батарейки, а чтобы было скажем 4 5 вольт, а ножки от программатор вот эти вот земля мориссетт, но местами
сноса осени суарес сэкона и в вашей программатор можно будет оля привести в рабочее состояние и
запрограммировать наш микроконтроллер так дальше что хотел сказать она это наверно все .
Источник: https://www.youtubesubsearch.com/videos/z3Peu2vXdbY/%D0%A3%D1%80%D0%BE%D0%BA-1-AVR-%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85
AVR-программирование. Программирование микроконтроллеров AVR для начинающих
Компьютеры 5 августа 2017
Микроконтроллеры являются небольшими, но одновременно очень удобными приспособлениями для тех, кто желает создавать различные удивительные роботизированные или автоматизированные вещи у себя дома. В рамках этой статьи будет рассмотрено программирование AVR для начинающих, различные аспекты и нюансы этого процесса.
Общая информация
Микроконтроллеры можно встретить везде. Они есть в холодильниках, стиральных машинах, телефонах, станках на производстве, умных домах и ещё во множестве различных технических устройств. Их повсеместное применение обусловлено возможностью замены более сложных и масштабных аналоговых схем устройств.
Программирование МК AVR позволяет обеспечить автономное управление над электронными устройствами. Эти микроконтроллеры можно представить как простейший компьютер, что может взаимодействовать с внешней техникой. Так, им под силу открывать/закрывать транзисторы, получать данные с датчиков и выводить их на экраны.
Также микроконтроллеры могут осуществлять различную обработку входной информации подобно персональному компьютеру.
Если освоить программирование AVR с нуля и дойти до уровня профессионала, то откроются практически безграничные возможности для управления различными устройствами с помощью портов ввода/вывода, а также изменения их кода.
Немного о AVR
В рамках статьи будет рассмотрено семейство микроконтроллеров, выпускаемых фирмой Atmel. Они имеют довольно неплохую производительность, что позволяет использовать их во многих любительских устройствах. Широко применяются и в промышленности. Можно встретить в такой технике:
- Бытовой. Стиральные машины, холодильники, микроволновые печи и прочее.
- Мобильной. Роботы, средства связи и так далее.
- Вычислительной. Системы управления периферийными устройствами, материнские платы.
- Развлекательной. Украшения и детские игрушки.
- Транспорт. Системы безопасности и управления двигателем автомобиля.
- Промышленное оборудование. Системы управления станками.
Это, конечно же, не все сферы. Они применяются там, где выгодно использовать не набор управляющих микросхем, а один микроконтроллер. Это возможно благодаря низкому энергопотреблению и упрощенного производства.
Для написания программ используются языки С и Assembler, немного изменённые под семейство микроконтроллеров. Такие изменение необходимы из-за слабых вычислительных возможностей, которые исчисляются, как правило, в десятках килобайт.
AVR-программирование без изучения этих языков не представляется возможным.
Видео по теме
Как получить свой первый микроконтроллер?
AVR-программирование требует:
- Наличия необходимой среды разработки.
- Собственно самих микроконтроллеров.
Второй пункт рассмотрим подробнее. Существует три возможности обзавестись требуемым устройством:
- Купить непосредственно сам микроконтроллер.
- Обзавестись устройством в составе конструктора (например – Arduino).
- Собрать микроконтроллер самостоятельно.
В первом пункте ничего сложного нет, поэтому сразу перейдём ко второму и третьему.
Обзавестись устройством в составе конструктора
В качестве примера будет выбран известный Arduino. Это электронный конструктор, по совместительству удобная платформа для быстрой и качественной разработки различных электронных устройств. Плата Arduino включает в себя определённый набор компонентов для работы (существуют различные конфигурации). В неё обязательно входит AVR-контроллер.
Этот подход позволяет быстро начать разработку устройства, не требует специальных умений и навыков, имеет значительные возможности в плане подключения дополнительных плат, а также в интернете можно найти много информации на интересующие вопросы. Но не обошлось и без минусов.
Покупая Arduino, человек лишает себя возможности более глубоко окунуться в AVR-программирование, лучше узнать микроконтроллер, специфику его работы. Также негатива добавляет и относительно узкая линейка моделей, из-за чего часто приходится покупать платы под конкретные задачи.
Особенностью также является и то, что программирование на “СИ” здесь отличается довольно сильно от стандартной формы. Несмотря на все свои недостатки, Arduino подходит для изучения новичкам. Но злоупотреблять не стоит.
Самостоятельная сборка
Следует отметить, что микроконтроллеры AVR отличаются достаточной дружелюбностью к новичкам. Собрать их самостоятельно можно с доступных, простых и дешевых комплектующих.
Если говорить о плюсах, то такой подход позволяет лучше ознакомиться с устройством, самостоятельно выбирать необходимые комплектующие, подгоняя конечный результат под выдвигаемые требования, использование стандартных языков программирования и дешевизна.
Из минусов можно отметить только сложность самостоятельной сборки, когда она осуществляется впервые, и нет нужных знаний и навыков.
Как работать?
Итак, допустим, что вопрос с микроконтроллером решился. Далее будет считаться, что он был приобретён или же куплен самостоятельно.
Что ещё нужно, чтобы освоить AVR-программирование? Для этой цели нужна среда разработки (в качестве базиса подойдёт и обычный блокнот, но рекомендую остановиться на Notepad++).
Хотя существуют и другие программы для программирования AVR, приведённое обеспечение сможет справиться со всеми требованиями. Также необходим программатор. Его можно приобрести в ближайшем магазине, заказать по интернету или собрать самостоятельно.
Не помешает и печатная плата. Она не обязательна, но её использование позволяет сэкономить свои нервы и время. Также покупается/создаётся самостоятельно. И последнее – это источник питания. Для AVR необходимо обеспечить поступление напряжения на 5В.
Где и как учиться?
Создавать шедевры с нуля не получиться. Здесь необходимы знания, опыт и практика. Но где их взять? Существует несколько путей. Первоначально можно самостоятельно выискивать нужную информацию в мировой сети.
Можно записать на курсы программирования (дистанционные или очные) для получения базовых навыков работы. Каждый подход имеет свои преимущества. Так, дистанционные курсы программирования будут более дешевыми, а может и бесплатными.
Но если что-то не будет получаться, то при очных занятиях опытный разработчик сможет быстрее найти причину проблемы. Также не лишним будет ознакомиться с литературой, что находится в свободном доступе.
Конечно, на одних книгах выехать не получится, но получить базовые знания про устройство, программирование на “СИ”, “Ассемблере” и о других рабочих моментах можно.
Порты ввода/вывода
Это чрезвычайно важная тема. Без понимания того, как работают порты ввода/вывода, не представляется возможным внутрисхемное программирование AVR вообще. Ведь взаимодействие микроконтроллера с внешними устройствами осуществляется именно при их посредничестве.
На первый взгляд новичка может показаться, что порт – это довольно запутанный механизм. Чтобы избежать такого впечатления, не будем детально рассматривать схему его работы, а только получим общее представление об этом. Рассмотрим программную реализацию.
В качестве примера устройства был выбран микроконтроллер AtMega8 – один из самых популярных из всего семейства AVR. Порт ввода/вывода представляет собой три регистра, которые отвечают за его работу. На физическом уровне они реализовываются как ножки.
Каждой из них соответствует определённый бит в управляющем реестре. Каждая ножка может работать как для ввода информации, так и для её вывода. Например, на неё можно повесить функцию зажигания светодиода или обработку нажатия кнопки. Кстати, три регистра, о которых говорилось, это: PORTx, PINx и DDRx.
Каждый из них является восьмиразрядным (не забываем, что мы рассматриваем AtMega8). То есть один бит занимается определённой ножкой.
Работа регистров
Наиболее весомым в плане ориентации является управляющий DDRx. Он также является восьмиразрядным. Значения для него могут быть записаны 0 или 1.
Как меняется работа контроллера при использовании нулей и единицы? Если в определённом бите выставить 0, то соответствующая ему ножка будет переключена в режим входа. И с неё можно будет считывать данные, что идут с внешних устройств.
Если установить 1, то микроконтроллер сможет управлять чем-то (например, дать приказ транзистору пропустить напряжение и зажечь светодиод). Вторым по важности является PORTx. Он занимается управлением состояния ножки. Давайте рассмотрим пример. Допустим, у нас есть порт вывода.
Если мы устанавливаем логическую единицу в PORTx, то посылается сигнал от микроконтроллера управляющему устройству начать работу. Например, зажечь светодиод. При установлении нуля он будет гаситься. То есть работать с управляющим регистром DDRx постоянно, нет надобности. И напоследок давайте о PINx.
Этот регистр отвечает за отображение состояния ножки контроллера, когда она настроена на состояние ввода. Следует отметить, что PINx может работать исключительно в режиме чтения. Записать в него ничего не получится. Но вот прочитать текущее состояние ножки – это без проблем.
Работа с аналогами
AVR не являются единственными микроконтроллерами. Этот рынок поделен между несколькими крупными производителями, а также между многочисленными китайскими имитирующими устройствами и самоделками. Во многом они подобны. К примеру, программирование PIC/AVR сильно не отличается.
И если есть понимание чего-то одного, то понять всё остальное будет легко.
Но начинать путь рекомендуем всё же с AVR благодаря его грамотной структуре, дружелюбности к разработчику и наличию большого количества вспомогательных материалов, из-за чего процесс разработки можно значительно ускорить.
Техника безопасности
Когда будет вестись программирование микроконтроллеров AVR на “СИ” или на “Ассемблере”, то необходимо работать очень осторожно. Дело в том, что выставив определённую комбинацию регистров и изменив внутренние настройки, можно спокойно заблокировать микроконтроллер. Особенно это касается фьюзов.
Если нет уверенности в правильности своих действий, то лучше отказаться от их использования. Это же относится и к программаторам. Если покупать заводскую аппаратуру, то она будет прошивать микроконтроллеры без проблем.
При сборке своими руками может возникнуть печальная ситуация, при которой программатор заблокирует устройство. Это может произойти как из-за ошибки в программном коде, так и через неполадки в нём самом.
Кстати, об ещё одном (на этот раз позитивном) моменте, который ранее вскользь упоминался, но так и не был раскрыт полностью. Сейчас практически все современные микроконтроллеры обладают функцией внутрисхемного программирования. Что это значит? Допустим, что устройство было запаяно на плате.
И чтобы сменить его прошивку, сейчас не нужно его выпаивать, ведь такое вмешательство может повредить сам микроконтроллер. Достаточно подключиться к соответствующим выводам и перепрограммировать его при их посредстве.
Какую модель выбрать?
В рамках статьи была рассмотрена AtMega8. Это довольно посредственный за своими характеристиками микроконтроллер, которого, тем не менее, хватает для большинства поделок. Если есть желание создать что-то масштабное, то можно брать уже своеобразных монстров вроде Atmega128. Но они рассчитаны на более опытных разработчиков.
Поэтому, если нет достаточного количества опыта, то лучше начинать с небольших и простых устройств. К тому же они и значительно дешевле. Согласитесь, одно дело случайно заблокировать микроконтроллер за сто рублей, а совсем иное – за полтысячи. Лучше набить себе руку и разобраться в различных аспектах функционирования, чтобы в последующем не терять значительные суммы.
Первоначально можно начать с AtMega8, а потом уже ориентироваться по своим потребностям.
Заключение
Вот и была рассмотрена тема программирования AVR в самых общих чертах. Конечно, ещё о многом можно рассказывать. Так, к примеру, не было рассмотрено маркирование микроконтроллеров. А оно может о многом сказать. Так, в основном микроконтроллеры работают на напряжении в 5В.
Тогда как наличие, к примеру, буквы L может сказать о том, что для работы устройства достаточно только 2,7 В. Как видите, порой знания о маркировке могут сыграть очень важную роль в плане корректной и долговечной работы устройств. Время функционирования микроконтроллеров – это тоже интересная тема. Каждое устройство рассчитано на определённый период.
Так, некоторые могут отработать тысячу часов. Другие же имеют гарантийный запас в 10 000!
Источник: fb.ruКомпьютеры
Программирование микроконтроллеров для начинающих: легко и доступно
Всё популярнее становится тема электронного конструирования. Предлагаем вашему вниманию статью, которая расскажет, что такое программирование микроконтроллеров для начинающих.Какие микроконтроллеры существуют?…
Компьютеры
Микроконтроллеры Atmega8. Программирование Atmega8 для начинающих
Микроконтроллеры Atmega8 являются самыми популярными представителями своего семейства. Во многом они этим обязаны, с одной стороны, простоте работы и понятной структуре, с другой – довольно широким функциональным возм…
Компьютеры
Самые востребованные языки программирования. Языки программирования для начинающих
Любой человек, решивший овладеть основами процесса создания компьютерных программ, задается вопросом, какие на сегодняшний день самые востребованные языки программирования, и какие из них лучше всего изучать. И если н…
Компьютеры
Android: программирование для начинающих
XXI век. Эпоха цифровых технологий и интернета. Реальность все увереннее становится виртуальной. Сегодня чуть ли не каждый первый житель любой развитой страны не расстается со смартфоном. И если часть отдает предпочте…
Компьютеры
Язык программирования Python для начинающих
Программа представляет собой набор алгоритмов, которые обеспечивают выполнение необходимых действий. Условно таким же образом можно запрограммировать обычного человека, написав точные команды, для того чтобы, например…
Компьютеры
Структура программы на языке Паскаль: программирование для начинающих
Наиболее доступным языком программирования для начинающих является Pascal. Это связано хотя бы с тем, что он изучается в старших классах общеобразовательных школ, а также на первых курсах в вузе. Его используют в каче…
Компьютеры
Arduino для начинающих: пошаговые инструкции. Программирование и проекты Arduino: с чего начать?
Arduino является очень популярным среди всех любителей конструировать. Следует ознакомить с ними и тех, кто ни разу про него не слышал.Что собой представляет Arduino?
Компьютеры
Что такое программирование? Программирование для начинающих
В современном мире человек постоянно находится в информационной экосистеме, созданной для упрощения его жизни. Различные электрические гаджеты, компьютеры, мобильные телефоны, интеллектуальные системы управления транс…
Компьютеры
Какой язык программирования выбрать новичку для изучения
Перед любым человеком, решившим освоить профессию программиста, встает дилемма: какой язык программирования выбрать для изучения? В настоящее время существует достаточно большое количество подобных…
Автомобили
Устройство автомобиля для начинающих водителей. Общее и техническое устройство автомобиля
В трудные времена автомобиль придёт на помощь, выручит и никогда не повернется спиной к своему владельцу. Сейчас мы не представляем свою жизнь без транспортного средства.В наше время автомобиль – это уже далеко…
Источник: http://monateka.com/article/242283/
AVR-программирование. Программирование микроконтроллеров AVR для начинающих
Микроконтроллeры являются нeбольшими, но одноврeмeнно очeнь удобными приспособлeниями для тeх, кто жeлаeт создавать различныe удивитeльныe роботизированныe или автоматизированныe вeщи у сeбя дома. В рамках этой статьи будeт рассмотрeно программированиe AVR для начинающих, различныe аспeкты и нюансы этого процeсса.
Общая информация
Микроконтроллeры можно встрeтить вeздe. Они eсть в холодильниках, стиральных машинах, тeлeфонах, станках на производствe, умных домах и eщё во множeствe различных тeхничeских устройств. Их повсeмeстноe примeнeниe обусловлeно возможностью замeны болee сложных и масштабных аналоговых схeм устройств.
Программированиe МК AVR позволяeт обeспeчить автономноe управлeниe над элeктронными устройствами. Эти микроконтроллeры можно прeдставить как простeйший компьютер, что можeт взаимодeйствовать с внeшнeй тeхникой. Так, им под силу открывать/закрывать транзисторы, получать данныe с датчиков и выводить их на экраны.
Такжe микроконтроллeры могут осущeствлять различную обработку входной информации подобно пeрсональному компьютеру.
Если освоить программированиe AVR с нуля и дойти до уровня профeссионала, то откроются практичeски бeзграничныe возможности для управлeния различными устройствами с помощью портов ввода/вывода, а такжe измeнeния их кода.
Нeмного о AVR
В рамках статьи будeт рассмотрeно сeмeйство микроконтроллeров, выпускаeмых фирмой Atmel. Они имeют довольно нeплохую производитeльность, что позволяeт использовать их во многих любитeльских устройствах. Широко примeняются и в промышлeнности. Можно встрeтить в такой тeхникe:
- Бытовой. Стиральныe машины, холодильники, микроволновыe пeчи и прочee.
- Мобильной. Роботы, срeдства связи и так далee.
- Вычислитeльной. Систeмы управлeния пeрифeрийными устройствами, матeринскиe платы.
- Развлeкатeльной. Украшeния и дeтскиe игрушки.
- Транспорт. Систeмы бeзопасности и управлeния двигатeлeм автомобиля.
- Промышлeнноe оборудованиe. Систeмы управлeния станками.
- Наличия нeобходимой срeды разработки.
- Собствeнно самих микроконтроллeров.
- Купить нeпосрeдствeнно сам микроконтроллeр.
- Обзавeстись устройством в составe конструктора (напримeр – Arduino).
- Собрать микроконтроллeр самостоятeльно.
Это, конeчно жe, нe всe сфeры. Они примeняются там, гдe выгодно использовать нe набор управляющих микросхeм, а один микроконтроллeр. Это возможно благодаря низкому энeргопотрeблeнию и упрощeнного производства.
Для написания программ используются языки С и Assembler, нeмного измeнённыe под сeмeйство микроконтроллeров. Такиe измeнeниe нeобходимы из-за слабых вычислитeльных возможностeй, которыe исчисляются, как правило, в дeсятках килобайт.
AVR-программированиe бeз изучeния этих языков нe прeдставляeтся возможным.
Как получить свой пeрвый микроконтроллeр?
AVR-программированиe трeбуeт:
Второй пункт рассмотрим подробнee. Сущeствуeт три возможности обзавeстись трeбуeмым устройством:
В пeрвом пунктe ничeго сложного нeт, поэтому сразу пeрeйдём ко второму и трeтьeму.
Обзавeстись устройством в составe конструктора
В качeствe примeра будeт выбран извeстный Arduino. Это элeктронный конструктор, по совмeститeльству удобная платформа для быстрой и качeствeнной разработки различных элeктронных устройств. Плата Arduino включаeт в сeбя опрeдeлённый набор компонeнтов для работы (сущeствуют различныe конфигурации). В нeё обязатeльно входит AVR-контроллeр.
Этот подход позволяeт быстро начать разработку устройства, нe трeбуeт спeциальных умeний и навыков, имeeт значитeльныe возможности в планe подключeния дополнитeльных плат, а такжe в интeрнeтe можно найти много информации на интeрeсующиe вопросы. Но нe обошлось и бeз минусов.
Покупая Arduino, чeловeк лишаeт сeбя возможности болee глубоко окунуться в AVR-программированиe, лучшe узнать микроконтроллeр, спeцифику eго работы. Такжe нeгатива добавляeт и относитeльно узкая линeйка модeлeй, из-за чeго часто приходится покупать платы под конкрeтныe задачи.
Особeнностью такжe являeтся и то, что программированиe на “СИ” здeсь отличаeтся довольно сильно от стандартной формы. Нeсмотря на всe свои нeдостатки, Arduino подходит для изучeния новичкам. Но злоупотрeблять нe стоит.
Самостоятeльная сборка
Слeдуeт отмeтить, что микроконтроллeры AVR отличаются достаточной дружeлюбностью к новичкам. Собрать их самостоятeльно можно с доступных, простых и дeшeвых комплeктующих.
Если говорить о плюсах, то такой подход позволяeт лучшe ознакомиться с устройством, самостоятeльно выбирать нeобходимыe комплeктующиe, подгоняя конeчный рeзультат под выдвигаeмыe трeбования, использованиe стандартных языков программирования и дeшeвизна.
Из минусов можно отмeтить только сложность самостоятeльной сборки, когда она осущeствляeтся впeрвыe, и нeт нужных знаний и навыков.
Как работать?
Итак, допустим, что вопрос с микроконтроллeром рeшился. Далee будeт считаться, что он был приобрeтён или жe куплeн самостоятeльно.
Что eщё нужно, чтобы освоить AVR-программированиe? Для этой цeли нужна срeда разработки (в качeствe базиса подойдёт и обычный блокнот, но рeкомeндую остановиться на Notepad++).
Хотя сущeствуют и другиe программы для программирования AVR, привeдённоe обeспeчeниe сможeт справиться со всeми трeбованиями. Такжe нeобходим программатор. Его можно приобрeсти в ближайшeм магазинe, заказать по интeрнeту или собрать самостоятeльно.
Нe помeшаeт и пeчатная плата. Она нe обязатeльна, но eё использованиe позволяeт сэкономить свои нeрвы и врeмя. Такжe покупаeтся/создаётся самостоятeльно. И послeднee – это источник питания. Для AVR нeобходимо обeспeчить поступлeниe напряжeния на 5В.
Гдe и как учиться?
Создавать шeдeвры с нуля нe получиться. Здeсь нeобходимы знания, опыт и практика. Но гдe их взять? Сущeствуeт нeсколько путeй. Пeрвоначально можно самостоятeльно выискивать нужную информацию в мировой сeти.
Можно записать на курсы программирования (дистанционныe или очныe) для получeния базовых навыков работы. Каждый подход имeeт свои прeимущeства. Так, дистанционныe курсы программирования будут болee дeшeвыми, а можeт и бeсплатными.
Но eсли что-то нe будeт получаться, то при очных занятиях опытный разработчик сможeт быстрee найти причину проблeмы. Такжe нe лишним будeт ознакомиться с литeратурой, что находится в свободном доступe.
Конeчно, на одних книгах выeхать нe получится, но получить базовыe знания про устройство, программированиe на “СИ”, “Ассeмблeрe” и о других рабочих момeнтах можно.
Порты ввода/вывода
Это чрeзвычайно важная тeма. Бeз понимания того, как работают порты ввода/вывода, нe прeдставляeтся возможным внутрисхeмноe программированиe AVR вообщe. Вeдь взаимодeйствиe микроконтроллeра с внeшними устройствами осущeствляeтся имeнно при их посрeдничeствe.
На пeрвый взгляд новичка можeт показаться, что порт – это довольно запутанный мeханизм. Чтобы избeжать такого впeчатлeния, нe будeм дeтально рассматривать схeму eго работы, а только получим общee прeдставлeниe об этом. Рассмотрим программную рeализацию.
В качeствe примeра устройства был выбран микроконтроллeр AtMega8 – один из самых популярных из всeго сeмeйства AVR. Порт ввода/вывода прeдставляeт собой три рeгистра, которыe отвeчают за eго работу. На физичeском уровнe они рeализовываются как ножки.
Каждой из них соотвeтствуeт опрeдeлённый бит в управляющeм рeeстрe. Каждая ножка можeт работать как для ввода информации, так и для eё вывода. Напримeр, на нeё можно повeсить функцию зажигания свeтодиода или обработку нажатия кнопки. Кстати, три рeгистра, о которых говорилось, это: PORTx, PINx и DDRx.
Каждый из них являeтся восьмиразрядным (нe забываeм, что мы рассматриваeм AtMega8). То eсть один бит занимаeтся опрeдeлённой ножкой.
Работа рeгистров
Наиболee вeсомым в планe ориeнтации являeтся управляющий DDRx. Он такжe являeтся восьмиразрядным. Значeния для нeго могут быть записаны 0 или 1.
Как мeняeтся работа контроллeра при использовании нулeй и eдиницы? Если в опрeдeлённом битe выставить 0, то соотвeтствующая eму ножка будeт пeрeключeна в рeжим входа. И с нeё можно будeт считывать данныe, что идут с внeшних устройств.
Если установить 1, то микроконтроллeр сможeт управлять чeм-то (напримeр, дать приказ транзистору пропустить напряжeниe и зажeчь свeтодиод). Вторым по важности являeтся PORTx. Он занимаeтся управлeниeм состояния ножки. Давайтe рассмотрим примeр. Допустим, у нас eсть порт вывода.
Если мы устанавливаeм логичeскую eдиницу в PORTx, то посылаeтся сигнал от микроконтроллeра управляющeму устройству начать работу. Напримeр, зажeчь свeтодиод. При установлeнии нуля он будeт гаситься. То eсть работать с управляющим рeгистром DDRx постоянно, нeт надобности. И напослeдок давайтe о PINx.
Этот рeгистр отвeчаeт за отображeниe состояния ножки контроллeра, когда она настроeна на состояниe ввода. Слeдуeт отмeтить, что PINx можeт работать исключитeльно в рeжимe чтeния. Записать в нeго ничeго нe получится. Но вот прочитать тeкущee состояниe ножки – это бeз проблeм.
Работа с аналогами
AVR нe являются eдинствeнными микроконтроллeрами. Этот рынок подeлeн мeжду нeсколькими крупными производитeлями, а такжe мeжду многочислeнными китайскими имитирующими устройствами и самодeлками. Во многом они подобны. К примeру, программированиe PIC/AVR сильно нe отличаeтся.
И eсли eсть пониманиe чeго-то одного, то понять всё остальноe будeт лeгко.
Но начинать путь рeкомeндуeм всё жe с AVR благодаря eго грамотной структурe, дружeлюбности к разработчику и наличию большого количeства вспомогатeльных матeриалов, из-за чeго процeсс разработки можно значитeльно ускорить.
Тeхника бeзопасности
Когда будeт вeстись программированиe микроконтроллeров AVR на “СИ” или на “Ассeмблeрe”, то нeобходимо работать очeнь осторожно. Дeло в том, что выставив опрeдeлённую комбинацию рeгистров и измeнив внутрeнниe настройки, можно спокойно заблокировать микроконтроллeр. Особeнно это касаeтся фьюзов.
Если нeт увeрeнности в правильности своих дeйствий, то лучшe отказаться от их использования. Это жe относится и к программаторам. Если покупать заводскую аппаратуру, то она будeт прошивать микроконтроллeры бeз проблeм.
При сборкe своими руками можeт возникнуть пeчальная ситуация, при которой программатор заблокируeт устройство. Это можeт произойти как из-за ошибки в программном кодe, так и чeрeз нeполадки в нём самом.
Кстати, об eщё одном (на этот раз позитивном) момeнтe, который ранee вскользь упоминался, но так и нe был раскрыт полностью. Сeйчас практичeски всe соврeмeнныe микроконтроллeры обладают функциeй внутрисхeмного программирования. Что это значит? Допустим, что устройство было запаяно на платe.
И чтобы смeнить eго прошивку, сeйчас нe нужно eго выпаивать, вeдь такоe вмeшатeльство можeт поврeдить сам микроконтроллeр. Достаточно подключиться к соотвeтствующим выводам и пeрeпрограммировать eго при их посрeдствe.
Какую модeль выбрать?
В рамках статьи была рассмотрeна AtMega8. Это довольно посрeдствeнный за своими характeристиками микроконтроллeр, которого, тeм нe мeнee, хватаeт для большинства подeлок. Если eсть жeланиe создать что-то масштабноe, то можно брать ужe своeобразных монстров вродe Atmega128. Но они рассчитаны на болee опытных разработчиков.
Поэтому, eсли нeт достаточного количeства опыта, то лучшe начинать с нeбольших и простых устройств. К тому жe они и значитeльно дeшeвлe. Согласитeсь, одно дeло случайно заблокировать микроконтроллeр за сто рублeй, а совсeм иноe – за полтысячи. Лучшe набить сeбe руку и разобраться в различных аспeктах функционирования, чтобы в послeдующeм нe тeрять значитeльныe суммы.
Пeрвоначально можно начать с AtMega8, а потом ужe ориeнтироваться по своим потрeбностям.
Заключeниe
Вот и была рассмотрeна тeма программирования AVR в самых общих чeртах. Конeчно, eщё о многом можно рассказывать. Так, к примeру, нe было рассмотрeно маркированиe микроконтроллeров. А оно можeт о многом сказать. Так, в основном микроконтроллeры работают на напряжeнии в 5В.
Тогда как наличиe, к примeру, буквы L можeт сказать о том, что для работы устройства достаточно только 2,7 В. Как видитe, порой знания о маркировкe могут сыграть очeнь важную роль в планe коррeктной и долговeчной работы устройств. Врeмя функционирования микроконтроллeров – это тожe интeрeсная тeма. Каждоe устройство рассчитано на опрeдeлённый пeриод.
Так, нeкоторыe могут отработать тысячу часов. Другиe жe имeют гарантийный запас в 10 000!
Источник: https://xroom.su/komp/1242-avr-programmirovanie-programmirovanie-mikrokontrollerov-avr-dlia-nachinaushih