Hi,
ich brauche einen Impulsgenerator mit möglichst geringen
Schaltungsaufwand den und den folgenden Spezifikationen:
Pulsbreite: 20-100ns, idealerweise in 1ns-Schritten verstellbar
Wiederholrate: wählbar zwischen 1kHz und 2 Mhz
Amplitude: TTL (5V bei 50 Ohm)
Flankensteilheit: nebensächlich, solange man bei 20ns noch die volle
Amplitude hat, also besser als 5-10ns.
Man könnte also auch von einen Frequenzkamm-Generator sprechen. Ich habe
natürlich selber schon ein wenig recherchiert:
Beitrag "Impulsgenerator mit sehr steiler Fanke"Beitrag "Impuls erzeugen"
Ich favorisiere die Variante, mit einem Microcontroller eine
Rechteckspannung zu erzeugen, in zwei Äste aufzuteilen, einen Ast zu
invertieren und dann die beiden Äste auf die Eingänge eines schnellen
Komparators zu legen.
Das Problem ist nur, das man mit diesem Aufbau die Pulsbreite nicht
einstellen kann.
Ich habe schon experimentiert, den nicht-invertierten Ast durch einen
Tiefpassfilter zu führen, wo dann die Pulslänge von der Grenzfrequenz
des Filters abhängt.
Das Problem war aber, das der Puls an der steigenden Flanke der
Rechteckspannung breiter ist als bei der fallenden (weil die
Schaltspannung des Komparators nicht genau bei der Hälfte der
Logikspannung war und scheinbar generell scheinbar schlecht definiert
ist).
Dies könnte man lösen, indem man einen Schmitt-Trigger vor die Eingänge
des Komparators legt, das wird aber schon ein ziemlicher
Schaltungsaufwand.
Was sind eure Gedanken die Aufgabe zu lösen? Gibt es vielleicht Bauteile
die ich nicht kenne die das Problem vereinfachen z.B.
Speicherschaltdioden?
Auf CPLDs oder FPGAs möchte ich nicht zurückgreifen.
Vielen Dank im Voraus,
Ludwig
Das Ganze soll ? Und das Budget waere ?
Das Einfachste waere einen 555 fuer die Wiederholrate. Auf die steigende
Flanke einen Hochpass. Und dam Hochpass einen Monoflop.
Ich mache jetzt mal einen Vorschlag, rechne aber damit, dass er
abgelehnt wird, weil ja noch weitere Randbedingungen zu beachten sind
(und dann ärgere ich mich):
Mit einen HCMOS Schmitt-Trigger lässt sich leicht ein Oszillator bauen,
der z.B. mit einem log. Poti sehr gut über 1 1/2 bis 2 Dekaden stufenlos
einstellbar ist, z. B. von 1 kHz bis 30 kHz und 30 kHz bis 1 MHz. Mit
zwei Schmitt-Triggern bekommt sogar eine Art Präzisions-Variante davon.
Mit zwei weiteren HCMOS-Schmitt-Trigger-Gattern lässt sich ganz einfach
eine Art Monoflop bauen, das sich wiederum per Poti wunderbar von 20 bis
100 ns Impulsbreite einstellen lässt. Ausgang: 5 Vss. Insgesamt ein IC
(74HC132), drei Kondensatoren und zwei Widerstände für ein paar Cent,
ein Umschalter, dazu zwei Potis, die vergleichsweise richtig in's Geld
gehen.
Wenn man nur C kann, kann man natürlich auch einen Raspi mit Linux,
Tastatur und Bildschirm dafür unterfordern...
Ludwig schrieb:> Pulsbreite: 20-100ns, idealerweise in 1ns-Schritten verstellbar> Wiederholrate: wählbar zwischen 1kHz und 2 Mhz> Amplitude: TTL (5V bei 50 Ohm)
TTL?5V mit 0.5W und 1GHz ist schon eine Ansage
Ludwig schrieb:> Was sind eure Gedanken die Aufgabe zu lösen?
Du hast nicht angegeben ob die Pulsfrequenz "freilaufend" sein
kann oder quarzstabil sein soll. Davon hängt aber sehr viel ab
wie man das Design angeht.
Ludwig schrieb:> Auf CPLDs oder FPGAs möchte ich nicht zurückgreifen.
Ein schnelles CPLD wäre aber der Lösungsansatz meiner Wahl.
Damit könnte man Pulsbreite und Pulsfrequenz praktisch frei
bzw in weiten Bereichen programmieren.
Mit FPGA ginge es auch, aber etwas aufwendiger zu konfigurerien.
Ludwig schrieb:> Pulsbreite: 20-100ns, idealerweise in 1ns-Schritten verstellbar
Dann verrate doch gleich auch, welche Bandbreite dein Signal haben muss.
Vielen Dank für die vielen Antworten.
Zur Anwendung: ich möchte einen Laderdiodentreiber mit einem Triggern
versorgen:
http://www.picolas.de/images/stories/variable_pulsdauer/LDP-V_03-100_UF3_Manual_Rev1404.pdf
Der Treiber hat intern noch einen Schwellwerttrigger, deswegen ist die
genaue Form des Puls nicht so wichtig.
Die Bandbreite sollte ca. bei 100MHz liegen.
Wiedeholrate soll stabil sein und nicht ständig geändert.
Vielen Dank,
Ludwig
Ludwig schrieb:> Die Bandbreite sollte ca. bei 100MHz liegen.
Das soll erst mal einer verstehen.
Solange man es (als Spezifizierender selbst) nicht versteht
kann man da was Beliebiges hinschreiben.
Wurde doch von W.A. gefragt.
Ich habe ja schon gesagt, dass die Flankensteilheit nicht so wichtig
ist.
Fest machen kann das am ehesten an der Spezifikation das die Pulslänge
bis zu 20ns kurz sein soll. Bei einem Recheckpuls der Breite t ist das
erste Minimum der abs(sinc(f))-Funktion im Powerspektrum bei 1/t, in
diesem Fall 1/20ns=50 Mhz.
Also ist bei einer Bandbreite von mindestens 50 Mhz, der Rechteckpuls
gerade zum Gauß mit gleicher Amplitude verschliffen worden. Besser wären
also 100 Mhz damit der Rechteckpuls auch noch ein bisschen danach
aussieht.
Ich grab das nochmal aus ...
Ludwig schrieb:> Fest machen kann das am ehesten an der Spezifikation das die Pulslänge> bis zu 20ns kurz sein soll.
Ja das klingt schon etwas besser.
Also wenn es etwas Einstelbares sein soll dann wird "man" um ein
schnelles FPGA nicht herumkommen. Für die Feinauflösung der Pulsbreite
(von 1ns) bräuchte man eine Taktrate 500 MHz, so ca. 300 Mhz sind
in meinem Erfahrungshorizont mit einem FPGA machbar, also Auflösung
dann 1.666 bzw 3.333 ns je nachdem wie man es anstellt. Mag sein
dass es noch schnellere FPGAs gibt.
Aber du schreibst ja:
Ludwig schrieb:> Pulsbreite: 20-100ns, idealerweise in 1ns-Schritten verstellbar
Ob es das wirklich braucht sagt das "idealerweise" nicht aus.
Mitlesa schrieb:> Also wenn es etwas Einstelbares sein soll dann wird "man" um ein> schnelles FPGA nicht herumkommen.
Es sei denn, man nimmt eine 74HC132 und ein paar passive Bauteile, dann
ist das sogar stufenlos einstellbar.
Mitlesa schrieb:> Uwe B. schrieb:>> dann ist das sogar stufenlos einstellbar.>> Und am Poti machst dann ein paar Strichlein für die einzelnen> Nanosekunden, gelle?
Selbst wenn es unbedingt in 1 ns-Stufen sein muss, ist das immer noch
einfacher als mal eben ein 500 MHz-FPGA (oder 100 MHz mit 5
phasenversetzten Clocks) einzusetzen. Das wäre, nebenbei gesagt, auch
meine einziger Ansatz, wenn es digital sein muss. Und mein Ansatz
entspräche der größten von Ludwigs Randbedingungen:
Ludwig schrieb:> mit möglichst geringen Schaltungsaufwand
Halt, da habe ich noch 'ne Idee: (Halb-)Analoge Pulsgeneratoren, wie
vor, aber per Spannung steuerbar. Die Steuerspannung kommt über einen
DAC aus einem µC, der einen sauber angepassten Satz von 80 Spannungen
für die 80 verschiedenen Werte liefert. (Bevor man mir es um die Ohren
schlägt: Ja, es sind 81 verschiedene Werte.) Dann wären natürlich auch
wesentlich kleinere Schritte als 1 ns leicht möglich. Ist aber bei
weitem nicht der geringst mögliche Schaltungsaufwand!
@Ludwig: Geht es nur um Einstellbarkeit zwischen 20 und 100 ns, oder
muss es in exakt reproduzierbaren Stufen gehen, und wenn ja -
irgendwelche Anforderungen an die Präzision? Die Frage gilt sinngemäß
auch für die Frequenz.
Danke für die Antworten.
Das mit der 1ns ist nicht so wörtlich zu nehmen. Wenn die
Einstellgenauigkeit dann 2 oder 3.5 ns ist das auch nicht so schlimm.
Reproduzierbarkeit der Pulsbreite ist auch nebensächlich, ich würde sie
am Oszi einstellen. Mit der Wiederholrate sieht es aber anders aus, die
muss schon stimmen.
Mein bisheriger Favorit sieht eigentlich so aus, wie "jetztnicht" das
vorgeschlagen hat:
-Ich erzeuge mit einen Mikrocontroller ein Rechtecksignal mit der
gewünschten Wiederholfrequenz
-Diese läuft doch einen Hochpassfilter mit 100-200ns Abfallszeit,
gefolgt von einem schnellen Komperator (z.B. ADCMP600)
-Die Pulsbreite würde ich verstellen, indem ich die Vergleichsspannung
des Komperators über einen PWM Ausgang einstelle
Somit kann ich Pulsbreite sowie Wiederholrate flexibel und ohne Poti
oder so einstellen. Was haltet ihr davon?
VG,
Ludwig