Категории публикаций
Подписка на рассылку по Email
новости (подписчиков: 3)
комментарии (подписчиков: 2)

Отменить подписку
Популярные публикации
Интересный опрос
Какую платежную систему вы предпочетаете?

Счет в Банке
Webmoney
PayPal
BitCoin и другие криптовалюты
okPay
ePayServices
AdvCash
Ее нет в списке
Поблагодарить автора
donate
1B4ZZ2PXUd9E7AqEB82AqFnkpk2bt5hQG7

Программирование AVR микроконтроллеров в Linux на языках Asembler и C

Размещено в категории: Микроконтроллеры

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

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

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

Если же вы раньше программировали AVR'ки под Windows но перейдя на Linux не знаете с чего начать и боитесь что в данной ОС у вас не будет достаточно инструментов для разработки, то поспешу вас обнадежить - инструментов предостаточно, к тому же большинство программ и утилит которые вы использовали под Windows прекрасно функционируют и под Linux используя транслятор Wine.

К чему-то придется привыкнуть, от чего-то отказаться, а что-то начать использовать по другому. Со временем, все настроив под себя, вы будете удивлены насколько все просто и удобно, так что программирование AVR микроконтроллеров в Linux - это вполне реально!

Цикл статей по AVR в Linux

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

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

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

Так что программировать AVR в Linux можно даже на очень старом компьютере с минимумом ресурсов, к примеру на стареньком ноутбуке Pentium-233/64MB RAM/2GB HDD, такая возможность бывает иногда очень полезной.

Все описанное дальше будет также полезено в качестве справочного сундучка, где собраны:

  • принципы маркировки микроконтроллеров AVR;
  • подключение питания к микроконтроллеру;
  • схемы наиболее популярных программаторов;
  • описание подключения микроконтроллера к программатору;
  • распиновка интерфейсов LPT, COM;
  • примеры команд для чтения, стирания и записи Flash микроконтроллера;
  • и многое другое.

Изначально я планировал изложить весь материал в виде одной статьи, но написав 8 пунктов (порядка 70%) статьи я понял что она получится очень большой как по размеру текста, так и по количеству картинок. Решил разделить статью на части, пусть каждый пункт будет отдельной статьей.

Как программировать AVR под Linux

Рис. 1. Коллаж отрывков фото из цикла статей по AVR в Linux.

Работать будем под Debian GNU Linux, также все описанное в публикациях будет справедливо для Ubuntu и других дистрибутивов Linux.

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

 

Содержание

  1. Что такое AVR микроконтроллер
  2. Для чего можно использовать AVR микроконтроллер
  3. Архитектура AVR микроконтроллеров
  4. Маркировка микроконтроллеров AVR, выбор чипа для начала знакомства
  5. Аппаратное обеспечение для изучения микроконтроллеров
  6. Программаторы для AVR микроконтроллеров
  7. Как подключить программатор к микроконтроллеру
  8. Инструменты для программирования AVR микроконтроллеров в Linux
  9. Настройка среды программирования Geany для работы с AVR
  10. Параметры запуска и примеры использования AVRDUDE
  11. Настраиваем среду и работаем с программаторами
  12. Простая программа для AVR микроконтроллера на Ассемблере
  13. Простая программа для AVR микроконтроллера на Си
  14. Работа с регистрами, битовые операции
  15. Подключаем кнопку к микроконтроллеру ATtiny2313, простая программа

Может быть что я что-то упустил или указал не точно - пишите, будем дополнять и исправлять!

Желаю вам удачного изучения и позитивного настроения! Все обязательно получится.

 (5/5) голосов: 6   просмотров: 781


Тематика:  avr  atmel  linux  программирование

Комментарии к публикации (4)
Batareikyn 1 Batareikyn 
03 Январь 2016 08:55

очень хороший цикл статей, все просто и понятно, спасибо

+1 
ph0en1x 2 ph0en1x 
04 Январь 2016 13:38

Спасибо за отзыв, рад что вам понравилось.

0 
Сарсен 3 Сарсен 
16 Июль 2016 15:43

Скажите пожалуйста, уже несколько месяцев не могу решить вопрос. Можно ли настроить avarice + abr-gdb + ddd(display data debugger) через jtag ice 1 на линуксе? (Прошивать только avrdude, так как avarice с новой версией прошивать не может, только отлаживать.) Или же необходимо всетаки приобретать avr jtag ice 2 за 100$ ?? Сомнения появляются так как avrdude через jtag ice 1 прошивает с какимито ошибками. Однако прошивка работает.

Reading | ######################### | 50% 0.02savrdude: jtagmkI_paged_load(): timeout/error communicating with programmer (resp э)

0 
ph0en1x 4 ph0en1x 
26 Июль 2016 14:27

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

  • Попробовать укоротить соединительные провода, разместить программатор подальше от возможных источников помех;
  • Поиграться с опциями -b baudrate, -B bitclock;
  • Задать параметры программатора и порта в .avrduderc и настроить порт из консоли.

 

0 

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