Альтернативная прошивка ER9X для Turnigy 9X

UFO747
experimentator:

Если есть тестер (мультиметр) - аккуратно (чтоб не замкнуть соседние контакты) проверьте питание, которое приходит на Atmega при подключенном программаторе. Между VCC и GND должно быть 5 вольт.

Понял - проверю и доложу результат. Кстати, обязательно касаться щупами именно этих ножек, или можно за вот эти более крупные контакты взяться?

experimentator:

Какое напряжение выбрано сейчас? Должно быть 5V.

А вот как это понять? Ну, т.е. я сейчас, конечно, измерю, но непосредственно по самому программатору внешне я не пойму, что там выбрано, и как его менять.

PS Питание аппаратуры при подключении к компьютеру тумблером выключено, аккумулятор извлечен.

PPS Померил - и там и там 2,57 В

man-bis

Ну вот Вам и ответ: “киросину” не хватило что бы прошить. Надо искать перемычку 3.3\5в на вашем программаторе или менять программатор на 5 вольтовый.

olegtur77

Мужики, Есть как есть я тож недавно попался(Евгению на другом форуме уже ответил), тоже мега потухла пр и перепрошивке и никакими бубнами не восстановилась. Причем(!) для перепроверки было выпаяно все что могло мешать-кондеры, стабы, 4066…остались тока резюки и кондеры 0,1мкф…Пи подвеске программатора напряжение падало до 4,2В…подключал внешние 5В–результат тот же, причем живая мега 128 вела себя так же на плате…В итоге была куплена еще одна мега64а,которая не завелась даже с заводских установок, ни с другим кварцем,нис внешним генератором ни с low SCK…тупо молчала. Кстати ключа на ней небыло(!) ориентировал по маркировке. Потом купил еще одну мегу в “провереном” магазине и аппа ожила.
Думал только у меня такая фигня, как видно не один я…Подозрение что пошла глючная партия мег64 крайних турнигах .

Евгению: купите atmega64A, выпаять старую можно при помощи фена(я пользуюсь строительным на режиме 400грд), сек 10 ее прогреть и пинцетом или скальпелем она легко снимается.

UFO747

Олег, спасибо за совет (и на том и на этом форуме 😃), но, боюсь, я такую операцию не осилю 😦 Мне даже к этим-то сравнительно большим площадкам было трудновато проводки припаять, не говоря уже об этой многоногой атмеге.

man-bis:

Надо искать перемычку на вашем программаторе

Не могу разглядеть и все… Маркировка есть, стрелочка есть - а что там именно выпаять или припаять - не пойму. Вы тоже по фото (в моем предыдущем сообщении) не можете определить?

Stasys
UFO747:

Сталкивался сам дважды с проблемой как раз в таком программаторе (она уже озвучивалась неоднократно на этом и др. форумах): завышенный номинал резисторов в однокорпусном наборе. Это на фото по приведенной ссылке в цитате напротив вывода MISO. Это 4 резистора в одном корпусе (два ряда по 4 вывода с каждой стороны, похож на маленькую ИМС) с указанием номинала на нем. Рекомендуется 50…100…150 ом (обозначение 500…101…151). Даже при 200 ом может работать. Но часто стоят выше, отсюда и неработающие программаторы, даже уже при 200 омах, видел установленные резисторы и по 1,5 кОм…
Кроме того, выходной мощности USB порта может и не хватать, даже в стационарном блоке ПК. У моего ноутбука из 4-х портов нормально не заработал при программировании ни один. Поэтому прошиваю аппу всегда питая от ее же АКБ, при этом убираю или выпаиваю перемычку питания на программаторе (их у меня 3 шт.). Всегда результат положительный. Танталовый конденсатор на линии Reset в аппе не выпаиваю.
Также неоднократно встречался с “деградацией” USB портов на ПК: выдавал один ток, достаточный для работы устройств, со временем ток снижался существенно и некоторые энергоемкие устройства переставали по этой причине нормально работать.

perec
olegtur77:

Евгению: купите atmega64A, выпаять старую можно при помощи фена

Перед таким радикальным решением я бы всё же проверил программатор. Понятно что лишние затраты (рублей двести наверно с проездом до магазина), но можно купить любую мегу (например 8) в дип корпусе и попробовать прошить. Как по мне, перепаянный проц это как стукнутая машина. Вроде и отремонтированная а осадочек есть.

Plohish

ну попробуйте же прошить с питанием от самой аппы…
уже не я один советую…

experimentator

Вячеслав, можно попробовать еще пару вещей:

  1. Отключив программатор от аппаратуры, но включив его в USB-порт, померяйте напряжение на контактах, подключаемых к VCC и GND. Если будет 5V - все Ok, если 3.3 (или вроде этого) - надо будет перепаять резистор-перемычку на соседние контакты (достаточно отпаять существующий резистор и замкнуть соседние контакты каплей припоя). Я потом на картинке покажу что именно надо сделать.
  2. Попробуйте померять напряжение VCC и GND на аппаратуре при ее включении от аккумулятора (при этом к программатору ее подключать не надо). Там сложно подлезть когда задняя половина корпуса подключена, но все-таки можно. Только аккуратнее, не замкните чего лишнего…

Опа, а Станислав (Stasys), похоже, прав!
Вот, нашел похожий программатор и его обсуждение.

Для корректной его работы необходимо заменить вот эти резисторы:

на перемычки:

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

UFO747
experimentator:

Отключив программатор от аппаратуры, но включив его в USB-порт, померяйте напряжение на контактах, подключаемых к VCC и GND. Если будет 5V - все Ok

Померил - да, 5 Вольт. А если подключить аппаратуру и поверить напряжение на ней - там будет только 2,57 Вольта.

experimentator:

Попробуйте померять напряжение VCC и GND на аппаратуре при ее включении от аккумулятора (при этом к программатору ее подключать не надо).

Померил - 5 Вольт.

Plohish:

ну попробуйте же прошить с питанием от самой аппы…

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

Plohish
UFO747:

Поясните, пожалуйста, какой контакт где разорвать

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

experimentator

Евгений,
Померяйте еще величину сопротивлений, обведенных в кружок:

UFO747
experimentator:

Померяйте еще величину сопротивлений, обведенных в кружок:

Не уверен, что я правильно провел измерения (цифры постоянно менялись), но в общем получилось в районе 95 Ом (между противоположными пинами)…

PS Для проверки взял пару резисторов с известным мне сопротивлением: 25 Ом показал 22 Ома, 15 Ом - дал 16… В общем, какая-то погрешность тут.

experimentator

А, ну тогда это нормально. Не надо пока эти сопротивления трогать.

Отпаивайте провод VCC от платы и попробуйте перепрошить с включенным питанием аппаратуры!

UFO747
experimentator:

Отпаивайте провод VCC от платы и попробуйте перепрошить с включенным питанием аппаратуры!

Не сработало 😦

Опять вот это:

=================================================================================
Started AVRDUDE
C:/Program Files (x86)/eePe/avrdude.exe -c usbasp -p m64 -U eeprom:r:C:/Users/User/AppData/Local/Temp/eebackup.hex:i
=================================================================================

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.

=================================================================================
AVRDUDE done - exit code 1
=================================================================================

Вот по поводу “Avrdude Target Doesn’t Answer” есть обсуждение на форуме по электронике (надеюсь, ссылка на него не запрещена правилами) - там вроде как пришли к следующему выводу:

микросхема перешла на внешнее тактирование. Тут можно либо на фуздокторе/параллельном программаторе, либо подать на XTAL1 меандр 1-10 МГц.

AVRdude перевёл контроллер в режим тактирования от внешнего генератора, и конечно же потерял его.

Я, конечно, дилетант, но чисто по интуиции это похоже на мою ситуацию - у аппаратуры будто перестало “биться сердце”. eePe в процессе заливки прошивки что-то там обнулил или отключил - и перестал видеть это устройство как таковое.

Кто может, объясните мне, пожалуйста, как снова включить эту пропавшую пульсацию или генерацию нужной частоты - от какого такого внешнего источника это можно сделать?

experimentator

Евгений, добавьте в eepe в меню Burn --> Configure --> Extra arguments следующие параметры:

-B 100 -v

и попробуйте еще раз считать текущую прошивку или EEPROM, после чего выложите полный лог сюда.

UFO747
experimentator:

выложите полный лог сюда

Read Memory From Tx:

=================================================================================
Started AVRDUDE
CProgram Files (x86)eePeavrdude.exe -c usbasp -p m64 -B 100 -v -U eepromrCUsersUserAppDataLocalTemptemp.hexi
=================================================================================

avrdude.exe Version 5.10, compiled on Jan 19 2010 at 104523
             Copyright (c) 2000-2005 Brian Dean, 
             Copyright (c) 2007-2009 Joerg Wunsch

             System wide configuration file is CProgram Files (x86)eePeavrdude.conf

             Using Port                     lpt1
             Using Programmer               usbasp
             Setting bit clk period         100.0
             AVR Part                       ATMEGA64
             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         4    20    64    0 no       2048    8      0  9000  9000 0xff 0xff
               flash         33     6   128    0 yes     65536  256    256  4500  4500 0xff 0xff
               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          4    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

             Programmer Type  usbasp
             Description      USBasp, httpwww.fischl.deusbasp

avrdude.exe set SCK frequency to 8000 Hz
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.


=================================================================================
AVRDUDE done - exit code 1
=================================================================================

Read Firmware From Tx:

=================================================================================
Started AVRDUDE
C:/Program Files (x86)/eePe/avrdude.exe -c usbasp -p m64 -B 100 -v -U flash:r:C:/Users/User/Desktop/123.bin:r
=================================================================================

avrdude.exe: Version 5.10, compiled on Jan 19 2010 at 10:45:23
             Copyright (c) 2000-2005 Brian Dean, 
             Copyright (c) 2007-2009 Joerg Wunsch

             System wide configuration file is "C:\Program Files (x86)\eePe\avrdude.conf"

             Using Port                    : lpt1
             Using Programmer              : usbasp
             Setting bit clk period        : 100.0
             AVR Part                      : ATMEGA64
             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         4    20    64    0 no       2048    8      0  9000  9000 0xff 0xff
               flash         33     6   128    0 yes     65536  256    256  4500  4500 0xff 0xff
               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          4    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

             Programmer Type : usbasp
             Description     : USBasp, 

avrdude.exe: set SCK frequency to 8000 Hz
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.


=================================================================================
AVRDUDE done - exit code 1
=================================================================================

PS Надо было, конечно, и в первый раз лог сохранить, а я с перепугу от этой ошибки только скриншот догадался сделать 😦

experimentator

Как у Вас с английским? Вот тут похожая проблема обсуждается.

В двух словах - на самом деле могли поменяться фьюзы. В зависимости от того, насколько они “уехали”, восстановить можно либо замедлив программатор (в некоторых случаях помогает параметр -B 100 или -B 10), либо подключив внишний генератор импульсов 1МГц и, опять-таки, замедлив программатор тем же ключем.

Проблема в том, что Ваш программатор не поддерживает параметр -B (стандартная болезнь всех китайских USBasp). А без него, насколько я понимаю, восстановление может не сработать даже с внешним генератором импульсов. Чтобы это исправить, надо найти другой (любой) USBasp-программатор и перепрошить Ваш USBasp. Звучит запутанно, я знаю…

В общем, я вижу следующий путь:

  1. Ищем другой USBasp
  2. Перепрошиваем свой USBasp с помощью второго USBasp
  3. Пытаемся достучаться до 9x с помошью обновленного программатора.
  4. Если по-прежнему не получается - городим огород с внешним генератором на 1МГц…

Ммм… Почитав другие форумы еще, добавлю пару моментов:

  • В некоторых случаях “замедления” программатора не требуется - т.е. достаточно будет внешнего генератора, без перепрошивки USBasp (хотя я б все равно перепрошил, если есть такая возможность).
  • Внешний генератор не обязательно брать именно на 1МГц, подойдет любой от 1 до 16МГц.

Возможно, более опытные коллеги опишут процесс восстановления проще и понятнее, чем это сделал я… 😃

UFO747

Перепрограммировать программатор - ух повезло же мне 😃 Может быть, начать все-таки с внешнего генератора? Есть шанс, что оно на текущей (неизменяемой) скорости моего имеющегося программатора заведется? Мне просто кажется, что этот осциллятор/генератор импульсов будет проще достать, чем программатор. Я свой вот этот пару месяцев ждал, пока он шел из Китая (с aliexpress)…

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

Plohish

поищите другой программатор, наверняка проблема в нём! Вы же живёте в Питере, не верю что там нет ни одного человека прошивавшего аппу.

experimentator

Вот, как вариант, выбирайте любой понравившийся. 😃 (но я б брал с частотой поменьше)
Вот тут описано как подключать. В общем, на генератор подается +5В и Земля откуда удобнее, а выход (CLK) подключается к 24-му пину программируемой Atmega.
После подключения всего, пробуйте прочитать чип. Если успешно - тогда можно прошить прошивку, а затем выбрать “restore fuses” в eepe.
Ну или сначала restore fuses, а затем заливать прошивку. Только учтите, что после выполнения “restore fuses” осциллятор надо отключить, Atmega должна корректно работать уже без него.