FlySky TH9X startet nicht mehr nach Flashen...

dron72

Neuer Benutzer
#1
Hallo zusammen,

bin neu hier und auf dem Weg, mir meinen ersten Quadrocopter zusammenzubasteln. Restliche Modellbauerfahrung liegt knapp 30 Jahre zurück - da war alles noch ein bisschen anders ;-)

Zu meinem Problem:

Ich habe eine FlySky TH9X und wollte diese mit einer neuen Firmware flashen.
Also: Kabel entsprechend der Anleitungen im Netz angelötet und mehrfach kontrolliert.
Pins vom Stecker bis zum Board bzw. bis zu den 4 Pins am ATMega durchgemessen - alles durchgängig, wie es soll.

Programmer dran (ich habe einen USBASP, sieht exakt aus wie der von Protostack). Hat keine Schutzwiderstände in den Programmierleitungen.

Und dann das ganze mutig in den Mac gesteckt und versucht über avrdude zu kommunizieren.
Einmal avrdude geht; nochmal geht nicht, da er dann die device signature nicht mehr richtig liest. Reproduzierbar immer die gleiche falsche device signature ab dem zweiten avrdude Aufruf nach dem Anstecken an USB.

Siehe hier, direkt nach dem Anstecken:
Code:
olivers-mbp:~ oliver$ avrdude -v -c usbasp -p m64

avrdude: Version 6.0.1, compiled on Nov 30 2013 at 10:23:15
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/opt/local/etc/avrdude.conf"
         User configuration file is "/Users/oliver/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         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, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF

avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (H:FF, E:89, L:3F)

avrdude done.  Thank you.
Und dann gleich hinterher, Steckt immernoch dran.
Code:
olivers-mbp:~ oliver$ avrdude -v -c usbasp -p m64

avrdude: Version 6.0.1, compiled on Nov 30 2013 at 10:23:15
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/opt/local/etc/avrdude.conf"
         User configuration file is "/Users/oliver/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         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, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000102
avrdude: Expected signature for ATmega64 is 1E 96 02
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.
Gleiches Verhalten beim avrdude auf meinen Mac mit OSX10.9, an einem Desktop mit Ubuntu Linux und in einer VM mit Windows XP, die auch auf meinem Mac läuft.

Hat mich dann aber dummerweise nicht davon abgehalten dennoch zu flashen (direkt nach dem ersten Anstecken gehts ja ;-) ).
Beim ersten Versuch gabs dann ein Fehler beim Verify; beim zweiten (nach ab und anstecken) hats funktioniert. Die Funke startete dann trotzdem nicht...

Der Vollständigkeit halber:
- der Sender hat direkt nach dem Anlöten des Kabels noch funktioniert; ich würde ausschließen, dass ich da was kaputt gemacht habe.
- am VCC Lötpad des ATMega liegen gegen GND knapp 5V an, wenn ich den Sender anschalte. Mit der Stromversorgung über das Betteriepack scheint es also keine Probleme zu geben.
- beim Flashen habe ich das Unterteil des Senders komplett über den Stecker entfernt, demnach auch kein Strom auf dem Board über den Batteriepack.
- Den Programmer habe ich auf 5V gestellt (mit Jumper).
- Bei der Funke habe ich sowohl mit ELE D/R und AIL D/R an als auch ausgeschaltet versucht (liest man im Netz).
- Zuletzt geflacht habe ich mit companion9x eine opentx firmware - verify war dort ok.

Tja. Obwohl wahrscheinlich die Software korrekt drauf ist, startet der Sender gar nicht. Kein Display, kein Piepsen, nichts.

Hat jemand eine Idee, warum der Programmer bei jedem zweiten Lesen die falsche Device Signature ausspuckt?
Noch irgendwas was ich prüfen könnte?

Mag es an einer nicht stabilen Spannungsversorgung liegen? Suggeriert der Thread hier: http://fpv-community.de/printthread.php?t=5224&pp=10&page=100

Oder sollte ich mich mit einem anderen Programmer bewaffnen und sicherheitshalber einen Oszillator beschaffen?
Mit dem ATMega kommunizieren geht ja scheinbar noch - das beruhigt mich ein wenig :)

Danke für Eure Ideen!

Olli

EDIT:
Code:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
Kann man ja wohl ignorieren - steht in den meisten threads. Ein Parameter "-B 10" "-B 100" scheint nichts zu bewirken; vermutlich wegen obiger warning. Ansonsten habe ich keine Parameter durchprobiert.
 
Zuletzt bearbeitet:

sandrodadon

Fliegender Maschi
#2
Hi !

Also ich habe damals den USBasp von Hobbyking benutzt, damit ging es wunderbar.
Hier im Forum sind mit bisher 2 Fälle unter gekommen:
-Der USBasp war nicht zum flashen der TH9X geeignet, Hobbyking USBasp gekauft, funktioniert
-Der Chip hatte einen Bitlock wobei ich hier vermute dass sich jemand zu tief mit AVRStudio rein gefrickelt hat und was verbockt hat.

Mein Tipp:
1: Nochmal zu 100% sicherstellen dass alle Lötstellen sitzen und auch die Belegung richtig ist
2: Nutz zum flashen "Companion9x" das ist nahezu narrensicher, komfortabel und ohne frickelige Parameter
Damit geht es mit Abstand am besten

LG
Sandro
 

dron72

Neuer Benutzer
#3
Hallo Sandro,

vielen Dank für Deine Antwort. Der Programmer scheint grundsätzlich schon fürs Flashen der TH9X geeignet zu sein.
Ist hier auch als erfolgreich angegeben und ein Bekannter von mir hat den auch erfolgreich verwendet.

Ich werde mir sicherheitshalber mal noch nen zweiten bei Hobbyking kaufen. Probleme scheints aber nur mit den USBasp Programmen zu geben, die 100Ohm Schutzwiderstände an den Datenleitungen haben. Hat meiner nicht.
EDIT: Der USBasp von Hobbyking ist laut Fotos identisch mit meinem. Ggf. andere Firmware?

Die Lötstellen habe ich alle mehrfach geprüft - aber ggf. sollte ich die einfach abmachen und neu Löten - habe ich bisher noch nicht gemacht.
Companion 9X habe ich verwendet - aber das macht ja nix anderes, als avrdude aufzurufen.

Dennoch danke für Deine Tipps!

Gruß,

Oliver
 
Zuletzt bearbeitet:

dron72

Neuer Benutzer
#4
Geht wieder!!!
Einfach nochmal probiert, direkt von der Kommandozeile, Throttle voll nach oben und -b19200 als Parameter hinzugefügt.
Dann gings beim zweiten Versuch durch, beim ersten Verification error.

Trotzdem wäre ich dran interessiert, was da die Ursache sein könnte - will ja zukünftig nochmal flashen.
Insbesondere, warum nach dem Anstecken nur beim ersten mal die device signature richtig erkannt wird, beim zweiten und folgenden Mal nie.

Hier das Log, nach dem ersten Versuch den USB Stecker einmal gezogen und neu angesteckt.
Code:
olivers-mbp:Firmware oliver$ avrdude -v -c usbasp -p m64 -b 19200 -U flash:w:opentx9xneu-r2834.bin:a

avrdude: Version 6.0.1, compiled on Nov 30 2013 at 10:23:15
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/opt/local/etc/avrdude.conf"
         User configuration file is "/Users/oliver/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         Overriding Baud Rate          : 19200
         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, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
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: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "opentx9xneu-r2834.bin"
avrdude: input file opentx9xneu-r2834.bin auto detected as Intel Hex
avrdude: writing flash (54210 bytes):

Writing | ################################################## | 100% 33.19s

avrdude: 54210 bytes of flash written
avrdude: verifying flash memory against opentx9xneu-r2834.bin:
avrdude: load data flash data from input file opentx9xneu-r2834.bin:
avrdude: input file opentx9xneu-r2834.bin auto detected as Intel Hex
avrdude: input file opentx9xneu-r2834.bin contains 54210 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 27.54s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x03df
         0xfe != 0xfc
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (H:FF, E:89, L:3F)

avrdude done.  Thank you.

olivers-mbp:Firmware oliver$ avrdude -v -c usbasp -p m64 -b 19200 -U flash:w:opentx9xneu-r2834.bin:a

avrdude: Version 6.0.1, compiled on Nov 30 2013 at 10:23:15
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/opt/local/etc/avrdude.conf"
         User configuration file is "/Users/oliver/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         Overriding Baud Rate          : 19200
         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, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
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: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "opentx9xneu-r2834.bin"
avrdude: input file opentx9xneu-r2834.bin auto detected as Intel Hex
avrdude: writing flash (54210 bytes):

Writing | ################################################## | 100% 33.22s

avrdude: 54210 bytes of flash written
avrdude: verifying flash memory against opentx9xneu-r2834.bin:
avrdude: load data flash data from input file opentx9xneu-r2834.bin:
avrdude: input file opentx9xneu-r2834.bin auto detected as Intel Hex
avrdude: input file opentx9xneu-r2834.bin contains 54210 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 27.55s

avrdude: verifying ...
avrdude: 54210 bytes of flash verified

avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (H:FF, E:89, L:3F)

avrdude done.  Thank you.
Danke,

Olli
 
Zuletzt bearbeitet:
RCLogger

FPV1

Banggood

Banggood

Oben