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

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 должна корректно работать уже без него.

UFO747

Или я искать не умею, или это правда специфический товар, но я в упор не вижу ни в одном оффлайн магазине такой вещи, как программатор… Я бы и сам рад купить другой и попробовать, но где взять?

PS Я, разумеется, понимаю, что есть в нашем городе и товары какие угодно (ну, почти), и спецы - проблема в том, что я новичок в этой области и поэтому не ориентируюсь совершенно 😦

GarryBu
UFO747:

Или я искать не умею, или это правда специфический товар, но я в упор не вижу ни в одном оффлайн магазине такой вещи, как программатор… Я бы и сам рад купить другой и попробовать, но где взять?

достаточно часто пользуемая всякими рукастыми электронщиками приблуда. И сами они их тоже паяют. На авито.ру еще посмотрите - я так купил. Ищите уточнить типа USB ASP