Программатор usbasp
Содержание:
- Компиляция и прошивка. WinAVR + Khazama AVR Programmer.
- Usbasp-драйвер для программатора
- AVRDude – программа для usbasp программатора
- AVRDude Graphical User Interface v1.3
- Строительство USBasp программатора
- Программатор USBasp. : 7 комментариев
- Общее описание
- Переходник для usbasp
- Установка WinAVR в Atmel Studio
- Чтение и запись фьюзов Ардуино
Компиляция и прошивка. WinAVR + Khazama AVR Programmer.
Далее нужно нажать на зеленую кнопку, далее вы должны попасть вот сюда https://sourceforge.net/projects/winavr/, но ссылка может измениться, поэтому я описываю полный путь как найти. Там загрузка начнется автоматически через5-10 секунд, более ничего нажимать не нужно (следите за таймером).
После скачивания просто установите данный пакет WinAVR. Система как обычно ругнется о том, что файл из неизвестного источника — просто игнорируем. Появится окошко с выбором языка, и начнется установка.
Все обычно и расписывать в картинках детально я не буду. Папку для установки можно не менять, оставив C:\WinAVR-20100110. Установщик еще предложит поставить и Programmers notepad (входит в состав) — даже если пользуетесь notepad++ лучше поставить — один раз notepad++ сыграл злую шутку — при работе с графическим дисплеем были проблемы с выводом нескольких русских букв, и я не мог понять — почему, убил 2 вечера, выясняя, оказалось дело в кодировке и например буква «Я» кодировалась notepad++ не верно, в исходнике, а компилятору пофигу, для него это не буква а просто байт. Когда открыл в блокноте идущем с WinAVR я увидел, что проблемные буквы превратились в абракадабру. Заменил и все заработало. Если прошивка не обрабатывает кириллицу, то править исходники можно в чем угодно.
После установки рекомендую перезагрузить компьютер, либо выйти из системы и войти вновь. Чтобы изменения для переменной Path вступили в силу для окружения пользователя. Теперь вы можете компилировать прошивки из моих проектов. Для этого в состав моих проектов приложен батник и make файл, где все настроено. Что бы скомпилировать, достаточно запустить RUN.bat из папки проекта. После компиляции вы должны увидеть что то вроде этого.
Если так, то все хорошо и прошивка собралась. Сам файл прошивки появится в этой же папке под именем main.hex.
Makefile я не настраиваю для работы с программатором заранее, так как программаторы у всех разные. Пользуюсь я программатором USB ASP, про него я писал выше, и продублирую ссылки в конце статьи, там же по мере редактирования статью будут появляться и другие ссылки… возможно… если будет, что добавить…. наверное…
Стоит дешево, шьет быстро. Для прошивки я использую программу KhazamaAVRProgrammer. По сути это графическая оболочка над AVRDUDE, но из всех, что я видел, эта понравилась больше всего. Раньше я писал батники под AVRDUDE, но потом надоело, особенно для фьюз под каждый проект. Подробнее о данной программе можно почитать вот здесь: https://cxem.net/software/khazama_AVR_programmer.php
Для прошивки нужно выбрать процессор.
Далее выбрать «File» и пункт «Load FLASH file to buffer»
Для запуска процесса прошивки необходимо выбрать «Command» а в нем пункт «Write FLASH buffer to chip».
Просто игнорируем ее и прошивка запустится. После удачной прошивки программа выкинет окошко с надписью «OK».
Проверить, правильность подключения программатора и микроконтроллера можно, выбрав пункт «Command» а в нем пункт «Read chip signature». Вначале может выскочить та же ошибка, (скорее предупреждение), просто игнорируем (это предупреждение касается программатора, и на работу не влияет) А далее окно с сигнатурой чипа. Если нет больше ошибок, то можно прошивать.
Для некоторых проектов потребуется править FUSE биты. Делается это для включения специфических функций или перенастраивании тактирования. Биты меняются на вкладке «Command» а в нем пункт «Fuses and lock bits».
Перед правкой рекомендую нажать кнопку Default или загрузить из контроллера выбрав Read All . Какие биты устанавливать я буду указывать на странице проекта, если их требуется менять.
источник
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-биты и нажимаем «запись». После этого МК прошит, и можно отключить питание.
AVRDude Graphical User Interface v1.3
Jika Anda memesan USBasp dari Technovision (hubungi no HP di atas) maka dalam satu paket sudah diberikan software untuk AVR downloader menggunakan AVRDude GUI v1.3. Jika Anda jalankan maka akan ditampilkan beberapa jendela. Jendela pertama (Configuration), ditunjukkan pada Gambar 1, merupakan jendela yang digunakan untuk melakukan pengaturan: dimana Anda menyimpan avrdude-nya, jika berkas konfigurasi tidak dalam satu folder yang sama, silahkan tuliskan dimana, mikro AVR yang akan diisi, antarmuka (dipilih usbasp), port (diisi usb) serta beberapa pengaturan lainnya, perhatikan Gambar 1.
Gambar 1
Pada jendela kedua (Files), perhatikan Gambar 2, digunakan untuk melakukan penulisan (write), pembacaan (read) dan verifikasi (verify) program Flash maupun Data EEPROM pada mikrokontroler AVR yang bersangkutan. Klik pada Execute untuk menjalankan operasi yang diinginkan, status ditampilkan pada bagian jendela yang bawah (apakah operasi yang dilakukan berhasil atau tidak).
Gambar 2
Pada Jendela ketiga (Fuse), perhatikan Gambar 3, digunakan untuk melakukan pengaturan fuse pada AVR. Sedangkan jendela keempat (Options), perhatikan Gambar 4, digunakan untuk mengaktifkan atau mematikan opsi-opsi pada AVRdude (baca keterangan pada AVR dude jika Anda tidak jelas maksudnya apa).
Gambar 3
Gambar 4
Untuk jendela kelima (Gambar 5) dan jendela keenam (Gambar 6) masing-masing digunakan untuk aktivasi GiveIO dan keterangan program (About).
Gambar 5
Gambar 6
Строительство USBasp программатора
Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.
К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.
Ниже результат печатной платы:
Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.
Список элементов используемых в USBasp программаторе:
- R1: 10к
- R2: 180
- R3: 100
- R5, R6: 68
- R7: 2к2
- C1, C2: 22п
- C3: 10мк
- C4: 100н
- LED1: Красный светодиод на 20мА
- LED2: Зеленый светодиод на 20мА
- D2, D3: стабилитроны на 3,6В
- X1: Разъем USB, тип B
- SV1: Гнездо под разъем IDC-10
- Q1: Кварц 12МГц, корпус HC49-S
- SW1: Dip переключатель трехпозиционный
- IC1: Atmega8 (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)
Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (лазерно-утюжной технологии). Как это делать описывать не будем, поскольку данной информации в сети много.
Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.
Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:
После завершения процесса травления необходимо удалить тонер ацетоном.
Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.
Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.
Программатор USBasp. : 7 комментариев
Спасибо за статью.Такой же случай.Только не было 2го usbasp.Сначала прошил AVR910 в usbasp,этой прошивкой(usbasp.atmega8.2011-05-28),а потом им исправил прошивку в usbasp по вашей инструкции.
Рад что вам помогло!
А у меня на проце atmega 48 20au. работал, после перепрошивки никак не определяется. не пойму как оживить. Можете подсказать?
Вы FUSES правильно выставили? Если после перепрошивки не определяется то скорее всего выставили работу не от кварца а от внешнего генератора. я в таком случае делал из Ардуино простейший генератор и подавал сигнал на мертвый чип, а уж потом спокойно прошивал.
Автору от души огромное спасибо, благодаря тебе вернул к жизни 3 штуки attiny2313, у которых из-за незнания выставил (при помощи фьюзов) слишком маленькую тактовую частоту. Программатор из-за старой прошивки работал только со старой казамой (1.6.2), в которой нельзя выбрать частоту ISP. Теперь обновил прошивку и новая версия (1.7) работает как надо. Жму руку, братишка.
Добрый день! Имеются два программатора USPasp. С родной прошивкой ведут себя так Если прошить последнюю, то в AVRdude можно сделать только одну операцию. То есть, например, прочитали микроконтроллер — и всё, все последующие попытки что-либо сделать выдают вот такую ошибку Если программатор вынуть/вставить, то опять можно выполнить одну операцию. Есть у кого-нибудь мысли, что это и как с этим бороться?
Обновил прошивку прогером dapa, не надо народ пугать вторым usbasp, всё нормально любым путём. Интересуют простые и дешёвые hvsp & hvpp, бывают ли?
Общее описание
ATmega644 — 8-битный микроконтроллер CMOS с низким энергопотреблением, основанный на AVR с расширенной архитектурой RISC. Выполняя мощные команды в один тактовый цикл, ATmega644 достигает производительности, приближающейся к 1 MIPS при частоте 1 МГЦ, что позволяет системному проектировщику оптимизировать потребляемую мощность на выбранной частоте.
AVR ядро комбинирует богатую систему команд с 32 универсальными рабочими регистрами. Все 32 регистра непосредственно связаны с Арифметическим Логическим Устройством (АЛУ), которое обрабатывает два независимых регистра в отдельной команде за один тактовый цикл. Результирующая архитектура обладает более высокой эффективностью, обеспечивая производительность в более чем 10 раз выше по сравнению с обычными CISC-микроконтроллерами.
ATmega644 обладает следующими особенностями: 64К байт системной программируемый Flash памяти с возможностью «чтения, во время записи», 2К байт EEPROM, 4К байт SRAM, 32 универсальные линии ввода — вывода, 32 универсальных рабочих регистра, часы реального времени (RTC), три гибких Таймера/Счетчика с режимами сравнения, внутренние и внешние прерывания, 2 USART, байт ориентированный 2-проводный последовательный интерфейс, 10 разрядный аналого-цифровой преобразователь с 8 каналами и дополнительной стадией дифференцирования, программируемый сторожевой таймер с внутренним генератором, SPI последовательный порт, JTAG совместимый со стандартом IEEE 1149.1, встроенная система отладки и шесть программно выбираемых режимов сохранения питания. Idle режим останавливает центральный процессор при этом сохраняет данные в SRAM, оставляя в рабочем состоянии Таймеры/Счетчики, SPI порт, и систему прерываний, для того чтобы затем продолжить работу в активном режиме. Режим Power-down сохраняет данные в регистрах, и останавливает генератор, отключая все другие функции чипа до следующего прерывания или аппаратного сброса. В режиме Power-save, асинхронный таймер продолжает работать, разрешая пользователю обслуживать ядро таймера, в то время как остальная часть устройства бездействует. Аналого-цифровой преобразователь в режиме Noise Reduction останавливает центральный процессор и все модули ввода — вывода кроме асинхронного таймера и аналого-цифрового преобразователя, тем самым минимизирует шум переключения во время преобразований АЦП. В режиме Standby, кристалл/резонатор генератора выполняется, в то время как остальная часть устройства бездействует. Это обеспечивает очень быстрый запуск одновременно с низким энергопотреблением. В режиме Extended Standby основной генератор и асинхронный таймер продолжают работать.
Устройство изготовлено, используя энергонезависимую технологию памяти Atmel с высокой степенью интеграции. Встроенная ISP Flash позволяет перепрограммировать системную память программ через последовательный SPI интерфейс обычным энергонезависимым программатором памяти, или встроенной программой загрузки, выполняющейся в ядре AVR. Программа загрузки может использовать любой интерфейс для загрузки прикладной программы в память Flash. Программа в загрузочном секторе может выполняться во время программирования сектора прикладной программы, этим обеспечивается операция «чтение во время записи». Объединяя 8-разрядный центральный процессор архитектуры RISC с системной программируемой Flash памятью на монолитном чипе, ATmega644 фирмы Atmel — мощный микроконтроллер, который обеспечивает очень гибкое и эффективное решение для многих внедряемых приложений управления.
Переходник для usbasp
Не стоит отчаиваться, если разъём Вашего программатора не совпадает с разъёмом на плате микроконтроллерного устройства. Воспользуйтесь одним из двух вариантов: купите готовый переходник или изготовьте его самостоятельно. Промышленные переходники для usbasp не имеют внутри ни активных, ни пассивных радиокомпонентов. Поэтому для успешного внутрисхемного программирования достаточно воспользоваться переходником, контакты которого при «прозвонке» будут совпадать с маркировкой на рисунке. Стоимость универсального переходника для программатора находится в пределах 2$, что вполне приемлемо.
Установка WinAVR в Atmel Studio
1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.
2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.
3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.
4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.
5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:
6. Больше аргументов можно найти по этой ссылке.
7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.
8. После заполнения всех полей нажмите “Apply” и затем “Ok”.
В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.
Чтение и запись фьюзов Ардуино
Для работы с фьюзами будем использовать уже знакомый нам Avrdude. Поэтому запускаем командную строку, переходим в каталог avrdude и вводим команду для чтения младшего конфигурационного байта:
avrdude -C ../etc/avrdude.conf -c usbasp -p m328p -U lfuse:r:-:h
В этой команде использованы следующие параметры:
- -c
— псевдоним используемого программатора, в данном случае usbasp.
-p
— тип микроконтроллера. Я считываю фьюзы из Ардуино Уно, в которой установлен микроконтроллер ATmega328p, поэтому в качестве
указано значение m328p.
-U :r|w|v: — комплексная опция для указания производимой с памятью операции (чтение. запись, проверка). -U lfuse:r:-:h означает, что требуется прочитать содержимое младшего байта конфигурации и вывести считанное значение на экран в щестнадцатеричном виде.