Язык программирования для avr

Введение

1. Подготовка к изучению

Для изучения нам понадобятся:

Стандартные библиотеки C для микроконтроллеров AVR ;

Программа для загрузки микропрограмм в микроконтроллер;

1.1. Среда разработки

При выборе среды разработки можно натолкнутся на «не пробиваемую стену» множества программных оболочек для программирования на разных языках программирования. Но учитывая направление на микроконтроллеры круг поиска сужается до сред разработки адаптированных под конкретный вид микроконтроллеров семейства AVR фирмы Atmel. Кроме того среда разработки язык программирования C.

Из множества вариантов рассмотрим среду разработки С odeBlocks. Будем использовать оригинальную версию С odeBlocks с сайта разработчиков www.codeblocks.org последней версии, на момент написания это версия 16.01. Данная среда разработки интересна наличием версий под популярные операционные системы Linux, Windows и Mac OS.

Вкратце рассмотрим установку под Windows. Скачав файл codeblocks-16.01-setup.exe запускаем его.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Ознакомимся с лицензией и принимаем ее.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Устанавливаем все компоненты без изменений

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Путь установки оставляем без изменений.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

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

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Получаем установленную среду разработки Code::Blocks.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

1.2. Стандартные библиотеки C/ C++ для микроконтроллеров AVR

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

Понадобится Atmel AVR 8-bit Toolchain так как использовать собираемся ATmega328 а он 8- bit. После скачивания запускаем полученный само распаковываемый архив и получаем папку (вида avr8-gnu-toolchain) со всем необходимым. Куда ее положить?

Запускаем ранее установленный Code::Blocks идем в меню Settings >> Compiler переходим во вкладку Toolchain executables выбираем интересующий нас компилятор из списка Selected compiler это будет GNU GCC Compiler for AVR. Далее смотрим путь по умолчанию для размещения ранее скачанной и распакованной папки.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Переименовываем нашу папку как в настройках Code::Blocks и перемещаем по указанному пути.

1.3. Программа для загрузки микропрограмм в микроконтроллер

Теперь все готово для программирования, но не хватает программы для облегчения прошивки микроконтроллера. Для изучения микроконтроллера ATmega328 будем использовать платформу Arduino UNO или Arduino Nano v3. Это дает возможность изучать микроконтроллер без паяльника и программатора. Для Arduino есть хорошая программа ArduinoBuilder и оболочка из проекта CodeBlocks Arduino IDE ( среда разработки Code::Blocks с добавлением библиотек ардуино ). Использовать микроконтроллер без ардуино гораздо интересней поэтому скачиваем только ArduinoBuilder. Его будем использовать для экспериментов с микроконтроллером на плате Arduino. Распаковываем архив, например в корень диска c:\ в папку ну скажем ArduinoBuilder, из нее делаем ссылку на рабочий стол и получаем два ярлыка:

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Все программное обеспечение готово. Приступим к «железным» вопросам

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

В своих изысканиях будем рассматривать микроконтроллер ATmega328 программы будем писать именно для него. «Знатоки» сразу нас пошлют к DataSheet но это не для нас. Мы пойдем своим путем и будем изучать его анатомию практически — методом «Тыка» : ).

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

Arduino Pro (на ATmega328 );

и конечно клоны от китайских товарищей.

Любой из перечисленных вариантов подойдет с теми или иными ограничениями или изменениями.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

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

Источник

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

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

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Стартовый набор начинающего микроконтроллерщика

Для первой группы все очень просто:
— приобрести программатор и научиться с ним работать

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

Получается вот такой набор:

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

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

Выбор языка программирования и среды разработки для программирования

Все, выбор мы сделали:

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr
Теперь осталось выполнить два пункта:
1. Обзавестись каким-нибудь стартовым набором (для начала хватит и микроконтроллера ATmega8, нескольких светодиодов, пары кнопок и сопротивлений к ним).
2. Установить (именно установить, а не скачать, и с регистрацией) с официального сайта Atmel (http://www.atmel.com/ru/) программу Atmel Studio.
Программировать микроконтроллеры мы будем с использованием программатора USBASP.
Отдельной статьи по Atmel Studio я писать не буду, будем изучать ее постепенно, по мере надобности и в связке со статьями по устройству и программированию микроконтроллеров.

Следующие статьи

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr(23 голосов, оценка: 4,87 из 5)

Источник

Язык программирования для avr

Всё о прошивке AVR микроконтроллеров AVR

Как загрузить программу в микроконтроллер.

Я советую прошивать микроконтроллер AVR из удобного интерфейса программирования встроенного в компилятор CVAVR CodeVisionAVR

Книги по электронике и микроконтроллерам скачать в библиотеке

Например 6 штырьков для ISP прошивания AVR

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Вид сверху платы на штырьки.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

в ATmega 128 ATmega64 сигналы ISP программатора

MISO подключают к ножке PE1

MOSI подключают к ножке PE0

2) Вывод PEN нужно подключить к питанию VCC резистором 1-10 кОм

Подробней о фьюзах ниже и на стр. 2 курса

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

. и так до окончательной отладки устройства.

Вариант 2. Если вы не устанавливали чек бокс «Program the chip» или

1) запустите программатор CVAVR кнопочкой «МИКРОСХЕМА» правее «красного
жучка» в верхней панели инструментов. Появится окно программирования AVR

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

После прошивания, если вы сделали все правильно, AVR начнет выполнять уже новую программу.

Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами или даже искать:

Parallel Programming does not work
Parallel Programming is not functioning correctly. Because of this, reprogramming
of the device is impossible if one of the following modes are selected:
– In-System Programming disabled (SPIEN unprogrammed)
– Reset Disabled (RSTDISBL programmed)

в ATmega XXX с завода включен внутренний RC генератор
на частоте 1 МГц
( уточните это по ДШ и его возможные частоты )

НЕ запрограммированный фьюз 1

ЗАпрограммированный фьюз 0

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

CKSEL 0001 SUT 10 CKOPT 1

По таблице 4 находим : в ATmega 16 для кварца с частотой от 3 до 8 МГц нужны конденсаторы от 12 до 22 пФ и вот такая комбинация фьюзов :

CKSEL 111 1 SUT 11 CKOPT 1

Вот скриншот с такой установкой фьюзов в программаторе компилятора CVAVR

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Реклама недорогих радиодеталей почтой:


Для прошивания МК используйте меню «Program»

Для использования ATmega16 (и других мег) с внешним кварцевым или керамическим резонатором на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше, но запрограммировать CKOPT
значит сделать его «0».

Т.е. вам нужна такая комбинация:

CKSEL 111 1 SUT 11 CKOPT 0

Фьюзы ATt iny2313 описаны в конце следующей страницы курса.

Частоту тактирования сигнала SCK программатором при прошивании можно установить в диалоге программирования в CVAVR.

Вот как сделать простой генератор тактовой частоты :

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

П ять поводков соединяющих линии параллельного (LPT) порта ПК и AVR так же как на схеме STK200 выше, но без микросхемы буфера.

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Адаптер «5-проводков» прекрасно работает с компилятором CVAVR CodeVision AVR.

Всё о прошивке AVR Прошивка AVR PIC прошивки Программирование PIC и AVR

Питать устройство при программировании можно :

— сетевым адаптеры от бытовых устройств понизив напряжение до 5 вольт.

+5 вольт можно взять с вывода 1 гейм порта компьютера или из провода включенного в гнездо USB.

Желательно питать устройство от ПК! В этом случае «земля» вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера.

Удобно подпаять к проводнику GND устройства проводок с «крокодильчиком» который прицепите к металлу ПК у LPT или COM портов перед подключением разъемов или сигнальных линий, проводов.

Теперь БЕЗОПАСНО соединять разъемы
и затем подавать питание на устройство.


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

Так рекомендовано в апноуте AVR 042

Или соберите простой, дешевый и хороший
USB программатор для AVR

Прошитый микроконтроллер для сборки USB программатора AVR вы можете заказать по почте.

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

STC создал загрузчик bootloader размером 256 байт с поддержкой быстрого страничного режима записи.

Прошитые загрузчиком bootloader микроконтроллеры AVR PIC вы можете заказать по почте.

C писок Апноутов для AVR примеры применения микроконтроллеров.

AVR miniICE

Это профессиональное средство для программирования и
отладки программы МК ATmega фирмы Atmel в реальном
устройстве. Он полностью совместимый
с оригинальным AVR JTAG ICE.

Характеристики:

Поддерживаемые микроконтроллеры (AVR Studio ver. 4.xx):

Прошивка AVR miniICE обновляется из новых версий AVR Studio

Вы скачиваете новую версию и через меню перепрошиваете
AVR miniICE
и получаете поддержку новых чипов.

Детали:

Кол.ТипОбозначение
2470RR1, R2
110KR3
222pC7, C8
6100nC1,C2,C3,C4,C5,C6
1LED-GD1
1LED-RD2
1ATmega16LDD1
1MAX3232DD2
17.3728 MHzQ1

Программирование (обновление программного обеспечения):

Пример реализации: на макетке

Прилагаемые файлы:


Дополнение:

Можно сразу залить в ATmega16 готовую прошивку (не надо прошивать через бутлодер)

Программирование AVR с помощью PonyProg

описание программатора PonyProg на русском языке

Свободно распространяемая программа управления программированием микроконтроллеров AVR, PIC и т.д. Более подробную информацию и саму программу можно получить на сайте автора Claudio Lanconelli http://www.lancos.com/ (кстати есть поддержка русского интерфейса).

Большинство контроллеров AVR поддерживает режим внутрисхемного программирования.

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

На Рис.3 приведена схема подключенния загрузочного кабеля к контроллеру ATmega8.
Источник питания стабилизированный от 4,5 до 5 V или батарейка.

При подключении других AVR контроллеров серий AT90, ATmega, проследить на соответствие сигналов и цоколевку.

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

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

Вот настройка PonyProg на LPT порт :

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr

Светодиод VD1 индицирует режим записи микроконтроллера,

Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйте программу CVAVR

Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avrЯзык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr Язык программирования для avr. Смотреть фото Язык программирования для avr. Смотреть картинку Язык программирования для avr. Картинка про Язык программирования для avr. Фото Язык программирования для avr(27 голосов, оценка: 4,74 из 5)

Источник

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

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

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