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

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

UFO747

Вот читаю сообщение на том форуме:

Аппу восстановил, работает нормально, собрался перепрошивать, подключил программатор, питание от программатора, аппа включилась. Запускаю eePe жму прошить и вылазит сообщение:
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

У того товарища аппаратура работает и включается (там даже мне понятно, что стоит в первую очередь с другим программатором поэкспериментировать) а моя - мертвый кирпич 😦

olegtur77

Евгений! предлагаю еще один “танец с бубном”, пока вы не начали мучать фюзы, скачайте вот эти две программы khazama.com/project/programmer/ и rom.by/…/PO_dlja_programmatora_USBASP_USBISP_AVR_P… , особенно рекомендую вторую, и в установках выбирайте атмега64А(!)- именно А а не без буквы, во второй программе если все правильно то командой RD (кнопочка в проге) должна прочитаться сигнатура чипа, может даже в режиме LOW SCK. Как раз “дудка” не определяет новые чипы с буквой А. Еще одна прога которой я пользуюсь это “eXtreme Burner - AVR” , эта тоже корректно работает с мегой… Всеми этими программами пользуюсь по выбору, раз столкнулся с ситуацией что мега128 смогла прочитаться только “khazama” , остальные не видели чип. Кстати во всех этих прогах очень удобно и информативно проставляются фюзы - видно что меняется, особенно относительно типа генератора.

UFO747
olegtur77:

предлагаю еще один “танец с бубном”

Ok, сейчас станцую 😃

PS

Если дело все-таки дойдет до припаивания генератора-осциллятора, то, судя по инструкции, припаивать его надо к очень мелким (по моим представлениям) площадкам (Clock, Ground, VCC):

Для меня это непросто, поэтому пока есть время, решил потренироваться на кошках. Точнее, на мышках - на платах от старых компьютерных мышей:

Т.е. припаял вот эти длинные усы к похожим по виду штуковинам (резисторам?). И вопрос в этой связи такой - пойдут такие проводки? Не создадут ли они ввиду своей тонкости недопустимо большое сопротивление?..