Hallo zusammen, ich habe ein Problem mit der Stromversorgung einer meiner selbstgelöteten Platinen. Die Platine soll direkt an eine passende Stromversorgung angeschlossen werden. Ich möchte keinen Spannungswandler verwenden, der Spannung in Wärmer verheizt. Es soll eine "IoT" Platine werden, die 24/7 läuft und möglichst wenig Strom verbraucht. Ich habe ein Netzteil (1), regelbar mit 3V/1,2A und ein zweites (2) mit fixen 3,3V/1A. Mit (1) funktioniert meine Platine wunderbar, mit (2) startet die Platine maximal jedes zweite Mal nach dem Einstecken der Stromversorgung sauber. Zu meiner Platine (siehe auch angehängtes Bild): -ATmeag32 mit 100nF und 1µF Keramik direkt an GND/VCC, 10µF Elko auch möglichst dicht dran. - 2 Sensoren: Temperatur MCP9808 und Luftfeuchtigkeit SHT31 - Ein ESP8266-01 WLan Modus. Das ist ja ziemlich empfindlich, daher hat es ein 100µF Elko direkt an VCC bekommen. Ich vermute, dass der ATmega nicht sauber startet. Der ESP macht anhand des blinkens seiner Activity-LED nicht den eindruck, wie als würde er abschmieren und dauernd neustarten. Hat jemand eine Idee, was das Problem sein könnte? Netzteile "auf gut Glück" kaufen ist nämlich doof...
Ich hatte mal ein ähnliches Problem in einer sehr ähnlichen Anwendung: Atmega 168 mit ESP-01 Modul und ein Handyladegerät + LF33CV Spannungsregler. Folgendermaßen habe ich es gelöst: Beim AVR habe ich den Brown-Out Detektor eingerichtet und die längste mögliche Startup-Time per Fuse eingerichtet. Dadurch statete der AVR zuverlässig. Beim ESP habe ich den Reset Eingang mit einem AVR Pin verbunden. Auf dem AVR startet das Programm, macht eine Sekunde Sleep und erst danach darf der ESP starten. Die Beschaltung des reset Pins macht es mir außerdme möglich, den ESP zu überwachen und zu resetten, falls er mal hängt. Bei einer frühen Firmware Version war das mehrmals täglich nötig. Die letzten Module, die ich im vergangenen Sommer gekauft hatte, leifen aber mehr als eine Woche ohne Reset durch. Danach habe ich aufgehört, sie zu beobachten. Wenn du sicher bist, dass bei dir nur der AVR zickt, dann müsste die Kombination "Brown-Out" + längste Startp-Time genügen. Falls nicht, könntest du dessen Reset Pin mit 10k Ohm + 10µF beschalten, damit er noch später startet. Aber mach einen Jumper dazwischen, denn manche ISP programmer versagen, wenn am Reset Pin ein dicker Elko hängt.
Also seit die Arduino IDE die ESP (mit Plugin) direkt unterstützt und man das nur noch im Bibliotheksverwalter zum download markieren muss programmiere ich die ESP immer direkt. Der hat um längen mehr Power als der AVR der ihn sonst per Terminal steuert und gerade bei kleinen Projekten braucht man auch nicht mehr IO-Pins...
Sascha B. schrieb: > startet die Platine maximal jedes zweite Mal nach dem Einstecken der > Stromversorgung sauber. Ich verstehe nicht, warum Du die Lötseite spiegelverkehrt abbilden musstest. Wie ist der Reset-Pin vom AT328 beschaltet - mir scheint er offen zu sein?
Sascha B. schrieb: > -ATmeag32 mit 100nF und 1µF Keramik direkt an GND/VCC, 10µF Elko auch > möglichst dicht dran. Da fehlt aber noch einer auf der anderen Seite an AVcc. Sascha B. schrieb: > Ich habe ein Netzteil (1), regelbar mit 3V/1,2A Der Atmega32 läuft nur mit >4,5V.
Thomas E. schrieb: > Der Atmega32 läuft nur mit >4,5V. Das Datenblatt sagt etwas anders: DC Characteristics: TA = -40°C to 85°C, VCC = 2.7V to 5.5V Lediglich bei >8MHz gilt >4,5V, Sascha verwendet aber einen 3,6864MHz Quarz.
Nein im Datenblatt steht eindeutig: Operating Voltages – 2.7V - 5.5V for ATmega32L – 4.5V - 5.5V for ATmega32 Wenn er also nicht die L Variante hat, gehen 3,3V nicht. > DC Characteristics: > TA = -40°C to 85°C, VCC = 2.7V to 5.5V Das was du da zitierst ist die Stromaufnahme, genauer die Bedingungen unter denen sie gemessen wurde. Das sagt NICHTS über die Funktionalität unter diesen Bedingungen aus.
:
Bearbeitet durch User
AREF beschaltet? Liefert das Netzteil denn auch "gesiebte/stabile" Gleichspannung? Wie hoch ist die Spannung, auf der 3/3.3V Seite, wenn Du das Netzteil anschließt? Evtl. kann Dein Netzteil in Wirklichkeit nur 300mA. Kabel getauscht?
Und WENN der Controller dann mal die korrekte Spannung erhalten hat, diese durch MESSEN verifizieren und auch den RESET Pin messen und testweise hart auf VCC legen.
Sascha B. schrieb: > Ich habe ein Netzteil (1), regelbar mit 3V/1,2A und ein zweites (2) mit > fixen 3,3V/1A. Mit (1) funktioniert meine Platine wunderbar, mit (2) > startet die Platine maximal jedes zweite Mal nach dem Einstecken der > Stromversorgung sauber. Also wenn die Platine mit 3V läuft und mit 3V3 nicht, dann denke ich nicht, dass wir hier ein Problem mit "korrekten Spannungen" haben.
Was auf dem Netzteil draufsteht ist nicht zwangsläufig auch das, was aus dem Netzteil rauskommt.
Cyblord -. schrieb: > Nein im Datenblatt steht eindeutig: > > Operating Voltages > – 2.7V - 5.5V for ATmega32L > – 4.5V - 5.5V for ATmega32 Ja, das habe ich jetzt auf der ersten Seite unter "Features" auch gefunden. Komischerweise habe ich aber unter "Electrical Characteristics" nichts dazu gefunden. Cyblord -. schrieb: > Das was du da zitierst ist die Stromaufnahme, genauer die Bedingungen > unter denen sie gemessen wurde. Das sagt NICHTS über die Funktionalität > unter diesen Bedingungen aus. Das ist aber äußerst merkwürdig, dass das Datenblatt Angaben macht zu einer Betriebsart, bei der µC nicht mehr funktionieren muss...
Dietrich L. schrieb: > Cyblord -. schrieb: >> Das was du da zitierst ist die Stromaufnahme, genauer die Bedingungen >> unter denen sie gemessen wurde. Das sagt NICHTS über die Funktionalität >> unter diesen Bedingungen aus. > > Das ist aber äußerst merkwürdig, dass das Datenblatt Angaben macht zu > einer Betriebsart, bei der µC nicht mehr funktionieren muss... Noch dazu steht ja drüber:
1 | TA=-40°C to 85°C, VCC = 2.7V to 5.5V (Unless Otherwise Noted) |
2 | ^^^^^^^^^^^^^^^^^^^^^^^^ |
Und Icc wurde bei Atmega32 (ohne L) immer nur bei 5V gemessen im Datenblatt.
Vielen Dank für die zahlreichen Antworten! Stefan U. schrieb: > Folgendermaßen habe ich es gelöst: Beim AVR habe ich den Brown-Out > Detektor eingerichtet und die längste mögliche Startup-Time per Fuse > eingerichtet. Dadurch statete der AVR zuverlässig. > > Beim ESP habe ich den Reset Eingang mit einem AVR Pin verbunden. Auf dem > AVR startet das Programm, macht eine Sekunde Sleep und erst danach darf > der ESP starten. Die längste Startup-Time hatte ich schon. Nun habe ich noch ein sleep zu Beginn des Programms eingebaut und siehe da... die Platine startet zuverlässig! Ich brauche nichtmal den ESP am booten zu hindern. Dieses Verhalten verstehe ich aber nun doch nicht ganz. Ist das Netzteil derart schwachbrüstig und die Kondensatoren ziehen noch derart Strom, dass der ATmega bei der Initialisierung (in meinem Fall UART und TWI, dann warten bis der ESP 'ready' ist) ins Straucheln gerät? Thomas E. schrieb: > Da fehlt aber noch einer auf der anderen Seite an AVcc. Verständnisfrage von mir als nicht-Elektroniker: Warum kann AVcc nicht den Keramik auf der anderen Seite (1cm Kabel entfernt) mitnutzen? Cyblord -. schrieb: > Operating Voltages > – 2.7V - 5.5V for ATmega32L > – 4.5V - 5.5V for ATmega32 > > Wenn er also nicht die L Variante hat, gehen 3,3V nicht. Ich verwende tatsächlich die nicht-L Variante. Ich habe allerdings mehrfach im Internet gelesen, dass sich beide Varianten nicht unterscheiden sollen. Das deckt sich auch soweit mit meinen Erfahrungen. Intel produziert auch nicht 50 verschiedene CPUs (innerhalb einer Generation), sondern nur wenige. Verschiedene Produkte entstehen dann durch testen der produzierten Chips. Ist bei der Produktion eines Quadcore mal ein Staubkorn auf den Wafer geraten und dadurch ein Core kaputt, wird noch ein Core per Software deaktiviert und das Teil als Dualcore verkauft. Gleiches gilt für die Taktfrequenz. Hier kauft man nur eine Zusicherung, dass mit einem bestimmten Takt die CPU dauerhaft läuft. Übertakten geht ja immer und von Chip zu Chip auch unterschiedlich viel. Man verkauft die CPUs wohl aus Qualitätsgründungen nicht mit Takt am Limit. Lange Rede kurzer Sinn: Ich hatte bisher immer Glück mit meinen ATmegas non-L und 3,3V ;) Pete K. schrieb: > Wie hoch ist die Spannung, auf der 3/3.3V Seite Wenn meine Platine läuft und der ESP fleißig sendet, zeigt schwankt mein Multimeter zwischen 3,2-3,3V. Eine andere Messmöglichkeit habe ich leider nicht.
> Ist das Netzteil derart schwachbrüstig Bei manchen Netzteilen steigt die Spannung im Einschaltmoment nicht kontinuierlich an, sondern sie steigt an, sackt dann wieder etwas ab, und steigt dann erneut an bis auf den Soll-Wert. Wenn der AVR vor dem Absacker startet, kann es passieren, dass in der Abschaker-Phase die Spannung zu gering wird, als dass er vernünftig läuft. Dein zusätzlicher SLeep am Anfang hat warscheinlich bewirkt, dass die Platine am Anfang noch nichts tut, was eine stabile Spannungversorgung erfordert.
Sascha B. schrieb: > Die längste Startup-Time hatte ich schon. Nun habe ich noch ein sleep zu > Beginn des Programms eingebaut und siehe da... die Platine startet > zuverlässig! Das riecht etwas mehr nach Zufallsergebnis als nach zuverlässiger Lösung. Hast Du das eigentlich mal ausprobiert: Stefan U. schrieb: > Wenn du sicher bist, dass bei dir nur der AVR zickt, dann müsste die > Kombination "Brown-Out" + längste Startp-Time genügen. Denn "Brown-out Detection" ist genau für den Fall gemacht, um bei Spannungseinbrüchen von Vcc einen sauberen Reset zu erzeugen. Aus dem Datenblatt: "Brown-out Detection ATmega32 has an On-chip Brown-out Detection (BOD) circuit for monitoring the VCC level during operation by comparing it to a fixed trigger level. The trigger level for the BOD can be selected by the fuse BODLEVEL to be 2.7V (BODLEVEL unprogrammed), or 4.0V (BODLEVEL programmed). The trigger level has a hysteresis to ensure spike free Brown-out Detection. The hysteresis on the detection level should be interpreted as VBOT+ = VBOT + VHYST/2 and VBOT- = VBOT - VHYST/2. The BOD circuit can be enabled/disabled by the fuse BODEN. When the BOD is enabled (BODEN programmed), and VCC decreases to a value below the trigger level (VBOT- in Figure 19), the Brown-out Reset is immediately activated. When VCC increases above the trigger level (VBOT+ in Figure 19), the delay counter starts the MCU after the Time-out period tTOUT has expired." Du müsstest also über die Fuses BODEN einschalten und den BODLEVEL auf 2,7V einstellen.
Sascha B. schrieb: > Verständnisfrage von mir als nicht-Elektroniker: Warum kann AVcc nicht > den Keramik auf der anderen Seite (1cm Kabel entfernt) mitnutzen? Weil der für die andere Seite ist. Stützkondensatoren gehören an jeden Spannungsanschluß. Stattdessen kannst du den völlig überflüssigen 1µF weglassen.
:
Bearbeitet durch User
Thomas E. schrieb: > Warum kann AVcc nicht >> den Keramik auf der anderen Seite (1cm Kabel entfernt) mitnutzen? Ich denke das kann man ohne Probleme so machen. Aber was mir gar nicht gefällt (und was vielleicht Probleme macht) ist die fehlende kurze Anbindung der Quarz-Last-Cs an die Prozessor Masse. Soweit ich das erkennen kann geht die Masse dafür einen weiten Umweg. Welchen Wert haben die Quarz-Last-Cs?
Arduinoquäler schrieb: > Ich denke das kann man ohne Probleme so machen. Hier geht es nicht darum, was du denkst, sondern was zu einem vernünftigen Schaltungsdesign gehört. Auch auf Lochraster. Gerade auf Lochraster. Das ist Stand der Technik und keine Diskussionsgrundlage oder Verhandlungsmasse.
:
Bearbeitet durch User
Thomas E. schrieb: > Hier geht es nicht darum, was du denkst, sondern was Stand der Technik > ist. Nö, es geht darum dass es bei ihm sicher funktioniert. Und dieser Aspekt macht sicherlich keine Probleme. Wenn du diskutieren willst was Stand der Technik ist dann mach doch deinen eigenen Thread dazu auf.
Arduinoquäler schrieb: > Wenn du diskutieren willst was Stand der Technik ist dann > mach doch deinen eigenen Thread dazu auf. Darüber wird nicht diskutiert. Und mit dir schon gar nicht.
Thomas E. schrieb: > Das ist Stand der Technik und keine Diskussionsgrundlage > oder Verhandlungsmasse. Nachdem Motto: mach es so wie ich, der grosse Thomas Eckmann es dir sage oder stirb.
Arduinoquäler schrieb: > Nachdem Motto: mach es so wie ich, der grosse Thomas Eckmann > es dir sage oder stirb. Du hast es verstanden.
Sascha B. schrieb: >> Wenn er also nicht die L Variante hat, gehen 3,3V nicht. > Ich verwende tatsächlich die nicht-L Variante. Ich habe allerdings > mehrfach im Internet gelesen [bla bla bla]. Wenn du den Controller absichtlich außerhalb der Spec nutzt, dann kann es gut gehen, aber bei dir geht es nicht gut also würde ich mir darum mal Gedanken machen. WIE die Unterscheidung zustande kommt, brauchst du mir nicht erzählen. Nur warum ist dein non-L Typ ein solcher? Vielleicht weil er die Tests zum L-Typ nicht bestanden hat? Denk mal drüber nach. Lange Rede kurzer Sinn, betreibe den Controller innerhalb seiner Specs und nutze einen L-Typ wenn du 3,3V hast oder lebe damit dass er evt. auch mal nicht geht, oder vielleicht auch nur bei 10 Grad Raumtemperatur mehr oder weniger rumzickt. Das kann leider alles passieren und dann schlägst du wieder hier auf.
oder nicht darauf getestet. Könnte auch sein das er keine 16 MHz geschaft hat und deswegen ein L wurde
Magnus M. schrieb: > Schlimmer noch: er hat am ISP Stecker weder GND noch VCC > angeschlossen! GND am ISP hatte ich tatsächlich vergessen. Danke. Dietrich L. schrieb: > Das riecht etwas mehr nach Zufallsergebnis als nach zuverlässiger > Lösung. > Du müsstest also über die Fuses BODEN einschalten und den BODLEVEL auf > 2,7V einstellen. Ja, das Sleep stellt mich auch auch nicht 100% zufrieden, weil es eben nicht garantiert den Worst-Case abfängt. Ich habe nun noch den Brown-Out auf 2,7V aktiviert. Damit habe ich nun aber nun das Problem, dass der ATmega garnicht mehr startet. Falsch machen kann man da ja eigentlich nix... Aber scheinbar ja doch. :/ 3,3V liegen jedenfalls an Vcc an und da misst der Brown-Out laut Datenblatt. Thomas E. schrieb: > Weil der für die andere Seite ist. Stützkondensatoren gehören an jeden > Spannungsanschluß. Stattdessen kannst du den völlig überflüssigen 1µF > weglassen. Gibt es ein gutes Buch (oder eine andere Quelle), das solche Grundlagen für Schaltungen erklärt? Am besten mit Beispielen und mit Erklärungen warum man das in dem jeweiligen Fall genau so macht.
Arduinoquäler schrieb: > Aber was mir gar nicht gefällt (und was vielleicht Probleme > macht) ist die fehlende kurze Anbindung der Quarz-Last-Cs > an die Prozessor Masse. Soweit ich das erkennen kann geht die > Masse dafür einen weiten Umweg. Ah, da lagen wahrscheinlich die Kabel ungünstig. Habe noch ein Bild angehängt. Kurzer gehts (fast) kaum. Wobei ich das bisher auch nicht wusste, dass man darauf achten sollte. Wieder was gelernt. Danke :) Arduinoquäler schrieb: > Welchen Wert haben die Quarz-Last-Cs? Die im Datenblatt verlangten 22pF.
Besonders bei der GND Leitung und ganz besonders am Quarz sollte man Ring- und Bogenförmige Leitungsverläufe vermiden. Besser alle GND Leitungen sternförmig an einem Punkt zusammen laufen lassen - soweit es machbar ist.
Ich sehe da keinen Kondensator am Reset-Anschluss (für hardwaremäßigen Power-On-Reset), oder irre ich mich? Wenn du den ein wenig größer als die normalen 100n machst, hast du einen längeren Reset und kannst somit evtl. deine Probleme beseitigen
Ich weiß nicht ob so ein Lochraster Drahtverhau wirklich das richtige ist. Die gekreuzten Leitungen streuen ganz gut in der Gegend herum. Bei den paar Bauteilen hat man noch schnell ein Layout erstellt. Grosse Masseflaechen und saubere Leiterbahnfuehrung. Gruss
BastlerRedbull schrieb: > Die gekreuzten Leitungen streuen ganz gut in der Gegend herum. Das hängt ja eher von der Datenrate ab die er mit den Komponenten fährt. Ich würde jetzt mal ganz naiv sagen, wenn er mit Datenraten um die 9600 bit/s arbeitet, sollte das alles doch recht unkritisch sein?
:
Bearbeitet durch User
Patrick schrieb: > Ich sehe da keinen Kondensator am Reset-Anschluss (für hardwaremäßigen > Power-On-Reset), oder irre ich mich? Das rote ist es. 47nF Robin R. schrieb: > Ich würde jetzt mal ganz naiv sagen, wenn er mit Datenraten > um die 9600 bit/s Der ATmega unterhält sich mit dem ESP8266 mit 115200 baud. Bisher hatte ich jedenfalls keine Probleme. Die Platine läuft (mit einem gescheiten Netzteil) stabil über Tage hinweg problemlos. Länger habe ich noch nicht getestet.
> Ich weiß nicht ob so ein Lochraster Drahtverhau > wirklich das richtige ist. Es muss nicht immer eine Platine sein. Die ersten Computer waren voll von handgemachten Drahverhauen (schreibt man das so) und die hatten auch funktioniert.
Sascha B. schrieb: > Gibt es ein gutes Buch (oder eine andere Quelle), das solche Grundlagen > für Schaltungen erklärt? Bücher sind nicht alles. Die meisten Menschen lernen Grundlagen mit Hilfe einer einschlägigen Ausbildung. :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.