Forum: Mikrocontroller und Digitale Elektronik (Anfänger) ATSAMD21E17 auslesen und neu flashen ?


von Christian M. (christian2002)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe mit Mikrocontrollern leider keinerlei Erfahrung und wollte das 
ändern. Aber im Vordergrund steht für mich erst eine Fehlersuche.


Habe hier mehrere DNA200 Boards, das sind Mikrocontroller gesteuerte 
Regelungen für E-Zigaretten. Ich würde gerne versuchen einem in der 
Dampfercommunity sehr häufig auftretenden Fehler auf den Grund zu gehen.


Ein fehlerfreies Board reagiert im Normalfall so. Man legt drei Akkus 
ein, drückt den Feuerknopf und das Board bootet hoch und ist 
Einsatzbereit. Nach 30 Minuten Inaktivität geht das Board in den Standy 
Mode. Man muss den Feuerknopf dann erneut drücken, damit das Board 
wieder bootet und wieder ist es einsatzbereit. Das ist das normale vom 
Hersteller und den Kunden gewünschte Verhalten.

Jetzt habe ich hier drei fehlerhafte Boards.

Diese Verhalten sich so:

Man legt drei Akkus ein und drückt den Feuerknopf und nichts passiert, 
das Board bootet nicht und das Display bleibt schwarz. Hier kann man den 
Bootvorgang nur einleiten, wenn man während man den letzen Akku einlegt 
den Feuerknopf gedrückt hält. Dann bootet das Board normal hoch und ist 
einsatzbereit. Lässt man es dann 30 Minuten stehen, geht es in den 
Standby und man bekommt nicht mehr per Druck auf den Feuerknopf 
gestartet. Dann muss man wieder einen der drei Akkus rausnehmen, den 
Feuerknopf beim Einlegen des Akkus gedrückt halten und das Board 
startet.


Evtl könnte hier ein Fehler in der Programmierung des Atmel vorliegen. 
Da diese Boards auch Benutzereinstellungen speichern, könnte ja 
vielleicht hier irgendwas beim Speichern der ein oder anderen 
Einstellung passiert sein, dass der Mikrocontroller einfach nicht mehr 
den Eingangspin im Standby einlesen will.
Da die Software "Escribe" von Evolv anscheinend einen Bug hat und man 
die Werkseinstellung nicht vollkommen wiederherstellen kann, wollte ich 
einfach versuchen, mal den Atmel eines meiner funktionierenden Boards 
auszulesen und auf fehlerhaftes Board zu kopieren.


Meine Frage wäre, was brauche ich dafür um dies auf dem einfachsten Wege 
zu probieren ? Da ich nicht weiß ob im Atmel die Fuses aktiv sind, wäre 
erstmal der einfachste Weg das Beste. Am Löten soll es natürlich nicht 
scheitern, das bekomme ich sicher hin, weil ich auch schon die ein oder 
andere Micro USB Buchse an diversen E-Zigaretten erfolgreich gelötet 
habe.


Wäre super, wenn mir da jemand ein paar Tips geben könnte :-)

Viele Grüße,

Christian

von Marco H. (damarco)


Lesenswert?

Kommt drauf an ob die SWD Ports nach draußen gelegt wurden?

Möglicherweise ist die Routine zum schlafen legen fehlerhaft.  Es gibt 
glaube ich nur 1 oder 2 Pins womit über den PMC das aufwachen realisiert 
wird.

von Christian M. (christian2002)


Lesenswert?

Woran erkenne ich ob die Ports nach aussen gelegt wurden ?

Was bräuchte ich an Hardware um auf den Atmel zugreifen zu können ?

Ich gehe davon aus, dass irgendwas mit dem Bootloader des Boardes ist.
Anders kann ich mir das nicht vorstellen, weil das Board Anfangs ohne 
Probleme funktioniert hat und aufeinmal dieses wake-up Problem 
aufgetreten ist. Am Feuertaster an sich kann es auch nicht liegen, weil 
dieser ja tadellos funktioniert, wenn man das Board mit dem Akkutrick 
starten konnte.

von Marco H. (damarco)


Lesenswert?

Ich vermute mal das sie nicht nach außen legt wurden. Mach mal eine Foto 
von vor und Rückseite.


Um den SWD zu nutzen benötigst du einen Debugger der das Device 
unterstützt. Atmel ICE oder ein J-link.

Hör lieber auf zu Rauchen und Vorsicht beim anstecken an den PC aus soll 
schon vorgekommen sein das in Lampen und solchen Dingen Viren 
eingeschleust wurden.

von Christian M. (christian2002)


Lesenswert?

Oben ist ein Bild von der Vorderseite angehängt. Auf der Rückseite ist 
nichts brauchbares, weil direkt hinter dem Atmel 2 Leistungsspulen sind 
und dort keine Pads erreichbar wären.

Ich könnte nur versuchen entweder direkt am Atmel, an umliegenden 
Bauteilen und an Platinendurchführungen zu löten.

Das hat mit Rauchen genausoviel zu tun wie Cola mit Biertrinken......

Auf den aufgebauschten Schwachsinn aus den Medien gebe ich nicht 
wirklich viel, vorallem weil der DNA200 von einem renomierten Hersteller 
kommt und ich sonst keine China Billig "E-Zigaretten" habe sondern nur 
hochwertige Mods ala SX-Mini M, Dicodes No6, DNA200 und zahllose 
Mechmods die keinen USB haben ;-)

von Christian M. (christian2002)


Lesenswert?

Ich habe mir das Board mal nochmal genauer angesehen und man kann PA30, 
PA31 und RESET ohne große Probleme erreichen. Bei einem Pin muss ich 
lediglich den Lack von der Platine kratzen um das Durchführungspad zu 
erreichen :-)

Soweit ich das in dem Datenblatt zu dem Controller verstanden habe, 
brauche ich nur diese 3 Pins ?

Wäre dann dieser Debugger den ich zum versuchsweise Auslesen verwenden 
könnte ?

http://www.ebay.de/itm/like/291576648448?lpid=106&chn=ps&ul_noapp=true


Soweit ich erkennen kann, hat dieser die 5 Leitungen von denen eine 
ohnehin optional auf einigen Devices ist (SWO)

Das würde dann in meinem Verständnis von der Materie bedeuten, dass ich 
Pin 26 (Reset), Pin 30 (VDDIN), Pin 31 (PA30) und Pin 32 (PA31) mit dem 
Debugger verbinden müsste um den Atmel auszulesen.
Das ganze würde sich dann eigentlich nur auf der linken Seite des 
Controllers auf dem Foto abspielen.
Und eine externe Spannungsversorgung ist bei diesem Vorgang dann nicht 
von Nöten.


Soweit waren jetzt meine Recherchen laut meines Verständnisses, ich habe 
versucht, es selbst herauszufinden, weil ich nicht einfach nur fragen 
will um dann auf vorgekaute Antworten zu warten und in der Zeit faul 
herumzusitzen :-D
Jetzt brauche ich nur noch eine Bestätigung meiner Theorie und die 
Hardware Seite wäre schonmal erledigt ;-)

von Christian M. (christian2002)


Lesenswert?

Keiner der mir da ein paar Tips geben kann ?

von Christian M. (christian2002)


Lesenswert?

Naja, dann wird das hier wohl nichts. Schade :-(

Lässt sich wohl jeder von E-Zigarette abschecken, obwohl da einfach nur 
ein Mikrocontroller drin ist.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian M. schrieb:

> Soweit ich das in dem Datenblatt zu dem Controller verstanden habe,
> brauche ich nur diese 3 Pins ?

Ja, so sollte es sein.

Ist natürlich die Frage, ob die Firmware überhaupt auslesbar ist,
es ist durchaus wahrscheinlich, dass man den Ausleseschutz
aktiviert hat.

> Wäre dann dieser Debugger den ich zum versuchsweise Auslesen verwenden
> könnte ?

Kan sein, muss nicht sein.  Keine Erfahrung hier mit so einem
Billigteil.

Das preiswerteste offizielle Atmel-Board zum Programmieren und
Debuggen wäre dieses hier:

http://shop.myavr.de/Systemboards%20und%20Programmer/Atmel%20ICE%20Programmerboard%20%28ATATMEL%20ICE%20PCBA%29.htm?sp=article.sp.php&artID=200142

Mit OpenOCD wiederum wirst du so ziemlich alles zum Laufen bekommen,
was einen ARM per SWD programmieren kann, aber es könnte auf ein
wenig (Software-/Konfigurations-)Gebastel hinauslaufen.

> Und eine externe Spannungsversorgung ist bei diesem Vorgang dann nicht
> von Nöten.

Diesen Satz verstehe ich nicht; ich würde mich an deiner Stelle
nie auf irgendwelche Spannungsversorgung aus einem Debugger heraus
verlassen, sondern immer die originale des Geräts benutzen.  Du
weißt sonst nicht, was auf dem Board alles noch passiert.  Es gibt
Spannungsregler, die es einem übel nehmen, wann man sie „von hinten“
befeuert.

> Jetzt brauche ich nur noch eine Bestätigung meiner Theorie und die
> Hardware Seite wäre schonmal erledigt ;-)

Naja, wie geschrieben, das größte Risiko ist es, dass der Chip
lesegeschützt sein dürfte (nennt sich "Security Bit" im Datenblatt).

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.