Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden (200Hz Schritte). Das ganze soll mit Logikbausteinen (keine Programmierung) aufgebaut sein. Gibt es eine einfache Frequenzvervielfachungs-Schaltung die diese Aufgabe erledigen könnte?
Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein
Wozu der Umweg über 50..100? Welcher Binärwert soll dabei welchem Dezimalwert entsprechen? Was soll bei den "restlichen" undefinierten Binärwerten passieren?
und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden
Welcher Dezimalwert entspricht dabei welcher Frequenz? 50 = 10kHz? Oder 100 = 10kHz?
So wie der Text da nämlich gerade steht, kann auch eine einzige beliebige konstante Frequenz erzeugt werden und völlig unabhängig vom Binärwert ausgegeben werden.
Das ganze soll mit Logikbausteinen (keine Programmierung) aufgebaut sein.
In einem FPGA werden auch Logikbausteine aneinander geschaltet. Darfst du sowas nehmen?
Gibt es eine einfache
Frequenzvervielfachungs-Schaltung
Wozu sollte da ein Vervielfacher nötig sein? Sinnvollerweise nimmt man eine ausreichend hohe Taktfrequenz und teilt die herunter.
Ein krass ueberzogener Quatsch. Etwas was am ehesten hinkommt waere ein DDS, der kann Frequenzen proportional zu einem digitalen Wert. So ein Baustein laeuft aber nicht ohne Programmierung.
Gibt es eine einfache Frequenzvervielfachungs-Schaltung die diese
Aufgabe erledigen könnte?
Nicht wirklich.
Einfach ist ein einzelnes IC, ein uC wie ATTiny1604, aber du kannst ja nicht programmieren.
Frequenzteiler sind ungeeignet weil das kleinste gemeinsame Vielfache von 10000, 10209, 10400, 10600.. 19800, 20000 irgendwo unerreichbar hoch liegt.
Also benötigt man eine PLL wie CD4046, einen rate multipler wie SN7497, einen Taktgeber der z.B. 5000 Hz produziert (quartzstabil oder reicht RC?) und wegen 10-20kHz noch mindestens ein FlipFlop, also 4 IC. Und hat dann den Spass die PLL stabil zu bekommen. Analogtechnik-KnowHow ist gefordert.
Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein
und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden
(200Hz Schritte). Das ganze soll mit Logikbausteinen (keine
Programmierung) aufgebaut sein.
Mit den 6 Bit adressierst du 50 Analogschalter, die jeweils einen entsprechenden Widerstand an einen 7555-RC-Oszillator schalten. ;-)
DDS mit Logik ICs aufbauen. Dazu brauchst du einen 8bit Addierer und ein 8bit Latch. (z.B. 2 x 74HC283 und 1 x 74HC273). Und einen festen Takt mit 51.2 kHz.
PLL benutzen z.B. 74HC4046 und einen 8bit Teiler. Hier benötigst du eine feste Frequenz von 200 Hz, die dann von der PLL entsprechend des Teilfaktors multipliziert wird.
Auf jeden Fall brauchst du 7 Bits um 50..100 als Steuerwert vorzugeben.
Dank für die schnellen Rückmeldungen - war etwas unpräzise.
Muss einen Wert von 0-50 (50-100 an einer 7-Segemten Anzeige) in eine Frequenz von 10kHz-20kHz umwandeln mit eine Abstufung pro Schritt von 200Hz:
Nein, nur 6 Analogschalter, die jweils einen Widerstand parallel
schalten, an dem von Dir zitierten RC-Oszillator.
Ich kann es zwar mathematisch nicht beweisen, aber ich denke, daß man mit 6 Widerstandswerten nicht exakt die geforderten Frequenzschritte bekommen kann. Wenn es doch gehen sollte, um so besser. Dann würde mich mal die mathematische Herleitung bzw. der Beweis interessieren.
Denk nochmal darüber nach: welche Frequenz wäre denn der Wert 48? Und
der Wert 75?
??? Man kann dem TO ja Formulierungsdefizite vorwerfen, ebenso wie Rechenschwäche (bei 200Hz-Raster würde 20kHz dem Wert 50 entsprechen), aber das prinzipielle Mapping auf 6-Bit-Input hat er doch nun hinreichend und eindeutig klargelegt.
Bis auf die Nebelkerze mit "50..100", die nirgendwo wieder aufgegriffen wird, und die auch nur dann eine Bedeutung hätte, wenn man auf DDS oder PLL-Vervielfachung hinaus wollen würde - was er weder gesagt noch bestätigt hat.
war etwas unpräzise.
Muss einen Wert von 0-50 (50-100 an einer 7-Segemten Anzeige) in eine
Frequenz von 10kHz-20kHz umwandeln
Ich liebe Salamischeiben - auf dem Brot.
Mit den nachgereichten Problemveränderungen hat niemand Lust, sich ständig neue Lösungen auszudenken.
Es wird jedenfalls mit Dalamischeibe um Salamischeibe komplexer und erfordert mehr Bauteile - ausser der Lösung mit uC, den muss man nir umprogrammieren.
Dazu gehst du AUF KEINE Nachfrage zur Präzisierung ein. Solche Kundschaft braucht niemand, das wird ein Fass ohne Boden.
Muss einen Wert von 0-50 (50-100 an einer 7-Segemten Anzeige) in eine
Frequenz von 10kHz-20kHz umwandeln mit eine Abstufung pro Schritt von
200Hz:
Den digtialen Wert per DAC (R2R-Widerstandsnetzwerk o.ä.) in eine Spannung 0 - x,x V umwandeln und damit einen U/F-Umwandler betreiben.
Was nimmt man denn heute, wenn man XR2006/2007 nicht mehr bekommt?
CD4046 vielleicht?
Das Ganze ist doch schnell gelöst, wenn man nicht auf die Stinkstiefel achtet.
Jegliche programmierbaren Bausteine kommen leider nicht in Frage...
Und warum? Kann dein Lehrer nicht programmieren und so die Lösung der Hausaufgabe nicht überprüfen? Eine Angabe zur erforderlichen Frequenzstabilität fehlt auch immer noch.
Ansonsten gilt in der Elektronik wie im normalen Leben auch: das Leben ist kein Wunschkonzert und Sonderwünsche kosten extra. Man kann viel ins Pflichtenheft schreiben, wenn der Tag lang ist. Man muß es dann aber auch bezahlen wollen.
Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein
und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden
(200Hz Schritte)
6bit -> 2^6 Zustände
10-20KHz in 200Hz Schritten -> signifikant mehr Zustände.
Dazu gehst du AUF KEINE Nachfrage zur Präzisierung ein. Solche
Kundschaft braucht niemand, das wird ein Fass ohne Boden.
Ich habe es mir schon lang abgewöhnt auf solche dummen und
skurrilen Aufgaben/Problemstellungen einzugehen. Keinerlei
vernünftiges (oder gar kein) Feedback vom TO ist eines der
Merkmale solcher Threads. Allermindestens sind sie Troll-
ähnlich bzw. -verdächtig. Manchmal lese ich noch für's
Amusemang mit. Vor allem ist es oft noch unterhaltsam wie
ernst und eifrig viele Scheuklappenträger auf solche Themen
eingehen. Viel vergeudete Zeit und Liebesmüh ....
O.k. bin hier als Neuling schon ein bisschen erstaunt über die nicht nur hilfreichen Rückmeldungen...
Die Genauigkeit müsste im Bereich von +-50Hz liegen.
Keine Lernaufgabe oder Hausaufgabe - eine nicht alltägliche Aufgabenstellung um zu verhindern das eine Manipulation mittels Programmierung im Einsatz stattfinden kann.
Danke trotzdem für die Antworten die einen konkreten Vorschlag zur Lösung des Problems aufzeigen...
... doch-doch, bei der Entwicklung individueller Elektronik ist das durchaus so, dass der Kunde sich etwas wünscht (a.k.a. "Requirements spezifiziert").
... und Sonderwünsche kosten extra.
und ja, deren Umsetzung dann auch entsprechend bezahlen muss.
... lassen sich die Specs im Sinne einer Hausaufgabe ohnehin nicht umsetzen, weil zur Frequenzerzeugung mindestens ein Nicht-Logikbaustein benötigt wird, nämlich zur Frequenzerzeugung und ggf. auch zum Phasenvergleich. Logigbaustein zum Oszillator umfunktionieren zählt ja wohl als "Analoge" Verwendung und nicht mehr als "logische Verknüpfung".
Das ging nur um den von Arno gewünschten Beweis, dass man das so machen könnte, wenn man es denn wirklich wollte. Mit all seinen Nachteilen bezüglich Drift, Ungenauigkeit, Toleranzen, etc.
Dass ich persönlich für sowas nicht die digitale Domäne eines µC verlassen würde, wenn man die Bits dadrin schonmal erzeugt hat, hatte ich hoffentlich deutlich gemacht. Und dass die Wortwahl der Hausaufgabe "" wohl auf PLL oder DDS hinauswill, ist auch klar.
Keine Lernaufgabe oder Hausaufgabe - eine nicht alltägliche
Aufgabenstellung um zu verhindern das eine Manipulation mittels
Programmierung im Einsatz stattfinden kann.
Ja, dann, wir haben uns Mühe gegeben, dafür wollen wir auch bei Laune
gehalten werden: Was ist denn nun der tatsächliche Anwendungsfall?
Es handelt sich um Schaltung zum Erzeugung eines Sinussignals deren Frequenz mit Rotationsdrehgebern eingestellt werden kann. Die erzeugte Frequenz wird zur Kontrolle auf einer 7-Segment Anzeige angezeigt.
Das ganze wird verwendet um eine Art Lautsprechertreiberstufe anzusteuern.
der macht jedenfalls gleichmäßige Frequenzstufen, aber das Rechteck sieht sehr unsauber aus. Hat 6 Bit Eingänge, das würde auch passen.
https://www.ti.com/product/de-de/SN7497
der wird tatsächlich noch gebaut?
Die erzeugte Frequenz wird auf einer 7-Segment Anzeige angezeigt
Messung mit einem Frequenzzähler oder nur umgerechnete Anzeige des 6-Bit-Werts?
Die Aufgabe ist mit TTL IC relativ einfach lösbar. Es gibt 4 Bit Volladdierer, 74HCT583 im Dezimalsystem und 74HCT283 im Binärsystem. Man muss sich entscheiden, will man Dezimasystem (BCD Binary Coded Digit) oder Binärsystem. Ich habe das vor ~33 Jahren 10-stellig im Dezimalsystem aufgebaut, damals mit sogenannten 2-Tast-Codierschaltern. Für jeweils zwei 4-Bit-Volladdierer ein 8-Bit-D-Flip-Flop 74HCT574 als Accumulatorregister.
Zur Funktionsweise : Stellt man an den Einängen eine Zahl z.B. "7" ein, wird diese mit jedem Taktimpuls aufaddiert 0, 7, 14, 21, 28...91, 98, 5, 12
Diese Zahlenfolge addressiert ein Eprom in dem eine Sinustabelle gespeichert ist, damit wird ein DA-Wandler angesteuert.
Nur mal um einen Weg aufzuzeigen..
so rein formell werden keine Frequenzen erzeugt, sondern Spannungen mit der Eigenschaft einer Frequenz. Und dann kommt sofort die Frage nach den Pegel.
Oder sollen nur Werte in Matlab/Simulink erzeugt werden?
Dann nimmt man in der Tat die Frequenz X und multiplziert sie mit k.
Es handelt sich um Schaltung zum Erzeugung eines Sinussignals deren
Frequenz mit Rotationsdrehgebern eingestellt werden kann. Die erzeugte
Frequenz wird zur Kontrolle auf einer 7-Segment Anzeige angezeigt.
Das ganze wird verwendet um eine Art Lautsprechertreiberstufe
anzusteuern.
Das Sinussignal 50-100Hz wird aus einer Rechteckfrequenz 10-20kHz erzeugt. Beim Einspeisen des Rechtecksignals 10-20kHz mittels Frequenzgenerators funktioniert dies einwandfrei. Auch das Einstellen des Zählers mittels Drehgeber ist funktionsfähig - mir fehlt "nur" das Zwischenstück...
Du musst die Aufgabe vollständig beschreiben, wenn dir einer helfen soll.
Rechteckfrequenzen kann man nicht einfach vervielfachen, weil ein Rechteck aus zu vielen Frequenzen besteht. Soetwas geht mit Mono-Flops und Annahmen über die Frequenzen.
Eingang auf MF, beides auf EXOR und das mehrfach hintereinander.
Die Aufgabe ist mit TTL IC relativ einfach lösbar.
... es in seinem Beitrag angerissen hat.
Wird dann halt ein TTL-Grab. Oder man nimmt eins der zahllosen DDS-ICs oder -Module, die es für kleines Geld (und obendrauf schon mit deutlich saubererem Sinus-Ausgang) bereits zu kaufen gibt. Üblicherweise mit SPI-Interface. Notfalls könnte auch ein kleiner ATTiny sowas. Läuft aber alles auf das Gleiche hinaus, nur eben mit mehr oder weniger Aufwand.
Peter hat das DDS-Prinzip beschrieben, den kann man wie er es beschreibt auch mit TTL-Addierern bauen, macht heute nur niemand mehr, weil es die fertig zu kaufen gibt. Ich habe so etwas hier 2007 gezeigt:
Beitrag "Re: Frequenzerzeugung ohne DDS Overkill??"
Auch ein DDS macht gleichmäßige Frequenzstufen, wie der rate-multiplier.
Ein SN7497 reicht nicht, da er mit Null anfängt, und von da mit 200Hz-Stufen bis 63 einstellbar wäre, was maximal 12,6 kHz ergibt. Die minimalen Schritte bis 20 kHz wären ca. 317 Hz (20000/63). Beispielsweise 333Hz, damit sind 1kHz je drei Schritte.
Ja klar gibt es die noch als Reste irgendwo. Ich habe auch mal eine ganze Stange 74167 auf dem Flohmarkt gekauft, liegt seither rum.
Jeder normale Entwickler würde heute z.B. einen DDS nehmen, AD9835 oder ähnliches (9833, 9850, 9851), mit einem Arduino über SPI eingestellt. Die TTL-Technik ist doch uralt (in den Sechzigern aufgekommen). Die DDS gibt es auf Modulplatinen aus China und könnten auch direkt den niederfrequenten Sinus ausgeben.
https://www.analog.com/en/parametricsearch/11018#/
die Übersicht der DDS von Analog Devices.
Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein
und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden
(200Hz Schritte). Das ganze soll mit Logikbausteinen (keine
Programmierung) aufgebaut sein. Gibt es eine einfache
Frequenzvervielfachungs-Schaltung die diese Aufgabe erledigen könnte?
Du könntest nach diesem Prinzip machen. Über DD3.3 geht min. Frequenz, sie kann durch 6-bit Code fast verdoppelt werden. DD5 macht Impulse gleichmäßig.
Nur kannst du hier entweder genau 200 Hz-Schritte machen oder 10 kHz bis 20 kHz Umfang, aber nicht beides gleichzeitig. Oder sollte der Code mindestens 7 bit haben (DD3.3 kann dafür benutzt werden).
Nur kannst du hier entweder genau 200 Hz-Schritte machen oder 10 kHz bis
20 kHz Umfang, aber nicht beides gleichzeitig. Oder sollte der Code
mindestens 7 bit haben [...]
Doch: Intern muss der für DDS/PLL sowieso von 6 auf 7-Bit ge-offsettet werden. 2x 74HC283 tun den Job, wenn kein µC verwendet werden soll.
Die gewünschten Schritte im gewünschten Bereich erhält man dann bei DDS mit n-bit-Phasenakku, indem man die Taktfrequenz zu f_clock = 2^n x 200Hz wählt.
Sogar der gewaltige Phasenjitter bei 8-Bit kann vermutlich toleriert werden, weil hinterher ja noch durch 200 geteilt wird und so der effektive Jitter des 100Hz-Signals unter 0.03[rad] liegt.
Ansonsten kriegt der Phasenakku eben 12 Bits - ein TTL-Grab ist es ohnehin schon, wenn kein normaler DDS-Chip (z.B. AD9833) benutzt werden soll.
Oder man macht eben PLL.
Oder ein Design, in dem alles von vornherein aufeinander abgestimmt ist.
Wobei ich mir nicht mehr sicher bin was der TO wirklich will [...]
Ist ja auch eine öffentliche Diskussion und nicht nur persönlicher TO-Service.
Durch den Ausschluss von µC (obwohl das Argument "Manipulationsschutz" bereits entkräftet wurde) steigt der Aufwand ja gewaltig in die Höhe und die verwendbare Technologie tendiert zu obsoleten Komponenten.
Mag der TO vielleicht dazu noch etwas motivierendes sagen?
Jeder normale Entwickler würde heute z.B. einen DDS nehmen, AD9835 oder
ähnliches (9833, 9850, 9851), mit einem Arduino über SPI eingestellt.
Oder den AD9831 nehmen, weil der statt SPI ein klassisches Parallel-Interface hat. Die 6 Bit Sollwert parallel da rein zu schreiben, sollte mit Logikbausteinen machbar sein. Von den 8 internen Registern muss man nur 2 benutzen und davon eins nur einmalig nach Reset (schätze ich mal).
Es handelt sich um Schaltung zum Erzeugung eines Sinussignals
deren Frequenz mit Rotationsdrehgebern eingestellt werden kann.
Die erzeugte Frequenz wird zur Kontrolle auf einer 7-Segment Anzeige
angezeigt.
Diese ganze Aufgabe wird im echten Leben komplett von Eingabe per Drehencoder über die Anzeige bis zur Ausgabe mit 1 einzigen µC erledigt.
Andere Wege (wie der von dir Gewünschte) mögen aus einem individuellen Blickwinkel ebenfalls gangbar aussehen, sind aber letztlich reisige Umwege und eigentlich unsinnig.
Wenn ich einen Arduino nehme, dann kann ich die Aufgabe "mit Drehgeber auf einer Anzeige 50-100Hz einstellen und entsprechend dazu ein 50% Rechteck mit 10-20kHz (Anzeigewert * 200) ausgeben" locker in 2 Stunden erledigen.
wird aus einer Rechteckfrequenz 10-20kHz erzeugt.
Beim Einspeisen des Rechtecksignals 10-20kHz mittels Frequenzgenerators
funktioniert dies einwandfrei. Auch das Einstellen des Zählers mittels
Drehgeber ist funktionsfähig - mir fehlt "nur" das Zwischenstück...
Nein, realistisch betrachtet erkennst du den Irrweg, verbuchst das bisher Gebastelte als "Lehrgeld", schmeißt es einfach in die Tonne und machst das komplette Design mit einem µC.
Und ebenfalls nein, den kopiert oder manipuliert dir keiner einfach so. Zigmilliarden Anwendungen beweisen das. Es ist in jedem Fall einfacher, eine diskret aufgebaute Schaltung nachzubauen oder zu manipulieren.
Ich würde (nach anfänglicherr Verwirrung wegen des Mordsaufwands) nötigenfalls die Schaltung so "reverse engineeren" und nachbauen, dass das IC-Grab durch einen µC ersetzt wird, der direkt den 50..100Hz Sinus ausgibt.
Wenn mich aber mein Chef mit viel Geld und Zusatzurlaub zwingen würde, sowas zu machen und mir viel mehr Zeit als die obigen 2 Stunden zugesteht und es ihm auch völlig egal ist, was das Zeug hinterher kostet, dann würde ich eine diskrete DDS basteln:
Oder den AD9831 nehmen, weil der statt SPI ein klassisches
Parallel-Interface hat. Die 6 Bit Sollwert parallel da rein zu
schreiben, sollte mit Logikbausteinen machbar sein. Von den 8 internen
Registern muss man nur 2 benutzen und davon eins nur einmalig nach Reset
(schätze ich mal).
Dies ist so ziemlich das was ich gesucht habe, scheint mir einen Versuch Wert zu sein ein paar Stunden dafür zu investieren... Hat jemand mit dem AD9831 bereits Erfahrungen gesammelt?
Der AD9850 hat auch eine parallele Schnittstelle, und es gibt tatsächlich ein Board damit, zum 9831 habe ich noch nichts gefunden:
https://www.nooelec.com/store/ad9850-module.html
€37.83 Der Chip ist auch kleiner, und damit vermutlich günstiger.
Von Salami zu Mozzarella
"anstelle des Elefanten können auch Erdbeeren genommen werden"
Loriots Kochrezepte
Wie war man damals noch froh, dass Motorola auch PLL-Chips mit
Parallelinterface anbot. [1988]
Ja, das hat das Ausprobieren erheblich vereinfacht und den 8/16-Bit Datenbus mit Adressselektion hatte man ohnehin in den Computerboards immer dabei gehabt. Der AD9831 ist ziemlich gut zugeschnitten auf die Bedürfnisse der Rechnerstrukturen[sic!] von
Dies ist so ziemlich das was ich gesucht habe, scheint mir einen Versuch
Wert zu sein ein paar Stunden dafür zu investieren... Hat jemand mit dem
AD9831 bereits Erfahrungen gesammelt?
Das weicht mittlerweile erheblich von Deinen eingangs genannten Anforderungen ab, aber wenn es Dir Spaß macht: nur zu!
Oben hatte ich mich vertippt und meinte den XR-2206. Dieser kann die 50 - 100 Hz Sinus direkt erzeugen, braucht noch einen DAC davor und zwei Trimmpotis zum Abgleich der unteren Frequenz und des Umsetzungsfaktors (Spannweite).
Wenn es ohne Programmierung irgendwelcher Bauteile analog gelöst werden soll, ist es eine direkte und einfache Lösung.
Selber würde ich den Drehenkoder an einen µC anschließen, der die beiden Anzeigen direkt ansteuert und auch den Sinus erzeugt. ATmega48 im 28-pol. DIL würde reichen. Ein AD9831 käme mir überhaupt nicht in den Sinn.
Das weicht mittlerweile erheblich von Deinen eingangs genannten
Anforderungen ab [...]
Tja, für eine echte Problemlösung ist der allererste Schritt ja üblicherweise, erstmal (unter Mithilfe des TO) diese Anforderungen zu klären, Lücken zu füllen, Irrtümer zu berichtigen und die echten "harten" Erfordernisse von den weniger harten oder unwichtigen zu trennen.
Zielführend ist dabei auch die Angabe von Begründungen.
Gerne so kurz wie möglich gehalten, aber doch so lang wie nötig.
Sonst kreist man eben erstmal auf sehr weiten Orbits um die Lösung herum.
Oder baut unnötigerweise Dinosaurier.
Selber würde ich den Drehenkoder an einen µC anschließen, der die beiden
Anzeigen direkt ansteuert und auch den Sinus erzeugt. ATmega48 im
28-pol. DIL würde reichen. Ein AD9831 käme mir überhaupt nicht in den
Sinn.
Oben hatte ich mich vertippt und meinte den XR-2206. Dieser kann die 50
100 Hz Sinus direkt erzeugen, braucht noch einen DAC davor und zwei
Trimmpotis zum Abgleich der unteren Frequenz und des Umsetzungsfaktors
(Spannweite).
Wenn es ohne Programmierung irgendwelcher Bauteile analog gelöst werden
soll, ist es eine direkte und einfache Lösung.
So würde ich das eigentliche Problem auch lösen. Zumal die Frequenz des Sinus zwischen 50 und 100Hz ja ohnehin mit einem Drehencoder verändert werden soll. Da würde ich das mit dem Drehencoder sein lassen und gleich ein Poti nehmen. Und den Sinus mit XR2206 oder MAX038 erzeugen.
Wienbrücke oder Integrator-Schleife ginge auch, braucht aber Amplituden- Stabilisierung. Das wird bei den niedrigen Frequenzen häßlich.
Oder man bleibt bei dem ursprünglichen Konzept und erzeugt die 10 .. 20kHz mit einem beliebigen Oszillator. Da ginge auch ein 555.
Wenn die genaue Frequenz erforderlich ist (genauer als eine Skala am Poti) kann man ja noch einen Frequenzzähler dazu packen.
Wenn mich aber mein Chef mit viel Geld und Zusatzurlaub zwingen
würde, sowas zu machen und mir viel mehr Zeit als die obigen 2 Stunden
zugesteht und es ihm auch völlig egal ist, was das Zeug hinterher
kostet, dann würde ich eine diskrete DDS basteln:
Damit das MSB bei einem Eingangswert von 100 mit 20kHz toggelt, muss CLK
bei einem 12 Bit-Addierer 820 kHz betragen.
Das ist keine DDS sondern hoechstens ein NCO.
Zu einer DDS gehoert zwingend eine LUT mit einem filterfaehigen
Inhalt, um den Jitter am Ausgang wegzufiltern.
Das Thema wurde hier ja schon oft genug diskutiert.
Wie jetzt der TO von einer "Rechteckquelle" mit diskreten
Frequenzen zu einem (Sinus-)Sweepgenerator kommt, ist mir
aber schleierhaft.
Vermutlich kann er weder "Analog", noch "Digital", noch
"Brogrammieren fuer Anfaenger - MCU".
Nur so jemand schafft solche geistigen Waenkelzuege.
Und es wird auch nie fertig werden, weil die weiteren
Kleinigkeiten (Stromversorgung, Ausgangstreiber, etc.) fehlen.
Wenn die genaue Frequenz erforderlich ist (genauer als eine Skala am
Poti) kann man ja noch einen Frequenzzähler dazu packen.
Es geht nicht um Regelung der Frequenz mit einem Bediener in der Regelschleife, sondern um eine Steuerung in diskreten Stufen im 200Hz-Raster.
Das ging doch aus dem Ausgangspost sehr deutlich hervor - was auch immer das Kernproblem mit analoger Elektronik/Schaltungstechnik zu tun hat.
Man kann natürlich das alles mit 74 Serie machen... Wie ich die Schaltung gezeichnet habe plus 2x 283-Addierer... Aber wozu solch Aufwand? Man kann das viel einfacher und kostengünstiger mit AVR machen. ISR von Timer für 50 oder 100 kHz, Freq-Koeff. addieren, aus Flash Sinusfunktion holen und mit einfachen DA-Wandler mit 6 oder 8 Widerständen oder ähnlich wie Schieberegister bei Horowitz oder gar mit PWM... AVR kann auch gleichzeitig Drehgeber und Tasten bedienen und auch eine Anzeige für Frequenz...
Es geht nicht um Regelung der Frequenz mit einem Bediener in der
Regelschleife, sondern um eine Steuerung in diskreten Stufen im
200Hz-Raster.
Das ging doch aus dem Ausgangspost sehr deutlich hervor
Entweder kennst du den TE persönlich oder hast eine bessere Glaskugel.
Aus den Ausgangspost ging genau nicht hervor, was eine Anforderung im Sinne des eigentlichen Problems und was eine Idee des TE zur Lösungsfindung ist.
Geht ja schon mit seiner anfänglichen Frage nach 6 Bit und der späteren Konkretisierung auf Drehencoder los. Wobei mir gerade auffällt, daß er vielleicht gar keinen (inkrementellen) Drehencoder gemeint hat, sondern so eine Art Drehschalter von 0-9. Genauso bin ich mir sicher, daß es keine Forderung nach diskreten Stufen gibt, sondern daß einzig das vorgesehene Display nunmal nur diskrete Stufen anzeigen kann.
Dazu gehst du AUF KEINE Nachfrage zur Präzisierung ein. Solche
Kundschaft braucht niemand, das wird ein Fass ohne Boden.
Lern endlich programmieren !
Ich glaube, vor dem Programmieren erst einmal ist ->formulieren<- angesagt.
In keinem einzigen Beitrag hier sind die Randbedingungen für die Schritte, der Rahmen, die Progression und die zugehörigen Frequnenzen / sowie deren erlaubte Abweichung spezifiziert. Ohne das sind alle Ratschläge Ratespiel.
Scheint heute normal. Wir rennen mit 10% info ans Projekt und bauen mal, um später zu ändern. Macht ja Spass.
... aus Flash Sinusfunktion holen und mit einfachen DA-Wandler mit 6 oder 8
Widerständen oder ähnlich wie Schieberegister bei Horowitz oder gar mit
PWM...
Hast du die Problembeschreibung überhaupt gelesen?
Was willst du da mit einer Flash Sinusfunktion oder einem DAC?
... aus Flash Sinusfunktion holen und mit einfachen DA-Wandler mit 6 oder 8
Widerständen oder ähnlich wie Schieberegister bei Horowitz oder gar mit
PWM...
Hast du die Problembeschreibung überhaupt gelesen?
Was willst du da mit einer Flash Sinusfunktion oder einem DAC?
Du mußt das halbe Puzzle des TO aus Salami-Scheiben schon als Ganzes betrachten und darfst nicht aus einer Ecke auf das Bild schließen.
Er "braucht" das frequenzvariable Signal zur Steuerung eines digitalen Sinusgenerators. Konkret sollen aus 20kHz Rechteck 100Hz Sinus werden.