Forum: Mikrocontroller und Digitale Elektronik Wake - up from sleep dauert zu lange


von fuxbux (Gast)


Lesenswert?

Hallo,

Laut Datenblatt des PIC18F4620 sollte der µC nur 10µS brauchen um bei 
einem Interrupt aus dem sleep mode aufzuwachen. In meinem Fall weckt der 
Comperator Interrupt den µC auf, um möglichst schnell ein Signal 
abzutasten.
Leider dauert das Aufwachen immer satte 30mS. Woran kann das liegen?

Power Up Timer habe ich deaktiviert, wobei der ja damit eh nichts zu tun 
haben sollte, weil es ja nur ums aufwachen geht.

Gibts vielleicht noch wo einen timer, der das Aufwachen verzögern kann?

Danke und lg

von Franko P. (sgssn)


Lesenswert?

Hallo

schon mal gemessen, wie lange es dauert, bis der Oscillator "erwacht" ?

Gerhard

von fuxbux (Gast)


Lesenswert?

ja danke, hab ich jetzt gemacht.

Der Osziallator ist sofort da sobald die interruptsbedingung aufgetreten 
ist. Danach dauert es dann 30ms bevor der µC COde ausführt.

Interessanterweise ist diese Verzögerung nur mit dem Externen Quarz 
vorhanden. Bei inRC beträgt sie nur akzeptable 2mS.

Kanns daran liegen, dass etwas an der Oszillatorschaltung nicht stimmt? 
Bin da nämlich kein Experte und hab deswegen einfach die Empfehlungen 
der Datenblätter befolgt. Bis jetzt gabs auch nie ein Problem, Der µC 
arbeitet ohne Probleme mit dem Quarz.

Allerdings sehe ich jetzt am Oszilloskop, wenn ich direkt am 
Oszillatorpin abnehme (ja ich weiß das verfälscht den Oszillator etwas) 
dass der Oszillator sofort mit dem Interrupt auf die 3.3V VSS springt 
und dort oszilliert. 30ms später aber sobald die CPU zu arbeiten 
beginnt, kommt zu den 3.3 V Konstantspannung eine Oberwelle mit einer 
Frequenz von ca 100Hz (der Oszillator arbeitet mit 4Mhz) und einer 
Amplitude von ca. 3V um die 3.3V Ausgangsspannung.

Ist das ein Problem? Wodurch entsteht das?
Danke!

von Francesco N. (franceso-)


Lesenswert?

Der Pic hat einen Power-ON Timer, der mit den Fuse-bits gesetzt wird.
Wenn er eingeschalten ist, dauert es eben halt so lange.

von Peter D. (peda)


Lesenswert?

fuxbux wrote:

> Interessanterweise ist diese Verzögerung nur mit dem Externen Quarz
> vorhanden. Bei inRC beträgt sie nur akzeptable 2mS.

Das ist völlig korrekt.

Ein Quarz hat eine sehr hohe Güte und daher dauert es lange (etwa 
3..30ms), bis er stabil schwingt.

Üblicher Weise hat man deshalb ein Wakeup-Delay von etwa 60ms bei 
Quarzbetrieb, sonst kann es zu Fehlern bei der Befehlsausführung kommen.


Peter

von fuxbux (Gast)


Lesenswert?

mhm ok, danke für die Erklärung. Für mich reicht zum Glück der intRC 
Schwingkreis, mit dem klappts.

lg

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.