29 января 2014 г.

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

Возьмем ATtiny2313, подсоединим к ножке 12 (это порт PB0) светодиод и напишем программу для мигания им.

Запускаем Geany, делаем Файл -> Новый, Сохранить как... blink2313 в папке ~/Projects/blink2313. Теперь пишем вот такой код:

Структура ассемблерных программ для AVR

Ниже приведена типичная структура для порграмм AVR ассебмлера.
* Комментарии, заголовок где идёт описание, копирайты и прочая погань
* Заголовочная информация, определение констант, подлючение внешних файлов, определение макросов и др.
* Код начала программы
* Основная структура порграммы

Программирование AVR на языке Си используя консольныме программы

Ubuntu 9.04. Решил я попробовать в ней программировать контроллеры AVR на языке Си.
На просторах интернета везде советуют ставить Eclipse или KontrollerLab, но это не наш метод. Мы будем работать из командной строки.

Программирование atmega16 через JTAG в Linux


JTAG
— интерфейс, созданный для отладки и перепрограммирования. Существуют контроллеры JTAGICE mkII, но для ATmega128, ATmega16, ATmega162, ATmega165, ATmega169, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega64, ATmega64A достаточно JTAG ICE [1].

Gentoo Linux: Программирование AVR в Eclipse

Все ПО будет ставится через OVERLAY портаджей (ну так сделано в скрипте установки). По этому убедитесь что у вас есть соответствующая строка в make.conf:

cat /etc/make.conf | grep PORTDIR_OVERLAY
PORTDIR_OVERLAY="/usr/local/portage"

Содержание

Делаем COM программатор (программатор Громова)

титл COM программатораНесложным, в плане изготовления, является COM программатор. При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования. Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В).


Делаем LPT программатор


Титул LPT программатораОдним из самых простых программаторов AVR является программатор для LPT порта. Это обусловлено тем, что уровни сигналов LPT порта совместимы с уровнями сигналов необходимыми для программирования AVR. Такой программатор можно собрать из подручных материалов буквально за 5 минут!
Такой программатор будет совместим с классическими программаторами STK200/300, и соответственно будет поддерживаться многими программами для прошивания AVR.

Как правильно прошить AVR фьюзы

титл Fuse
В чем же проблема с установкой фьюз бит? Вроде бы есть докементация и наглядные картинки, на которой нарисовано какие галочки ставить, какие снимать – должно быть все просто. Делов том, что разработчики программ для прошивания микроконтроллеров используют настолько разнообразные варианты установки фьюз бит, что нетрудно запутаться...


28 января 2014 г.

Прошивка консольной утилитой avrdude

Для того,чтобы залить прошивку в микроконтроллер необходимо выполнить команду:
    avrdude -c usbasp -p m8 -U flash:w:имя_файла.hex 
где -p m8 - это модель микроконтроллера.В данном случае atmega 8.

Использование Arduino UNO в качестве программатора

Появилась у меня идея сделать внешний интерфейс для счетчика воды, чтобы не лазать в подвал для снятия показаний. После некоторых размышлений я остановился на ATTiny2313A(стоит ~80р, а ставить для этого Arduino ценой в ~1000р. мне жаба не дает) + несколько резисторов, кнопок и 7-ми сегментный индикатор. Но остановился перед проблемой — в отличии от Arduino здесь нужен программатор. Поскольку я не сильно увлекаюсь МК, то программаторов у меня как-то не водится. Arduino теоретически можно использовать в этом качестве, но реально я этого никогда не делал.

Смена прошивки в программаторе USBasp

Существуют простые и дешевые программаторы для прошивки м/к Atmega,например USBasp, цена такого программатора на ebay.com около 3$. 



Доработка программатора USBasp
для устранения ошибки: avrdude: warning: cannot set sck period. please check for usbasp firmware update

программа для прошивания eXtreme Burner-AVR


GUI Software for USBasp - USB AVR ProgrammerИндийский программист Avinash Gupta написал программу eXtreme Burner—AVR. Это не оболочка для avrdude, это полноценная программа, заточенная на работу с USBAsp.
Она поддерживает далеко не все контроллеры и FUSE биты задаются числами, что не очень удобно.






Перепрошивка программатора Prottoss в Atmel STK500 Version 2.x 


Речь пойдет о перепрошивке программатора Prottoss, чтобы он определялся и работал как Atmel STK500 Version 2.x











Настройка рабочего окружения для программирования в среде ECLIPSE на языке Си

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

Работа с Simulavr

При работе с AVR многие начинают запустка AVRStudio под WINE, но мы попробуем моделировать поведение микроконтроллеров с помощью свободного проекта simulavr

Программирование AVR из командной строки

Наверное каждый кто задумался начать программировать микроконтроллеры AVR под голым линуксом задает себе вопрос: "А с чего собственно начать?". Эта статья прояснит базовые вопросы для желающих начать программировать AVR из командной строки.


Настройка Eclipse для разработки на Си

Запуск AVR Studio под Wine

Печально, что Atmel выпускает AVR Studio только для OS Windows. Пользователям Linux приходится искать способы запуска AVR Studio под Linux. Опишем способ запускачерез Wine.

Как перешить безымянный китайский программатор в USBasp

Как перешить безымянный китайский программатор в USBasp 

Разработка приложений в среде Eclipse, язык Си

В данной статье мы расскажем, как можно создавать приложения для микроконтроллеров AVR с использованием среды Eclipse и комплекта AVR-GCC. Этот материал будет полезен разработчикам, желающим освоить новую для себя среду, значительно упрощающую написание программ на C/C++.

Среда Разработки Code::Blocks для AVR, язык Си

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


Среда Разработки Geany

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

Работа с программатором USBasp

SAM 2685Существуют простые и дешевые программаторы для прошивки м/к Atmega, которые поддерживает среда Arduino IDE- необходимо просто выбрать соотвествующий программатор USBasp в настройках Arduino IDE. USBasp  основан на Atmega 8 и использует программный USB.


если не работает USBasp программатор из набора Радио-Кит ...



Не работает программатор AVR, Не работает USBasp — тысячи запросов в Яндексе и Гугл. Купил конструктор Радио-Кит, собрали по инструкции — получился USBasp программатор. Подключаем его к компьютеру и... — Неизвестное устройство. 









Arduino в качестве Программатора

spiyВ качестве программатора можно использовать плату arduino со специально загруженным скетчем.






Arduino Pro mini: прошиваем через программатор USBasp

Разберемся как программировать Arduino Pro mini через программатор USBasp. 







Arduino Pro mini: прошиваем через USB-RS232 конвертор

Arduino mini - это такая маленькая ардуинка. В качестве процессора в ней стоит та же самая ATmega328 в корпусе TQFP-32. Программировать ее ничуть не сложнее, чем обычную Arduino, если использовать специальный USB-RS232 адаптер.







программатор USBasp

USBasp - простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.

USBasp

На рынке предлагается много вариантов — от самых дешевых ISP (In-System Programming) программаторов за несколько долларов, до мощных программаторов-отладчиков за пару сотен. 
Я купил один из самых простых и дешевых — USBasp (на eBay за $3). На самом деле это китайская версия программатора от Thomas Fischl.  Он прекрасно работает, поддерживает много AVR контроллеров серий ATmega и ATtiny. Под Linux не требует драйвера.