ATMEGA256 startet ab und zu nicht

OP #1465066
Lesenswert?

Hallo Leute!

Ich habe eine Platine mit dem ATMEGA256 designed und bestückt. Das Teil 
lief recht gut, bis wir es in ein Gehäuse eingebaut haben. Darin 
befinden sich mehrere Netzteile und auch andere Platinen, die für 
Anwendungen einige Ampere zur Verfügung stellen. Auch zwei große Lüfter 
(230V), einer links und der andere rechts von meiner erstellten Platine.

Schaltet man nun das Gerät ein, läuft der Prozessor nicht weg, obwohl er 
versorgt wird, die Brown-Out-Detektion ist aktiviert.
Auch ein Reseten bringt nicht den Erfolg. Der Prozessor rührt sich 
nicht.

Schaltet man das Gerät nun aus und nach kurzer Zeit wieder ein, 
funktioniert plötzlich alles einwandfrei. Der Fehler tritt nur dann auf, 
wenn das Gerät mehrere Stunden nicht eingeschaltet war.

Eigenartig finde ich, dass man den Prozessor nichtmal mit einem Reset 
zurückholen kann!?!

Um Tests durchzuführen habe ich nun den externen Quarz mal deaktiviert, 
um zu schauen, ob vielleicht dieser nicht wegläuft, wenn eine 
entsprechende Störspannung oder Ähnliches induziert wird.

Den Spannungseingang der Platine habe ich recht gut mit Ferriten und 
Kondensatoren gesichtert, sodass hier keine Störungen eindringen 
dürften. Zusätzlich ist die Platine auch noch mit zwei anderen Platinen 
verbunden, wodurch es hier laut meiner Ansicht auch zu entsprechenden 
Einwirkungen kommen könnte.

Ich weiß, dass es unmöglich ist, eine Ferndiagnose zu stellen. Die Tests 
bleiben uns nicht erspart.
Tipps und andere Anregungen würden mich jedoch sicher weiterbringen.
Was auch sehr interessant ist, warum der Prozessor nichtmal dann 
startet, wenn man den Reset-Taster drückt.
Der Prozessor wurde auf Verdacht schon getauscht, aber das Problem ist 
immer noch da.

Vielen Dank für eure Anregungen.


Schöne Grüße

Martin
Gast #1468979
Lesenswert?

Nur mal so ein Gedanke:
Wenn du einen Tag warten musst bis das wieder passiert, hört sich das 
ganz so an als ob da irgendwelche Kapazitäten dran beteiligt sind.
Entlade doch einfach mal alles was zur Stromversorgung und der 
Resetschaltung gehört mit nem Stückchen Draht und schau nach ob der 
Fehler dann ohne nen Tag warten auftritt. Würde zumindest das Eingrenzen 
leichter machen, da du nicht immer nen Tag warten müsstest.
OP #1469017
Lesenswert?

Hallo Leute!


Das mit dem Kurzschließen der abgeschalteten Versorgung werde ich 
testen, danekschön.

Wegen Softwareproblem: Hm, es läuft im Prinzip nur eine Schleife, welche 
einen Pin ensprechend pulst (mit 200ms Wartezeit), damit ich sehen kann, 
dass der Prozessor läuft.
Läuft der Prozessor nicht weg, dann bleibt die LED dunkel.

Andererseits werden vorher auch Initialisierungen für entsprechende ICs 
vorgenommen. Das mit der Software ist ein guter Ansatz, um den Fehler 
weiter einzugrenzen, was bedeutet, dass ich eine Minimalsoftware 
reinspielen werde, die sich Ausschließlich um die Initialisierung des 
Prozessors kümmert.

Zudem ist mir jetzt auch eingefallen, dass ich, falls der Prozessor 
wieder nicht wegläuft, ich versuchen könnte, mittel Programmiergerät mit 
diesem Kontakt aufzunehmen, um zu sehen, ob er darauf reagiert.

Vielen Dank und schöne Grüße

Martin
OP #1475767
Lesenswert?

Hallo Leute!


Weitere Tests haben ergeben, dass der Fehler immer noch auftrat.

Die Brown-Out-Detektion ist aktiviert, auch der Quarz läuft weg, habe 
ich nachgemessen, nur der Prozessor nicht.
Auch die Software habe ich entsprechend verkürzt, sodass ich mögliche 
Software-Fehler weitgehend ausschließen konnte.

Ich bin zwar jetzt dahinter gekommen, woran es tatsächlich lag, ich bin 
mir jedoch jetzt nicht ganz sicher, wie ich das Problem beheben kann.

Also: Es befindet sich auf dem Board zusätzlich ein 
FT2232C-USB-Baustein.
Dieser ist so beschalten (Figure 9 - USB Self Powered Configuration), 
wie es vom Hersteller empfohlen wurde.
Der Reset-Eingang des FTDIs ist einmal mit einem 10K Widerstand gegen 
GND verbunden und mit einem 4,7K auf den USB-Spannungsconnector.

Wenn ich nun den USB-Stecker zuerst einstecke, also in der Früh den 
Computer hochfahre, dann erfährt der Reset-Pin über den 4,7K Widerstand 
5V. Es fließt anscheinend ein kleiner Strom, der den gesamten 5V-Kreis 
über den FTDI auf 0,22V bringt.
Wenn ich nun den Spannungsschalter des Gerätes aktiviere, läuft der 
Prozessor im Normalfall nicht weg. Er lässt sich dann auch nicht 
reseten.

Aus diesem Grund war es für mich scheinbar so, dass ich einen Tag warten 
müsse, bis der Fehler auftaucht. - Aber es waren diese speziellen 
Einschaltumstände, die zu dem Fehler führten.

Das Problem ist jetzt, wie kann ich verhindern, dass eine Spannung am 
Reset-Eingang des FTDIs anliegt, wenn ich den USB-Stecker zuerst 
anstecke?

Zwei Möglichkeiten sind mir dazu eingefallen:
1: Eine Art Relais, Optokoppler oder MOSFET, welcher erst dann aktiviert 
wird, wenn 5V an der Prozessor-Platine anliegen und dann die 
USB-Spannung auf den Reset-Eingang des FTDIs durchschaltet.

2: Den 4,7K Widerstand nicht mehr mit der USB-Spannung verbinden, 
sondern mit dem 5V-Kreis des Prozessors. Dies würde aber bedeuten, dass 
der USB-Baustein nicht in den Reset-Modus gelangt, sobald der 
USB-Stecker gezogen wird. Ich weiß jetzt allerdings nicht, welche 
negativen Auswirkungen dies haben könnte.
Am einfachsten wäre die zweite Möglichkeit, aber ich bin mir nicht 
sicher, ob diese so sauber ist oder absolut zuverlässig funktioniert.

Ich wäre über entsprechende Hilfen und Meinungen sehr dankbar.

Schöne Grüße

Martin
#1475938
Lesenswert?

Kommt nur mir die Ausdrucksweise verwirrend vor?  Wenn ein Quarz 
wegläuft, hält er seine Sollfrequenz nicht, somit ist etwas kaputt. 
Wenn der Prozessor wegläuft, ist er weg, also nicht mehr im Programm - 
sonst würde er loslaufen und nicht weg.  Irgendwie tue ich mir da schwer 
und stolpere immer wieder ... und wenn ich jeden Satz zweimal lesen 
muss, ist es zum Weglaufen ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren