Forum: Mikrocontroller und Digitale Elektronik Frequenz verdoppler (pps signal 1Hz to 5-10 Hz)


von Alex (Gast)


Lesenswert?

hi,

ich bekomme von meinem GPS Gerät jede sekunde eine fallende Flanke. 
Jetzt würd ich dieses gerne mit einem anderen Gerät synchronisieren. 
Dieses Gerät soll jedoch auf mit einer höheren 5-10 Hz Signal getriggert 
werden. So das das ganze dann in etwa so aussieht _:Low Pegel |: high 
Pegel

PPSSignal:
|_________|_________|

Neues Signal:
|_|_|_|_|_|_|_|_|_|_|

Gibt es Logikbausteine die so etwas direkt machen? oder brauch ich dafür 
einen Mikrocontroller?

Viele Grüße
Alex

von Falk B. (falk)


Lesenswert?

@ Alex (Gast)

>Gibt es Logikbausteine die so etwas direkt machen?

Nein. Man braucht eine PLL.

>oder brauch ich dafür einen Mikrocontroller?

Kann man machen, ein 4046 reicht auch, je nach Stabilitäts- und 
Jitteranforderungen.

von Max H. (hartl192)


Lesenswert?

Mit einer PLL wie dem CD4046 könnte es möglich sein.

von X4U (Gast)


Lesenswert?

Falk Brunner schrieb:
> Nein. Man braucht eine PLL

und wie lange braucht die bei 1 Hz zum einrasten?

Alex schrieb:
> der brauch ich dafür einen Mikrocontroller?

Besser is das, aber es geht auch ein GPS Empfänger mit 10pps

von Axel S. (a-za-z0-9)


Lesenswert?

Eine PLL für 1Hz braucht große Kondensatoren im Schleifenfilter. Man 
würde das vermutlich viel lieber digital machen. Knackpunkt sind die mal 
wieder nicht genannten Anforderungen an Jitter, Einrastzeit, Genauigkeit 
etc.

Eventuell ist es sogar einfacher, eins der zahlreichen Projekte für ein 
GPS-stabilisiertes Frequenznormal mit sagen wir 10MHz zu nehmen und 
dessen Ausgangssignal entsprechend herunterzuteilen.


XL

von Falk B. (falk)


Lesenswert?

@ X4U (Gast)

>> Nein. Man braucht eine PLL

>und wie lange braucht die bei 1 Hz zum einrasten?

Eine 4046 sicher 10s++
Eine digitale auf uC Basis 1s

von Falk B. (falk)


Lesenswert?

Moment, da war doch was?

74LS297, das ist eine digitale PLL!!! Ohne uC!
Die braucht aber auch einige Sekunden zum einrasten.

von Helmut L. (helmi1)


Lesenswert?

Falk Brunner schrieb:
> Die braucht aber auch einige Sekunden zum einrasten.

Tja, die Regelungtechnik laesst sich nicht so ohne weiters austricksen.

von Achim H. (anymouse)


Lesenswert?

Alex schrieb:
> PPSSignal:
> |_________|_________|
>
> Neues Signal:
> |_|_|_|_|_|_|_|_|_|_|

Wäre auch so etwas möglich:

PPSSignal:
|_____________|______________|
Neues Signal:
|_|_|_|_|_____|_|_|_|__|_____|

Sprich: Dürfen am Anfang auch mal die pausen dazwischen ungleichmäßig 
sein?

Oder Du siehst das ganze als GPS-disciplinated Oscillator: Also mit 
einen (Quartz)-ungenauen Takt anfangen, der dann allmählich nachgeregelt 
wird.

von m.n. (Gast)


Lesenswert?

Wußte garnicht mehr, dass ich das schon mal gemacht hatte :-)
http://www.mino-elektronik.de/Generator/takte_impulse.htm#bsp4

Ggf. muß das Programm ein wenig angepaßt werden.

von m.n. (Gast)


Lesenswert?

@Alex
Hast Du mittlerweile eine Lösung gefunden?
Falls nein, könnte ich Dir eine Programmversion des obigen Programmes 
mit Faktor 10.0 erzeugen. Gebraucht würde dafür ein ATmega48, ein Quarz 
(am besten 20MHz), sowie ein paar Kondensatoren. Da jeder neue 
Eingangsimpuls gewertet wird, beträgt die Einstellzeit bei einem 
1pps-Signal eine Sekunde.
Falls die interne Genauigkeit höher sein soll, kann ich die Berechnungen 
auch auf double umstellen.

von Falk B. (falk)


Lesenswert?

@ m.n. (Gast)

>Falls die interne Genauigkeit höher sein soll, kann ich die Berechnungen
>auch auf double umstellen.

Was beim AVR GCC rein gar nichts bringt, weil die nämlich identisch zu 
float = 32 Bit sind. Mit bisschen Nachdenken und passender Skalierung 
reicht Festkommaarithmetik problemlos. Genaugenommen kann man sogar 
eine konstante Pulszeit einstellen, weil in diesem Fall die 
Eingangsfrequenz ebenfalls SEHR konstant ist. Der verbleibende Fehler 
ist sehr klein und bringt halt einen fast unmessbaren Zusatzfehler.

Einfach per ICP auf den Puls synchronisieren und per OCR einen passenden 
Takt ausgeben, fertig. Der ICP setzt dabei den OCR Zähler jeweils neu.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Falk Brunner schrieb:
> @ m.n. (Gast)
>
>>Falls die interne Genauigkeit höher sein soll, kann ich die Berechnungen
>>auch auf double umstellen.
>
> Was beim AVR GCC rein gar nichts bringt, weil die nämlich identisch zu
> float = 32 Bit sind.

Wenn ich double schreibe, dann meine ich auch double. Für den geneigten 
Programmierer gibt es von IAR eine Kickstarterversion für den AVR, die 
spielend anstatt float auch double rechnen kann.
Wenn es hier gerade um den Faktor 10.00000 geht, ist das ein Glücksfall 
für eine einfache Umsetzung. Aber warum etwas neu erfinden, wenn ich bei 
dem offenen Source-Code einfach den Faktor 10.0 eintippe und die Sache 
läuft.
Für mich ist das keine Arbeit!

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.