Hallo,
kann mir vielleicht jemand erklären, wie sich Einstreuungen
auf einen ATMega16 auswirken?
Ich benutze ein AVR-P40-Board. Für den der es nicht kennt: das ist eine
Experimentier- u. Pragrammierplatine aus dem hiesigen Shop für MCU's,
betriebsfertig ausgerüstet mit Spannungsversorgung, JTAG, ISP, serieller
Schnittstelle usw., bestückt in meinem Fall mit einem ATMega16.
Im Lieferzustand, wie ich sie z.Zt. benutze, sind alle Ports, soweit sie
nicht zu JTAG usw gehören, unbeschaltet, nur an PORTB_0 ist eine LED
angeschlossen.
Um zu sehen, ob alle Verbindungen und Programmierschritte funktioniern,
habe ich ein Programm geladen, daß die LED in einer speziellen Weise
blinken läßt.
Und nun fangen die Merkwurdigkeiten an: Die LED blinkt, wie
programmiert, aber nur kurz, dann verliert sich der Rhythmus und die LED
blinkt konstant.
Das Board ist berührungsempfindlich, berührt man die äußere Lochreihe
oder den Chip mit den Fingern dann blinkt es richtig oder falsch oder
auch gar nicht mehr.
Eine gewisse Verbesserung brachte es, das Board von der halb
schwebenden, halb auf der Gummiunterlage stehenden Anordnung mit seinen
Füßchen auf ein geerdetes Blechgehäuse zu stellen. Aber lange geht es
auch das nicht gut.
Am Oszi zeigt sich, daß am Rest-PIN regelmäßig ganz kurz die Spannung
Null wird, mit der gleichen Frequenz wie das programmwidrige Blinken.
Ich vermute, daß irgendwelche Einstreuungen mit und ohne körperlichen
Kontakt das AVR-P40-Board beeinflussen. Da die Effekte verzögert
auftreten, könnten Ladungsansammlungen / Kondensatoren beteiligt sein.
Jetzt meine Frage: was geschieht hier? Was zieht nach einer gewissen
Latenzzeit den Resetpin in regelmäßigen Abständen auf Null?
Diese Boards haben einen IC zur Spannungsüberwachung,ZM33064, eingebaut.
Hast du dir die Spannung an dem IC schon mal angesehen, eventuell den IC
herausnehmen wenn es geht.
Es könnte auch deine Stromversorgung probleme machen.
Hast du die LED etwa ohne Vorwiderstand angeschlossen?
Würde sich mit der Aussage von Hubert decken:
LED geht an -> braucht viel Strom->Controller resettet
Hubert G. wrote:
> Diese Boards haben einen IC zur Spannungsüberwachung,ZM33064, eingebaut.
Meinst Du den Regler LM371T?
> Hast du dir die Spannung an dem IC schon mal angesehen, eventuell den IC> herausnehmen wenn es geht.> Es könnte auch deine Stromversorgung probleme machen.
Werde ich mal prüfen. Obwohl ich eher nicht glaube, daß es an der
Stromversorgung liegt, denn ich hatte den Tastkopf des Oszi auch mal am
Vcc-Pin des Atmega und mir war nichts aufgefallen.
@Hi Roland
Die LED war auf dem fabrikneuen Board schon vorhanden, ich habe es
ausgepackt, angeschlossen und weiter nichts. Ich gehe davon aus, daß ein
Vorwiderstand vorhanden ist (sehen kann man einen SMD 471).
Mir ist aufgefallen, daß das Blinken aufhört, wenn man bloß die
GND-Leitung des Oszi anklemmt! Dann mißt man an Vcc 5V und am Resetpin
0V.
Das Blinken hört übrigens auch bei abgeschaltetem Oszi auf.
mfg
Hubert G. wrote:
> Diese Boards haben einen IC zur Spannungsüberwachung,ZM33064, eingebaut.> Hast du dir die Spannung an dem IC schon mal angesehen, eventuell den IC> herausnehmen wenn es geht.> Es könnte auch deine Stromversorgung probleme machen.
Du hast recht,
den ZM33064 habe ich gefunden, heißt bei mir MC33064P.
Er löst den Reset aus, denn es ist ein periodisch wiederkehrender
Spannungseinbruch an PIN 1 zu sehen.
Ich meine, damit ist man einen Schritt weiter. Nun müßte man "nur"
noch wissen, was diesen MC33064 dazu bringt, den Reset zu veranlassen.
Auf der Plusleitung ist nichts zu erkennen, jedenfalls kein eklatanter
Spannungeinbruch.
ich leide darunter, daß nichts reproduzierbar ist, mal hört das Blinken
ganz auf, wenn ich bloß die GND-Leitung zum Oszi anstecke, mal wird
dadurch ganz im Gegenteil der regelmäßige Reset vermieden und das
Programm läuft normal
Viele Grüße
Egon Müller wrote:
> ich leide darunter, daß nichts reproduzierbar ist, mal hört das Blinken> ganz auf, wenn ich bloß die GND-Leitung zum Oszi anstecke, mal wird> dadurch ganz im Gegenteil der regelmäßige Reset vermieden und das> Programm läuft normal>
Wenigstens etwas ist reproduzierbar:
Wenn das Programm normal läuft, also keinerlei Resetauslösung durch den
den MC33084, und ich stecke den seriell-auf-USB-Adapter an die
Schnittstelle, dann geht der Ausgang am MC33084 sofort auf low, nehme
ich den Adapter wieder weg, ist der Ausgang wieder high.
Hilft Dir das bei der Ferndiagnose etwas weiter?
Viele Grüße
Egon
Hallo
die Ursache ist gefunden!
Ihr hattet recht, es lag an dem Reset, der durch Spannungseinbrüche
ausgelöst wurde.
Die Stromversorgung war zu knapp eingestellt. Ich habe das
Schaltnetzteil von 7,5 auf 9V umgestellt - und nun geht es!
Vielen Dank für Eure Hilfe.
Egon