Прошивка usbasp: Про Ардуино и не только: Прошивка USBasp

Содержание

Про Ардуино и не только: Прошивка USBasp


Если при использовании USBasp в логе avrdude у вас появляется сообщение
avrdude: warning: cannot set sck period, please check for usbasp firmware update, но при этом программатор исправно выполняет команды, то, скорее всего, проблема в устаревшей прошивке USBasp. В этой статье я по шагам расскажу, как обновить прошивку USBasp, используя Ардуино в качестве программатора.

1. Подготовка Ардуино

В качестве программатора можно использовать любую имеющуюся плату Ардуино. Для этого подключаем ее к компьютеру и загружаем в нее скетч ArduinoISP из стандартных примеров:

2. Подключение USBasp к Ардуино

Микроконтроллеры семейства AVR, а значит и базирующиеся на них платы (как Ардуино, так и USBasp) поддерживают программирование по ISP-технологии с использованием линий связи SPI. Поэтому сейчас нам нужно:
  • соединить выводы Ардуино MOSI, MISO, SCK GND и VCC (5В или 3.3В) с одноименными выводами USBasp;
  • цифровой вывод 10 Ардуино подключить к выводу RESET USBasp;
  • установить электролитический конденсатор на 10мкФ между RESET и GND Ардуино, чтобы предотвратить автоматическую перезагрузку.
    Хотя возможно будет работать и без конденсатора, зависит от используемой платы Ардуино.
Для подключения можете использовать как ICSP разъем Ардуино, так и цифровые выводы - не принципиально. Я, например, взял MOSI, MISO, SCK, GND и VCC с ICSP разъема:
На всякий случай приведу таблицу соответствия сигналов MOSI, MISO и SCK цифровым выводам различных плат Ардуино:
Плата Ардуино MOSI MISO SCK
Uno, Duemilanove 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Nano 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Pro Mini 11 12 13
Mega1280, Mega2560 51 или ICSP-4 50 или ICSP-1 52 или ICSP-3
Leonardo ICSP-4 ICSP-1 ICSP-3 
Due ICSP-4 ICSP-1 ICSP-3 
Zero ICSP-4 ICSP-1 ICSP-3
101 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3

3.

Установка джампера JP2 на USBasp На плате USBasp присутствуют 3 джампера, хотя распаян у вас, скорее всего, будет только JP1 - выбор напряжения питания программируемого микроконтроллера. Для прошивки USBasp (и любых других манипуляций с ним при помощи программатора) необходимо установить джампер JP2. Советую не мучиться с замыканием контактов подручными средствами и впаять пару штырьков, так будет надежней:

4. Скачивание прошивки

Заходим на страничку автора USBasp https://www.fischl.de/usbasp/ и скачиваем последнюю версию прошивки в разделе Download - Firmware and circuit. На момент написания данной статьи актуальной является версия от 28.05.2011. Файлы прошивки находятся внутри архива по пути \usbasp.2011-05-28\bin\firmware\, их там три штуки, для каждого типа микроконтроллера (программатор USBasp может быть построен на базе ATmega8, ATmega48 или ATmega88). У меня в USBasp установлен микроконтроллер ATmega8, поэтому я буду использовать файл usbasp.atmega8.
2011-05-28.hex.

Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dir\hardware\tools\avr\bin\, где Arduino_dir - это путь к IDE Arduino. В моем случае он выглядит так: d:\Arduino\arduino-1.6.12\hardware\tools\avr\bin\, сюда я копирую файл usbasp.atmega8.2011-05-28.hex.

5. Прошивка USBasp

После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter.

Запустится интерпретатор командной строки. В нем нужно ввести команду:

avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

Не забудьте проверить и с корректировать ее параметры:

-C ..\etc\avrdude.conf - путь к конфигурационному файлу (без этого параметра avrdude иногда ругается: can't open config file "": Invalid argument)

-p m8 - определяет тип микроконтроллера.

Значение m8 сообщает avrdude о том, что мы собираемся работать с ATmega8. Если у вас в USBasp установлен ATmega48 или ATmega88, то замените это значение на m48 или m88 соответственно.

-P com18 - определяет COM порт, присвоенный плате Ардуино. У меня это com18, вам нужно подставить свое значение.

-U flash:w:usbasp.atmega8.2011-05-28.hex - определяет действие, которое мы хотим выполнить. В данном случае мы хотим записать в FLASH память данные из файла usbasp.atmega8.2011-05-28.hex. При необходимости скорректируйте имя файла прошивки в соответствии с типом микроконтроллера в USBasp.

Убедитесь, что команда набрана верно и программатор правильно соединен с Ардуино. После этого подключаем Ардуино к компьютеру и нажимаем Enter в интерпретаторе командной строки. Должен отобразиться прогресс перезаписи содержимого FLASH памяти, а затем сообщение об успешном выполнении команды - avrdude done. Thank you:


Теперь можно отключить USBasp от Ардуино, снять джампер JP2 и проверить работу программатора.
Сообщения avrdude: warning: cannot set sck period, please check for usbasp firmware update больше быть не должно.

Обновление прошивки программатора USBASP с помощью Arduino UNO

Обновление прошивки программатора USBASP с помощью Arduino UNO

2020-04-11 16:43:32 — Evgeniy Shumilov

  Когда-то давно я приобрёл китайскую копию программатора USBASP. При попытке перепрошивки микроконтроллеров через ISP я, как и многие другие, получал ошибку следующего вида:

avrdude: warning: cannot set sck period, please check for usbasp firmware update

  Инструкции, которые я обнаружил, были написаны с рассчётом на использование в Windows, а так же в некоторых статьях я заметил ошибки и несоответствия (например, неверно указан тип программатора для avrdude, из-за чего какое-то время пришлось побуксовать), так что решил написать для себя короткую статью, убрав всё лишнее.


  Для начала нам нужен avrdude. Благо, в отличие от windows, нам не нужно искать, качать и ставить драйвера и всё прочее.

Если уже установлена среда arduino, то avrdude можно найти по следующему относительному пути:

arduino-X.X.X/hardware/tools/avr/bin/avrdude

  Где X.X.X - версия среды. Если же среды arduino на машине нет, то на debian-based системах установить avrdude можно из репозитория:

sudo apt-get install avrdude

  В этом случае конфигурационный файл будет расположен тут: /etc/avrdude.conf, но среда нам понадобится, чтобы сменить прошивку на нашей текущей ардуине, с помощью которой будет прошиваться программатор.

  Далее необходимо скачать самую "свежую" прошивку для USBASP: 

wget https://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
tar xvzf usbasp.2011-05-28.tar.gz

  Да, самой свежей прошивке на текущий момент чуть менее девяти лет. Внутри архива нас интересует файл bin/firmware/usbasp.atmega8.2011-05-28.hex, его мы и будем прошивать.

  Далее на плате программатора нужно замкнуть джампер JP1 (на фото установлен зелёный джампер), если его нет, нужно запаять или замкнуть пинцетом на время прошивки.

  Затем соединяем проводами соответствующие пины Arduino и программатора:

  Схему честно стырил из другой статьи. Теперь открываем среду Arduino, выставляем нужную плату (в нашем случае Arduino Genuino/UNO) и порт (в нашем случае /dev/ttyUSB0). Если вы не знаете, какой алиас получил интерфейс, среда сама должна подсказать. В любом случае, подсказку можно найти тут:

$ ls /sys/bus/usb-serial/devices/
ttyUSB0

  Прошиваем скетч из примеров с названием ArduinoISP, на этом окно можно закрывать. В терминале переходим в директорию с avrdude внутри директории с ardunio и сперва проверим, что микроконтроллер нашего программатора виден через Arduino Uno по ISP:

$ ./avrdude -C ../etc/avrdude.conf -p atmega8 -c avrisp -b 19200 -P /dev/ttyUSB0 -v

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is ". ./etc/avrdude.conf"
         User configuration file is "/home/corpse/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : avrisp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega8
         Chip Erase delay              : 10000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
           flash         33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           efuse          0     0     0    0 no          0    0      0     0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel AVR ISP
         Hardware Version: 2
         Firmware Version: 1.
18 Topcard : Unknown Vtarget : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9307 (probably m8) avrdude: safemode: lfuse reads as EF avrdude: safemode: hfuse reads as D9 avrdude: safemode: Fuse reading not support by programmer. Safemode disabled. avrdude: safemode: lfuse reads as EF avrdude: safemode: hfuse reads as D9 avrdude: safemode: lfuse reads as EF avrdude: safemode: hfuse reads as D9 avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode avrdude done. Thank you.

  Если чип программатора отличается, проблема в соединении или имеются иные проблемы, мы увидим ворнинги следующего вида или им подобные:

avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01                    
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check. 

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10    

  В этом случае нужно перепроверить всё ещё раз, особенно подключение. Далее имеет смысл сохранить текущую прошивку в файл на всякий случай (вместо /path/to/backup укажите свой путь):

$ ./avrdude -C ../etc/avrdude.conf -p atmega8 -c avrisp -b 19200 -P /dev/ttyUSB0 -U flash:r:/path/to/backup/original_firmware.bin:r         

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: reading flash memory:

Reading | ################################################## | 100% 5.74s

avrdude: writing output file "original_firmware.bin"

avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

avrdude done.  Thank you.  

  Прошиваем "свежую" прошивку девятилетней давности:

$ . /avrdude -C ../etc/avrdude.conf -p m8 -c avrisp -b 19200 -P /dev/ttyUSB0 -U flash:w:/path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex"
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):

Writing | ################################################## | 100% 6.78s

avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp. atmega8.2011-05-28.hex:
avrdude: load data flash data from input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex:
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 3.31s

avrdude: verifying ...
avrdude: 4700 bytes of flash verified

avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

avrdude done.  Thank you.

Собственно, вот и всё.

Теги: avr

Как "перепрошить" китайский программатор USBasp

«Перепрошить» китайский программатор USBasp может даже новичок. Для этого достаточно:

1. Перевести USBasp в режим, разрешающий программирование встроенного микроконтроллера!  Обычно это делается установкой соответствующей перемычки или замыканием определенных контактов на плате!

Например, у программатора на фото - это контакты, отмеченные линией!

2. Подключить USBasp к любому программатору, который поддерживает программирование AVR контроллеров!
Выходы контактного разъема USBasp должны быть соединены в точности так же, как и при «прошивке» обычного микроконтроллера! То есть:

GROUND (GND) - общий провод    GND <-->GND

VCC (питание) должно быть не больше 5V!   VCC <---> VCC

SCK (serial clock)  - последовательная синхронизация! Импульсы генерирует MASTER (ведущее устройство)  SCK <---> SCK

MOSI (MASTER OUT SLAVE IN) – это выход сигнала с MASTER (ведущего) устройства на SLAVE (ведомое)

MISO (MASTER IN SLAVE OUT) – вход для ведущего устройства, на который сигнал приходит с выхода ведомого!

RESET (сброс) – обратите внимание именно на этот контакт поступает сигнал для начала программирования! По умолчанию вывод RESET встроенного в USBasp контроллера не подключен – подключается он замыканием соответствующих выводов (установкой перемычки) см. фото!

Внимание, если ваш  USBasp работает нормально, не спешите его сразу «перепрошивать» – сделайте вначале резервную копию «прошивки»!
Перед «прошивкой» желательно полностью стереть чип, не изменяя FUSE Bits!
Фьюз биты AVR микроконтроллера – это специальные ячейки памяти для конфигурации его работы. Помните, что неправильная установка даже одного фьюз бита, может привести к тому, что контроллер начнет работать совсем не так, как ожидалось, и возможно даже перестанет реагировать на команды с обычного ISP программатора!
Если «прошить» USBasp у вас не получается, скорее всего:
- неправильно подсоединены выводы – попробуйте поменять местами MOSI и MISO, предварительно убедившись, что всё соединения имеют надежный контакт!
- неправильно выбран тип микроконтроллера – выберите его вручную!

После загрузки в USBasp новой прошивки обязательно разомкните выводы (снимите перемычку), чтобы программатор смог работать в обычном режиме!

Стоит также заметить, что для «перепрошивки» USBasp не обязательно использовать программатор – его можно заменить даже дешевой платой Arduino, поддерживающей USB! Например, китайским аналогом Arduino Nano! Разумеется, предварительно в плату Arduino необходимо загрузить скетч (программу) «Arduino ISP».

Программатор USBasp для AVR контроллеров Arduino

USBasp S51&AVR — простой внутрисхемный USB-программатор для контроллеров серии S51 фирмы Atmel: AT89S51, AT89S52, AT89S53, AT89S8252.

 

У любителей Arduino приборчик USBasp тоже пользуется спросом, так как может загружать скетчи и прошивать ядро микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM, а также без проблем работает с программным обеспечением Arduino IDE.

 

Мозгом загрузчика USBasp служит микроконтроллер ATmega8. Так же есть варианты с ATmega88 или ATmega48. Собран он из минимума деталей, USB контроллер не нужен, поскольку имеется программный USB-драйвер.

Возможности программатора USBasp

 

  1. Совместим с Windows, Linux и Mac OS X.
  2. Поддержка контроллеров S51 и AVR.
  3. Питание от USB порта +5В, дополнительное не требуется.
  4. Прошивка контроллеров работающих от 5 или 3.3 В.
  5. Скорость передачи до 5 Кбайт/сек.
  6. Переключение SCK-джампером для прошивки низкоскоростных чипов < 1.5МГц.
  7. Сбрасываемый предохранитель от короткого замыкания.
  8. Стандартный IDC 10PIN интерфейс.

 

Драйвер к программатору USBasp

Windows USBasp-win-driver-x86-x64-ia64-v1. 2.4

 

Программное обеспечение для USBasp

 

  • BASCOM-AVR — среда разработки, начиная с версии 1.11.9.6.поддерживает USBasp.
  • AVRDUDE 6.1 — консольная программа, начиная с версии 5.2 поддерживает USBasp.
  • Khazama AVR Programmer v1.7 — имеет графическую оболочку, совместима с Windows XP и Vista.
  • eXtreme Burner AVR 1.3 Beta — графическая оболочка.
  • Arduino IDE 1.0.6
Самодельный USBasp

 

Обвязка микроконтроллера в USBasp S51&AVR настолько проста, что достаточно легко собрать самому миниатюрный программатор, который можно будет везде носить с собой как флешку.

 

Для самоделки можно выбрать управляющий микроконтроллер ATmega8, ATmega48 или ATvega88, но только без всяких индексов L, PU. Так как нам потребуется рабочая частота свыше 8 Мгц.

 

Схема программатора

Устройство, собранное по этой схеме предназначено только для программирования 5-вольтовых контроллеров!

 

Красный светодиод показывает, что устройство подключено к USB-питанию.

Зеленый светодиод мигает, когда идет обращение к прошиваемому микроконтроллеру.

 

Элементы для сборки USBasp:

  • R1, R2 — 68 Ом;
  • R3 — 2.2 кОм;
  • R4, R5, R7 — 1 кОм;
  • R6 — 10 кОм;
  • C1 — электролит на 4.7 мкФ;
  • С3 — керамический конденсатор 100 нФ;
  • C4, C5 — керамические, неполярные конденсаторы 22пФ;
  • LED1 — красный светодиод на 20мА;
  • LED2 — зеленый светодиод на 20мА;
  • D1, D2 — стабилитроны на 3,6В;
  • IC1 — микроконтроллер ATmega8, ATmega48, ATmega88, без индексов L, PU;
  • Q1 — кварц 12 МГц, корпус HC49-S;
  • X1 — разъем USB, тип B;
  • X2 — разъем IDC-10;

 

Уставки джамперов

 

J1 — питание от USB-гнезда, либо внешнего источника.

J2 — установленная перемычка позволяет перепрошивать программатор.

J3 — установленная перемычка снижает частоту SCK синхросигнала с 375 кГц до 8 кГц для прошивки низкоскоростных чипов < 1. 5 МГц.

 

Джампер J1 следует снимать при первом подключении к ПК собранного и прошитого программатора, поскольку компьютер должен определить новое устройство и установить драйвер для него.

 

Использование перемычек, как в оригинальной схеме, не совсем удобно, поэтому рекомендуется замена всех их на один DIP переключатель.

 

Установка драйвера для USBasp

 

Для работы программатора потребуется на Windows установить драйвер. Последнюю версию которого можно найти на сайте USBasp.

 

На операционные системы Linux и MacOS драйвер не требуется.

Вставьте собранный программатор в гнездо USB. Операционная система найдет новое оборудование и предложит установить драйвер для него. Выберите пункт: «Установка из указанного места», найдите папку со скачанным драйвером. Начните установку драйвера на Windows.

 

Прошивка самодельного USBasp

 

Чтобы собранное устройство заработало, его микроконтроллер ATmega, необходимо предварительно прошить.

 

Запускайте программное обеспечение, например, AVRDUDE и не забудьте проверить правильность установки джампера J2.

Загружайте прошивку:
«bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
«bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex».

 

Для работы от внешнего кварца необходимо будет выставить фьюзы:

# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

 

Воспользуйтесь для вставки фьюзов прогой Makefile с функцией «make fuses».

 

Печатная плата

 

Печатных плат для самодельного USBasp разработано более 10 видов. Рекомендуем использовать оригинальную, с установкой стабилитронов.

Или сделайте свою трассировку печатной платы под установленный лично DIP переключатель вместо отдельных джамперов.

 

Программирование в Khazama

 

Стоит упомянуть об удобной графической программе Khazama. Все операции можно быстро выполнить как в меню, так и с помощью строки бара.


1 — загрузить в буфер прошивку для Flash памяти.
2 — загрузить в буфер прошивку для EPROM памяти.
3 — записать прошивку во Flash память.
4 — записать прошивку в EPROM память.
5 — прочитать Flash память.
6 — прочитать EPROM память.
7 — стереть микрочип.
8 — установить FUSE и LOCK биты.
9 — установить поверх всех окон.
В меню есть удобная кнопка Auto Program.

 

В Command > Program Options можно изменять настройки программки. В частности, можно задать набор операций, которые будут выполняться при нажатии на Auto Program. По умолчанию установлено стирание чипа и запись во флэш-память. Также можно выбрать запись в EEPROM, добавить верификацию (проверку записанных данных).

 

Программирование Flash памяти

 

Программирование EEPROM памяти

 

В любом случае, до записи прошивки, память микрочипа должна быть предварительно стерта.

 

С помощью Khazama также удобно выставлять FUSE биты.

 

Автор: Виталий Петрович. Украина Лисичанск.


 

 

 

Прошивка atmega8 через usbasp

Прошивка микроконтроллеров Atmega без arduino через USBasp:

Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino >USBasp необходим,если вы просто прошиваете микроконтроллеры Amtel.Программатор основан на м/к Atmega 8 и использует програмный USB.

Цена такого программатора на ebay.com около 3$.Он имеет выход питания 5v/3.3 v(переключается перемычкой JP1) ,а так же соотвествующие выводы SCK,MISO,MOSI ,RESET для подключению напрямую к микроконтроллеру.На картинке показаны выводы на самом программаторе — на разъеме шлейфа соответственно будет зеркально относительно ключа (у 5 вывода),не забывайте об этом.

Для работы в операционной системе Windows необходимы драйвера. Linux же не требует их.

Данный программатор легко превратить в друое устройство,например в I2C-USB переходник , USB контроллер с GIO или контроллер чтения термодатчиков DS18B20.

Программирование через USBasp в Arduino IDE

Для программирования микроконтроллеров,подключенных через USBasp в Arduino IDE необходимо выбрать его в программе согласно скриншоту.

Программирование осуществляется через меню файл,выбрав пункт

"Загрузить с помощью программатора".Не забываем выбрать микроконтроллер в меню "сервис" ->"плата".

Программирование через USBasp утилитой avrdude

Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.

Для того,чтобы залить прошивку в микроконтроллер необходимо выполнить команду:

avrdude -c usbasp -p m8 -U flash:w:имя_файла.hex . где -p m8 — это модель микроконтроллера.В данном случае atmega 8.

Дополнительно так же можно установить фьюзы дописав :-U hfuse:w:0xХХ:m -U lfuse:w:0xХХ:m .Где ХХ — соотвествующие фьюзы микроконтроллера ,необходимые для конкретной прошивки.

Обычно прошивку можно осуществить через команду make flash ,если Вы имеете исходный код прошивки и установленную WinAVR.

В других средах программирования выбор программатора осуществляется через соответсвующее меню программы.

Обратите внимание,

Что на некоторых микроконтроллерах с завода,например на серии Attiny включен по умолчанию фьюз CKDIV8 ,который устанавливает делитель на 8 и из-за этого USBasp не программирует такие микроконтроллеры пока не установить перемычку JP3 на USBasp.Для настройки фьюзов воспользуйтесь калькулятором фьюзов чтобы выставить нужные настройки , в том числе выключить данный делитель.Фьюзы прошиваются через avrdude командой avrdude -c usbasp -p имя_м/к -U lfuse:w:0xХХ:m .

Пример для установки фьюзов attiny85 для внутреннего генератора 8мгц с выключенным делителем на 8 :

avrdude -c attiny85 usbasp -p -U lfuse:w:0x62:m

При программировании через Arduino IDE можно установить нужные фьюзы выбрав в меню "записать загрузчик",выбрав перед этим необходимый микроконтроллер.

"Допиливание" программатора.

или исправляем ошибку: avrdude: warning: cannot set sck period. please check for usbasp firmware update

При программировании некоторых микроконтроллеров(например у серии ATtiny) возможны не фатальные ошибки.Хотя и программирование микроконтроллера происходит,но обновить прошивку микроконтроллера на программаторе рекомендуется.

Что для этого нужно ? Вы можете использовать плату arduino как программатор или использовать другой USBasp программатор .Для программирования используются те же выводы SCK,MISO,MOSI ,RESET .

Порядок действий для прошивки через arduino:

1. Подключаем выводы SCK,MISO,MOSI ,RESET к Arduino согласно инструкции .

2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.

3. Качаем последнюю версию прошивки usbasp.2011-05-28 тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/ .

4. Перейдем в консоль (cmd или bash) Вашей операционной системы в папку через команду cd путь_к_папке_ардуины_/hardware/tools/ и далее вводим команды для Windows,не забывем указать верный порт,на котором подключена Arduina:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -v

Программа выдаст сообщение ,где покажет состояние фьюзов и другую информацию:

Если Вы видите такие же сообщения- значит подключено все правельно и можно прошивать командой:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:usbavr.hex -U lfuse:w:0xef:m -U hfuse:w:0xc9:m

Для прошивки из Linux все аналогично, заменяется часть строки:

./avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 .

Порядок действий для прошивки через другую USBasp:

Прошивка аналогична прошивке обычного микроконтроллера: подключаем выводы SCK,MISO,MOSI,RESET один в один шлейфом идущим в комплекте с программатором.Не забываем про перемычку JP2.

Указываем опцию -c usbasp вместо -c avrisp

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

среда, 10 октября 2018 г.

Прошивка USBasp

1. Подготовка Ардуино

В качестве программатора можно использовать любую имеющуюся плату Ардуино. Для этого подключаем ее к компьютеру и загружаем в нее скетч ArduinoISP из стандартных примеров:

2. Подключение USBasp к Ардуино

Микроконтроллеры семейства AVR, а значит и базирующиеся на них платы (как Ардуино, так и USBasp) поддерживают программирование по ISP-технологии с использованием линий связи SPI. Поэтому сейчас нам нужно:

  • соединить выводы Ардуино MOSI, MISO, SCK GND и VCC (5В или 3.3В) с одноименными выводами USBasp;
  • цифровой вывод 10 Ардуино подключить к выводу RESET USBasp;
  • установить электролитический конденсатор на 10мкФ между RESET и GND Ардуино, чтобы предотвратить автоматическую перезагрузку. Хотя возможно будет работать и без конденсатора, зависит от используемой платы Ардуино.

Для подключения можете использовать как ICSP разъем Ардуино, так и цифровые выводы — не принципиально. Я, например, взял MOSI, MISO, SCK, GND и VCC с ICSP разъема:

На всякий случай приведу таблицу соответствия сигналов MOSI, MISO и SCK цифровым выводам различных плат Ардуино:

Плата Ардуино MOSI MISO SCK
Uno, Duemilanove 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Nano 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Pro Mini 11 12 13
Mega1280, Mega2560 51 или ICSP-4 50 или ICSP-1 52 или ICSP-3
Leonardo ICSP-4 ICSP-1 ICSP-3
Due ICSP-4 ICSP-1 ICSP-3
Zero ICSP-4 ICSP-1 ICSP-3
101 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3

3. Установка джампера JP2 на USBasp

На плате USBasp присутствуют 3 джампера, хотя распаян у вас, скорее всего, будет только JP1 — выбор напряжения питания программируемого микроконтроллера. Для прошивки USBasp (и любых других манипуляций с ним при помощи программатора) необходимо установить джампер JP2. Советую не мучиться с замыканием контактов подручными средствами и впаять пару штырьков, так будет надежней:

4. Скачивание прошивки

Заходим на страничку автора USBasp https://www.fischl.de/usbasp/ и скачиваем последнюю версию прошивки в разделе Download — Firmware and circuit. На момент написания данной статьи актуальной является версия от 28.05.2011. Файлы прошивки находятся внутри архива по пути usbasp.2011-05-28infirmware, их там три штуки, для каждого типа микроконтроллера (программатор USBasp может быть построен на базе ATmega8, ATmega48 или ATmega88). У меня в USBasp установлен микроконтроллер ATmega8, поэтому я буду использовать файл usbasp.atmega8.2011-05-28.hex.

Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dirhardware oolsavrin, где Arduino_dir — это путь к IDE Arduino. В моем случае он выглядит так: d:Arduinoarduino-1.6.12hardware oolsavrin, сюда я копирую файл usbasp.atmega8.2011-05-28.hex.

5. Прошивка USBasp

После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter.

Запустится интерпретатор командной строки. В нем нужно ввести команду:

avrdude -C ..etcavrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

Не забудьте проверить и с корректировать ее параметры:

-C ..etcavrdude.conf — путь к конфигурационному файлу (без этого параметра avrdude иногда ругается: can’t open config file "": Invalid argument)

-p m8 — определяет тип микроконтроллера. Значение m8 сообщает avrdude о том, что мы собираемся работать с ATmega8. Если у вас в USBasp установлен ATmega48 или ATmega88, то замените это значение на m48 или m88 соответственно.

-P com18 — определяет COM порт, присвоенный плате Ардуино. У меня это com18, вам нужно подставить свое значение.

-U flash:w:usbasp.atmega8.2011-05-28.hex — определяет действие, которое мы хотим выполнить. В данном случае мы хотим записать в FLASH память данные из файла usbasp.atmega8.2011-05-28.hex. При необходимости скорректируйте имя файла прошивки в соответствии с типом микроконтроллера в USBasp.

Убедитесь, что команда набрана верно и программатор правильно соединен с Ардуино. После этого подключаем Ардуино к компьютеру и нажимаем Enter в интерпретаторе командной строки. Должен отобразиться прогресс перезаписи содержимого FLASH памяти, а затем сообщение об успешном выполнении команды — avrdude done. Thank you:

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих — 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 — 70
  • Двухканальный термостат, терморегулятор на ATmega8 — 67

Программатор USBASP — устройство, распиновка, подключение, прошивка

Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.

Программатор USBASP

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.
Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.

Мы рассмотрим наиболее «навороченную» версию программатора:


Характеристики программатора:
— работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера — архив в конце статьи)
— скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек
— имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой)
— поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах)
— питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:
разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты)
разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC).
разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц)
Подробнее о разъеме JP3
Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

Если вы будете пользоваться программой AVRDUDE_PROG, выложенной на сайте, то о перемычке можно забыть

Программатор поддерживается следующим программным обеспечением:
— AVRdude
— AVRdude_Prog
— Bascom-AVR
— Khazama AVR Prog
— eXtreme Burner AVR

Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.
Распиновка 10-контактного кабеля программатора USBASP :


1 — MOSI — выход данных для последовательного программирования
2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB)
3 — NC — не используется
4 — GND — общий провод (минус питания)
5 — RST — подключается к выводу RESET микроконтроллера
6 — GND
7 — SCK — выход тактирования данных
8 — GND
9 — MISO — вход данных для последовательного программирования
10 — GND

Установка драйверов для программатора USBASP

Установка драйвера для программатора USBASB очень проста:
— подсоедините программатор к USB порту компьютера, при этом в диспетчере устройств появится новое устройство «USBasp» с желтым треугольником и восклицательным знаком внутри, что означает — не установлены драйвера
— скачайте и разархивируйте файл «USBasp-win-driver-x86-x64-ia64-v3.0.7»
— запустите файл «InstallDriver» — будут автоматически установлены драйвера для программатора
— проверьте диспетчер устройств — желтый треугольник должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»
— программатор готов к работе

FUSE-биты при программировании USBASP AVR:

Архив «usbasp.2011-05-28» содержит папки:
= BIN:
— win-driver — драйвера для программатора
— firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48
= circuit — схема простого программатора в PDF и Cadsoft Eagle

При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).

Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье

usbasp.2011-05-28 (518,9 KiB, 14 455 hits)

Скачать "USBasp-win-driver-x86-x64-ia64-v3.0.7" (10,9 MiB, 27 217 hits)

Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина

Программирование микроконтроллеров AVR фирмы Atmel

(31 голосов, оценка: 4,97 из 5)

Прошивка Arduino через USBasp - Инструкция со скриншотами

Прошить Arduino с помощью USBasp не сложно, но нужно понимать, для чего необходима данная процедура и как ее произвести в домашних условиях. Разберем по порядку все аспекты, связанные с этим простым программатором.

Пройдемся немного по терминологии. Прошивка контроллера – это своего рода запись программного кода в память устройства. Применяется в тех случаях, когда была произведена замена микрочипа либо отдельные его компоненты начали окисляться (попросту вышли из строя).

В глобальной сети Интернет можно отыскать много статей по этой тематике, но некоторые из них запутанны и не совсем понятны. Мы решили обобщить всю информацию и собрали для вас подробный мануал. Итак, приступим.

Прошивка Ардуино через USBasp

Для работы нам понадобятся два устройства: плата расширения Arduino Uno (Nano, Mega) и сам ASP-программатор. Подключаем платформу к компьютеру, запускаем среду IDE. Выбираем сначала в разделе «Инструменты» название платформы (например, Уно), тип программатора, а потом загружаем стандартный скетч ArduinoISP:


Переходим в меню «Скетч» - команда «Загрузить через программатор». Проверили – индикатор мигает зеленым, значит, функционирует. Пока можно отключить, ведь теперь у нас другая задача – задействовать и провести программирование по ISP-технологии. Следуйте подсказкам скриншота:


Обратите внимание на соответствие сигналов подключения:


Для дальнейшей прошивки USBasp следует инсталлировать джампер JP2:


  1. Скачиваем последнюю версию ПО: https://www.fischl.de/usbasp/
  2. В архиве ищем файлы согласно типу своего микроконтроллера. Распаковываем, открываем.
  3. Запускаем Проводник Windows, переходим в каталог Arduino_dir\hardware\tools\avr\bin\, где Arduino_dir - это путь к IDE Arduino. Сюда переносим файл, о котором писали выше. Тут же вводим команду cmd, кликаем Enter. 
  4. В командную строку следует внести: avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex, где первая часть – путь к файлу (например, на диске С), p m8 – тип чипа, com – номер порта и U flash – ваше действие.
  5. Снова подключаем Ардуино к ПК, щелкаем Enter в интерпретаторе командной строки. Отображается процесс заливки данных, должно появиться системное сообщение: avrdude done

С программированием всегда непросто работать, но надеемся наши подсказки и скриншоты вам помогли справиться с поставленной целью. На этом пока все! До новых встреч!

Востоновление прошивки через usbasp

Хрусталёв Никита
Загрузка

13.12.2018

1327

Вопросы и ответы Есть плата от принтера Anet A6 программатор usbasp переходник какой то. Как установить любую прошивку через этот программатор? Через какую программу, как подключить провода, что указать в программе? Ответы на вопросы

Популярные вопросы

AnonymousDelivers
Загрузка

14.05.2021

1776

Поломка во время мероприятия.

После обкатки принтер отправился на фестиваль, чтобы печатать в прямом эфире маленькие фигурки для зрит...

Читать дальше Zheka1980
Загрузка

18.05.2021

786

Друзья, возможно вы обвините меня в излишне перфекционизме. Я действительно задался этим вопросом из перфекционистских соображений. ...

Читать дальше Tortik
Загрузка

24.12.2018

17425

С того момента как я собрал принтер Ultimaker уважаемого Plastmaski, не могу избавиться от одной проблемы. Уже почти 2 кг пластика перевел на тесты. М...

Читать дальше Обновление прошивки

USBASP | Bitbanging

USBASP - популярный и недорогой программатор для контроллеров AVR. Они часто продаются с устаревшей прошивкой. Узнайте ниже, как легко обновить его для поддержки TPI и избавиться от предупреждающих сообщений.

Проблема

USBASP - это встроенный программатор с открытым исходным кодом для контроллеров Atmel AVR, разработанный Томасом Фишлем. На его веб-сайте вы можете загрузить самую последнюю версию прошивки и найти всю информацию для ее создания.Вы также можете купить его по очень низкой цене в нескольких местах в Интернете. Однако в дешевых версиях может быть устаревшая прошивка. Признаком устаревшей прошивки является следующее предупреждающее сообщение:

  avrdude: предупреждение: не удается установить период sck. usbasp проверьте наличие обновлений прошивки.
  

Однако это всего лишь предупреждение, и программист, вероятно, все еще правильно загружает файлы. Одна функция, которой не хватает вашему USBASP, - это поддержка Tiny Programming Interface (TPI) , необходимая для программирования небольших микроконтроллеров AVR, таких как ATtiny10.Поэтому, если вы хотите запрограммировать ATtiny10, вам лучше обновить USBASP. Обновить прошивку относительно просто, и это можно сделать с помощью только Arduino и нескольких перемычек.

- обычный программатор USBASP -

Настройте Arduino как ISP

Нам нужно, чтобы Arduino действовал как программист. Для этого нам просто нужно загрузить эскиз, уже доступный в примерах Arduino. Поэтому из Arduino IDE:

  1. Перейдите в Файл> Примеры> ArduinoISP
  2. Подключите Arduino
  3. Нажмите Загрузить

Готово.Теперь Arduino готов загрузить прошивку на другое устройство, в нашем случае USBASP.

Электропроводка

На следующей схеме показаны соединения между выводами Arduino и USBASP. Дважды проверьте соединения, так как большинство проблем возникает из-за ослабленного провода или неправильно подключенных контактов.

Ардуино USBASP
5 В 2
ЗЕМЛЯ 10
13 7
12 9 (MISO)
11 1 (MOSI)
10 5 (СБРОС)

Закрытая перемычка 2

Убедитесь, что вы закрыли JP2 на плате USBASP .Без этого нельзя перепрограммировать плату. Чтобы замкнуть перемычку 2 на USBASP, вы можете припаять к ней что-нибудь или просто использовать провод и затянуть его в оба отверстия. Убедитесь, что он не двигается и не теряет соединение на полпути загрузки прошивки.

- замкните перемычку даже с помощью проволоки или скрепки. Паять не нужно. -

Прошивка

Прошивку можно загрузить с веб-сайта Thomas Fischl. После того, как вы скачали последнюю версию, вы должны найти .шестнадцатеричный файл внутри архива. Это файл, который мы загрузим на устройство. В случае прошивки 2011 года (самая последняя на момент написания) это:

  usbasp.atmega8.2011-05-28.hex
  

avrdude

Последний шаг - загрузка прошивки с помощью avrdude . Я предполагаю, что у вас установлена ​​IDE Arduino. Тогда самый простой способ получить Avrdude - это поискать его в файлах Arduino IDE (в качестве альтернативы вы можете получить его из Интернета).Исполняемый файл avrdude будет по следующему адресу:

  ПАПКА ARDUINO "/ Java / оборудование / инструменты / avr / bin /
  

Нам также понадобится файл конфигурации avrdude.conf , который можно найти здесь:

  ПАПКА ARDUINO "/ Java / hardware / tools / avr / etc /
  

Скопируйте этих двух файлов и вставьте их в папку вместе с файлом прошивки (в данном случае usbasp.atmega8.2011-05-28.hex ). Затем вам нужно определить порт, используемый Arduino.Чтобы найти это:

  1. Подключите Arduino к USB
  2. Откройте IDE Arduino
  3. Перейдите в Инструменты> Порт

Обратите внимание на используемый порт (/dev/cu.usbmodem14101 в моем случае) В терминале перейдите в папку, в которую вы поместили avrdude, и введите следующую команду, используя правильный порт для опции -P

  ./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011-05-28.шестнадцатеричный: я
  

Готово! Если вы не получаете сообщения об ошибке, ваш USBASP готов.


Список литературы

aleh / usbisp: Прошивка USBasp, работающая с клоном «USB ISP Version 2.0» (с пометкой «MX-USBISP-V4.00» или «MX-USBISP-V5.00» на печатной плате)

Это форк оригинальной прошивки USBasp (файл от 2011-05-28), настроенный для работы с клонированными устройствами «USB ISP Version 2.0» (помеченными на печатной плате «MX-USBISP-V4.00»). Исходная документация и лицензия находятся в файле Readme .txt .

Обновление

: как сообщают устройства erokui и steadramon, отмеченные «MX-USBISP-V5.00» и «MX-USBISP-V6.00», также работают, последние должны быть прошиты опцией -p ATmega88P . Спасибо, парни!

Что такое USB ISP?

Это очень дешевый программатор для микроконтроллеров на базе AVR, доступный от многих китайских поставщиков. Аппаратно он очень похож на USBasp, но из коробки он работает только с утилитой Windows GUI от производителя и не работает с avrdude.

Вот как это выглядит:

Со снятой алюминиевой оболочкой:

На обратной стороне печатной платы есть этикетка «MX-USBISP-V4.00», см. Фото ниже. Если у вас устройство "V3.00", то лучше проверьте этот пост.

Быстрый старт

  1. Снимите алюминиевый корпус и переведите устройство в режим «самопрограммирования», подключив две контактные площадки на задней стороне печатной платы с маркировкой «UP»:

  2. Подключите любимый программатор к шапке USB ISP со ссылкой на распиновку на корпусе устройства.Если у вас его нет, используйте Arduino с запущенным на нем примером ArduinoISP . Он поддерживается avrdude как avrisp . Обязательно установите скорость передачи 19200 бод.

  3. Загрузите готовую прошивку в ./firmware/main.hex и установите предохранители на HFUSE = 0xDD и LFUSE = 0xFF.

  4. Отключить перемычку самопрограммирования.

Теперь подключите USB-провайдер к компьютеру. Вы должны увидеть, как светодиод немного загорится красным, а затем станет синим.В дереве USB должно появиться устройство USBasp HID. (Перейдите в раздел «Информация о системе»> «USB» на Mac.) Обратите внимание, что устройство не будет отображаться как последовательный порт, это нормально.

Теперь вы можете проверить, может ли avrdude с ним разговаривать:

  avrdude -c usbasp -P usb -p m328p
  

Если у вас ничего не подключено к программатору, вы увидите, что он жалуется:

  $ avrdude -c usbasp -P usb -p m328p

avrdude: error: программа включена: цель не отвечает.1
avrdude: инициализация не удалась, rc = -1
  

Но вы не должны получать никаких ошибок, связанных с USB.

Теперь подключите его к устройству, которое нужно запрограммировать, и сначала прочитайте флеш-память. Если получится, то попробуйте что-нибудь написать.

Постройка из источников

Если у вас установлен набор инструментов avr-gcc , перейдите к ./firmware и запустите:

После успешного выполнения настройте Makefile в соответствии с вашим программистом, а затем выполните:

Удачи!


Обновление прошивки USBasp с помощью Arduino - Shannon Strutz

Хорошо, у вас есть программатор USBasp AVR, но вы просто не можете программировать с его помощью, что ж, вам может потребоваться обновить прошивку.По какой-то причине большинство китайских поставщиков USBasp поставляют их со старой плохой прошивкой. Мы можем исправить это с помощью нескольких материалов.

Нам нужно:

  • Ардуино
  • Некоторые соединительные провода

Если они у вас есть, можете продолжать. Если вам интересно: «Зачем мне использовать USBasp, если я могу использовать Arduino для программирования AVR на USBasp?» Почему бы просто не использовать Arduino вместо USBasp? » Что ж, вы можете, но это действительно отстой, когда нужно переключаться между эскизами на Arduino только для программирования другого устройства.Очень приятно иметь преданного своему делу программиста.

Хорошо, приступим:

ШАГ 1:

Возьмите свой программатор USBasp. Вы заметите пару дыр с рамкой вокруг них под названием «JP2», нам нужно соединить их, чтобы мы включили программистам «Режим самопрограммирования», как на картинках.

ШАГ 2:

Когда ваш USBasp-программатор находится в режиме самопрограммирования, мы собираемся переключить внимание на Arduino.Идите и подключите свой любимый Arduino, я использовал для этого Uno. Как только он будет подключен, откройте IDE Arduino. Нужная нам программа поставляется с каждой версией IDE, перейдите в Файл-> Примеры-> ArduinoISP. Это откроет программу, которая эффективно превратит Arduino в программатор AVR. Выберите свой Arduino в списке плат и соответствующий COM-порт; затем запрограммируйте Arduino с помощью скетча ISP.

ШАГ 3:

Теперь ваш Arduino является программатором AVR! Теперь вернемся к USBasp.Загрузите avrdude и разархивируйте содержимое в папку, в которую вы не будете перемещать его, я поместил его в свою папку «Документы» в моем пользовательском каталоге. Обратите внимание: если вы завершите настройку с помощью Atmel Studio, вы не сможете переместить avrdude, иначе настройка нарушится. Как только это будет распаковано, загрузите последнюю версию прошивки USBasp. Вам придется распаковать его дважды, так как то, что вы загружаете, представляет собой файл .tar.gz, который затем распаковывает файл .tar, а затем, когда вы его распаковываете, у вас будут настоящие файлы. Это показано ниже:

  • usbasp.2011-05-28.tar.gz
    • usbasp.2011-05-28.tar
      • usbasp.2011-05-28
        • бункер
          • прошивка (прошивка устройства USBasp здесь)
            • usbasp.atmega8.2011-05.28.hex
          • win-драйвер
        • Схема
        • (электрическая схема / схема USBasp)
        • Прошивка
        • (исходный код прошивки здесь)
        • Changelog.txt
        • Readme.txt

После того, как вы все разархивировали и получили файлы, мы хотим скопировать файл usbasp.atmega8.2011-05.28.hex в тот же каталог, где находится avrdude. Как только у вас это получится, переходите к следующему шагу.

ШАГ 4:

Теперь, когда у нас есть все программное обеспечение и прошивка, нам нужно подключить USBasp к Arduino. Убедитесь, что перемычка JP2 на USBasp подключена. Как только это будет проверено, соедините две части, как показано на изображении ниже.

После того, как вы подключили две части, подключите Arduino к компьютеру, не подключайте USBasp.На самом деле ничего не произойдет, так как они оба подключаются к USB, который составляет 5 В, но просто не делайте этого, на случай, если один из ваших USB-портов выйдет из строя, подтолкнуть 5 В к линии VCC не будет хорошо, пока вы не узнаете, почему это произошло. вниз. Это случается не так часто, но просто охватывает все основы.

ШАГ 5:

Теперь, когда все оборудование подключено, вся прошивка готова к работе, а программное обеспечение установлено, нам нужно запрограммировать USBasp. Вот где это может быть сложно.Откройте инструмент командной строки. Если вы работаете в Windows, нажмите Windows + R, чтобы открыть окно запуска. Введите «cmd», чтобы открыть командную строку. Каталог по умолчанию, в который вы попадаете, должен быть вашим каталогом пользователя. Нам нужно перейти в каталог, в который вы поместили исполняемый файл avrdude. Вы можете использовать три простые команды для перехода туда, куда вы положили avrdude.exe.

  • Используйте «dir» для вывода списка файлов и папок в текущем каталоге.
  • Используйте «cd», а затем имя папки, в которую вы хотите изменить текущий каталог.
  • Используйте «cd ..» для перехода вверх по каталогу, аналогично возврату, как в браузере.

Как только вы окажетесь в каталоге, в котором находится ваш avrdude, мы воспользуемся командой для выполнения программирования USBasp. Шаблон:
avrdude -P comport -c avrisp -p m8 -v -U flash: w: usbasp.atmega8.2011-05-28.hex где comport - это какой com-порт включен ваш Arduino, это, скорее всего, быть тем же самым, что написано в Arduino IDE, но вы также можете узнать об этом в диспетчере устройств.Как только вы наберете эту команду правильно, нажмите Enter и наблюдайте за магией. Если он возвращается с ошибкой, погуглите. Может произойти ряд ошибок, и я не могу объяснить их все.

ШАГ 6:

Теперь, когда на USBasp установлена ​​последняя версия прошивки, сложная часть окончена! Однако вам еще предстоит установить драйвер устройства USBasp для Windows. Идите дальше и отключите Arduino, отделите его от USBasp, снимите перемычку, соединяющую два контакта JP2 на USBasp, и подключите USBasp к вашему ПК.Windows попытается установить устройство с найденными драйверами, но не сможет.
Зайдите в Диспетчер устройств и посмотрите в разделе «Другие устройства», вы должны увидеть USBasp с восклицательным знаком. Это означает, что Windows увидела его, но не может правильно установить. Дважды щелкните по нему и нажмите «Обновить драйвер». Появится окно с просьбой либо найти драйвер, либо найти его автоматически. Нажмите на нижний, чтобы мы могли найти драйвер для Windows, когда вы это сделаете, появится окно, в котором вам нужно будет сопоставить каталог «win-driver», указанный в каталоге прошивки usbasp выше. .После того, как вы согласитесь с этим, Windows попытается установить драйвер. Если вы получили сообщение об ошибке «Устройство не подписано» или что-то в этом роде, вам необходимо отключить функцию принудительного применения подписи устройства в вашей установке Windows. Как только все будет готово, все готово!

Теперь, когда вы закончили, вы можете запрограммировать любой AVR, какой захотите! Удачного программирования!
-Шеннон

Arduino Nano как программист для обновления прошивки USBASP [решено]

Это сообщение предназначено только для самостоятельной работы.Яростно работал целый день за своим Mac с утра субботы примерно до 19:00 из-за единственной строчки с предупреждением.

 avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp. 

Да, может быть, это не стоит моего времени, но все же ...

В любом случае, я использую свой Arduino Nano в качестве программатора ISP, чтобы загрузить новую прошивку на USBASP.

В среде Arduino IDE откройте файл, например, ArduinoISP.

Загрузите скетч arduinoISP в Nano.

Соедините контакты.

Arduino Nano - USBASP

5V - 2

GND - 10

13-7

12-9 (MISO)

11-1 (MOSI)

10-5 (RESET)

Не забудьте подключить перемычку J2 или JP2, чтобы включить самопрограммирование на USBASP.

Не используйте версию прошивки 2011 года, используйте вместо нее версию 2009 года


У меня есть два примера команды, для Windows
 avrdude -C ../etc/avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -v 
avrdude -C../etc/avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -U flash: r: original_firmware.bin: r
avrdude -C ../etc/avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -U flash: w: original_firmware.bin
avrdude -C ../etc/avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -U flash: w: c: \ usbasp.atmega8. 2011-05- 28.hex
и
 avrdude -p m8 -b 19200 -c avrisp -P com2 -U flash: r: usbasp.atmega8.hobbyking.hex 
avrdude -p m8 -b 19200 -c avrisp -P com2 -U flash: w: usbasp.atmega8.2009-02-28.hex
Необходимо изменить это, чтобы удовлетворить мою среду Mac

Я уверен, что у моего Mac нет COM-порта, и моя успешная команда avrdude выглядит так:

 avrdude -p attiny13A -P usb -c usbasp -n 

avrdude -p t13 -c usbasp -P usb -U flash: w: template.hex

, так что, возможно, мне придется использовать -P usb
 avrdude -c avrisp -P usb -b 19200 -p m8 -v 
avrdude: Версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Copyright ( c) Брайан Дин 2000-2005, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации: / usr / local / CrossPack-AVR-20131216 / etc / avrdude. conf "
Файл конфигурации пользователя:" /Users/nugroho/.avrduderc "
Файл конфигурации пользователя не существует или не является обычным файлом, пропускается

Использование порта: usb
Использование программатора: avrisp
Переопределение скорости передачи данных: 19200
avrdude : ser_open (): невозможно открыть устройство "usb": Нет такого файла или каталога.
avrdude done.Спасибо.
Nugrohos-MacBook-Air: прошивка nugroho $
#

no
OK
снова
 Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 - v 

avrdude: версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Авторские права (c) 2000-2005 гг. Брайан Дин, http://www.bdmicro.com/
Авторские права (c) 2007-2009 гг. Joerg Wunsch

Общесистемный файл конфигурации: "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf"
Файл конфигурации пользователя: "/ Users / nugroho /.avrduderc "
Пользовательский файл конфигурации не существует или не является обычным файлом, пропуская

Использование порта: /dev/cu.wchusbserial1420
Использование программатора: avrisp
Переопределение скорости передачи данных: 19200
avrdude: stk500_getsync () попытка 1 из 10: не синхронизировано: resp = 0x15
avrdude: stk500_getsync () попытка 2 из 10: не синхронизировано: resp = 0x15
Часть AVR: ATmega8
Задержка стирания микросхемы: 10000 мкс
PAGEL: PD7
BS2: PC2
RESET disposition: специализированный
RETRY pulse: SCK
режим последовательного программирования: да
режим параллельного программирования: да
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
Pol lValue: 0x53
Сведения о памяти:

Опрос страницы блока
Тип памяти Режим Задержка Размер Indx Размер страницы Размер # Страницы MinW MaxW ReadBack
----------- ---- ----- - ---- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 20128 0 нет 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 да 8192 64128 4500 4500 0xff 0x00
lfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
калибровка 0 0 0 0 нет 4 0 0 0 0 0x00 0x00
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00

Программист Тип: STK500
Описание: У mel AVR ISP

avrdude: stk500_getparm (): (a) ошибка протокола, expect = 0x14, resp = 0x14

avrdude: stk500_getparm (): (a) ошибка протокола, expect = 0x14, resp = 0x02

avrdude: stk500 (): (a) ошибка протокола, ожидайте = 0x14, соответственно = 0x10
Версия оборудования: -1597263620
Версия микропрограммы: 3296192.-1597263620
Topcard: STK502
Vtarget: 1,8 В
Varef: 0,0 В
Осциллятор: выключен
Период SCK: 0,1 us

avrdude: stk500_initialize (): (b) ошибка протокола, ожидаемое = 0x10, resp = 0x01
avrdude ошибка инициализации, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude: stk500_disable (): ошибка протокола, expect = 0x14, resp = 0x10

avrdude done. Спасибо.

Nugrohos-MacBook-Air: прошивка nugroho $

avrdude -p m8 -b 19200 -c avrisp -P / dev / cu.wchusbserial1420
-U flash: r: usbasp.atmega8.original.hex

Нажмите сброс на Arduino Nano перед вводом команды выше
 Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -v 

avrdude: Версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Авторские права (c) 2000-2005 Брайан Дин, http://www.bdmicro.com/
Авторские права ( c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации: «/ usr / local / CrossPack-AVR-20131216 / etc / avrdude.conf "
Файл конфигурации пользователя" /Users/nugroho/.avrduderc "
Файл конфигурации пользователя не существует или не является обычным файлом, пропускается

Использование порта: /dev/cu.wchusbserial1420
Использование программатора: avrisp
Переопределение скорости передачи данных Скорость: 19200
avrdude: stk500_recv (): программатор не отвечает
avrdude: stk500_getsync () попытка 1 из 10: нет синхронизации: resp = 0x00
Часть AVR: ATmega8
Задержка стирания микросхемы: 10000 us
PAGEL: PD7
: PC2
Расположение RESET: выделенный
RETRY pulse: SCK
режим последовательного программирования: да
режим параллельного программирования: да
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Сведения о памяти:

Страница опроса блока
Тип памяти Режим Задержка Размер Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- - --- ----- ---- ------ ------ ---- ------ ----- ----- ------ ---
eeprom 4 20128 0 нет 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 да 8192 64128 4500 4500 0xff 0x00
lfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
калибровка 0 0 0 0 нет 4 0 0 0 0 0x00 0x00
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00

Программа er Тип: STK500
Описание: Atmel AVR ISP
Версия оборудования: 2
Версия прошивки: 1.18
Topcard: Неизвестно
Vtarget: 0,0 В
Varef: 0,0 В
Осциллятор: Выкл.
Период SCK: 0,1 мкс

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | ########################################################################## | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0.13s

avrdude: Подпись устройства = 0x000000
avrdude: Ура! Неверная подпись устройства.
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude сделано. Спасибо.

Nugrohos-MacBook-Air: прошивка nugroho $

Использование опции -F
 Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -v -F 

avrdude: Версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Авторские права (c) 2000-2005 Брайан Дин, http: // www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации: "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf"
Пользовательский файл конфигурации: "/ Users / nugroho / .avrduderc "
Пользовательский файл конфигурации не существует или не является обычным файлом, пропуская

Использование порта: /dev/cu.wchusbserial1420
Использование программатора: avrisp
Переопределение скорости передачи данных: 19200
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10: не синхронизируется: resp = 0x00
Часть AVR: ATmega8
Задержка стирания микросхемы: 10000 мкс
PAGEL: PD7
BS2: PC2
Расположение RESET: выделенный
импульс RETRY: SCK
последовательный программный режим: да
параллельный программный режим: да
тайм-аут: 200
StabDelay : 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Сведения о памяти:

Страница опроса блока
Тип памяти Режим задержки Размер Indx Размер страницы Макс. --------- ---- ----- ----- ---- ------ ------ ---- ------ - ---- ----- ---------
eeprom 4 20128 0 нет 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 да 8192 64128 4500 4500 0xff 0x00
lfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
калибровка 0 0 0 0 нет 4 0 0 0 0 0x00 0x00
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00

Тип программатора: STK500
Описание: Atmel AVR ISP
Версия оборудования: 2
Версия прошивки: 1.18
Topcard: Неизвестно
Vtarget: 0,0 В
Varef: 0,0 В
Осциллятор: Выкл.
Период SCK: 0,1 мкс

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0,13 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0.13s

avrdude: Подпись устройства = 0x000000
avrdude: Ура! Неверная подпись устройства.
avrdude: ожидаемая сигнатура для ATmega8 - 1E 93 07
avrdude: safemode: lfuse читается как 0
avrdude: safemode: hfuse читается как 0

avrdude: safemode: lfuse читается как 0
avrdude: safemode: 0fuse : safemode: Предохранители исправны (H: FF, E: 00, L: 00)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: прошивка nugroho $

Теперь резервное копирование
 Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: r: original_firmware.hex: r -F 
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10: не синхронизируется: resp = 0x00

avrdude: устройство AVR инициализировано и готов принять инструкцию

Чтение | #################################################################################################### | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0.13s

avrdude: Подпись устройства = 0x000000
avrdude: Ура! Неверная подпись устройства.
avrdude: Ожидаемая сигнатура для ATmega8 - 1E 93 07
avrdude: чтение флэш-памяти:

Чтение | #################################################################################################### | 100% 15.04s

avrdude: запись выходного файла "original_firmware.hex"

avrdude: safemode: предохранители исправны (H: FF, E: 00, L: 00)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $ ls
blinkLED_A Прошивка coba2.hex original_firmware.hex usbasp.atmega8.2009-02-28.hex
coba1 coba3 lcdNO tn13Adef.inc
Nugrohos-MacBook-Air: attiny13a nugroho $

И загрузить новую прошивку
 Nugrohos-MacBook-Air: attiny13a avdur -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: firmware.hex -F 
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10: не синхронизировано: resp = 0x00

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0.11s

avrdude: подпись устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0,11 с

avrdude: сигнатура устройства = 0x000000 (повторная попытка)

Чтение | #################################################################################################### | 100% 0,13 с

avrdude: Подпись устройства = 0x000000
avrdude: Ура! Неверная подпись устройства.
avrdude: Ожидаемая сигнатура для ATmega8 - 1E 93 07
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: чип стирания
avrdude: чтение входного файла "firmware.hex"
avrdude: входной файл firmware.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (3966 байт):

Запись | #################################################################################################### | 100% 9.16s

avrdude: записано 3966 байт во флеш-память
avrdude: проверка флеш-памяти на соответствие микропрограммному обеспечению.hex:
avrdude: загрузить данные флеш-памяти из входного файла firmware.hex:
avrdude: входной файл firmware.hex автоматически определяется как Intel Hex
avrdude: входной файл прошивки.шестнадцатеричный содержит 3966 байтов
avrdude: чтение данных флэш-памяти на кристалле:

Чтение | #################################################################################################### | 100% 7.29s

avrdude: проверка ...
avrdude: ошибка проверки, первое несоответствие в байте 0x0000
0x00! = 0x3b
avrdude: ошибка проверки; несоответствие содержимого

avrdude: safemode: Fuses OK (H: FF, E: 00, L: 00)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $

попробовать
 Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -v 

avrdude: Version 6.0.1, скомпилировано 16 декабря 2013 г. в 17:26:24
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации is "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf"
Файл конфигурации пользователя: "/Users/nugroho/.avrduderc"
Файл конфигурации пользователя не существует или не является обычным файлом, пропуская

Использование порта: usb
Использование программатора: usbasp
AVR Часть: ATtiny13
Задержка стирания микросхемы: 4000 us
PAGEL: P00
BS2: P00
Расположение RESET: выделенный
RETRY pulse: SCK
режим последовательного программирования: да
режим параллельного программирования: да
Тайм-аут: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 3 2
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Сведения о памяти:

Страница опроса блока
Тип памяти Режим Задержка Размер Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 5 4 0 нет 64 4 0 4000 4000 0xff 0xff
flash 65 6 32 0 да 1024 32 32 4500 4500 0xff 0xff
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
калибровка 0 0 0 0 нет 2 0 0 0 0 0x00 0x00
lfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00

Тип программатора: usbasp
Описание: USBasp, http: // www.fischl.de/usbasp/

avrdude: автоматическая установка периода sck (потому что данный равен нулю)
avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp.
avrdude: устройство AVR инициализировано и готово к приему инструкций

Чтение | #################################################################################################### | 100% 0,00 с

avrdude: сигнатура устройства = 0x1e9007
avrdude: safemode: lfuse читается как 6A
avrdude: safemode: hfuse читается как FF

avrdude: safemode: lfuse читается как 6A
avrdude:
avrdufuse: safemode: safemode avrdude: safemode: Предохранители исправны (H: FF, E: FF, L: 6A)

avrdude done.Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -U flash: w: coba3.s.hex

avrdude: предупреждение: невозможно установить период sck . пожалуйста, проверьте обновление прошивки usbasp.
avrdude: устройство AVR инициализировано и готово к приему инструкций

Чтение | #################################################################################################### | 100% 0,00 с

avrdude: подпись устройства = 0x1e9007
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: стирание чипа
avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp.
avrdude: чтение входного файла "coba3.s.hex"
avrdude: входной файл coba3.s.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (34 байта):

Запись | #################################################################################################### | 100% 0,05 с

avrdude: записано 34 байта флэш-памяти
avrdude: проверка флэш-памяти на соответствие coba3.s.hex:
avrdude: загрузить данные флэш-памяти из входного файла coba3.s.hex:
avrdude: входной файл coba3.s.hex автоматически определяется как Intel Hex
avrdude: входной файл coba3.s.hex содержит 34 байта
avrdude: чтение данных встроенной флэш-памяти:

Чтение | #################################################################################################### | 100% 0,03 с

avrdude: проверка ...
avrdude: 34 байта флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: FF, L: 6A)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

попробовать версию 2011 года

Nugrohos-MacBook-Air: attiny13a nugroho $ ls
прошивка blinkLED_A.hex usbasp.atmega8.2009-02-28.hex
coba1 lcdNO usbasp.atmega8.2011-05-28.hex
coba2 original_firmware.hex
coba3 tn13Adef.inc
Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -v -F

avrdude: Версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Авторские права (c) 2000-2005 Брайан Дин, http : //www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации: «/ usr / local / CrossPack-AVR-20131216 / etc / avrdude.conf "
Файл конфигурации пользователя" /Users/nugroho/.avrduderc "
Файл конфигурации пользователя не существует или не является обычным файлом, пропускается

Использование порта: /dev/cu.wchusbserial1420
Использование программатора: avrisp
Переопределение скорости передачи данных Скорость: 19200
avrdude: stk500_recv (): программатор не отвечает
avrdude: stk500_getsync () попытка 1 из 10: нет синхронизации: resp = 0x00
Часть AVR: ATmega8
Задержка стирания микросхемы: 10000 us
PAGEL: PD7
: PC2
Расположение RESET: выделенный
RETRY pulse: SCK
режим последовательного программирования: да
режим параллельного программирования: да
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Сведения о памяти:

Страница опроса блока
Тип памяти Режим Задержка Размер Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- - --- ----- ---- ------ ------ ---- ------ ----- ----- ------ ---
eeprom 4 20128 0 нет 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 да 8192 64128 4500 4500 0xff 0x00
lfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 2000 2000 0x00 0x00
калибровка 0 0 0 0 нет 4 0 0 0 0 0x00 0x00
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00

Программа er Тип: STK500
Описание: Atmel AVR ISP
Версия оборудования: 2
Версия прошивки: 1.18
Topcard: Неизвестно
Vtarget: 0,0 В
Varef: 0,0 В
Осциллятор: Выкл.
Период SCK: 0,1 мкс

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0.11s

avrdude: подпись устройства = 0x1e9307
avrdude: safemode: lfuse читается как 9F
avrdude: safemode: hfuse читается как D9

avrdude: safemode: lfuse читается как 9F
avrdude avrdude: safemode: Предохранители исправны (H: FF, E: D9, L: 9F)

avrdude done.Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: -F
.DS_Store coba3 / tn13Adef.inc
blinkLED_A / firmware. hex usbasp.atmega8.2009-02-28.hex
coba1 / lcdNO / usbasp.atmega8.2011-05-28.hex
coba2 / original_firmware.hex
Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: w: usbasp.atmega8.2011-05-28.hex -F
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10: не синхронизируется: resp = 0x00

avrdude: устройство AVR инициализировано и готово к приему инструкций

Чтение | #################################################################################################### | 100% 0.11s

avrdude: Подпись устройства = 0x1e9307
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: стирание чипа
avrdude: чтение входного файла "usbasp.atmega8.2011-05-28.hex"
avrdude: входной файл usbasp.atmega8.2011-05-28.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (4700 байт):

Запись | #################################################################################################### | 100% 10.94s

avrdude: 4700 байт записанной флеш-памяти
avrdude: проверка флеш-памяти на соответствие usbasp.atmega8.2011-05-28.hex:
avrdude: загрузка данных флеш-данных из входного файла usbasp.atmega8.2011-05-28.hex:
avrdude: входной файл usbasp.atmega8.2011-05-28.hex автоматически определяется как Intel Hex
avrdude: входной файл usbasp.atmega8.2011-05-28.hex содержит 4700 байтов
avrdude : чтение данных встроенной флеш-памяти:

Чтение | #################################################################################################### | 100% 8.70s

avrdude: проверка ...
avrdude: 4700 байт флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: D9, L: 9F)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $

Это многообещающий
 Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -n 

avrdude: error: programm enable: target не отвечает.1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude сделано. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -P usb

avrdude: error: programm enable: target не отвечает. 1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude сделано. Спасибо.

не
перейти к исходной версии 2009 года
 Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: w: usbasp.atmega8.20 -F 
usbasp.atmega8.2009-02-28.hex usbasp.atmega8.2011-05-28.hex
Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: usbasp.atmega8.2009-02-28.hex -F
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync ( ) попытка 1 из 10: не синхронизировано: resp = 0x00

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0.11s

avrdude: подпись устройства = 0x1e9307
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: стирание чипа
avrdude: чтение входного файла "usbasp.atmega8.2009-02-28.hex"
avrdude: входной файл usbasp.atmega8.2009-02-28.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (3826 байт):

Запись | #################################################################################################### | 100% 8.86s

avrdude: записано 3826 байт флэш-памяти
avrdude: проверка флэш-памяти на соответствие usbasp.atmega8.2009-02-28.hex:
avrdude: загрузить данные флэш-данных из входного файла usbasp.atmega8.2009-02-28.hex:
avrdude: входной файл usbasp.atmega8.2009-02-28.hex обнаружен автоматически as Intel Hex
avrdude: входной файл usbasp.atmega8.2009-02-28.hex содержит 3826 байт
avrdude: чтение данных встроенной флэш-памяти:

Чтение | #################################################################################################### | 100% 7.05s

avrdude: проверка ...
avrdude: 3826 байт флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: D9, L: 9F)

avrdude done.Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $
Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp

avrdude: error: programm enable: target не отвечает. 1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude сделано. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

вернуться к исправленной версии 2009
 Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: w: firmware.hex -F 
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10: не синхронизируется: resp = 0x00

avrdude: устройство AVR инициализировано и готово к работе принимаю инструкции

Чтение | #################################################################################################### | 100% 0.11s

avrdude: Подпись устройства = 0x1e9307
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: чип стирания
avrdude: чтение входного файла "firmware.hex"
avrdude: входной файл firmware.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (3966 байт):

Запись | #################################################################################################### | 100% 9.16s

avrdude: записано 3966 байт во флеш-память
avrdude: проверка флеш-памяти на соответствие микропрограммному обеспечению.hex:
avrdude: загрузить данные флеш-памяти из входного файла firmware.hex:
avrdude: входной файл firmware.hex автоматически определяется как Intel Hex
avrdude: входной файл прошивки.шестнадцатеричный содержит 3966 байтов
avrdude: чтение данных флэш-памяти на кристалле:

Чтение | #################################################################################################### | 100% 7.29s

avrdude: проверка ...
avrdude: 3966 байт флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: D9, L: 9F)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $

Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp

avrdude: error: programm enable: target не отвечает.С

.

хм, может быть ATTiny сломан

здесь -v -vv и -vvv

 Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -v 

avrdude: Версия 6.0.1, скомпилирована 16 декабря. 2013 at 17:26:24
Авторские права (c) 2000-2005 Брайан Дин, http://www.bdmicro.com/
Авторские права (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации "/ usr / local /CrossPack-AVR-20131216/etc/avrdude.conf "
Файл конфигурации пользователя:" /Users/nugroho/.avrduderc "
Файл конфигурации пользователя не существует или не является обычным файлом, пропуская

Использование порта: usb
Использование Программатор: usbasp
AVR Часть: ATtiny13
Задержка стирания микросхемы: 4000 мкс
ПАГЕЛЬ: P00
BS2: P00
Расположение RESET: выделенный
RETRY импульс: SCK
режим последовательного программирования: да
режим параллельного программирования : да
Тайм-аут: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Сведения о памяти:

Размер опроса блока Размер страницы Опрашиваемый
Размер страницы Опрашиваемый размер памяти
#Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ --- - ------ ----- ----- ---------
eeprom 65 5 4 0 нет 64 4 0 4000 4000 0xff 0xff
flash 65 6 32 0 да 1024 32 32 4500 4500 0xff 0xff
подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00
блокировка 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
калибровка 0 0 0 0 нет 2 0 0 0 0 0x00 0x00
lfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00

Тип программатора: usbasp
Описание: USBasp, http: // www.fischl.de/usbasp/

avrdude: автоматическая установка периода sck (поскольку заданный равен нулю)
avrdude: error: programm enable: target не отвечает. 1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этой проверки.

avrdude сделано. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -vv

avrdude: Версия 6.0.1, скомпилирована 16 декабря 2013 г. в 17:26:24
Copyright (c) 2000-2005 Брайан Дин , http: // www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации: "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf"
Пользовательский файл конфигурации: "/ Users / nugroho / .avrduderc "
Файл конфигурации пользователя не существует или не является обычным файлом, пропуская

Использование порта: usb
Использование программатора: usbasp
avrdude: устройство от производителя -> www.fischl.de <- data-blogger-escaped - = "" data-blogger-escaped-avrdude: = "" data-blogger-escaped-product = "" data-blogger-escaped-seen = ""> USBasp <- data-blogger-escaped ----- ------- = "" data-blogger-escaped ---------- = "" data-blogger-escaped ------- = "" data-blogger-escaped-- ---- = "" data-blogger-escaped ----- = "" data-blogger-escaped - = "" data-blogger-escaped - c = "" data-blogger-escaped - f = "" data-blogger-escaped - p = "" data-blogger-escaped - vvv = "" data-blogger-escaped-0 = "" data-blogger-escaped-0x00 = "" data-blogger-escaped- 0x53 = "" data-blogger-escaped-0xff = "" data-blogger-e scaped-100 = "" data-blogger-escaped-1024 = "" data-blogger-escaped-16 = "" data-blogger-escaped-17: 26: 24 = "" data-blogger-escaped-1 = "" data-blogger-escaped-2000-2005 = "" data-blogger-escaped-2007-2009 = "" data-blogger-escaped-200 = "" data-blogger-escaped-2013 = "" data-blogger-escaped- 25 = "" data-blogger-escaped-2 = "" data-blogger-escaped-32 = "" data-blogger-escaped-3 = "" data-blogger-escaped-4000 = "" data-blogger-escaped- 4500 = "" data-blogger-escaped-4 = "" data-blogger-escaped-5 = "" data-blogger-escaped-6.0.1 = "" data-blogger-escaped-64 = "" data-blogger-escaped-65 = "" data-blogger-escaped-6 = "" data-blogger-escaped -: = "" data-blogger-escaped- a = "" data-blogger-escaped-again = "" data-blogger-escaped-age = "" data-blogger-escaped-and = "" data-blogger-escaped-answer. = "" data-blogger-escaped -at = "" data-blogger-escaped-attiny13 = "" data-blogger-escaped-auto = "" data-blogger-escaped-avr = "" data-blogger-escaped-avrdude.conf = "" data-blogger -escaped-avrdude: = "" data-blogger-escaped-avrdude = "" data-blogger-escaped-avrduderc = "" data-blogger-escaped-because = "" data-blogger-escaped-block = "" data- blogger-escaped-brian = "" data-blogger-escaped-bs2 = "" data-blogger-escaped-bytedelay = "" data-blogger-escaped-c = "" data-blogger-escaped -ibration = "" data- blogger-escaped-check.= "" data-blogger-escaped-check = "" data-blogger-escaped-chip = "" data-blogger-escaped-cmdexedelay = "" data-blogger-escaped-compiled = "" data-blogger-escaped-configuration = "" data-blogger-escaped-connections = "" data-blogger-escaped-copyright = "" data-blogger-escaped-dean = "" data-blogger-escaped-dec = "" data-blogger-escaped-special = "" data-blogger-escaped-delay = "" data-blogger-escaped-description = "" data-blogger-escaped-detail = "" data-blogger-escaped-device = "" data-blogger-escaped-disposition = "" data-blogger-escaped-does = "" data-blogger-escaped-doesn = "" данные-blogger-escaped-done.= "" data-blogger-escaped-double = "" data-blogger-escaped-eeprom = "" data-blogger-escaped-enable: = "" data-blogger-escaped-equals = "" data-blogger-escaped- erase = "" data-blogger-escaped-error: = "" data-blogger-escaped-etc = "" data-blogger-escaped-exist = "" data-blogger-escaped-failed = "" data-blogger-escaped -file = "" data-blogger-escaped-flash = "" data-blogger-escaped-from = "" data-blogger-escaped-given = "" data-blogger-escaped-hfuse = "" data-blogger-escaped -http: = "" data-blogger-escaped-indx = "" data-blogger-escaped-initialization = "" data-blogger-escaped-is = "" data-blogger-escaped-joerg = "" data-blogger- escaped-lfuse = "" data-blogger-escaped-local = "" data-blogger-escaped-lock = "" data-blogger-escaped-maxw = "" data-blogger-escaped-memory = "" data-blogger- escaped-minw = "" data-blogger-escaped-mode = "" data-blogger-escaped-no = "" data-blogger-escaped-not = "" data-blogger-escaped-nugroho = "" data-blogger- escaped-nugrohos-macbook-air: coba3 = "" data-blogger-escaped-null = "" data-blogger-escaped-on = "" data-blogger-esca ped-or = "" data-blogger-escaped-override = "" data-blogger-escaped-p00 = "" data-blogger-escaped-page = "" data-blogger-escaped-paged = "" data-blogger- escaped-pagel = "" data-blogger-escaped-parallel = "" data-blogger-escaped-part = "" data-blogger-escaped-period = "" data-blogger-escaped-poll = "" data-blogger- escaped-polled = "" data-blogger-escaped-pollindex = "" data-blogger-escaped-pollvalue = "" data-blogger-escaped-port = "" data-blogger-escaped-program = "" data-blogger- escaped-programm = "" data-blogger-escaped-programmer = "" data-blogger-escaped-pulse = "" data-blogger-escaped-rc = "- 1" data-blogger-escaped-readback = "" data- blogger-escaped-regular = "" data-blogger-escaped-reset = "" data-blogger-escaped-retry = "" data-blogger-escaped-rosspack-avr-20131216 = "" data-blogger-escaped-sck = "" data-blogger-escaped-seen = "" data-blogger-escaped-serial = "" data-blogger-escaped-sers = "" data-blogger-escaped-set = "" data-blogger-escaped-signature = "" data-blogger-escaped-size = "" data-blogger-escaped-skipping = "" data-blogger-escape d-stabdelay = "" data-blogger-escaped-syncloops = "" data-blogger-escaped-system = "" data-blogger-escaped-t13 = "" data-blogger-escaped-t = "" data-blogger- escaped-target = "" data-blogger-escaped-thank = "" data-blogger-escaped-this = "" data-blogger-escaped-timeout = "" data-blogger-escaped-to = "" data-blogger- escaped-try = "" data-blogger-escaped-type = "" data-blogger-escaped-us = "" data-blogger-escaped-usb = "" data-blogger-escaped-usbasp = "" data-blogger- escaped-usbasp_open = "" data-blogger-escaped-use = "" data-blogger-escaped-user = "" data-blogger-escaped-using = "" data-blogger-escaped-usr = "" data-blogger- escaped-vendor = "" data-blogger-escaped-version = "" data-blogger-escaped-wide = "" data-blogger-escaped-wunsch = "" data-blogger-escaped-www.bdmicro.com = "" data-blogger-escaped-www.fischl.de = "" data-blogger-escaped-yes = "" data-blogger-escaped-you. = ""> www.fischl.de <- data -blogger-escaped - = "" data-blogger-escaped-avrdude: = "" data-blogger-escaped-product = "" data-blogger-escaped-seen = ""> USBasp <- data-blogger-escaped- ----------- = "" data-blogger-escaped ---------- = "" data-blogger-escaped ------- = "" data-blogger -escaped ------ = "" data-blogger-escaped ----- = "" data-blogger-escaped-0.00savrdude: = "" data-blogger-escaped-0 = "" data-blogger- escaped-0x00 = "" data-blogger-escaped-0x53 = "" data-blogger-escaped-0xff = "" data-blogger-escaped-100 = "" data-blogger-escaped-1024 = "" data-blogger- escaped-1 = "" data-blogger-escaped-200 = "" data-blogger-escaped-25 = "" data-blogger-escaped-2 = "" data-blogger-escaped-32 = "" data-blogger- escaped-3 = "" data-blogger-escaped-4000 = "" data-blogger-escaped-4500 = "" data-blogger-escaped-4 = "" data-blogger-escaped-5 = "" data-blogger- escaped-64 = "" data-blogger-escaped-65 = "" data-blogger-escaped-6 = "" data-blogger-escaped -: = "" d ata-blogger-escaped-accept = "" data-blogger-escaped-age = "" data-blogger-escaped-and = "" data-blogger-escaped-attiny13 = "" data-blogger-escaped-auto = "" data-blogger-escaped-avr = "" data-blogger-escaped-avrdude: = "" data-blogger-escaped-because = "" data-blogger-escaped-block = "" data-blogger-escaped-bs2 = " "data-blogger-escaped-bytedelay =" "data-blogger-escaped -ibration =" "data-blogger-escaped-chip =" "data-blogger-escaped-cmdexedelay =" "data-blogger-escaped-special =" "data-blogger-escaped-delay =" "data-blogger-escaped-description =" "data-blogger-escaped-detail =" "data-blogger-escaped-device =" "data-blogger-escaped-disposition =" "data-blogger-escaped-eeprom =" "data-blogger-escaped-equals =" "data-blogger-escaped-erase =" "data-blogger-escaped-flash =" "data-blogger-escaped-given =" "data-blogger-escaped-hfuse =" "data-blogger-escaped-http: =" "data-blogger-escaped-indx =" "data-blogger-escaped-initialized =" "data-blogger-escaped-instructions = "" data-blogger-escaped-lfuse = "" data-blogger-escaped-lo ck = "" data-blogger-escaped-maxw = "" data-blogger-escaped-memory = "" data-blogger-escaped-minw = "" data-blogger-escaped-mode = "" data-blogger-escaped- no = "" data-blogger-escaped-null = "" data-blogger-escaped-p00 = "" data-blogger-escaped-page = "" data-blogger-escaped-paged = "" data-blogger-escaped- pagel = "" data-blogger-escaped-parallel = "" data-blogger-escaped-part = "" data-blogger-escaped-period = "" data-blogger-escaped-poll = "" data-blogger-escaped- polled = "" data-blogger-escaped-pollindex = "" data-blogger-escaped-pollvalue = "" data-blogger-escaped-program = "" data-blogger-escaped-programmer = "" data-blogger-escaped- pulse = "" data-blogger-escaped-readback = "" data-blogger-escaped-reading = "" data-blogger-escaped-ready = "" data-blogger-escaped-reset = "" data-blogger-escaped- retry = "" data-blogger-escaped-sck = "" data-blogger-escaped-serial = "" data-blogger-escaped-set = "" data-blogger-escaped-signature = "" data-blogger-escaped- size = "" data-blogger-escaped-stabdelay = "" data-blogger-escaped-syncloops = "" data-blogger -escaped-timeout = "" data-blogger-escaped-to = "" data-blogger-escaped-type = "" data-blogger-escaped-us = "" data-blogger-escaped-usbasp = "" data-blogger -escaped-usbasp_cpi_cmd = "" data-blogger-escaped-usbasp_initialize = "" data-blogger-escaped-usbasp_program_enable = "" data-blogger-escaped-usbasp_spi_set_sck_period = "" data-blogger-escaped.fischl.de = "" data-blogger-escaped-x30 = "" data-blogger-escaped-yes = ""> 0x01, 0x31, 0x01, 0x01
avrdude: usbasp_cpi_cmd (0x30, 0x00, 0x01, 0x00) => 0x00 , 0x31, 0x00, 0x01
Чтение | ################# | 33% 0.00savrdude: usbasp_cpi_cmd (0x30, 0x00, 0x02, 0x00) => 0x00, 0x61, 0x00, 0x03
Чтение | #################################################################################################### | 100% 0,00 с

avrdude: Подпись устройства = 0x010103
avrdude: Ожидаемая подпись для ATtiny13 - 1E 90 07
Перепроверьте микросхему или используйте -F для отмены этой проверки.
avrdude: usbasp_close ()

avrdude готово. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

Поищите на форумах, похоже, виновата автоматическая установка sck на новой фирме. (http://openrcforums.com/forum/viewtopic.php?f=10&t=1363#p29615)
 avrdude: auto set sck period (потому что данный равен нулю) 
получил
 Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: main.hex -F 
avrdude: stk500_recv (): программист не отвечает
avrdude: stk500_getsync () попытка 1 из 10 : not in sync: resp = 0x00

avrdude: Устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0.12s

avrdude: Подпись устройства = 0x1e9307
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: чип стирания
avrdude: чтение входного файла "main.hex"
avrdude: входной файл main.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (3758 байт):

Запись | #################################################################################################### | 100% 8.72s

avrdude: 3758 байт записано во флеш-память
avrdude: проверка флеш-памяти по сравнению с main.hex:
avrdude: загрузить данные флэш-данных из входного файла main.hex:
avrdude: входной файл main.hex автоматически определяется как Intel Hex
avrdude: входной файл main.hex содержит 3758 байтов
avrdude: чтение данных встроенной флэш-памяти:

Чтение | #################################################################################################### | 100% 6.93s

avrdude: проверка ...
avrdude: 3758 байт флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: D9, L: 9F)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $

нет
мм, я не хочу возвращаться к старой заблокированной прошивке.Форум предлагает мне перемыть четыре резистора
любопытно
подключить его к моему arduino pro mini
и вуаля…
 Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m328 -c usbasp -P usb -n 

avrdude: Устройство AVR инициализировано и готово к приему инструкций

Чтение | #################################################################################################### | 100% 0,00 с

avrdude: Подпись устройства = 0x1e950f
avrdude: Ожидаемая подпись для ATmega328 - 1E 95 14
Дважды проверьте микросхему или используйте -F для отмены этой проверки.

avrdude сделано. Спасибо.
Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m328 -c usbasp -P usb -b 1920 -U flash: r: ArProMini.bin: r -v -F

avrdude: версия 6.0.1, скомпилирована в декабре 16 2013 в 17:26:24

Авторские права (c) 2000-2005 Брайан Дин, http://www.bdmicro.com/

Авторские права (c) 2007-2009 Joerg Wunsch

Общесистемный файл конфигурации "/ usr / local / CrossPack-AVR-20131216 / etc / avrdude.conf "

Файл конфигурации пользователя:" / Users / nugroho /.avrduderc "

Файл конфигурации пользователя не существует или не является обычным файлом, пропуская

Использование порта: usb

Использование программатора: usbasp

Переопределение скорости передачи данных: 1920

Компонент AVR: ATmega328

Задержка стирания микросхемы: 9000 us

PAGEL: PD7

BS2: PC2

Расположение RESET: выделенный

RETRY pulse: SCK

режим последовательного программирования: да

режим параллельного программирования: да

тайм-аут: 200

StabDelay : 25

SyncLoops: 32

ByteDelay: 0

PollIndex: 3

PollValue: 0x53

Сведения о памяти:

Блок опроса, страница опроса

Тип памяти Тип памяти Размер задержки Indx Размер страницы Размер # Страницы MinW MaxW ReadBack

----------- ---- ----- --- ---- ------ ------ ---- ------ ----- ----- ---------

eeprom 65 20 4 0 нет 1024 4 0 3600 3600 0xff 0xff

flash 65 6128 0 да 32768 128 256 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: устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0,00 с

avrdude: Подпись устройства = 0x1e950f

avrdude: Ожидаемая подпись для ATmega328 - 1E 95 14

avrdude: safemode: lfuse читается как FF

avrdude: safemode: hfuse 9000: avrdude: safemode: hfuse 9000: avmode 9000: avmode 9000: DAmo 9000 efuse читает как 5

avrdude: чтение флэш-памяти:

Чтение | #################################################################################################### | 100% 8.43s

avrdude: запись выходного файла «ArProMini.bin»

avrdude: safemode: lfuse читается как FF

avrdude: safemode: hfuse читается как DA

avrdude: safemode: efuse читается как 5

9000 ОК (H: 05, E: DA, L: FF)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: attiny13a nugroho $ ls -l

всего 232

-rw-r - r-- 1 nugroho Staff 32670 16 мая 17:52 ArProMini.bin

drwxr-xr-x 8 nugroho Staff 272 15 мая 21:50 blinkLED_A

drwxr-xr-x 8 nugroho Staff 272 16 мая 00:30 coba1

drwxr-xr-x 8 nugroho Staff 272 15 мая 21:50 coba2

drwxr-xr-x 8 nugroho staff 272 16 мая 09:16 coba3

-rw-r - r - @ 1 nugroho staff 11182 16 мая 13:29 прошивка.hex

drwxr-xr-x 4 nugroho Staff 136 15 мая 21:50 lcdNO

-rw-r - r - @ 1 nugroho Staff 10597 16 мая 15:19 main.hex

-rw-r-- r-- 1 nugroho Staff 8192 16 мая 15:27 original_firmware.bin

-rw-r - r-- 1 nugroho Staff 8192 16 мая 13:42 original_firmware.hex

-rw-r - r-- 1 nugroho staff 15784 11 мая 23:23 tn13Adef.inc

-rw-r - r - @ 1 nugroho staff 10785 28 февраля 2009 usbasp.atmega8.2009-02-28.hex

-rw-r - r - @ 1 nugroho staff 13248 16 мая, 14:05 usbasp.atmega8.2011-05-28.hex

Nugrohos-MacBook-Air: attiny13a nugroho $

это очень странно, а потом
 ugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -P usb -n - F 

avrdude: error: programm enable: target не отвечает. 1
avrdude: ошибка инициализации, rc = -1
avrdude: устройство AVR инициализировано и готово принимать инструкции
avrdude: сигнатура устройства = 0x000000 (повторная попытка)
avrdude: сигнатура устройства = 0x000000 (повторная попытка)
avrdude: сигнатура устройства = 0x000000
avrdude: Ура! Неверная подпись устройства.
avrdude: Ожидаемая подпись для ATtiny13 - 1E 90 07

avrdude done. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

вздох, мой usbasp в порядке
С другой стороны: исчезло предупреждение об обновлении прошивки при использовании main.hex, самокомпилированной прошивки 2009 года
######
ждать, ….
нашел другое решение из http://forum.arduino.cc/index.php?topic=262150.0 и http://forum.arduino.cc/index.php?topic=282330.0
 Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -B4 -n 

avrdude: установить частоту SCK на 187500 Гц
avrdude: устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0.00s

avrdude: подпись устройства = 0x1e9007

avrdude: safemode: предохранители исправны (H: FF, E: FF, L: 6A)

avrdude done. Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -P usb -B4 -U flash: w: coba3.s.hex

avrdude: set Частота SCK до 187500 Гц
avrdude: устройство AVR инициализировано и готово к приему инструкций

Чтение | #################################################################################################### | 100% 0.00s

avrdude: подпись устройства = 0x1e9007
avrdude: ПРИМЕЧАНИЕ: указана «флэш-память», будет выполнен цикл стирания
Чтобы отключить эту функцию, укажите параметр -D.
avrdude: чип стирания
avrdude: установить частоту SCK на 187500 Гц
avrdude: чтение входного файла «coba3.s.hex»
avrdude: входной файл coba3.s.hex автоматически определяется как Intel Hex
avrdude: запись флэш-памяти (34 байта ):

Письмо | #################################################################################################### | 100% 0.04s

avrdude: записано 34 байта флэш-памяти
avrdude: проверка флэш-памяти на соответствие coba3.s.hex:
avrdude: загрузить данные флэш-данных из входного файла coba3.s.hex:
avrdude: входной файл coba3.s.hex auto определяется как Intel Hex
avrdude: входной файл coba3.s.hex содержит 34 байта
avrdude: чтение данных встроенной флэш-памяти:

Чтение | #################################################################################################### | 100% 0,02 с

avrdude: проверка ...
avrdude: 34 байта флэш-памяти подтверждено

avrdude: safemode: предохранители исправны (H: FF, E: FF, L: 6A)

avrdude done.Спасибо.

Nugrohos-MacBook-Air: coba3 nugroho $

.

coba.s - PB0, PB1, PB2 подключен к светодиоду каждый. PB0 и PB всегда включены, в то время как PB2 мигает каждые 1 с.

.include "../tn13Adef.inc"

.org 0

init:

ldi r16,0b00000111

out DDRB, r16; PB2 как выход

sbi PORTB, 1

sbi PORTB, 0

цикл:

sbi PORTB, 2

таймер rcall

cbi PORTB, 2

таймер rcall

rjmp loop2:

rjmp таймер 9000 r16,0; это счетчики таймеров

ldi r17,0

ldi r18,5

timer2:

inc r16; выполнить 256 итераций

brne timer2

inc r17; сделать 256 раз

brne timer2

dec r18

brne timer2; сделать 5 раз

рет; возврат

мне на этот день хватит,

.

.

.

Вообще-то маловато (еще хочется с Tiny возиться: p)

Usbasp | Hackaday

Прошлой осенью [Кевин] хотел запрограммировать несколько новых AVR только для TPI, используя старый USBasp, который он носил в своей лаборатории. Обнаружив «странный информационный голод» и «форумы, заполненные неверной информацией и схемами», он решил исправить ситуацию и правильно задокументировать ситуацию. Он изучил детали и преуспел в перепрограммировании USBasp, хотя в конечном итоге купил второй.

Разработчики, использующие микроконтроллеры AVR, не испытывают недостатка в интерфейсах программирования - мы насчитываем как минимум пять различных методов: ISP / SPI, JTAG, TPI, PDI и UPDI. Мы не уверены, хорошо это или плохо, но так оно и есть. [Кевин] обнаруживает, что для конкретного семейства устройств Attiny, которое он использует, ATtiny20, TPI - единственный доступный вариант.

В то время как он обычно строит свои проекты на базе чипов ARM Cortex-M, [Кевину] потребовалась некоторая связующая логика, и он решил использовать ATtiny20, несмотря на его уникальные требования к программированию.Он отмечает, что цена ATtiny20, 0,53 доллара прошлой осенью, была дешевле, чем аналогичные логические элементы, в которых он нуждался. Этот конкретный чип также довольно мал - всего 3 мм в квадрате (20-контактный VQFN). Мы бы предпочли не использовать разные микроконтроллеры и цепочки инструментов на одной плате, но иногда удобство и экономичность направляют дизайн в этом направлении.

Если вы не знакомы с USBasp, наш собственный [Майк Щис] освещал сенсационную историю более десяти лет назад. А если у вас много свободного времени, откажитесь от всех этих красиво упакованных решений и запрограммируйте свои чипы, используя старый USB-концентратор и шлюз NAND 74HCT00, как описано в этом причудливом приеме, разработанном разработчиком Teensy [Полом Стоффрегеном].

При написании кода для семейства микроконтроллеров ATtiny, таких как ATtiny85 или ATtiny10, люди обычно используют один из двух методов: они либо добавляют поддержку чипа в Arduino IDE, либо взламывают выбранный им текстовый редактор и все делают. вручную. Плюс, конечно, есть отставшие, использующие Eclipse. Но [Уэйн Холдер] считает, что есть способ лучше.

Проект начался как простой способ для [Уэйна] запрограммировать ATtiny10 на C под Mac OS, но с тех пор превратился в кроссплатформенную интегрированную среду разработки (IDE) с открытым исходным кодом для программирования широкого спектра микросхем ATtiny на C, C ++ или сборка.Он не только объединяет редактор исходного кода и программатор, но даже включает в себя документацию для распространенных вариантов микросхем, включая блок-схемы и распиновку; что делает его настоящим универсальным магазином для взлома ATtiny.

Его IDE работает под управлением Java, включая OpenJDK, а [Wayne] предоставляет стабильный готовый исполняемый файл для тех, кто не хочет клонировать весь репозиторий GitHub. Он добавил цепочки инструментов GNU / AVR, хотя отмечает, что до сих пор тестирование ограничивалось Mac OS, и ему интересны отзывы пользователей Windows и Linux.Сборка выполняется либо с помощью GNU AVR-AS, ​​либо с помощью ассемблера собственной разработки, хотя последний в настоящее время ограничен ATTiny10.

Чтобы фактически поместить код в чип, IDE поддерживает использование Arduino в качестве программатора, а также специального оборудования, такого как BusPirate или USBasp. Если вы пойдете по пути Arduino, [Wayne] даже придумал небольшую плату адаптера, которую он предоставил через OSH Park, чтобы помочь разобраться с крошечными чипами.

ATtiny10 может иметь некоторую кривую обучения, но взамен это семейство крошечных микроконтроллеров предлагает невероятные возможности.Когда вы работаете с программируемым рисовым зерном, единственным ограничением является ваше собственное творчество.

[Робсон Коуто] недавно обнаружил, что ему нужен интерфейс MIDI для проекта, над которым он работал, но он не хотел покупать его, чтобы использовать его один раз; мы все были там. Будучи творческим молодым человеком, он решил придумать что-то, что не только использовало бы детали, которые у него были под рукой, но и могло быть выполнено за один день. Поистине хакер по нашему сердцу.

Поискав в Интернете, он нашел документацию по использованию микроконтроллера ATtiny в качестве интерфейса MIDI с использованием V-USB. Он решил, что не должно быть слишком сложно адаптировать этот проект для работы на одном из многих программистов USBASP, которые у него были, и приступил к работе над обновлением кода.

Первоначально написанный для ATtiny2313, [Робсон] сначала должен был изменить конфигурацию контактов, чтобы он работал на ATmega8 в USBASP, а также обновил реализацию USB-V до последней версии.После обновления кода он запрограммировал один из адаптеров USBASP вторым, соединив их вместе и поставив перемычку на разъем J2.

Он отсортировал программное обеспечение, но еще оставалось немного поработать с оборудованием. Чтобы обеспечить изоляцию MIDI-устройства, он собрал небольшую схему, используя оптоизолятор 6N137 и пару пассивных компонентов на перфорированной плате. Это некрасиво, но подходит прямо к разъему программирования на USBASP. Он мог бы запустить свой ЧПУ для печатной платы, но подумал, что для такой простой платы это немного перебор.

[Робсон] отмечает, что он не реализовал выход MIDI с помощью своего адаптера, но что код и микросхема вполне способны на это, если он вам нужен для вашего проекта. Поиск схемы для подключения к контакту TX программатора оставлен в качестве упражнения для читателя.

Если у вас нет USBASP в корзине деталей, мы уже видели очень похожий трюк, проделанный с клоном Arduino в прошлом.

Защитный ключ интернет-провайдера - очень распространенное оборудование на рабочем месте у производителей.Однако его потенциал как взломанного устройства обычно упускается из виду. В основе USBASP лежит ATmeg8L, и [Робсон] решил, что это скромное USB-устройство можно использовать в качестве интерфейса между его ПК и джойстиком SNES.

Контроллеру SNES требовалось три контакта для связи с хостом: часы, данные и защелка. В своем хакерском приеме [Робсон] подключает контроллер к интерфейсу ISP с помощью небольшого DIY-адаптера и программирует AVR с помощью библиотеки V-USB. V-USB - это программная USB-библиотека для небольших микроконтроллеров, которая в этом случае очень удобна.

[Робсон] довольно хорошо документирует весь процесс создания интерфейса, который включает код USB HID, а также последовательный протокол джойстика SNES. Его хак работает как в Windows, так и в Linux, и код доступен для загрузки на GitHub.

Простая реализация, подобная этому проекту, - отличная отправная точка для всех, кто хочет окунуться в пул DIY USB-устройств. Ветераны могут найти готовый джойстик, сделанный своими руками, больше в их переулке, и они также будут вдохновлены некоторыми пластическими техниками.

[Невен Боянов] говорит, что нет ничего особенного в Tinusaur, небольшой платформе для изучения и обучения радостям программирования AVR. Но если вы очень хотите глубже понять свою Arduino или хотите научить кого-нибудь основам, вы можете не согласиться с такой оценкой.

Tinusaur прост в сборке и содержит только компоненты, необходимые для работы ATTiny13 / 25/45/85 (в комплект входит ’85). [Neven] сэкономил место и память, отказавшись от USB-регулятора напряжения.В комплект входят дополнительное крепление для кнопочной ячейки и перемычка.

[Neven] продает доски и комплекты через сайт Tinusaur, или вы можете получить доску у нескольких сторонних поставщиков. На его сайте есть несколько проектов и полезные руководства по сборке и вождению вашего тинусавра. Недавно он запрограммировал его, чтобы играть в «Игру жизни» Конвея на светодиодной матрице 8 × 8. Если вам нужна сторона бассейна AVR с нулевым входом, вы можете запрограммировать ее в среде Arduino IDE. Однако будьте осторожны; они не полностью совместимы.


Проект, представленный в этом посте, является записью в The Hackaday Prize. Постройте что-нибудь потрясающее и выиграйте космическое путешествие или сотни других призов.

Ребята, вы уже устали от переработанных Arduinos? Обычно да, но [Рэй] только что выпустил SquareWear 2.0, и мы должны признать, что это довольно красивый дизайн.

Это обновление SquareWear 1.1, которое мы рассмотрели год назад. В этой версии использовался микроконтроллер 18F14K50 с крошечной единицей.6 ″ x 1,6 ″, и их легко можно было вшить в носимые устройства. Но после получения множества запросов на разработку новой платы на базе Arduino, [Ray] согласился и выпустил версию 2.0.

Новый SquareWear немного больше, его размеры составляют 1,7 ″ x 1,7 ″, но он обладает гораздо большей и более функциональной мощностью - просто посмотрите схему изображения выше! Единственная загвоздка в том, что у него на самом деле нет встроенного чипа USB-to-serial, поэтому [Рэй] смог получить плату такой маленькой и недорогой. Вместо этого он имитирует USB в программном обеспечении с помощью библиотеки V-USB.Этот метод намного медленнее, но все же работает. Для последовательной связи через порт USB используется встроенный загрузчик USBasp.

На плате также есть большие сквозные отверстия для размещения сшиваемых подушечек для булавок, что позволяет очень легко интегрировать их в ткань!

Для полного объяснения SquareWear 2.0 посмотрите видео после перерыва.

Читать далее «SquareWear 2.0 A Wearable Opensource Arduino» →

Серия микроконтроллеров

Atmel XMEGA представляет собой аккуратное маленькое оборудование; с очень быстрыми часами, множеством портов ввода-вывода, USB и до 8 портов UART, эти аккуратные маленькие микросхемы служат прекрасным мостом между AVR и PIC и очень мощными чипами ARM, выходящими на рынок.К сожалению, XMEGA не используют чрезвычайно распространенный программный заголовок ISP, который можно найти практически на каждой плате разработки AVR, что делает их невыносимыми для программирования. [Szu] в Польше придумал очень простой способ программирования этих чипов, при этом используя уже имеющееся у вас программное обеспечение.

В сборке

[Szu] используется несколько резисторов и диодов для разрыва соединения USBASP с интерфейсом PDI XMEGA. Что касается программного обеспечения, [Szu] написал обновление для прошивки USBASP, чтобы позволить ему программировать устройства PDI, а также имеет патч для AVRdude, позволяющий загружать прошивку из командной строки.

Очень крутая сборка, позволяющая создавать очень, очень мощные устройства, основанные на коде AVR, который вы уже написали.

Краткое руководство для программиста USBASP ICSP

USBasp - это адаптер ICSP (In Circuit Serial Programming), который позволяет устанавливать новые загрузчики и прошивки на распространенные микроконтроллеры AVR, например те, которые используются в Arduino-совместимых платах.

Плата, которую вы будете программировать, называется "целевой".

Характеристики платы

Для типичного использования вы можете оставить USBasp настроенным точно так, как он поставляется в пакете. Для определенных целей вам может потребоваться изменить некоторые из этих настроек.

Разъем Micro USB. Подключитесь к компьютеру с помощью прилагаемого кабеля.

Выбор целевого напряжения. USBasp поддерживает целевые платы, работающие от 5 В или 3,3 В. Большинство плат, совместимых с Arduino, работают от 5 В. Установите переключатель в положение, соответствующее плате, которую вы будете программировать.

Перемычка "Программа". Если вы закоротите эту перемычку, USBasp перейдет в специальный режим, в котором он не программист, а цель. Это позволяет вам обновлять прошивку на самом USBasp с помощью другого программатора.

Перемычка целевой мощности. С этой перемычкой USBasp будет подавать питание на цель через заголовок ICSP. Обычно это желательно. Однако, если цель получает питание независимо (например, через разъем постоянного тока или USB-соединение), вам следует удалить эту перемычку.

Целевой заголовок ICSP. Программный выход USBasp, который вы подключаете к ICSP-заголовку цели с помощью прилагаемого кабеля.

Джемпер "Медленные часы". Если вы закоротите эту перемычку, USBasp будет работать на более низкой скорости для максимальной совместимости с некоторыми целями. Обычно не требуется, если вы не программируете новые AVR (см. Ниже).

Светодиод состояния. Показывает состояние питания, записи и активности.

Подключение оборудования

1.Отключите целевую плату от других источников питания, если у вас нет особых требований к ее независимому питанию во время программирования.

2. Подключите USBasp к компьютеру с помощью прилагаемого USB-кабеля.

3. Подключите USBasp к целевой плате с помощью прилагаемого 6-жильного кабеля.

ПРЕДУПРЕЖДЕНИЕ: Обратите особое внимание на ориентацию кабеля. Вы увидите, что на одной стороне кабеля есть красная полоса, указывающая, какой конец является контактом 1. USBasp имеет точку рядом с заголовком ICSP на конце контакта 1, а на целевой плате также должна быть маркировка рядом с контактом. 1.Подключите кабель так, чтобы сторона с красной полосой была ближе всего к контакту 1 на USBasp и на мишени. Для большинства мишеней это станет естественным, если вы положите доски так, чтобы они смотрели на вас, как показано ниже.


Драйверы для Windows

Пользователи Linux и OS X могут пропустить этот раздел (хотя, если вы пользователь Linux, обязательно прочтите раздел «Разрешения в Linux» внизу этой страницы).

Windows требует универсального драйвера USB для связи с USBAsp.Инструмент под названием Zadig упрощает установку этого драйвера.

  1. Отключите USBasp.
  2. Загрузите Zadig с http://zadig.akeo.ie/. Обратите внимание, что существуют отдельные версии для Windows XP или более новых версий Windows.
  3. Запустите Zadig, а затем подключите USBasp. Отмените все всплывающие диалоговые окна Windows.
  4. Настройте диалог Zadig следующим образом, проверьте выделенные поля:

    • «Usbasp» выбран в главном раскрывающемся списке (он должен появиться автоматически, когда вы подключаете USBasp.Если вы не видите его в списке, выберите «Список всех устройств» в меню «Параметры» в Zadig.
    • libusb-win32 в качестве типа драйвера (используйте маленькие стрелки вверх / вниз, чтобы выбрать эту запись.)

  5. Нажмите «Установить драйвер» и дождитесь завершения установки драйвера.
  6. Вы закончили с Zadig, пора использовать USBasp!

Использование из Arduino IDE

Важное примечание: В отличие от многих других плат и программаторов, USBasp не отображается как последовательный порт USB.Поэтому порт не указан в разделе «Инструменты> Последовательный порт» в Arduino IDE или в других местах. Это нормально.

Установка нового загрузчика

IDE Arduino включает загрузчики для различных поддерживаемых плат. Подключите компьютер, USBasp и цель, как показано выше, затем запустите IDE и используйте следующие пункты меню.

1. Выберите Инструменты> Доска и выберите тип платы, который соответствует вашей цели.

2. Выберите Инструменты> Программатор и выберите «USBasp» в качестве типа программатора.

3. Выберите Инструменты > Записать загрузчик . Затем IDE Arduino установит загрузчик на вашу целевую плату.

Установка эскиза

Обычно скетчи устанавливаются через порт USB на вашем Arduino, но вы также можете установить их напрямую, используя USBasp, который обходит загрузчик и USB-соединение. Открыв эскиз, используйте следующие пункты меню.

1. Выберите Инструменты> Доска и выберите тип платы, который соответствует вашей цели.

2. Выберите «Инструменты »> «Программатор » и выберите « USBasp » в качестве типа программатора.

3. Выберите Файл> Загрузить с помощью программатора . Затем IDE Arduino скомпилирует и загрузит ваш эскиз на целевую плату.

Использование из командной строки

Средство командной строки avrdude также можно использовать для программирования AVR. Это более сложный инструмент, чем программирование через IDE Arduino, но гораздо более гибкий.

Аргумент программиста для использования avrdude с USBasp - -c usbasp .

Вы можете установить avrdude для Windows как часть пакета WinAVR или для OS X как часть AVR CrossPack. Пользователи Linux обычно могут установить его как часть системы управления пакетами своего дистрибутива.

Например, чтобы использовать avrdude для чтения статуса ATMega328P на плате Freetronics Eleven:

  avrdude -p m328p -c usbasp -v  

Инструменты графического программирования

Для автономных инструментов программирования на основе графического интерфейса пользователя в Windows, ознакомьтесь с Khazama AVR Programmer или eXtreme Burner - AVR.eXtreme Burner также работает в Linux.

Программирование новых AVR

По умолчанию USBasp программирует цель с «тактовой частотой программирования» 375 кГц. Это обеспечивает быстрое программирование, но работает только в том случае, если AVR chp настроен на тактовую частоту не менее 1,5 МГц.

Совершенно новые микросхемы AVR обычно поставляются с заводскими настройками с внутренней тактовой частотой 1 МГц. Это устанавливается как часть «предохранителей» внутри микроконтроллера. Если вы используете IDE Arduino, она перепрограммируется для использования внешнего кристалла 16 МГц при загрузке загрузчика Arduino.

Симптомы попытки запрограммировать AVR с чрезмерно быстрым программированием часов такие же, как если бы AVR вообще не был подключен:

  avrdude: ошибка: включение программы: цель не отвечает. 1
avrdude: инициализация не удалась, rc = -1
         Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
         этот чек.  

Эту проблему можно решить двумя способами.

Установить перемычку «Медленные часы»

Это лучший вариант, если вы используете Arduino IDE для программирования прошивки на новые AVR.

Перемычка через перемычку медленной тактовой частоты снижает тактовую частоту программирования до 8 кГц, что достаточно медленно для AVR, работающих на частоте всего 32 кГц.

Вы можете установить перемычку в два отверстия перемычки, или, если вы используете ее только изредка, вы можете обойтись, просто используя кусок проволоки или даже пару пинцета!

Установить часы в программе

Это лучший вариант, если вы используете avrdude в командной строке. Опция Avrdude -B позволяет вам установить тактовую частоту программирования из программного обеспечения, перемычка не требуется!

Опция -B 4 устанавливает скорость программирования 187.5 кГц, все еще быстро, но достаточно медленно для нового AVR на 1 МГц.

Например, чтобы прочитать конфигурацию нового ATTiny85:

  avrdude -p t85 -B 4 -c usbasp -v  

Если вам нужны еще более медленные часы программирования, просто продолжайте увеличивать -B . Максимальный -B 64 дает программируемую тактовую частоту 8 кГц, как если бы была установлена ​​перемычка «медленной тактовой частоты».

Обратите внимание, что -B полностью игнорируется, если установлена ​​перемычка «медленных часов».

Разрешения в Linux

Пользователи

Linux могут столкнуться с ошибкой типа « ошибка отправки контрольного сообщения: операция не разрешена » при попытке использовать USBAsp. Это связано с тем, что по умолчанию обычные пользователи не имеют доступа к USB-устройствам.

Временный обходной путь - запустить операцию от имени пользователя root с помощью sudo или su. Гораздо лучшее решение - сообщить Linux, что вы хотите, чтобы всем пользователям был разрешен доступ к USBAsp. Это делается путем создания правила udev. Особенности создания правил udev немного различаются в зависимости от того, какой дистрибутив Linux вы используете, однако обычно существует каталог / etc / udev / rules.d , который содержит файлы с настраиваемыми правилами. От имени пользователя root создайте в этом каталоге новый файл с именем « usbasp.rules » со следующей единственной строкой содержимого в нем:

ПОДСИСТЕМЫ == "usb", ATTRS {idVendor} == "16c0", ATTRS {idProduct} == "05dc", MODE = "0666"

Затем перезапустите службу udev, выполнив такую ​​команду:

sudo /etc/init.d/udev перезапуск

Программирование AVR с помощью USBasp на Mac - Аарон Эйх

Некоторое время назад я одолжил свой надежный USBTinyISP другу, и было легче найти альтернативу, чем согласовывать графики.Поэтому я купил USBasp - еще один тип программатора с открытым исходным кодом для AVR. Я столкнулся с рядом проблем, заставляя его работать, потому что в Интернете очень много вариаций (разбросанных на многие годы). Итак, вот несколько полезных советов.

Различные проблемы, которые я видел:

предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp.
Когда avrdude пытается запрограммировать контроллер, он пытается согласовать тактовые частоты, чтобы все было проще. Когда это не удается, он будет жаловаться, что не работает, и вам следует обновить прошивку.Это предупреждение, а не ошибка. Вероятно, вам не нужно обновлять прошивку. Если вы действительно хотите обновить прошивку, вам понадобится другой программист для этого. Эту ошибку можно игнорировать.

Я слышал рекомендацию обновить драйверы. Если вы работаете на Mac, вам не нужен драйвер. Вы можете быстро проверить, видит ли ваш Mac ваш USBasp. Откройте приложение «Информация о системе» (в / Applications / Utilities или из пункта меню « Об этом Mac» в меню Apple) и щелкните по USB в разделе «Оборудование».Если вы можете найти usbasp, ваш компьютер может видеть вашего программиста. Следовательно, проблема, скорее всего, в вашем чипе.

ошибка: включение программы: цель не отвечает. 1

AVRdude не получает ответа от микросхемы. Это означает, что у вас либо не подключено правильно , либо ваш чип говорит слишком быстро. Мне удалось столкнуться с обоими.

Во-первых, у меня что-то было неправильно подключено. Если вы выполните поиск 10-контактный разъем ISP , вы получите много изображений и сообщений о том, как подключить 10-контактный разъем.Проблема с большинством из них в том, что они описывают штекерный соединитель. Не раз я менял булавки по горизонтали.

Вот изображение моего кабеля:

Обратите внимание, что выемка находится с правой стороны. Напоминаем также, что в отличие от подключения устройства SPI, где MOSI переходит к MISO , при подключении программатора вы подключаете MOSI к MOSI и MISO к MISO

Однажды я возился с предохранителями.Думал, что все правильно настроил, но видимо нет. Все, что я получил от программиста, это , цель не отвечает. Это приводило в бешенство.

По прихоти (следуя рекомендациям, приведенным здесь), я подключил кристалл 16 МГц и пару конденсаторов 22 пФ к контактам кристалла на моем микроконтроллере.

Чудом я снова смог разговаривать со своим микроконтроллером. Что-то, что я сделал, испортило предохранители. Я действительно не знаю что, потому что я только помню, как пытался выключить предохранитель CKDIV8 .Резервное копирование, чтобы разогнаться, мои предохранители читаются как нечто иное. Я починил их и вернулся к работе.

Наконец, я нашел приложение под названием AVRFuses , написанное Джейсоном фон Ниедой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *