Программы для прошивки avr через usbasp
Когда я начинал использовать USBasp (очень популярный программатор для микроконтроллеров AVR), то применял его с утилитой командной строки AVRDUDE [4] (консольная программа для управления многими программаторами AVR). Эта программа имеет порты на большинстве операционных систем. Интерфейс командной строки, где нужно вводить множество трудно запоминаемых опций, имеет свои достоинства и недостатки - он удобен для написания командных файлов в целях автоматизации, когда нужно эффективно повторять одни и те же действия. Но если нужно быстро переходить с одного типа микроконтроллера на другой, или изменять какие-нибудь входные данные (файл прошивки, фьюзы и т. п.), то приходится снова влезать в головоломку составления ключей и опций командной строки.
[Avrdude-GUI]
Позже появилась программа Avrdude-GUI [5] (графическая оболочка над AVRDUDE), которая несколько облегчала задачу общения с программатором USBasp, однако всех проблем не решала и создавала новые проблемы. Эта утилита не могла просто записывать и сразу проверять байты фьюзов, и не могла читать содержимое памяти чипа. При переходе на новую версию AVRDUDE нужно было искать совместимую с ней версию Avrdude-GUI.
[AVRDUDE_PROG]
Еще одна оболочка для консольной утилиты AVRDUDE, написана на Delphi [6].
[eXtreme Burner]
При очередном поиске альтернативы утилиты для управления USBasp оказалось, что для этого есть замечательная утилита с полноценным GUI-интерфейсом: eXtreme Burner [1, 2, 3]. С этой программой работа с USBasp значительно упростилась.
Упростилась настройка источников тактирования. Семейство микроконтроллеров AVR поддерживает несколько способов генерации тактовых сигналов, которые удовлетворяют разным вариантам приложений. Например, можно использовать дешевый RC Oscillator (встроенный в микроконтроллер генератор, для которого не нужен кварц), или внешний кварцевый резонатор, позволяющий получать точную частоту тактирования и повышенную скорость работы. Теперь соответствующие опции можно выбирать из удобного выпадающего меню.
Не остались обиженными и пользователи операционной системы Linux, для них также доступна утилита eXtreme Burner.
[Указания по установке]
• Вам понадобится GUI Desktop Environment наподобие GNOME или KDE (все современные дистрибутивы Linux поставляются с поддержкой как минимум одного из них, так что по этому пункту беспокоиться особенно не о чем).
• Нужно установить библиотеку wxGTK (для этого используйте утилиту Package Manager).
• Нужно установить библиотеку libusb (для этого используйте утилиту Package Manager).
• Для получения доступа к порту USB будьте готовы к тому, что потребуется запустить программу с привилегиями root (хотя возможно, что к настоящему времени автор уже эту проблему исправил).
• Загрузите архив с программой [2, 3] и распакуйте его содержимое в какой-нибудь каталог.
• Запустите терминал, залогиньтесь как root (командой su root).
• Перейдите в каталог с распакованной программой eXtreme Burner.
• Введите команду ./avrprog для запуска eXtreme Burner - AVR.
Теперь Вы можете использовать графический интерфейс для работы с чипами AVR. Он точно такой же, как и у пользователей eXtreme Burner на операционной системе MS Windows.
[Khazama AVR Programmer]
Эта утилита тоже очень удобна для работы с программатором USBasp. Khazama 1.6.2 часто использую для работы с загрузчиком USBasp-loader для программирования плат AVR-USB-MEGA16 и metaboard.
Ссылки для загрузки см. в [7].
[Проблема с библиотекой libusb0.dll]
На Windows 10 эта проблема может проявляться по-разному. Часто появляется ошибка 0xc000007b (как например с AVRDUDE_PROG и eXtreme Burner - AVR):
Khazama при отсутствии libusb0.dll отображает пустой список выбора микроконтроллеров:
Проблема решается копированием файла libusb0.dll в каталог, где находится исполняемый файл программы. Сам файл libusb0.dll можно найти в папке Windows, или в пакете драйверов для USBasp. Или скачайте его по ссылке Download.cnt/avr/libusb0.dll.
[Ссылки]
Оболочка удобная. Люблю ее за то, что нельзя по невнимательности угробить фьюзами контроллер, т.к. оболочка сразу же загружает дефолтные значения битов. А потом их уже по мере необходимости заменяешь на те что надо. Все остальное же делается в два клика.
Также есть оболочка написанная на Java: Burn-o-Mat — красивая, удобная. Но жууутко тормозная.
У меня на компе (весьма древнем) она вообще еле шевелится. Зато кроссплатформенная.
Еще нашлась дивная программка Khazama AVR Programmer созданная неким арабом.
Вполне неплохо работает, выставление fuse битов похоже на AVRProg идущий в составе студии.
Но чего мне не хватало так это окна с кексами. Как в UniProf или в PonyProg. Люблю я пофтыкать в колонки хексов. Медитативное занятие. Сидишь и в уме дизассемблируешь потихоньку :) По знакомым адресам узнаешь где у тебя что записано. Как память распределяется… В общем, это низкоуровневый Дзен. Да и просто полезно визуально поглядеть сколько у тебя осталось еще свободных ячеек. Или изменил одну команду, а перекомпилиовать лень — поправил прям в хексе. Ну, а глянуть в дамп епрома так это вообще святое — я обычно туда какие нибудь логи люблю выгружать, а потом программатором зырю. AVRDUDE выдает intel hex который не очень удобен для просмотра — мусор слева и справа от дампа отвлекает, а хекс редактор открывать лень… Короче, одним словом — хочу :))))
И вот недавно один индус отжег и родил мега прогу eXtreme Burner — AVR . Причем это не оболочка на AVRDUDE это полноценная программа, заточенная на работу с USBAsp.
Проект еще совсем нов, поддерживаются далеко не все контроллеры, FUSE биты задаются числами. Не очень удобно, зато точно не перепутаешь единцу с нулем. Мне нравится, буду юзать!
Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
К слову, мне достался вариант ATMega8L, работающий в режиме разгона, на частоте 12МГц. По документации, должно быть не более 8МГц.
Не вдаваясь в подробности, решил обновить прошивку:
— взял прошивку usbasp.2011-05-28 с вышеуказанного сайта;
— замкнул на плате контакты J2;
— подключил 10pin разъем к другому программатору;
— залил прошивку;
— выставил fuse для atmega8: HFUSE=0xc9 LFUSE=0xef
Программатор определился в системе, но перестал видеть подключенные к нему контроллеры.
Процесс поиска решения проблемы описан здесь:
Форум
В итоге решение проблемы следующее:
— на всякий случай удалил два резистора R9 (270 Ом) и R10 (100 Ом), так как не совсем понимаю для чего необходимо подтягивать RXD и TXD сигналы к GND, да ещё при помощи резисторов столь малых номиналов;
— необходимо припаять перемычку с PC2(ADC2) на GND.
После вышеуказанных манипуляций программатор снова в строю.
Для счастливых обладателей вышеуказанного программатора — желаю учиться на чужих ошибках, для остальных — позволю себе напомнить главное правило, которое может помочь во многих житейских ситуациях: «работает — не трожь!» :)
Надеюсь кому-нибудь данная информация поможет.
P.S. Номиналы в схеме вышеуказанного программатора наиболее близки к указанным в следующей схеме:
USB программатор AVR — USBAsp
Комментарии ( 20 )
Тоже имеется такой же дома. Недавно пришли семпли от атмел, и там била аттини9 которая шйется только по протоколу TPI, который стал поддержывать последняя прошивка для данного программатора. Тепер и незнаю нужен ли апгрейд програматора + минимальный гемор.
P.S. Видел где то статейку как превратить такой программатор в STK500 и подцепить к студии.
Пробовал, получаем в системе виртуальный порт COM3, но ни одна из установленных у меня программ не определила, что данный порт можно хотябы выбрать, и я вернулся на стандартную прошивку. Возможно дело в операционке и версии программ, и где-нибудь на windows xp + старые версии программ оно запустится.
В том-то и дело, что в данном варианте схемы программатора они не выведены на разъем, а через 270 и 100 Ом резисторы подключены на землю. Зачем это было необходимо, и для чего экономные китайцы потратили 2 драгоценных резистора впустую — остается только гадать.
Это нужно только до смены фузов, когда мк ещё «тормозит» на 1МГц тактовой частоты. После того как переведёте программируемый мк на внешний кварц и уберёте предделитель, лучше вернуть «fast mode», отключив эту перемычку. У меня на большей скорости мк «надёжнее» прошиваются. В «slow mode» же ппри размере прошивки более 500 байт один из 10 раз прошивается удачно. Да и просто долго очень шьётся. Так что воткните джампер туда как в оригинальной схеме.
После того как переведёте программируемый мк на внешний кварц и уберёте предделитель, лучше вернуть «fast mode», отключив эту перемычку.
Программируемый мк тормозит изначально на 1МГц и не успевает за программатором, от чего мк и не определяется. Поэтому программатор надо тоже затормозить той перемычкой.
А когда вы в программируемый мк зашьете фьюзы отключения предделителя, скорости станет достаточно для быстрого режима, и у программатора можно убрать перемычку тормоза.
Пользуюсь таким же программатором и оболочкой khazama, не сказать, чтоб предел мечтаний, но работает всё стабильно. Но суть не в этом, сразу по получению программатора, залил в него прошивку «usbasp 2011-05-28», что позволило в широких приделах изменять скорость программирования из самой программы. Так что замедляющая перемычка не актуальна.
Этого не знал. у меня последние прошивки отказывались работать. то ли с дровами несовместились, толи с дудкой. вообщем какая-то не совсем свежая стоит. Работает, но из-за наводок бывают глюки, а чем дольше шьётся, тем больше шанс поймать наводку. Как-то так получается.
Вот спасибо мил человек! Валились у меня купленные до кучи когда-то 2 шт таких программаторов. Ни один не работал нормально. Был у меня еще AVRISP MK2, но сегодня трагически помер с красивым дымком. Тут то я и вспомнил про AVRASP китайские. Благодаря этой статье вернул им жизнь, теперь почти счастлив =)
Вобщем, поигравшись с переделанным девайсом, обнаружилось, что медленные МК оно шьет только в медленном режиме, т.е. с перемычкой как у автора статьи, а быстрые контроллеры — только без перемычки. Тиню 13 с заводскими вьюзами (т.е. 1.2 мгц) в быстром режиме не видит, только в медленном. Но стоит только убрать предделитель на 8, сразу же перестает видеть в медленном режиме, зато замечательно шьет в быстром. Поэтому, обмозговав немного, переделал свои девайсы так:
Думаю, суть переделки ясна из картинки. Теперь появилась перемычка быстро-медленно.
Чтобы вернуть программатор в боевое состояние без припаивания перемычки достаточно прошить его прошивкой из этого архива
У меня похожий программатор — usbasp v2 после перепрошивки начал при попытке прошить mega32 выдавать:
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Если я все правильно разобрался, то проблема заключается в следующем:
Мега, которая работает на 1МHz, требует, что бы ее прошивали на любой скорости ниже 1/4 от своей (то есть 250 kHz и ниже). Но Usbasp в «нормальном» режиме шьет с частотой 375 kHz, что есть много. Однако, для этого есть джампер JP3, про который в документации прямо и сказано
If the target clock is lower than 1.5 MHz, you need to set this jumper. Then SCK is scaled down from 375 kHz to about 8
kHz.
Если посмотреть устройство программатора, то видно, что этот джампер просто соединяет PC2 и GND.
Китайцы — злодеи. Не знаю, что соединяет этот джампер, но только не PC2 и GND.
Наклевываются 2 решения: 1 — подсоединить таки PC2 на GND, что сделано в посте. 2 — немного поменять прошивку.
В коде я поменял буквально 2 строчки — действия при if и else. Прошил — ура, работает. Теперь по умолчанию медленный режим. Побочный эффект — походу мы теряем режим 375 kHz. Прошивать main.hex
---------------------------------------------------------
Пока разбирался успел написать китайцам, которые сделали этот программатор. Решение они не прислали, но в ответе была фраза
Биты отличаются от того, что рекомендуется ставить при прошивании контроллера (H — c9, L — ef). Я только начал разбираться с контроллерами, поэтому не могу нормально проанализировать fuse биты. Но что мне не понравилось — CKSEL все на единицы и SPIEN включен. А с этого же сайта прочитано, что так делать — плохо. Потому рисковать не стал.
Кто лучше разбирается — гляньте, может это и есть решение. (На этом USBasp стоит mega8a)
Хм… Ну, или со стандартной прошивкой использовать опцию -B в avrdude. Например, для контроллера с 1MHz -B 3.
Обнаружил, что ссылка, данная мною ранее на архив с прошивкой восстанавливающей работоспособность китайского клона usbasp ведёт на другой архив и прошивка из него не поможет.
Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть достаточно подробные статьи про программатор USBASP и программу Atmel Studio 7.0 я все таки решил перевести с иностранного сайта и эту статью – вдруг кто то найдет в ней для себя что то интересное.
В данной статье будут рассмотрены следующие вопросы:
- Установка драйвера USBASP.
- Скачивание и установка Atmel Studio.
- Установка WinAVR для Atmel Studio.
- Установка микроконтроллера Atmega16 с кварцевым генератором и одним светодиодом.
- Создание и загрузка программного кода в Atmega16.
Рассмотрим подробно все эти вопросы. Установку драйвера для программатора USBASP будем рассматривать на примере операционной системы Windows10 – но все сказанное в этом разделе будет справедливо и для других версий Windows.
Установка драйвера для USBASP в Windows 10
После скачивания драйвера выполните следующую последовательность действий:
1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.
2. Подсоедините модуль USBASP v2.0 к своему компьютеру.
3. Откройте в Windows диспетчер устройств (Device Manager).
4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните "Открыть".
Чтобы сделать выполните следующие шаги:
- нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
- когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
- отпустите кнопку Shift и кликните на “Startup Settings”;
- кликните на “Troubleshoot (Устранение проблем)”;
- выберите “Advanced Options (Расширенные настройки)”;
- после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
- подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
- в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку "7" на вашей клавиатуре (не путать с кнопкой "F7");
- после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
- после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Скачивание и установка Atmel Studio
Выполните следующую последовательность действий:
2. Также вам необходимо скачать приложение WinAVR чтобы иметь возможность загружать программы в микроконтроллер AVR с помощью USBASP.
После этого вам необходимо создать тестовый проект в Atmel Studio 7.0. Для этого выполните нижеследующую последовательность действий.
3. Подсоедините USBASP v2.0 к USB порту вашего компьютера и подождите пока он правильно определится.
4. Откройте Atmel Studio.
5. Выберите пункт меню “File”, в нем “New” и выберите “project”.
6. Теперь назовите ваш проект, выберите место расположения проекта и выберите компилятор “GCC C Executable Project”. Кликните на “Ok” и продолжайте.
7. После этого вам будет необходимо выбрать ваше устройство для программирования. В нашем случае это будет микроконтроллер Atmega16A. Если вы будете программировать другие микроконтроллеры, например, Atmega8, Atmega32, то для их программирования также можно использовать программатор USBASP.
8. После этого для вас будет создан файл main.c, где вы можете писать ваш программный код.
Но после создания проекта финальный шаг, который вам необходимо выполнить – это установить внешние инструментальные средства (WinAVR).
Установка WinAVR в Atmel Studio
1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.
2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.
3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.
4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.
5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:
6. Больше аргументов можно найти по этой ссылке.
7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.
8. После заполнения всех полей нажмите “Apply” и затем “Ok”.
В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.
Схема устройства с мигающим светодиодом для Atmega16
Схема устройства, которую необходимо собрать, приведена на следующем рисунке. Соедините кварцевый генератор и светодиод с микроконтроллером Atmega16.
Внешний вид макетной платы в этом случае будет выглядеть следующим образом:
Также вы должны соединить микроконтроллер и USBASP как показано на следующей схеме:
Компоновка и загрузка программного кода в Atmega16
1. Сохраните файл main.c.
2. Подсоедините светодиод к контакту PORTA0 микроконтроллера Atmega16 как было показано на вышеприведенном рисунке.
3. Выберите пункт меню “Build” и затем выберите “Build Blink”.
5. Теперь выберите пункт меню “Tools” и выберите в ней созданные внешние инструментальные средства. В нашем случае это будет “USBasp”. Кликните по нему.
7. Вы успешно загрузили тестовую программу с мигающим светодиодом в микроконтроллер используя USBASP v2.0 and Atmel Studio 7.0 и можете увидеть как мигает светодиод в собранной схеме. Теперь вы можете аналогичным образом загружать в микроконтроллер любые другие программы.
Популярнейшая программа AVRDUDE_PROG 3.3 предназначена для программирования микроконтроллеров AVR ATmega и ATtiny:
1. Возможность самостоятельного добавления программаторов, настройки скорости программирования и т.п;
2. Возможность самостоятельного добавления МК;
3. Редактирование и настройка отображения Fuses битов;
4. Выбор инверсных или прямых Fuses битов;
5. Окна вывода значений Fuses битов в HEX формате;
6. Сохранение настроек программирования при закрытии программы, т.е. при последующем открытии все настройки восстановятся.
В прошлой статье я рассказал о простом (но очень хорошем) программаторе для прошивки микроконтроллеров AVR ATmega и ATtiny - USBASP AVR программатор. В той же статье я указал какие программы поддерживают данный программатор. Наиболее лучшей из них, на мой взгляд, является программа AVRDUDE_PROG автором которой является Сергей Боднар. О ней мы сегодня и поговорим.
Последняя версия программы AVRDUDE_PROG - 3.3 , из программы всегда можно попасть на сайт разработчика и скачать новые версии.
Программа очень проста в использовании, имеет приятный интуитивно понятный интерфейс на русском языке, поддерживает очень много различных программаторов и практически все микроконтроллеры ATmega и ATtiny. Немаловажно и то, что в программу можно самому вносить изменения - добавлять программаторы, микроконтроллеры, изменять некоторые настройки (все подробно расписано на сайте разработчика).
Программа не требует установки на компьютер, необходимо только разархивировать скачанный файл и можно сразу приступать к работе, поддерживаются все разновидности Windows - от ХР до 10.
Окно запущенной программы AVRDUDE_PROG:
Что есть что:
1:
- окно выбора типа микроконтроллера
- кнопка "Стереть все" - очищает все внутренности микроконтроллера
2:
- чтение калибровочных ячеек микроконтроллера
В данном примере показаны четыре калибровочные ячейки микроконтроллера ATmega8 для внутреннего RC генератора:
ВВ - для частоты 1 МГц (частота по умолчанию)
BD - для частоты 2 МГц
В2 - для частоты 4 МГц
В2 - для частоты 8 МГц
При тактировании микроконтроллера ATmega8 частотой 1 МГц от внутреннего RC генератора (по умолчанию) содержимое первой калибровочной ячейки автоматически учитывается микроконтроллером для подстройки внутреннего генератора. При других частотах - содержимое соответствующей калибровочной ячейки необходимо вручную вводить в регистр микроконтроллера для получения более стабильной частоты (если такое нужно). К примеру, в конструкции "Трехканальный термостат, термоморегулятор, таймер. ", которая работает с тактовой частотой 8 МГц от встроенного генератора с внутренней RC цепочкой, требуется перед прошивкой ЕЕPROM памяти записать в определенную ячейку HEX файла значение калибровочной ячейки для частоты 8 МГц.
3:
- выбор HEX файла для прошивки Flash памяти микроконтроллера, сверка записанного файла с оригиналом, чтение данных из памяти
4:
- выбор HEX или EEP файла для прошивки EEPROM памяти микроконтроллера, сверка и чтение
5:
- выбор программатора (по умолчанию - USBASP)
Если вы будете пользоваться программой скачанной с сайта разработчика то там, по умолчанию (первым в списке), будет идти "USBASP", у меня на картинке 4 разновидности USBASP программатора:
- Usbasp_1M
- Usbasp_4M
- Usbasp_8M
- Usbasp-32кГц
Дело в том, что программатор USBASP позволяет записывать файлы прошивки с двумя скоростями:
- для МК с тактовой частотой 1,5 МГц и выше (без перемычки на J3) - скорость записи 375 кГц
- для МК с тактовой частотой менее 1,5 МГц (с перемычкой на J3) - скорость записи 5 кГц
Для нормальной записи прошивки в МК требуется скорость в 4 раза меньше, чем установленная тактовая частота.
Для прошивки нового МК, у которого по умолчанию тактовая частота 1 МГц, необходимо устанавливать в программаторе перемычку на разъем J3, а сама скорость - 5 кГц, в некоторых случаях начинает нервировать.
Для того, чтобы не портить нервы, не дергаться с перемычкой, я программно установил 4 варианта скорости записи, которые выбираются в зависимости от текущей тактовой частоты МК:
- Usbasp_1M - скорость 187,5 кгЦ, для частот 1-4 МГц
- Usbasp_4M - скорость 375 кГц, для частот 4-8 МГц
- Usbasp_8M - скорость 750 кГц, для частот 8 и более МГц
- Usbasp-32кГц - скорость 4 кГц, для часового кварца
Все эти установки прописаны в самом начале файла "programm.ini" где скорость записи зависит от ключа "-В" и числа после него:
6:
- выбор отображения FUSE битов - прямой (как в UniProf и даташитах) и инверсный (как в PonyProg)
7:
- окно вывода служебной информации о выполняемых и выполненных операциях
Внешний вид окна "FUSES" программы AVRDUDE_PROG:
Тут все просто - расставляем в нужном виде галочки или убираем их и программируем FUSE биты. Если что-то намудрили - нажатие кнопки "По умолчанию" приведет установки FUSE битов в значения "по умолчанию" (сами FUSE биты в МК не изменятся!). Очень внимательно устанавливайте FUSE биты - ошибка может привести к отказу микроконтроллера.
Хочу обратить ваше внимание на самую распространенную ошибку при установки FUSE битов. В большинстве случаев мы изменяем только биты ответственные за выбор источника тактирования и частоту тактирования, к примеру для ATmega8 это: CKSEL0-CKSEL3. По умолчанию у ATMEGA8 тактовая частота 1 МГц от внутреннего генератора - сброшен бит CKSEL0 (стоит галочка). Нам, допустим, нужно установить тактовую частоту 8 МГц от внутреннего генератора - сбросить бит CKSEL2 (поставить галочку), что мы и делаем. Но при этом ЗАБЫВАЕМ УСТАНОВИТЬ БИТ CKSEL0 (убрать галочку)!. В результате, программируя FUSE биты, мы получаем совершенно иной результат - программа не работает, а МК не реагирует на программатор. Забыв сбросить бит CKSEL0 мы получаем другой источник тактирования МК - внешний RC. Отчаиваться не надо, главное разобраться в том, что вы получили в результате. В нашем примере - внешний RC, смотрим даташит, подсоединяем к соответствующим входам МК сопротивление и конденсатор (по схеме из даташита и с нужными номиналами) и восстанавливаем контроль над МК.
Внешний вид окна "Автоматическое программирование" AVRDUDE_PROG:
Здесь можно задать первоначальные настройки для разных случаев использования программы.
Как видите - программа AVRDUDE_PROG проста и понятна в использовании, за что и скажем спасибо Сергею Боднару!
Читайте также: