Как прошить attiny13 через usbasp
Микроконтроллеры AVR можно программировать через ICSP (ISP) интерфейс. Делать это не сложнее, чем пользоваться платой Arduino с загрузчиком (bootloader) в микроконтроллере. С технологией ICSP Вам также будет доступна среда программирования Arduino, а кроме того, и много других возможностей.
Возьмём AVR микроконтроллер ATtiny13 или ATtiny85 и попробуем программировать его используя технологию ICSP.
Для программирования микроконтроллера по технологии ICSP нужен программатор. Чаще всего, подойдёт самый дешёвый USBASP программатор. Казалось бы, программатор лишнее устройство, ведь для платы Arduino он не нужен. Но на плате Arduino уже припаяна микросхема, выполняющая ту же роль что и программатор USBASP для отдельно взятого микроконтроллера. И стоимость платы Arduino примерно равна стоимости микроконтроллера с программатором USBASP. Для знакомства с программированием микроконтроллеров проще приобрести плату Arduino, а работать с микроконтроллерами удобнее с программатором.
Рис. 1. Программатор USBASP.
Рис. 2. Интерфейс программатора для внутрисхемного программирования микроконтроллеров.
Рис. 3. Варианты интерфейсов для внутрисхемного программирования микроконтроллеров.
Рис. 4. Микроконтроллер AVR ATtiny13.
Для программирования микроконтроллера по технологии ICSP будем подключать к программатору следующие ножки микросхемы ATtiny13:
Pin м-к | Сигнал | Описание | Pin ISP6PIN | Pin ISP10PIN |
---|---|---|---|---|
5 | MOSI | Вход данных при программировании | 4 | 1 |
6 | MISO | Выход данных при программировании | 1 | 9 |
7 | SCK | Вход тактового сигнала при программировании | 3 | 7 |
1 | RESET | Сброс | 5 | 5 |
4 | GND | Общий провод | 6 | 4, 6, 8, 10 |
8 | VCC | Питание микросхемы | 2 | 2 |
Обратите внимание, что ножки микроконтроллера 5, 6, 7 задействованные в программировании микроконтроллера, после программирования могут быть задействованы как и все другие ножки микроконтроллера в ваших схемах. Если же к этим ножкам уже припаяны периферийные устройства, они не помешают перепрошивке микроконтроллера в дальнейшем.
Подключаем микроконтроллер к программатору согласно рис. 2, 3, 4 и табл. 1. Подключаем программатор в USB порт компьютера и пытаемся с помощью программы avrdude считать сигнатуру микроконтроллера:
Считаем сигнатуру другого микроконтроллера:
- Электроника
- Программирование
- Назад
- Вперед
- Вы здесь:
- Главная />
- Робототехника />
- Программирование AtTiny 13, 45, 85
Прошивка микросхемы ATtiny13
В версии Arduino_ID_v1.0.4 ArduinoISP отсутствует.
Нужно загрузить библиотеку ArduinoISP.
Файл —>> примеры —>> ArduinoISP
Инструменты —>> Плата —>> Arduino UNO
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "AVRISP mkll"
Версия ArduinoISP version 04m3, 23 July 2011 Randall Bohn
Ошибка при загрузке программы: avrdude: stk500_getsync(): not in sync: resp=0x00
Отключил всё от выходов и входов Arduino UNO, ошибка пропала, программа загрузилась хорошо.
Файл —>> образцы —>> ArduinoISP
Инструменты —>> Плата —>> "Arduino/Genuino UNO"
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "AVRISP mkll"
Версия ArduinoISP version 04m3, 23 July 2011 Randall Bohn
Загрузка прошла без ошибок.
Файл —>> примеры —>> ArduinoISP
Инструменты —>> Плата —>> "Arduino/Genuino UNO"
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "AVRISP mkll"
Загрузка прошла без ошибок.
Файл —>> примеры —>> ArduinoISP
Инструменты —>> Плата —>> "Arduino/Genuino UNO"
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "AVRISP mkll"
Выскочила красная надпись:
Archiving built core (caching) in: C:\DOCUME
1\Temp\
Но это не ошибка, а информационное сообщение "Сохранение скомпилированного ядра (кэширование) в. (здесь директория)
Файл —>> примеры —>> ArduinoISP
Инструменты —>> Плата —>> "Arduino/Genuino UNO"
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "AVRISP mkll"
Загрузка прошла без ошибок.
Пробуем прошить ATtiny13
Микросхему ATtiny13 подключаем вот по такой схеме к Arduino UNO
Программа Arduino_ID_v1.8.9
Программатор Arduino UNO
Файл —>> Настройки —>> Дополнительные ссылки для менеджера плат:
Вставляем в поле ссылку ниже.
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.jso n
Нажать кнопку "ОК"
Инструменты —>> Плата —>> Менеджер плат —>>
И в самом низу листа выбрал:
DIY ATtiny by James Sleeman, http://spat4cs.gogo.co.nz/ версия 2018.9.9
Платы в данном пакете:
ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, and variants thereof
Платы загрузились с интернета в папку:
C:\Documents and Settings\пользователь\Local Settings\Application Data\Arduino15
Если что, то папку с платами ATtiny13 можно распаковать туда же, без установки, все платы будут работать так-же, архив лежит ниже по ссылке.
Разные версии cores13, для прошивки микросхемы ATtiny13 и не только.
Настройки для ATtiny13:
Инструменты —>> Плата: ATtiny13
Инструменты —>> Processor Version: "ATtiny13a"
Инструменты —>> Порт: "ваш порт"
Инструменты —>> Программатор: "Arduino as ISP"
Загрузил пробный скетч:
Такой скетч тоже работает:
Загрузка прошла сразу и без ошибок.
Что же среда делает при нажатии на кнопку «Записать загрузчик»?
Arduino IDE в данном случае просто выставляет нужные фьюзы микроконтроллера.
К примеру, мне нужно, чтобы ATtiny13 работал на частоте в 4.8 мГц, я выбираю нужную мне частоту и только один раз жму кнопку «Записать загрузчик» — всё. Теперь микроконтроллер будет всегда работать на заданной частоте, если будет нужно изменить частоту опять — проделываем описанную выше процедуру.
Сразу скажу, что рост частоты приведёт за собой рост потребления контроллера, чем чаще переключаются транзисторы в микроконтроллере тем больше он потребляет.
Для каких-то там мигалок, я считаю, выполнение 1.2 миллиона инструкций будет с лихвой, да и на такой частоте микроконтроллер потребляет около 1 миллиампера.
Прошиваем ATtiny13 с помощью программатора USBASP
Подключаем ATtiny13 к программатору вот по такой схеме.
Настройки для прошивки ATtiny13 программатором USBASP в программе Arduino ID v1.8.9
Инструменты —>> Плата: ATtiny13
Инструменты —>> Порт: "COM3"
Инструменты —>> Программатор: "USBasp"
Все версии программы Arduino ID успешно прошивают ATtiny13, при установке нужных библиотек в программу Arduino ID,
в нашем случае для ATtiny13.
Однако нужно помнить, что должны быть установлены свежие драйверы для программатора USBASP
А если программатор новый(только пришёл с али), то нужно его ещё прошить новой прошивкой для корректной работы.
Прошивка находится в архиве, имя usbasp.atmega8.2011-05-28.hex
Если хотите знать как обновить прошивку USBasp, пишите в комментариях, добавлю по мере возможности.
Не забываем ещё про перемычку в программаторе USBasp.
Перемычка JP1: питание программируемой микросхемы.
Перемычка JP3: Обязательно поставить, с этой перемычкой работают частоты — 9.6/4.3/1.2/
скриншот настроек в программе Arduino ID.
Без всего этого удачных прошивок может и не быть.
Прошиваем ATtiny13 с помощью программы SinaProg v2.1.1.Rus
Программатор USBASP.
Перемычка JP3: Обязательно поставить.
Скриншот настроек программы.
Фьюзы ни какие не трогаем, всё по умолчанию
Прекрасно зашиваются файлы *.hex
Прошиваем ATtiny13 с помощью программы AVRDude Prog v3.3
Программатор USBASP.
Перемычка JP3: Обязательно поставить.
Скриншот настроек программы.
Фьюзы ни какие не трогаем, всё по умолчанию
Прекрасно зашиваются файлы *.hex
USBASP — USB программатор для программирования микроконтроллеров AVR
Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.
Программатор USBASP
Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
- программатор;
- соответствующее программное обеспечение для записи данных в МК.
Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.
Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.
Мы рассмотрим наиболее «навороченную» версию программатора:
Характеристики программатора:
- работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера — архив в конце статьи);
- скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек;
- имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой);
- поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах);
- питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА).
Назначение джамперов:
- разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты);
- разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC);
- разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц).
Подробнее о разъеме JP3
Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.
Если вы будете пользоваться программой AVRDUDE_PROG, выложенной на сайте, то о перемычке можно забыть
Программатор поддерживается следующим программным обеспечением:
— AVRdude
— AVRdude_Prog
— Bascom-AVR
— Khazama AVR Prog
— eXtreme Burner AVR
Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.
Распиновка 10-контактного кабеля программатора USBASP :
1 — MOSI — выход данных для последовательного программирования
2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB)
3 — NC — не используется
4 — GND — общий провод (минус питания)
5 — RST — подключается к выводу RESET микроконтроллера
6 — GND
7 — SCK — выход тактирования данных
8 — GND
9 — MISO — вход данных для последовательного программирования
10 — GND
Установка драйверов для программатора USBASP
Установка драйвера для программатора USBASB очень проста:
- подсоедините программатор к USB порту компьютера, при этом в диспетчере устройств появится новое устройство «USBasp» с желтым треугольником и восклицательным знаком внутри, что означает — не установлены драйвера;
- скачайте и разархивируйте файл «USBasp-win-driver-x86-x64-ia64-v3.0.7»;
- запустите файл «InstallDriver» — будут автоматически установлены драйвера для программатора;
- проверьте диспетчер устройств — желтый треугольник должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»;
- программатор готов к работе.
FUSE-биты при программировании USBASP AVR:
Архив «usbasp.2011-05-28» содержит папки:
= BIN:
— win-driver — драйвера для программатора
— firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48
= circuit — схема простого программатора в PDF и Cadsoft Eagle
При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).
Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье
usbasp.2011-05-28 (518,9 KiB, 24 421 hits)
Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина
Также данный программатор можно купить на AliExpress (постарался подобрать для вас одно из самых выгодных предложений на AliExpress, с большим количеством положительных отзывов).
Программирование микроконтроллеров AVR фирмы Atmel
(32 голосов, оценка: 4,97 из 5)
Комментарии
USBASP: USB AVR программатор для микроконтроллеров ATmega, ATtiny — 156 комментариев
Здравствуйте!
Меня зовут Ирина, мне очень понравился Ваш сайт «microkontroller.ru», хотела бы его приобрести.
Если моё предложение Вас заинтересовало, то напишите, пожалуйста, мне на почту для детального обсуждения.
С уважением, Ирина Дубняк
Спасибо, Ирина, за предложение, но сайт не продается
Интересует схема разъема для программирования микроконтроллера atmega64a-au
К сожалению, в данный момент не могу помочь с данным вопросом
Где узнать про attiny44a-ssu чем прошить
Можно прошить с помощью CVAVR + STK200, а можно с помощью Arduino IDE
Здравствуйте. По какой-то причине, программа AVRdude_Prog отказывается прошивать серию Attiny24,44,84.
Прошивает их только без фьюзов. Стоит поставить галочку FUSES и при прошивке, доходит до какого-то конкретного момента и полностью зависает программа.
Пробовал практически всё: менять частоту, ставить перемычку на J3, менять настройки фьюзов, но зависает при любом варианте, даже при стоковых фьюзах.
При помощи TL866II всё шьётся при любых установках, но она не поддерживает прошивку Attiny через порт ICSP, а нужно именно внутрисхемное программирование.
Буду рад любой помощи! Заранее спасибо!
Здравствуйте, Дмитрий. Был бы рад помочь, но, к сожалению, слабо разбираюсь в этих вопросах. В этой тематике хорошо разбирался предыдущий админ данного сайта — он и написал эту статью.
А есть ли возможность с ним как-то связаться? Он оставил какие-то контакты?
Нам бы очень помог любой совет.
Сайт его интернет-магазина — shop-microkontroller.ru (ссылка на него есть также в статье). На мои письма он уже давно, к сожалению, не отвечает. Но, может быть, у вас получится с ним связаться.
Дмитрий, всегда рады помочь ))
Добрый день, хочу собрать «пикселькит», в основе микроконтроллер ATmega8A-PU, для того чтобы прошивка работала корректно необходимо изменить фьюз-биты (H-C9, L-9F). Использую программатор из данной статьи и программу khazama avr programmer. Подключено правильно, фьюз биты читаются. При попытке записать измененные значения сначала появляется сообщение что необходимые фьюз биты записаны, после появляется ошибка лок биты записать не удалось и после этого контроллер больше не работает. В чем может быть ошибка, в какую сторону капать?
Здравствуйте, Андрей. К сожалению я сам в этом вопросе не очень разбираюсь, а автор данной статьи у нас, к сожалению, давно не появляется. Могу только посоветовать исходя из других комментариев к данной статье снизить частоту общения программатора с МК с помощью джмапера на JP3 и попробовать сменить микроконтроллер, возможно другого типа, например, ATmega16. Или ATtiny, подешевле, чтобы не так жалко было если испортите. Все таки проблема у вас достаточно нетривиальная, наполовину все работает, а на оставшейся половине операций выдается ошибка. Можно попробовать сменить программатор если у вас есть второй экземпляр программатора
Здравствуйте.
В программе khazama avr нами был замечен баг — у неё нарушена последовательность прошивки лок-битов, похоже что она пишет их не в той последовательности и по итогу не может их записать. В большинстве случаев — это не критично, но если очень нужно — то AVRdude_Prog работает правильней.
Спасибо что подсказали эту особенность другим посетителям нашего сайта, которые будут читать эту статью
скачанный Архив «usbasp.2011-05-28» не содержит папку
win-driver — драйвера для программатора
Так там же есть отдельная ссылка для скачивания win-driver’а — она находится прямо под ссылкой для скачивания программатора
При считовании калибровочных ячеек генератора выдает ошибку:avrdude.exe: set SCK frequency to 187500 Hz
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
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.
avrdude.exe done. Thank you.
О чем это говорит?
Эта ошибка на 3х кристаллах ATMEGA 168 пяти кристаллах ATMEGA 8. На заведомо проверенном кристалле считывается без ошибки.
Здравствуйте Вячеслав.
Попробуйте:
1. Джмапер на JP3 (понизить частоту общения программатора с МК)
2. Попробовать другоую программу, к примеру Khazama)
3. Проверить правильность соединения.
Также, возможно, если МК уже были в работе, то у них установлены FUSE на тактирование не от внутреннего генератора.
Попробуйте перепрошить программатор.
С уважением, Admin.
здравствуйте, попробуйте перемычку переставить на 5v
А и забыл , или попробуйте контроллер отдельно запитать.
Доброго времени суток, спасибо за ваши труды, очень познавательно. Начал изучать программирование языка си, все вроде делаю правильно программатор usbasp, пишу в атмел студио, мк атмега 8A-PU, прошиваю avrdude, вот код
int main(void)
<
DDRC = 0b0000001;
while (1)
<
PORTC = 0b0000001;
>
>
нету у меня на этом порту этих пяти вольт чтобы зажечь светодиод. Там 0,26 вольта на ножке. Атмел говорит компиляция успешна. Avrdude говорит все верно прошилось без ошибок. А светодиод не горит нету этих 5-вольтов. Что делать не пойму. Может подскажете
Здравствуйте, я вам ответил на ваш аналогичный комментарий к этой статье. Просьба на будущее не писать один и тот же вопрос к разным статьям, то есть не дублировать комментарии.
Где можно приобрести программатор для прошивки ATMEGA 162 16AU
Здравствуйте Владимир.
Или у китайцев, или через наши интернет-магазины
здравствуйте! не подскажите, у меня при попытке запрограммировать програматор не могу заставить комп видеть файлы драйверов. они стоят скопированные в папке «загрузки» и открывая ее их папку вижу usbasp.2011-05-28. но при выборе опции» загрузить драйвер с пк, не видит комп тот файл, даже если ему прописываю путь, и через окно обзора папок не видит. файл есть , по моему 518 кб. валяються 2 года два программатора без толку..
извините за беспокойство. причина была в том что не прочел внимательно и не распаковал архов. после чего увидел и вроде прописал драйвер. так было в конце написано. как можно это проверит?
ваши драйвера для линукса.
Не понял Вас, Игорь
Добрый день .китайский usbasp.не может запрограмировать Atmega8815.подключено правильно выдаёт вот это
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.
avrdude.exe done. Thank you.
забыл дополнить.джампер j3 установлен.прошиваю FUN CART на 8815+24с64
Здравствуйте Сергей.
У Вас нет общения программатора с контроллером.
Проверьте соединения, перепрошейте програатор.
С уважением, Admin.
А корпус контроллера как-то связан с прошивкой? Собрал программатор в DIP28, прошил прошивкой из архива usbasp.2011-05-28, установил fuse. Собрано без ошибок. Программатор вроде определяется, но при попытке что-то считать или прошить вылетает ошибка и загорается красный светодиод программирования постоянно и не гаснет. пока горит красный,программатор перестает определяться даже после перезапуска ПО. Сбрасывается только после отключения от USB ПК. При этом китайский программатор с ALI, как на картинке в статье (в TSOP32) работает с теми же драйверами и AVRDUDE_PROG из архива.
Здравствуйте Андрей.
У контроллера в DIP корпусе чуть-чуть меньше выводов.
Надо Вам посмотреть по схеме на программатор не используются ли там выводы МК которые отсутствуют в DIP.
С уважением, Admin
Добрый день.
Имеется плата с МК ATmega8 и программатор USBASP, прошивал через AVRDUDE PROG 3.0 . Прошивалось все нормально и МК работал как надо. Затем я припаял к МК внешний кварц на 16 МГц и два конденсатора по 22 пФ к ножкам XTAL1, XTAL2 и GND. После этого я попытался прошить МК, но в AVRDUDE PROG выскакивает окно со словом «Ошибка», а в окне сообщений следующее:
«Cформированная командная строка:
avrdude.exe -p m8 -c usbasp -P usb -U calibration:r:calibration.hex:r
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.
avrdude.exe done. Thank you.»
Потом я заметил, что такое сообщение выскакивает куда бы я не нажимал (Стереть все, чтение калибровочных ячеек и т.д.).
Такое чувство, что программатор вообще не видит МК. У меня есть еще два новых и неиспользуемым МК ATmega8, с ними та же ситуация.
Светодиод питания на USBASP горит, а светодиод программирования зажигается всякий раз, как я пытаюсь сделать хоть что-нибудь, т.е. USBASP работает.
Может ли это все как-то связано с вашим сообщением:
«При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).»?
То есть может ли то, что я припаял кварц и конд-ы, как то повлиять на работу программатора?
Программированию учусь пару месяцев, был бы очень рад вашей помои и совету.
Спасибо
Посоветуйте! Сгорел МК ATMEGA8A-PU в Паяльной станция Mypovos 8586. Смогу ли я сам, используя ваш дивайс USBASP — USB программатор прошить новую купленную мною МК? В ремонтных мастерских никто не берется поставить новую МК с прошивкой. Все советую покупать новую паяльную станцию. Имею опыт программирования на ПК, есть Ноут бук с W10, но никогда не пере прошивал. Заранее благодарен, с уважением — Евгений.
Здравствуйте Евгений.
Да, сможете. Выбираете в программе микроконтроллер ATMega8.
С уважением, Admin.
А ты знаешь что с этой прошивкой программатор перестает работать не видит МК
Здравствуйте Игорь.
Вопрос не понятен, да и не понятно к кому Вы обращаетесь.
С уважением, Admin.
Выводы 4 и 6 разъёма ISP на этой плате отнюдь не GND, а RX/TX контроллера. На фото видны дорожки к ножкам 30/31 и резистор R7 в линии TX.
Вот как на этой схеме:
fischl.de/usbasp/bilder/usbasp_circuit.png
только резистор R7 на этой плате реально 1 килоом.
Я бы посоветовал к этому программатору как дополнение изготовить или приобрести AVR doctor, очень нужное «понимаете» устройство к программатору.
Доброго дня!
При прошивке ATtini2313 вывод SCK был подключен через светодиод и резистор на землю на макетной плате, после этого программатор перестал видеть ATtini2313. Выдает ошибку :
avrdude.exe: set SCK frequency to 4000 Hz
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
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.
avrdude.exe done. Thank you.
Возможно ли спасти программатор. Программа на ATtini2313 при этом продолжает нормально работать в том числе вывод PB7.
Спасибо.
Здравствуйте Александр.
Программатор пострадать не должен.
Попробуйте понизить частоту (замкнуть JP3).
Возможно после прошивки изменилась тактовая частота МК, или (и) источник тактирования.
С уважением, Admin.
Здравствуйте, все разобрался чип был уже запрограммирован в кирпич, буду фьюз бит доктор делать может исправится.
хорошее дополнение к любому программатору AVR. Я изготовил сразу к своему USBasp-у и спасал уже ни один раз.
доброго времени суток! подскажите на счет фьюз битов в казаме как правильно ставить галочки? когда галочка стоит в читбоксе это что значит? фьюз бит запрограммирован или нет?
Здравствуйте Игорь.
Галочка означает, что фьюз бит сброшен.
Проверить можно в любой программе по биту SPIEN.
По умолчанию он установлен. Если в программе у SPIEN нет галочки, то это означает галочка сбрасывает бит (прямое отображение битов), а если стоит галочка — то наоборот (инверсное отображение битов).
С уважением, Admin.
Здравствуйте, подскажите, пожалуйста, в чем проблема. Прошиваю атмегу 8535 новую и дудка ругается по страшному, уже и прошивку менял и хазамой программно частоту менял, все одно. На форуме прочитал то что кристаллы бракованные, но у меня и атмега 8535 и ат90с2313 не берется. Вот ссылка на ошибку img.mysku-st.ru/uploads/images/01/56/73/2017/06/13/f930b3.png
Здравствуйте Алексей.
Возможно проблема в ошибке подключения МК или проблемы в программаторе.
С уважением, Admin.
Ну вроде программатор шил собрата, только я его загубил попуткой физов, надо будет исправлять, и вроде подключение правильное по даташиту, только по рекомендации некоторых сайтов я спаял не все выводы GND, может в этом проблема, посмотрю. А вот про такой программатор вы ничего не знаете — chipster.ru/catalog/dev-tools/programmers/5064.html?
Китайский программатор точно будет изменять частоту программирования с новой прошивкой? Может он не сможет шить кристаллы с частотой по умолчанию 1 Мгц.
Не знаете как узнать запустился кристалл или нет?
Здравствуйте Алексей.
Возможно ошибка в соединении МК и программатора.
С уважением, Admin.
Доброго времени суток! У меня вопрос, работает ли данный программатор в ХР ?
Здравствуйте Дмитрий.
Работает.
С уважением, Admin.
Будет ли он работать с Algorithm Builder.
АБ его определять не будет, но можно прошить им файлы созданные в АБ.
С уважением, Admin.
Здравствуйте Вадим! Подскажите пожалуйста подключение данного в описание программатора к микроконтроллеру атмега128а. Заранее благодарю.
Вопрос: Программатор определяется нормально системой ( W 7). Прошивка от 28.05.2011. Драйвера оттуда же.
В свойствах устройства VID&PID соответствуют запрашиваемым дудкой, однако AVRdude «could not find device
«USBasp» with vid=0x16c0 pid=0x5dc» Что это может быть? Почему дудка не читает вид и пид? Может нужно дополнительно прописать их куда-то? Помогите.
Здравствуйте!
Причины могут быть разные, посмотрите здесь:
arduino.ru/forum/apparatnye-voprosy/na-ide-1612-perestal-rabotat-usbasp
С уважением, Admin.
Здравствуйте Вадим! Подскажите смогу ли я пролить атмегу128а таким программатором как Вы описали. Заранее благодарю.
И ещё, что то не получается загрузить архив с драйверами. Не могли бы Вы скинуть на почту. Спасибо.
Здравствуйте, что Вам конкретно нужно. Спрашиваю, потому, что на комментарии отвечаю в особом окне, и не всегда знаю к какой он статье. Помогу с удовольствием. Спасибо за интерес.
Здравствуйте, да сможете.
Здравствуйте смогу я прошить вышеуказанным програматором модуль стиральной машины Атлант 50с124 . на процесоре написано MLT22848.
Здравствуйте Констатин.
Нет, не сможете.
Доброго времени, подскажите USBASP AVR программатор поддерживает прошивку МК ATmega32L-8AU ?
Здравствуйте Андрей!
Да, поддерживает.
С уважением, Admin.
Добрый день! Подскажите пожалуйста получил програматор с китая точно такой же как на фото сверху. Как мне убедиться что у него за прошивка стоит,какой программой его проверить без использования других прошивальщиков?
При подключения к ноутбуку загорается красным led1 , драйвер установлен.
Здравствуйте!
Если программатор выполняет свои функции, то и без разницы что за программа в нем зашита.
С уважением, Admin.
Добрый день!
Имеются два программатора USPasp.
С родной прошивкой ведут себя так
Если прошить последнюю, то в AVRdude можно сделать только одну операцию. То есть, например, прочитали микроконтроллер — и всё, все последующие попытки что-либо сделать выдают вот такую ошибку
Если программатор вынуть/вставить, то опять можно выполнить одну операцию.
Есть у кого-нибудь мысли, что это и как с этим бороться?
Здравствуйте!
А какой микроконтроллер стоит у Вас в программаторе?
С уважением, Admin.
Программатор USB ISP для AVR: Ещё один шаг в сторону от ардуинонизации
В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.
Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.
Технические характеристики
ATmega серия
Tiny серия
Серия Classic
CAN серия
PWM серия
Внешний вид
Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.
Культура исполнения и вправду хромает, мне в глаза сразу бросились криво припаянные гребёнки. Везде где только можно — имеются следы флюса, причём с окислами, по всей видимости, программаторы давно валялись на складе, а сборка их производилась с присущей китайцам быстротой.
Некоторые отверстия не целиком заполнены припоем
SMD-элементы тоже криво припаяны
Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл
Размеры платы несколько больше USB-TTL-конвертера на CP2102
Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.
Органы управления на плате
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.
Установка драйверов
1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».
3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы. »
4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»
5) «Всё равно установить этот драйвер»
6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены
Прошивка собрата
Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:
Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.
При этом периодически будет выпадать такая ошибка, закрыв окно, программа продолжит работу.
Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер
Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As. ». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.
Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.
Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.
Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.
Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.
Находятся они по пути «Command» -> «Fuses and Lock Bits. », откроется окно:
Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.
Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz)
В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.
AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.
Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.
Связь с контроллером ATtiny13A в корпусе SOIC8
Соединение согласно схеме ниже. Но тут всё немного интереснее.
Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.
AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.
Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3
2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3
Внести туда четыре строчки кода и сохранить. (взято отсюда)
После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.
Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.
Программатор с заводской прошивкой нормально работает с ATtiny13, если не считать постоянно появляющихся окон с ошибкой, о чём раннее уже рассказывал.
Но с программатором на новой прошивке уже появляется иная ошибка с невозможностью прочесть сигнатуру (цифровую подпись) контроллера.
Но стоит замкнуть перемычку JP3, и можно спокойно работать
Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.
Интеграция программатора в Atmel Studio 7
Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.
Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.
На верхней панели инструментов выбрать «Tools» — «External Tools. »
Откроется небольшое окно, нажать «Add»
В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.
Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой
Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию
После заполнения полей нажать «Apply» и «ОК». Окно закроется
Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.
Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize. »
Откроется следующее окно:
Перейти во вкладку «Commands» — нажать кнопку «Add Command. »
Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»
«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».
Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.
При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».
И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.
Дополнение по фьюзам программатора
Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):
Как рекомендует выставить разработчик:
Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.
Если всё сходится, можно нажимать «программирование»
Выводы
Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.