Forum: Mikrocontroller und Digitale Elektronik Atmel Microcontroller AT90S8535 überprüfen oder tauschen ?


von David M. (daves)


Lesenswert?

Ich habe eine teures Gerät dessen Inhalt aus zwei Platinen besteht.

Auf der Platine1 ist die Stromversorgung, diverse Module und eine 
automatische temperatur gesteuerte Einschalt-Elektronik untergebracht.
Auf der Platine2 ist eine teils ähnliche Elektronik untergebracht ,ein 
Bildschirm ist auch daran befestigt, und es gibt eine per Ein/Aus Taster 
gesteuerte Einschalt-Elektronik.

Beide Einschalt-Elektronik Einheiten werden scheinbar von je einem Atmel 
Microcontroller AT90S8535 (mit programmierbarem Flash, und EEPROM) im 
Zentrum gesteuert.
Hier seine Beschreibung: www.atmel.com/Images/doc1041.pdf
Diese Microcontroller steuern alle größeren Spannungregler die die 
Platinen versorgen.

Die beiden Platinen sind über ein 24 poliges Kabel miteinander verbunden 
über das Strom, Daten, usw. geleitet werden.
Als sich dieses Kabel mal gelockert hat, flackerte Bilschirm kurz und 
das Gerät ging aus. Seitdem lässt sich das Gerät nicht mehr einschalten 
und es sind kaum mehr wo auf den Platinen Spannungen messbar. Die 5V 
Versorgungspannung der Microcontroller liegt aber normal an.

Auch der Platine1 Microcontroller1 hängt mit mindestens einem Pin direkt 
an diesem Kabel! Vielleicht hat er beim Kabel-Wackelkontakt ja auch eine 
Beschädigung erlitten?! Alle großen Spannungregler sind jedenfalls aus.
Die Platine2 mit dem Bildschirm hingegen funktioniert in einem anderen 
Gerät noch normal.

Wie ich nun einen Microcontroller1  mit unbekannten, programmierten 
Inhalt testen soll, weiß ich nicht und einfach austauschen kann ich ihn 
wegen der Programmierung ja auch nicht?
Oder kann man die Programmierung irgendwie auslesen und auf einen 
Nachfolger überspielen?

von Eumel (Gast)


Lesenswert?

David Muster schrieb:
> Oder kann man die Programmierung irgendwie auslesen und auf einen
> Nachfolger überspielen?

Könnte man eventuell wenn der Hersteller diese Möglichkeit nicht 
unterbunden hat. Aber sieh es doch mal so: Wenn du das Programm auslesen 
könntest wäre der Controller noch heile und du bräuchtest keinen neuen.
Sollte der Defekt wirklich am Controller liegen hast du ziemlich die 
Arschkarte gezogen. Gibt es den Hersteller deines Gerätes noch?

von David M. (daves)


Lesenswert?

Gibt es bei den Controllern nur die Zustände komplett defekt und 
funktionstüchtig? Oder könnten z.B auch nur Teile wie einzelne I/O-Ports 
defekt sein und der Chip sich trotzdem auslesen lassen?

Und kann man den Controller nicht doch irgendwie testen?
Ich habe mittlerweile eine Großteil der Ein- und Ausgangs-Leitungen 
gefunden.
Z.B. den Eingang identifizieren der von der Temperatursteuerung kommt 
und ihn einfach mal auf High oder Low schalten und schauen ob sich was 
an den als  Ausgängen dienenden Ports tut? Oder ist das zu gefährlich?

Der Zulieferer der das Gerät für den Hersteller fertig, haut alle paar 
Jahre eine neue Modellgeneration raus und bietet für Nicht-Großkunden 
und alte Geräte wohl keinerlei Support.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

David Muster schrieb:
> Gibt es bei den Controllern nur die Zustände komplett defekt und
> funktionstüchtig? Oder könnten z.B auch nur Teile wie einzelne I/O-Ports
> defekt sein und der Chip sich trotzdem auslesen lassen?

Ja, es kann sein, das nur ein einzelnes Portbeinchen hops geht, der 
Controller an sich aber noch funktioniert. Pech ist es allerdings, wenn 
dieser Port zum Programmieren und Auslesen benutzt wird, dann ists nicht 
mehr möglich, da was zu lesen.
Bei externem Quarz würde ich als erstes mal den Oszillator checken. Wenn 
der noch läuft, hat der MC zumindest Takt. Mit dem Komponententester 
meines Oszis würde ich dann im abgeschalteten Zustand der Platine reihum 
die Portpins des MC auf Schlüsse gegen Masse oder Vcc prüfen. Wenn der 
MC gesockelt ist, probiere ich dann, ihn auszulesen.

David Muster schrieb:
> Z.B. den Eingang identifizieren der von der Temperatursteuerung kommt
> und ihn einfach mal auf High oder Low schalten und schauen ob sich was
> an den als  Ausgängen dienenden Ports tut? Oder ist das zu gefährlich?

Das ist nicht gefährlich, wenn das Gerät sowieso von der Heizung 
abgetrennt ist, und du mit der Netzspannung vorsichtig bist. Wenn da auf 
der Platine auch das Netzteil ist, solltest du es so abdecken, das du 
nirgends ans Netz rankommst.

von David M. (daves)


Lesenswert?

Das "gefährlich" beim Testen bezieht sich nicht auf mich, sondern die 
Schaltung.
Also das der Controller selbst durch undefinierte Zustände im Inneren 
Schaden nimmt.Oder das durch undefiniertes oder nur tweilweises 
ansteuern, der an den Ausgängen hängenden Power-MOSFETS z.B. die 
Spannungsregler dahinter Schaden nehmen?

Auf dem Board gibt es außerdem sowieso keine Netzspannung, sondern es 
wird gleich eine niedrige Gleichspannung rein geliefert.


Und wie kann ich die Oszillatoren checken? Geht das nur mit nem 
Oszilloskop oder auch anders?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

David Muster schrieb:
> Also das der Controller selbst durch undefinierte Zustände im Inneren
> Schaden nimmt.Oder das durch undefiniertes oder nur tweilweises
> ansteuern, der an den Ausgängen hängenden Power-MOSFETS z.B. die
> Spannungsregler dahinter Schaden nehmen?

Wenn du dich mit den Pegeln innerhalb der Betriebsspannungsgrenzen des 
MC bewegst, kann da eigentlich nichts passieren. Du solltest vermutlich 
vermeiden, gleichzeitg zwei widersprechende Signale zu generieren, wie 
z.B. 'Ventil fährt auf' und 'Ventil fährt zu', sonst kann da aber nichts 
passieren.

David Muster schrieb:
> Und wie kann ich die Oszillatoren checken? Geht das nur mit nem
> Oszilloskop oder auch anders?

Hmm, ich bin es so gewohnt, den Oszi zu benutzen, das ich erstmal 
überlegen musste - aber es sollte klappen, mittels eines z.B. 470p-2n2 
Koppelkondensators und einem Multimeter auf Wechselspannung geschaltet, 
am Quarz eine Spannung nachzuweisen (gegen Masse gemessen). Das 
Datenblatt hast du dir ja vermutlich besorgt, du solltest also an XTAL1 
und/oder XTAL2 was messen können.

David Muster schrieb:
> Auf dem Board gibt es außerdem sowieso keine Netzspannung, sondern es
> wird gleich eine niedrige Gleichspannung rein geliefert.

Prüfe diese natürlich als erstes. Sollten ziemlich genau 5 Volt an Vcc 
des Controllers sein.

von David M. (daves)


Lesenswert?

Frage:
Kann man bei diesem Controller ein I/O Pin mit einem dran gehaltenen 
Widerstand auf High- oder Low-Pegel ziehen probieren ohne das er Schaden 
nimmt?

Also einen IC Pin mit High-Pegel auf Low ziehen und ein Pin mit 
Low-Pegel auf High ziehen.

Und welche Widerstandsgröße sollte ich bei 5V Pegeln nehmen so 50K?

von holger (Gast)


Lesenswert?

>Also einen IC Pin mit High-Pegel auf Low ziehen und ein Pin mit
>Low-Pegel auf High ziehen.

Bei Ausgängen würde ich das sein lassen.
Da machst du noch mehr kaputt.

Gib dich damit ab das dein Gerät im Eimer ist.
Mehr kann man dazu nicht sagen.

von nusskarsten (Gast)


Lesenswert?

Um was für ein Gerät handelt es sich?

von David M. (daves)


Lesenswert?

Was kann ich bei einem Ausgang denn sonst probieren, wenn ich den daran 
befestigten MOSFET Gate schalten will?

Bleibt mir nur den SMD MOSFET Pin los löten und in der Luft hängen 
lassen?

von holger (Gast)


Lesenswert?

>Was kann ich bei einem Ausgang denn sonst probieren, wenn ich den daran
>befestigten MOSFET Gate schalten will?

Leitung durchschneiden und den gewünschten Pegel anlegen?

von David M. (daves)


Lesenswert?

Da war ich mit dem Editieren wohl zu langsam.

Und kann man einen als Ausgang genutzen I/O Pin nicht einfach trotzdem 
mit High Low beschalten, er ist schließlich nur darauf programmiert?


Hier mal ein Auszug aus dem Datenblatt:

>Port D is an 8-bit bi-directional I/O port with internal pull-up resistors.
>The Port D output buffers can sink 20 mA.
>As inputs, Port D pins that are externally pulled low will source
>current if the pull-up resistors are activated.

von holger (Gast)


Lesenswert?

>Und kann man einen als Ausgang genutzen I/O Pin nicht einfach trotzdem
>mit High Low beschalten, er ist schließlich nur darauf programmiert?

Nimm mal eine Autobatterie an. Die ist mit 12V High.
Jetzt legst du die durch Kurzschluss auf Low. Denkst du die mag das?

Ein Chip der am Ausgang high liefert kann kaputt gehen wenn du seinen
Ausgang auf low zwingst.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

ein µController ist so komplex, dass die einzig vernünftige Methode ihn 
zu testen darin besteht, ihn gegen ein bekanntermassen funktionierendes 
(=neues) Exemplar auszutauschen. Wenn das wegen fehlender Firmware nicht 
machbar ist, lohnen sich weitere Versuche nicht, ohne die Firmware ist 
ja sowieso keine Reparatur möglich. Das maximal Sinnvolle wäre den Chip 
auszubauen und einen Leseversuch zu machen, und zu prüfen ob sich ganz 
grob ein sinnvoller Programmablauf daraus entnehmen lässt. Wenn ja, 
einen neuen Chip entsprechend programmieren und einbauen. Eine Prüfung 
aller Funktionen eines ausgebauten Chips lohnt sich niemals.

Gruss Reinhard

von David M. (daves)


Lesenswert?

Ich habe jetzt im Wiki gelesen das die Atmel AVR 
8-Bit-Mikrocontroller-Familie wegen ihrer leichten Programmierbarkeit 
und umfrangreichen Möglichkeiten bis hin zu Hobby-Anwendern weit 
verbreitet ist.

Verfügen diese Mikrocontroller nun auch über eine (versteckte) 
Möglichkeit die ganze Programmierung auszulesen ?
Darauf ist bisher noch keiner genauer eingegangen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

David Muster schrieb:
> Verfügen diese Mikrocontroller nun auch über eine (versteckte)
> Möglichkeit die ganze Programmierung auszulesen ?

Ein MC der AVR Klasse ist nur dann auslesbar, wenn die 
Verriegelungs(Lock-) Fuses nicht gesetzt sind. Ansonsten ist es nur per 
Chip löschen möglich, den MC praktisch in den 'Auslieferungszustand' zu 
versetzen, dabei geht das Programm verloren und die Lockfuses werden 
zurückgesetzt.
Das möchtest du aber nicht.
Ich würde dir als erstes empfehlen, den MC zu sockeln. Dann kannst du 
einzelne Pins hochlegen und den Rest der Schaltung prüfen.
Mach mal ein Foto des Controllerboards.

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.