Hallo Ich suche eine Umsetzung für eine Taktflankenerkennung. Die Schaltung muss taktsynchron entweder die positive oder negative Flanke erkennen können. Wenn ich mich noch richtig an meine Informatikstunden entsinnen kann, kann man sowas doch aus 3 NOT-Gliedern in Reihe und einem 2x-UND machen indem man die Laufzeit des Signals durch die NOT-Glieder ausnutzt. Haut das hin oder nicht? Das ganze ist nicht sonderlich zeitkritisch. Gruß Karl
Das mit den NOT&AND Gattern ist korrekt. Aber versteh ich nicht ganz, was du damit meinst: >Ich suche eine Umsetzung für eine Taktflankenerkennung. Die Schaltung >muss taktsynchron entweder die positive oder negative Flanke erkennen >können. Willst du mit den entstandenen Impuls zB einen Zähler zählen lassen?
Ja das kannste du so machen. Du erwischst dann immer die positive Flanke.Wenn du die negative willst setze einen Inverter davor oder ersetz das und durch ein Oder Gatter. Gruss Helmi
Vielen Dank für die Hilfe :-) Nein, die von der Schaltung erkannte Flanke wird dann mit einem µC weiterverarbeitet. Mit dem "Schaltung muss taktsynchron sein" meinte ich, dass die Schaltung zur Flankenerkennung möglichst synchron mit dem Takt arbeiten muss. Wenn also eine entsprechende Flanke kommt, soll der Ausgang der Schaltung auch sofort reagieren. Eben binnen weniger µs. Das ist bei so Standardgattern ja kein Problem.
Wenn das Teil sowieso von einem uC weiterverbastelt wird, dann versteh ich dein Problem nicht. Bei einem AVR kann ich z.B. einen ext. Interrupt oder einen Pinchange Interrupt für sowas verwenden. Die Signaländerungsrate des Eingangssignals muss dann halt kleiner als die Taktfrequenz sein. (glaub Faktor 2 od. 4, damit der uC die Flanke sicher erkennt). Ein AVR mit 16 Mhz Takt braucht ca. 65 ns für ein Befehl, als innerhalb einer Mikrosekunde ca. 15 Befehle. Wenn da zu langsam ist, dann würde ich einen CPLD empfehlen....
Es ginge auch noch der Input Capture. Damit kannst du taktzyklengenau die Flanke erkennen. Wenn die Flanke eintritt, wird der aktuelle Timer-Wert in einem I/O-Register gesichert, dann ein Interrupt ausgelöst. Da mußt du den Wert nur noch auslesen und verarbeiten, bevor die nächste Flanke kommt.
>enn also eine entsprechende Flanke kommt, soll der Ausgang der >Schaltung auch sofort reagieren. Eben binnen weniger µs. Das ist bei so >Standardgattern ja kein Problem. Dazu brauchst du KEINE externe Logik! Einfach das zu untersuchende Signal an einen Extern-Interrupt-Pin_Eingang. Mit dem Programm kannst du dann sagen, auf welche Flanke der Interrupt ausgelöst werden soll, und was passieren soll. Reaktionszeit: ca 4..10 CPU-Takte, bei 16MHz <1µs.
Karl wrote: > Nein, die von der Schaltung erkannte Flanke wird dann mit einem µC > weiterverarbeitet. Das kannste abschminken, die Schaltung mit Gatterlaufzeit dürfte nur etwa 20ns Pulsbreite erzeugen, viel zu kurz für nen MC. Laß also die Flanke den MC einfach selber erkennen. Ist die original Pulsbreite aber schon sehr kurz, nimm nen Flipflop zum Speichern der Flanke und setz den MC-Interrupt auf beide Flanken. Peter
Ein Kondensator in Reihe tut das auch. Ausgang -> Kondensator -> Eingang Evtl noch eine Diode und einen Widerstand an den Eingang hängen und gut ist.
> Reaktionszeit: ca 4..10 CPU-Takte, bei 16MHz <1µs. Beim AVR (so es denn um den geht - der OP hat dazu nix geschrieben) geht's eher so Richtung 10 bis 15 Takte, wenn man die ISR in Assembler implementiert und keinen Sleep-Modus benutzt.
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.