PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8L schaltet sich unter 3,4V ab



Gast2501212k
11.11.2007, 09:37
Hallo!
Ich bin total am verzweifeln. Ich baue grade einen mini-Roboter, der mit Solarzellen fährt. Funktionierte auch schon relativ gut, jedoch habe ich dann eine neue Platine gemacht, die ich geätzt habe, damit es kleiner wird und vor allem leichter. Gesagt, getan.... ich warte zwar noch auf ein paar Sachen von Reichelt für die Schaltung, aber ich habe schon die Grundschaltung eingelötet.
Naja, dann wollte ich die Platine an die Solarzellen anschließen und sie lief nicht, und und her probiert, wenn ich sie an mein Netzteil anschließe und bei 5V oder so starte und dann langsam runter drehe hört der atmega8L bei ca. 3,4V auf zu arbeiten.
Ich betreibe ihn mit 1Mhz (intern).
Meine Lösungsversuche: Ich habe den atmega gegen einen anderen getauscht, hat nichts gebracht.
Ich habe den atmega in meine alte Schaltung eingebaut, auf mal war hier das gleiche Problem (früher konnte ich ihn mit der alten Schaltung auf 2,7 runter drehen, lief dann zwar etwas langsamer wegen dem internen Taktgeber, aber das ist ja normal).
Ich habe das OSCCAL Register mal auf 0 gesetzt, damit er nur halb so schnell läuft (und auch weniger Saft benötigt), hat aber auch nichts gebracht, genaus wie wenn ich das Register auf 0xff setze.
Ich habe ein anderes Programm auf den atmega gespielt, was einfach nur ne LED blinken lässt mit einem sleep.
So, im Datenblatt steht ja eindeutig, dass man ihn bis auf 2,7V runter drehen kann und ich habe ihn sogar schon mit 2,5V betrieben. Läuft dann vielleicht nicht mehr unbedingt stabil, aber er läuft noch. Wenn ich jetzt unter diese magischen 3,4V komme friert er ein - komisch ist, dass er wirklich nur einfriert. Also wenn die blink-LED grade noch an war bleibt sie zumindest auch an. Kann natürlich auch irgendwas anderes sein, aber ich denke er friert nur ein, als würde ich den Quarz rausnehmen (habe natürlich keinen drin, aber so sieht es aus...).
Wenn ich die Spannung auf 2,8V oder so habe (also etwas über den 2,7V) und dann noch mal den Reset-Pin betätige tut sich auch nichts.

Kann mir jemand helfen?

Hubert.G
11.11.2007, 10:12
Wenn die Stromversorgung in Ordnung ist, also keine Spannungseinbrüche, dann würde mir nur noch BODEN in den Fuses einfallen. Ist das vielleicht aktiv. Sonst wären deine Fuses interessant, man kann sonst nur raten.

Gast2501212k
11.11.2007, 12:22
Hallo!
BODEN ist aus, habe es auch mal an gemacht, wenn ich dann noch BODLEVEL an mache, so dass er bei 4V abschaltet schaltet er schon bei *denk* glaube es waren 4,5V ab. Auf jeden Fall über 4V.
Ich habe als Anhang mal nen Screeny der Fuses angehängt.

Hubert.G
11.11.2007, 13:13
Kannst du auch mal die Schaltung posten, das sieht so nach Stromversorgung über eine Dioden aus.

Gast2501212k
11.11.2007, 13:49
Ohh verdammt!
Also, ja du hast teilweise Recht... in der alten Schaltung ist tatsächlich ne Diode drin! Aber in der neuen nicht :( Im Anhang ist der Schaltplan und das hoffentlich richtige Layout.

Edit: Ich habe das Experiment grade nochmal mit der neuen Schaltung gemacht und jetzt geht er bei 3,1V aus...und nicht mehr bei 3,4V, keine Ahnung warum, aber es fehlen ja immer noch 0,4V :(

Besserwessi
11.11.2007, 15:11
Die größe der Kondensatoren macht mich etwas Stutzig: sind mit 470m superkondensatoren mit 0,47 F gemeint ? C5 sollte aber wohl 100 uF sein.
Ein normaler Elko (100uF bis 470uF) parallel zu C1/C9 könnte in der Schaltung auch nicht schaden. An den Motoren Fehlen übrigens noch Freilaufdioden um die FETs (und die Elkos C3/C4) zu schützen, den ein Motor ist auch eine Induktive Last.

Der Widerstand R14 sollte nicht in Reihe zu Zenerdiode sein, sondern eher in Reihe mit Q5.

Es könnte sein das die Spannung nicht besonders stabil ist und Störungen von den Motoren den Prozessor zum stoppen bringen. Das Layout sieht schon etwas Komisch aus. Sind das etwa 3 Layer für so eine einfache Schaltung ?

Gast2501212k
11.11.2007, 15:32
Wow, keine Ahnung, was du da nun alles zu meckern hast ;)
Fang ich mal an...
Es sind durchaus 0,47F gemeint und C5 sollen auch 0,1F sein. Wie gesagt, die Platine wird über Solarzellen betrieben (oder hab ich das nicht gesagt???). Die Solarzellen sollen den Atmega laden, der klemmt sich dann selber von den Solarzellen ab (Q5) und läd mit Q3 die Kondensatoren für die Motoren auf. Sind die aufgeladen entläd er sie mit Q2 und Q1 und die Motoren laufen.
Sollte die Spannung des atmegas unter 2,8V oder so fallen bricht er alles was mit den Motoren zu tun hat ab und läd sich erstmal selber nach.
Warum soll ich zu C1/C9 noch weitere Kondensatoren parallel schalten?
Was die Freilaufdiode angeht: In den FETs ist eine drin, sieht man auf der Schaltung leider nicht, da das das falsche Schaltbild ist, das vom BSN20 gabs bei Eagle nicht.
Warum soll ich R14 in Reihe mit Q5 schalten? dann habe ich ja auch nen Widerstand vorm atmega... ist das so gesund?
Das die Motoren den Atmega anhalten kann nicht sein, da ich keine Motoren angeschlossen habe bis lang, wie gesagt, es fehlen noch Bauteile und ich arbeite auch nur mit einem LED-Blink Programm!
Was das Layout angeht: Ich habe inzwischen auf eine Version, die nur einen statt zwei Layer braucht (keine Ahnung, wo du da nen 3. Layer siehst...), habe ich aber noch nicht geätzt. Und werde ich auch erst machen, wenn ich weiß, dass die Schaltung funktioniert.

recycle
11.11.2007, 16:25
so starte und dann langsam runter drehe hört der atmega8L bei ca. 3,4V auf zu arbeiten.

Wie misst du denn die 3.4 Volt? Ein µC resettet schon bei sehr kurzen Spannungseinbrüchen und misst am AD-Eingang auch sehr kurze Spannungseinbrüche.
Mit einem einfachen Multimeter wirst du diese Spannungseinbrüche nicht feststellen können.

Ich hatte schon mal ähnliche Probleme, ein etwas dickerer Elko (1000µF oder auch mehr) parallel zur Spannungsquelle hat bei mir Wunder bewirkt.

uwegw
11.11.2007, 16:36
Bei solchen low-power/low-voltage-Anwendungen solltest du den veralteten Mega8 rauswerfen und einen Mega48/88/168V nehmen. Der rennt schon ab 1,8V, und braucht ne ganze Ecke weniger Strom.

Hubert.G
11.11.2007, 16:48
Mit R14 schützt du nur die Z-Diode aber nicht den ATmega, der Widerstand gehört in die VCC-Leitung. Wenn du Kondensatoren wie C6 / C8 und C1 / C9 in Serie schaltest solltest du hochohmige Widerstände parallel schalten, Goldcap sind sehr empfindlich gegen Überspannung.
Schau mal im Datenblatt nach was die Dioden in den FETs aushalten, ich würde sie nicht als Freilaufdioden hernehmen.
100n an den Reset-Pin würden auch nicht schaden.

Gast2501212k
11.11.2007, 21:18
@uwegw: Cool, danke! Das Teil ist ja genial. Das scheint mir ja praktisch identisch zu sein mit dem atmega8, nur dass er schon ab 1,8V rennt! Also die Pins sind zumindest alle samt die gleichen, von daher kann ich den ja einfach austauschen. Da sind auf jeden Fall 2 von in der nächsten Reichelt Bestellung ;)

@Hubert.G:

Wenn du Kondensatoren wie C6 / C8 und C1 / C9 in Serie schaltest solltest du hochohmige Widerstände parallel schalten, Goldcap sind sehr empfindlich gegen Überspannung.
Mhhh, hat das jetzt nur was damit zu tun, weil ich die in Serie schalte oder sollte da allgemein ein hochohmiger Widerstand noch parallel?
2 Fragen dazu: Soll ich zu jedem der Kondensatoren einen Widerstand parallel schalten, sprich 2 Gold-Caps = 2 Widerstände? Oder reicht da einer einmal von oben nach unten und fertig?
Was bezeichnest du als hochohmig? Das liegt für mich im mega-ohm Bereich, was soll das denn noch bringen? 8-[

@recycle:
Ich habe es fast immer so probiert, dass ich an meinem Netzteil die Spannung langsam runter gedreht habe. Habe auch mal einen 22µF parallel geschaltet, brachte nix. Aber ich habe die Spannung auf mal auf 2,8V gestellt und dann den Reset-Pin gegen GND gelegt, er sagte kein Mucks.


Nochmal zu den Freilaufdioden, im Datenblatt des BSN20 habe ich leider nichts brauchbares dazu gefunden. Aber ich wollte die Motor-Kondensatoren eigentlich nur bis 3, maximal 4V aufladen, da die Motoren sowieso nicht viel mehr abkönnen. Sollte die doch wohl aushalten, oder?

Besserwessi
11.11.2007, 21:34
Die Freilaufdioden gehören parallel zum Motor, können also nicht in den FETS integriert sein, das klappt nur bei einer Brückenschaltung. Die Supercaps haben eine recht hohen innenwiederstand und können daher kurze Lastspitzen nicht gut abfangen. Ein 100uF Elko wären am Prozessor schon hilfreich 100nF an Reset halte ich für übertrieben, auch wenn man das häufiger sieht, mir reichen eigentlich immer 1nF oder 100pF.

Ein Mega48/88 wäre wirklich besser, dann aber besser gleich die PV Version (die nur V Version wird ohnehin eher schwerer zu kriegen sein).

Gast2501212k
11.11.2007, 21:54
Ok, vielen dank dafür erstmal...
Ich werde noch weitere Elkos integrieren, sowohl am atmega, wobei ich es da eher für relativ unnötig halte, denn der braucht ja nicht plötzlich viel Strom... und am Kondensator der Motoren.
Brauche ich die Zusatzkondensatoren auch wenn ich die Kondensatoren lade? Weil durch die Solarzelle kommen ja vermutlich sowieso nie mehr als 20mA.
Dann wegen der Freilaufdiode, da werde ich wohl doch eine extra einbauen müssen, denn ich habe grade doch die passende Angabe im Datenblatt gefunden und die Diode hält grade mal 0,9V aus... und bei Wiki steht, dass man die Diode immer für eine Spannung auslegen soll mit der auch die Motoren laufen.
Was den atmega angeht... also bei reichelt gibt es die V Version, die PV aber nicht :/ was ist denn an der noch anders?

Und dann bleibt noch die Frage mit den Widerständen an den Kondensatoren....

recycle
12.11.2007, 01:27
@recycle:
Ich habe es fast immer so probiert, dass ich an meinem Netzteil die Spannung langsam runter gedreht habe. Habe auch mal einen 22µF parallel geschaltet, brachte nix. Aber ich habe die Spannung auf mal auf 2,8V gestellt und dann den Reset-Pin gegen GND gelegt, er sagte kein Mucks.


Ich kann mir eigentlich nicht vorstellen, dass die ATMegas mehr Spannung brauchen als im Datenblatt angegeben. Einer vielleicht, aber du hast ihn ja auch schon gegen einen anderen ausgetauscht.

Dass du in der "alten" Schaltung bis auf 2,7V runtergehen konntest, spricht ja auch eher dagegen, dass am Controller liegt.

Ich kann nicht beurteilen, wie gut deine Schaltung ist, aber so wie es sich hierm im Thread liest, scheint es ja noch Potential für Verbesserungen zu geben.
Da könnte ich mir schon vorstellen, dass es kurze Spannungseinbrüche gibt, die sich bei 4V noch nicht, bei 3,4 Volt aber schon bemerkbar machen.
Ein 22µF Elko puffert da nicht viel weg, ich würde es mindestens zum Test mal mit einem grösseren probieren.

Ich habe mir einen kleinen Robby mit 2 Motoren und ein paar einfachen Sensoren aufgebaut.
Weil ich das Ding möglichst leicht haben wollte, habe ich 4 Microzellen, also 4,8V als Spannungsversorgung genommen.
Da ich keinen ATMega8L da hatte, habe ich einen normalen verwendet.
Das klappte erst mal gar nicht und der µC hat sich ständig nur resetet.

Nachdem ich dann einen Elko mit 1000µF parallel zu den Akkus geschaltet habe klappts wunderbar. Selbst wenn die Akkus fast leer sind und ich die Motoren in voller Fahrt wld hin- und her schalte.
Ich hätte vorher nie gedacht, dass ein oller Elko soviel ausmacht.

Hubert.G
12.11.2007, 12:00
Die Widerstände parallel zu den Goldcap sind dafür das sich die Spannung ausgleicht. Die Goldcap sind nie ganz gleich, daher verschiebt sich die Spannung bis einer zuviel hat. Widerstände im MOhm-Bereich genügen.

Gast2501212k
14.11.2007, 09:43
Hallo nochmal ;)
Habe nun (hoffentlich) alles eingebaut, was ihr hier so im Laufe des gesprächs gesagt habt.
Das einzige was ich jetzt noch nicht so ganz schnalle ist warum R14 in Reihe mit der Saft Versorgung soll. Naja wenn ich da nen atmega88 Verwende fällt das sicherlich nicht mehr so ins Gewicht... mal sehen.
Bitte nochmal ein besonders Augenmerk auf die Widerstände parallel zu den Gold-Caps legen (R15, R16, R17).
Danke schon mal im Voraus für alles!

Edit: Was mir da grade nochmal auffällt.... Ihr habt ja gesagt, dass die Gold-Caps es nicht abkönnen, wenn sie plötzlich ganz viel Strom liefern müssen, desshalb die 1000µF noch parallel. Aber nun ist es ja bei der Schaltung so, dass ich die Gold-Caps nur auflade um sie danach gleich wieder durch die Motoren zu entladen. Und da fließt sicherlich einiges an Strom... Geht das noch oder muss ich da noch nen Widerstand vor schalten?

Hubert.G
14.11.2007, 10:24
Wenn die Spannung an der Z-Diode grösser als 5,1V wird fliesst Strom durch die Diode, diesen muss man aber begrenzen das sie nicht zerstört wird, das geschieht mit R14. Dadurch sind an der Z-Diode und der nachfolgenden Schaltung 5,1V. Bei deiner ursprünglichen Schaltung hattest du zwar an der Z-Diode die 5,1V an der Schaltung aber die volle Spannung.
R17 kannst du dir sparen, aber zu C6/C8 gehören noch Widerstände. Die Widerstände sind nur notwendig wenn zwei Goldcap in Serie geschalten sind.
Für die Motoren macht es nichts aus wenn die Spannung etwas einbricht, nur der µC verträgt das nicht. Es kommt in diesem Fall auf den Innenwiderstand an und der ist bei Goldcap grösser als bei Elko und Keramik-Kondensatoren. Ein Elko wäre also für die µC Versorgung wichtig.

Gast2501212k
14.11.2007, 10:39
Ok, nur damit ich das richtig verstehe: Es macht den Gold-Caps nichts aus, wenn viel Saft gezogen wird, es sinkt halt nur auf Grund des Innenwiderstands die Spannung?
Dann würde ich ja sagen, dass ich kein Elko für den µC brauche, denn der zieht ja maximal 1mA oder so. Wenn ich den amtgea88 nehmen sogar noch weniger...

Besserwessi
14.11.2007, 16:54
Im mittel ist da mit maximal 1 mA wohl richtig, aber kurzzeitig kann das deutlich mehr sein. Einmal in jeder Taktperiode einmal ganz kurz, dafür ist der 100nF KOndensator. Und dann wenn die Ausgänge umschaten und das gate umladen. Dafür könnte der 100nF Kondensator eventuell schon knapp werden. Außerdem sind Externe Störungen möglich, z.B. von den Motoren.

Gast2501212k
14.11.2007, 17:04
Ok, ich haben nun noch nen Elko mit 220µF eingebaut...
Dann sollte das alles fertig sein ;)
Vielen Dank an euch alle!

recycle
15.11.2007, 12:05
Dann würde ich ja sagen, dass ich kein Elko für den µC brauche, denn der zieht ja maximal 1mA oder so. Wenn ich den amtgea88 nehmen sogar noch weniger...


Ich glaube hier hast du einen kleinen Denkfehler.
Dieser Elko soll ja nicht die anderen Baugruppen vor Spannungseinbrüchen schützen die der Controller verursacht, sondern die Spannung am Controller stützen, wenn andere Verbraucher die Versorgungsspannung runterziehen.
D.h, bei diesem Elko kommt es nicht darauf an, wieviel Strom der ATMega braucht, sondern eher darauf, wieviel Strom der Rest der Schaltung bei kurzfristigen Stromspitzen zieht.

Eigentlich sollte man Spannungseinbrüche besser da bekämpfen wo sie auftreten, also z.B. durch Elkos direkt an der Spannungsversorgung und an Bauteilen die hohe Stromspitzen verursachen. Dann brauchst du auch keinen Elko direkt am Controller.

Ich glaube eigentlich auch nicht, dass der Elko direkt am Controller eine besonders effektive Maßnahme ist. Wenn die Versorgungsspannung hier einbricht, wird sie auch an anderen kritischen Punkten, z.B. dem Resetpin, AD-Referenzspannung, an anderen IC's, Sensoren usw. einbrechen.
Besonders viel nutzt es dir ja nicht, wenn du zwar verhinderst, dass der Controller durch die Spannungseinbrüche abschaltet, die Spannungseinbrüche aber weiterhin falsche Messwerte verursachen oder Fehlfunktionen an anderen ICs usw. verursachen.
Aber schaden wird er wohl auch nicht.

Gast2501212k
18.11.2007, 11:12
Hallo nochmal ;)
Ich habe die Schaltung inzwischen schon wieder komplett neu designd, da da viele Fehler drin waren. Z.B. kann das Entladen des Gold-Caps am µC nicht durch ein P-Channel Mosfet verhindern, denn der Saft fließt dank der Freilauf-Diode da drin super wieder zurück. Dann habe ich festgestellt, dass die Gold-Caps mit 0.47F einen sehr großen Innenwiderstand haben (müssen), da sie die Motoren nicht ansatzweise so gut betreiben wie die 0.1F. Aber so wirklich kann ich mir das nicht erklären, warum die nicht so gut funktionieren.
Jedenfalls ging das mit den 0.1F deutlich besser und die verwende ich jetzt auch wieder, da schalte ich einfach 6 Stück von parallel, dann verringert sich auch noch der Innenwiderstand. Und die sind auch noch deutlich leichter ;)

Gast2501212k
21.11.2007, 13:08
So, alle Probleme gelöst (hoffe ich) und es ist fertig und er funktioniert auch ;)
Habe im Anhang mal ein paar Bilder ;)