Forum: Mikrocontroller und Digitale Elektronik Schaltung für Impuls bzw. Kamm-Generator


von Ludwig (Gast)


Lesenswert?

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

von Pandur S. (jetztnicht)


Lesenswert?

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.

von Uwe B. (uwe_beis)


Lesenswert?

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...

von W.A. (Gast)


Lesenswert?

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

von Mitlesa (Gast)


Lesenswert?

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.

von W.A. (Gast)


Lesenswert?

Ludwig schrieb:
> Pulsbreite: 20-100ns, idealerweise in 1ns-Schritten verstellbar

Dann verrate doch gleich auch, welche Bandbreite dein Signal haben muss.

von Ludwig (Gast)


Lesenswert?

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

von Christoph db1uq K. (christoph_kessler)


Lesenswert?


: Bearbeitet durch User
von Mitlesa (Gast)


Lesenswert?

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.

von Ludwig (Gast)


Lesenswert?

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.

von Mitlesa (Gast)


Lesenswert?

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.

von Uwe B. (uwe_beis)


Lesenswert?

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.

von Mitlesa (Gast)


Lesenswert?

Uwe B. schrieb:
> dann ist das sogar stufenlos einstellbar.

Und am Poti machst dann ein paar Strichlein für die einzelnen
Nanosekunden, gelle?

von Uwe B. (uwe_beis)


Lesenswert?

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.

von Ludwig (Gast)


Lesenswert?

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

von Ludwig (Gast)


Lesenswert?

Natürlich muss das PWM Signal angemessen geglättet werden ;)

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.