Hallo, ich möchte gerne folgende Schaltung bauen: Die Schaltung hat einen IN und einen OUT Pin. Links kommt ein digitales Signal (0V=LOW 3V=HIGH). Wenn IN=LOW wird, soll OUT umgehend LOW werden. Wenn IN=HIGH wird, soll OUT nach eine definierbaren Zeitverzögerung HIGH werden. Die Zeit soll zwischen 300ns und 10µs einstellbar sein. Der Sinn ist, dass beim IN schnelle Pegelwechel bis zu 50 MHz vorkommen können, die zum OUT nicht weitergereicht werden dürfen. Wichtig dabei ist jedoch, dass die Latenz nur einige ns betragen darf. Wenn IN also LOW wird, muss OUT umgehend (d.h. max. nach 10ns) auch LOW sein. Anders gesagt: Beobachtet man auf dem Oszi OUT, darf HIGH beliebig kurz oder lang sein, aber die Zeit der LOW-Phase darf nicht unter die definierte Zeitspanne fallen. Ich hoffe, ich habe es einigermassen verständlich erklärt. Ich schwanke jetzt zwischen einen 8 Bitter, mit dem man schon richtig tricksen müsste, damit es keinen Jitter gibt (Latenzfreie Abschaltung), und einer analogen Schaltung. Vielleicht gibt es dafür auch schon vorgefertigte digitale Verzögerungsschaltkreise, die nur von LOW nach HIGH verzögern? Kennt jemand sowas?
Hans schrieb: > max. nach 10ns dann kannst du dir eine Prozessor Lösung schon mal abschminken. Mach es diskret mit einem Monoflop und etwas Logik.
Das geht mit einem einfachen Monoflop wie z.B. 74AHC(T)123 Der hat typisch etwa 10ns Verzögerung, kommt also hin.
Georg G. schrieb: > Mach es diskret mit einem Monoflop und etwas Logik. mike schrieb: > Das geht mit einem einfachen Monoflop wie z.B. 74AHC(T)123 Soviel ich weiss, ist bei Monoflop die Impulsdauer einstellbar, nicht aber die Verzögerung. Dein Problem ist der Übergang von High nach Low (Verzögerung von max. 10ns), deswegen solltest du das mit einem AND-Gatter und Mikrocontroller machen, wie im Anhang. uC (in diesem Fall Mega8, aber Tiny13 tut es auch), definiert irgendein Pin (in diesem Fall PC0) als Eingang, einen anderen Pin (in diesem Fall PC1) als Ausgang. Beim Start geht PC1 auf High, PC0 wird dauernd abgefragt. Sobald PC0 auf LOW geht, wird auch PC1 auf LOW gesetzt. Sobald PC0 auf High geht, wird nach vorgegebenen Verzogerungs- zeit auch PC1 auf High gesetzt. Und das wars schon.
Marc V. schrieb: > deswegen solltest du das mit einem AND-Gatter und > Mikrocontroller machen, Ist ja irre!
Ich dachte in der Tat auch reflexartig an ein AND Gatter. Das Problem ist, dass der tiny schon wirklich extrem hoch getaktet sein muss, damit der Jitter im Rahmen bleibt. Ein Loop ist deshalb gar nicht praktikabel. Eigentlich geht das, wenn überhaupt, nur via Interrupts, die direkt den Portpin steuern. Vielleicht kann man einen PWM missbrauchen. Ich schaue es mir mal an. Das ganze wirkt aber auf mich wie Murks, da ein µC für sowas (Schaltgenauigkeit im ns Bereich) nicht gemacht worden ist. Selbst bei 20 MHz wäre ein verlorener Takt (Jitter) schon 50ns Verlust. Das ist ausserhalb der Anforderung.
Hans schrieb: > Ich dachte in der Tat auch reflexartig an ein AND Gatter. Das Problem > ist, dass der tiny schon wirklich extrem hoch getaktet sein muss, damit > der Jitter im Rahmen bleibt. Ein Loop ist deshalb gar nicht praktikabel. Denkst du? Schlecht gedacht, bzw. uberhaupt nicht gedacht. > Eigentlich geht das, wenn überhaupt, nur via Interrupts, die direkt den > Portpin steuern. Vielleicht kann man einen PWM missbrauchen. Ich schaue Nein. Von Low nach High wird verzogert (300ns bis 10µs) geschaltet. Minimale Verzögerung ist 300ns oder 6 Takte bei 20MHz, das reicht vollkommen, man muss nur wissen wie. Von High nach Low wird der uC gar nicht eingeschaltet, das geht direkt an AND-Gatter - bleibt nur Gatterverzögerung und die liegt innerhalb von dir geförderten 10ns. Klar? > es mir mal an. Das ganze wirkt aber auf mich wie Murks, da ein µC für > sowas (Schaltgenauigkeit im ns Bereich) nicht gemacht worden ist. Selbst > bei 20 MHz wäre ein verlorener Takt (Jitter) schon 50ns Verlust. Das ist > ausserhalb der Anforderung. Erst mal versuchen zu verstehen, ev. Logiktabelle erstellen und erst wenn man verstanden hat wie das funktionieren soll, über Murks reden.
Du solltest erstmal selber denken, bevor du direkt losflamest. t IN OUT AND-OUT 10n 1 1 1 20n 0 1 0 30n 1 1 1 <<< FALSCH! Nach 30ns hat der µC noch nichtmal mitbekommen, dass er was tun soll. Zieht IN währenddessen wieder an, wird das AND Gatter HIGH.
Hans, die Aufgabe ist nicht eindeutig: Bei Einstellung 1us, wie lang soll ein 10us Impuls werden? 11us oder 10us oder egal (irgendwas dazwischen) Wenn der Ausgangspuls nun wieder high ist, darf er sofort wieder Low werden? Also im extrem ein Highpuls < 1ns?
Es ist eine WIEDEREINSCHALT-Verzögerung. Beispieltabelle bei Einstellung 300ns: t IN OUT 0n 0 0 100n 1 1 (Sofort ein, da Reset, also keine Totzeit läuft) 200n 1 1 300n 1 1 400n 0 0 500n 1 0 (Totzeit läuft noch) 600n 1 0 700n 1 1 800n 0 0 900n 0 0 1000n 0 0 1100n 1 1 (Sofort ein, da Totzeit bereits abgelaufen ist.) Wenn also OUT LOW ist, MUSS OUT mindestens 300ns LOW sein. (Bei der Einstellung 300ns)
Marc V. schrieb: > Soviel ich weiss, ist bei Monoflop die Impulsdauer einstellbar, > nicht aber die Verzögerung. Dann schaltet man eben noch einen 74HC74 hinter den 74HC123.
Hans schrieb: > Du solltest erstmal selber denken, bevor du direkt losflamest. Das Problem liegt nicht im denken, sondern beim lesen, ich habe die 50MHz glatt übersehen. Was ist der Sinn des Ganzen?
Dann reicht ein nicht nachtriggerbarer, flankengetriggerter monoflop und ein Gatter (+ggf Inverter) Eine Low-Flanke aktiviert das monoflop. Solange es aktiv ist, bleibt der Gatter-Ausgang Low.
Hans schrieb: > t IN OUT > 0n 0 0 > 100n 1 1 (Sofort ein, da Reset, also keine Totzeit läuft) > 200n 1 1 > 300n 1 1 > 400n 0 0 > 500n 1 0 (Totzeit läuft noch) > 600n 1 0 > 700n 1 1 > 800n 0 0 > 900n 0 0 > 1000n 0 0 > 1100n 1 1 (Sofort ein, da Totzeit bereits abgelaufen ist.) Die vorgeschlagene Lösung mit Monoflop und Gatter geht prinzipiell. Minimale Zeit 300ns sollten auch erreichbar sein. Ob die Forderung in der Tabelle bei 100ns bzw. bei 0ns damit erreicht wird - ich bin mir nicht sicher. Anfangsbedingungen sind meist etwas schwierig. Und, was passiert, wenn z.B. bei 600ns wieder IN=0 wird und dort für 50ns oder 200ns andauert? Ich habe den Eindruck, deine Spezifikationen sind noch nicht ganz ausgearbeitet.
A. S. schrieb: > Dann reicht ein nicht nachtriggerbarer, flankengetriggerter monoflop und > ein Gatter Nö, er muß retriggerbar sein, sonst können Pulse durchkommen. Die Sperrzeit muß immer neu ablaufen. Ein Gatter wird für die Durchlaufzeit des Monoflops Spikes erzeugen, daher ist ein D-FF die saubere Lösung.
Peter D. schrieb: > Nö, er muß retriggerbar sein, sonst können Pulse durchkommen. Die > Sperrzeit muß immer neu ablaufen. Verstehe ich nicht. Lassen wir den Reset-Fall mal außen vor (den will ich garnicht verstehen) Eine 0 am Eingang soll mindestens Xµs (0.3...10) verlängert werden. Also ein Monoflop, der schnell genug ist für die 50MHz (also dessen Ausgang innerhalb ~10ns durchschaltet) Dann IN-Eingang und Mondoflop-Ausgang auf ein UND-Gatter. Und "high" Pulse sollen ja explizit durchkommen, bzw. genau danach habe ich den TO gefragt. > Ein Gatter wird für die Durchlaufzeit des Monoflops Spikes erzeugen, Nicht, wenn die 50MHz des TO eingehalten werden. Ansonsten: JA. Dann bräuchte man noch ein etwa 10ns nachtriggerbares Monoflop zur Eingangsaufbereitung oder einen Tiefpass.
A. S. schrieb: > Verstehe ich nicht. Z.B. Du willst nur Pulse >100ns durchlassen. Nun kommen 2 Pulse mit 40ns Dauer und 40ns Pause. Ohne Retriggern fällt beim 2. Puls der 100ns Monoflop ab und läßt ihn durch.
Peter D. schrieb: > Z.B. Du willst nur Pulse >100ns durchlassen. Nun kommen 2 Pulse mit 40ns > Dauer und 40ns Pause. Ohne Retriggern fällt beim 2. Puls der 100ns > Monoflop ab und läßt ihn durch. Hi, sowas in der Art nur genau anders herum. Die Veroderung laut DeMorgan und NANDs: oder noch was anderes Bild rechts, sind ja sowieso zwei in einem DIL16 Package drin.;-) ciao gustav
:
Bearbeitet durch User
Peter D. schrieb: > Z.B. Du willst nur Pulse >100ns durchlassen. Nun kommen 2 Pulse mit 40ns > Dauer und 40ns Pause. Ohne Retriggern fällt beim 2. Puls der 100ns > Monoflop ab und läßt ihn durch. Was bedeutet "fällt ab und lässt ihn durch"? Bei Deiner Pulsfolge und meiner Schaltung wäre der Ausgang 120ms low. * 100ms durch das Monoflop (danach fällt es ab, wird also high) * 20ms durch den zweiten Puls (UND-Gatter, egal ob Puls oder Monoflop low sind ist der Ausgang low) 40ns 0 40ns 1 40ns 0 danach 1 --> 120ns low-Puls. Genau wie vom TO gewünscht, zumindest wie beschrieben.
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.