Guten Abend, Ich benötige eine Schaltung, welche mir insgesamt 8 einzeln einstellbare Rechtecksignale im tonfrequenten Bereich (50-500Hz) mit einer relativ hohen Genauigkeit(~500ppm) liefert. LC Oszillatoren oder ne 555 Schaltung fallen damit schon mal flach. Ich habe auch überlegt es mit einem µC zu erzeugen, jedoch hat keiner der Modelle mit denen ich bereits gearbeitet habe genügend seperate Timer um jedes Signal unabhängig einstellen zu können. 8 einzelne PLLs aufzubauen scheint mir ein wenig Overkill zu sein. Von daher meine Frage: Mit welchem Schaltungskonzept gehe ich am besten an die Sache heran. Beispielschaltungen wären hilfreich, mir würde aber auch eine gute Idee helfen. Vielen Dank für eure Mühe! Mick
Im Forum wurden mehrere Tongeneratoren auf digitaler Basis vorgestellt. Die suche darfst Du selber benutzen. Der klassische Ansatz ist eine Sinus-DDS mit sehr starker Filterung, um die Phasensprünge zu beseitigen. Für beliebige Frequenzen sind ab da dann die Grundfrequenzen für eine weitere DDS mit beliebiger Wellenform machbar. Deine Wellenform ist dann wahrscheinlich ein Rechteck variabler Pulsbreite.
Der I2C steuerbare Si5351B kann bis zu 8 Kanäle gleichzeitig ausgeben. Falls die untere Grenzfrequenz (2.5kHz) noch zu groß ist, einfach den betreffenden Ausgang mit einem HC390 durch 100 oder 50 teilen. Die Auflösung ist direkt an den Ausgängen um die 0.01 Hz. Die Zeitbasis ist ein 25 MHZ Quarz und kann digital durch Register Zugriff in einem engen Bereich zur Kalibrierung präzise eingestellt werden. Auch die Phasenlage zueinander kann fest gelegt werden. http://www.silabs.com/documents/public/data-sheets/Si5351-B.pdf Steuer Software zum Testen: https://github.com/etherkit/Si5351Arduino mfg, Gerhard
:
Bearbeitet durch User
Die Einstellbarkeit von 0,01Hz könnte zu grob sein und zudem sagt das nichts über den Jitter. 500pm am Ausgang sind schon recht gut und das wird sich durch Teiler an den Ausgängen nicht verbessern. Sowas baut man mit Präzisionsschmitt-Triggern.
Danke schonmal, Ziel ist jede Frequenz einzeln präzise einstellen zu können, die Pulsbreite ist für meine Anwendung relativ egal. Bei der Suche bin ich auf wenig brauchbares für meine Anwendung gestoßen, der Schaltungsaufwand wäre einfach zu groß würde ich so einen Tongenerator 8 mal aufbauen. Hab auch schon daran gedacht es einen atmega 8 oder so machen zu lassen, der hat meines Wissens aber bloß 3 Timer, von denen ich nur 2 benutzen kann. Kennt jemand einen besseren µC, welcher das am besten ohne große zusatzbeschaltung kann?
Stehen die 8 Frequenzen in einer Beziehung zu einander? Gfs sind es ganzahlige Teiler der Quetzfrequenz ?
Der Si5351B ist interressant, die Genauigkeit nach dem Teilen wäre aber leider zu gering. Gibt es vielleicht einen vergleichbaren IC mit einer nierdrigeren unteren Grenzfrequenz? Wenn ich mit Schmitt Triggern nen Oszillator aufbaue bin ich doch deutlich ungenauer als mit einem µC, oder sehe ich das falsch?
Nein, die Frequenzen stehen leider in keiner Beziehung zueinander, und müssen zwingend einzeln verstimmbar sein, sonst hätte ich es mit einem Quarz und mehreren Frequenzteilern gelöst.
Aah, eventuell könnte man den Ausgang vom Si5351 mit einem Mischer und einem Bandpass herunterwandeln, und anschließend mit nem Schmitt Trigger zum Rechteck machen. Klingt das nach nem vernünftigen Ansatz?
E. M. schrieb: > Die Einstellbarkeit von 0,01Hz könnte zu grob sein und zudem sagt > das > nichts über den Jitter. 500pm am Ausgang sind schon recht gut und das > wird sich durch Teiler an den Ausgängen nicht verbessern. > > Sowas baut man mit Präzisionsschmitt-Triggern. Der T.E. sagte nichts über die Auflösung auf. Mit dem Ausgangsteiler ist die Frequenzauflösung dann sowieso 0.0001 Hz und mit DDS vergleichbar. Der Timing-Jitter am Ausgang wird mit 70ps angegeben. Mit dem Ausgangsteiler ist das im Idealfall also hundertfach weniger und nur in Extremfällen bei diesen Frequenzen von Bedeutung. Scheint für $3.48 ein gutes Kosten zu Leistungsverhältnis mit minimalen HW-Aufwand zu sein.
Mick L. schrieb: > Aah, eventuell könnte man den Ausgang vom Si5351 mit einem Mischer > und > einem Bandpass herunter wandeln, und anschließend mit nem Schmitt Trigger > zum Rechteck machen. Klingt das nach nem vernünftigen Ansatz? Teiler ist billiger und einfacher. Mit Mischer und den LP Filtern ist der Aufwand viel höher. Beim Teiler aufpassen, dass das letzte Flip-Flop am Ausgang ist um ein 50% Tastverhältnis zu erzielen. Da sowieso Rechteck Signale gewünscht wurden, ist also nichts diesbezüglich auszusetzen.
:
Bearbeitet durch User
Gerhard O. schrieb: > er Timing-Jitter am Ausgang wird mit 70ps angegeben Das wäre in der Tat nicht schlecht! Stimme Ich zu. Dann hat der sicher einen stabilisierten Quarz und eine PLL von einigen GHz drin. Zu Micks Vorschlag: Ich denke auch, dass Mischen keine gute Idee ist. Quarz, PLL, hoch so wie es geht und dann runterteilen.
Mick L. schrieb: > Der Si5351B ist interressant, die Genauigkeit nach dem Teilen wäre > aber > leider zu gering. Gibt es vielleicht einen vergleichbaren IC mit einer > nierdrigeren unteren Grenzfrequenz? > Wenn ich mit Schmitt Triggern nen Oszillator aufbaue bin ich doch > deutlich ungenauer als mit einem µC, oder sehe ich das falsch? Mit der Si5351B Lösung ist dann der Ausgangsbereich 50.0000-500.0000 Hz mit 0.0001 Hz Auflösung gleichzeitig auf allen acht Ausgängen mit einstellbarer, definierter Phase zueinander. Wie meinst Du das, "die Genauigkeit nach dem Teilen wäre aber leider zu gering"?
:
Bearbeitet durch User
Vielen Dank! Das mit der ungenügenden Genauigkeit war ein Fehler. Genauigkeit ist absolut ausreichend, mir ist ein kleiner Leichtsinnsfehler beim Datenblatt lesen passiert^^ Als Teiler wäre denk ich ein 10 Bit Teiler optimal, 8 CD4060s wären denkbar. Gibts eventuell auch einen IC der mehrere 10 Bit teiler integriert hat, hab duch "mal schnell googeln" nichts brauchbares gefunden.
Deine Anforderungen sind immer noch etwas schwammig formuliert. Was du mit CD4060 herstellen kannst, sind erst mal nur Bruchteile der Eingangsfrequenz im Verhältnis 1 : 2 : 4 : 8 ... Das wären bei optimaler Eingangsfrequenz 500, 250, 125, 62,5 Hz. Dem Si5351 kannst du per µC (wenn du ihn programmieren kannst) sagen, welche Frequenzen er an welchem Port liefern soll. Wenn du aber einen µC mit mehr als 8 Output-Pins schon programmieren kannst, hast du auch einige Möglichkeiten, an 8 Pins verschiedene Frequenzen bereitzustellen. - Was soll herauskommen? - Was kannst du?
Mick L. schrieb: > Kennt jemand einen besseren µC, welcher das am besten ohne große > zusatzbeschaltung kann? Und wer programmiert dir das Teil ?
Also wahnsinnig hohe Anforderungen stellt 500ppm bei 500 Hz eigentlich nicht. Wenn ich das richtig sehe kannst du mit einer Ungenauigkeit oder einem Jitter von (1/500) * (500/1000000) = 1us leben. D.h. wenn du einen uC hast, der einen Timer-Interrupt mit 1 MHz abfrühstücken kann, und in der Interruptroutine 8 Zähler vergleichen kann, bist du am Ziel. Ich stelle mal die These auf, wenn man das geschickt in Assembler programmiert, bekommt man das mit einem uC so ab 48 MHz hin. Was auf jeden Fall auch ginge: ein CPLD.
:
Bearbeitet durch User
Mick L. schrieb: > Ich benötige eine Schaltung, welche mir insgesamt 8 einzeln einstellbare > Rechtecksignale im tonfrequenten Bereich (50-500Hz) mit einer relativ > hohen Genauigkeit(~500ppm) liefert. LFO bauen mit Operationsverstärker: Integrator mit Schmitt-Trigger erzeugt Dreieck- und Rechteckspannung, jeweils 1 Dual OP notwendig pro Generator oder 1 Quad OP für jeweils 2 Tongeneratoren... Werden diese Generatoren noch auf halbwegs konstanter Temperatur gehalten durch eine Heizung (Widerstände, Temperaturfühler, OP), dann wäre die Stabilität hoch genug, um auch langsame Schwebungen zu erzielen... Mick L. schrieb: > Nein, die Frequenzen stehen leider in keiner Beziehung zueinander, und > müssen zwingend einzeln verstimmbar sein Mich würde interessieren, was Du damit machst, wahrscheinlich eine Klangkunst...
Mick L. schrieb: > Ich habe auch überlegt es mit einem µC zu erzeugen, jedoch hat keiner > der Modelle mit denen ich bereits gearbeitet habe genügend seperate > Timer um jedes Signal unabhängig einstellen zu können Wieso, willst du die 8 Frequenzen etwa gleichzeitig herstellen? Ob das eine so gute Idee ist Rechtecke dafür zu verwenden? Denn dann solltest du dir mal Gedanken darüber machen, wie du die Rechtecksignale zusammenführen willst, und was dabei herauskommt Mittels XOR? Das entspricht einer Multiplikation, und dann überleg dir mal, was die zahlreichen Oberwellen der Rechtecksignale machen, wenn man sie miteinander und mit den Grundschwingungen mischt. Oder willst du sie mittels OR nur addieren? Auch dieses Signalgemisch dürfe etwas anders aussehen, als es dir vorschwebt. P.S.: Mick L. schrieb: > Hab auch schon daran gedacht es einen atmega 8 oder so machen zu lassen, > der hat meines Wissens aber bloß 3 Timer, von denen ich nur 2 benutzen > kann. Dann nimmts du eben acht ATTinys, für weniger als 1€ pro Stück mit identischer Programmierung und gemeinsamen Quarzoszillator. 500ppm bei 500 Hz entsprechen 1µs und das sollte sich mit einer 10MHz Clock sogar ohne Timer in Software problemlos programmieren lassen.
:
Bearbeitet durch User
Joe F. schrieb: > D.h. wenn du einen uC hast, der einen Timer-Interrupt > mit 1 MHz abfrühstücken kann, und in der Interruptroutine > 8 Zähler vergleichen kann, bist du am Ziel. Ein Zählervergleich genügt. Man kann die Zeitpunkte der Flankenwechsel vorausberechnen; die speichert man in einer Warteschlange ab, dazu ggf. die passenden Bitmuster, die ausgegeben werden müssen. In der ISR testet man nur auf erreichten Zählerstand und schreibt bei Bedarf das erste Element der Warteschlange auf den Parallelport. Asynchron, im Vordergrund, füllt man die Warteschlange auf.
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.