USBasp Программатор для AVR микроконтроллеров — Electronics Blog
Программатор за копейки которым можно прошить целую кучу камней, настолько популярен среди любителей МК что и говорить не стоит но все же. Купить его не составит труда, на Aliexpress предложений великое множество. В основном постоянно для прошивки им пользуются начинающие, продвинутые предпочитают использовать загрузчики.
Характеристики
- Напряжение питание можно переключать 3.3V /5V
- USB интерфейс подключения к ПК
- Индикация питание и программирование
- ISP интерфейс (внутрисхемное программирование)
- Работа в различных ОС (Linux,Windows,Mac)
Список поддерживаемых контроллеров:
- ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
- AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
- ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325, ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
- AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
Разъем для соединения:
Назначение контактов:
- MOSI (Выход данных)
- VTG +5V (Выход +5V, питание от USB порта)
- Не используется…
- GND (Общий провод или минус питания)
- RESET (Аппаратный сброс МК)
- GND
- SCK (Тактовый вывод для синхронизации)
- GND
- MISO (Вход данных)
- GND
Софт для работы:
Для начала необходимо установить драйвер, приводить примеры как это сделать на всех поддерживаемых ОС не буду, приведу только с Windows 7 x64.
- Качаем архив с драйвером: скачать
- Распаковываем папку из архива куда нибудь
- Вставляем программатор в USB порт
Система естественно не найдет нужный драйвер
Переходим в диспетчер устройств, находим USBasp далее правый клик выбираем «Обновить драйверы…»
В новом окне выбираем «Выполнить поиск драйверов на этом компьютере»
Нажимаем «Обзор» указываем путь к папке с драйвером, жмем далее
Жмем «Все равно установить этот драйвер»
Если все OK то получаем
Так с дровами разобрались теперь о ПО для работы.
AVRDUDE
Окна AVRDUDE_PROG 3.3
Usbasp usbisp avr programmer
Автор: Сергей · Опубликовано 11.07.2017 · Обновлено 08.06.2018
Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.
Технические параметры► Напряжение питания: 5 В, DC
► Интерфейс: USB 2.0
► Программирование/ чтение: Atmel (AVR)
► Габариты: 70 мм x 18 мм x 10 мм
► Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.
Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.
Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.
Назначение выводов:
► 1 – MOSI
► 2 – VCC
► 3, 8, 10 – GND
► 4 – TXD
► 5 – RESET
► 6 – RXD
► 7 – SCK
► 9 – MISO
Световая индикация
► Красный светодиод G — Включен
► Красный светодиод R — Обмен данными
Перемычки
► JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
► JP2 — SERVICE, обновления прошивки USBasp.
► JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.
Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.
Список поддерживаемых AVR микроконтроллеров:
► Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
► Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
► Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
► Can Series: AT90CAN128
► PWN Series: AT90PWM2, AT90PWM3
Подключаем программатор к USB порту на компьютере, если все нормально, на плате загорится красный светодиод. Далее операционная система начнет поиск драйвера
Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств» появится устройство «USBAsp» с восклицательным знаком.
Скачиваем архив с цифровой подписью, разархивируем и запускаем «InstallDriver.exe»
Драйвер установлен, в «Диспетчере устройств» пропадет восклицательный знак с «USBAsp».
Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.
Программа для USBAsp V2.0Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.
Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:Program FilesArduinohardwarearduinoavrootloadersatmega» и выбираем «ATmegaBOOT_168_atmega328.hex», жмем «Открыть»
Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».
В конце, выйдет диалоговое окно, о удачном окончании программировании.
Ссылки
Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL)
Скачать программу AVRDUDE_PROG v.3.3
Купить на Aliexpress
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Купить в Самаре и области
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Популярное
- Устройство и программирование микроконтроллеров AVR для начинающих – 143
- Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
- Двухканальный термостат, терморегулятор на ATmega8 – 67
Программатор USBASP — устройство, распиновка, подключение, прошивка
Программатор USBASPСегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.
Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для 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, 14 722 hits)
Скачать «USBasp-win-driver-x86-x64-ia64-v3.0.7» (10,9 MiB, 27 689 hits)
Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина
(31 голосов, оценка: 4,97 из 5)
Популярное
- Устройство и программирование микроконтроллеров AVR для начинающих – 143
- Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
- Двухканальный термостат, терморегулятор на ATmega8 – 67
Программатор USBASP — устройство, распиновка, подключение, прошивка
Программатор USBASPСегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.
Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для 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, 14 722 hits)
Скачать «USBasp-win-driver-x86-x64-ia64-v3.0.7» (10,9 MiB, 27 689 hits)
Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина
(31 голосов, оценка: 4,97 из 5)
Программирование микроконтроллеров AVR под LINUX: программатор USBasp
USBasp — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.— работа под любой платформой: Windows, Linux и Mac OS X
— какие-либо специальные компоненты или smd не нужны
— скорость программирования до 5 кБ/сек
— SCK-джампер позволяет программировать низкоскоростные контроллеры (
— в планах: последовательный интерфейс (например для отладки)
Схема программатора
Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!
Заливка прошивки
Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
Установки джамперов
J1 — источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 — обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
Установка драйверов под Windows
Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver«. Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex
Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду «make main.hex«
4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией «make flash«). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией «make fuses«).
Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install
Программы для работы с программатором
- AVRDUDE — поддерживается USBasp начиная с версии 5.2
- BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6
- Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude
- eXtreme Burner — AVR — программа Windows GUI для USBasp
Скачать прошивку, исходники, драйверы вы можете ниже
Печатные платы
Под данный программатор разработано более 10 различных вариантов разводки печатной платы, которые можно скачать ниже, либо на страничке официального сайта.
http://www.fischl.de/usbasp/ — оригинальная разработка
Программатор Usbasp — все сакральные знания!
UsbAsp программатор – это независимое миниатюрное устройство, позволяющее программировать микроконтроллерные сборки, прилагая при этом минимум усилий.
Его используют для прошивки восьмибитных МК от Atmel, которые широко известны под аббревиатурой AVR и имеют доступ к загрузке через SPI-порт. Программатор обладает целым рядом достоинств:
[contents]
- высокая надёжность и стабильность в работе;
- простота в подключении и управлении;
- компактность.
Кроме перечисленных характеристик он полностью совместим с большинством известных операционных систем. Чтобы скачать драйвер для usbasp нужно перейти по ссылке. Для работы с программатором достаточно владеть начальными знаниями в области электроники и быть уверенным в своих силах.
Подключение UsbAsp. Распиновка устройства
Микросхемы Atmel с режимом последовательного программирования (ISP), применяемые в программаторе, могут иметь один из двух стандартных разъёмов: 10-типиновый или 6-типиновый. Ниже приводим обозначение контактов с расшифровкой.
– MOSI. Предназначен для вывода данных в режиме последовательного программирования.- — VCC +5V. Подаёт напряжение +5В на внешнее устройство через USB-порт. При этом наибольшее значение тока не должно превышать 200мА во избежание выхода из строя USB-контроллера.
- – NC. Контакт не используется.
- – GND. Общий провод.
- – RESET. Подключён к выводу RESET МК.
- — GND. Общий провод.
- – SCK. Используется для синхронизации данных.
- — GND. Общий провод.
- – MISO. Предназначен для ввода данных в режиме последовательного программирования.
- — GND. Общий провод.
Отличие 6-типинового варианта заключается в отсутствии одного не задействованного контакта и, объединённых в один вывод, контактов GND. Оба варианты показаны на рисунке.
Переходник для usbasp
Не стоит отчаиваться, если разъём Вашего программатора не совпадает с разъёмом на плате микроконтроллерного устройства. Воспользуйтесь одним из двух вариантов: купите готовый переходник или изготовьте его самостоятельно. Промышленные переходники для usbasp не имеют внутри ни активных, ни пассивных радиокомпонентов. Поэтому для успешного внутрисхемного программирования достаточно воспользоваться переходником, контакты которого при «прозвонке» будут совпадать с маркировкой на рисунке. Стоимость универсального переходника для программатора находится в пределах 2$, что вполне приемлемо.
Как пользоваться Usbasp программатором?
Купить usbasp программатор для avr микроконтроллеров – значит преодолеть наиболее лёгкую часть задания. Гораздо сложнее научиться грамотно им пользоваться. Будущие «победы» будут зависеть от внимательного подхода к подключению аппаратной части и конфигурированию программной части. Корректно подобранный драйвер и правильно выставленные метки в меню «Fuses & lock» AVRDude являются залогом успеха. Важно отметить, что перед началом прошивки программируемое устройство нужно запитать, если usb-подключения недостаточно.
Usbasp-драйвер для программатора
В глобальной сети существует достаточное количество ресурсов, которые предлагают загрузить универсальный Usbasp-драйвер с поддержкой операционных систем Windows 10, Windows 8.1, Windows 7, Windows XP. Сложнее будет найти usbasp-драйвер для windows 10 x64 и windows 8 x64. Однако существуют и такие англоязычные сайты. Скачать Usbasp-драйвер для Windows XP, 7, 8 – не проблема. Поэтому перед началом пользования устройством следует скачать драйвер для usbasp программатора в соответствии с проинсталлированной операционной системой.
Подключаем «электронный брелок» к компьютеру и открываем вкладку «Диспетчер устройств». При подсоединении важно избегать usb-удлинителей, в том числе разъёмов на передней панели системного блока. Через опцию «мастер нового оборудования» указываем местоположение usbasp-драйвера для avr и завершаем инсталляцию. При успешном результате система обнаружит новое устройство и присвоит ему имя.
AVRDude – программа для usbasp программатора
AVRDude или AVRDude prog – относится к разряду наиболее распространенных программ, активно используемых для прошивки МК фирмы Atmel. Кроме всем известного usbasp, avrdude способна обслуживать более 50-ти видов других программаторов. Вкратце остановимся на том, как пользоваться usbasp avrdude prog.
Данное ПО имеет консольный интерфейс. Тем не менее, avrdude наиболее известна в комплексе со сторонними графическими оболочками, которые ничем не отличаются от стандартных Windows-приложений. Внутри графической avrdude prog есть всё для работы с usbasp, включая русифицированное меню. В нём необходимо задать тип МК и программатора, порт подключения, скорость обмена данными, разрешение на коррекцию фьюзов и прочие данные. Далее выбираем файл прошивки и нажимаем «Программирование». По окончании можно выполнить верификацию. Теперь переходим на соседнюю вкладку, выставляем нужные Fuse-биты и нажимаем «запись». После этого МК прошит, и можно отключить питание.
Программатор usbasp купить не сложно
Внешний вид современного программатора напоминает флеш-накопитель. К нему прилагается шлейф с разъёмом. Фирменные экземпляры комплектуются инструкцией и диском. Купить usbasp можно всего за 3-4$ во многих интернет-магазинах. Наиболее низкие цены на программатор usbasp в aliexpress. Здесь можно заказать новинки, работающие с 64-битными ОС.
С н/п Владимир Васильев
Практическая электроника — Программатор USBasp
Программатор USBasp
Достаточно давно мною был собран программатор AVR910 из статьи. Но в процессе эксплуатации оказалось что он достаточно медленно загружает прошивку размером больше 2Кб. Приходится ждать минуту две и больше. Это совсем ни куда не годится. Решено было собрать простейший программатор USBasp. Несмотря на то что статей по этому поводу написано много, напишу свою. Схема данного программатора ниже.
Официальный сайт данного проекта http://www.fischl.de/usbasp/. На официальном сайте можно скачать различные варианты разводки платы-на любой вкус как говорится. Там же прошивка, и драйвера. Разводку своей платы я брал с другого сайта, она принципиально ни чем не отличается. Слегка подкорректировал и выкинул лишние элементы. Мне не нужна перемычка Self programing. Она нужна раз при программировании микроконтроллера. Ни вижу смысла тратить целую перемычку, если можно припаять проводки к дорожкам. Для серийного производства(100штук в неделю например) она явно нужна. Питание отладочного устройства(Supply target) тоже реализовано по другому. Добавил защитные резисторы, на случай КЗ в нагрузке,ток не должен превысить 0,5A.Микроконтроллер я использовал atmega48, он дешевле. Разводка вот такая:
Как всегда веселый картинки ЛУТа.Там немного пострадала надпись SCK.Пока я болтал по телефону, рука создала полигон на плате.Распечатал и удивился.
Вытравленная плата с просверленными отверстиями.
После лужения флюсом F5.
А теперь начинается самое интересное. Программирование фузов и заливка прошивки. Программатор можно собрать с использованием atmega8, atmega88,atmega48.Для каждого микроконтроллера есть своя прошивка в архиве на сайте программатора. Какой выбрать микроконтроллер для программатора? Я выбрал тот который дешевле-atmega48.
Самый ответственный момент это фузы! Если их не правильно зашить-можно «убить» микроконтроллер. На сайте откуда я брал фузы, была картинка которая ввела меня в заблуждение. В итоге чуть не убил микросхему. Сами судите:
Cлева это то что было на сайте, с права это как нужно расположить фузы в ChipBlaster. Прошивал старым программатором AVR910,о котором вначале говорил. После прошивки загорается красный светодиод.
Давай все же разберемся с фузами, что бы не приключилось беды. Точнее мне пришлось это сделать, после того как я прошил по левой картинке. Как известно не запрограммированый фуз это такой fuze=1. Т.е. если мы не лезли туда куда не нужно, там стоит не запрограммированным fuse=1. Когда мы хотим установить фуз, значит нужно поставить галочку, тогда fuse=0.Судя по картинке с лева ни все так считают. В оффициальной документации от производителя микроконтроллера четко написано-не запрограммированным считается фуз=1. Вот из этого и будем исходить. Вообще что нам нужно от этих фузов? Заставить работать микроконтроллер от кварцевого резонатора на 12мгц, а остальное для нас не так важно. По умолчанию для atmega48,atmega88 фузы стоят как то так:
Что это значит? Ну все нам знать не обязательно, интересуют только секции CKSEL3,CKSEL2,CKSEL1,CKSEL0, и CKDIV8. Биты CKSEL3:0( CKSEL3,CKSEL2,CKSEL1,CKSEL0) задают источник от которого тактируется «процессор», т.е. его тактовая частота. Смотрим в даташит, в разделе System clock and clock options находим табличку.Видим:
Так. Теперь нужно понять что у нас. Как было сказано фирмой atmel если фуз не запрограмирован, т.е. галочки нет(в нормальных программах), тогда fuse=1. Смотрим и расписуем
CKSEL3=0,CKSEL2=0,CKSEL1=1,CKSEL0=0. Глядим в табличку видим Calibrated internal RC oscillator. Ну а установка фуза СКDIV8, означает деление на 8. В итоге микроконтроллер работает на тактовой частоте в 1мГц. Глядим на схему видим кварц на 12мГц, похоже что такая растановка нам не годится.
Вернемся к той картинке где у меня стоят фузы для разных программ. Слева программа в которой галочка означает фуз не запрограммирован(fuse=1), а с права галочка фуз запрограммирован(fuse=0). Все с точностью да на оборот.
Давай разберемся как нужно их установить. CKSEL3=1,CKSEL2=1,CKSEL1=1,CKSEL0=1. BODLEVEL1=0. Можно посмотреть в табличку выше что это значит. Вобщем будьте внимательны перед тем как программировать фузы-разберитесь со своей программой,что в ней значит галочка. Для USB AVR DUDE PROG V1.0 atmega48,atmega88 должно быть так:
Сначала я обычно прошиваю программу, а потом фузы. Прошивка находится в архиве(я скачивал usbasp.2011-05-28) на официальном сайте в папке /bin/firmware. Это .hex файлы для соответсвующего микроконтроллера. Драйвера в /bin/win-driver. Правда там две папки и Readme. Читаем «With WinAVR version 20100110 or older, please use libusb_0.1.12.1». Ее я и поставил.
Прошиваем микроконтроллер, зашиваем фузы. Ставим драйвера. Подключаем к USB. В диспетчере устройств должен появится LibUSB-Win32 Device USBasp. На Windows 7 32bit все отлично работает. Если устройство нашлось-значит все сделано верно. Программатор готов.
Перемычка используется для прошивки контроллеров у которых частота не превышает 1.5 МГц. Информацию для изготовления программатора я брал тут. Там все очень хорошо описано, рекомендую для ознакомления.
А теперь вопрос как использовать данный программатор. На официальном сайте, да и по ссылке приведены программы поддерживающие данный программатор.Перебрав несколько программ я остановился на USB AVR DUDE PROG V1.0 . В ней фузы задаются галочками, а не байтом. Мне не удобно смотреть в даташит, а потом сочинять байт. С галочками как то проще.Галочку поставил fuse=0. На самом деле все функции выполняет консольные avrdude.exe, а USBASP_AVRDUDE_PROG.exe это GUI-Графический Юсер Интерфейс. Скачать все это дело можно тут.
Запускаем GUI.
Думаю, тут все понятно. Выбираем тип микроконтроллера. Путь к прошивке, или файлу eeprom, Нажимаем программирование, загружаем прошивку. Работает значительно быстрее AVR910.
Универсальная плата-адаптер для AVR микроконтроллеров и программаторов Громова и USBASP
Для внутрисхемного программирования микроконтроллеров (МК) семейства AVR по последовательному каналу применяется множество разнообразных программаторов. В большинстве случаев для программирования и отладки МК непосредственно в устройстве достаточно подключить программатор к разъёму, находящемуся на плате рядом с МК, и загрузить программу. Но что делать, если габариты устройства или схемотехническое решение не позволяют подключать программатор непосредственно к МК?
Для этого используют различные панели-переходники и МК программируют заранее перед установкой на плату. Иногда на них приходится монтировать кварцевый резонатор с конденсаторами или внешние RC-цепи. Для каждого типа МК зачастую необходима своя схема включения. В Интернете есть много примеров таких устройств с чертежами для самостоятельного изготовления, но их возможности ограничены числом типов программируемых микросхем или отсутствием возможности выбора источника тактового сигнала. Также эти устройства привязаны к одному программатору, что тоже ограничивает их возможности.
Описываемое устройство-адаптер представляет собой универсальную плату, на которой расположены семь панелей для установки наиболее часто используемых МК в корпусах DIP-8, DIP-14, DIP-20, DIP-28 и DIP-40, ATtiny24, ATtiny26, ATtiny2313, ATtinyl 2, ATmega16, ATmega8515, ATmega8 и ATmega328. Кроме самих панелей, на плате есть возможность подключать различные элементы для задания тактовой частоты: кварцевый резонатор на частоту 4 МГц, внешний кварцован-ный тактовый генератор на частоту 8 МГц или задающую RC-цепь с номиналами на частоту около 8 МГц. Питание на адаптер поступает от программатора, поэтому сам адаптер в дополнительных источниках питания не нуждается.
Также этот адаптер может выручить в случае неправильной установки fuse-битов, отвечающих за источник тактового сигнала, — так называемое «залочивание» микроконтроллера, когда он тактируется от внешнего генератора или в ситуации, когда используется внутренний RC-генератор (заводская установка для многих МК), а МК переключили на внешнюю RC-цепь или кварцевый резонатор. Для выбора вариантатактирования на плате есть двухрядный восьмиштырьковый разъём, на котором перемычками (джамперами) устанавливают источник для тактового сигнала МК.
Также на плате адаптера расположены сразу два разъёма для программаторов: десятиконтактный — для серийного USBASP и шестиконтактный — для самодельного программатора Громова. Это решение позволило расширить возможности адаптера и программировать МК с помощью несколь ких программ, таких как AVRDUDE PROG, UniProf и Algorithm » Builder. Если одна из программ не поддерживает используемый МК, то его можно без труда «прошить» с помощью другой программы. Например, как в случае с МК ATtiny12.
Схема универсального адаптера представлена на рис. 1.
Рис. 1. Схема универсального адаптера
Он содержит несколько DIP-панелей. Панель XS1 — восемь выводов, XS6 — 14 выводов, XS5 и XS7 — 20 выводов, XS2 — 28 выводов и XS3, XS4 — 40 выводов. Все они объединены между собой параллельно по питанию, линиям программирования и тактовым сигналам. Внешние частотозадающие элементы коммутируются перемычками S1-S4. Если нужно использовать внешний генератор, устанавливают перемычку S1, для использования RC-цепи устанавливают перемычку S2, а если же исполь-зуется внешний кварцевый резонатор, устанавливают перемычки S3 и S4. Цепь индикации напряжения +5 В выполнена на светодиоде HL1 и резисторе R4.
Схема задающего генератора выполнена по схеме Пирса [1] на транзисторе VT1, кварцевом резонаторе ZQ1, элементах R1, R3, C1 и С2. Этот генератор устойчиво работает в диапазоне частот 1…20 МГц. Кварцевый резонатор ZQ1 может быть из этого диапазона частот. Налаживание генератора заключается в подборе резистора R3 по устойчивому запуску генератора. Работу генератора контролируют осциллографом.
Второй вариант тактирования для некоторых типов МК — от внешней RC-цепи. Для этого предусмотрены элементы R2 и C3. Номиналы этих элементов можно рассчитать, используя формулу f = 1/(3RC) [2], где R — сопротивление резистора R2 в омах; С — ёмкость конденсатора C3 в фарадах; f — частота в герцах. Номиналы задающей цепи R2C3 в авторском варианте подобраны для частоты около 8 МГц.
Третий вариант тактирования выполнен по стандартной схеме на элементах ZQ2, C4 и C5 [2].
Для изъятия микросхем из панелей адаптера очень удобно пользоваться специальным экстрактором для микросхем в DIP-корпусах (рис. 2). Микросхемы в узких корпусах с его помощью вынимаются без проблем. Главное, чтобы при установке МК оставить зазор в 1 мм между его корпусом и панелью. Для уменьшения усилия извлечения МК в больших корпусах можно удалить неиспользуемые контакты из панелей XS3 и XS4.
Рис. 2. Экстрактор для микросхем в DIP-корпусе
Печатная плата адаптера размерами 120×65 мм выполнена из одностороннего фольгированного стеклотекстолита толщиной 1,5…2 мм. Чертёж печатной платы представлен на рис. 3. Он адаптирован под известную технологию ЛУТ и выполнен в бесплатной программе SprintLayout6. На плате присутствуют две проволочные перемычки, установленные со стороны панелей, и десять SMD-перемычек типоразмера 1206, которые обозначены на рис. 3 как R0. Слой «медь верх» не используется и не печатается. Он служит только для справочного обозначения SMD компонентов на нижней части платы при монтаже. Расположение панелей и других деталей на плате показано на рис. 4.
Рис. 3. Чертёж печатной платы
Рис. 4. Расположение панелей и других деталей на плате
В качестве панелек адаптера использованы панели серии SCL (с шагом 2,54 мм) на 8, 14, 20, 28 и 40 выводов. Разъём ХР1 — двухрядная угловая вилка типа Bh20R на десять выводов, ХР2 — однорядная вилка PLS-6 на шесть выводов. Для установки перемычек S1-S4 использован двухрядный штыревой разъём PLD-8 на плату. Сами перемычки (джамперы) — серии 4.5hb(2 mm), они имеют хвостовик, за который их удобно брать. Транзистор КТ316Б заменим транзистором КТ368Б или импортным аналогом 2N2475, 2N2784. Можно применить и транзистор КТ315Б. Кварцевые резонаторы — KX-3HT или любые другие в корпусе HC-49s. Конденсаторы С1-С5 — керамические выводные КД1 или импортные, конденсаторы С6-С13 — керамические для поверхностного монтажа типоразмера 1206. Оксидные конденсаторы С14 и С15 могут быть любые ёмкостью 47…100 мкФ на напряжение 6,3 или 10 В. Светодиод — любой маломощный красного свечения, например L-53SRD-F. Выводные резисторы — МЛТ, С2-23. Внешний вид смонтированной платы показан на рис. 5.
Рис. 5. Внешний вид смонтированной платы
Кроме настройки задающего генератора, адаптер в налаживании не нуждается. Желательно перед монтажом проверить плату на отсутствие замыканий и обрывов.
Работа с адаптером предельно проста — устанавливаете МК в соответствующую его типу панель, устанавливаете перемычками вариант задания тактового сигнала и подключаете программатор. Все вышеперечисленные МК уверенно работают на тактовой частоте 8 МГц. Проблемы возникли с МКАТЛпу12, у которого верхняя граница тактовой частоты ограничена частотой 4 МГц. Вдобавок он не поддерживается программой AVRDUDE_PROG. Поэтому пришлось заменить кварцевый резонатор ZQ2 на частоту 4 МГц. При работе же от внешнего генератора частотой 8 МГц МК ATtiny12 уверенно распознавался программатором Громова. МК ATtiny12V с диапазоном тактовых частот до 1,2 МГц на этом адаптере не программировался.
Литература
1. Ввод тактовых сигналов для микроконтроллера. — URL: https://rn.qrz.ru/schemes/ contribute/microcontrollers/wvod_taktovy-h_signalov_dla_mikrokontrollera.html (11.08.21).
2. Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel, 5-е изд., стер. — М.: Издательский дом Додэка-XXI, 2008.
Автор: С. Рычихин, г. Первоуральск Свердловской обл.
Программаторы. Описание USB программатора
Когда-то давно пару лет назад, в очередной раз пересмотрел подшивку како-го радиотехнического журнала и задумался: а не пора ли осваивать микроконтроллеры? С этим проблем не было, литературы много, примеров достаточно. Изучил матчасть, написал свою первую ПРОГРАММУ. Потом начались поиски того, чем эту программу запихнуть в контроллер, тоесть программатора. Нужна была схема простая, чтоб собрать из того, что под рукой и надежная, без глюков так сказать. После долгих поисков выбор пал на схему программатора из журнала «РАДИО» №10 2007г. ст. 31. Описывать эту схему не стану, для желающих в архиве есть оригинал статьи. Скажу лишь, что схема отлично работала, шила все подряд без проблем, только почему-то иногда вилетал МАХ232 (заменил 3 шт., может бракованые попались). Тот программатор подарил коллеге и решил собрать себе такой-же, но у меня не оказалось еще одного управляемого стабилизатора K78R12C, опять начались поиски замены… В результате родилась вот такая схема, это результат «скрещивания» журнальной схемы и фирменного программатора SI-PROG:MAX232 заменил на более быстродействующий ST232, управляемый стабилизатор заменил обычным 7812 и транзисторным ключем после него, транзисторы — ВС547, все остальные детали — по рекомендациям из оригинальной статьи. Также добавил отдельную подключаемую плату с панельками для разных типов контроллеров (так как в основном юзаю РІС-и, то плата пока только под них, а если нужно прошить AVR — то проводочками:-)). Монтируется все это на вот такой плате:
А это сменная плата для ПИК-ов и микросхем памяти:
Из панелек все неиспользуемые контакты удалить, чтобы не сверлить много лишних отверстий. Вот фото собраной платы:
Программатор собрал в поляцком корпусе, который обозначается Z50, собственно под него и проектировалась плата, ниже несколько фото:
На фото видно в корпусе трансформатор питания, я его потом выкинул, так как он оказался слабоват (сделал светодиодную подсветку передней панели из сверхярких светодиодов, и трансформатор не осилил:-). Сейчас используется внешний блок питания 15В, и током до 1А. Программатор работает с программами PonyProg, Si-prog, WinPic800. Используя для управления программу PonyProg следует выбрать в соответствующем ее окне программатор SI Prog I/O и задать инверсию сигналов в соответствии с таблицей 1, для программ Si-Prog и WinPic 800 следует выбрать программатор JDM Programmer, а инверсию сигналов задать в соответствии с таблицами 2 и 3.
Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com.
В схеме данного программатора используется преобразователь логических уровней max232.
Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя.
Так и сделал. Взял микросхему Ch440G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось.
В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно).
После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе — ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же — всё шьёт, но очень медленно.
Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (Ch440 — 0.3-0.5$ , к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков — это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами.
Вот фото готового девайса:
Как поётся в песне «я его слепила из того, что было». Набор деталей самый разнообразный: и smd, и DIP.
Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | Микросхема | Ch440G | 1 | В блокнот | ||
IC2 | Микросхема | К1533ЛА3 | 1 | В блокнот | ||
VR1 | Линейный регулятор | LM7812 | 1 | В блокнот | ||
VR2 | Линейный регулятор | LM7805 | 1 | В блокнот | ||
VT1 | Биполярный транзистор | КТ502Е | 1 | В блокнот | ||
VT2 | Биполярный транзистор | КТ3102Е | 1 | В блокнот | ||
VD1-VD3 | Выпрямительный диод | 1N4148 | 2 | В блокнот | ||
C1, C2, C5-C7 | Конденсатор | 100 нФ | 5 | В блокнот | ||
C3, C4 | Конденсатор | 22 пФ | 2 | В блокнот | ||
HL1-HL4 | Светодиод | Любой | 4 | В блокнот | ||
R1, R3, R4 | Резистор | 1 кОм | 3 |
Универсальный программатор для микроконтроллеров AVR и PIC
В радиолюбительских журналах и сети Интернет приводится множество схем программаторов. Они отличаются способом подключения к компьютеру: через LPT, COM, USB. Программаторы для порта LPT наиболее простые, для COM — чуть сложнее. Для программатора, подключаемого к USB-порту, нужно иметь либо микроконтроллер, либо специализированную микросхему, преобразователь USB — UART. Кроме этого, разные программаторы предназначены для прошивки разных микроконтроллеров: AVR или PIC, при том, что алгоритм программирования этих двух типов микроконтроллеров отличается незначительно. Поэтому само собой напрашивается желание собрать универсальный программатор для любых микроконтроллеров — AVR и PIC.
Оптимальной нам показалась приведённая ниже схема программатора. Он подключается к COM-порту компьютера и содержит известную микросхему MAX232, которая корректно работает с любым COM-портом (у разных компьютеров уровни порта могут существенно отличаться от стандарта), защищая его при случайных ошибках монтажа или подключения. Программатор имеет панельки для разных корпусов микроконтроллеров, а также возможность для внутрисхемного программирования ICSP, когда программатор подключается проводами к плате с микроконтроллером или непосредственно к ножкам микроконтроллера без установки его в панельку. Программатор видится программами как JDM, поэтому проблем с программным обеспечением не возникает. Можно рекомендовать программу IC-PROG 1.06В.
Переключение режимов AVR — PIC производится микропереключателем. Процесс работы устройства индицируется четырьмя светодиодами. Программатор прост и не требует наладки, используются очень распространённые детали.
Вместо микросхемы 74LS00 можно поставить К555ЛА3 или КР1533ЛА3, транзисторы, в принципе, заменимы на похожие. У данной схемы есть одна странность — номиналы токоограничительных резисторов для светодиодов. Так как светодиоды подключены к разным участкам схемы, напряжения на этих участках также разные, из-за чего светодиоды светятся с разной яркостью. Для того, чтобы это исправить, можно попробовать подобрать резисторы, в частности — уменьшить R4 и R7. Вместо КД523 можно использовать распространённые 1N4148.
Печатная плата.lay (для Sprint Layout) Разводка выполнена под SMD-резисторы, остальные компоненты — в обычном исполнении.
Внимание! На печатной плате проводки MOSI и MISO к панельке ATMEGA8 показаны неправильно, их нужно перекинуть. Также C7 и C9 имеют перемычки — их нужно убрать.
Работа с IC-PROG
Скачивать программу нужно с официального сайта:
http://www.ic-prog.com/index1.htm
В каталоге программы должны находиться следующие файлы:
icprog.exe — непосредственно программа
icprog.sys — драйвер доступа к портам под XP
Необходимо нажать правой клавишей мыши на файле icprog.exe и выбрать «свойства». На вкладке «совместимость» необходимо поставить галочку «запустить в режиме совместимости» и выбрать Windows 2000.
Далее необходимо зайти в меню «Настройки» и выбрать пункт «Программатор». Тип программатора необходимо установить JDM и указать COM-порт, к которому физически подключен программатор. Для очень быстрых компьютеров можно также установить задержку ввода-вывода. В этом же окне необходимо указать интерфейс «Прямой доступ к портам». Все галочки параметров сигналов должны быть сняты.
Затем необходимо зайти в меню «Настройки» и выбрать пункт «Опции», вкладку «Общие», где установить галочку «Включить NT/2000/XP драйвер». При этом появится окно подтверждения установки драйвера и программа перезапустится.
После этого программа готова к работе с программатором.
Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа — «прошивка», а также программатор.
И если с первым пунктом нет проблем — готовую «прошивку» обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.
Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).
Основная часть.
Панель установки МК.
Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является «облегчённой» копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.
Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор — это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).
Необходимые изменения.
В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.
Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.
Также добавлен «подтягивающий» резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.
Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.
Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.
В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.
В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось «допиливать» программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.
Ядром устройства является микроконтроллер PIC18F2550-I/SP .
Это единственная микросхема в устройстве. МК PIC18F2550 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.
Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.
Название | Обозначение | Номинал/Параметры | Марка или тип элемента |
Для основной части программатора | |||
Микроконтроллер | DD1 | 8-ми битный микроконтроллер | PIC18F2550-I/SP |
Биполярные транзисторы | VT1, VT2, VT3 | КТ3102 | |
VT4 | КТ361 | ||
Диод | VD1 | КД522, 1N4148 | |
Диод Шоттки | VD2 | 1N5817 | |
Светодиоды | HL1, HL2 | любой на 3 вольта, красного и зелёного цвета свечения | |
Резисторы | R1, R2 | 300 Ом | |
R3 | 22 кОм | ||
R4 | 1 кОм | ||
R5, R6, R12 | 10 кОм | ||
R7, R8, R14 | 100 Ом | ||
R9, R10, R15, R16 | 4,7 кОм | ||
R11 | 2,7 кОм | ||
R13 | 100 кОм | ||
Конденсаторы | C2 | 0,1 мк | К10-17 (керамические), импортные аналоги |
C3 | 0,47 мк | ||
Электролитические конденсаторы | C1 | 100 мкф * 6,3 в | К50-6, импортные аналоги |
C4 | 47 мкф * 16 в | ||
Катушка индуктивности (дроссель) | L1 | 680 мкГн | унифицированный типа EC24, CECL или самодельный |
Кварцевый резонатор | ZQ1 | 20 МГц | |
USB-розетка | XS1 | типа USB-BF | |
Перемычка | XT1 | любая типа «джампер» | |
Для панели установки микроконтроллеров (МК) | |||
ZIF-панель | XS1 | любая 40-ка контактная ZIF-панель | |
Резисторы | R1 | 2 кОм | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R2, R3, R4, R5, R6 | 10 кОм |
Теперь немного о деталях и их назначении.
Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.
Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа «B» (квадратная). В компьютере же используется USB-розетка типа «А». Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.
В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 — 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.
Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.
Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 — это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.
При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.
Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force — с нулевым усилием установки).
Благодаря ей можно «зашить» МК практически в любом корпусе DIP.
На схеме «Панель установки микроконтроллера (МК)» указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.
Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).
А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).
Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).
Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .
Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или «карандашным» методом .
Вот рисунок позиционирования элементов на печатной плате (кликабельно).
При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).
«Прошивка» микроконтроллера PIC18F2550.
Файл «прошивки» — PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .
Залить «прошивку» в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).
Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex — «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .
Ну, а если разрешить проблему «курицы и яйца» не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .
Обновление «прошивки» программатора.
Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться — чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить «прошивку».
Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню «Tools» — «Download PICkit 2 Operation System» открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.
После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню «Help» — «About» в программе PICkit2 Programmer.
Это всё по техническим моментам. А теперь о софте.
Работа с программатором. Программа PICkit2 Programmer.
Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы — PICkit2 Programmer. Рекомендую.
После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод («питание»), а операционная система опознает устройство как «PICkit2 Microcontroller Programmer» и установит драйвера.
Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.
Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции «Что делать?» на английском.
Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.
Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .
Необходимые файлы:
USBasp — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.
Особенности программатора:
— работа под любой платформой: Windows, Linux и Mac OS X
— какие-либо специальные компоненты или smd не нужны
— скорость программирования до 5 кБ/сек
— SCK-джампер позволяет программировать низкоскоростные контроллеры (
— в планах: последовательный интерфейс (например для отладки)
Схема программатора
Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!
Заливка прошивки
Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Прошейте программатор при помощи прошивки: «bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex» или «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
Установки джамперов
J1 — источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 — обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 — если программируемый МК низкоскоростной
Установка драйверов под Windows
Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver». Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex
Сборка их исходников (под Linux)
Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду «make main.hex»
4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией «make flash»). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией «make fuses»).
Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
1. Установите пакет libusb: http://libusb.sourceforge.net/
2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install
Фото программатора USBasp
Программы для работы с программатором
AVRDUDE — поддерживается USBasp начиная с версии 5.2
BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6
Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude
atmega328 — Ошибка при перезаписи загрузчика на atmega328p по usbasp в Arduino IDE
У меня есть загруженный ATMega328P-PU из Китая, и я хочу перезагрузить в него новый загрузчик. Для этого я использую программатор UsbAsp. Я хочу сделать это в Arduino IDE. Но когда я пытаюсь прошить, например, пустую флешку, появляется сообщение об ошибке:
Использование порта: usb
Использование программатора: usbasp
Часть AVR: ATmega328P
Задержка стирания чипа: 9000 мкс
СТРАНИЦА: PD7
BS2: PC2
Расположение RESET: выделено
ПОВТОРНЫЙ импульс: SCK
последовательный программный режим: да
режим параллельной программы: да
Тайм-аут: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Детали памяти:
Заблокировать страницу опроса
Тип памяти Режим Задержка Размер Indx Paged Size Size # Страницы MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ----- - ----- ----- ---------
eeprom 65 20 4 0 нет 1024 4 0 3600 3600 0xff 0xff
вспышка 65 6128 0 да 32768128256 4500 4500 0xff 0xff
lfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
калибровка 0 0 0 0 нет 1 0 0 0 0 0x00 0x00
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00
Тип программиста: usbasp
Описание: USBasp, http: // www.fischl.de/usbasp/
avrdude: автоматическая установка периода sck (поскольку заданный равен нулю)
avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp.
avrdude: error: program enable: target не отвечает. 0
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этот чек.
avrdude сделано. Спасибо.
Но когда работаю в Avrdudeprog , работает без проблем.
Как это исправить?
AVRDUDE: 1.Введение
AVRDUDE: 1. ВведениеAVRDUDE — AVR Downloader Uploader — программа для скачивания и загрузка встроенной памяти микроконтроллеров AVR Atmel. Оно может запрограммировать Flash и EEPROM, и там, где поддерживается серийный протокол программирования, он может программировать предохранители и биты блокировки. AVRDUDE также обеспечивает режим прямых инструкций, позволяющий выполнять любое программирование инструкция к микросхеме AVR независимо от того, реализует ли AVRDUDE эта особенность конкретного чипа.
AVRDUDE можно эффективно использовать через командную строку для чтения или записи все типы памяти микросхемы (EEPROM, флэш-память, биты предохранителей, биты блокировки, подпись байтов) или в интерактивном (терминальном) режиме. Использование AVRDUDE из командная строка хорошо работает для программирования всей памяти чипа из содержимого файла, а интерактивный режим полезен для исследование содержимого памяти, изменение отдельных байтов eeprom, программирование предохранителей / запорных битов и т. д.
AVRDUDE поддерживает следующие основные типы программаторов: Atmel’s STK500, Устройства Atmel AVRISP и AVRISP mkII, Atmel’s STK600, Atmel JTAG ICE (mkI и mkII, последний также в режиме ISP), appnote avr910, appnote avr109 (включая AVR Butterfly), последовательные адаптеры bit-bang, и PPI (интерфейс параллельного порта).PPI представляет собой класс простых программистов, где строки программирования напрямую подключен к параллельному порту ПК. Существуют несколько конфигураций контактов для нескольких вариантов программаторов PPI, и AVRDUDE может быть настроен для работы с ними, указав соответствующий программист в командной строке или создав новую запись в своем конфигурационный файл. Все, что обычно требуется для новой записи, — это сообщить AVRDUDE, какие контакты использовать для каждой функции программирования.
Ряд столь же простых адаптеров для программирования бит-взрыва, которые соединяют к последовательному порту также поддерживаются, среди них популярные Последовательный адаптер Ponyprog, а также адаптеры DASA и DASA3, которые использовались для поддерживаться uisp (1).Обратите внимание, что эти адаптеры предназначены для подключен к физическому последовательному порту. Подключение к последовательному порту эмулированный поверх USB, скорее всего, вообще не будет работать или работать ужасно медленный.
STK500, JTAG ICE, avr910 и avr109 / butterfly используют последовательный порт для связи с ПК.
STK600, JTAG ICE mkII, AVRISP mkII, USBasp и USBtinyISP
программисты общаются через USB, используя libusb
в качестве
уровень абстракции платформы.
STK500, STK600, JTAG ICE и avr910 содержат встроенную логику для управления программированием цели.
устройство.Загрузчик avr109 реализует протокол, аналогичный avr910, но
фактически реализовано в области загрузки флэш-ПЗУ целевой, как
в отличие от внешнего устройства.
Принципиальное различие между двумя типами заключается в
протокол, используемый для управления программатором. Протокол avr910 очень
упрощен и может быть легко использован в качестве основы для простого, самодельного
программист, так как прошивка доступна онлайн. С другой стороны,
протокол STK500 более надежен и сложен, а прошивка
не доступны в открытом доступе.JTAG ICE также использует протокол последовательной связи, аналогичный
к прошивке STK500 версии 2 один. Однако, поскольку JTAG ICE
предназначенный для отладки на кристалле, а также программирования памяти,
протокол более сложный.
(Протокол JTAG ICE mkII также можно запускать поверх USB.)
Поддерживается только функция программирования памяти JTAG ICE.
пользователя AVRDUDE.
Для JTAG ICE поддерживаются mkII, JTAG, debugWire и режим ISP, при условии
у него версия прошивки не ниже 4.14 (десятичный).
См. Ниже ограничения debugWire.
Для устройств ATxmega JTAG ICE mkII поддерживается в режиме PDI при условии, что он
имеет версию 1 аппаратного и микропрограммного обеспечения не менее 5,37 (десятичная).
AVR Dragon поддерживается во всех режимах (ISP, JTAG, HVSP, PP, debugWire).
При использовании в режимах JTAG и debugWire AVR Dragon ведет себя аналогично
JTAG ICE mkII, поэтому все комментарии для этого устройства
также будет применяться.
При использовании в режиме ISP, AVR Dragon ведет себя аналогично
AVRISP mkII (или JTAG ICE mkII в режиме ISP), поэтому все зависит от устройства
комментарии будут применяться там.В частности, Dragon запускается с довольно быстрыми часами интернет-провайдера.
частота, поэтому -B bitclock
опция может потребоваться для достижения стабильной связи с интернет-провайдером.
Для устройств ATxmega AVR Dragon поддерживается в режиме PDI при условии, что он
имеет версию прошивки не ниже 6.11 (десятичная).
Arduino (который очень похож на STK500 1.x) поддерживается через собственная спецификация типа программатора «arduino».
BusPirate — это универсальный инструмент, который также можно использовать в качестве программатора AVR.К одному BusPirate можно подключить до 3 независимых AVR. Видеть раздел о расширенные параметры подробности ниже.
Адаптеры USBasp ISP и USBtinyISP также поддерживаются при условии AVRDUDE. был скомпилирован с поддержкой libusb. Оба они имеют простые реализации USB только для прошивки, работающие на ATmega8 (или ATmega88) или ATtiny2313 соответственно.
[<] | [>] | [<<] | [Вверх] | [>>] |
Этот документ был создан 5 апреля 2010 г. с использованием texi2html 1.82 .
НЕДЕЛЯ 8
НЕДЕЛЯ 8/15 марта
Встроенное программирование
Переуступка
прочитать техническое описание микроконтроллера
запрограммируйте свою доску для выполнения каких-либо действий, используя как можно больше различных языков программирования и сред программирования
Описание проекта
Для этого проекта я использовал плату с 6-й недели, которая имеет светодиод, кнопку и ATTINY84.
После прочтения таблицы данных ATTINY84 и понимания того, как работают порты ввода / вывода и как подключать программатор к плате, начиная с 6 недели.
ПОДКЛЮЧЕНИЕ КОНТАКТОВ ISP С ПРОГРАММАТОРОМ
Необходимо удостоверение личности
Нам нужно сопоставить все PINS
Программирование с помощью Atmel Studio
ИСПЫТАНИЕ НА МИГАНИЕ @ 100
Проверка связи
Para subir con un compilador
Utilizaremos AVR Dude
Терминал
CD DEsktop
Avrdude -p t44 (Atiny44) -c usbasp -v
Отправить и работает
Скриншот
Поскольку у меня есть MAC, я позаимствовал компьютер профессора Оливера 🙂 и использовал CMD для AVRdude
Тестирование на ошибки
Во время тестирования я заметил, что земля программатора и плата не соединены друг с другом, поэтому первая попытка не удалась
Avrdude -p t44 -c usbasp -U flash: w: oscar1.шестнадцатеричный
Установка ATTINY84-44 на Arduino
Вам нужно перейти в «настройки» (нажмите CMD Пробел)
Перейдите по ссылке: URL-адрес менеджера дополнительных плат: http://drazzy.com/package_drazzy.com_index.json
ArduinoOnOtherAtmelChips: http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips
Программирование с помощью Arduino Desktop
USBasp не может стереть AT89S52, но все остальные функции работают.
Здравствуйте, saurabhreigns,Я не могу точно сказать, в чем проблема, учитывая предоставленную вами информацию, поэтому сделаю несколько комментариев. Я не знаком с SLK, но я создал несколько программаторов с нуля для программирования AT89S52. Как я упоминал в исходном посте, скрипту AVRDude просто не хватало необходимой задержки для правильного стирания чипа. Как только я исправил это, программирование AT89S52 с помощью программатора USBASP через AVRDude работало очень хорошо.
Описанные вами штыревые соединения предназначены для ISP (в системном программировании).Чтобы это произошло, целевое устройство должно иметь стабильные часы с замкнутым переключателем сброса. Также убедитесь, что ничего не мешает линиям SCK, MISO и MOSI. Можно использовать эти строки совместно с другим оборудованием для вашего проекта, но вы должны знать об их состояниях во время программирования, чтобы их можно было правильно использовать. Вы также должны правильно установить предохранители для AVR вашего программатора. Есть несколько возможных комбинаций, но для USBASP вам необходимо использовать следующее:
Например, для ATmega8:
ПО УМОЛЧАНИЮ
LFUSE 0xE1 1110 0001
HFUSE 0xD9 1101 1001
USBASP
LFUSE 0x11EF 1110 1100 1001
Учитывая, что у вас, похоже, возникает ошибка «не найден программист», я предполагаю, что одна из возможных причин заключается в том, что ваш драйвер USB не загружается под Windows.Это частая жалоба на современные 64-битные версии Windows и неподписанные драйверы USB. Я не говорю, что у вас нет подписи, но на него стоит посмотреть.
Для 64-битных операционных систем различные нелицензированные или неподписанные драйверы USB могут не работать по умолчанию. Один из способов заставить драйвер загрузиться — вызвать меню ядра во время загрузки Windows, нажав несколько раз F8 перед тем, как вы увидите экран «Запуск Windows». Затем в меню загрузки выберите « Отключить принудительное использование подписи драйвера ».
Для ясности, вот версии программного обеспечения, которое я использую для программирования AT89S52 под Vista x64:
WinAVR версия 20100110
avrdude-mingw32-v5.10svn , построенная с libusb-win32-device-bin-0.1. 12.1
libusb — DriverVer = 20.03.2007, 0.1.12.1
Программатор USBASP на базе ATMEGA8. Я построил этот: https://www.8051projects.info/resources/usb-8051-avr-programmer.23/
Единственное отличие в том, что я использовал резистор 2k2 вместо 1k5 R2 , который указан в схема в списке.
Эта схема также очень полезна для сборки этой схемы: https://www.fischl.de/usbasp/
Прошивка USBASP, которую я использую в своем программаторе, — это та, которая поставляется с проектом программатора USB 8051 / AVR. (Первый URL)
Новые версии прошивки могут не работать для AT89S52 без изменений. Возможно, другие могут прокомментировать это, но мне повезло с выпуском 18.07.2006 .
Вот модифицированный раздел avrdude.conf, специфичный для AT89S52:
# ——————————— —————————
# AT89S52
# —————— ——————————————
часть
id = «8052» ;
desc = «AT89S52»;
подпись = 0x1E 0x52 0x06;
chip_erase_delay = 500000 ;
pgm_enable = «1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1»,
«x x x x x x x x x x x x x x x x x»;
chip_erase = «1 0 1 0 1 1 0 0 1 0 0 x x x x x»,
«x x x x x x x x x x x x x x x x x»;
таймаут = 200;
stabdelay = 100;
cmdexedelay = 25;
синхлупов = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
Prelay = 1;
postdelay = 1;
pollmethod = 0;
память «flash»
размер = 8192;
paged = нет;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = «0 0 1 0 0 0 0 0»,
«x x x a12 a11 a10 a9 a8»,
«a7 a6 a5 a4 a3 a2 a1 a0»,
«o o o o o o o o»;
write = «0 1 0 0 0 0 0 0»,
«x x x a12 a11 a10 a9 a8»,
«a7 a6 a5 a4 a3 a2 a1 a0»,
«i i i i i i i i i»;
режим = 0x21;
задержка = 12;
;
память «подпись»
размер = 3;
read = «0 0 1 0 1 0 0 0 x x x 0 0 0 a1 a0»,
«0 0 0 0 0 0 0 0 o o o o o o o o»;
;
;
# ———————————————— ————
Вы можете собрать его с помощью такой же команды: Software \ AVRDude \ avrdude-mingw32-v5.10svn \ bin \ avrdude -W -C Software \ AVRDude \ avrdude-mingw32-v5.10svn \ bin \ avrdude.conf -p AT89S52 -c usbasp -e -U flash: w: «filename.hex»: i
I не могу сказать много положительного о progISP, так как несколько лет назад у меня были смешанные результаты.
Вообще-то на AT89S52 у меня надежно не заработало.
ISPProg от Адама Дыбковски прекрасно работает для параллельного порта, но я не думаю, что он поддерживает проект, но если вы сделаете себе кабель, подобный этому, который у меня есть, он действительно работает: https: // www.ikalogic.com/in-system-programming-isp-for-atmel-chips/
Распиновка параллельного порта AEC_ISP работает с AVRDude и ISPProg. … если вы когда-нибудь захотите что-то сделать с DOS и параллельным портом, я попробовал это, и он работает: и
Некоторые скажут, что создание собственного программатора не стоит проблем, и в некоторых случаях они, безусловно, верны , но для меня опыт обучения был ценным.
По поводу приобретенного вами программатора. Если они не хотят поддерживать его, снимите с него все, что сможете, на запчасти, а остальное выбросьте.Есть много способов запрограммировать 8051, но AT89S52 наиболее удобен с ISP, который дает вам больше возможностей. Просто убедитесь, если вы снова тратите деньги на программиста, что поставляемый с ним USB-драйвер специально поддерживает Windows 7 x64.
В противном случае, если вы хотите создать свой собственный, используя предоставленные мной ресурсы, вы столкнетесь с минимальными неудобствами, выбрав «Отключить принудительное использование подписи драйверов» в меню загрузки.
Я надеюсь, что вы найдете все это полезным.
— — — Обновлено — — —
Затем я отключил и снова подключил к другому USB-кабелю — у меня все получилось, 2-й раз — ОШИБКА
снова подключили — УСПЕШНО. 2-й раз — ОШИБКА.
Этот тип прерывистой связи, связанной с USB, представляет собой проблему того же типа, которая возникла бы, если бы кто-то попытался создать программатор USBasp, но не использовал правильный вывод для прерывания микроконтроллера, который необходим для правильной обработки событий USB.
Если вам необходимо повторно подключать USB-устройство, чтобы работать с перебоями в лучшем случае, я предполагаю, что дизайн компании ошибочен (маловероятно, но определенно возможно), есть проблема с оборудованием или программным обеспечением самого программатора, или там это проблема связи с atMega8, который вы используете.
В любом случае, я хотел прокомментировать еще раз, потому что однажды я подключался к другому контакту, чем тот, который показан на схеме USBasp, что привело к очень похожим проблемам с прерывистой связью USB при использовании прошивки V-USB.
AVR Программатор USBASP ISP с 10-контактным кабелем [4845]: Sunrom Electronics
Это программатор USBasp для микроконтроллеров Atmel AVR. Он просто состоит из ATMega8 и пары пассивных компонентов ATMega8 с рабочей частотой 12 МГц. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется, что делает его недорогим USB-программатором. USBasp Programmer — недорогой программатор на базе USB. Это ISP (системный программист) программист, поэтому вы можете запрограммировать целевой микроконтроллер, не удаляя его с платы разработки целевого микроконтроллера.Этот программатор будет работать с широким спектром микроконтроллеров Atmel AVR и AT89Sxx. Они довольно компактные, но дизайн действительно элегантный. Интерфейс USB достигается за счет использования процессора atmega8, а все остальное делается в прошивке. Это недорогой программатор, разработанный для людей с ограниченным бюджетом. Поддерживаемое программное обеспечение: — Недорогое, простое в использовании, программатор будет работать с широким спектром микроконтроллеров Atmel AVR. Программист также будет работать с разнообразным программным обеспечением.
Бесплатные сопоставимые загрузчики:
- AVR SinaProg для Windows.
- AVRDUDE поддерживает USBasp начиная с версии 5.2.
- BASCOM-AVR поддерживает USBasp, начиная с версии 1.11.9.6.
- Khazama AVR Programmer — графический интерфейс AVRdude для MS Windows.
- eXtreme Burner — AVR — это программное обеспечение с графическим интерфейсом для Windows для программистов USB AVR на базе USBasp.
- Загрузчик AVR.
Характеристики:
- Работает на нескольких платформах. Linux, Mac OS X и Windows протестированы.
- Позволяет читать или записывать EEPROM микроконтроллера, прошивку, биты предохранителей и биты блокировки.
- Скорость программирования до 5 КБ / сек. • Опция SCK с программным управлением для поддержки целей с низкой тактовой частотой (менее 1,5 МГц).
- 6-контактная плата адаптера вместе с программатором для стандартных подключений ISP.
- USB-разъем типа B для питания.
- Два отдельных светодиода для индикации питания и состояния программатора.
- Эта плата буферизована и защищена от источника питания, так что вы можете делать с программистом действительно злые вещи, не убивая его.Это быстро! Одной из величайших особенностей этой платы является возможность питания цели (до 500 мА) от программатора.
- Atmega8 / 48/88/168/328
- 51 серия: AT89S51, AT89S52, AT89S53, AT89S8252.
- Аттиний 2313/4313.
- Attiny12 / 13 / 13A / 15.
- Аттины 25/45/85.
- Attiny24 / 44/84.
- И многое другое !!.
- Программатор USBasp, 1 шт.
- 1 x 10-контактный ленточный кабель для передачи данных.
GUI для программистов USB AVR на базе USBasp.
Когда я начал использовать USBasp (отличный программист для AVR), я вскоре понял, что avrdude (программное обеспечение для вождения USBasp) не очень удобен. Иногда меня это сильно раздражает, потому что интерфейса командной строки. Также avrdude-gui не очень полезно, так как он просто вызывал avrdude в фоновом режиме.Он не может писать / читать байты предохранителя были легкими, и чтение содержимого микросхемы было невозможным. Я сделал много изменения в программном обеспечении, чтобы сделать его более полезным, но в конце концов я решил написать свежее новое программное обеспечение с нуля и eXtreme Burner — AVR родился!
Модель eXtreme Burner-AVR имеет полный графический интерфейс пользователя (GUI) и может быть использовать гораздо проще.
Снимки экрана
Рис.: Программное обеспечение с графическим интерфейсом для USBasp |
Рис .: Программное обеспечение с графическим интерфейсом для USBasp — Burn Progress. |
Рис .: Программное обеспечение с графическим интерфейсом для USBasp — Задача завершена! |
Конфигурация источника тактовой частоты Easy AVR
Микроконтроллеры серииAVR поддерживают несколько типов источников синхронизации для различных приложений.Например, дешевый RC-генератор или идеальный высокоскоростной кварцевый генератор. Вы можете легко выбрать один из следующих источников синхронизации, используя раскрывающееся меню.
- Внешние часы.
- Откалиброванный внутренний RC-генератор. ( ПО УМОЛЧАНИЮ )
- Внешний RC-генератор.
- Внешний низкочастотный кристалл.
- Внешний кварцевый / керамический резонатор.
Рис.: Выбор источника тактовой частоты AVR |
Рис .: Выбор опции часов |
Версия для Linux!
Наконец-то долгожданный порт Linux уже здесь! Теперь вы можете использовать eXtreme Burner — AVR и на Linux тоже!
Отзывы, ответы и снимки экрана присылайте мне на электронную почту avinash [AT] extremeelectronicsXYZ [DOT] co.in (Удалите XYZ и замените [AT] на @ и [DOT] на.
Рис .: eXtreme Burner — AVR в Linux (Fedora 10) |
Рис .: eXtreme Burner — AVR в Linux (Fedora 10) |
Примечание по установке
- Вам нужна среда рабочего стола с графическим интерфейсом пользователя, такая как GNOME или KDE (все современные дистрибутивы поставляются как минимум с один из них, так что не волнуйтесь)
- Вам необходимо установить wxGTK (для установки используйте диспетчер пакетов вашей ОС)
- У вас должно быть установлено libusb (для установки используйте диспетчер пакетов вашей ОС)
- Вам необходимо запустить приложение с правами root для доступа к USB-порту (когда-нибудь Я найду исправление, если вы это знаете, дайте мне знать!)
- Скачать архив и распаковать в какое-то место.
- Запустите терминал и войдите в систему как root, используя su root и введите пароль root (в Ubunto введите sudo su , а затем ваш пароль пользователя)
- Перейдите в папку, в которую вы поместили eXtreme Burner — AVR
- введите ./avrprog , чтобы запустить приложение.
- Теперь вы можете использовать графический интерфейс для работы с микросхемами AVR. Интерфейс точно такая же, как версия eXtreme Burner для MS Windows.
Будьте щедрыми, пожертвуйте, пожалуйста,
Если вы используете eXtreme Burner — AVR и находите его полезным, сделайте пожертвование. Будем Вам очень благодарны.
Скачать
Примечание для пользователей Windows 8 и более поздних версий
Эти ОС не позволяют установку неподписанных драйверов. Пожалуйста, посмотрите следующее видео о том, как это отключить. Только после отключения этой функции устанавливайте программное обеспечение.
Обратная связь
Это первый общедоступный выпуск, поэтому присылайте свои предложения и отчеты об ошибках.Не стесняйтесь оставлять здесь свой комментарий.
Отзывы
Я рада, что тебе понравилось это пожертвование. Я бывший инженер Atmel. Мне очень нравится твое программное обеспечение. Пожалуйста, продолжайте писать. Не останавливайся ни на минуту! -Фрэнк 🙂
Переводчики
Люди, заинтересованные в переводе приложения, могут получить дополнительную информацию на этой странице.
Спасибо донорам
- Фрэнк Декмар
- Стиг Викстром
- Мартин Маучер
- Сильвен По
- Pojan Dehnvai
- Гарри Акерман
- Тим Тид
- Шмидтова Вероника
- Даниил Янев
- Вернон Вудворт
- Роберт Маккин
- Марк Левус
- Вольфрам Херцог
- Мэтью Брукс
- Боев Дмитрий
- Филипп Мейснер
- Пирву Евгений
- Хорват Иштван
- Дэвид Хейл
- Эрик Пери
- Фурсов Николай
- Амвросий Барри
- Бартомей Дудек
- Дирк Красе
- Доктор.Саша Рихтер
- Ричард Бейкер
- Петур Стефенов
Возникли проблемы с вашим проектом встраиваемых систем, электроники или робототехники? Мы здесь, чтобы помочь!
Отправьте запрос о помощи.
Avinash
Avinash Gupta ориентирован исключительно на бесплатные и высококачественные учебные материалы, чтобы сделать изучение встроенных систем увлекательным!
Другие сообщения — Веб-сайт
Следуй за мной:
avrdude — программа-драйвер для « простого » программатора микроконтроллера Atmel AVR
Предоставлено: avrdude_6.0.1-1_amd64НАИМЕНОВАНИЕ
avrdude - программа-драйвер для `` простого '' программатора микроконтроллера Atmel AVRОБЗОР
avrdude -p партно [ -b скорость передачи ] [ -B битовые часы ] [ -c идентификатор программиста ] [ -C ] [ -D ] [ -e ] [ -E exitspec [, exitspec ]] [ -F ] [ -i delay ] [ -n -logfile ] [ -n ] [ -O ] [ -P порт ] [ -q ] [ -s ] [ -t ] [ -u ] [ -U memtype: op: filename: filefmt ] [ -v ] [ -x extended_param ] [ -V ]ОПИСАНИЕ
Avrdude - программа для загрузки кода и данных в микроконтроллеры Atmel AVR. Avrdude поддерживает программатор Atmel STK500, устройства Atmel AVRISP и AVRISP mkII, Atmel STK600, JTAG ICE от Atmel (mkI, mkII и 3, последние два также в режиме ISP), программисты соблюдают в AppNote AVR910 и AVR109 (включая Butterfly), а также простой проводной программатор, подключенный напрямую к параллельному порту ppi (4) или parport (4), либо к стандартному последовательный порт. В простейшем случае оборудование состоит из кабеля, соединяющего соответствующие сигнальные линии AVR к параллельному порту.MCU запрограммирован на серийный программирование режим , поэтому для программатора на основе ppi (4) Сигналы MCU «/ RESET», «SCK», «MISO» и «MOSI» необходимо подключить к параллельному порту. По желанию, некоторые неиспользуемые выходные контакты параллельного порта могут использоваться для питания мощность для части MCU, поэтому также возможно построить пассивный автономный устройство программирования. Некоторые светодиоды состояния показывают текущее рабочее состояние программатор может быть подключен, и сигнал доступен для управления буфером / драйвером IC 74LS367 (или 74HCT367).Последний может быть полезен для отключения параллельного порта от MCU при подключении. используется системное программирование. Ряд столь же простых адаптеров программирования бит-взрыва, которые подключаются к последовательному порту: также поддерживается, среди них популярный последовательный адаптер Ponyprog, а также DASA и DASA3. адаптеры, которые раньше поддерживались uisp (1). Обратите внимание, что эти адаптеры предназначены для подключен к физическому последовательному порту. Подключение к последовательному порту, эмулированному поверх USB, возможно. скорее всего, вообще не сработает или будет работать ужасно медленно.Если у вас есть система Linux с как минимум 4 доступными аппаратными GPIO (например, почти все встроенные платы Linux) вы можете обойтись без дополнительного оборудования - просто подключите их к выводы MOSI, MISO, RESET и SCK на AVR и использовать тип программатора linuxgpio. Это разбивает строки с помощью интерфейса Linux sysfs GPIO. Конечно, следует соблюдать осторожность о совместимости уровней напряжения. Кроме того, хотя это и не требуется строго, рекомендуется каким-либо образом защитить контакты GPIO от ситуаций перегрузки по току.Простейший было бы просто подключить несколько резисторов последовательно или еще лучше использовать драйвер буфера с 3 состояниями, например модель 74HC244. Взгляните на http://kolev.info/avrdude-linuxgpio для более подробного руководства. об использовании этого типа программатора. Программатор Atmel STK500 также поддерживается и подключается к последовательному порту. Оба, прошивки версии 1.x и 2.x могут обрабатываться, но требуют другой спецификации типа программиста (к настоящему времени). Используя версию прошивки 2, также поддерживается высоковольтное программирование, как параллельный и последовательный (программаторы типов stk500pp и stk500hvsp).Поддерживаются монтажные платы, использующие протокол STK500 V2.x, но можно использовать простой переключатель DTR / RTS. используется для установки плат в режим программирования. Тип программатора - `` проводка ''. Arduino (который очень похож на STK500 1.x) поддерживается собственным программатором. спецификация типа `` ардуино ''. BusPirate - это универсальный инструмент, который также можно использовать в качестве программатора AVR. Один К BusPirate можно подключить до 3 независимых AVR. См. Раздел по расширенный параметров ниже для подробностей.Программатор Atmel STK600 поддерживается в режимах ISP и программирования высокого напряжения, а также подключается через USB. Для устройств ATxmega STK600 поддерживается в режиме PDI. Для Устройства ATtiny4 / 5/9/10, STK600 и AVRISP mkII поддерживаются в режиме TPI. Простой последовательный программатор, описанный в примечании к применению Atmel AVR910, и загрузчик, описанный в примечании к приложению Atmel AVR109 (который также используется AVR Оценочная плата Butterfly), поддерживаются через последовательный порт.Atmel JTAG ICE (mkI, mkII и 3) также поддерживается для загрузки или загрузки областей памяти. от / до цели AVR (без поддержки отладки на кристалле). Для JTAG ICE mkII, JTAG, Режимы debugWire и ISP поддерживаются при условии, что версия микропрограммы не ниже 4.14. (десятичный). JTAGICE3 также поддерживает все режимы JTAG, debugWIRE и ISP. См. Ниже ограничения debugWire. Для устройств ATxmega JTAG ICE mkII поддерживается в режиме PDI, при условии, что он имеет версию 1 оборудования и версию прошивки не менее 5.37 (десятичный). Для Устройства ATxmega, JTAGICE3 поддерживается в режиме PDI. AVR Dragon поддерживается во всех режимах (ISP, JTAG, HVSP, PP, debugWire). При использовании в Режимы JTAG и debugWire, AVR Dragon ведет себя аналогично JTAG ICE mkII, поэтому все устройства- также будут применяться специальные комментарии для этого устройства. При использовании в режиме ISP AVR Dragon ведет себя аналогично AVRISP mkII (или JTAG ICE mkII в режиме ISP), поэтому все зависит от устройства комментарии будут применяться там. В частности, Dragon начинается с довольно быстрого интернет-провайдера. тактовая частота, поэтому для достижения стабильного ISP может потребоваться опция -B bitclock коммуникация.Для устройств ATxmega AVR Dragon поддерживается в режиме PDI при условии, что он имеет версию прошивки не ниже 6.11 (десятичная). Также поддерживаются адаптеры avrftdi, USBasp ISP и USBtinyISP при условии, что avrdude имеет был скомпилирован с поддержкой libusb. USBasp ISP и USBtinyISP имеют простую прошивку - только реализации USB, работающие на ATmega8 (или ATmega88) или ATtiny2313 соответственно. Если libftdi была скомпилирована в avrdude , устройство avrftdi добавляет поддержку многих программисты, использующие части FTDI 2232C / D / H и 4232H, работающие в режиме MPSSE, который жестко кодирует (в микросхеме) SCK в бит 1, MOSI в бит 2 и MISO в бит 3.Сброс обычно бит 4. Могут быть предоставлены входные файлы, а выходные файлы могут быть записаны в различных форматах файлов, например как необработанные двоичные файлы, содержащие данные для загрузки в чип, шестнадцатеричный формат Intel или Формат Motorola S-record. Для создания этих файлов доступен ряд инструментов, например asl (1) как автономный ассемблер или avr-objcopy (1) для заключительного этапа GNU набор инструментов для микроконтроллера AVR. При условии, что libelf (3) присутствовал при компиляции avrdude , входной файл также может быть окончательным ELF-файл, созданный компоновщиком.Соответствующие разделы в формате ELF будут изучены, в соответствии с областью памяти для записи. Avrdude может программировать ячейки памяти EEPROM и flash ROM поддерживаемых частей AVR. Где Поддерживаемые последовательным набором команд, биты предохранителей и биты блокировки также могут быть запрограммированы. Они реализованы в avrdude как отдельные типы памяти и могут быть запрограммированы с помощью данные из файла (см. опцию -m ) или из терминального режима (см. дамп и запись команды).Также можно прочитать чип (при условии, что он не был защищен кодом ранее, конечно) и сохраните данные в файле. Наконец, `` терминальный '' режим - это доступно, что позволяет интерактивно общаться с MCU, а также отображать или программировать отдельные ячейки памяти. На программаторе STK500 и STK600 несколько рабочих параметры (целевое напряжение питания, целевое напряжение Aref, главные часы) могут быть проверены и также изменился из режима терминала. Опции Чтобы управлять всеми различными режимами работы, необходимо настроить ряд параметров. указан на avrdude . -p часть Это единственная опция, которая обязательна для каждого вызова avrdude . Это указывает тип MCU, подключенного к программатору. Они читаются из файла конфигурации. Если avrdude не знает об имеющейся у вас детали, просто добавьте его в файл конфигурации (обязательно отправьте патч обратно в автора, чтобы его можно было включить в следующую версию).Посмотреть образец config для формата. Для поддерживаемых в настоящее время типов MCU используйте? в качестве partno, это напечатает список идентификаторов деталей и официальных названий деталей на Терминал. (Оба могут использоваться с параметром -p.) Следующие части требуют особого внимания: AT90S1200 Протокол программирования ISP AT90S1200 отличается тонкими пути от других AVR. Таким образом, не все программисты поддерживают это устройство.Известно, что работают все прямые программисты bitbang, и все программисты говорят по протоколу STK500v2. AT90S2343 AT90S2323 и ATtiny22 используют один и тот же алгоритм. ATmega2560, ATmega2561 Адресация флэш-памяти размером более 128 КБ поддерживается не всеми программами. аппаратное обеспечение. Известно, что работают jtag2, stk500v2 и bit-bang. программисты. ATtiny11 ATtiny11 можно программировать только в высоковольтном последовательном режиме. -b скорость передачи Отменить скорость передачи данных RS-232, указанную в соответствующем запись конфигурационного файла программистом. -B битовые часы Укажите период битовой синхронизации для интерфейса JTAG или тактовой частоты интернет-провайдера (JTAG ICE Только). Значение представляет собой число с плавающей запятой в микросекундах. По умолчанию значение JTAG ICE дает примерно 1 микросекундный битовый период, подходит для целевых микроконтроллеров, работающих с тактовой частотой 4 МГц и выше.В отличие от некоторых параметры в STK500, JTAG ICE сбрасывает все параметры по умолчанию значения, когда программное обеспечение для программирования выходит из ICE, поэтому для MCU работает на более низких тактовых частотах, этот параметр должен быть указан на командная строка. Вы можете использовать ключевое слово default_bitclock в своем файл $ {HOME} /. Avrduderc , чтобы назначить значение по умолчанию, чтобы избежать необходимости указывайте эту опцию при каждом вызове. -c идентификатор программиста Используйте программатор, указанный в аргументе. Программисты и их пин конфигурации считываются из файла конфигурации (см. параметр -C ). Новый значок конфигурации могут быть легко добавлены или изменены с помощью конфигурации файл, чтобы заставить avrdude работать с разными программистами, пока программист поддерживает метод последовательной программы Atmel AVR.Вы можете использовать ключевое слово default_programmer в файле $ {HOME} /. avrduderc для назначения программист по умолчанию, чтобы не указывать эту опцию на каждом призыв. Полный список всех поддерживаемых программистов выводится в терминал с помощью? как идентификатор программиста. -C файл конфигурации Используйте указанный файл конфигурации для загрузки данных конфигурации. Этот файл содержит все определения программиста и деталей, о которых знает avrdude .Если у тебя есть программатор или деталь, о которой avrdude не знает, вы можете добавить ее в config (обязательно отправьте патч автору, чтобы его можно было включены в следующую версию). См. Файл конфигурации, расположенный по адресу /etc/avrdude.conf , содержащий описание формата. Если файл конфигурации записан как + имя файла , то этот файл читается после системы широкие и пользовательские файлы конфигурации.Это можно использовать для добавления записей в конфигурацию без исправления общесистемного файла конфигурации. Может быть используются несколько раз, файлы читаются в том же порядке, что и в команде линия. -D Отключить автоматическое стирание вспышки. Когда опция -U с флэш-памятью указано, avrdude выполнит стирание чипа перед запуском любого из программирование операций, так как обычно программирование вспышки является ошибкой без предварительного стирания.Эта опция отключает это. Автоматическое стирание есть не используется для устройств ATxmega, так как эти устройства могут использовать стирание страниц перед запись каждой страницы, поэтому явное стирание чипа не требуется. Обратите внимание, однако, что любая страница, на которую не влияет текущая операция, сохранит свой предыдущий содержание. -e Вызывает выполнение стирания микросхемы. Это сбросит содержимое флэш-памяти. ПЗУ и ЭСППЗУ на значение «0xff» и очистить все биты блокировки.Кроме Устройства ATxmega, которые могут использовать стирание страниц, это в основном предварительное условие перед повторным программированием флэш-ПЗУ. Единственное исключение было бы, если бы новое содержимое привело бы исключительно к программированию битов от значения «1» до «0». Обратите внимание, что для перепрограммирования ячеек EERPOM нет требуется явное предварительное стирание чипа, поскольку MCU обеспечивает автоматическое стирание цикл в этом случае перед программированием ячейки. -E exitspec [, exitspec ] По умолчанию avrdude оставляет параллельный порт в том же состоянии при выходе, что и он. был найден при запуске. Эта опция изменяет состояние «/ RESET» и Строки «Vcc», на которых остается параллельный порт, согласно аргументам exitspec при условии, что: сброс Сигнал «/ RESET» останется активным при выходе из программы, то есть он будет удерживаться low , чтобы держать MCU в состоянии сброса после.Отметим, в частности, что алгоритм программирования для устройство AT90S1200 требует, чтобы сигнал «/ RESET» был активен до включения MCU, поэтому в случае, если внешний источник питания используется для этого типа MCU, предыдущий вызов avrdude с этим указанный вариант является одним из возможных способов гарантировать это состояние. noreset Строка «/ RESET» будет деактивирована при выходе из программы, что позволит Целевая программа MCU для запуска, в то время как оборудование для программирования остается связаны. vcc Эта опция оставит эти выводы параллельного порта активными (т.е. высокий ) который может использоваться для подачи питания «Vcc» на MCU. novcc Эта опция потянет контакты «Vcc» параллельного порта вниз на выход из программы. d_high Эта опция оставит 8 контактов данных на параллельном порту активными. (т.е. высокий ) d_low Эта опция оставит 8 контактов данных на параллельном порту неактивными. (т.е. низкий ) Несколько аргументов exitspec можно разделить запятыми. -F Обычно avrdude пытается проверить, что подпись устройства считана из части разумно, прежде чем продолжить. Поскольку время от времени может случиться, что устройство имеет неработающую (стертую или перезаписанную) подпись устройства, но в противном случае при нормальной работе эта опция предназначена для отмены проверки.Также для программисты, такие как Atmel STK500 и STK600, которые могут настраивать параметры локально к инструменту программирования (независимо от фактического подключения к целевому контроллер), эту опцию можно использовать вместе с -t для продолжения в терминале режим. -i задержка Для программистов типа bitbang задержка примерно на мкс микросекунд. между каждым изменением состояния бита.Если хост-система очень быстрая или целевая работает от медленных часов (например, кристалл 32 кГц или внутренний RC 128 кГц осциллятор), это может стать необходимым для удовлетворения требования, чтобы интернет-провайдер тактовая частота не должна быть выше 1/4 тактовой частоты процессора. Этот реализована как задержка цикла вращения, чтобы допускать даже очень короткие задержки. На В операционных системах в стиле Unix цикл вращения изначально откалиброван по системный таймер, поэтому количество микросекунд может быть довольно реалистичным, предполагая постоянную загрузку системы во время работы avrdude .На Win32 работает систем, предполагается предварительно сконфигурированное количество циклов в микросекунду, что может быть немного выключен для очень быстрых или очень медленных машин. -l файл журнала Для вывода диагностики используйте файл журнала , а не stderr . Обратите внимание, что начальный диагностические сообщения (во время синтаксического анализа параметров) по-прежнему записываются на stderr в любом случае. -n No-write - отключает фактическую запись данных в MCU (полезно для отладки avrdude ). -O Выполните калибровку времени работы RC-генератора в соответствии с приложением Atmel. примечание AVR053. Поддерживается только на STK500v2, AVRISP mkII и JTAG. Оборудование ICE mkII. Обратите внимание, что результат будет сохранен в ячейке EEPROM по адресу адрес 0. -P порт Используйте порт для идентификации устройства, к которому подключен программатор. К по умолчанию используется порт / dev / ppi0 , но если тип программиста обычно подключается к последовательному порту, порт / dev / cuaa0 используется по умолчанию.Если тебе нужно чтобы использовать другой параллельный или последовательный порт, используйте эту опцию, чтобы указать альтернативное имя порта. В операционных системах Win32 параллельные порты называются от lpt1 до lpt3, ссылаясь на адреса 0x378, 0x278 и 0x3BC соответственно. Если к параллельному порту можно получить доступ через другой адрес, этот адрес можно указать напрямую, используя общепринятую нотацию языка C (т.е.е., шестнадцатеричные значения имеют префикс «0x»). Для JTAG ICE mkII и JTAGICE3, если avrdude был настроен с помощью libusb поддержки, порт можно также указать как usb [: серийный номер ]. Это будет заставить avrdude искать программатор на USB. Если также указан серийный номер , он будет сопоставлен с серийным номером, считанным с любого найденного JTAG ICE mkII по USB.Сопоставление выполняется после удаления любых существующих двоеточий из заданного порядковый номер и с письмом справа налево, поэтому только наименее значимые байты из необходимо указать серийный номер. Поскольку с устройством AVRISP mkII можно разговаривать только через USB, тот же метод там требуется указать порт. Для USB-программатора «AVR-Doper», работающего в режиме HID, порт должен быть указано как avrdoper. Поддержка Libusb требуется в Unix, но не в Windows. Для получения дополнительной информации о AVR-Doper см. http://www.obdev.at/avrusb/avrdoper.html. Для USBtinyISP, который является упрощенным устройством, не реализующим серийный номера, несколько устройств можно отличить по их расположению на USB иерархия. См. Соответствующую запись Устранение неполадок в подробном описании. документация для примеров.Для программистов, которые подключаются к последовательному порту, используя какой-то более высокий уровень протокол (в отличие от программистов стиля бит-взрыва), порт может быть указан как сеть : хост : порт . В этом случае вместо попытки открыть локальное устройство TCP установлено сетевое подключение к (TCP) порту на хосте . Удаленная конечная точка предполагается, что это терминальный или консольный сервер, который подключает сетевой поток к локальному последовательному порту, к которому подключен настоящий программист.В предполагается, что порт настроен правильно, например, с использованием прозрачного 8-битное соединение для передачи данных без контроля четности на скорости 115200 бод для STK500. Это Функция - это в настоящее время не реализовано для систем Win32 . -q Отключить (или подавить) вывод индикатора выполнения при чтении или записи в устройство.Для еще более тихой работы укажите его второй раз. -s Отключить запрос безопасного режима. Когда безопасный режим обнаруживает, что один или несколько предохранителей биты были непреднамеренно изменены, появится запрос на подтверждение относительно следует ли пытаться восстановить бит (ы) предохранителя. Указывая это флаг отключает подсказку и предполагает, что бит (ы) предохранителя следует восстановить без предварительного подтверждения. -t Указывает avrdude перейти в интерактивный `` терминальный '' режим вместо повышения или загрузка файлов. См. Ниже подробное описание режима терминала. -u Отключить проверку бит предохранителя безопасного режима. Безопасный режим включен по умолчанию и Предназначен для предотвращения непреднамеренной замены битов предохранителей. Когда включен, безопасный режим выдаст предупреждение, если какие-либо биты предохранителей будут отличаться в программе exit, чем при вызове avrdude .Safemode не изменяет биты предохранителей сам, но будет запрашивать инструкции, если только терминал не интерактивный, в этом случае безопасный режим отключен. См. Параметр -s , чтобы отключить подсказка безопасного режима. Если в одном из файлов конфигурации есть строка default_safemode = нет; Safemode по умолчанию отключен. Эффект опции -u сводится на нет в этом случай, я.е. включает безопасный режим . Safemode всегда отключен для устройств AVR32, Xmega и TPI. -U memtype: op: filename [: формат ] Выполните операцию с памятью, как указано. Поле memtype указывает тип памяти для работы. Доступные типы памяти зависят от устройства. фактическую конфигурацию можно просмотреть с помощью команды part в режиме терминала.Как правило, конфигурация памяти устройства, по крайней мере, содержит типы памяти. flash и eeprom . В настоящее время известны все типы памяти: калибровка Один или несколько байтов данных калибровки RC-генератора. eeprom EEPROM устройства. efuse Расширенный байт предохранителя. прошить флэш-ПЗУ устройства. fuse Байт предохранителя в устройствах, которые имеют только один байт предохранителя.hfuse Старший байт предохранителя. lfuse Младший байт предохранителя. lock Байт блокировки. подпись Три байта подписи устройства (идентификатор устройства). предохранитель N Байты предохранителей устройств ATxmega, N - целое число для каждый предохранитель поддерживается устройством. application Область приложения flash для устройств ATxmega. apptable Область флеш-памяти таблицы приложений устройств ATxmega.boot Область загрузочной флэш-памяти устройств ATxmega. prodsig Область производственной сигнатуры (калибровки) устройств ATxmega. usersig Область подписи пользователей устройств ATxmega. Поле op указывает, какую операцию выполнить: r чтение памяти устройства и запись в указанный файл w чтение данных из указанного файла и запись в память устройства v считывает данные как с устройства, так и из указанного файла и выполняет проверять Поле filename указывает имя файла для чтения или записи.В Формат Поле является необязательным и содержит формат файла для чтения или записи. Формат может быть одним из: i Intel Hex с Motorola S-record r необработанный двоичный файл; порядок байтов с прямым порядком байтов, в случае данных флэш-ПЗУ e ELF (исполняемый и связываемый формат) м сразу; фактические значения байтов, указанные в командной строке, разделенные символом запятые или пробелы.Это хорошо для программирования байтов предохранителей без для создания однобайтового файла или входа в режим терминала. - автоматическое определение ; действительно только для ввода, и только если ввод не предоставлен по адресу stdin . d десятичный; этот и следующие форматы действительны только для вывода. Они генерировать одну строку вывода для соответствующего раздела памяти, формируя Список значений, разделенных запятыми.Это может быть особенно полезно для последующая обработка, как и при настройке битов предохранителей. h шестнадцатеричный; к каждому значению будет добавлена строка 0x . o восьмеричный; каждому значению будет добавлено 0 , если оно не меньше 8 дюймов в этом случае он не получает префикса. b двоичный; к каждому значению будет добавлена строка 0b .По умолчанию используется автоматическое определение для входных файлов и необработанный двоичный формат. для выходных файлов. Обратите внимание, что если имя файла содержит двоеточие, поле формата будет больше не является необязательным, поскольку в противном случае часть имени файла после двоеточия может быть неверно истолкован как формат . В качестве сокращения форма -U имя_файла эквивалентна указанию -U flash: w: filename : a.Это будет работать, только если filename не имеет двоеточия в Это. -v Включить подробный вывод. Дополнительные опции -v повышают уровень детализации. -V Отключить автоматическую проверку при загрузке данных. -x расширенный_парам Передайте extended_param выбранной реализации программиста в качестве расширенного параметр. Интерпретация расширенного параметра зависит от сам программист.См. Ниже список программистов, принимающих расширенные параметры. Клемма режим В этом режиме avrdude только инициализирует связь с MCU, а затем ожидает пользователя команды на стандартный ввод. Команды и параметры могут быть сокращены до самого короткого. однозначная форма. Терминальный режим предоставляет историю команд с помощью readline (3), поэтому ранее введенные командные строки можно вызывать и редактировать. Следующие команды в настоящее время реализовано: дамп тип памяти адрес нбайт Прочитать нбайт байт из указанной области памяти и отобразить их в обычная шестнадцатеричная и ASCII форма. дамп Продолжить выгрузку содержимого памяти еще для нбайт , где предыдущий dump команда остановлена. запись тип памяти адрес байт1 ... байтN Вручную запрограммируйте соответствующие ячейки памяти, начиная с адреса и адреса , используя значения от байт1 от до байтN . Эта функция не реализована для банков- адресные запоминающие устройства, такие как флэш-память устройств ATMega. erase Выполните стирание чипа. отправить b1 b2 b3 b4 Отправьте необработанные коды инструкций на устройство AVR. Если вам нужен доступ к функции части AVR, которая не поддерживается напрямую avrdude , эта команда позволяет вы можете использовать его, даже если avrdude не реализует команду. Когда используешь прямой режим SPI, можно пропустить до 3 байтов. sig Показать байты подписи устройства. spi Войдите в режим прямого SPI. Вывод pgmled действует как выбор ведомого. Только поддерживается на параллельно bitbang программистов. деталь Отображение текущих настроек и параметров детали. Включает специфический чип информация, включая все типы памяти, поддерживаемые устройством, чтение / запись сроки и т. д. pgm Возврат в режим программирования (из прямого режима SPI). vtarg напряжение Установите напряжение питания цели на , напряжение Вольт. Только поддерживается на STK500 и STK600 программатор. varef [ канал ] напряжение Установите регулируемый источник напряжения на напряжение Вольт.Это напряжение обычно используется для управления входом цели Aref на STK500. На Atmel STK600 два доступны опорные напряжения, которые можно выбрать с помощью дополнительного канал аргумент (0 или 1). Только поддерживается на STK500 и STK600 программист. fosc freq [M | k] Установите задающий генератор на частоту Гц.Необязательная завершающая буква M умножается на 1E6, а конечная буква k на 1E3. Только поддерживается на STK500 и STK600 программатор. fosc от Выключите задающий генератор. Только поддерживается на STK500 и STK600 программист. sck период STK500 и STK600 программатор только : Установить период тактовой частоты SCK на период микросекунды. JTAG ICE Только : Установите период тактовой частоты бита JTAG ICE на период микросекунд. Примечание что в отличие от настроек STK500, для этого параметра будет восстановлено значение по умолчанию. значение (приблизительно 1 микросекунда), когда программное обеспечение для программирования завершает работу из JTAG ICE.Этот параметр также можно использовать на JTAG ICE mkII и JTAGICE3, чтобы указать период времени ISP при работе ICE в режиме ISP. parms STK500 и STK600 программатор только: Отображение текущего напряжения и мастера параметры генератора. JTAG ICE Только : Отображение текущего целевого напряжения питания и тактовой частоты битов JTAG ставка / период. подробный [ уровень ] Изменить (если предоставляется уровень ) или отобразить уровень детализации. Начальный уровень детализации контролируется количеством опций -v , указанных на командная строка. ? help Дайте краткую онлайн-сводку доступных команд. выйти из Выйти из режима терминала и, таким образом, avrdude . По умолчанию Параллельный порт контакт соединения (их можно изменить, см. параметр -c ) Номер контакта Функция 2-5 В постоянного тока (дополнительный источник питания для MCU) 7 / СБРОС (в MCU) 8 SCK (к MCU) 9 MOSI (для MCU) 10 MISO (из MCU) 18-25 ЗЕМЛЯ debugWire ограничения Протокол debugWire - это собственный однопроводной (плюс земля) протокол Atmel, позволяющий внутрисхемная эмуляция небольших устройств AVR с использованием строки «/ RESET».Режим DebugWire инициируется активацией предохранителя «DWEN», а затем выключением и включением питания цели. Пока этот режим в основном предназначен для отладки / эмуляции, он также предлагает ограниченные возможности программирования. Фактически, единственные области памяти, которые можно читать или программировать в этом режиме, - это флэш-ПЗУ. и EEPROM. Также есть возможность зачитать подпись. Все остальные области памяти не могут быть доступным. В режиме debugWire отсутствует функция стирания микросхемы ; вместо этого, пока перепрограммируя флэш-ПЗУ, каждая страница флэш-ПЗУ стирается прямо перед обновлением.Этот прозрачно выполняется JTAG ICE mkII (или AVR Dragon). Единственный путь назад от Режим debugWire предназначен для запуска специальной последовательности команд для JTAG ICE mkII (или AVR Dragon), поэтому режим debugWire будет временно отключен, а цель станет доступной. используя обычное программирование ISP. Эта последовательность автоматически запускается с помощью JTAG ICE mkII или AVR Dragon в режиме ISP, когда они обнаруживают, что в режим ISP невозможно войти. Программисты , принимающие расширенные параметры JTAG ДВС MKII JTAGICE3 AVR Дракон При использовании JTAG ICE mkII, JTAGICE3 или AVR Dragon в режиме JTAG Допускается следующий расширенный параметр: jtagchain = UB, UA, BB, BA Настройте цепочку сканирования JTAG для единиц UB до, UA единиц после, BB бит до и BA бит после целевого AVR, соответственно.Каждый блок AVR в цепочке сдвигается на 4 бита. Другой JTAG единицам может потребоваться другой счетчик сдвига битов. AVR910 код разработчика = ЗНАЧЕНИЕ Отмените выбор кода устройства, используя ЗНАЧЕНИЕ в качестве устройства. код. У программиста не запрашивается список поддерживаемых коды устройств, а указанное ЗНАЧЕНИЕ не проверено, но используется непосредственно в команде «T», отправленной программисту. ЗНАЧЕНИЕ можно указать, используя обычную числовую запись C язык программирования. no_blockmode Отключает стандартную проверку возможности блочной передачи. Используйте no_blockmode , только если ваш программатор AVR910 создает ошибки во время начальной последовательности. буспират сброс = {cs, aux, aux2} По умолчанию предполагается, что выходной контакт BusPirate CS подключен к контакту RESET на стороне AVR. Однако возможно иметь несколько AVR, подключенных к одному BP с MISO, MOSI и общие для всех линии SCK. В таком случае один АРН должен иметь его RESET, подключенный к выводу BusPirate CS , второй СБРОС AVR подключен к контакту AUX BusPirate, и если ваш BusPirate имеет вывод AUX2 (доступно только в версии BusPirate). v1a с прошивкой 3.0 или новее) используйте это, чтобы активировать СБРОС на третий AVR. Было бы неплохо разделить BusPirate и AVR. Шины SPI друг от друга с использованием буфера шины с 3 состояниями. Для пример 74HC125 или 74HC244 - хорошие кандидаты с защелки управляются соответствующим выводом сброса (cs, aux или aux2). В противном случае трафик SPI в одной активной цепи может мешать с программированием АРН в другом исполнении. spifreq = <0..7> Скорость SPI для двоичного режима SPI Bus Pirate: 0 .. 30 кГц (по умолчанию) 1 .. 125 кГц 2 .. 250 кГц 3 .. 1 МГц 4 .. 2 МГц 5 .. 2,6 МГц 6 .. 4 МГц 7.. 8 МГц rawfreq = <0..3> Устанавливает скорость SPI и использует двоичный "raw-wire" Bus Pirate. Режим: 0 .. 5 кГц 1 .. 50 кГц 2 .. 100 кГц (только прошивка v4.2 +) 3 .. 400 кГц (v4.2 +) Единственное преимущество режима "raw-wire" - это другой SPI. доступные частоты.Постраничная запись в этом режим. ascii Попытка использовать режим ASCII, даже если прошивка поддерживает BinMode (двоичный режим). BinMode поддерживается в прошивках 2.7 и более новые, старые FW либо не имеют BinMode, либо их BinMode глючный. Режим ASCII медленнее и выполняет вышеуказанный сброс = , spifreq = и rawfreq = параметров недоступны.Имейте в виду, что режим ASCII не гарантируется работа с более новыми версиями прошивки и сохранено только для обеспечения совместимости со старыми прошивками версии. nopagedwrite Версии прошивки 5.10 и новее поддерживают бинарный режим SPI. команда, которая позволяет записывать целые страницы во флэш-память AVR память сразу, что приводит к значительному увеличению скорости записи.Если использование этого режима по какой-либо причине нежелательно, это опция отключает его. nopagedread Более новые версии прошивки поддерживают в двоичном режиме команду SPI. Расширенные команды AVR. Использование "объемного чтения памяти из флэш-памяти" приводит к значительному увеличению скорости чтения. Если использование этого режим по какой-то причине нежелателен, эта опция его отключает. cpufreq = <125..4000> Это устанавливает вывод AUX на выходную частоту n кГц. Подключение контакт AUX к контакту XTAL1 вашего MCU, вы можете предоставить ему часы, например, когда ему нужны внешние часы из-за неправильная настройка предохранителей. Этот параметр доступен только в ASCII. режим.(Нижний предел был выбран таким образом, чтобы частота процессора была на уровне по крайней мере, в четыре раза больше частоты SPI, которая находится в режиме ASCII 30 кГц.) serial_recv_timeout = <1 ...> Это устанавливает тайм-аут последовательного приема на заданное значение. В таймаут происходит каждый раз, когда avrdude ожидает BusPirate незамедлительный. Особенно в режиме ascii это происходит очень часто, поэтому установка меньшего значения может значительно ускорить программирование.В значение по умолчанию - 100 мс. Использование 10 мс может работать в большинстве случаев. Электропроводка При использовании программатора электропроводки следующие дополнительные расширенные параметр принят: отложить = <0..32767> После выполнения фазы открытия порта AVRDUDE будет ждать / откладывать на отложить миллисекунд перед продолжением синхронизации протокола фаза.Переключение DTR / RTS не выполняется, если snooze больше чем 0. PICkit2 Подключение к программатору PICkit2: (AVR) (PICkit2) RST - VPP / MCLR (1) VDD - VDD Target (2) - возможно, опционально, если AVR имеет автономное питание ЗЕМЛЯ - ЗЕМЛЯ (3) MISO - PGD (4) SCLK - PDC (5) MOSI - AUX (6) Расширенные параметры командной строки: тактовая частота = <скорость> Устанавливает частоту синхронизации SPI в Гц (по умолчанию 100 кГц).В качестве альтернативы можно использовать параметры -B или -i для установки периода. тайм-аут =ФАЙЛЫУстанавливает тайм-аут для чтения и записи USB в миллисекундах (по умолчанию 1500 мс).
/ dev / ppi0 устройство по умолчанию, которое будет использоваться для связи с программой аппаратное обеспечение / и т.д. / avrdude.conf файл конфигурации программатора и деталей $ {HOME} /. Avrduderc файл конфигурации программатора и деталей (переопределения для каждого пользователя) ~ / .inputrc Файл инициализации для библиотеки readline (3) /usr/share/doc/avrdude-doc/avrdude.pdf Схема программирования оборудованияДИАГНОСТИКА
avrdude: jtagmkII_setparm (): неправильный ответ на команду установки параметров: RSP_FAILED avrdude: jtagmkII_getsync (): активация ISP не удалась, попытка debugWire avrdude: цель подготовлена для интернет-провайдера, подписана.avrdude: перезапустите avrdude, не выключая и не выключая целевой объект. Если целевой AVR был настроен для режима debugWire (т.е. запрограммирован предохранитель DWEN ), Обычные попытки подключения к Интернет-провайдеру завершатся ошибкой, поскольку вывод / RESET недоступен. При использовании JTAG ICE mkII в режиме ISP, показанное сообщение указывает, что avrdude угадал это условие, и попытался инициировать сброс debugWire к цели. В случае успеха это оставит целевой AVR в состоянии, в котором он снова сможет отвечать на нормальную связь с интернет-провайдером. (до следующего цикла включения).Как правило, та же команда будет повторена снова. сразу после этого, а затем успешно подключится к цели с помощью обычного интернет-провайдера коммуникация.СМОТРИ ТАКЖЕ
avr-objcopy (1), ppi (4), libelf (3,) строка чтения (3) Описание продукта микроконтроллера AVR можно найти на http://www.atmel.com/products/AVR/АВТОРЫ
Avrdude был написан Брайаном С.ДинОШИБКИ. Эта страница руководства от Joerg Wunsch.
Пожалуйста, сообщайте об ошибках через http://savannah.nongnu.org/bugs/?group=avrdude. Программисты JTAG ICE в настоящее время не могут записывать во флэш-ПЗУ по одному байту. Для по этой причине обновление флэш-ПЗУ из режима терминала не работает. Программирование EEPROM в страничном режиме через JTAG (то есть через опцию -U ) требует предварительного стирание чипа.Это неотъемлемая черта способа работы программирования JTAG EEPROM. Этот также относится к STK500 и STK600 в режиме параллельного программирования. Драйверы USBasp и USBtinyISP не позволяют различать несколько устройств. подключены одновременно, поэтому эффективно поддерживается только одно устройство. Драйвер avrftdi позволяет выбирать определенные устройства, используя любую комбинацию vid, pid serial.