Forum: Mikrocontroller und Digitale Elektronik MEGA48: Reset beim Ändern der ADU-Referenzspannung


von Robert (Gast)


Lesenswert?

Hallo,

mit einem Mega48 kommt es beim schnellen periodischen Umschalten der 
Referenzspannung AVCC<->1V1(intern Ref) zum Reset. Hat jemand in der 
Richtung schon eine Beobachtung gemacht oder gar eine Erklärung? Die 
Umwandlung selber läuft mit Autotrigger und 125kHz, Versorgung 5V. 
Sowohl AVCC als auch 1V1 dauerhaft allein machen kein Problem.

Gruß

von Einer K. (Gast)


Lesenswert?

Schaltplan vergessen zu posten?

von Daniel T. (Gast)


Lesenswert?

Könnte an der Stromversorgung liegen. Fehlt der VCC-Abblockkondensator?

von S. Landolt (Gast)


Lesenswert?

Wie schrieb da jemand diese Woche - "Schematik der Schaltung".

von c-hater (Gast)


Lesenswert?

Robert schrieb:

> mit einem Mega48 kommt es beim schnellen periodischen Umschalten der
> Referenzspannung AVCC<->1V1(intern Ref) zum Reset. Hat jemand in der
> Richtung schon eine Beobachtung gemacht oder gar eine Erklärung?

Ja, wenn die Sache bei mir nicht bei einem Mega48 aufgetreten ist, 
sondern bei einem Mega1284P.

Dein erster Ansatz sollte sein, direkt nach dem ungewollten Reset die 
Resetursache auszulesen (MCUSR) und dir ausgeben zu lassen.

Wenn darin BORF gesetzt ist, dann ist es dieselbe Sache wie bei mir und 
ich kann dir dann nicht nur die Erklärung liefern, wie das zustande 
kommt, sondern auch einen Tip zur Abhilfe geben.

von Robert (Gast)


Lesenswert?

c-hater schrieb:
> Dein erster Ansatz sollte sein, direkt nach dem ungewollten Reset die
> Resetursache auszulesen (MCUSR) und dir ausgeben zu lassen.

Danke für den Tipp bzgl. BORF, dem ich mal nachgehen werde.

Daniel T. schrieb:
> Könnte an der Stromversorgung liegen. Fehlt der
> VCC-Abblockkondensator?

Nein. Ansonsten Standardbeschaltung mit dem üblichen Filter an AVCC und 
Kondensator an AREF.

von Jim M. (turboj)


Lesenswert?

Robert schrieb:
> Nein. Ansonsten Standardbeschaltung mit dem üblichen Filter an AVCC und
> Kondensator an AREF.

Und damit schaltest Du einen 100nF Kondensator mit 1,1V hart auf VCC 
(vermutlich AVCC), und wunderst Dich dann dass die Betriebsspannung 
einbricht und Reset auslöst? Hättest Du mal einen Schaltplan gemalt, da 
sieht man sowas.

von Einer K. (Gast)


Lesenswert?

Jim M. schrieb:
> Du mal einen Schaltplan gemalt

Der Schaltplan hat uns nicht zu interessieren.
Robert (Gast) hat sich dazu entschlossen, dass es nicht an der Schaltung 
liegen kann.

von Peter D. (peda)


Lesenswert?

Wichtig wäre, bei welcher Umschaltrichtung der Effekt auftritt.
Ich könnte mir vorstellen, wenn der 100nF auf 5V aufgeladen ist und dann 
an die 1,1V gelegt wird, daß dann die BOR-Schaltschwelle hoch geht, d.h. 
das BOR auslöst.

von c-hater (Gast)


Lesenswert?

Jim M. schrieb:

> Und damit schaltest Du einen 100nF Kondensator mit 1,1V hart auf VCC
> (vermutlich AVCC), und wunderst Dich dann dass die Betriebsspannung
> einbricht und Reset auslöst?

Wenn das die gleiche Sache ist, die mir passiert ist, dann ist deine 
Andeutung des Wirkungsmechanismus nicht korrekt.

Vielmehr geschieht der ungewollte Reset beim Umschalten von AVCC auf die 
interne Referenz und zwar dadurch, dass deren Ausgang kurzzeitig HOCH 
gezogen wird. Da diese Referenz gleichzeitig die Referenz für den BOD 
ist, "sieht" dieser nun eine zu geringe Versorgungsspannung (obwohl sie 
in Wirklichkeit nachweislich nicht einbricht) und löst somit 
fälschlicherweise den Reset aus.

Nun sollte man meinen, dass eine Verkleinerung (oder vollständiges 
Weglassen) des Kondensators an AREF das Problem lösen würde. Aber möööp: 
das tut es leider nicht! Die in diesem Kondensator gespeicherte Ladung 
ist also offensichtlich nicht die Ursache des Problems.

Meine Schluss war damals deshalb: Es bleibt als einzig denkbare Ursache 
ein Fehler im Analog-Multiplexer, der irgendwie lange genug zur 
Auslösung des BOD für eine Art "Querpfad" zwischen AVCC und der internen 
Referenz sorgt. Leider läßt sich das nicht durch Messung verifizieren, 
weil man an das entsprechende Signal von aussen nicht herankommt.

Es muss deshalb ein indirekter Beweis genügen (der gleichzeitig die 
Lösung für das Problem darstellt). Voraussetzung: es läuft aktuell keine 
AD-Wandlung. Dann ADMUX nicht direkt von AVCC auf interne Referenz 
umschalten, sondern einen Zwischenschritt bei AREF einlegen. Und schon 
klappt es, ohne dass der BOD anspringt.

Achtung: Die Voraussetzung der nicht laufenden Wandlung ist zwingend, 
sonst funktioniert der Trick nicht, weil dann nur der zuletzt 
geschriebene Zustand von ADMUX tatsächlich übernommen wird (beim Ende 
der laufenden Wandlung), der Zwischenschritt wird dann also nicht 
wirklich ausgeführt. Das bedeutet gleichzeitig übrigens auch: im 
FreeRunning-Mode der ADC ist der Workaround leider nicht anwendbar.

von c-hater (Gast)


Lesenswert?

c-hater schrieb:

> Das bedeutet gleichzeitig übrigens auch: im
> FreeRunning-Mode der ADC ist der Workaround leider nicht anwendbar.

Korrektur: Anwendbar wäre er schon, aber er kostet dann einen kompletten 
Wandlungszyklus für den Zwischenschritt, was im Allgemeinen unerwünscht 
sein dürfte.

von Robert (Gast)


Lesenswert?

Besten Dank @alle für die Rückmeldungen. Egal ob jetzt zutrifft

Jim M. schrieb:
> Und damit schaltest Du einen 100nF Kondensator mit 1,1V hart auf VCC
> (vermutlich AVCC), und wunderst Dich dann dass die Betriebsspannung
> einbricht und Reset auslöst?

oder

c-hater schrieb:
> Die in diesem Kondensator gespeicherte Ladung
> ist also offensichtlich nicht die Ursache des Problems,

Fakt ist, daß tatsächlich BOR auslöst. Und zwar bis hinunter zum 
kleinsten 1.8V Level. Offensichtlich lassen sich also die beiden 
ADU-Referenzarten

- AVCC with external capacitor at AREF pin und
- Internal 1.1V voltage reference with external capacitor at AREF pin

nicht ohne weiteres schnell abwechselnd nutzen- jedenfalls nicht 
zusammen mit BOR bzw. ohne einen hypothetischen Spannungseinbruch (den 
ich leider nicht überprüfen kann) in Kauf zu nehmen. Den Tipp

c-hater schrieb:
> Dann ADMUX nicht direkt von AVCC auf interne Referenz
> umschalten, sondern einen Zwischenschritt bei AREF einlegen. Und schon
> klappt es, ohne dass der BOD anspringt.

werde ich bei Gelegenheit mal testen- für meine aktuelle App inkl. BOR 
langt mir nun vorerst eine einzige Referenz, zumal ich auf den ADU 
FreeRunning Mode nicht verzichten möchte.

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.