Forum: Mikrocontroller und Digitale Elektronik Atmega128 des ALC 8500 Expert ausgelesen und wieder gebrannt, jetzt geht nichts mehr


von Taner S. (db1nto)


Lesenswert?

Hallo Leute,

bei dem Gerät ALC 8500 Expert-2 handelt es sich um einen "Computerlader" 
für alle Akkutypen.
Da nach abgeschlossener Kalibrierung des Gerätes nach dem Zusammenbau 
(Bausatz) der Kalibriermodus vom Anwender nicht mehr aufrufen lässt, 
habe ich folgenden Versuch gewagt und stehe nun vor einer 
Herausforderung:

Ich habe den Inhalt des Flash ROM´s und des EEPROM´s über ISP ausgelesen 
und abgespeichert (zur Sicherheit mit zwei unterschiedlichen Programmen)

Nach dem auslesen habe ich die Dateien (hex und eep) auch noch mal 
verifizieren lassen. Es wurde jeweisl OK angezeigt.

Dann dachte ich mir, die Kalibrier Daten sind bestimmt im EEPROM und 
habe die Daten im EEPROM gelöscht und das Gerät resettet.

Nun habe ich erhofft, dass beim einschalten der Kalibrier Modus losgeht 
wie bei einem Neugerät.

War leider nicht der Fall.

Ich dachte mir, gut, dann spiele ich die Daten vom EEPROM wieder ein und 
es ist wieder wie vorher.

War leider auch nicht der Fall!

Ich habe dann auch nochmnal versucht hex und eep zu brennen. Beschreiben 
lässt sich der Atmega. Auch die FUSE Bits lassen sich beliebig ändern.

Funktionieren tut der Lader leider nicht mehr.

Wird beim Auslesen des Flash´s der Bootloader nicht mit ausgelesen? Wenn 
Doch, was könnte der Grund sein dass das Gerät nach dem zurückflashen 
nicht mehr so funktioniert wie vorher?

Der Lader hat einen USB zu Serial Converter eingebaut welcher am UART 
des Atmega hängt. Normalerweise ist es darüber möglich mit einem Flasher 
die Firmware des Atmega zu aktualisieren.

Der Flasher findet den Atmega entweder nicht oder sagt CRC Error.
Es gibt zwei verschiedene Möglichkeitn die Firmware zu flashen.
1. über die Bediensoftware
2. über einen DOS Flasher welcher von Atmel stammt und frei 
heruntergeladen werden kann! (update.exe heist der Flasher)

Was ich bisher herausgefunden habe:
Offensichtlich ist auf dem Atmega ein Bootloader welcher das Flashen 
ermöglicht, wenn man das Ladegerät mit gedrückten Tasten einschaltet.

Es gibt hier auch einige Beispiele für so einen Bootloader.
Z.B. den hier: http://www.lochraster.org/foodloader/?de

Ich habe es gestern nicht mehr auf die Reihe gebracht, einen 
funktionierenden Bootloader "herzustellen".
Ich weis auch nicht, ob es dann zwangsläufig funktionieren wird wenn ich 
einen Bootloader installiere und dan die Firmware Datei .eep über den 
DOS Flasher flashe.

Im Atmega scheint auch irgendwo die Seriennummer des Gerätes eingebrannt 
zu sein, da diese über das Display abgerufen werden kann. Diese geht bei 
Firmware Updates nicht verloren. Laut Fuses soll der EEPROM Inhalt beim 
Flashen nicht gelöscht werden, daher nehme ich an, dass die Seriennummer 
auch im EEPROM gespeichert ist.

Hat jemand eine Idee wie ich das Teil wieder zum Leben erwecken könnte?

Mir liegt der ausgelesene Flash Inhalt als .hex und der ausgelesene 
EEPROM Inhalt als .eep vor.

Ausserdem noch die Original Firmware zum Flashen als .enc und den DOS 
Flasher "update.exe" von Atmel.

Das nachfolgende Teil scheint vom Funktionsprinzip (was das Update 
betrifft) das selbe zu sein, hier ist auch der Flasher (update.exe) und 
die Firmware Datei als .enc verfügbar:
http://www.ethernut.de/de/isp/spduo.html

Würde mich sehr freuen, wenn hier jemand eine Idee hat oder mir ggf. 
einen Bootloader für den Atmega 128 basteln könnte, der mit einem 16 MHz 
externen Quarz läuft und der Flash Vorgang dann anläuft wenn der Taster 
an PD1 während dem Boot Vorgang gedrückt wird.

von Stephan (Gast)


Lesenswert?

Taner Schenker schrieb:
> Ich habe den Inhalt des Flash ROM´s und des EEPROM´s über ISP ausgelesen
> und abgespeichert (zur Sicherheit mit zwei unterschiedlichen Programmen)

na da psst doch was nicht. ELV hat immer "eigene" Prozis in den 
Projekten.
Zumindes wird selten gesagt welche MCU dahinter steckt. Ich denke nicht 
das die sich auslesen lassen. Wenn dort wirklich ein Mega drin ist dann 
ist der geschützt. Beim Accumaster muss man beim Einschalten 1 Taste 
drücken um in den Kalibriermodus zu kommen. Vielleicht ist das ja beim 
ALC auch so.

von Peter D. (peda)


Lesenswert?

Taner Schenker schrieb:
> Ich habe den Inhalt des Flash ROM´s und des EEPROM´s über ISP ausgelesen
> und abgespeichert (zur Sicherheit mit zwei unterschiedlichen Programmen)

Dann wirst Du Müll gelesen haben, da der Chip warscheinlich gelockt war.

Ein gelockter MC kann ja nicht das Lesen verbieten, daher schickt er 
einfach Müll (ungültige Daten).


Peter

von Charly B. (charly)


Lesenswert?

gugg dir mal das ausgelesene file an, sollte dort sowas zu finden sein:

01 01 02 02 03 03 04 04  usw.

dann war der chip 'gesperrt' und du hast jetzt eine 
'experimentierplatform'

vlg
Charly

von Charly B. (charly)


Lesenswert?

Nachtrag

bei ELV kannste die FW runterladen

vlg
Charly

von Taner S. (db1nto)


Lesenswert?

Hallo Charly,

ich habe im ersten Beitrag recht viel und ausführlich geschrieben. 
Manchmal ist das wohl zu viel ;)

Dass ich die Original Firmware als .enc habe, hatte ich oben erwähnt. 
Aber wie bringe ich diese .enc Datei in den Atmega rein?

Wen ich das richtig verstehe, ist dazu der Bootloader als HEX und evtl. 
noch ein EEPROM Inhalt als .eep notwendig, den ich zuvor über ISP 
flashen muss, damit das flashen der Firmware aus der .enc Datei über 
UART funktionieren kann.

Wenn beim Auslesen des EEPROM´s nur "Müll" ausgegeben wurde, dann kann 
ich das auch nicht zurück in das EEPROM schreiben. Möglicherweise wird 
aber irgend etwas im EEPROM benötigt, damit die firmware funktioniert.

Die Firmware löscht das EEPROM nicht. Daher wird mir die Firmware 
vermutlich nichts bringen.

Gruß Taner

von Charly B. (charly)


Lesenswert?

moin moin Tanner

jo, i hab den beitrag auf die schnelle ueberflogen ;)

bootloader guggst du hier : 
Beitrag "AVR-Bootloader mit Verschlüsselung"

den verwende ich auch und ist leicht anpassbar
(habe ich sogar hinbekommen)

der wird aber deine .enc nicht moegen

wenn du den atmega komplett ausgelesen hast, und er nicht geschuetzt
war hast du auch den bootloader ; ob er geschuetzt war hatte ich
dich in meinem 1. post gefragt (auch wenig geschriebenes wird nicht
immer komplett gelensen ;) )
vielleicht postest du mal den anfang der .hex datei


i vermute das die FW von ELV verschluesselt ist, auch die dateiendung
.enc spricht dafuer und wenn du denn bootloader nicht hast der das
beim updaten decodiert haste vermutlich verloren, event. bei elv
nach dem bootloader frage oder Geraet einschicken zwecks
neuprogrammierung


vlg & beste 73 aus jn39kk
Charly

von Stephan (Gast)


Lesenswert?

ELV wird den Mega natürlich als Ersatzteil anbieten.
Nur die Frage was er kosten soll.

von gk (Gast)


Lesenswert?

Hallo zusammen,
habe ein ähnliches Problem. Nach dem Kalibrieren
des ALC8500-Expert verlangt das eingebaute Display
nach der Seriennummer. Dadurch sind am Gerät keinerlei
Einstellungen mehr möglich. Über die Software Charge
"Professional" funktioniert die Kiste aber. Ich habe
keine Lust, die Kiste einzuwickeln und nach Leer zu
schicken. Ich vermute, dass bestimmte Parameter und
auch die Seriennummer mit einer Kalibriersoftware bei
ELV über USB (oder seriell) eingespielt werden. Mit
einem Terminalprogramm habe ich mal verschiedene Befehle
per USB( Virtual Com-Port ) an das ALC 8500 geschickt.
Befehle mit kleinen Buchstaben dienen zur Abfrage von
Parametern, Befehle mit grossen Buchstaben zum Einstellen.
Mit <STX>u<ETX> kann u.A. die Seriennummer abgefragt
werden. Die Einstellung der Ser.-Nr. ist mir noch nicht
gelungen. Aber ich habe festgestellt, dass man beim
Einschalten des ALC mit gedrückter OK/Menu-Taste in
einen anderen Betriebsmodus gelangt, weil das ALC an
der Schnittstelle dann andere Antworten liefert.
Vielleicht gelangt man so in den Einstellmodus ? Das
alles hilft in dem vorliegenden Fall jetzt nicht
wirklich weiter, aber vielleicht hilft es jemanden,
der ein ähnliches Problem hat.

Gerhard

von Taner S. (db1nto)


Lesenswert?

So sieht der Anfang der Flash hex Datei aus:
:2000000000000101020203030404050506060707080809090A0A0B0B0C0C0D0D0E0E0F0 
FF0
:2000200010101111121213131414151516161717181819191A1A1B1B1C1C1D1D1E1E1F1 
FD0
:2000400020202121222223232424252526262727282829292A2A2B2B2C2C2D2D2E2E2F2 
FB0
:2000600030303131323233333434353536363737383839393A3A3B3B3C3C3D3D3E3E3F3 
F90
:2000800040404141424243434444454546464747484849494A4A4B4B4C4C4D4D4E4E4F4 
F70
:2000A00050505151525253535454555556565757585859595A5A5B5B5C5C5D5D5E5E5F5 
F50
:2000C00060606161626263636464656566666767686869696A6A6B6B6C6C6D6D6E6E6F6 
F30
:2000E00070707171727273737474757576767777787879797A7A7B7B7C7C7D7D7E7E7F7 
F10
:2001000080808181828283838484858586868787888889898A8A8B8B8C8C8D8D8E8E8F8 
FEF
:2001200090909191929293939494959596969797989899999A9A9B9B9C9C9D9D9E9E9F9 
FCF
:20014000A0A0A1A1A2A2A3A3A4A4A5A5A6A6A7A7A8A8A9A9AAAAABABACACADADAEAEAFA 
FAF
:20016000B0B0B1B1B2B2B3B3B4B4B5B5B6B6B7B7B8B8B9B9BABABBBBBCBCBDBDBEBEBFB 
F8F
:20018000C0C0C1C1C2C2C3C3C4C4C5C5C6C6C7C7C8C8C9C9CACACBCBCCCCCDCDCECECFC 
F6F
:2001A000D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7D8D8D9D9DADADBDBDCDCDDDDDEDEDFD 
F4F
:2001C000E0E0E1E1E2E2E3E3E4E4E5E5E6E6E7E7E8E8E9E9EAEAEBEBECECEDEDEEEEEFE 
F2F
:2001E000F0F0F1F1F2F2F3F3F4F4F5F5F6F6F7F7F8F8F9F9FAFAFBFBFCFCFDFDFEFEFFF 
F0F
:2002000000000101020203030404050506060707080809090A0A0B0B0C0C0D0D0E0E0F0 
FEE
:2002200010101111121213131414151516161717181819191A1A1B1B1C1C1D1D1E1E1F1 
FCE
:2002400020202121222223232424252526262727282829292A2A2B2B2C2C2D2D2E2E2F2 
FAE
:2002600030303131323233333434353536363737383839393A3A3B3B3C3C3D3D3E3E3F3 
F8E
.
.
.
.



und so der vom EEPROM:

:20000000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1 
FF0
:20002000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3 
FD0
:20004000404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5 
FB0
:20006000606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7 
F90
:20008000808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9 
F70
:2000A000A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEB 
F50
:2000C000C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDED 
F30
:2000E000E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEF 
F10
:20010000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1 
FEF
:20012000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3 
FCF
:20014000404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5 
FAF
:20016000606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7 
F8F
:20018000808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9 
F6F
:2001A000A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEB 
F4F
:2001C000C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDED 
F2F
:2001E000E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEF 
F0F
:20020000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1 
FEE
.
.
.


Das ist wirklich wirres Zeug :(

Toll...

Mal sehen, vielleicht kriege ich einen Bootloader mit den Beispielen von 
Atmel auf die Beine. Dann kann ich die original Firmware über UART 
flashen.

Jetzt hängt also alles vom Bootloader ab.

Besten Dank für eure Hilfe!

Sollte ich es zum laufen kriegen werde ich hier dokumentieren wie es 
geht.
Viele Besitzer des ALC 8500 Expert (1 & 2) versuchen im Nachhinein in 
den Kalibrier Modus zu kommen, was nicht gelingt.

Gruß Taner

von Andreas F. (aferber)


Lesenswert?

Taner Schenker schrieb:
> Mal sehen, vielleicht kriege ich einen Bootloader mit den Beispielen von
> Atmel auf die Beine. Dann kann ich die original Firmware über UART
> flashen.

Wenn das so funktionieren würde, könntest du die Firmware auch direkt 
flashen. Das wird aber nicht gehen, da das Firmwareimage mit ziemlicher 
Sicherheit verschlüsselt ist, und den Schlüssel dazu hast du mit dem 
Chip Erase bei deinen Flashversuchen ins Nirvana befördert. Es 
funktioniert nicht einfach jeder x-beliebige Bootloader, sonst hätten 
sie den Controller erst garnicht per Fuse schützen müssen, wenn sie dann 
doch die Firmware zum Download anbieten.

Die einzige Chance, dein Gerät zu retten, ist, bei ELV einen neuen 
Controller mit der richtigen Firmware als Ersatzteil zu besorgen, 
vermutlich werden die aber nicht unerheblich Geld dafür haben wollen. 
Oder sie sind so nett und flashen dir dein vorhandenes Gerät nach 
Einsendung neu.

Andreas

von Simon K. (simon) Benutzerseite


Lesenswert?

Die von dir geposteten Hex Dumps sind genau das, was vermutet wurde: Das 
Programm/EEPROM eines per Fuse Bit gelockten AVRs.

Du musst die die original Firmware besorgen. Allerdings vermute ich 
nicht, dass es die bei ELV gibt, warum sollte man sonst den Chip locken.
Aber das weiß ich nicht. Musst du dich mal mit ELV auseinander setzen.

von GK (Gast)


Lesenswert?

ELV wird sagen einschicken. Ansonsten könnte man
versuchen die .enc Datei auf dem PC zu dekodieren,
bis ein verünftiger Code dabei raus kommt. Den
könnte man dann flashen. Ist aber sicher nicht legal.

Gerhard

von Charly B. (charly)


Lesenswert?

was ist denn jetzt weiter geschehen ?

von Taner S. (db1nto)


Lesenswert?

Nach Rücksprache mit dem ELV Service eingeschickt.
Befindet sich gerade in "Reparatur"

Gruß Taner

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.