www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DCF77 mitells PIC (Max232) an RS232


Autor: Sixten Krahnert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab die Aufgabe gekriegt, eine Funkuhr (sprich ein DCF77-Signal)
über einen Max232 an die serielle Schnittstelle eines PC`s zu koppeln
und dann mittels Assembler und Terminal eine Ausgabe zu machen.

Probleme habe ich jetzt bei dem Netzwerk vor dem PIC.
Das DCF77-Modul gibt standardmässig 5V aus. Wenn eine Information
übertragen werden soll (am Anfang jeder Sekunde), sinkt der Pegel auf
~1,25V. Sinkt der Pegel für 100ms ab, so entspricht das einer "0",
bei 200ms einer logischen "1".

Hat einer einen Vorschlag (vielleicht sogar mit Grobskizze), wie ich
dieses Signal in ein schönes High-Low (0V-5V) an den PIC bekomme?

der Vorschlag das Ganze mittels eines 2. µC zu machen wurde verworfen,
ebenso erst die Auswertung im Rechner
also soll das wohl mittels einer reinen Rechenschaltung geschehen

Folgende Ideen sind mir dabei gekommen:

- mittels Ladungsverstärker nen Kondensator aufladen (müsste dann wohl
vorher über nen Spannungsteiler) und dann über nen Schmitt-Trigger, die
Mitte des Entladestroms (was 150ms entsprechen würde) als Schaltschwelle
nehmen

- das DCF-Signal abtasten, den Wert bei 150ms übernehmen und daraus H/L
entscheiden, Problem hierbei: welchen Quarz nehmen, wie den Reset
auslösen und vor allem wann und gelinde gesagt, hab ich hier noch
weniger Vorstellungen als bei der ersten Idee

dann wäre noch die Frage nach dem Quarz für den PIC, im Prinzip würde
es reichen, wenn die Signal jede Sekunde weitergeleitet würden aber nen
60Hz-Quarz hat wohl noch keiner gebaut

Ich bedanke mich für Vorschläge und hoffe auf hilfreiche Resonanz

Autor: Florian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also erst einmal eine Diode und schon kann man die Spannung mit dem PIC
verwerten. Abhängig davon, welcher PIC verwendet wird, gibt es mehr
oder weniger Timer.

Idee: Im PIC die negative Flanke feststellen und Zählerwert ablesen.
Bei positiver Flanke wieder den Timerwert abfragen und Differenz
bilden. Die Differenz auswerten (abhängig von der Geschwindigkeit des
Timers im PIC). Die Auswertung des Zeitsignals (dekodieren) kann auch
im PIC erfolgen.

Gruß,

Florian

Autor: Sixten Krahnert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, das vor der 1.25V ist kein Minus, sondern ein "rund", weil die
5V bei Signalübertrag intern auf 1/4 gesenkt werden.
Bei 2 positiven Spannungen hilft die Diode glaub ich nich...man könnte
das Signal vielleicht um 3V absenken, dann könnte die Diode dazwischen,
anschließend müsste man wieder um 3V rauf...

Autor: Florian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man wird eben alt und sieht nicht mehr so gut...

Dann: Spannung mit Spannungsteiler und Komparator vergleichen. Oder
einen Schalter mit Hysterese (z.B. Schmitt-Trigger) verwenden; der kann
allerdings das Signal 'verschleifen'.

Autor: Marc989 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe eine anwendung mit PIC und DCF Modul (Conrad) am laufen. Habe
dazu einfach das Modul an einen Pin des Pic gehängt und taste intern
per Timer (1ms) bei 4MHz den Zustand des Pins ab. Bei Pegelübergang von
High nach Low wird die zahl ausgewertet, sonst wird counter
incrementiert.
Ein zweiter counter zählt ab der ersten Sekunde dann jede Sekunde wegen
Datenzuordnung.

kann dir ja die Routine in C ja mal geben.

MARC

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde das ganze mit nem ATTiny12 machen:

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

Nur noch nen Software UART Transmitter reinprogrammieren und fertig.
Hier ist z.B. ein älteres Programm mit Software-UART:

http://home.tiscali.de/peterd/avr/soft/dcf77/index.htm



Was für komische Module nimmst Du denn ?

Die Conrad DCF77 Module liefern doch volle 5V TTL-Pegel.

Falls Dein Modul aber wirklich so seltsame Pegel hat, nimmste eben
einfach den Analog-Komparator und 2 Widerstände zum Einstellen des
Schwellwertes am anderen Komparatoreingang.


Peter

Autor: Sixten Krahnert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marc
die Routine in C wäre nicht schlecht, kannst du die bitte an meine
eMail schicken?
@Peter
ich hab das Modul noch net (wird erst bei kompletter Schaltung alles
bestellt), die Vorgabe war ein DCF-Modul von Conrad, auf Nachfrage nach
den Pegeln wurde mir gesagt: 5V-Ausgang, Rest wie vom Sender empfangen,
daher die auf 25%-Absenkungs-Annahme meinerseits

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Modul von Conrad hat einen open collector Ausgang. Da musst du nur
einen Widerstand ranhängen und bekommst ein Signal zwischen 5V und 0.2V
oder so. Kannst du dann direkt mit einem I/O pin deines PIC verbinden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.