PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AtMega auslesen



Cysign
02.03.2015, 21:27
Hallo zusammen,

ich steht grade vor dem Problem, dass ich gerne zwei tMegas auslesen würde, um den Neubau einer Platine zu vermeiden.
Im AtmelStudio habe ich unter Device Programming rausfinden können, dass die Lockbits nicht gesetzt sind.
Allerdings habe ich keine brauchbare Anleitung zum eigentlichen Auslesevorgang finden können - evtl. hab ich einfach die falschen Suchbegriffe verwendet? ;)

Ich würde mich freuen, wenn mir jemand auf die Sprünge helfen könnte.

Thanks in advance!

PICture
02.03.2015, 23:06
Hallo!


Im AtmelStudio habe ich unter Device Programming rausfinden können, dass die Lockbits nicht gesetzt sind.

Ich würde dir echt gerne helfen, falls ich ausser o.g. Satz etwas aus deinem Beitrag verstehen könnte. Wenn möglich, schreibe, bitte, verständlich was du hast und was haben möchtest. :confused:

Cysign
02.03.2015, 23:47
Ich hab hier ne Platine vor mir liegen, die mit zwei AtMegas (8 & 16) ausgestattet ist, außerdem steckt da ein MAX232, 3 Transistoren, massig LEDs und 4 Widerstandyarrays drauf.
Der Entwickler der Platine hat keine Unterlagen mehr dazu. Und bevor wir uns nun die Mühe machen, die komplette Platine neu zu fertigen (was sicherlich die schönere Lösung wäre, da man RGB-LEDs verwenden könnte) würden wir gerne versuchen, die vorhandenen µCs auszulesen um darauß Schlüsse auf die Programmierung ziehen zu können, bzw. abzuwägen, wie wir die Platine wiederbeleben können.

Über Atmel-Studio kann ich die µCs soweit analysieren, dass ich weiß, dass keine Fuses gesetzt wurden.
Der Programmierer, mit dem ich die Platine weiterverwenden möchte, meinte, dass man die µCs auslesen könne, um so die vorhandenen Funktionen weiterzunutzen, ohne alles neu programmieren zu müssen.
Letztendlich soll die Platine LEDs und Servomotoren steuern.
Wenn es aber zu aufwändig ist, die Ansteuerung der Platine (über den MAX232) ausfindig zu amchen, landet die Platine im Müll und wir werden eine eigene bauen müssen...

021aet04
03.03.2015, 08:06
Du kannst den Mikrocontroller relativ einfach auslesen. Du bekommst aber nicht ein lesbares Programm sondern nur Maschinencode (*.hex). Das findest du auf der Seite wo du die Datei auswählst die du auf den Controller schreiben willst. Wenn EEPROM benötigt geschieht das gleich.

Wenn du die Funktion der einzelnen Pins benötigst hilft nur reverse engineering (Leitungen verfolgen).

MfG Hannes

askazo
03.03.2015, 08:12
Das einzige, was man aus dem Controller zurücklesen kann, ist das Programm als HEX-Datei, wie Hannes schon schrieb. Das machst Du über Device-Programming -> Memories -> Flash Read (siehe Screenshot)
Das könnte man dann noch mit einem Disassembler in ASM-Code umwandeln, aber da hört es dann auch schon auf.
Aus dem ausgelesenen Programm einen brauchbaren BASCOM- oder C-Code zu bekommen, ist nicht möglich.

Gruß,
askazo

29929

PICture
03.03.2015, 10:31
@ Cysign


Das einzige, was man aus dem Controller zurücklesen kann, ist das Programm als HEX-Datei, wie Hannes schon schrieb. Das machst Du über Device-Programming -> Memories -> Flash Read (siehe Screenshot)

Das kann man auch danach in gleichen µC einschreiben ohne es zu analysieren und es genauso funktioniert. ;)

Cysign
06.03.2015, 00:43
Danke für die Hilfestellung, genau das habe ich gesucht.
Ob mein Programmierer hinterher dem dem disassemblierten ASM Code was anfangen kann, muss er entscheiden ;)
Sollten wir die Platine nicht mehr verwenden können, wäre es vermutlich eh einfacher, sie ganz wegzulassen und auf digitale RGB-LEDs, wie z.B: WS2812, zu setzen. Damit haben wir mehr Möglichkeiten und die Transistoren fallen weg ;)