Mein ATMEGA48 resettet sich unbeabsichtigt alle 0.1 bis 4 Sekunden
zufällig selbst. Nach einer Weile geht gar nichts mehr.
Die Software sollte nicht das Problem sein, ich habe sie auf ein Minimum
reduziert und auch die 2.7V BOD habe ich wieder ausgeschaltet, was
ebenfalls nichts genützt hat.
Die Versorgungsspannung beträgt 3.3V aus einem Akku mit 10uF parallel.
Ich habe auf der Reset-Leitung lediglich ein 10k Pullupwiderstand, 100nF
gegen Erde und den Pin für den Programmieradapter, der im Normalfall
nicht verbunden ist.
Wenn ich die Spannung am Resetpin mit einem Oszilloskop messe, sehe ich
einen sauberen Pegel im Bereich zwischen 0.8V bis 1.3V, was ja viel zu
tief ist. Ein Starten des Mikrocontrollers ist mit diesem Pegel nicht
möglich, da er sich im selben Moment gleich wieder zurücksetzt.
Sobald ich den Resetpin mit einem Kupferdraht direkt gegen Vcc verbinde
funktioniert die Schaltung zwar wieder, aber auch so steht ein Reset
immer unmittelbar bevor. Da die LEDs mit der Zeit leicht zu flackern
beginnen kann man das gut erkennen.
Wenn ich den Strom messe, der über den Kupferdraht in den Resetpin
hineinfliesst, sehe ich ein übles Rauschen mit Spitzenwerten von bis zu
+25mA und etwa +5mA im Durchschnitt!
Wenn man die Schaltung vom Strom trennt und eine Weile auf die Seite
legt, funktioniert sie bei erstmaligem wiederinbetriebsetzen für einige
Minuten, danach beginnen die Probleme wieder von vorn und werden mit der
Zeit schlimmer, bis erneut gar nichts mehr funktioniert.
Hat jemand von euch auch schon solch komisches Verhalten bei einem
ATMEGA beobachtet? Ich bin echt am Ende mit meinem Latein. Habe schon
fast alles versucht.
Vielen Dank für eure Hilfe!
Die Versorgungsspannung ist absolut stabil. Auch der Widerstand ist der
Richtige. Ich habe es auch schon mit 5k versucht, jedoch nur eine
direckte Verbindung zu Vcc bringt den uC zum Laufen.
Ich habe die Schaltung doppelt aufgebaut. Beide haben das selbe Problem,
nur beim Einen tritt es etwas häufiger auf.
Michael schrieb:> Es sieht wirklich alles danach aus, dass der Reseteingang den Strom> Schluckt. Wie kann das sein?
VCC-Pins hängen an der Versorgung? Ansonsten geht der Strom über die
Eingangspins, also auch den Reset-Pin.
Habe bis jetzt immer 100nF verwendet, ohne probleme. Nur bei dieser
Schaltung ist das Verhalten so komisch. Cs habe ich schon ausgetauscht
oder ganz weg gelassen. Kurzschlüsse sind auch auszuschliessen.
Es muss entweder ein ganz offensichtlicher Fehler sein, oder etwas ganz
kniffliges. Alles übliche was man so an Tipps in den Foren findet, hab
ich schon ausprobiert.
Das stimmt, jedoch ist es tatsächlich so, dass die LEDs laut datenblatt
(und nachgemessen) einen hohen Spannungsabfall haben. Es handelt sich um
die 5050er LEDs, wie man sie typischerweise in den RGB-LEDStreifen
findet die so im Handel angeboten werden. Die LEDs laufen sogar noch in
Unterlast.
Der Strom könnte das Maximum ein kelin Bisschen übersteigen, jedoch sind
selten alle LEDs aktiv. Auch wenn nur eine LED leuchtet tritt das
Problem auf.
Ich hate fast die Identische Schaltung bereits einmal aufgebaut mit den
selben Problemen, doch dann eines Tages, ohne dass ich etwas geändert
habe funktionierte alles einwandfrei. 30 Stunden Dauertest bei voller
Leistung ohne einen Reset!
Der internet Reset-Pullup ist im schlimmsten Fall etwa 60k hoch. Das ist
ganz schön viel, besonders in diesem Fall, wo ja schon ein 100 Ohm
pullup am Reset kaum ausrecht. Wie gesagt, da fliesst strom auf der
Resetleitung und die kann nicht in den Kondensator, also in den uC....?
Michael,
hast Du auch mal den µC gewechselt? Ist er vielleicht kaputt?
Wenn die "Identische Schaltung" einen anderen µC hatte, ist das
allerdings schon geklärt.
Gruß Dietrich
Die Schaltungen hatten alle den selben uC aus der gleichen bestellung.
Hab gleich zehn Stück bestellt wegen dem Mengenrabatt und mehr als die
Hälfte hab ich schon durchprobiert :-) ohne Erfolg :-(
Kann es sein daß Du zuviel Strom gegen Masse ziehst mit Deinen 9 Led's
direkt an den Ports ????
Wenn Du in Summe 200mA überschreitest, macht der Atmega dauernd
unmotivierte Reset's.
Gruß Hugo
Das kann vorkommen. Im schlimmsten Fall beträgt der Strom etwa 300mA.
Komisch ist, dass die Boards gestern jeweils keine 10 Sekunden gelaufen
sind ohne Reset. Seither hab ich absolut nichts mehr geänder, auch die
Kondensatoren hab ich nun doch dringelassen. Und heute morgen um halb
acht hab ich die Dinger wieder in betreib genommen und seither laufen
sie ohne einen einzigen Reset. Das ist schon sehr komisch. Und beim
vorgängermodell war es genau das gleiche. Vom einen auf den anderen Tag
hat auf einmal alles funktioniert, ohne dass ich auch nur das geringste
geändert habe.
@hugo:
Das hatte ich weiter oben schon zu bedenken gegeben.
> Ist die Summe aller neun LED-Ströme größer als die Gesamtleistung> des AVR? Ich meine nicht den Strom für einen einzelnen Ausgang!
Michael meinte, daß er schon leicht ÜBER dem maximalen Strom liegt.
Nachdem wir alles mögliche ausgeschlossen haben, komme ich nochmal
drauf zurück.
@michael:
Klemm doch mal sechs der neun LED's ab, so daß nur noch drei
dranhängen. Dann kannst du auch sicher sein, daß es nicht am
zu hohen Stromfluß liegt und hast wieder eine Fehlerursache
ausgeschlossen. Vielleicht bricht ja wirklich kurzzeitig die
Betriebsspannung ein und verursacht dadurch einen spontanen Reset.
Das mußt du auch icht unbedingt mit einem Meßgerät sehen. Mit einem
Oszi wahrscheinlich schon. Aber probiere es einfach mal aus und
gehe unter die Stromgrenze...
Das Verhalten der AVR's außerhalb der Spezifikation ist eben nicht
garantiert. Es KANN funktionieren, MUSS aber nicht.
Der Fehler trat leider auch auf, als ich nur eine rote LED im Betrieb
hatte, da war der Strom nicht höher als 30mA.... Es muss also noch
einen anderen Grund geben.
Der Fehler tritt auch nur auf, wenn die Schaltungen neu gelötet werden.
Nach einigen Tagen funktioniert auf einmal alles tadellos.... Ich blick
nicht mehr durch.. :-(
Ich hab die platinen bei PCB-pool machen lassen. Sehen qualitativ sehr
gut aus. Auch beim Layout hab ich mir Mühe gegeben die Leiterbahnen
möglichst kurz zu halten.
Hab auch schon an Einkopplungen gedacht, da ich ja steile Schaltflanken
habe, aber ich hab mit dem Oscilloskop nichts messen können.
Evtl. mal den Pin unbestückt messen, zumindest ohne Reset-Pin des
Controllern.
Einkopplungen ziehen keine zig mA, es sei denn da ist eine dicke und
magnetisch offene Spule direkt daneben.
Michael schrieb:> Der Fehler tritt auch nur auf, wenn die Schaltungen neu gelötet werden.> Nach einigen Tagen funktioniert auf einmal alles tadellos.... Ich blick> nicht mehr durch.. :-(
Das erinnert mich an einen Fall in der Lehre, als ein Motorola 6809
zickig tat. Problem war damals, dass unter dem Baustein (nach dem
Handlöten) nicht weggeputzte Flussmittelreste und/oder wasauchimmer
verblieb. Das Zeug war leitend genug, dass die Schaltung nicht
funktionierte.
Könnte es evtl. in diese Richtung gehen?
Reset gegen GND mal mit dem Ohmmeter anschauen?
Daniel V. schrieb:> VCC-Pins hängen an der Versorgung? Ansonsten geht der Strom über die> Eingangspins, also auch den Reset-Pin.
Hast du das über prüft? Sind alle Versorgungspins auch...versorgt?
Als ich sie das erste Mal in Betreib nahm, wahren sie mit Flussmittel
praktisch eingehüllt, doch dann hab ich sie mit Isopropylalkohol sehr
gut gewaschen und es wurde nicht besser. (Hab natürliuch einen
ESD-Pinsel verwendet)
Heute auf einmal, Tage später, schein jetzt alles zu funktionieren. Bei
beiden Platinen gleichzeitig. Wie gesagt, ohne dass ich seit gestern
auch nur das geringste geändert habe. Selbe Batterie, selbe
Raumtemperatur, selbe Luftfeuchtigkeit....
Ich hab das jetzt nachvollzogen mit einem ATM8(8Mhz) und 4 Blauen LED's
am PortC (so schnell als möglich toggeln) Flussspannung 3.1V
Vorwiderstand 4.7Ohm.
Am Steckbrett geht's immer, auf einer Lochrasterplatine gibts alle paar
Minuten einen Reset.
Hast Du schon mal überlegt, bei Deinen kleinen Vorwiderständen, wie sich
die Sperrschichtkapazität der LED's auswirkt. Manche LED's vor allem
jene mit hoher Flußspannung haben relativ grosse Kapazitäten bis zu
100pF
Wenn Du nun z.B. mit 25nS Anstiegszeit und 3.3V der Ports rechnest, und
100pF
liegt Dein C*du/dt im Amperebereich und bei den geringen Vorwiderständen
kannst Du Die vorstellen welche Stoßbelastungen dein AVR verkraften muß.
Ich würde LED's mit so geringen Vorwiderständen niemals direkt am Port
betreiben.
Gruß Hugo
Hugo schrieb:> Wenn Du nun z.B. mit 25nS Anstiegszeit und 3.3V der Ports rechnest, und> 100pF> liegt Dein C*du/dt im Amperebereich und bei den geringen Vorwiderständen> kannst Du Die vorstellen welche Stoßbelastungen dein AVR verkraften muß.>> Ich würde LED's mit so geringen Vorwiderständen niemals direkt am Port> betreiben.>> Gruß Hugo
Das, oder ein Layoutproblem.
@einheit:
Jetzt sei nicht so ein Krümelkacker. Du hast ja Recht. Sekunden
werden nicht groß geschrieben, sondern Siemens (Leitwert).
Trotzdem weiß in diesem Zusammenhang jeder, was gemeint ist.
Außerdem schrieb Hugo ja auch von Anstiegszeit, also könnte ich jetzt
auch so pingelig sein und sagen, daß eine Zeit niemals in Siemens
gemessen wird. Also, unentschieden? Ok, akzeptiert ;-)
@Michael
Bist Du siccher, daß alle deine GND-Pins auch satt auf GND sind.
(Platinenfehler ??)
Man kann bei den Dingern z.B. den GND nicht anschliessen, und auf irgent
einem anderen PIN GND ähnliches Potential haben, und die laufen
trotzdem irgentwie.
Gruß Hugo
Die GND Pins sind sicher mit GND verbunden. Auch Leiterbahnunterbrüche
sind auszuschliessen. Ich hab 0.6mm dicke Leiterbahnen an allen Pins.
Das sollte auch reichen von den Dimensionen.
Ich hab mal folgendes Program in eine Endlosschleife geschrieben:
{
alle LEDs volle Leistung
delay 1ms
alle LEDs aus
delay 50us
}
In dieser Extremsituation hat er sich tatsächlich jeweils nach einigen
Sekunden bis Minuten zurückgesetzt, aber gestern wars wesentlich
schlimmer. Da hat er beim Dauerleuchten mit nur einer roten LED keine
drei sekunden mehr durchgehalten.
Michael schrieb:> In dieser Extremsituation hat er sich tatsächlich jeweils nach einigen> Sekunden bis Minuten zurückgesetzt,
Wie sieht in dieser Anwendung der Stromverlauf durch die LEDs aus?
->mit KO über Vorwiderstand messen.
Also ich hab jetzt mal nach den LEDs geschaut.
Du solltest die tatsächlich über einen Transistor schalten.
Angenommen an der LED fallen 3V ab, dann hast du bei 4,7 Ohm
Vorwiderstand einen Strom von über 60mA.
Der Strom sieht folgendermassen aus:
___ _________ _________ _________ ________
|| || || || ||
Der Strom beträgt maximal etwa 580mV und die zeitlichen Abstände
zwischen den Einbrüchen 1mS, was auch zu erwarten war.Ich hab bei der
roten LED gemessen, wo ein 47R Widerstand verbaut ist.
Der Strom durch die LED beträgt also 0.58V / 47R = 12mA
Das ist weit unter den Maximalwerten sowohl der LED, als auch des
Mikrocontrollers.
Ich konnte auf dem Oscilloskop auch keine Schaltspitzen erkennen...
@ Daniel V.
Im Datenblatt des ATMEGA48 ist auf Seite 329 im Diagram 30-26 (I/O pin
sink current vs. output voltage (Vcc = 2.7V)) ist ersichtlich, dass bei
einer Versorgungsspannung von 2.7 Volt noch maximal 27mA bei
Raumtemperatur erreicht werden können. Die Angegebenen 40 mA können gar
nicht mehr erreicht werden, da der Interne Spannungsabfall sehr hoch
wird.
Selbst bei 3.3V Versorgung habe ich die roten LEDs schon ohne
vorwiderstand betrieben und es floss nicht mehr Strom als 40mA. Nach
einem 30Stunden Dauertest mit allen LEDs auf voller Leistung war kaum
eine Erwärmung des uCs feststellbar.
Das ist eine der wenigen guten Nachrichten, die ich bieten kann.... ;-)
Ich habe mit meinem UNI-T UT81B Scopemeter im mA bereich den stromfloss
zwischen Vcc und dem Resetpin gemessen, also diesen durch das Messgerät
fest mit Vcc verbunden. Es waren Ströme von bis zu 20mA messbar, was ja
kaum so sein sollte.
So wird ein reset zwar verhindert, aber nur knapp. Selbst wenn der Reset
fest mit Vcc verbunden ist beginnen die LEDs leicht zu flackern und ein
Reset steht immer kurz bevor...
Michael schrieb:> @ Daniel V.>> Im Datenblatt des ATMEGA48 ist auf Seite 329 im Diagram 30-26 (I/O pin> sink current vs. output voltage (Vcc = 2.7V)) ist ersichtlich, dass bei> einer Versorgungsspannung von 2.7 Volt noch maximal 27mA bei> Raumtemperatur erreicht werden können. Die Angegebenen 40 mA können gar> nicht mehr erreicht werden, da der Interne Spannungsabfall sehr hoch> wird.>> Selbst bei 3.3V Versorgung habe ich die roten LEDs schon ohne> vorwiderstand betrieben und es floss nicht mehr Strom als 40mA. Nach> einem 30Stunden Dauertest mit allen LEDs auf voller Leistung war kaum> eine Erwärmung des uCs feststellbar.>> Das ist eine der wenigen guten Nachrichten, die ich bieten kann.... ;-)
Un du wunderst dich, dass der Resetpin Strom zieht?
Kann es sein, dass ich da was gundsätzlich falsch verstanden habe?
Ich dachte immer ein Reset Eingan ist ein sehr hochohmiger
Signaleingang. Es kling für mich jetzt so, als ob der direkt mit den
Stromführenden eingängen gekoppelt ist.
Der Reset-Anschluss ist hinsichtlich der Schutzdiode nach VCC etwas
anders gebaut, da dort bei High-Voltage-Programming die
Programmierspannung anliegt.
Das mit der Schutzdiode im High-Voltage programming mode hab ich auch
schon gehört.
Der Reset ist ja als eingang geschaltet. Ich verstehe noch immer nicht,
wieso ein hochohmiger eingang strom zieht. Das mach für mich keinen
sinn. Die Schutzdioden sind doch dafür da den uC zu schützen, falls die
Spannung am Eingang unter GND fällt, also negativ wird oder übermässig
hoch...
Michael schrieb:> Das mit der Schutzdiode im High-Voltage programming mode hab ich auch> schon gehört.>> Der Reset ist ja als eingang geschaltet. Ich verstehe noch immer nicht,> wieso ein hochohmiger eingang strom zieht. Das mach für mich keinen> sinn. Die Schutzdioden sind doch dafür da den uC zu schützen, falls die> Spannung am Eingang unter GND fällt, also negativ wird oder übermässig> hoch...
Wenn die Spannung an VCC z.B. 0V hat, und an einem Pin 3,3V, dann
fliesst über die Schutzdiode nach VCC Strom.
Wenn deine Spannung im uC absinkt, weil du zu viel Strom ziehst, dann
fliesst Strom über die Schutzdiode eines Pins in deinen uC.
Ja, ist Strange, aber ganz einfach erklärbar.
Daniel V. schrieb:> Wenn die Spannung an VCC z.B. 0V hat, und an einem Pin 3,3V, dann> fliesst über die Schutzdiode nach VCC Strom.
Nicht beim Reset-Pin.
Beim Reset Pin fehlt diese Schutzdiode ja eben wegen dem HV
Programmiermodus.
Der ATMEGA liefert ja nirgens Strom hin. Der Muss ja den Strom der LEDs
"schlucken"...
@ Hugo (Gast)
>am PortC (so schnell als möglich toggeln) Flussspannung 3.1V>Vorwiderstand 4.7Ohm.
Ist reichlich unsinnig. Ein so niedriger Vorwiderstand hat praktisch
kaum eine Wirkung, die Toleranzen der Flußspannung knallen hier voll
rein. Siehe LED. Ausserdem hat der AVR selber ca. 30 Ohm
Ausgangswiderstand an seinen IOs.
Ich tippe trotzdem auf Spannungseinbruch wegen zu niedriger
LED-Vorwiderstände. Mach die mal so groß, daß du die LED's
gerade noch leuchten siehst. Wenn der Effekt dann weg ist,
lag es daran. Dann vielleicht mal nachdenken über Transistoren
zur Ansteuerung der LED's. Damit ziehst du schonmal den
Prozessor nicht an seinen Beinen runter. Die Spannung insgesamt
solltest du trotzdem beobachten, was die macht.
Miß die bitte mal, und zwar auch in dem Zustand, in dem der
Prozessor den Reset macht. Und den Strom genauso. Ohne diese
Angaben kommen wir nicht weiter, denke ich. Nicht nur rechnen,
sondern auch messen, damit man sieht, was wirklich passiert.
Und nicht, was rechnerisch passieren müßte.
Mach das mal bitte, ok?
Michael schrieb:> Ich hab die Vorwiderstände auch schon ganz weggelassen oder einige LEDs> ganz abgehängt mit dem gleichen Ergebnis....
Was an
"Mach die mal so groß, daß du die LED's gerade noch leuchten siehst"
hast Du nicht verstanden?
Richtig, es reicht ja schon, wenn eineLED die Kennlinie überschritten
hat und zu viel Strom zieht. Also faktisch einen Kurzschluß an den
Prozessor-Ausgängen macht. Um das auszuschließen, macht man
entweder die Widerstände größer, damit weniger Strom fließt, oder
man klemmt die LED's völlig ab und mißt die Spannungen.
@ Falk Brunner
>Ist reichlich unsinnig. Ein so niedriger Vorwiderstand hat praktisch>kaum eine Wirkung, die Toleranzen der Flußspannung knallen hier voll>rein. Siehe LED. Ausserdem hat der AVR selber ca. 30 Ohm>Ausgangswiderstand an seinen IOs.
eben Hugo
Ich weiß nicht ?
Mehr als in einem Versuchsaufbau das Problem zu verifizieren kann man
wohl nicht machen.
Ich bin sicher es liegt an den geringen Vorwiderständen der Leds.
Wie gesagt blaue mit 4.7Ohm das Problem tritt auf
rote mit 1.7V und 120Ohm kein Problem
Gruß Hugo