Микроконтроллеры avr для начинающих – 1

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

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 71
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Программирование микроконтроллеров AVR

Программирование микроконтроллеров AVR для начинающих

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


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

Что нужно для того, чтобы начать пользоваться всеми возможностями микроконтроллеров? Я считаю, что не так уж и много. Главное в этом деле — желание. Будет желание, будет и результат.

В этом разделе (и в разделе «Устройство AVR») сайта я постараюсь помочь начинающим «микроконтроллерщикам» сделать первый, он же самый трудный шаг навстречу микроконтроллерам — попробуем разобраться в устройстве и программировании микроконтроллеров AVR семейства ATtiny и ATmega.

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

В своих статьях я буду опираться на материалы из публикаций популярных авторов микроконтроллерной тематики: Рюмика С.М., Белова А.В., Ревича Ю.В., Евстифеева А.В., Гребнева В.В., Мортона Д., Трамперта В., Фрунзе А.В. и Фрунзе А.А. (и многих других), а также материалы радиолюбительских сайтов. Ну и, может быть, немного своих «умных мыслей».

Программирование микроконтроллеров AVR фирмы Atmel

1. Микроконтроллеры — первый шаг

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

2. Системы счисления: десятичная, двоичная и шестнадцатиричная

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

3. Логические операции, логические выражения, логические элементы

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

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

5. Прямой, обратный и дополнительный коды двоичного числа

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

6. USBASP программатор для микроконтроллеров AVR — идеальное решение для начинающих, и не только

Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.

7. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

Популярнейшая программа AVRDUDE_PROG 3.3 предназначена для программирования микроконтроллеров AVR ATmega и ATtiny

8. Основы программирования микроконтроллеров AVR

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

9. Русификация программы Atmel Studio

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

10. Введение в язык программирования С (Си) для микроконтроллеров

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

11. Переменные и константы в языке С (Си) для микроконтроллеров AVR

В этой статье будут рассмотрены типы переменных в языке С (Си) для микроконтроллеров AVR, объявление переменных, способы задания констант, будет дан обзор арифметических операций языка С, присваивания, инкремента и декремента.

12. Управление портами микроконтроллеров AVR на языке С (Си)

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

13. Циклы в языке С (Си) для микроконтроллеров AVR

В данной статье будут рассмотрены циклы в языке программирования Си для микроконтроллеров AVR. Будут рассмотрены циклы типа «для» (for) и циклы типа «пока» (while), будет показано как осуществить принудительное прерывание цикла и организовать бесконечный цикл.

14. Массивы в программировании микроконтроллеров AVR

В данной статье мы рассмотрим основы использования массивов в языке С для микроконтроллеров AVR и рассмотрим их практическое применение в программе для изменения цифр на семисегментном индикаторе.

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

(24 голосов, оценка: 4,71 из 5)

Микроконтроллеры AVR для начинающих – 1

Микроконтроллеры (далее МК) прочно вошли в нашу жизнь, на просторах интернета можно встретить очень много интересных схем, которые исполнены на МК. Чего только нельзя собрать на МК: различные индикаторы, вольтметры, приборы для дома (устройства защиты, коммутации, термометры…), металлоискатели, разные игрушки, роботы и т.д. перечислять можно очень долго. Первую схему на микроконтроллере я увидел лет 5-6 назад в журнале радио, и практически сразу же перелистнул страницу, подумав про себя “все равно не смогу собрать”. Действительно, в то время МК для меня были чем то очень сложным и непонятым устройством, я не представлял как они работают, как их прошивать, и что делать с ними в случае неправильной прошивки. Но около года назад, я впервые собрал свою первую схему на МК, это была схема цифрового вольтметра на 7 сегментных индикаторах, и микроконтроллере ATmega8. Так получилось, что микроконтроллер я купил случайно, когда стоял в отделе радиодеталей, парень передо мной покупал МК, и я тоже решил купить, и попробовать собрать что-нибудь. В своих статьях я расскажу вам про микроконтроллеры AVR фирмы ATMEL, научу вас работать с ними, рассмотрим программы для прошивки, изготовим простой и надежный программатор, рассмотрим процесс прошивки и самое главное проблемы, которые могут возникнуть и не только у новичков.

Основные параметры некоторых микроконтроллеров семейства AVR:

Дополнительные параметры МК 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

Запомните, запрограммированный фьюз – это 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).

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

Урок 1. Первый проект на AVR

В каждом языке программирования есть такое понятие «Hello World». Это первая программа, дающая общие понятия о структуре программы. Для микроконтроллеров первая программа мигание светодиода. Это самое простое и наглядное.

Сначала нужно написать программу, используя CodeVision (C avr). Далее есть 2 варианта:
1. Прошить виртуальный микроконтроллер (используя программы симуляторы).
2. Прошить реальный микроконтроллер.

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

2. Тут множество вариантов, но как минимум нужен:
2.1. программатор AVR микроконтроллеров,
2.2. ATmega8-16PU (PDIP28 в дип корпусе),
2.3. резистор 1к,
2.4. светодиод,
2.5. проводки,
2.6. 5В стабилизированный источник (блок питания на 5В, питание usb компьютера),
2.7. много свободного времени и желания.
По желанию:
2.8. макетная плата (можно попробовать навесным монтажом),
2.9. паяльник (можно извратиться и без него),
2.10. разъем (можно извратиться и без него),
Минус только один — денежные вложения, которые я считаю в дальнейшем отобьются. Остальное все плюсы. Самое дорогое это программатор. Как решать задачу ваше дело, я покажу оба варианта.

Читайте также:  Ваз 2101 - цепи, защищаемые предохранителями

Схема нашего устройства.

Ищем, качаем свежий Proteus. В пакете протеуса нас интересует только ISIS 7. Если вы решили собирать все руками, идем на ближайший радиорынок или магазин электроники и покупаем все, что нужно. Купили, скачали, поставили. Как создать проект в CAVR можно узнать тут

1. Запускаем CodeVisionAVR

2. В окне мастера настроек, переходим на вкладку Ports и устанавливаем значение Bit 0 = Out. Создаем, сохраняем проект.

4. Теперь можно писать наш код.

#includeпозволяет использовать временные задержки, например делать паузы между зажиганием светодиода
delay_ms(100);
delay_us(100);
позволяет сделать задержку в программе 100мс, позволяет сделать задержку в программе 100мкс
PORTB.0=1;
PORTB.0=0;
включает ножку 0 порта В (напряжение +5В), включает ножку 0 порта В (напряжение 0В)

5. Добавляем в наш бесконечный цикл программы мигания светодиодом

#include #include vo >

6. Компилируем, прошиваем (как прошить можно почитать тут). Фьюзы для данного урока должны быть выставлены так:

Данная конфигурация фьюзов позволяет запустить микроконтроллер от внутреннего генератора на 2МГц. После прошивки светодиод будет мигать.

Запилил видео, чтобы был более понятен сам процесс, удачи в ваших начинаниях.

Update: Добавлен тест, в котором вы можете проверить на сколько хорошо вы усвоили материал урока

106 комментариев: Урок 1. Первый проект на AVR

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

булат- Вы победили данную ошибку на программаторе?

Уважаемый автор подскажите можно ли используя данный пример (delay_ms) включить и выключить порт МК несколько раз с разными временными задержками без цикла (while (1))

Как правильно реализовать такое условие и как закончить выполнение программы без (while (1))
так :
<
PORTB.0=1; //включаем 0 ножку порта В
delay_ms(100,500); // ждем
PORTB.0=0; //выключаем 0 ножку
delay_ms(100,200); //ждем

>;
или так :
<
PORTB.0=1; //включаем 0 ножку порта В
delay_ms(100); // ждем 100 мс
PORTB.0=0; //выключаем 0 ножку
delay_ms(100); //ждем 100 мс
PORTB.0=1; //включаем 0 ножку порта В
delay_ms(500); // ждем 500 мс
PORTB.0=0; //выключаем 0 ножку
delay_ms(200); //ждем 200 мс

>;
и какое максимальное значение может иметь delay_ms()
П.С.из самоучителей так понял что while () такой-же неотъемлемый атрибут программы как и #include

delay может быть 65535, while это просто цикл, обычно чтобы программа постоянно что то выполняла, нужно чтобы она крутилась по кругу

Спасибо огромное! А после одноразового передергивания ножками дальше можно включить основной цикл программы? Не получается… а понять почему не могу.

выполняете дрыганье до while, а потом делаете внутри что угодно

Ага! Запустить еще один while () внури этого чтоб он крутился бесконечно и не давал закончить (или начать) основной.У меня последний вопрос в этой теме: где можно посмотреть реализацию такого алгоритма?

установил 2 светодиода на PB0 и PB1 тепер как сделать пример 1 светодиод мигал 3 секунда а 2 ой 1 сек каждий порт сдаелал свое работу?

с помощью таймера, смотри 5 урок

Вопрос к автору: а если предположить, что мне необходимо управлять светодиодом не на 0 выводе порта В, а на 3, или на 7? как тогда будет выглядить код? я пытался написать так не не пошло:

PORTB=3×00;
DDRB=3×01;
while (1)
<
PORTB.3=1;
delay_ms(100);
PORTB.3=0;
delay_ms(10);
Как это реализовать? просто мне надо управлять 20-30 группами светодиодов! и тут одних только 0 выводов портов недостаточно! Заранее Спасибо!

Ув. автор, КАКОЙ вы применяли «программатор AVR микроконтроллеров»?
Дайте ссылку на схему программатора!
Как сделать чобы Code vision увидел этот программатор ?

Я использовал практически с самого начала AVRISPII. Схем программаторов полно, беда их в том, что для того чтобы сделать программатор, нужен другой программатор. Codevision видит только AVRISP, STK500, JTAGICE. По факту, берите USBASP и шейте через khazama, запорете пару мк, зато опыт получите

Такая проблема: создал визардом проект, прописал программу, при компиляции ошибка
все строки типа DDRB=(0 3

Микроконтроллеры AVR, Практикум для начинающих, Хартов В.Я., 2012

Микроконтроллеры AVR, Практикум для начинающих, Хартов В.Я., 2012.

Практикум содержит материалы для изучения микроконтроллеров AVR с архитектурой RISC. Рассмотрены необходимые инструментальные средства и предложен большой комплект учебных программ для изучения функциональных возможностей микроконтроллеров. Тематика учебного пособия охватывает практически все аспекты архитектуры микроконтроллеров. Базовые программы могут быть использованы в качестве основы для обучения и самостоятельного программирования на языке Ассемблер AVR в курсовом и дипломном проектировании.
Материалы книги автор использует в учебном процессе в МГТУ им. Н.Э. Баумана.
Для студентов высших и средних специальных учебных заведений, обучающихся по направлению «Информатика и вычислительная техника».

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРАКТИКУМА.
Микроконтроллеры AVR фирмы Atmel, появившись на рынке интегральных микросхем в 1996 г., сразу же привлекли к себе внимание разработчиков электронной аппаратуры. Удачное сочетание RISC-архитектуры «ядра», обеспечивающей высокую производительность, с широким набором команд, Flash-памятью для программ быстро выдвинуло микроконтроллеры AVR на передовые позиции.

На смену микроконтроллерам первых семейств (Tiny и Classic) пришло новое поколение микроконтроллеров (Mega). Сохранив программную преемственность, микроконтроллеры Mega приобрели новые свойства: пониженные напряжение питания (до 2,7 В) и энергопотребление, повышенные быстродействие (до 16 МГц) и объем Flash-памяти (до 128 Кбайт). Вслед за 8-разрядными микроконтроллерами появились 32-разрядные микроконтроллеры AVR32 и др.

Одновременно были созданы программные продукты и технические средства, поддерживающие разработку программ для микроконтроллеров. Это, прежде всего, фирменный пакет фирмы Atmel AVR Studio, свободно распространяемый в сети Internet, и отладочные платы в виде стартовых наборов разработчика (STK500, STK501, STK502 нового STK600), выпущенные для поддержки разработок на микроконтроллерах AVR. Вместе они образуют единую платформу, на которой можно успешно проводить разработку и отладку различных приложений.

ОГЛАВЛЕНИЕ
Предисловие
1. Инструментальные средства практикума
1.1. Микроконтроллеры АТх8515
1.2. Интегрированная отладочная среда AVR Studio 4
1.3. Стартовый набор STK500 фирмы ATMEL
1.4. Интерфейс STK500 в AVR Studio 4 и программирование микроконтроллера
1.5. Интегрированная отладочная среда VMLab
2. Программирование портов ввода/вывода
2.1. Взаимодействие микроконтроллера с кнопками и светодиодами
2.2. Обработка внешних прерываний
3. Арифметическая обработка данных
3.1. Представление чисел в микроконтроллерах
3.2. Сложение и вычитание чисел в дополнительном коде
3.3. Умножение чисел без знака
3.4. Деление целых чисел
3.5. Сложение и вычитание двоично-десятичных чисел
3.6. Программирование арифметических операций
3.7. Операции над числами с плавающей точкой
3.8. Программы для преобразования чисел
4. Таймеры микроконтроллеров АТх8515
4.1. Таймер/счетчик ТО микроконтроллера AT90S8515
4.2. Таймер/счетчик Т1 микроконтроллеров АТх8515
4.3. Программирование таймера ТО
4.4. Программирование функций сравнения, захвата и ШИМ таймера Т1
4.5. Сторожевой таймер
5. Обмен данными по последовательному интерфейсу
5.1. Последовательный обмен данными по каналу UART
5.2. Работа последовательного канала SPI
5.3. Обмен данными по интерфейсу 12C(TWI)
6. Организация ввода/вывода данных по параллельному интерфейсу
6.1. Взаимодействие с клавиатурой и ЖК-дисплеем
6.2. Организация асинхронного параллельного обмена данными с квитированием
7. Устройства для обработки аналоговых сигналов
7.1. Аналого-цифровой преобразователь
7.2. Аналоговый компаратор
8. Энергонезависимая память данных EEPROM
9. Программирование микроконтроллеров
9.1. Способы программирования и конфигурационные биты
9.2. Самопрограммирование микроконтроллеров
10. Программирование и отладка программ на языке Си
10.1. Среда Code Vision AVR
10.2. Отладка в AVR Studio
Литература
Приложение. Обозначения регистров ввода/вывода АТх8515.

Читайте также:  Ультразвук против грызунов

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Микроконтроллеры AVR, Практикум для начинающих, Хартов В.Я., 2012 – fileskachat.com, быстрое и бесплатное скачивание.

Скачать zip
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ AVR

Всем привет! Хочу рассказать о своем USB программаторе для микроконтроллеров AVR. Данная информация очень пригодится тем, кто только начинает осваивать микроконтроллеры. Когда я программировал свой первый контроллер для металлоискателя, то с большим трудом нашел нужную информацию, благодаря форуму. Теперь написал эту статью, чтобы упростить путь осваивания микроконтроллеров для других людей. Собрать его сможет любой желающий, у которого есть опыт паяния smd элементов. Программатор имеет достаточно небольшие размеры – как обычная флешка.

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

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

  1. выбираем AT90USB162 (Device->Select);
  2. открываем usb порт (Settings->Communication->USB);
  3. открываем прошивку (File->Load HEX File. );
  4. нажимаем Run (отмечены Erase, Program, Verify).

И наш программатор готов к использованию. Но без установки драйверов, программатор работать не будет. Драйвера подойдут, только те, которые идут вместе с программой AVR Studio. Я использую четвертую версию данной программы, так как её интерфейс наиболее удобен и прост для пользователя. Первым делом скачиваем и устанавливаем AVR Studio 4 с официального сайта Atmel.

Установка очень проста: соглашаемся с правилами пользования и дальше нажимаем кнопку next. После установки самой программы, на ваш компьютер будет предложено установить драйвера для программаторов, с этим ОБЯЗАТЕЛЬНО нужно согласиться, иначе программаторы не будут работать.

Далее нужно вставить программатор в компьютер и проверить правильно ли установились драйвера. Для этого заходим в диспетчер устройств(Мой компьютер – Свойства – Диспетчер устройств).

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

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

В появившемся окне выбираем наш драйвер, который установился с AVR studio.

Далее нужно выбрать модель программатора и нажать кнопку «Далее»:

На этом этапе, если у вас включена функция проверки драйверов, может появиться вот такое окно:

(Выбираем второй пункт)

Если вы сделали всё так, как написано, то у вас появиться следующее:

И программатор будет правильно определяться:

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

Подключение контроллера AVR к ПК

Подключаем к нашему программатору микроконтроллер. Я это сделал с помощью проводов:

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

Работа с программой AVR Studio

Когда аппаратная часть готова, переходим к программной. Открываем программу AVR Studio. Сначала нужно выбрать программатор. Для этого нажимаем на кнопку:

Выбираем порт и программатор и нажимаем Connect.

Появиться следующее окно:

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

Для выбора микроконтроллера, есть выпадающий список:

Фьюз биты устанавливаются на вкладке Fuses, на вкладке Program вы загружаете файлы прошивки:

Как вы могли догадаться, кнопка Erase Device – предназначена для очистки памяти контроллера.

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

Как вы можете заметить на моем скриншоте, поля для выбора прошивки не активны, это связано с тем, что я не подключил микроконтроллер. При установке фьюз-битов, не убирайте галочку возле SPIEN, это очень ВАЖНО! При программировании проверьте, подключен ли кварцевый резонатор, это также очень важно, иначе ваш контроллер будет не пригоден для дальнейшего программирования. На этом всё. С вами был Кирилл.

Обсудить статью ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ AVR

Фанат науки

1. Простая схема для изучения прерываний на микроконтроллере ATmega8515; Простая программа, использующая прерывания.
2. Настройка регистров, отвечающих за прерывания; Векторы прерываний.
3. Настройка выводов микроконтроллера на вход; Подключение внутренних подтягивающих резисторов; Подключение кнопки.
4. Пороговые напряжения на выводах микроконтроллера для срабатывания внешних прерываний; Гистерезис. скачать (55 МБ)

Если видеозапись не идёт, установите flash-плеер и проверьте звуковую карту, либо скачайте материал (55 МБ). Если вместо видео – зелёный экран, переустановите flash-плеер (просто скачайте последнюю версию ). Если видео “дёргается”, поставьте его на паузу и дайте немного подгрузиться. Плеер для просмотра flash-видео на домашней машине скачать здесь . Разверните видео на весь экран. Если напишут “Видео не найдено”, “Video not found” – перезапустите видео ещё раз.
Схемы регистров для Logisim 2.7.1 скачать:

Текст программы обработки внешних прерываний на CodeVisionAVR:

// Внешнее прерывание микроконтроллера ATmega8515-16PU по внешнему выводу int1
#include
#include

// Обработчик прерываний________________________________________________________________________
interrupt[ 3 ] vo >// Обработчик прерываний на int1 (Порт D, вывод 3).
<
PORTA.7=1; delay_ms( 3000 ); // Здесь пишите код программы, срабатывающей по сигналу на int1 (жёлтый светодиод).
PORTA.7=0; delay_ms( 500 );
>

// Настройки портов и регистров__________________________________________________________________
void main(void)
<
DDRC= 0b11111111 ; // Все выводы порта C настраиваем на выход
PORTC= 0b00000000 ; // Обнуляем порт C до начала выполнения программы (на всякий случай)

DDRA= 0b11111111 ; // Все выводы порта A настраиваем на выход
PORTA= 0b00000000 ; // Обнуляем порт A до начала выполнения программы (на всякий случай)

DDRD= 0b00000000 ; // Выводы порта D настраиваем как вход (0-вход, 1-выход)

PORTD= 0b11111111 ; /* Подключаем внутренние подтягивающие резисторы к выводам порта D.
(0-высокоимпедансное состояние, 1-подтягивающий резистор, если при этом выставлен 0 на DDR в том же разряде) */

GICR= 0b10000000 ; /* Регистр General Interrupt Control Register разрешает внешние прерывания
10 000000 – по выводу int1;
01 000000 – по выводу into;
11 000000 – по обоим выводам */

MCUCR= 0b00001000 ; /* Регистр Micro Controller Unit Control Registr настраивает прерывание на срабатывание:
0000 10 00 – по спадающему фронту сигнала на выводе int1;
0000 11 00 – по нарастающему фронту сигнала на выводе int1;
0000 00 00 – по низкому уровню на выводе int1;
0000 01 00 – по любому изменению уровня на выводе int1 */

#asm (” sei “) // или SREG |= (1

//Основная программа____________________________________________________________________________
while( 1 )
<
PORTC. 0 = 1 ; delay_ms( 500 ); // Здесь пишите код своей основной (фоновой) программы (зелёный светодиод).
PORTC. 0 = 0 ; delay_ms( 500 );
>
>

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector