Forum: Mikrocontroller und Digitale Elektronik Steuerung mit großen Intervallen


von Jochen (Gast)


Lesenswert?

Hallo Zusammen,

nur mal kurz eine Frage ob das so in etwar machbar ist wie ich mir das
im Moment vorstelle.

Also der uC soll eigentlich hauptsächlich im Powerdown Modus vor sich
hineiern.
Dann soll er alle 15min per RTC "geweckt" werden. Sollte ja mit einem
PCF8583 möglich sein in dem ich den Alarm einfach immer 15min weiter
stelle.

Er soll dann ein bisserl was machen und sich wieder schlafen legen.

Ebenfalls soll das senden eines Zeichens auf der seriellen zum
Aufwachen führen.

Sollte doch soweit ohne Problem machbar sein.

Der Jochen

von Fritz Ganter (Gast)


Lesenswert?

Ein Blick in das Datenblatt verrät dir, dass du den Idle Mode benutzen
kannst, aber kein Powerdown, wenn Daten über den USART ihn aufwecken
sollen. Allerdings kannst ja die serielle Leitung überwachen und einen
externen Interrupt auslösen, wobei ich aber nicht weiss, ob er da nicht
die Daten verpasst, da er einige Takte braucht um aufzuwachen.
Für eine RTC im Powersave brauchst keinen externen Chip, es reicht ein
32kHz Quarz am Oszillatoreingang.

Aber das kann man ja alles im Datenblatt nachlesen.

von Stefan Kleinwort (Gast)


Lesenswert?

Powerdown geht schon, wenn man beim UART-Empfang folgendes beachtet:

RXD-Pin und einen /INT-Eingang verbinden, im PWDN wird der mc über den
/INT aufgeweckt.
Die Datenübertragung muss darauf vorbereitet sein, dass der mc ein paar
ms Zeit zum Aufwachen braucht. Also am Besten ein (einfaches) Protokoll
fahren. Oder mehrere binäre Nullen vor den eigendlichen Daten senden.

Für Wecken per RTC ist natürlich auch ein /INT-Pin an den pcf
anzuschliessen. Die Lösung mit dem internen 32khz-Quarz hat aber auch
was für sich. Ganz minimalistische können auch den internen RC-Oszi
benutzen und diesen über den 32khz-Quarz kalibrieren. (Der RC ist aber
sehr temperatur-abhängig, deshalb muss man regelmässig
nach-kalibrieren).

Stefan

von Jochen (Gast)


Lesenswert?

Hallo nochmal,

da ich gerne Datum und Uhrzeit mit dabei hätte würde ich schon ganz
gerne die RTC Lösung nehemen.
Das mit dem UART muss ich mir anschauen was es mir effektiv bringt wenn
ich den uC in Powerd Down schicke anstadt ihn idlen zu lassen.

Der Jochen

von Stefan Kleinwort (Gast)


Lesenswert?

Im Idle-Mode bewegst Du Dich im mA-Bereich, im PWDN kannst Du bei gutem
Design bis auf 10-20uA runterkommen. Dazu muss aber der Regler und der
RS232-Treiber entsprechend gewählt werden, ich benutze für den Regler
TOREX.
Falls Du den Idle-Mode benutzen willst: nimm einen möglichst langsamen
Quarz (Deine Anwendung scheint ja nicht viel Rechenleistung zu
brauchen), der Stromverbracuh ist fast linear zu f.

RTC intern oder extern ist natürlich einen Glaubensfrage - bei intern
kannst Du auch Datum und Uhrzeit bekommen, musst das aber selber
programmieren (es gibt dafür aber sicher auch Code irgendwo im Netz,
lohnt sich aber fast nicht danach zu suchen ...).

Stefan

von Jochen (Gast)


Lesenswert?

Ist mir schon klar das, das intern programmierbar ist. Mir gehts halt
darum ein bisschen die Wage aus SW und HW zu bekommen. Das ganze soll
eine Technikerarbeit werden und muss sich so im Rahmen von 160h
inclusieve Dokumentation abspielen.

Ich denke halt das es von Vorteil ist wenn man HW und SW einigermaßen
gleichmäßig verteilt.

Mir würden da noch so viele Sachen einfallen die man machen könnte aber
da reicht die Zeit halt nicht für.

Wenn mann bedenkt das die 160h auch das einarbeiten in die Materie
beinhalten sollen ist das nämlich verdammt wenig.

In diesem Sinn, der Jochen

von Peter D. (peda)


Lesenswert?

Stell Dir das mit externen RTCs mal nicht zu einfach vor, da must Du
auch erst mal das Übertragungsprotokol verstehen und die haben oft ein
sehr merkwürdiges Zahlenformat, wo mehrere Bits bunt durcheinander
gewürfelt sind.

Manche sind auch nicht ganz Bugfrei, z.B. gibt es einen, der nach dem
Mond geht, wenn man ihn zu schnell hintereinander ausliest.


Deshalb würde ich die paar Variablen, die man bis 60, 60, 24 usw.
zählen läßt, eigentlich als einfacher ansehen.
Den Endwert für den Tageszähler (28,30,31) bekommt man auch ganz
einfach über eine Tabelle mit dem Monat als Index und die 29 wenn kein
Rest bei Jahr/4.
Und fertig ist Uhr + Kalender.


Peter

von Stefan Kleinwort (Gast)


Lesenswert?

@Peter:
War das nicht so, dass Du dazu sogar eine SW reingestellt hast? Aber
die hat (wenn ich mich recht erinnere) ein Jahr-2100-Problem. Also nix
für Enterprise-Fans :-))

Stefan

von Fritz Ganter (Gast)


Lesenswert?

@Stefan
Du kannst den internen RC-Oszi bis auf 1MHz runter schalten, dann
brauchst du im aktiven Mode weniger Strom, *aber*:

Laut Dantenblatt steigt der Strom mit der Frequenz ziemlich linear.
D.h.  wenn die Interruptroutine mit 1MHz 8ms braucht, braucht sie bei
8MHz nur mehr 1 ms, deswegen ist der Stromverbrauch der selbe, was auch
meine Messung bestätigt hat.

@Jochen: Beachte bitte, dass du aus dem Powersave nur mit dem 32kHz
Quartz rauskommst, sofern du keinen anderen externen Interrupt
erzeugst. D.h. wenn du die Uhrzeit auf einem Display anzeigen willst,
musst die Variante mit externen Timerquarz nehmen oder z.B. alle
Sekunden einen INT0 erzeugen, was wieder extra Hardware braucht.

von Fritz Ganter (Gast)


Lesenswert?

Korrektur:
Den 32kHz brauchst natürlich auch, um regelmässig aus dem Powerdown zu
kommen, um die Zeit hochzuzählen. Dabei kann man mit
Vorteiler/overflowinterrupt auf 1 sek Intervall einstellen. Ich lass
ihn 1024 mal in der Sekunde aufwachen, da ich in der Interruptroutine
auch meinen Quitschton erzeuge (1Hz am Piezo weckt mich nicht so
richtig).

von Stefan Kleinwort (Gast)


Lesenswert?

>Laut Dantenblatt steigt der Strom mit der Frequenz ziemlich linear.
>D.h.  wenn die Interruptroutine mit 1MHz 8ms braucht, braucht sie bei
>8MHz nur mehr 1 ms, deswegen ist der Stromverbrauch der selbe, was
auch
>meine Messung bestätigt hat.

Das gilt aber nur im PWDN-Mode. Ich sprach oben aber explizit vom
IDLE-Mode. Und in diesem ist es nicht ganz trivial, ob 15min mit 1Mhz
oder 8Mhz getrödelt wird.

Stefan

von Fritz Ganter (Gast)


Lesenswert?

Ja, hab ich auch so verstanden, halt nur nicht hingeschrieben :-)

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.