Forum: Mikrocontroller und Digitale Elektronik ATmega48: Brown-out und SUT_CKSEL falsch gesetzt


von Andreas H. (heilinger)


Lesenswert?

Hallo,

was passiert, wenn man die Brown-out detection auf VCC=4,3V einstellt 
und die Fuses SUT_CKSEL auf einen Wert mit "Additional Delay from Reset" 
(4,1ms oder 65ms) setzt?

Resettet sich der uC dann durchgehend von selbst?

Im Datenblatt steht ja , dass man bei BOD enabled kein "Additional Delay 
from Reset" einstellen soll.

Auf ein paar uC habe ich momentan keinen Zugriff, und ich denke, dass 
dies mein Problem ist. Bin mir aber nicht sicher, und bevor ich den 
nächsten uC ins Nix schicke, frage ich lieber mal.

Wenn dem so ist, kann man den uC trotzdem noch irgendwie retten?

Danke!

von spess53 (Gast)


Lesenswert?

Hi

>Im Datenblatt steht ja , dass man bei BOD enabled kein "Additional Delay
>from Reset" einstellen soll.

Wo steht das? Wenn kein "Additional Delay" gewählt ist muss BOD 
enabled sein. Zusätzliche Delays schaden nicht.

MfG Spess

von Andreas H. (heilinger)


Lesenswert?

spess53 schrieb:
> Zusätzliche Delays schaden nicht.

Das dachte ich mir auch, deswegen hatte ich es ja eingestellt.

spess53 schrieb:
> Wo steht das? Wenn kein "Additional Delay" gewählt ist muss BOD
> enabled sein.

Hab ja nie gesagt, dass es ein Muss ist. Aber Table 8-6, Seite 31:

Oscillator Source /Power Conditions
Crystal Oscillator, BODenabled
--------------------------------------
Start-up Time from Power-down and Power-save
16K  CK
--------------------------------------
Additional Delay from Reset (VCC = 5.0V)
14CK
-------------------------------------
CKSEL0
1
-------------------------------------
SUT1..0
01

Dann habe ich es wohl doch geschafft, den uC zu plätten.
War ja nur eine Idee, weil ich zufällig über die Tabelle gestoßen bin.

von Volker (Gast)


Lesenswert?

Hmm, also ich habe mit einem ATmega48 (und auch einem ATmega168) das 
Problem, dass er überhaupt nicht läuft, wenn ich ein Brown Out Detect 
von 4,3 Volt einstelle (BODLEVEL=100).

Die Versorgungsspannung ist absolut sauber (mit Oszilloskop 
nachgemessen) bei 5,1 Volt. Stelle ich hingegen ein BOD von 2,7 Volt 
(BODLEVEL=101) ein, läuft alles problemlos. Ein ATtiny85 läuft mit BOD 
4,3 Volt in der selben Schaltung auch einwandfrei. Nur die ATmega48 und 
168 wollen nicht. Das sieht mir fast nach einem Serienfehler aus. Als ob 
da die interne Spannungsreferenz nicht stimmt.

Es ist übrigens auch egal ob ich ein Additional Delay von 4,1 oder 65 ms 
einstelle, oder auch gar kein Delay. Es funktioniert in keinem Fall.

Hat noch jemand 'ne Idee? ;-)

Tschö, Volker

von Volker (Gast)


Lesenswert?

Au weia, wie peinlich :), Ich gebe mir meine Antwort mal selbst, weil es 
vielleicht den einen oder anderen gibt, der genauso doof ist, wie ich:

Man sollte natürlich den AVcc Pin (20) auf Versorgungsspannung (Vcc) 
legen. Dann funktioniert es auch mit dem Nachbarn :).

Zuerst dachte ich mir "Wozu Versogungsspannung an den A/D Converter, 
wenn der gar nicht benutzt wird?". Offenbar wird aber für die Brown Out 
Detection ein interner A/D Converter genutzt, der über den AVcc Pin 
versorgt wird. Trotzdem ist es nicht so ganz zu erklären, warum es dann 
nur bei BODLEVEL 4,3 Volt Probleme gibt und bei 2,7 Volt nicht. Na, wie 
auch immer, das Problem ist gelöst. Im Handbuch steht ja auch "AVcc 
should be externally connected to Vcc, even if the ADC is not used".

Tschö, Volker

von Rüdiger B. (ruedigerbritzen)


Lesenswert?

Volker schrieb:

> Au weia, wie peinlich :), Ich gebe mir meine Antwort mal selbst, weil es
> vielleicht den einen oder anderen gibt, der genauso doof ist, wie ich:
>
> Man sollte natürlich den AVcc Pin (20) auf Versorgungsspannung (Vcc)
> legen. Dann funktioniert es auch mit dem Nachbarn :).
>
> Zuerst dachte ich mir "Wozu Versogungsspannung an den A/D Converter,
> wenn der gar nicht benutzt wird?". Offenbar wird aber für die Brown Out
> Detection ein interner A/D Converter genutzt, der über den AVcc Pin
> versorgt wird. Trotzdem ist es nicht so ganz zu erklären, warum es dann
> nur bei BODLEVEL 4,3 Volt Probleme gibt und bei 2,7 Volt nicht. Na, wie
> auch immer, das Problem ist gelöst. Im Handbuch steht ja auch "AVcc
> should be externally connected to Vcc, even if the ADC is not used".

Ich habe heute den ganzen Tag mit einer Fehlersuche verbracht, heute 
Abend habe ich dann auch über BOD-Level = 2,7V die Schaltung an's Laufen 
gebracht. Bei mir sollte AVCC mit VCC verbunden (zumindest ist das 
Soll-Layout so), aber es könnte ein Fertigungsfehler seitens meines 
Bestückers vorliegen (ich verwende in meiner Schaltung einen ATmega 
324PA im QFN-Gehäuse).

Deine Problemlösung hilft mir in meinem Fall sehr weiter, lässt sie doch 
ggf. auf eine fehlerhafte Verbindung schließen. Besten Dank!

Gruß, Rüdiger

von Achim M. (minifloat)


Lesenswert?

Volker schrieb:
> Zuerst dachte ich mir "Wozu Versogungsspannung an den A/D Converter,
> wenn der gar nicht benutzt wird?". Offenbar wird aber für die Brown Out
> Detection ein interner A/D Converter genutzt, der über den AVcc Pin
> versorgt wird.

Der misst die Versorgung am AVCC Pin, gleichzeitig wird über den AVCC 
auch die interne "Bandgap-Referenz" versorgt. Es ist nicht der 
AD-Wandler(sofern man bei der BOD von einem AD sprechen kann, 1Bit-AD :D 
).

Lässt du nun AVCC unbeschaltet, wird AVCC durch interne Schutzdioden auf 
4,xxV angehoben(steht ja im Datenblatt was von maximaler Differenz zw. 
VCC und AVCC von 0,3V wenn ich mich hier zahlenmäßig nicht irre). Wenn 
diese gewisse Differenz überschritten wird, spinnt nicht nur der 
Analogteil; der ganze µC wird außerhalb der Spezifikation betrieben.

mfg mf

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.