USBasp и Mega2560

Решил я через 7 лет знакомства с форумом заказать себе программатор USBasp, получил, для испытания есть только Mega2560, прошиваю через программатор Блинк из примеров, не работает, прошиваю загрузчик, и через загрузчик прошиваю Блинк, работает, прошиваю снова через программатор - не работает!
Как тут не быть дураком?

1 лайк

Стандартно: в какой среде осуществлялось? Приведите сообщения компилятора при загрузке с usbasp. Какую ошибку выдаёт?

Тем же программатором?

да, программатор USBasp, зашивает без ошибок, пришлось драйвера обновить, чтобы заработал, при загрузке загрузчика диод мигает, это видимо в новой версии загрузчика, изменяю параметры блинка заливаю штатно через компорт, блинк соответствует, заливаю этот же блинк через IDE - Скетч-загрузить через программатор, загружает, но блинк не работает, горит постоянно

А, так если программатор нормально заливает без IDE (в первом посте про это не было), то либо неправильно выбран тип программатора в IDE, либо это программатор неправильно сконфигурирован в файле programmers.txt. Смотрите, разбирайтесь, найдёте - чудес не бывает.

Либо не верно лапа для мигания указана в программе…

нет, всё делаю через IDE, по пунктам среды IDE:

  1. Выбрал программатор - USBasp
  2. Из примеров выбрал - BlinkWithoutDelay
  3. Заливаю: Скетч - Загрузить через программатор (плата подключена через ISP)
  4. Заливает без ошибок но Не работает!
  5. Заливаю BOOT: Инструменты - Записать загрузчик
  6. Заливает без ошибок, светодиод мигает
  7. Переключаю на компорт, программатор (ISP разъём) отсоединён
  8. Заливаю: Загрузка (стрелочка на панели IDE)
  9. Работает
  10. Подключаю через ISP
  11. Заливаю: Скетч - Загрузить через программатор (плата подключена через ISP)
  12. Заливает без ошибок но Не работает! (горит постоянно)

А если долго подержать включенной плату?

без разницы!

Вот лог загрузки через программатор:

Спойлер
Скетч использует 1468 байт (0%) памяти устройства. Всего доступно 253952 байт.
Глобальные переменные используют 15 байт (0%) динамической памяти, оставляя 8177 байт для локальных переменных. Максимум: 8192 байт.
E:\arduino-1.8.19\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CE:\arduino-1.8.19\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega2560 -cusbasp -Pusb -Uflash:w:C:\Temp\arduino_build_995836/BlinkWithoutDelay.ino.hex:i 

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

         System wide configuration file is "E:\arduino-1.8.19\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
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: auto set sck period (because given equals null)
avrdude: reading input file "C:\Temp\arduino_build_995836/BlinkWithoutDelay.ino.hex"
avrdude: writing flash (1468 bytes):

Writing | ################################################## | 100% 0.73s

avrdude: 1468 bytes of flash written
avrdude: verifying flash memory against C:\Temp\arduino_build_995836/BlinkWithoutDelay.ino.hex:
avrdude: load data flash data from input file C:\Temp\arduino_build_995836/BlinkWithoutDelay.ino.hex:
avrdude: input file C:\Temp\arduino_build_995836/BlinkWithoutDelay.ino.hex contains 1468 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.40s

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

avrdude done.  Thank you.


Естественно, после записи через программатор перестаёт шиться через ком порт, загрузчик то тю-тю

Ничего не понял. В прошлый раз я понял так: если залить программатором безо всякого IDE (программой avrdude), то работает. Если нет, то попробуйте так и скажите, работает или нет.

1 лайк

Значит заливает скетч без загрузчика. А потом МК обращается туда, где должен быть загрузчик, и натыкается на пустоту ))

Можешь подправить фьюзы, должно заработать

2 лайка

Не знаю с чем связано, но те свистки, которые заказывал у китайцев, сначала пришлось перешивать другой прошивкой

У меня два свистка, перепрошивка не понадобилась ни одному

1 лайк

У меня так же. Третий перешил последней пошивкой, и пожалел об этом. Начались непонятные сбои. Обратно вернуть не удалось, не нашел китайской.

1 лайк

А я заранее бэкап сделал и откатился!

А Ардуино ИДЕ в списке поддерживает stk500?

Я сколько не пытался бэкапить прошивки с китайских устройств - ни разу не вышло. Каку Вас то получилось???

К сожалению не подумал об этом , понадеялся на дату.