Rechteckgenerator 1KHz bis 1MHz mit 1KHz Genauigkeit

Ich möchte einen Rechteckgenerator bauen, der ein Signal mit einer Amplitude X Spannungen und einer Frequenz zwischen 1 kHz und 1 MHz mit einer Genauigkeit von 1 kHz ausgibt (z. B.: 785 kHz, 926 kHz, 999 kHz usw.). Ich habe versucht, das mit Arduino Uno zu tun, aber mir wurde klar, dass ich eine Genauigkeit von 1 ns benötigen würde, um das tun zu können. 1 ns entspricht 1 GHz. Also, welche Hardware benötige ich, um das tun zu können?

Warum brauchen Sie eine Auflösung von 1 Nanosekunde?
Nehmen wir an, Sie haben 1 us, das gibt Ihnen 1 MHz. Wenn Sie 2us haben, erhalten Sie 500 kHz. Sie sehen, eine Mikrosekunde ist nicht genug.
@NickJohnson Der Zeitunterschied zwischen 999 kHz und 1 MHz für einen einzelnen Zyklus beträgt ungefähr 1 ns
1/1 ns = 1 GHz nicht 1 THz. Das ist nur etwa das Doppelte der Toggle-Rate einer einfachen Logik in einem schnellen FPGA. Allerdings sind nicht alle erforderlichen Perioden eine ganze Zahl von Nanosekunden ...
Übrigens, scheinbar trivial, diese Frage ist nicht so einfach. Das Problem, dass Sie für einen linearen Frequenzbereich eine völlig nichtlineare ( 1/F) Periode benötigen.
Ich würde zu analogen Lösungen gehen, ähnlich wie 555.
Mit 555 kann man das realisieren? Gibt es eine Möglichkeit, die Frequenz mit einem Mikrocontroller wie Arduino zu steuern?
Mit 555 wird die Frequenz mit diskreten Komponenten (oder analogen Spannungen) gesteuert, also nein. Sie können es nicht direkt mit digitalen Signalen steuern.
Entspannungsoszillator mit einer Art digitalem Steuerelement, das der Arduino erzeugen kann (dh DAC-Spannung oder Digi-Pot oder ???), um den Sollwert zu ändern? VCO? V-zu-F-IC?
Wie wäre es mit einer PLL mit programmierbarem Teiler und 1-kHz-Frequenzreferenz? Andernfalls denke ich, dass eine DDS-basierte Lösung Ihnen das beste Ergebnis liefern wird. Sie müssen nicht unbedingt einen handelsüblichen Chip verwenden - alles, was Sie wirklich brauchen, ist ein Zähler mit genügend Bits.
Sie können GHz-Logik mit ECL-Teilen ausführen, aber selbst dann werden Sie niemals in der Lage sein, 1-kHz-Schritte genau zu treffen. Versuchen Sie, es anders zu sehen: Wie genau muss es sein?
Der Kehrwert von 1 Megahertz ist 1 Mikrosekunde, nicht eine Nanosekunde. Wer taktgenaue Frequenzen bis zu einem Megahertz erzeugen will, braucht keinen Oszillator im Gigahertz-Bereich!

Antworten (1)

Direct Digital Synthesis mag für das, was Sie wollen, übertrieben sein, aber es kann sicherlich die Ware liefern: -

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf das Bild, um zum Datenblatt zu gelangen. Es erzeugt eine Sinuswelle, aber dies kann Ihnen leicht eine Rechteckwelle geben (integrierter Komparator). Mit einem 28-Bit-Steuerregister auf Frequenz kann ein 16-MHz-Takt auf 0,0596 Hz heruntergeteilt werden, wenn ich die Daten richtig lese, und dies ist auch die Auflösung.

Der große Nachteil der 555-Brigade (ja, ich habe kürzlich eine verwendet) besteht darin, dass Sie sie mit SPI steuern müssen, sodass eine kleine Mikroschnittstelle zu einer Tastatur eine gute Idee sein könnte. Hey, Sie können sogar das Mikro verwenden, um Ihnen mitzuteilen, welche Frequenz es erzeugt (über ein LCD).

Vielleicht kann das Arduino SPI?

Dadurch erhalten Sie einen sogenannten „diskreten Jitter“ von +/- 1/2 der Abtasttaktperiode. Dies kann akzeptabel sein oder nicht. Wenn dieser Jitter akzeptabel ist, dann ist dies definitiv die beste Lösung, da er eine extrem hohe Auflösung hat und die Frequenzgenauigkeit an den Quarz gebunden ist und nicht an eine RC-Schaltung (wie es bei einem 555 der Fall ist).