Прошивка hex файлов при помощи Arduino и SinaProg

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

В первом сообщении будет только ссылка на видео ролик:

https://www.youtube.com/watch?v=cVogb2HtLO4

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

Итак в двух словах что за видео, там я рассказываю как я щью ATmega8 и ATtiny13 hex файлы, изменяю фьюзы и рассказываю немного про прожку SinaProg, которая к стати является графической оболочкой avrdude(AVRЧувака).

Пока что-то подготую для второго сообщения, под "что-то" текстовую часть видео, то есть ту же информацию только в другом виде, как сказал Гагарин, поехали...

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Взято из моего блога:

ВНИМАНИЕ, пробовал зашить в китайский Arduino Pro Mini загрузчик от версии на 8 МГц 3.3 В после чего я так и не смог нормально прошиться обратно, ардуино беспомочно мигала светодиодом и никание "Записать загрузчик" не помогали.

Одного прекрасного дня я наткнулся на отличный проект на ATtiny13, но увы автор выгрузил в сеть только hex файл и схему и конечно я так и не смог его поюзать. Меня этот вопрос мучал всё больше и больше и тут я случайно наткнулся на одно видео в сети, где автор при помощи ардуино прошил другой микроконтроллер имея только hex файл, ну и схему разумеется, именно он мне подсказал что мол юзаю SinaProg но с Arduino'вскими файлами.

 

Загуглив на тему SinaProg я скачал SinaProg 2.1.1.RUS но он работать отказывался с ардуино, потому я закинул парочку тройку файлов из Arduino IDE в папку SinaProg 2.1.1\data\ и всё заработало.

 

Итак пройдёмся коротко по софту, вот скрин:

 

 

Fsoyln0ZJDw.jpg

 

 

В блоке Hex-file выбираем hex или eep(первый прошивка второй содержимое энергонезависимой памяти).

 

А той части где кнопка ">" мы можем видеть всякие сообщения, типа OK, прошилось, или ERROR, сама же кнопка ">"открывает лог.

 

В блоке Flash есть кнопки:

 

Program - программирование hex-файла( возможно когда выбран Hex-file);

Verify - проверка целебности прошивки что в микроконтроллере и hex-файла, их сравнение;

Read - считать hex-файл.

 

С блоком EEPROM всё аналогично.

 

Далее блок Device, тут можно выбрать нужный микроконтроллер, вот весь список поддерживаемых( не обращайте внимания цифры и буквы после названий микроконтроллеров, список выдрал из файла Device.txt который лежит в папке SinaProg 2.1.1\data\):

 

 

  • AT90CAN128 
  • AT90CAN32
  • AT90CAN64
  • AT90PWM2
  • AT90PWM2B
  • AT90PWM3
  • AT90PWM3B
  • AT90USB1286
  • AT90USB1287
  • AT90USB162
  • AT90USB646
  • AT90USB647
  • AT90USB82
  • AT90s1200
  • AT90s2313
  • AT90s2323
  • AT90s2333
  • AT90s2343
  • AT90s4414
  • AT90s4433
  • AT90s4434
  • AT90s8515
  • AT90s8535
  • ATmega103
  • ATmega128
  • ATmega1280
  • ATmega1281
  • ATmega1284P
  • ATmega128RFA1
  • ATmega16
  • ATmega161
  • ATmega162
  • ATmega163
  • ATmega164P
  • ATmega168
  • ATmega169
  • ATmega2560
  • ATmega2561
  • ATmega32
  • ATmega324P
  • ATmega325
  • ATmega3250
  • ATmega328P
  • ATmega329
  • ATmega3290
  • ATmega3290P
  • ATmega329P
  • ATmega48
  • ATmega64
  • ATmega640
  • ATmega644
  • ATmega644P
  • ATmega645
  • ATmega6450
  • ATmega649
  • ATmega6490
  • ATmega8
  • ATmega8515
  • ATmega8535
  • ATmega88
  • ATtiny11
  • ATtiny12
  • ATtiny13
  • ATtiny15
  • ATtiny22 2343  
  • ATtiny2313
  • ATtiny24
  • ATtiny25
  • ATtiny26
  • ATtiny261
  • ATtiny44
  • ATtiny45
  • ATtiny461
  • ATtiny84
  • ATtiny85
  • ATtiny861
  • ATtiny88
  • ATxmega64A1
  • ATxmega128A1
  • ATxmega128A1D
  • ATxmega192A1
  • ATxmega256A1
  • ATxmega64A3
  • ATxmega128A3
  • ATxmega192A3
  • ATxmega256A3
  • ATxmega256A3B
  • ATxmega16A4
  • ATxmega32A4
  • ATxmega64A4
  • ATxmega128A4

Как видите есть всё популярные микроконтроллеры фирмы ATmel, в частности ATmega328P, ATmega8, ATtiny13, ATtiny2313 и всякие другие.

 

 

Fsoyln0ZJDw.jpg

 

 

Далее - кнопка Search(та что сырчь на видео), если её нажать то программа попытается прочитать сигнатуры того микроконтроллера который подключен к программатору, проще говоря поищет микроконтроллер. Потом может ответить OK,  или ERROR в информационном блоке, если всё норм или когда нет соответственно.

 

В блоке Fuses есть предустановки для ATmega8 для работы на разных частотах, но увы только для ATmega8 и ATmega32, можно добавить в файле Fuse.txt (который лежит в папке SinaProg 2.1.1\data\).

 

Есть кнопка Program - записать предустановки, смотри на абзац выше.

 

А так же Advanced... лихая кнопка, после её нажатия можно увидеть вот такое окно:

 

dMwqgBS63Ss.jpg

 

Так тааак, что мы тут видим...

Device signature - какие-то циферки, я так понял это идентификатор микроконтроллера, по нём программа опознаёт что за микроконтроллер ты ей суёшь.

 

Информационная часть, всё как выше.

 

Чуть ниже идут фьюзы, если не понимаешь тут ничего то не советую что-то изменять, а если уж зачешется то не забывай их сначала считать кнопкой Read, к стати записать фьюзы можно кнопкой Write, ну ты понял, кнопка Chip Erase стирает микроконтроллер, как ты форматируешь флешку к примеру, но фьюзы не устанавливает в стандартные, так что не забывай об этом.

 

Пару слов о фьюзах, фьюзы это такие как бы тонкие подстройки микроконтроллера, то частоту поднять то убавить, то вкл/выкл nактивирование от внутренней RC цепочки то ещё что-то, вообщем туда лезть только в крайнем случае иначе можно залочить(нашаманить так что перестанет работать) микроконтроллер, и без Atmega fusebit doctor уже никак, решай сам.

 

На ещё в прибавок калькулятор фьюзов http://homes-smart.ru/fusecalc/ но если залочишь микроконтроллер я не виноват, если что-то не ясно пиши.

 

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

 

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

 

Fsoyln0ZJDw.jpg

 

Итак, последний блок - Programmer, тут выбирается тип программатора, если юзаешь Arduino в качестве программатора то ставь всё как у меня на скрине, только не COM19, эт у меня такой, у тебя будет другой, в любом случае точно не COM1, первый это системный, на ноуте может не быть а на компах как правило есть, особенно тех что постарше. Можешь юзать и другой программатор, к примеру USBASP, только выбери его в списке и больше ничего не изменяй. Полный список поддерживаемых программаторов:

  • Gromov
  • USBtiny
  • ALF
  • Arduino
  • AT ISP
  • AVR109
  • AVR910
  • AVR911
  • AVRISP
  • AVRISP 2
  • AVRISP mkII
  • AVRISP v2
  • Bascom
  • Blaster
  • BSD
  • Butterfly
  • C2N232I
  • DAPA
  • DASA
  • DASA 3
  • Dragon_DW
  • Dragon_HVSP
  • Dragon_ISP
  • Dragon_JTAG
  • Dragon_PP
  • DT006
  • ERE-ISP-AVR
  • Frank-STK200
  • Futurlec
  • JTAG 1
  • JTAG 1Slow
  • JTAG 2Slow
  • JTAG 2
  • JTAG 2Fast
  • JTAG 2ISP
  • JTAG 2dW
  • JTAG mkI
  • JTAG mkII
  • MIB510
  • pAVR
  • Picoweb
  • Pony-STK200
  • ponyser
  • SI Prog
  • SP12
  • STK200
  • STK500
  • STK500 HVSP
  • STK500 PP
  • STK500 v1
  • STK500 v2
  • STK600
  • STK600 HVSP
  • STK600 PP
  • USBasp
  • Xil

Есть твой? USBasp радует глаз.

 

Чтобы можно было шить/читать/изменять фьюзы/убить микроконтроллер при помощи Arduino предварительно нужно зашить в ардуинку ArduinoISP подключив всё как я говорил на видео, писал тут  и тут.

 

Тааак что там ещё, у меня было такое что тиня13-я перестала шиться и реагировать на попытки её программирования после того как я попробовал запустить её на частоте 128 kHz, откопал где-то вот такой, слегка модифицированный код http://pastebin.com/Aw5BD0zy ArduinoISP который заставляет прошивку/изменение фьюзов происходить медленнее в несколько раз и может ещё какая-то магия, не разбирался, честно.

 

Ладно, не буду больше томить, вот ссылка на прогу:

 

https://vk.com/doc256435878_344306532

 

 

Калькулятор фьюзов, почётное упоминание:

 

http://homes-smart.ru/fusecalc/

 

Маленько изменён скетч ArduinoISP иногда может помочь при ЧП, а иногда нет:

 

http://pastebin.com/Aw5BD0zy
Пробуй, отписывайся. 

 

 

Как прошивать и кодить ATtiny13/ATtiny13A при помощи Arduino:

 

http://arduino.ru/forum/programmirovanie/attiny13a-101-primenenie

 

Ну что, вроде как всё, как говорил один известный персонаж из шедеврального советского мультика "Ты... это, заходи, если что" (с) Жил был пёс.

Заходи, делись мыслями, может какие-то будут предложения или ещё что?

birdtlt
Offline
Зарегистрирован: 19.01.2015

Привет!

Извини, но я что-то не могу найти какие именно файлы нужно скопировать из IDE в SinaProg 2.1.1\data\

HWman пишет:

Загуглив на тему SinaProg я скачал SinaProg 2.1.1.RUS но он работать отказывался с ардуино, потому я закинул парочку тройку файлов из Arduino IDE в папку SinaProg 2.1.1\data\ и всё заработало.

 

 

Полистал форумы, там где были ссылки - уже нет доступа к файлам.

Повтори пжл.

Спасибо.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

birdtlt пишет:

Полистал форумы, там где были ссылки - уже нет доступа к файлам.

Повтори пжл.

Спасибо.

Привет. avrdude.conf avrdude.exe и ещё какие-то, уже не помню...

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

cпс за полезную темку.

как для новичка - самое оно.

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

не желающим парить мосг странным:

avrdude -p atmega8 -c usbasp -U flash:w:blink.hex

 

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

Клапaуций, можно подробнее? а то я тут пытаюсь понять как залить *.hex в ATiny13 

купил программатор, начал читать по теме(пока посылка идёт) и наткнулся на возможность Ардуины.

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

ну, это у тебя программатор usbasp

вот тебе дудка - в архиве найдёшь рабочий файлег примеров cmd.txt, с помощью которых я сам себе шил, разберёшся на примерах.

запускаешь командную строку (CMD) из папки с дудкой, копируешь адаптированную строку в окно консоли жмёшь ентер - всё.

https://dl.dropboxusercontent.com/u/3671035/avrdude-5.11-Patch7610.rar

*в файл avrdude.conf можно заглянуть - там интересное написано.

Radjah
Offline
Зарегистрирован: 06.08.2014

Есть еще вот такая штука http://khazama.com/project/programmer/

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

Radjah пишет:

Есть еще вот такая штука http://khazama.com/project/programmer/

ну, оно и есть обёртка дудки - some avrdude GUI, но нахрена? потом будете спрашивать, как я так фьюзы не так прошил.

GUI для слабаков!

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

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

...
GUI для слабаков!


Админь.

Radjah
Offline
Зарегистрирован: 06.08.2014

Оно опять свои какахи пиарит :(

Интересно, бот на ардуине работает или по-быдлячьи на пыхе? :)

johnl
Offline
Зарегистрирован: 30.01.2017

Я тоже не сразу разобрался вот еще один ролик на эту тему https://www.youtube.com/watch?v=GBHmHq_TqMs там тож через arduino pro mini шьют hex файлы.

knight4roads
Offline
Зарегистрирован: 10.08.2018

Всем привет! подскажите почему не заливается hex ?

в качестве программатора китайская arduino uno, оболочка программы - sinaprog? взятая отсюда же.

программа говорит что programming flash OK, и при этом выдает что 0 bytes of flash written

при этом eeprom записывается нормально

вот лог

avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9307
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 "C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex"
avrdude: input file C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex auto detected as Intel Hex
awritivrdude: ng flash (0 bytes):
avrdude: 0 bytes of flash written
avrdude: verifying flash memory against C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex:
avrdude: load data flash data from input file C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex:
avrdude: input file C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex auto detected as Intel Hex
avrdude: input file C:\Users\Ðîìàí\Desktop\Termometr-x2_16x2_ATMega8.cpp.hex contains 0 bytes
avrdude: reading on-chip flash data:
avrdude: verifying ...
avrdude: 0 bytes of flash verified
 
avrdude: safemode: Fuses OK
 
avrdude done.  Thank you.
 
заранее спасибо!
 
DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

эта строка 

Termometr-x2_16x2_ATMega8.cpp.hex contains 0 bytes

ни о чем не говорит?

b707
Онлайн
Зарегистрирован: 26.05.2017

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

DedSimen - c возвращением!

knight4roads
Offline
Зарегистрирован: 10.08.2018

Вообще нет) я чайник) типа сам файл пустой? но он не пустой, 13 байт в нем есть. да и я этот файл прошивал - у меня есть рабочий термометр с этой прошивкой. опять же с другими hex  такая же история.

knight4roads
Offline
Зарегистрирован: 10.08.2018

b707 пишет:

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

DedSimen - c возвращением!

программу писал не я, и еще раз повторюсь - hex не пустой, и рабочий. и проблема не только с этим, но и с другими

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

b707 пишет:

DedSimen - c возвращением!

я пока с планшета, во вторник домой отпустют.   Ну хоть капельница теперь текст набирать не мешает

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

knight4roads пишет:

13 байт в нем есть.

это всёравно, что пустой. 

knight4roads
Offline
Зарегистрирован: 10.08.2018

такая фигня - лежал файл на диске С - показывает размер, все нормально. Скопировал на D - говорит у файла есть размер, но на диске он места не занимает вообще! Перекачал файл, все залилось нормально! 

Спасибо за помощь!!

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

knight4roads пишет:

такая фигня - лежал файл на диске С - показывает размер, все нормально. Скопировал на D - говорит у файла есть размер, но на диске он места не занимает вообще! Перекачал файл, все залилось нормально! 

почитайте про файловые системы - очень позначательно.