- USBasp — USB программатор для микроконтроллеров Atmel AVR
- Изготовление и настройка программатора USBASP
- Список деталей для нашего программатора:
- Про Ардуино и не только
- четверг, 13 сентября 2018 г.
- Программатор USBasp
- Содержание
- Подключение программатора USBasp к Ардуино
- Драйвера для USBasp
- Чтение и запись фьюзов Ардуино
- Чтение и запись FLASH и EEPROM памяти Ардуино
- Запись загрузчика в Ардуино
USBasp — USB программатор для микроконтроллеров Atmel AVR
USBasp — это внутрисхемный USB программатор для микроконтроллеров Atmel AVR . Данный программатор состоит из одного микроконтроллера AT m ega8 и небольшого количества пассивных элементов, поэтому он довольно компактный (70х20мм) и имеет элегантный дизайн.
Для работы с программатором необходимо установить только USB драйвер и нет необходимости прошивать сам микроконтроллер с использованием дополнительного оборудования.
- работает с несколькими платформами: Windows (XP, Vista и Windows 7), Linux и Mac OS X;
- нет необходимости использовать дополнительные микроконтроллеры или SMD элементы;
- скорость программирования до 5 кБ/сек;
- SCK-джампер позволяет программировать низкоскоростные микроконтроллеры (
Указываем папку в которой лежат драйвера для USBasp программатора.
Нажмите кнопку «Далее» и начнется процесс установки.
После установки драйвера мастер оборудования завершит работу.
Установка драйвера для USBasp программатора на Windows Vista x64 и Windows 7:
1. Скачайте драйвер —
2. Вставьте USBASP в порт USB;
Система будет пытаться установить драйвер из Центра обновления Windows
Теперь, перейдите в диспетчер устройств и найдите запись для программатора USBASP. Он должен отображаться с желтым значком предупреждения;
Щелкните правой кнопкой мыши на устройстве и выберите пункт «Обновить драйвер»
В ответ на запрос «Как вы хотите найти драйвер», выберите «Выполнить поиск драйверов на этом компьютере»
Выберите папку, в которую вы распаковали файлы драйвера нажмите кнопку «Далее»
После чего, в окне появится красная полоса, которая предупреждает Вас сообщением «Windows не может проверить издателя этого программного драйвера»;
Нажмите кнопку «Установить программное обеспечение этого драйвера» и драйвер будет установлен.
Программы для работы с программатором:
Программисту представляется возможность работать с широким разнообразием микроконтроллеров Atmel AVR в том числе и ATMEGA8A, Atmega168a и различным программным обеспечением:
? 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-контактный кабель, как показано на основной фотографии.
Распиновка 10-контактного кабеля
1 — MOSI (Выход данных для последовательного программирования)
2 — VTG +5V (Выход +5В, для питания программируемой платы от шины USB током до *200мА . )
3 — NC (Не используется)
4 — GROUND (Общий или минус питания)
5 — RESET (Подключается к выводу RESET микроконтроллера)
6 — GROUND (Общий или минус питания)
7 — SCK (Выход тактирования данных)
8 — GROUND (Общий или минус питания)
9 — MISO (Вход данных для последовательного программирования)
10 — GROUND (Общий или минус питания)
При разомкнутом джампере — частота SCK будет высокой = 375 кГц, при замкнутом — пониженной = 8 кГц. Это сделано для программирования микроконтроллеров с низкой частотой тактирования (меньше 1.5 МГц).
Зеленый (желтый) светодиод «P” (POWER)— сигнализирует о том, что программатор находится в рабочем состоянии. Красный светодиод «F” (FIRMWARE) зажигается только когда идет процесс обмена данными с компьютером (запись либо считывание данных).
Источник
Изготовление и настройка программатора USBASP
Здравствуйте, уважаемые коллеги SW19 и просто те, кому интересна электроника.
Эта статья будет посвящена изготовлению программатора USBASP своими руками. Собрать его решил просто из спортивного интереса, так как детали давно лежали и заняться было не чем. Он предназначен для прошивки микроконтроллеров фирмы Atmel. Схема проста, как 3 копейки и требует только внимательности и аккуратности. Я не стал мудрствовать и нашёл схему в интернете:
По ней и будем собирать наш программатор.
Там же брал и все файлы для изготовления программатора. Продолжим дальше. Использовать будем микроконтроллер (далее МК) Atmega8 – 16PU, можно Atmega8A.
Печатную плату я переделал под корпус, который был в наличии у меня. Заказывал его на Али.
Вот ссылка, где брал: http://ru.aliexpress.com/item/New-Plastic-Electronic-Project-Box-100x60x.
Изготавливать печатную плату будем по технологии ЛУТ. Что это такое описывать тут не буду, так как в интернете полно статей на эту тему. Переносим рисунок печатной платы на текстолит.
У меня получилось как- то так:
Травим наше творение в хлорном железе:
Тогда я ещё не знал про перекись водорода, лимонную кислоту и соль, ну да ладно. Делаем так, как знаем.
Получаем такой результат:
Сверлим отверстия. Я сверлил моторчиком с латунной цангой. Тоже брал с Али. Кому интересно, вот ссылка на сей девайс:
http://ru.aliexpress.com/item/12V-Motor-0-5-3mm-Small-Electric-Drill-Bit.
Потом лудим обычным паяльником, предварительно покрыв нашу плату ЛТИ-120.
Получилось немного коряво, но ничего страшного. Мы делаем первый раз такие вещи и нам простительно. Тем более, что на выставку мы не претендуем. После того, как плату залудили – советую её отмыть изопропиловым спиртом, так как ЛТИ -120 губительно сказывается на дорожках печатной платы и выводах деталей, и со временем разрушает их.
Список деталей для нашего программатора:
МК Atmega8 – 16PU | 1шт. |
Панелька под МК DIP 28 | 1шт. |
Кварцевый резонатор на 12 Мгц | 1шт. |
Стабилитрон BZV85C3V6(1N4729A) | 2шт. |
Резистор 10 Ком | 1шт. |
Резистор 68 ом | 2шт. |
Резистор 390ом | 2шт. |
Резистор 270 Ком | 1шт. |
Резистор 1,5 Ком | 1шт. |
Конденсатор 18 пф | 2шт. |
Конденсатор 100 нф | 1шт. |
Конденсатор 10 мкф 16в | 1шт. |
USB разъём USBB-1J | 1шт. |
Разъём ISP 10 штырей | 1шт. |
Джампер | 3шт. |
Светодиод красный | 1шт. |
Светодиод зелёный | 1шт. |
Далее собираем наш программатор. Первым делом впаиваем перемычки, джампера, резисторы.
Далее по возрастающей. Последними запаиваем разъёмы, панельку под МК, светодиоды, кварцевый резонатор.
В итоге получаем вот такой вот вид:
Теперь прошьём наш МК. Мой компьютер не имеет LPT и COM портов, поэтому будем прошивать USB программатором. В моём случае это TL866CS, брат-близнец нашего WizardProg 87. Брал его тоже на Али, но ссылка, к сожалению не сохранилась.
Подключаем программатор к компьютеру. Запускаем программу для работы с программатором.
Она от WizardProg 87, полностью русифицирована и полностью дружит с нашим китайским девайсом.
Выбираем наш МК из списка. В данном случае это Atmega8A.
Нажимаем на кнопочку «Размещение ИМС», для того, чтобы посмотреть, как установить наш МК в панель программатора:
И устанавливаем наш микроконтроллер:
Выбираем прошивку, которую будем записывать в память МК:
Выставляем фьюзы так, чтобы получилось как у меня на фото, смотрим, где обведено красным маркером:
Будьте внимательны при настройке фьюзов! В разных программаторах они могут быть инверсными! Это значит, что там где у меня стоит галочка, в Вашем может её и не быть! Это важно! Неправильная настройка фьюзов может привести к полному залочиванию МК!
Далее прошиваем нашу Atmega8 – 16PU.
Проверяем наш МК программатором на наличие ошибок после записи прошивки, так называемая варификация:
Всё успешно прошилось.
Теперь собираем наш программатор и проверяем. Подключаем его к ПК через кабель USB.
Ставим драйвера.
У меня всё получилось с первого раза. Далее собираем всё в корпус. Где его взять – написано в самом начале статьи. И оформляем, чтобы было понятно, что куда подключать.
Вид готового программатора, подключённого к ПК.
Ну вот и всё на сегодня, надеюсь было интересно и полезно. Желаю всем удачи в ремонтах и спасибо за внимание.
Источник
Про Ардуино и не только
четверг, 13 сентября 2018 г.
Программатор USBasp
Сегодня речь пойдет о программаторе USBasp — популярном программаторе для микроконтроллеров фирмы Atmel серии AVR. Как заявляет его создатель на домашней странице проекта, USBasp работает на различных платформах (Windows, Linux, Mac OS X), не требует дополнительных компонентов и обеспечивает скорость программирования до 5 кбит/с. Кроме того его схема довольно проста и желающие могут собрать этот программатор самостоятельно. Либо можно заказать готовый на Aliexpress, как я и поступил. Обошелся он мне в $1.70 вместе с переходником на ICSP разъем.
Содержание
Подключение программатора USBasp к Ардуино
USBasp позволяет программировать AVR микроконтроллеры через последовательный интерфейс SPI. Для этого он имеет 10-пиновый разъем SPI. И подключение программатора к Ардуино или отдельному микроконтроллеру сводится к соединению их линий SPI и Reset.
В большинство плат Ардуино присутствует ICSP разъем, в котором сгруппированы выводы для внутрисхемного программирования: MOSI, MISO, SCK, RST, GND и VCC. Поэтому удобнее всего подключать программатор именно к ICSP. Здесь вам потребуется распиновка разъемов, она приведена ниже:
Соедините соответствующие выводы программатора и Ардуино, должно получиться примерно так:
Конечно, возиться каждый раз с проводами не очень удобно, поэтому советую приобрести переходник ISP 10 pin to 6 pin. С ним всё становится гораздо проще.
Если же на плате Ардуино нет ICSP разъема, то остается подключать программатор к цифровым выводам в соответствии со следующей таблицей. В ней приведено расположение выводов MOSI, MISO и SCK для различных плат Ардуино.
Плата Ардуино | MOSI | MISO | SCK | Уровень |
---|---|---|---|---|
Uno, Duemilanove | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 | 5В |
Nano | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 | 5В |
Pro Mini | 11 | 12 | 13 | 3.3В или 5В |
Mega1280, Mega2560 | 51 или ICSP-4 | 50 или ICSP-1 | 52 или ICSP-3 | 5В |
Leonardo | ICSP-4 | ICSP-1 | ICSP-3 | 5В |
Due | ICSP-4 | ICSP-1 | ICSP-3 | 3.3В |
Zero | ICSP-4 | ICSP-1 | ICSP-3 | 3.3В |
101 | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 | 3.3В |
Не забывайте о том, что некоторые платы требуют питания 3.3В и для них нужно менять положение джампера JP1 на программаторе.
Драйвера для USBasp
Для работы с USBasp в Windows следует установить драйвера. Разработчик данного программатора рекомендует использовать драйвера Zadig, скачать их можно на странице http://zadig.akeo.ie/. Обратите внимание, начиная с версии драйвера 2.3 прекращена поддержка Windows XP и Vista. Для указанных систем используйте предыдущую версию драйвера: zadig_xp_2.2.exe для XP и zadig_2.2.exe для Vista.
У меня в системе установлены драйвера из этого набора, они подходят как для XP, так и для свежих версий Windows. Скачайте архив, распакуйте его и запустите InstallDriver.exe для установки драйверов.
После установки драйверов программатор будет виден в диспетчере устройств как USBasp, теперь мы можем его использовать:
При работе в Linux или MacOS X установка дополнительного ПО для USBasp не требуется.
Итак, проверим программатор USBasp в действии. В предыдущих публикациях я описывал процедуру записи загрузчика в Ардуино и работу с фьюзами с использованием Ардуино в качестве программатора. Эти же действия можно выполнить, используя USBasp.
Чтение и запись фьюзов Ардуино
Для работы с фьюзами будем использовать уже знакомый нам Avrdude. Поэтому запускаем командную строку, переходим в каталог avrdude и вводим команду для чтения младшего конфигурационного байта:
avrdude -C ../etc/avrdude.conf -c usbasp -p m328p -U lfuse:r:-:h
В этой команде использованы следующие параметры:
- -c
— псевдоним используемого программатора, в данном случае usbasp.
-p
— тип микроконтроллера. Я считываю фьюзы из Ардуино Уно, в которой установлен микроконтроллер ATmega328p, поэтому в качестве
указано значение m328p.
Чтение и запись FLASH и EEPROM памяти Ардуино
В приведенных выше примерах команд для Avrdude в качестве параметра использовались значения lfuse и efuse для доступа к конфигурационным байтам микроконтроллера. Данный параметр может принимать и другие значения, они приведены ниже:
- calibration — байты калибровки RC-генератора;
- eeprom — энергонезависимая память микроконтроллера;
- efuse — дополнительный конфигурационный бит;
- flash — FLASH память микроконтроллера;
- fuse — фьюз-байт для микроконтроллеров с одним fuse-байтом;
- hfuse — старший fuse-байт;
- lfuse — младший fuse-байт;
- lock — байт блокировки (ячейка защиты);
- signature — три байта что обозначают сигнатуру чипа (device ID);
- fuseN — байт с фьюзами для ATxmega чипов, N — целое число для каждого фьюза что поддерживается устройством;
- application — область приложений во Flash памяти для МК ATxmega;
- apptable — таблица приложений в области Flash памяти для устройств ATxmega;
- boot — загрузочная область Flash памяти для устройств ATxmega;
- prodsig — область с производственной сигнатурой (calibration) для устройств ATxmega;
- usersig — область с пользовательской сигнатурой для устройств ATxmega.
Таким образом, для чтения FLASH Ардуино Уно (микроконтроллера ATmega328p) может быть использована следующая команда:
avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:r:flash_dump.hex:i
Файл с содержимым FLASH памяти микроконтроллера будет создан в каталоге Avrdude. Либо можно прописать в команде полный путь к файлу.
Для записи в FLASH память содержимого файла flash_dump.hex можно использовать команду:
avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:w:flash_dump.hex:i
Чтение EEPROM:
avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:r:eeprom_dump.hex:i
Запись EEPROM:
avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:w:eeprom_dump.hex:i
Запись загрузчика в Ардуино
- Соединяем USBasp с платой, в которую будем записывать загрузчик и подключаем программатор к компьютеру.
- Запускаем IDE Arduino.
- В меню Инструменты > Программатор выбираем USBasp.
- В меню Инструменты > Плата выбираем значение, соответствующее нашей плате.
- В меню Инструменты выбираем команду Записать загрузчик.
Если все сделано правильно, то в нижней части IDE появится сообщение об успешной записи загрузчика:
Источник