Forum: Mikrocontroller und Digitale Elektronik ATtiny12 mit High Pegel aus Power Down aufwecken


von Benedikt (Gast)


Lesenswert?

Von einem Funkempfänger bekomme ich einen High Pegel für ein paar ms bis
s mit dem ich einen Tiny12 aus dem Power Down wecken möchte.
Laut Datenblatt geht das über den Level Interrupt, der hier aber
ausscheidet, da es diesen nur für Low Pegel gibt oder über einen Pin
Change Interrupt.
Also habe ich an INT0 das Signal angelegt, den externen Interrupt
aktiviert und im MCUCR auf Pin Change eingestellt. Es passiert aber
nicht das geringste.
Das einzige was bisher ging war der Level Interrupt und ein Inverter
davor, aber da das ganze klein sein soll habe ich dafür keinen Platz.

von Christian Zietz (Gast)


Lesenswert?

Deine Beschreibung ist mir nicht ganz klar: Du schreibst, Du hast den
externen Interrupt aktiviert. Heißt das, Du hast Bit 6 (INT0) im
GIMSK-Register gesetzt? Das wäre falsch. Für den Pin-Change-Interrupt
musst Du Bit 5 (PCIE) setzen. Im MCUCR musst Du afaik gar nichts
einstellen. Die ISC0x-Bits beziehen sich nur auf den INT0.
Du musst unterscheiden zwischen:
- INT0: Reagiert nur auf Signale im INT0-Pin, kann flanken- oder
level-gesteuert sein (nur Low-Level) aber kann NUR mit einem
Low-Level (ISC01=ISC00=0) den uC aus dem Power-Down aufwecken. Mit
anderen Kombinationen von ISC0x wacht der uC durch den INT0 nicht auf.
- Pin Change Interrupt: Reagiert auf Signale an allen I/O-Pins,
flankengesteuert. Er kann den uC in jedem Fall aus dem Power-Down
aufwecken.

So steht's zumindest im Datenblatt, mit einem Tiny12 habe ich selbst
noch keine Erfahrung.

Christian

von Benedikt (Gast)


Lesenswert?

Ich habe das INT0 Bit gesetzt, MCUCR auf 1 gesetzt (Any change on INT0
generates an interrupt request).

Kann man das nicht zum Aufwecken verwenden, sondern nur den Level
Interrupt beim INT0 ?

OK, dann versuche ichs mal mit dem Pin Change Interrupt.

von Christian Zietz (Gast)


Lesenswert?

Zumindest beim AT90S2343 (mit dem hatte ich schon das Vergnügen) kann
man einen flankengetriggerten INT0 nicht zum Aufwecken benutzen. Und
auch im Datenblatt des Tiny12 steht ja

Only an external reset, a watchdog reset (if enabled), an external
level interrupt, or a pin change interrupt can wake up the MCU.

Also nur ein (Low-)Pegel im Falle von INT0 oder stattdessen halt ein
Pin-Change-Interrupt, der flankengetriggert ist.

Christian

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.