Forum: Mikrocontroller und Digitale Elektronik Mega88 Brown out Probleme


von Robert (Gast)


Lesenswert?

Ein Mega88 getaktet mit 7,37MHz Quarz, versorgt mit 5V macht bei 
aktiviertem brownout 4,3V Zicken (reset?), die ich nicht nachvollziehen 
kann. Es sieht so aus, als ob der Brownout dann und wann zuschlägt, wenn 
ungenutzte, offene Pins floaten (ich weiss, das macht man nicht). Das 
versuchsweise aktivieren der internen pullup's reduziert nur die 
Häufigkeit, stellt aber das Problem nicht gänzlich ab.

Messungen mit dem DSO an der Vcc haben keine Werte unter 4,9V ergeben. 
Im Datenblatt steht als obere Schranke für den brownout 4,5V - also 
eigentlich selbst im worstcase genug Luft. Am Avcc habe ich stellenweise 
einen kurzen Einbruch von 200mV gemessen. (liegt über 100 Ohms an Vcc 
und 220nF an Masse) Ist nicht schön, aber laut Datenblatt innerhalb der 
zulässigen Grenzen von 0,3V.

Das Ganze lässt sich so auf mehreren Exemplaren nachvollziehen, defekter 
Chip ist also eher unwahrscheinlich. Der Aufbau ist sauber, Vcc mit 
Kapazitäten abgeblockt, Groundplane. Nimmt man die Fuse für den 
brownoutlevel auf 2,6V, läuft alles normal.

Jetzt zur Frage: nimmt der brownout detector seine Spannung etwa am AVCC 
ab? Wer zieht hier sporadisch bis zu 20mA aus dem Avcc?

Hat jemand schon ähnliche Erfahrungen gemacht, oder eine Idee was da 
passiert und wie man das verhindern kann?

von Dennis N. (nilpferd)


Lesenswert?

Mit der BOD vom Atmel hab ich noch nicht gearbeitet, kenne aber nen 
ähnlichen Effekt von Logikgattern. Speziell beim Pegelwechsel entstehen 
kurzzeitige, zum Teil aber erhebliche Spannungseinbrüche, die 
beeinflussen die benachbarte Elektronik, das gibt die schönste 
Kettenreaktion, weswegen ich jedes Gatter immer mit nem kleinen 
Kondensator puffere.
Beim Atmel könnte das ähnlich sein. Offene Pins flattern, dadurch kommt 
es zu kurzen Unterspannungen, die die BOD triggern. Normalerweise müßte 
das auf dem Oszi aber zu sehen sein, versuch mal, direkt an den Pins vom 
Chip zu messen. Ansonsten kanns noch sein, daß nach außen alles okay 
scheint, die erwähnten Unterspannungen aber innerhalb des AVR auftreten 
und die interne Logik durcheinanderbringen. Warum schließt Du die 
offenen Pins nicht einfach nach Masse ab?

von Robert (Gast)


Lesenswert?

Hi Dennis,

die Spannungen sind alle in einem Abstand von weniger als 5mm vom Pin 
des Mega88 gemessen. DSO macht 1GS und hat eine 100MHz Bandbreite, ein 
Singleshot mit Triggerlevel 4,9V löst über Stunden nicht aus.

Tja, der Abschluss der Pins ist in der Testkonfiguration nur über die 
Pullup's möglich, das hatte ich als ausreichend angesehen.

Die Frage bleibt trotzdem, warum löst der brownout hier schon aus. Mit 
der Einstellung sollte mein system zuverlässiger werden, jetzt habe ich 
das Gegenteil errreicht.

von Rahul D. (rahul)


Lesenswert?

Es gibt doch ein Register, in dem die letzte Reset-Quelle angegeben 
wird, sofern es sich nicht Power-On-Reset handelt. Da sollte man 
eigentlich feststellen können, ob BOD für den letzten Reset 
verantwortlich war.
Das Register muß man natürlich zum Programmstart auslesen (kann es aber 
eigentlich auch später machen...).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

MCUSR ist das Register. Ich kann die BOD-Probleme bei einem Mega168 
nachvollziehen, der ja zum 88er weitestgehend kompatibel ist. Ich hatte 
dazu auch schon einmal einen Thread eröffnet - es gab aber niemanden, 
der darauf eine Antwort hatte oder dies gar schon einmal erlebt hatte. 
Bei meinen Exemplaren war auch mit dem Oszi kein "Loch" in der 
Versorgungspannung zu sehen, trotzdem resetete der Controller in 
unregelmäßigen Abständen über BrownOut. Nur eine Änderung der 
Ansteuerung der angeschlossenen Peripherie brachte Abhilfe (oder aber 
das Ausschalten des BrownOut-Detektors). Auf jeden Fall scheint sich der 
Controller nicht auf die im Datenblatt angegebenen Mindestpulsbreiten 
für einen BrownOut-Reset zu halten.

von Robert (Gast)


Lesenswert?

Das der Mega88 tatsächlich einen brownout reset macht, ist unstrittig 
und überprüfbar. Was jetzt nach vielen Messungen fest steht, ist das das 
Problem nur Auftritt, wenn bei mir folgende Bedingungen zusammen 
herschen:

1. ADC sampelt ADC0 und ADC1 zyklisch alle 0,5mS (jeweils 8-fach 
oversampling)
2. Die Spannung am AVCC differiert mehr als ca. 180mV von VCC nach unten
3. ungenutzte Pins sind nur mit dem interen PullUp's beschaltet.

Damit sieht es so aus, als ob die zuverlässige Funktion des brown out 
detector stark vom ADC und der AVCC abhängt.

Was bei mir jetzt durch ausprobieren noch herauskam ist, dass das Setzen 
des DIDR0 auf $3B das Problem quasi verschwinden lässt. Leider änderen 
sich durch diesen Registereintrag, der die digitalen Treiber von den 
analog genutzten Eingängen trennt, auch die Spannungseinbrüche auf der 
AVCC sodass letztlich kein eindeutiger Schluss auf die Ursache möglich 
ist.

Aber was bleibt ist der Verdacht, dass der Chip leider wenig robust auf 
Pegel reagiert, die laut Spezifikation durchaus zulässig sind. 
Insbesondere AVCC scheint kritisch. Betreibt man den Chip übrigens mit 
5,2V VCC, ist das Problem auch nicht mehr sichtbar.

von Branko Golubovic (Gast)


Lesenswert?

> Am Avcc habe ich stellenweise
> einen kurzen Einbruch von 200mV gemessen. (liegt über 100 Ohms an Vcc
> und 220nF an Masse) Ist nicht schön, aber laut Datenblatt innerhalb der
> zulässigen Grenzen von 0,3V.

Warum verwendest du überhaupt 100 Ohm?
In Datenblatt(seite 252) steht doch etwas anderes, nämlich 10µH und 
100n.

von Robert (Gast)


Lesenswert?

Da hast du recht, aber das habe ich als Vorschlag gewertet, und nicht 
als Notwendigkeit.

100 Ohm sind zum einen billiger und kleiner als 10uH. Zum Anderen wurden 
auf dem Prototypen an AVCC nie Ströme über 0,2mA gemessen. Damit ergibt 
sich ein Spannungsabfall über den 100 Ohm von 20mV. Die 300mV sind also 
mit 15facher Reserve weit genug weg.

Die Filterwirkung ist mit meiner Beschaltung bei mittleren Frequenzen 
eher besser, als mit 10uH und 100nF.

von RAY (Gast)


Lesenswert?

>die Spannungen sind alle in einem Abstand von weniger als 5mm vom Pin
>des Mega88 gemessen.

Also sowohl GND und VCC am Atmel abgenommen? Nur VCC am Atmel und GND 
irgendwo anders auf der LP abgenommen könnte zu anderen Ergebnissen 
führen (Ground bounce). Die Versorgung ist ja auch entsprechend mit 
100nF am AVR abgeblockt?

Ich abe zwar noch nicht mit mega88 gearbeitet, nur mit 32,64,128er aber 
da habe ich unbenutze Pins irgendwohin gepullt - braucht nur Strom und 
Bauteile/Platz.

von Robert (Gast)


Lesenswert?

Versorgung hat 3x 100n + 3u3 Tantal. Das ärgerliche ist ja, dass man das 
alles im nachhinein korrigieren muss...

von Robert (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.