Hallo Leute, ich verwende einen Atmega8 an der unteren Grenze (2,7V), der über einen TPS61010 versorgt wird. https://www.ti.com/lit/ds/symlink/tps61016.pdf Bei Abschalten eines Verbrauchers(40mA) regelt der TPS nicht ganz sauber, d.h. es entsteht ein Spannungssprung von 2,73 auf 2,69V, der zum Reset des Atmega führt. Ich habe das Layout, Spule und die Kondensatoren(Eingang 10uF/Ausgang 10uF) des TPS komplett vom Datenblatt übernommen. Außer dem Anheben der Betriebsspannung oder Deaktivieren der BOD fällt mir momentan nichts ein, aber vielleicht fällt kennt hier jemand noch einen Trick dazu. Viele Grüße Alexander
:
Verschoben durch Moderator
Alexander H. schrieb: > vielleicht fällt kennt hier jemand noch einen Trick dazu. Grösseren Ausgangskondensator bzw. geringerer ESR ?
Alexander H. schrieb: > ich verwende einen Atmega8 an der unteren Grenze (2,7V), > ..., d.h. es entsteht ein Spannungssprung von 2,73 auf 2,69V, der zum Wenn du deinen ATmega auf 10mV an der Grenze betreibst, solltest du dein Design vielleicht einmal überdenken. Deine Verdrahtung oder deine Schaltung können auch ihren Beitrag leisten.
1. Du ueberdenkts dein schlechtes Design! 2. Du verstehst die Kompensation deines Schaltregler und schaffst es da noch was zu verbessern. 3. Du pappst dem Controller noch 1R in seine Zuleitung Vanye
Alexander H. schrieb: > Bei Abschalten eines Verbrauchers(40mA) was ist das denn für ein Verbraucher und wie wird der geschaltet? Ist das vielleicht ein Relais oder Motor etc. und da entstehen beim Abschalten irgendwelche Störsignale? Wie ist der Reset-Pin des Controllers beschaltet? Ist da z.B. nen 100nF Kondensator gegen Masse dran oder hängt der ganz offen? Irgendwelche Leiterbahnen an der Reset-Leitung, wenn ja wie lang?
> ich verwende einen Atmega8 an der unteren Grenze (2,7V) ... BOD ...
?
Gerd E. schrieb: > was ist das denn für ein Verbraucher und wie wird der geschaltet? Ist > das vielleicht ein Relais oder Motor etc. und da entstehen beim > Abschalten irgendwelche Störsignale? Die Last ist ein LM9022 Verstärker IC, der ein VFD versorgt (Ladungspumpe). Wenn der LM9022 in den Shutdown geht und ich ihn danach wieder per LOW einschalte, löst er den Reset des Atmega8 aus. Das Ganze funktioniert aber tadellos, wenn er per LM317 (2,7V) versorgt wird. Ich habe testweise den Spannungsteiler des TPS61010 auf 3V eingestellt, das Problem bleibt. Also ist es wohl eher irgendeine Art Störpuls, kein Spannungsabfall der das Reset auslöst. Auf meinem China Oszi sehe ich leider fast nichts, nur den Abfall der Ausgangsspannung des TPS, wenn ich die Last wegnehme. Der TPS hat verschiedene Betriebsmodi, vielleicht hat es damit etwas zu tun?
:
Bearbeitet durch User
Alexander H. schrieb: > Also ist es wohl eher irgendeine Art Störpuls, kein Spannungsabfall der > das Reset auslöst. Dann stell doch erstmal fest, was der ATmega8 als Grund für den Reset nennt. > Wenn der LM9022 in den Shutdown geht und ich ihn danach wieder per LOW > einschalte, löst er den Reset des Atmega8 aus. Wo in deiner Schaltung sitzt der LM9022? Ich mag jetzt nicht ewig suchen. Welches Signal nutzt du, um ihn wieder einzuschalten? > Auf meinem China Oszi sehe ich leider fast nichts, ... Dann stell es doch so ein, dass du etwas siehst ;-) Woran scheitert es denn?
:
Bearbeitet durch User
Der LM9022 sitzt anstelle des Trafos, alles sternförmig mit der Versorgung vom TPS verbunden. Vcc vom Atmega über 1-3 Ohm hab ich auch probiert, keine Änderung. Wie finde ich heraus, was der Atmega als Grund für den Reset nennt? Soetwas wie eine interne Logdatei gibt es ja wohl kaum. An welcher Stelle messe ich denn am besten mit dem Oszi? Am Ausgang vom TPS oder an Reset vom Atmega?
Alexander H. schrieb: > Der LM9022 sitzt anstelle des Trafos, alles sternförmig mit der > Versorgung vom TPS verbunden. > Vcc vom Atmega über 1-3 Ohm hab ich auch probiert, keine Änderung. > Wie finde ich heraus, was der Atmega als Grund für den Reset nennt? > Soetwas wie eine interne Logdatei gibt es ja wohl kaum. > An welcher Stelle messe ich denn am besten mit dem Oszi? > Am Ausgang vom TPS oder an Reset vom Atmega? Edit: Der LM9022 wird per LOW (Shutdown auf GND) eingeschaltet. Im eingeschalteten Zustand ist die Ausgangspannung des TPS bereits wellig-hochfrequent (evtl. Störungen durc die Ladungspumpe =30kHz). Ausgeschaltet sehe ich ein Dreieck. Kann das bereits der Grund für den Reset sein?
:
Bearbeitet durch User
> Wie finde ich heraus, was der Atmega als Grund für den Reset nennt?
Alexander H. schrieb: > Wenn der LM9022 in den Shutdown geht und ich ihn danach wieder per LOW > einschalte, löst er den Reset des Atmega8 aus. Also das Problem tritt nicht beim Abschalten der Last auf, sondern wenn Du die Last wieder einschaltest? > Das Ganze funktioniert aber tadellos, wenn er per LM317 (2,7V) versorgt > wird. > Ich habe testweise den Spannungsteiler des TPS61010 auf 3V eingestellt, > das Problem bleibt. Eine Ladungspumpe hat ja einen Kondensator der geladen werden muss wenn sie eingeschaltet wird. Der Kondensator wird vermutlich leer sein oder nur mit den 2,7V geladen sein wenn sie aus ist. Wie groß ist der im Verhältnis zum Ausgangskondensator von dem TPS61010? Der TPS61010 als Schaltregler reagiert etwas langsamer als ein Linearregler. Für den allerersten Moment muss also dessen Ausgangskondensator herhalten um Schwankungen auszugleichen.
> Das Ganze funktioniert aber tadellos, wenn er per LM317 (2,7V) > versorgt wird. Was ist dann der Grund für den Schaltregler? PS: Sowie der Grund für die 2.7 V - im Schaltplan finde ich nur 5 V.
:
Bearbeitet durch User
Alexander H. schrieb: > Der LM9022 sitzt anstelle des Trafos Es wäre nicht unpraktisch, den wahren Schaltplan zu zeigen und nicht irgendetwas ähnliches.
Rainer W. schrieb: > Alexander H. schrieb: >> Der LM9022 sitzt anstelle des Trafos > > Es wäre nicht unpraktisch, den wahren Schaltplan zu zeigen und nicht > irgendetwas ähnliches. Der liegt leider nur in Form eines Drahtigels vor.😅 Hier ein Link zur Uhr (mit fuses) : https://radiokot.ru/circuit/digital/home/215/ Hab mal testweise die fuse BODEN deaktiviert, und damit geht es. Was mich wundert, BODLEVEL0 hatte ich nicht gesetzt (der Autor der Uhr hatte das aber angegeben). Wenn ich BODLEVEL0 jedoch aktiviere, dann zeigt mein Display nichts an. Wie kann das sein? Also muss wohl es eine ganz kurze Unterspannung sein, die den Reset verursacht, oder? Wie lese ich diese Control/Status Register Bits aus? Ich nutze einen TL866 Programmer.
:
Bearbeitet durch User
Den brown-out Detektor kannst du mit 2,7 V Versorgungsspannung nicht benutzen, da dieser mit etwas Pech bereits bei <= 2,9 V auslösen kann.
:
Bearbeitet durch User
Warum betreibst du den Mega8 überhaupt mit 2,7V anstatt 5V? Gibt es da einen speziellen Grund dafür?
Ok, das wusste ich nicht. Was ist denn der genaue Unterschied zwischen BODEN und BODLEVEL0?
Alexander H. schrieb: > Ok, das wusste ich nicht. Was ist denn der genaue Unterschied > zwischen BODEN und BODLEVEL0? Das eine aktiviert den brown-out Detektor, das andere stellt seine Schaltschwelle ein. Siehe S. L. schrieb: > Angehängte Datei Der brown-out Detektor dieses Mikrocontrollers ist nur für 3,3 und 5 V Versorgungsspannung geeignet.
:
Bearbeitet durch User
Alexander H. schrieb: > d.h. es entsteht ein Spannungssprung von 2,73 auf 2,69V, Wenn es mal auf 4mV (1 Promille) ankommt, dann will ich nicht wissen, was passiert, wenn noch Alterung und Temperaturschwankungen mit rein kommen. > Bei Abschalten eines Verbrauchers(40mA) regelt der TPS nicht ganz sauber Warum regelt der nach unten, wenn eine LAst weggenommen wird? Alexander H. schrieb: > Ich habe testweise den Spannungsteiler des TPS61010 auf 3V eingestellt, > das Problem bleibt. Dann stimmt wohl was grundlegend nicht mit der Entkopplung der Versorgung und den Blockkondensatoren... Alexander H. schrieb: > Kann das bereits der Grund für den Reset sein? Miss die Spannung direkt an den VErsorgungspins des AVR. Nur das, was genau dort an seinen Pins passiert, interessiert den µC. Nimm zum Messen eine Massefeder. Alexander H. schrieb: > Rainer W. schrieb: >> Es wäre nicht unpraktisch, den wahren Schaltplan zu zeigen > Der liegt leider nur in Form eines Drahtigels vor.😅 Genau jetzt ist ein guter Zeitpunkt einen Schaltplan zu zeichnen (mir ist absolut unklar, wie man eine Schaltung ohne Plan, also planlos aufbauen kann). Und dann postest du auch gleich noch das dazu passende Foto des Drahtigels.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Miss die Spannung direkt an den VErsorgungspins des AVR. Nur das, was > genau dort an seinen Pins passiert, interessiert den µC. Mit genug Laststrom könnte ich mir sogar einen relevanten Spannungsabfall innerhalb des IC vorstellen.
Die beiden Bilder (China Oszi) decken sich mit dem Datenblatt des TPS(continuous/discontinuous mode). Das konnte ich so auch mit dem HP Oszi nachvollziehen (die Spannung war dort leicht niedriger, ca. 2,68V). Ich hab dann mit der Glitch-Triggerfunktion herausgefunden, dass der kurze Spannungseinbruch beim Einschalten des LM9022 entsteht, also beim Umschalten vom diskontinuierlichen zum kontinuierlichen Betrieb. Der Einbruch geht bis 2,2V runter, daher logisch, dass die BOD den Reset auslöst.
:
Bearbeitet durch User
Nemopuk schrieb: > Der brown-out Detektor dieses Mikrocontrollers ist nur für 3,3 und 5 V > Versorgungsspannung geeignet. Nimmt man eben einen externen.
Alexander H. schrieb: > Ich hab dann mit der Glitch-Triggerfunktion herausgefunden, dass der > kurze Spannungseinbruch beim Einschalten des LM9022 entsteht, also beim > Umschalten vom diskontinuierlichen zum kontinuierlichen Betrieb. Der > Einbruch geht bis 2,2V runter, daher logisch, dass die BOD den Reset > auslöst. Wird Zeit, dass Du deinen Drahtigel mal optimierst. Mit ordentlicher Abblockung und ordentlicher Masse- und Betriebsspannungsführung wäre das nicht passiert ...
Ich war mir eben unsicher, ob ich nicht >2,5V getriggert hab.😂 Mit der Einstellung < bekomme ich nun keine Ergebnisse. Wie ist das < / > hier zu verstehen? Also nochmal neu gemessen, per Edge Trigger. Ist das so korrekt?
:
Bearbeitet durch User
Alexander H. schrieb: > Also nochmal neu gemessen, per Edge Trigger. Ist das so korrekt? Der Trigger Mode "auto" ist meist ziemlich tödlich, wenn du seltene Einzelereignisse suchst.
Jens G. schrieb: > Wird Zeit, dass Du deinen Drahtigel mal optimierst. Mit ordentlicher > Abblockung und ordentlicher Masse- und Betriebsspannungsführung wäre das > nicht passiert ... ja. Wie groß ist den Kondensator am Ausgang vom TPS61010? Und wie groß ist der Kondensator den der LM9022 lädt? Wenn der am TPS61010 nicht deutlich größer ist als der am LM9022 dann ist klar was passiert.
Gerd E. schrieb: > Jens G. schrieb: >> Wird Zeit, dass Du deinen Drahtigel mal optimierst. Mit ordentlicher >> Abblockung und ordentlicher Masse- und Betriebsspannungsführung wäre das >> nicht passiert ... > > ja. > Wie groß ist den Kondensator am Ausgang vom TPS61010? > Und wie groß ist der Kondensator den der LM9022 lädt? > Wenn der am TPS61010 nicht deutlich größer ist als der am LM9022 dann > ist klar was passiert. Der Pufferkondensator der Ladungspumpe am LM9022 ist 1uF groß, am Ausgang und Eingang des TPS61010 sitzen 10uF. Die Spannung fällt beim Einschalten auf 2,29Vmin. Ein Test mit 50uF Elko zusätzlich am Ausgang des TPS hat Vmin nur minimal erhöht.
:
Bearbeitet durch User
Alexander H. schrieb: > Die Spannung fällt beim > Einschalten auf 2,29Vmin. Ein Test mit 50uF Elko zusätzlich am Ausgang > des TPS hat Vmin nur minimal erhöht. Dann hab ich den Drahtigel und seine Masseführung etc. als Ursache im Verdacht. Könnte natürlich auch ein zu hohes ESR des Elkos sein. Aber irgendwas in die Richtung.
Es hat sicher mit dem hohen Einschaltstrom der Ladungspumpe zu tun. Die Umschaltung der Betriebsmodi des TPS ist wohl im Einschaltmoment zu langsam. Gibt es vielleicht einfache Möglichkeiten zur Strombegrenzung? Ich hab noch über einen Elko+Diode an Vcc des Atmega gedacht, der den Moment überbrückt. Aber selbst mit einer Schottkydiode mit niedriger Vf wird das wahrscheinlich zu knapp.
Alexander H. schrieb: > Gibt es vielleicht einfache Möglichkeiten zur Strombegrenzung? Ich glaube, Du hast immer noch nicht begründet, warum es unbedingt 2,7V sein müssen. Denn wenn Du den BOD benutzt, der u.U. schon bei <=2,9V zuschlagen kann, ist dass eh' für die Katz', hier etwas optimieren zu wollen. Also entweder einen externen BOD benutzen, oder gleich ganz weglassen.
Alexander H. schrieb: > IMG_4683.jpeg Ich sehe da keinen Spannungseinbruch. Stell das Signal doch einmal mit einer sinnvollen Zeitachse dar.
Rainer W. schrieb: > Alexander H. schrieb: >> IMG_4683.jpeg > > Ich sehe da keinen Spannungseinbruch. Stell das Signal doch einmal mit > einer sinnvollen Zeitachse dar.
:
Bearbeitet durch User
Der braucht also etwa 250µs um das Abfallen der Spannung einzufangen. Der TPS61010 läuft aber mit 500kHz. Das sind also 125 Taktzyklen. Das sollte der eigentlich schon schneller schaffen können. Wenn nicht irgendwelche parasitären Elemente, schlechte Masseführung etc. die Regelung erschweren. Bei Schaltreglern ist das Layout und die Anbindung an den Rest der Schaltung immer essentieller Teil des Ganzen und müssen passen damit es funktionieren kann. Kann natürlich auch sein dass der TPS61010 besonders langsam zwischen PWM und Pulse-Skipping umschaltet, hab mit dem konkret bisher keine Erfahrung. Könnte auch sein dass die Werte am COMP-Pin ungünstig gewählt sind und er daher langsam reagiert.
Die Werte am Comp-Pin sind wie im Datenblatt gewählt (Figure 20). Hab mal testweise 220uF an den Ausgang gehängt, der Abfall wird besser aber führt immer noch zum Reset. Ich werde das wohl so belassen, da die Uhr auch mit Reset weiterläuft (RTC hab ich am Bat-Pin mit C+Diode gepuffert). Was wären die Nachteile, wenn ich die BOD deaktiviere? Gibt es konkrete Erfahrungen zum BOD Level? Dass ein Reset bereits ab unter 2,9V ausgelöst werden kann, hab ich bisher noch nie beobachten können. Passiert das evtl. bei niedrigen Tenperaturen?
Alexander H. schrieb: > Gibt es konkrete Erfahrungen zum BOD Level? Dass ein Reset bereits ab > unter 2,9V ausgelöst werden kann, hab ich bisher noch nie beobachten > können. Das steht aber so im Datenblatt, und daran solltest du dich halten. Ansonsten ist es mit Absicht gefrickelt und gestümpert.
Nemopuk schrieb: > Alexander H. schrieb: >> Gibt es konkrete Erfahrungen zum BOD Level? Dass ein Reset bereits ab >> unter 2,9V ausgelöst werden kann, hab ich bisher noch nie beobachten >> können. > > Das steht aber so im Datenblatt, und daran solltest du dich halten. > Ansonsten ist es mit Absicht gefrickelt und gestümpert. Ja, das stimmt. Aber offiziell liegt der Betriebsspannungsbereich bei 2,7-5,5V. Demnach hätte ich angenommen, dass da auch das BOD Level liegt. Wurde zB. hier diskutiert: Beitrag "AVR was passiert kurz vor der Brown-Out Erkennung?" Ab wann ist es denn gestümpert, nur bei aktiver BOD? 😂 Je nach Chip und Temperatur wird das BOD Level leicht varrieren, bei mir kommt 2,7V ziemlich genau hin.
:
Bearbeitet durch User
Alexander H. schrieb: > Ja, das stimmt. Aber offiziell liegt der Betriebsspannungsbereich bei > 2,7-5,5V. Demnach hätte ich angenommen, dass da auch das BOD Level > liegt. Du bekommst das, was im Datenblatt steht, nicht was du annimmst. > Ab wann ist es denn gestümpert Wenn man den Chip außerhalb der im Datenblatt genannten Grenzen benutzt. Viele Mikrocontroller funktionieren bei der minimalen Betriebsspannung nur eingeschränkt. Betrifft oft auch die Taktfrequenz, die ADC Referenz oder gar den ganzen ADC, und die USB Schnittstelle.
:
Bearbeitet durch User
Es ist ja nur ein Bastelprojekt, aber das Ganze soll funktionieren. Wenn der BOD bereits bei 2,9V auslösen kann, muss ich den BOD deaktivieren. Ich betreibe ein winziges Taschenrechner-VFD an einer NiMH-Zelle. Bei 3V steigt der Stromverbrauch schon um 15-20%. Im normalen Betrieb läuft der Atmega ohne BOD scheinbar zuverlässig. Der Spannungseinbruch führt (soweit ich das testen konnte) zu keinem Fehler im Programm. Es scheint aber am Layout zu liegen, denn nach Löten am Spannungsteiler ging der Einbruch nur noch bis 2,5V runter.😅 Das ist immernoch Pfusch, aber vielleicht erledigt sich das mit einer ordentlich aufgebauten Platine. Als primitiven Displaytest habe ich mal Vcc vom Atmega abgeklemmt, so leuchten alle Segmente gleichzeitig. Kann man das gefahrlos so machen, oder überlaste ich evtl. den Atmega dabei? Der Rest der Schaltung hing weiter an der Versorgung. Danach wurde Vcc wieder angelegt. Wenn BOD deaktiviert ist, führt das zu Fehlern wie „45:10:17“ als Uhrzeit, oder Segmentdreher im Menü (also Fehler im Flash/EEprom?). Die Fehler bleiben auch nach Hardware Reset. Aber sobald der Stützkondensator (an Vbat der RTC) entladen und die Uhr danach wieder einschaltet wird, ist der Fehler reproduzierbar weg. Was passiert da ungefähr? Kann jemand das Verhalten vom Atmega für Laien erklären?
:
Bearbeitet durch User
Alexander H. schrieb: > Wenn BOD deaktiviert ist, führt das zu Fehlern wie > „45:10:17“ als Uhrzeit, oder Segmentdreher im Menü (also Fehler im > Flash/EEprom?). Die Fehler bleiben auch nach Hardware Reset. Aber sobald > der Stützkondensator (an Vbat der RTC) entladen und die Uhr danach > wieder einschaltet wird, ist der Fehler reproduzierbar weg. Wahrscheinlich ist er auch wieder weg, wenn du die Uhr lange genug laufen lässt, weil dann die interne Zählersteuerung zwischendurch greift und wieder ein gültiger Wert angezeigt wird - wenn auch wahrscheinlich ein falscher ;-)
:
Bearbeitet durch User
Alexander H. schrieb: > „45:10:17“ als Uhrzeit Vermutlich hast Du auf der Uhr die falsche Planetenzeit eingestellt. Ein Tag auf dem Mond dauert etwa 29,5 Erdentage. - Merkur: 4222,6 - Venus: 2802 - Pluto: 153,3
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.










