Как подключить AVR микроконтроллер к программатору
Научимся искать информацию по разным моделям AVR микроконтроллеров, разберемся c чтением PDF документов в операционной системе Linux. Узнаем как подключить микроконтроллер к программатору используя интерфейс ISP при помощи нескольких проводников.
Содержание:
- Несколько рекомендаций
- Чтение PDF документов в Linux
- Подключение AVR микроконтроллера к программатору
- Заключение
Несколько рекомендаций
Чтобы правильно подключить микросхему-микроконтроллер к программатору нужно разобраться где у него и какие выводы. Для получения исчерпывающей информации о интересующем нас микроконтроллере качаем на официальном сайте даташит (datasheet) на интересующий нас чип - Даташиты по микроконтроллерам ATMEL.
На первой страничке даташита приводится подробное описание возможностей микроконтроллера, а далее приведена распиновка микросхем под каждый из типов корпусов. Каждый даташит по AVR чипу содержит массу подробной информации на английском языке, к примеру даташит на микроконтроллер ATmega8 содержит 326 страниц!
Не знаете английского? - старайтесь понемногу изучать, без него сейчас очень трудно в современном мире радиоэлектроники и компьютерной техники, это универсальный международный язык. А пока что, если не знаете что означает какое-то слово или предложение - переведите его через сервис машинных переводов translate.google.com.
Чтение PDF документов в Linux
Как правило, все даташиты на микросхемы поставляются в формате PDF (Portable Document Format) - формат электронных документов для использования на разных платформах, разработан фирмой Adobe Systems.
Под Windows есть множество разных программ для чтения и работы с документами формата PDF. В операционной системе Linux формат PDF тоже имеет отличную программную поддержку.
Программы в Linux что умеют читать PDF:
- Okular - универсальная и мощная программа для просмотра документов, входит в окружение рабочего стола KDE;
- Qpdfview - простая и легковесная программа для просмотра документов в формате PDF, DjVu и PS;
- Evince (Document Viewer) - очень быстрый и легковесный просмотрщик документов PostScript (PS), EPS, DJVU, DVI, PDF;
- Xpdf - высокопроизводительный просмотрщик PDF-файлов.
Какую программу выбрать для просмотра PDF под Linux? - очень хорошо справляются со своими задачами программы Okular и Evince.
Если у вас установлена рабочая среда KDE то скорее всего что программа Okular уже присутствует в системе. Если Okular не установлен то исправить это можно командой:
sudo apt-get install okular okular-extra-backends
Если же у вас рабочая среда отличная от KDE - GNOME, XFCE, UNITY то более экономичным решением будет установить Evince, поскольку установка в данных средах программы Okular потребует некоторые компоненты от рабочей среды KDE.
Рис. 1. Универсальный просмотрщик документов Evince под Linux - средство для листания PDF документов по микроконтроллерам.
Просмотрщик документов Evince очень хорошо открывает огромные документы и справляется иногда с такими что не под силу прочитать для Okular. Установка Evince в Linux:
sudo apt-get install evince
Думаю что у вас теперь не возникнет проблем с чтением документов в формате PDF под ОС GNU Linux .
Подключение AVR микроконтроллера к программатору
Выше было рассказано что для подключения микроконтроллера к программатору нужно соединить выводы ISP: VCC, GND, MISO, MOSI, SCK, RST. Выводы с данными названиями присутствуют у всех микроконтроллеров, так что даташит нам в помощь.
Рис. 2. Распиновка микроконтроллера ATmega8 и подключение его к ISP (USB ASP).
У программатора USB ASP на коннекторе ISP предусмотрено напряжение +5В (VCC), так что для программирования чипа можно воспользоваться питанием от программатора, а вернее от USB порта к которому он подключен.
В рассмотреных раньше программаторах, что используют COM и LPT порты, нет вывода VCC, а это значит что с использованием этих программаторов на выводы GND (-) и VCC (+) микроконтроллера нужно подать напряжение питания 5В от внешнего источника.
Подключения микроконтроллера к программатору USB ASP на беспаечной макетной панели очень просто реализовать при помощи перемычек (проводники со штырьками на двух концах).
Рис. 3. Подключение к ISP коннектору программатора USB ASP на беспаечной макетной панели.
Рис. 4. Программатор USBASP подключен к микроконтроллеру ATmega8 (увеличение рисунка по клику).
Приведенного на рисунке выше подключения уже достаточно чтобы записать прошивку в микроконтроллер. По умолчанию в микроконтроллере ATmega8 используется внутренняя RC-цепочка что задает частоту тактового генератора, поэтому мы не устанавливали внешний кварц и конденсаторов.
Заключение
Как видите, нет ничего сложного в подключении микроконтроллера к программатору используя интерфейс ISP. Главное найти даташит под нужный микроконтроллер и разобраться с его ножками, а там останется подсоединить несколько проводков и... готово!
В следующей статье рассмотрим программное обеспечение для работы с AVR микроконтроллерами под ОС GNU Linux, а также кратко рассмотрим разные среды для разработки и написания кода.
Начало цикла статей: Программирование AVR микроконтроллеров в Linux на языках Asembler и C.
Доброго времени суток. Все подключил по схеме прошивка удалась, но светодиод не светиться. Начал изучать программирование языка си, все вроде делаю правильно программатор usbasp, пишу в атмел студио, мк атмега 8A-PU, прошиваю avrdude, вот код
int main(void)
{
DDRC = 0b0000001;
while (1)
{
PORTC = 0b0000001;
}
}
нет на ножке 5 вольт, мультиметр показывает 0,12 вольт.
Здравствуйте.
Скомпилировал ваш простой пример в Линукс и в AVR Studio. Внимательно ознакомьтесь, возможно увидите какой-то упущенный момент.
Проверка связки "микроконтроллер - программатор USBASP":
Пример вывода в консоль данных из программы avrdude при успешной связке:
Код программы, которая должна установить в "1" самый младший (0-й) бит в регистре порта DDRC:
Изменив нулевой бит в регистре порта DDRC на "1" мы тем самым установим высокий уровень на соответствующем этому порту и биту выводе микроконтроллера - ножке под номером 23 у микросхемы ATmega8.
Поместим программный код на языке Си в файл test.c и сохраним его.
Команды в Linux для компиляции кода программы, получения HEX-файла и его прошивки в микроконтроллер:
Вот вывод последней команды:
После прошивки светодиод, подключенный к пину ATmega8 с номером 23, сразу же засветился.
Узнаем контрольную сумму файла (по алгоритму MD5), делаем это командой (для Linux):
Вывод в этом случае для данного файла:
Эта строчка из символов - это уникальный отпечаток содержимого файла test.hex, если в этом файле изменить хоть один бит, и пересчитать сумму командой "md5sum", то строчка будет иметь полностью отличающийся вид.
Эту методику я использую для сравнения полученных HEX-файлов одной и той же программы на Си, собранных из консоли в Linux и из программы AVR Studio под MS Windows.
Перед следующим экспериментом я на всякий случай прошил в микроконтроллер другой код, где PORTC не задействован.
Теперь попробуем скомпилировать ту же самую программу и получить HEX-файл в AVR Studio (у меня английская, 4-я версия) , по пунктам, для чипа Atmega8:
Перенеся файл test.hex в Linux, с помощью команды "md5sum test.hex" я получил точно такую же контрольную сумму - это означает что файлы полностью идентичны. И это не удивительно, ведь компиляторы что в консоли Линукс, что в AVR Studio используются одинаковые - AVR GCC.
Прошиваем файл test.hex в микроконтроллер:
Светодиод снова зажегся.
Почему может не работать эта простейшая программа, собранная для микроконтроллера в AVR Studio и прошитая с помощью AVRdude: