Ich baue gerade ein optisches Abbildungssystem und bin auf einige Schwierigkeiten gestoßen. Die optische Quelle ist ein Ti-Saphir-Laser, der Impulse bei 80 MHz ausgibt, und ich verwende eine Photomultiplier-Röhre als Detektor. Ich möchte meine Abtastung basierend auf jedem dritten Impuls vom Ti-Saphir auslösen (mit anderen Worten, ich möchte mit 80/3 MHz abtasten). Ich habe bereits eine schnelle Fotodiode aufgebaut, die jeden Impuls erkennen kann. Gibt es eine Möglichkeit, jeden dritten Impuls einfach abzugreifen?
Danke für jede Hilfe.
Wenn Sie einen Fotodiodendetektor haben, der bei jedem Impuls eine digitale 1 oder 0 ausgeben kann, ist es nicht so schwierig, einen Trigger zu erstellen, der bei jedem 3. Impuls ausgibt.
Erstellen Sie eine Zustandsmaschine, die im Wesentlichen bis 3 zählt und dann zurückgesetzt wird.
Lassen Sie es ein Taktsignal geben, das der Ausgang Ihres Fotodiodendetektors ist.
Lassen Sie es eine 2-Bit-Zustandsvariable geben, die die Impulse zählt (nennen wir sie C).
Lassen Sie es einen Triggerausgang geben. Nennen wir es T.
Eine HDL-Beschreibung für die Zustandsmaschine würde so aussehen ...
if rising_edge(clock) then if C = "00" then C <= "01"; elsif C = "01" then C <= "10"; else C <= "00"; end if; T <= C = 00;
Sie könnten diesen HDL-Code natürlich direkt auf einem CPLD synthetisieren. Alternativ könnten Sie einige Logikchips der 74er-Serie verwenden, um die Logik zu implementieren.
C(0) <= C(0) NOR C(1)
C(1) <= (C(0) NOR C(0)) NOR C(1)
T = C(0) NOR C(1)
Also du würde ein Quad-NOR-Gatter und zwei D-Flip-Flops benötigen.
Wie einige vorgeschlagen haben, könnten Sie den Impulsdetektor auch verwenden, um ein dreistufiges Schieberegister zu takten, das in einem Kreis angeordnet ist. Ihr Trigger wäre der Ausgang einer der drei Registerstufen.
Das Schieberegister müsste mit dem Wert "100" vorgeladen werden. Nach dem ersten Impuls würde sich der Wert auf „010“ verschieben, nach dem zweiten „001“ und nach dem dritten wieder auf „100“. Sie hätten also bei jedem dritten Impuls eine 1 auf Ihrem Trigger.
user_1818839
Markus Müller
Benutzer4574
Benutzer4574
Toni M
Benutzer4574
Paul Elliot