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
@ 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.
Mit einer PLL wie dem CD4046 könnte es möglich sein.
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
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
@ 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
Moment, da war doch was? 74LS297, das ist eine digitale PLL!!! Ohne uC! Die braucht aber auch einige Sekunden zum einrasten.
Falk Brunner schrieb: > Die braucht aber auch einige Sekunden zum einrasten. Tja, die Regelungtechnik laesst sich nicht so ohne weiters austricksen.
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.
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.
@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.
@ 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.