Forum: Mikrocontroller und Digitale Elektronik DCF-77 Einchiplösung


von Ratber (Gast)


Lesenswert?

Die üblichen RTC,s sind ja allgemein ganz ok aber auf lange Zeit eben
nicht gut genug.
Von automatischer Sommer/Winterzeitumstellung mal abgesehen.

Also DCF.

Leider ist die Auswertung "nebenbei" etwas altbacken für meinen
Geschmack da ich die verfügbaren Resourcen anderweitig benötige.

Ich suche schon seit geraumer Zeit nen Komplettchip also ne DCF-RTC an
die ich nur noch meinen Empfänger (Orgendein Modul.Entweder Selbsbau
oder meinentwegen das 10Eur-Modul von Conrad)dranhänge.

Bis jetzt hab ich gesucht aber nix gefunden.

Meine Alternative ist nen Extracontroller (zb. Atiny12 oder nen kleinen
Pic) der sich nur um diese Geschichte kümmert.

Irgendwie schein die Chipindustrie da nix zu machen.

Weiß einer ne Lösung ?
I2C,1W oder Seriell ist egal,hauptsache Simpel.

: Gesperrt durch User
von ThomasB (Gast)


Lesenswert?

Hallo:
Schau mal hier: http://www.hkw-elektronik.de/shop/

von Peter D. (peda)


Lesenswert?

Theoretisch kannst Du das mit einem extra Chip machen, z.B.:

http://www.mikrocontroller.net/forum/read-4-23408.html


Praktisch macht das aber wenig Sinn. Der Rechenzeitaufwand ist mit der
Erkennung eines Pulses je Sekunde (= 1Baud) so lächerlich gering, daß
das wirklich jeder MC nebenbei machen kann.

Deshalb gibt es eben nur diese Chips mit dem 1Baud-Ausgang.


Die Sommerzeit kann man aber auch ohne DCF77 machen, z.B.:

http://www.mikrocontroller.net/forum/read-4-32158.html


Peter

von Ratber (Gast)


Lesenswert?

@ThomasB


Da hab ich schon längst nachgesehen.
Ich schrieb doch das ich nen Chip brauche.
In Worten : ne "Einchip" lösung.

Ganze Module (wie bei hkw)kann ich mir selber basteln aber die sind
etwas Sperrig wenn die eigentliche Schaltung nur halb so groß ist.
Preislich kommt es leider auch nicht hin.

@Peter

Yo,ich kenne diese Artikel aber mir geht es darum sozusagen einen
DCF-RTC zu bekommen (Am liebsten I2C) den ich einfach nur in betrieb
nehme und simpelst abrufen kann ohne mich ´weiter um den Empfang zu
kümmern.

Wic ich schon sagte suche ich seit geraumer Zeit danach aber
offfensichtlich gibt es da nix.
Tonnen von RTC's in allen Formen und Farben aber eben kein
DCF-Modell.

Naja,fom Platzbedarf her ist es egal ob ich nen Fertigen 8 Beiner
bekomme oder ob ich nen Kleincontroller nutze.

Ich will mir nur die Arbeit ersparen.(Bin auch nur Faul gg)

Wenn nicht doch noch einer was weiß dann besorge ich mir eben nen
Atiny12 (Kostet ja nur einige Cent) und Funktioniere ihn eben zur
DCF-RTC um.Als I2C Slave kann er dann Transparent betrieben werden.

Ich muß mir nurnoch das Datenblatt besorgen weil da noch Fragen offen
sind.(Läuft der auch ohne Quarz,Wenn ja wie genau,etc.)

Wie gesagt,ich suche erstmal bevor ich mich aussem Sessel losreiße ;-)

von Ingo (Gast)


Lesenswert?

Hallo Ratber,

Wie wäre es mit einem PIC 12F629, die schön klein, kosten nur knapp
zwei Euro 1024 Worte Programm und 64 Byte Ram. Sollten ausreichen um
DCF und I2C zu implementieren.

GRUSS
    INGO

von Ratber (Gast)


Lesenswert?

Yep,hatte ich auch in der Engeren Wahl aber da ich mit PIC's noch nicht
gearbeitet habe mache ich mir das recht einfach und nehme einfach
erstmal einen Atmel den ich auch per Bascom bearbeiten kann
(Geschwindigkeit spielt hier ja keine Rolle.Dafür ist der Code allemale
ausreichend.

Da es vermutlich eh keine fertige Lösung gibt studiere ich gerade die
Datenblätter und irgendwo zwischen Atiny11/12/15 bzw. 90S2323/43 werde
ich dann zuschlagen.

Der Atiny13 liegt mir da am besten denn mit 1.8-5.5V
Versorgungsspannung und nur 290 uA Stromaufnahme kann ich den gut über
nen kleinen Akku laufen lassen.


Benotigen Tu ich ja eh nur 3 Ports
1x Empfang von Antenne
2 für die I2C Schnitstelle (Läuft dann als normaler Slave)

von Ingo (Gast)


Lesenswert?

OH OH

den Atiny13 ja, aber was ist mit dem DCF-Empfänger!?!?!
Das sind teilweise richtige Stromfresser dabei, ich würde vorschlagen
erst das Datenblatt lesen!!!!

GRUSS
       INGO

von Peter D. (peda)


Lesenswert?

"Bin auch nur Faul *gg*"


So wies aussieht, wirst Du aber viel mehr Arbeit in Deinen extra Chip
reinstecken müssen, als wenn Du die Auswerteroutine direkt einbindest.

Also extra noch umständlich über ein I2C-Protokoll hin und
zurückwandeln.
Kostet Dich nicht nur mehr Programmieraufwand sondern auch mehr
Rechenzeit. Du müstest dann noch dem I2C-Slave einen Interrupt
spendieren, oder ständig pollen, was dann noch mehr Rechenzeit
benötigt.


Die direkte Auswertung kannst Du dagegen bequem in Deinen
Hauttimerinterrupt mit einfügen. Der sollte bloß nicht langsamer als
60ms sein, um die 100ms noch sicher von den 200ms unterscheiden zu
können.


Den DCF77 mit Batterie zu puffern, habe ich noch nirgends gesehen, der
empfängt doch die Zeit immer wieder neu. Bringt also nur was, wenn das
komplette Gerät mit der Batterie läuft.


Vielleicht solltest Du das nochmal richtig durchdenken, ehe Du den
Aufwand unnötig in die Höhe treibst.


Peter

von Ratber (Gast)


Lesenswert?

@Ingo

Das ist einfach gelöst.

Die 3mA für den Empfänger sind im Betrieb nicht erheblich.

Ist die Schaltung aus dann läuft der Controller nur als gewöhnliche RTC
langsam vor sich hin und konsumiert auch nur wenig.

Es geht nur darum das die Zeit beim einschalten da ist und das se nach
der üblichen kurzen Synchronisation (Max 3 Minuten) auch gegebenenfalls
nachgestellt wird.

@Peter

Da ich ja mit Bascom Arbeite beschränkt sich die Abfrage auf nur wenige
I2C Befehle bzw. eigentlich nur einen Befehl per Kette.

zb.:

Ich Ordne Sekunde,Minute,Tag,Monat und Jahr zu das sind schonmal 4  .
Plus Adresse dann 5 Werte.

Das ganze sieht dann so aus.

Definition.

Dim Ax(4) As Byte


Im Programm dann

I2cSend &Hxx , 'Lesebefehl'
I2cRecieve &Hxx , Ax(1) , 4


Das wars dann auch schon in etwa.
Das ganze ist ne sache von Milisekunden.

Die Uhrzeit im Controller soll nur einmal beim Start bzw. nur selten
auf den neuesten Stand gebracht werden damit se mit der Zeit nicht
komplett aussem Ruder läuft.


Das Gerät läuft später auf netzteil aber ist regelmäßig nur zu
bestimmten Tageszzeiten in Betrieb also hab ich mit der Akkupufferung
keine Probleme.

Um das ganze mal genauer zu beschreiben:

Die Schaltung soll beim Start "kurz" das Datum aus der RTC holen und
dann sofort anfangen zu arbeiten.

Ich brauche möglichst viel Rechenzeit aber auch das Korrekte Datum
Sammt Uhrzeit.

Dabei kommt es nicht darauf an das die Uhr am Tag meinentwegen einige
Sekunden daneben liegt.
Hauptsache se ist im Mittel korrekt (Dafür is DCF ja optimal
geeignet.)
Die DCF-Synchronisation wird dann für den "Uhrenchip" wärend des
Betriebes vorgenommen so das der eigentliche Controller damit nicht
belastet wird.


Ich habe mir das schon ganz genau überlegt bevor ich den Entschluß
gefasst habe.

-------------------
Ich bin nur auf der Suche nach nem fertigen Chip gewesen da ich das Rad
ja nicht nochmal erfinden will.
Allerdings werde ich das jetzt müssen aber das ist auch nicht so wild.
Einmal fertig kann ich das Design ja immer wieder nutzen da sich der
kleincontroller nach außen wie ein gewöhnlicher I2C-Uhrenchip verhält
also isser auch Transparent einsetzbar.
-----------------

Der Kostenaufwand ist da eher uninteressant da nen "ordinärer"
Uhrenchip so ziemlich das gleiche kostet (Antenne natürlich nicht
eingerechnet)

von Dieter Hagl (Gast)


Lesenswert?

Hallo Ratber,


schau dir doch mal das an:
http://www.imsdd.fraunhofer.de/datenblaetter/intellectual_properties/dcf/dcf-d.pdf


Ciao Dieter

von Peter D. (peda)


Lesenswert?

"Ich brauche möglichst viel Rechenzeit"

Wo ist das Problem ?
Nebenbei ein einziges lahmes Baud (Bit/s) zu dekodieren kostet Dich:

alle 10ms etwa 20 Takte
alle 1s etwa 50 Takte

Das macht bei 4MHz:

(100 * 20 + 50) / 4e6 = 0,05% Rechenzeitverbrauch.

Du siehst, das ist fast nichts, d.h. mit einem externen Chip bist Du um
keinen Deut schneller.

Wenn Du also Geschwindigkeitsprobleme hast, hilft nur ein schnellerer
Quarz oder eine schnellere Programmiersprache als Bascom (z.B.
Assembler oder C) oder vielleicht nur eine bessere
Programmstrukturierung.


Peter

von Ratber (Gast)


Lesenswert?

@Dieter

Danke für den Link

Das entspricht einer Seriellen Variante dessen was ich machen will.


@Peter

Is Prinzipiell richtig was du sagst aber du hast nicht verstanden.

Ich will die aktuelle Uhrzeit beim Start haben und nicht ne
"Warmlaufphase" von 1-3 Minuten weil der Controller erstmal das
Zeittelegram empfangen muß.

Die Lösung ist also ne Akkugepufferte RTC die ich beim Start direkt mal
eben abfragen und damit die Systemzeit setzen kann.

Damit die Uhrzeit auf Dauer relativ genau bleibt wird in der Folgezeit
des Betriebes die RTC per DCF dann Synchronisiert.

Sicher könnte man jetzt fragen warum ich den Controller selber nicht
einfach dauernd laufen lasse aber das geht aus Sicherheitsgründen
nicht.

Die Bedingungen sind recht einfach.

-Der Controller läuft ca. 16 Stunden am Tag,die Restzeit ist er aus und
kann so auch keine Verbraucher schalten (Sicherheit).

(8 Stunden Pufferung des "RTC's" über Akku ist da also absolut kein
Problem.Die Antenne bleibt dabei aus)

-Beim Systemstart soll die abarbeitung des Programmes sofort
erfolgen,also muß "sofort" eine gültige Zeit da sein.

(Deswegen kommt da nur ne RTC in frage)

-Die Zeit sollte ohne manuellen eingriff im Mittel korrekt sein.

(Deswegen DCF.Da die RTC nur selten abgefragt wird hats se reichlich
Zeit einmal am Tag oder alle 4-5 Stunden sich auf den neuesten Stand zu
bringen)


Nen Kleincontroller mit entprechender Programierung ist da also
allemale günsiger als jedes Modul und ich kann "die" Schnittstelle
implementieren die ich am liebsten haben will (in diesem Falle
I2C.Natürlich sind auch andere möglich,Läst sich ja leicht anpassen)

Zuguterletzt weiß ich natürlich das ne RTC recht lange einigermaßen
genau läuft aber auch die beste läuft nach einigen Wochen aussem
Ruder.
In der Praxis soll dem Anwender der manuelle Eingriff einer Korrektur
erspart bleiben.

Sicher bleibt jetzt die Frage warum ich nicht ne einfache RTC (DS-1xxx)
nehme und die vom Controller aus nach einiger Zeit aktualisiere.

Könnte ich auch machen aber wenn dann komplett am Stück.
Wie gesagt kann ich mir dann die DCF-Routine komplett schenken.


Zu Bascom:

Ich bin ja erst letztens umgestiegen aber gegenüber der letzten krücke
ist nen AVR mit Bascom glatt nen Renner.

Geschwindigkeitsprobleme hab ich also derzeit absolut nicht.

Was natürlich besonders daran reizt ist das ich ne Idee recht flott mit
einigen Befehlen umsetzen kann da die gängigste Hardware (LCD,I2C,1W
usw.) schon komplett implementiert ist.

Derzeit bin ich zufrieden.

von Peter D. (peda)


Lesenswert?

Von Akkus würde ich dringend abraten, erst recht wenn Du ihm wirklich
tägliche Lade-/Entladezyklen zumuten willst.

Ich denke, jeder von uns ist schon Akkugeschädigt und kann das
nachvollziehen. Egal, ob Handy oder Notebook, Akkus gehen quasi im
Handumdrehen kaputt.

Stehen zwar immer 1000 Ladezyklen drauf, aber in der Praxis ist man
schon froh, wenn auch nur 200 erreicht werden.


Wenn Dein Gerät auch ne Weile halten soll, hilft nur ein RTC-Chip mit
Lithium-Batterie, z.B. der DS1994 soll ja 10 Jahre ohne Strom
überbrücken können, also in Deinem Anwendungsfall dann 30 Jahre.


Peter

von Rainer D (Gast)


Lesenswert?

Hallo,

bei der Anwendung würde auch ein PCF8583 mit Goldcap reichen, dann
braucht man sich nicht um Ladung Haltbarkeit u.a. zu kümmern....

Es reicht ja wenn man die Schlatung einschaltet und diese holt dann
einmal die Zeit vom der RTC für den Arbeitsbeginn. Das DCF Signal wird
dann einmal ausgewertet (im Hintergrund) und die RTC und mit der RTC
syncronisiert.

Na ja was Rechenzeit angeht nicht unbegingt nen Uhrenquarz als
Hauptquarz verwenden :) und nicht Sekundenwarteschleifen ins Programm
schreiben.....

MfG
Rainer

von Ratber (Gast)


Lesenswert?

@Peter

Also das mit den Akkus kann ich nicht nachvolziehen.

Für Digicam,Telefone (Schnurlos),Taschenlampen und sonstigen
Kleingeräten nutze ich Akkus seit etlichen Jahren und die letzten die
sich verabschiedet haben waren noch Nicd.

Die Nimh hatten bis jetzt noch keine ausfälle.

Den größten Streß dürfte wohl der Satz im Telefon haben denn die werden
nach jedem Gespräch wieder Teilgeladen.
Dabei schleppe ich die alten 1500er GP schon über die Dritte
Schnurlosgeneration (Siemens Gigaset 2/3/4000) mit und habe immernoch
genug kapazität um auch mal 5 Stunden zu Telefonieren (Kommt auch mal
vor).

Auch die beiden Micros (400er von GP) im PDA (Altes Palm IIIx mit
umgebautem Cradle) zeigen nach jahren immernoch keine
Ermüdungserscheinungen.

Ebenso bei der Digicam.
Dort macht sich nen Kapazitätsverlust am stärksten bemerkbar wenn man
mal das Display lange an läßt.
Derzeit habe ich noch 2 Sätze (Jeweils 4x 1700 und 1800mAH) im Einsatz
und bei der Regelmäßigen Ladung (Ich knipse ungehemt.Sortiert wird
später) bekomme ich ja die Kapazitäten angezeigt so das es ja schnell
auffallen müßte.
Der 1700er Satz ist jetzt 4 Jahre alt ,der 1800er ca 3.5 Jahre und alle
erfreuhen sich bester Gesundheit.


Meinem Schwesterchen hab ich vor einigen Wochen nen Satz 2000er
besorgt
und da war auch einer der mit 1650 mAh schon recht arg aus der Reihe
Tanzte so das er getauscht werden mußte.



Vieleicht liegt es aber auch daran das ich 1. Keine Nonameakkus nehme
(Die stammen nicht selten aus Ausschußserien) und 2. auch beim Laden
drauf achte das wenigstens die Ladeschlußspannung eingehalten wird.

Gerade das Ladegerät ist maßgeblich für die Lebensdauer.
Wenn das nicht richtig funktioniert dann helfen auch die besten Akkus
nichts.


Beim RTC-Akku sehe ich da absolut kein Problem.


Anmerkung zu Handys uind Notebooks:

Viele haben dort Lithiumakkus und die halten max 3 Jahre ob se genutzt
werden oder nicht weil se einfach vom Tage der Produktion an gleich
anfangen zu verfallen dh. Schleichender Kapazitätsverlust von der
ersten Stunde an.
Dazu kommt das man beim Kauf eines Ersatzakkus nie sichergehen kann wie
alt der Vogel schon ist (Gemeint sind die Verbauten Zellen und nicht
das Modul) so das man pech haben kann das der Teure Energieträger schon
nach weinigen Monaten die Flügel streckt.
Sicher wird es in der Vergangenheit schon öfters Geschäfte mit
überlagerten Akkus gegeben haben da die Garantie ja nur bei 6 Monaten
lag.
Heute ist das mit 2 Jahren etwas anders aber auch hier gibt es
Einschränkungen weil es sich Faktisch um ein Verschleisteil handelt und
der Kunde die Sachgemäße nutzung nachweisen muß.
Bei Autoadaptern ist da meist schon ende weil die meisten Geräte dieser
Kathegorie einfach nur (Teurer) Schrott sind.(Gilt nur für Handys/Akkus
die keinen eigenen Ladecontroller besitzen)

Keleine Anekdote: Ich hab noch nen altes Schiffsmodell (Von Carrera,Fix
und Fertige Yacht.Hab ich zum 10.Geburtstag bekommen)
Das ich irgendwann umgebaut haben weil die Originalaustattung nen Witz
war (Winziger 200er Mabuchi auf Getriebe) und später zum
"Rettungsboot" (Is mit nem bewegolichen Ausleger für
Haken,Greifer,Magnet etc. ausgestattet) umfunktioniert um
liegengebliebene Modelle einfach zu bergen und ans Ufer zu bringen.

Die Umrüstung ist jetzt 15 Jahre her und seitdem sind auch nur die
alten 4000mAh Nicd Monozellen drinn.
Dank vernünftigem Ladegerät (Werden immer im Modell als Pack  geladen)
sind die heute noch voll in Ordnung obwohl ich den Abschleppkahn
jedesmal mitnehme und auch fahren lasse (bzw. Die Kids damit ruh is)und
damit die Ladezyklenzahl schon recht hoch is.


@Rainer


>Es reicht ja wenn man die Schlatung einschaltet und diese holt dann
>einmal die Zeit vom der RTC für den Arbeitsbeginn. Das DCF Signal
>wird
>dann einmal ausgewertet (im Hintergrund) und die RTC und mit der RTC
>syncronisiert.

Die Alternative hatte ich ja schon angesprochen aber wenn ich eh nen
RTC nutzen muß dann kann der ganze DCF-Vorgang auch gleich dahin
entschwinden.
Ich Denke auch an zukünftige Projekte und da ist es Simpler wenn ich
den RTC Sammt DCF gleich Autark habe.

>Na ja was Rechenzeit angeht nicht unbegingt nen Uhrenquarz als
>Hauptquarz verwenden :) und nicht Sekundenwarteschleifen ins Programm
>schreiben.....


Wieso ?
Mache ich doch immer so ;)

von Paul (Gast)


Lesenswert?

Wer noch immer DCF-Decoder sucht:
Datenblatt: http://www.robotikhardware.de/download/DCF_RS1.pdf

Ich weiss, der Beitrag ist älter, ich wollte es vollständigkeitshalber 
nur nachtragen.

von c-hater (Gast)


Lesenswert?

Ratber schrieb:

> Leider ist die Auswertung "nebenbei" etwas altbacken für meinen
> Geschmack da ich die verfügbaren Resourcen anderweitig benötige.

Sprich: Du kriegst es nicht gebacken, bist aber zu feige, das zuzugeben.

> Ich suche schon seit geraumer Zeit nen Komplettchip also ne DCF-RTC an
> die ich nur noch meinen Empfänger (Orgendein Modul.Entweder Selbsbau
> oder meinentwegen das 10Eur-Modul von Conrad)dranhänge.

Also de facto einen µC mit wenig Pins, gerade genug um auf einer Seite 
das DCF-Modul anzuflanschen und auf der anderen Seite irgendeine 
Schnittstelle bereitzustellen, die du mittels Copy&Paste-Code 
"beherrschst".

> Meine Alternative ist nen Extracontroller (zb. Atiny12 oder nen kleinen
> Pic) der sich nur um diese Geschichte kümmert.

Ah ja. Es geht doch. Ich persönlich würde allerdings einen Tiny13A oder 
Tiny25 benutzen.

> Weiß einer ne Lösung ?
> I2C,1W oder Seriell ist egal,hauptsache Simpel.

Sag ich doch: Das, was du mittels Copy&Paste-Code "beherrschst".

Denn: Jedes der genannten Protokolle/Schnittstellen fordert mindestens 
soviele, teils sogar deutlich mehr Resourcen als eine händische 
DCF77-Auswertung, sowohl was den Rechenzeitbedarf, den RAM als auch die 
nötige Pinzahl betrifft.

Damit ist dein eingangs dargelegtes Argument als Lüge enttarnt, in 
Neusprech auch: "Schutzbehauptung". Falls das deiner zarten Seele 
weniger Schaden zufügt, darfst du auch gern nur diesen Terminus 
wahrnehmen und die böse ungeschminkte Wahrheit weiter ignorieren.

von c-hater (Gast)


Lesenswert?

c-hater schrieb:

[...]

Scheiße, schon wieder auf so einen Troll reingefallen, der irgendeinen 
uralten Thread aus der Versenkung holt.

An die Moderatoren:

Wenn auch eure schweren Pflichten mal nicht so stark belasten, könntet 
ihr vielleicht eure Zeit nutzen, um in die Boardsoftware mal einen 
Warnmechanismus einzubauen, der einen drauf hinweist, daß man auf ein 
Posting antwortet, in dessen Folgethread sich seit Jahren nix getan hat.

Danke.

von spess53 (Gast)


Lesenswert?

Hi

>Ratber schrieb:

Das war 2003.

MfG Spess

von SW (Gast)


Lesenswert?

Warum sollte irgendjemand Zeit investieren, nur weil Du zu blöd bist um 
ein Datum zu lesen und lieber gleich den Bsißreflex losläßt, wenn Du was 
siehst, was nicht in dein jämmerliches Weltbild passt?

von Michael W. (Gast)


Lesenswert?

@ c-hater:

Dir ist schon bewußt, daß dieser Thread von ratber über 10 Jahre auf'm 
Buckel hat... ? Ich mein' ja bloß...

von Davis (Gast)


Lesenswert?

Erstklassig c-hater, wie du dich immer wieder selbst demontierst.

von c-hater (Gast)


Lesenswert?

Davis schrieb:

> Erstklassig c-hater, wie du dich immer wieder selbst demontierst.

Inwiefern "demontiere" ich mich hier?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

c-hater schrieb:
> An die Moderatoren:
>
> Wenn auch eure schweren Pflichten mal nicht so stark belasten, könntet
> ihr vielleicht eure Zeit nutzen, um in die Boardsoftware mal einen
> Warnmechanismus einzubauen,

Die Forensoftware wird von Andreas entwickelt, wir Moderatoren machen 
das nicht. Der Vorschlag, etwas an der Threadleichenwarnung zu ändern, 
wird derzeit von uns diskutiert.

Ja: Threadleiche. Und deswegen mach ich hier zu,

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.