Загрузка программы на ATmega2560

MagisterLudi
Offline
Зарегистрирован: 25.07.2017

Добрый день!
Возникла острая необходимость загрузить код, написанный в ArduinoIDE для Arduino Mega 2560 на ядро ATmega2560.
По простоте душевной надеялся загрузить через нулевой последовательный порт ядра по средством UART-USB адптера и программы SinaProg (nакже эксперементировал с загрузской через ArduinoIDE). Ничего не вышло... (ядро не ответчает, 5В куда нужно давал, резет перед загрузкой делал). Подобный способ прошивки жизнеспособен? Если нет, подскажите, пожалуйста, реалистичные методы.

Заранее спасибо!
 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

В новом микроконтроллере нет загрузчика (bootloader), поэтому загрузить через UART не получится. Нужен программатор (например USBasp) или вторая ардуина со скетчем эмулятора программатора (ArduinoISP). Скетч загружается так: сначала выбрать программатор в меню "Инструменты" - "Программатор". Затем прошить через меню "Скетч" - "Загрузить через программатор".

P.S. ATmega2560 - это микроконтроллер, а не ядро.

MagisterLudi
Offline
Зарегистрирован: 25.07.2017

Спасибо за ответ! Подскажите, пожалуйста, загружать скетч на микроконтроллер необходимо чере SPI или можно через UART?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

через SPI можно загрузить всегда... если МК не защищен от записи.

А другими способами - только, если в МК записана специальная программа - бутлоадер.

Так понятно? Как записать бутлоадер вам уже объяснили.

MagisterLudi
Offline
Зарегистрирован: 25.07.2017

Загрузил на Arduino Mega 2560 пример ArduinoISP; подключил к выходам меги MOSI(11), MISO(12), SCK(13) аналогичные выходы Atmega2560; подал на Atmega2560 питание; в ArduinoIDE в качестве загрузчика выбрал Arduino as ISP; нажал Скетч - Загрузить через программатор и одновременно сделал Ресет МК; получил сообщение об ошибке: avrdude:

Yikes!  Invalid device signature.

         Double check connections and try again, or use -F to override
         this check.
 
Произошла ошибка при загрузке скетча
 
Что не так? Подскажите, пожалуйста.
 
п.с. Сигнатуры их файла avrdude.conf и даташита на МК сверил.
wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Файл-Настройки-Показать подробный вывод

Отметь: Загрузка. Читай, что пишут ;). Возможно сам поймешь, что не так.

Кстати, непонятно, зачем "ресет" нажимал, а не подключил как положено.

MagisterLudi
Offline
Зарегистрирован: 25.07.2017
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch
 
         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
 
         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 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 = 0x000000 (retrying)
 
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0x000000 (retrying)
 
Произошла ошибка при загрузке скетча
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.
 
 
avrdude done.  Thank you.
 
 
 
Все сигнатуры 0, не видет МК?
wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Да, ты где-то ошибся, проверяй себя, если есть еще ардуинка - попробуй с ней.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

wdrakula пишет:

если МК не защищен от записи.

чем МК можно защитить от записи? - С-400, йопта?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Клапауций 112 пишет:

wdrakula пишет:

если МК не защищен от записи.

чем МК можно защитить от записи? - С-400, йопта?

фьюзами. перешить можно только высоковольтным программатором.

Дурака валяешь?

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

wdrakula пишет:

перешить можно только высоковольтным программатором.

если, "можно" то "МК не защищен от записи" и земля-сука круглая.

*фьюзов защиты от записи не существует - есть фьюзы защиты от считывания.

 

strarbit
Offline
Зарегистрирован: 12.06.2016

Клапауций 112 пишет:

wdrakula пишет:

перешить можно только высоковольтным программатором.

если, "можно" то "МК не защищен от записи" и земля-сука круглая.

*фьюзов защиты от записи не существует - есть фьюзы защиты от считывания.

Можно тоже от записи,  записать фьюз RSTDISBL, пин Reset будет использоваться, как пин ввод/вывод. Бутлоадер arduino и программирование SPI будут отключены

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

strarbit пишет:

Можно тоже от записи,  записать фьюз RSTDISBL, пин Reset будет использоваться, как пин ввод/вывод. Бутлоадер arduino и программирование SPI будут отключены

можно спрятать контроллер в сейф.

strarbit
Offline
Зарегистрирован: 12.06.2016

Клапауций 112 пишет:

strarbit пишет:

Можно тоже от записи,  записать фьюз RSTDISBL, пин Reset будет использоваться, как пин ввод/вывод. Бутлоадер arduino и программирование SPI будут отключены

можно спрятать контроллер в сейф.

Аха, конечно, можно)))))), как красота перемигивания светодиодов?

https://youtu.be/67A97_f_RL0

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

MagisterLudi пишет:

Загрузил на Arduino Mega 2560 пример ArduinoISP; подключил к выходам меги MOSI(11), MISO(12), SCK(13) аналогичные выходы Atmega2560; 

На меге, куда ты ISP загрузил, выводы SPI несколько другие (50,51,52).  Шей через UNO.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Судя по сообщениям Мега2560 не откликается. Или не туда воткнули контакты или не надежное соединение. У меня так было. В целом щьется крайне легко другой дунькой, прошивал через Нано + переходник USB-UART, вручную доразведя ногу на Reset "поверх" и Arduino as ISP .. шьет, лампочками моргает - на ура. Жаль что обе Меги2560 присланные косоглазыми и криворукими продаванами оказались с битым флешем .. одна по адресам 0х06с0 - 16 байт не переустанавливается 5 и 7 бит, а другая с адреса 0x16c0 и тоже 16 байт битых.. :(

MagisterLudi
Offline
Зарегистрирован: 25.07.2017
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch
 
         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
 
         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 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 = 0xffffff (probably .reduced_core_tiny) (retrying)
 
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)
 
Произошла ошибка при загрузке скетча
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0xffffff (probably .reduced_core_tiny)
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.
 
 
avrdude done.  Thank you.
 
 
Поменял пины для SPI с учётом сообщения DetSimen. Поменялось значение сигнатуры, это о чём-то может сказать?
Соединение проверил, кроме МЕГИ других ардуин нет.
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Здесь всё с картинками:

http://www.gammon.com.au/forum/?id=11635

ATmega2560   сигнатура должна быть 1e9801

http://www.avrfreaks.net/comment/821330#comment-821330

 

IDem
Offline
Зарегистрирован: 09.05.2018

Добрый вечер! 

Столкнулся с проблемой при работе с atmega 2560. Суть в том, что при установке на плату и считывании калибровочной ячейки и фьюзов USBasp-ом, все хорошо, но при прошивке фьюзов на работу от внешнего резонатора, выдает ошибку:

Cформированная командная строка:
avrdude.exe -p m2560 -c usbasp -P usb -U calibration:r:calibration.hex:r
 
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: error: programm enable: target doesn't answer. 1 
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.
 
avrdude.exe done.  Thank you.
 
Попробовал переставить на ардуинку, там все читается. Как понимаю, где-то косяк с резонатором, хотя может еще в чем...
Посмотрите, пожалуйста! Может кто подскажет, в чем может быть косяк? Смутило еще то, что на всех схемах кварц размещается по такой схеме, а при прозвонке дорожек на ардуинке, ноги кварца идут через конденсаторы, а не так, как на схеме.