Hallo Ich habe folgende Problemstellung: 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? Andreas
Andreas S. schrieb: > 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. > diese Aufgabe erledigen könnte? Was ist denn die eigentliche Aufgabe?
Andreas S. schrieb: > Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein Mit 6-Bit Binärcode kannst du nur Werte zwischen 0 und 63 einstellen. Um auf deinen Bereich 50 - 100 zu kommen, musst du umrechnen. Wie soll diese Skalierung aussehen? Willst du einen Rechner aus einzelnen Logikbausteinen aufbauen?
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. Ein Neutroll, weniger wie eine Stunde alt.
Andreas S. schrieb: > 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. Lern also endlich mal programmieren.
Andreas S. schrieb: > 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. ;-)
1) 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. 2) 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.
Arno R. schrieb: > Andreas S. schrieb: >> Mittels 6-Bit Binärcode soll ein Wert zwischen 50 - 100 einstellbar sein > > Mit den 6 Bit adressierst du 50 Analogschalter, die jeweils einen > entsprechenden Widerstand an einen 7555-RC-Oszillator schalten. ;-) Nein, nur 6 Analogschalter, die jweils einen Widerstand parallel schalten, an dem von Dir zitierten RC-Oszillator. Die Leitwerte (1/R_i) und damit die Frequenzen (F~1/R) addieren sich bei Parallelschaltung. Dazu kommt noch ein Festrwiderstand parallel, damit das bei 10KHz anfängt. Bei 6 Bit Auflösung könnte sich sogar die Genauigkeit i9n angemessenen Größenordnungen bewegen, wenn man es sorgfältig macht. Aber ich würde trotzdem einen 8-Pin-ATTiny oder einen STM32 dafür nehmen. my2ct (re)
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: Wert 0 = 10kHz Wert 1 = 10.2kHz .... .... Wert 49 = 20kHz Jegliche programmierbaren Bausteine kommen leider nicht in Frage... würde das ganze etwas einfacher gestalten! Das runterteilen ist schwierig da kein "guter" gemeinsamer Teiler vorhanden ist.
:
Bearbeitet durch User
Andreas S. schrieb: > Wert 0 = 10kHz > Wert 1 = 10.2kHz Standardfrage: Welche Genauigkeit ist denn gefordert?
Andreas S. schrieb: > Wert 0 = 10kHz > Wert 1 = 10.2kHz > .... > .... > Wert 49 = 20kHz Denk nochmal darüber nach: welche Frequenz wäre denn der Wert 48? Und der Wert 75? Du merkst: du hast da den bekannten Zaunpfahlfehler.
Re schrieb: > 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.
> Andreas S. schrieb: >> Wert 0 = 10kHz >> Wert 1 = 10.2kHz >> .... >> .... >> Wert 49 = 20kHz Lothar M. schrieb: > 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. H. H. schrieb: > Hausaufgabe. Wegen dem Nudging in Richtung DDS/PLL? (re)
Re schrieb: > H. H. schrieb: >> Hausaufgabe. > > Wegen dem Nudging in Richtung DDS/PLL? Wegen mangelnden Realitätsbezugs.
Andreas S. schrieb: > 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. Lern endlich programmieren !
Andreas S. schrieb: > 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.
Arno R. schrieb: > Dann würde mich > mal die mathematische Herleitung bzw. der Beweis interessieren. Nicht leichter als das, sagte Frederic: 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- Die Frequenz eines RC-Oszillators ist | f = k * 1/(RC) mit irgendeiner Konstante k. Oder anders formuliert: | f = K * (1/R) mit einer anderen Konstante K wo auch C drinsteckt. Bei Parallelschaltung von Widerständen addieren sich die Kehrwerte: | 1/R = 1/R0 + 1/R1 + 1/R2 + 1/R3 + ... Wähle (unter Einbeziehung der Analogschalterwiderstände) R0 = K/ 10000Hz (Der ist immer da) R1 = K/ 200Hz (niederwertigstes Bit) R2 = K/ 400Hz R3 = K/ 800Hz R4 = K/1600Hz R5 = K/3200Hz R6 = K/6400Hz (höchstwertigstes Bit) Je nachdem welche dieser Widerstände an der Parallelschaltung teilnehmen, wird die Frequenz im 200Hz Raster erzeugt. Und die Hausaufgabe ist gelöst. 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- Rüdiger B. schrieb: > DAC und VCO. Das hier wäre dann der DAC-Teil Deiner Lösung, nur dass man auf das "V" in VCO verzichtet. @TO: Welche Genauigkeit ist eigentlich gefordert? (re)
Andreas S. schrieb: > 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.
Andreas S. schrieb: > 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. Aufgabe nicht lösbar.
Michael B. schrieb: > 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...
Norbert schrieb: > 6bit -> 2^6 Zustände Maximal 64 Zustände, die aber nicht voll genutzt werden müssen. Hier zum Beispiel nur 0-50. > 10-20KHz in 200Hz Schritten -> signifikant mehr Zustände. Nee, 0,2 kHz pro Schritt ist doch klar geäußert. > Aufgabe nicht lösbar. Nur, wenn man absolut unwillig ist. Schon wieder Freitag? Andreas S. schrieb: > Die Genauigkeit müsste im Bereich von +-50Hz liegen. Problemlos erreichbar.
Axel S. schrieb: > das Leben ist kein Wunschkonzert ... 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. Allerdings ... Andreas S. schrieb: > Das ganze soll mit Logikbausteinen (keine > Programmierung) aufgebaut sein. H. H. schrieb: > Wegen mangelnden Realitätsbezugs. ... 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". H. H. schrieb: > Holzweg, aber sowas von. 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. Andreas S. schrieb: > Keine Lernaufgabe oder Hausaufgabe 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? (re)
Re schrieb: > H. H. schrieb: >> Holzweg, aber sowas von. > > Das ging nur um den von Arno gewünschten Beweis, Ich meinte immer noch den TE.
Norbert schrieb: > 6bit -> 2^6 Zustände Also 64 > 10-20KHz in 200Hz Schritten -> signifikant mehr Zustände. Nämlich 50 > Aufgabe nicht lösbar. Eher du zu dumm.
Andreas S. schrieb: > Keine Lernaufgabe oder Hausaufgabe - eine nicht alltägliche > Aufgabenstellung um zu verhindern das eine Manipulation mittels > Programmierung im Einsatz stattfinden kann. Lockbits setzen ? So einfach kann die Welt sein.
Re schrieb: > 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.
Michael B. schrieb: >> 10-20KHz in 200Hz Schritten -> signifikant mehr Zustände. > > Nämlich 50 Off by one error. Andreas S. schrieb: > Erzeugung eines Sinussignals Ah, die nächste Salamischeibe.
Mario M. schrieb: > Ah, die nächste Salamischeibe. Diese ist schon verspiesen bzw. gelöst und funktionell - auch ich habe gerne Salami...
> einen rate multipler wie SN7497 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?
Andreas S. schrieb: > auch ich habe gerne Salami... Habe ich schon zum Ausdruck gebracht, dass ich inzwischen etwas mehr Kontext erwartet hätte?
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..
Andreas S. schrieb: > Rechteck-Frequenz 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.
Mi N. schrieb: >> 10-20KHz in 200Hz Schritten -> signifikant mehr Zustände. > Nee, 0,2 kHz pro Schritt ist doch klar geäußert. Anfang? Ende? Differenz? Michael B. schrieb: >> Aufgabe nicht lösbar. > Eher du zu dumm. Eher du zu lesefaul. Also in meinem Buch liegen zwischen 10 und 20000 deutlich mehr als fünfzig 200er Stufen. Aber es ist ja wohl wieder Interpretationsmontag.
Christoph db1uq K. schrieb: > Messung mit einem Frequenzzähler oder nur umgerechnete Anzeige des > 6-Bit-Werts? Frequenzzähler mit 74HC390 Andreas S. schrieb: > 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...
Andreas S. schrieb: > in eine > Frequenz von 10kHz-20kHz umwandeln Norbert schrieb: > Also in meinem Buch liegen zwischen 10 und 20000 deutlich mehr als > fünfzig 200er Stufen. Tja.
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.
Andreas S. schrieb: > Das Sinussignal 50-100Hz wird aus einer Rechteckfrequenz 10-20kHz > erzeugt. Dann schreit das nach DDS, so wie ... Peter T. schrieb: > 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. Andreas S. schrieb: > um zu verhindern das eine Manipulation mittels > Programmierung im Einsatz stattfinden kann. Michael B. schrieb: > Lockbits setzen ? Magst Du noch etwas darauf eingehen, was gegen diese Maßnahme spechen würde, damit wir nicht so im Trüben fischen? (re)
Andi F. schrieb: > Rechteckfrequenzen kann man nicht einfach vervielfachen Doch, das macht man mit PLL, und da es nur um eine einzige Oktave geht, ist das auch nicht so tragisch. Aber unnötig, weil der TE ja gar nicht vervielfachen will... Andreas S. schrieb: > Das Sinussignal 50-100Hz wird aus einer Rechteckfrequenz 10-20kHz > erzeugt. .. sondern herunterteilen, was er ja auch bereits schon gelöst hat. Er will nur einen Frequenzgenerator mit Rechteckausgang bauen, bei dem er die Frequenz mit 6 Bits vorgeben will. Wozu ist das Gesamtgebilde am Endeeigentlich gut? Netznachbildung? (re)
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.
H. H. schrieb: > Andreas S. schrieb: >> in eine >> Frequenz von 10kHz-20kHz umwandeln > > Norbert schrieb: >> Also in meinem Buch liegen zwischen 10 und 20000 deutlich mehr als >> fünfzig 200er Stufen. > > Tja. Er schrieb jedoch: Andreas S. schrieb: > und entsprechend eine Rechteck-Frequenz von 10-20KHz erzeugt werden Und hier kommt dein ›Tja‹ zurück.
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. Man könnte zwei SN74167 wie im Datenblatt 6.Seite gezeigt zusammenschalten https://pdf1.alldatasheet.com/datasheet-pdf/view/109191/TI/SN74167.html aber der wird nicht mehr produziert. Man kann auch zwei SN7497 zusammenschalten, dann machen die auch 64² Schritte. Im Datenblatt S.5 für drei Stück gezeigt, man braucht noch NOR-Gatter.
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > Man könnte zwei SN74167 wie im Datenblatt 6.Seite gezeigt > zusammenschalten > https://pdf1.alldatasheet.com/datasheet-pdf/view/109191/TI/SN74167.html > aber der wird nicht mehr produziert. Sollte in Hamburg noch zu kriegen sein.
Beitrag #7526038 wurde vom Autor gelöscht.
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.
> Jeder normale Entwickler würde heute z.B. einen DDS nehmen Da "nur" etwas rechteckiges erzeugt werden soll, kaeme auch ein NCO in Frage. Sitzt in manchen PICs.
Motopick schrieb: > Sitzt in manchen PICs. Kann man bei den Frequenzen auch in Software machen Wobei ich mir nicht mehr sicher bin was der TO wirklich will, vermutlich nur seinen Spass haben mit Stöckchen und Affen.
Andreas S. schrieb: > 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).
:
Bearbeitet durch User
> vermutlich nur seinen Spass haben mit Stöckchen und Affen. Moeglicherweise. Ich habe aber auch nicht uebermaessig Energie darauf verschwendet. Nach der Ausgangslage kommt ein PIC ja sowieso nicht in Frage. :)
Maxim B. schrieb: > 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. Michael B. schrieb: > 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? (re)
Christoph db1uq K. schrieb: > 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). https://www.analog.com/en/products/ad9831.html?tab=documentation-pane-1#product-overview
Re schrieb: > Er will nur einen Frequenzgenerator mit Rechteckausgang bauen, bei dem > er die Frequenz mit 6 Bits vorgeben will. Wozu raten? Andreas hat doch schon mit einigen Salamischeiben beschrieben, was er will, denn Andreas S. schrieb: > 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. Andreas S. schrieb: > Das **Sinussignal 50-100Hz** Ach so, deshalb die Anzeige 50 bis 100 > 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:
1 | CLK |
2 | 0=10kHz | |
3 | 50=20kHz ___ _v__ |
4 | 0..50 ---| | 50..100 ___ | | |
5 | | + |----/-------| | |12x | |
6 | 50 ------|___| 7 | + |---/---|D-FF|-----o---/-- MSB = 10..20kHz |
7 | Offset .---|___| 12 |____| | 1 |
8 | | | |
9 | '-------------/------------' |
10 | 12 |
Damit das MSB bei einem Eingangswert von 100 mit 20kHz toggelt, muss CLK bei einem 12 Bit-Addierer 820 kHz betragen.
:
Bearbeitet durch Moderator
Bauform B. schrieb: > 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). > > https://www.analog.com/en/products/ad9831.html?tab=documentation-pane-1#product-overview 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?
Andreas S. schrieb: > Hat jemand mit dem > AD9831 bereits Erfahrungen gesammelt? Ja. Gibt es auf Breakoutboards zu kaufen, fertig mit Signalkonditionierung. Hat SPI-Interface. Einfach und problemlos. Endlich. (re)
Re schrieb: > Hat SPI-Interface. Laut DB besteht das "MCU-Interface" aus D0..D15, WR, A0..2. Im ganzen DB findet sich kein "SPI".
Andreas S. schrieb: > Dies ist so ziemlich das was ich gesucht habe, Von Salami zu Mozzarella in unter 24 Stunden.
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
:
Bearbeitet durch User
Norbert schrieb: > Mi N. schrieb: >>> 10-20KHz in 200Hz Schritten -> signifikant mehr Zustände. >> Nee, 0,2 kHz pro Schritt ist doch klar geäußert. > Anfang? Ende? Differenz? 10kHz 20kHz 200Hz
Lothar M. schrieb: > Im ganzen DB findet sich kein "SPI". Ooops, sorry, Du hast Recht, ich habe den mit AD9833 verwechselt.
> statt SPI ein klassisches Parallel-Interface Wie war man damals noch froh, dass Motorola auch PLL-Chips mit Parallelinterface anbot. Mikrocontroller waren noch sehr speziell und teuer. http://www.bitsavers.org/components/motorola/_dataBooks/1988_Motorola_CMOS_NMOS_Special_Functions.pdf Da konnte man auch noch eine Diodenmatrix am Stufenschalter anbringen und musste keine Eproms programmieren können.
Christoph db1uq K. schrieb: > 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 damals.
Re schrieb: > Der AD9831 ist ziemlich gut zugeschnitten auf die > Bedürfnisse der *Rechnerstrukturen[sic!]* von > > damals. Analog Devices zum AD9831: "The product is appropriate for new designs but newer alternatives may exist."
Andreas S. schrieb: > https://www.analog.com/en/products/ad9831.html?tab=documentation-pane-1#product-overview > > 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.
Mi N. schrieb: > 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. Christoph db1uq K. schrieb: > "anstelle des Elefanten können auch Erdbeeren genommen werden" https://www.comedix.de/lexikon/db/erdbeere.php Mi N. schrieb: > 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. Latürnich. BtDtGts. (re)
Mi N. schrieb: > 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.
Lothar M. schrieb: > 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: >
1 | > CLK |
2 | > 0=10kHz | |
3 | > 50=20kHz ___ _v__ |
4 | > 0..50 ---| | 50..100 ___ | | |
5 | > | + |----/-------| | |12x | |
6 | > 50 ------|___| 7 | + |---/---|D-FF|-----o---/-- MSB = 10..20kHz |
7 | > Offset .---|___| 12 |____| | 1 |
8 | > | | |
9 | > '-------------/------------' |
10 | > 12 |
11 | > |
> 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.
Motopick schrieb: > Wie jetzt der TO von einer "Rechteckquelle" mit diskreten > Frequenzen zu einem (Sinus-)Sweepgenerator kommt Kommt er nicht. Er hat nur versucht, einen Thread zu diesem Thema zu kapern.
> Kommt er nicht. Er hat nur versucht, einen Thread zu diesem Thema zu > kapern. Ja, seinen eigenen. > Das weicht mittlerweile erheblich von Deinen eingangs genannten > Anforderungen ab Da wird sowieso nie was fertig.
Schalter über (diskreten aus Rs) DA an VCO, danach SCF-LP und dessen Signaleingang über Teiler an den VCO. ferrtsch Schau in die AppNotes von LTC.
Axel S. schrieb: > 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. Andreas S. schrieb: > Mittels 6-Bit Binärcode ... (200Hz Schritte)
:
Bearbeitet durch User
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...
:
Bearbeitet durch User
Rainer W. schrieb: > 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. Das ganze ist als XY-Problem bekannt: https://de.wikipedia.org/wiki/XY-Problem und wird auch hier im Artikel Netiquette thematisiert.
Maxim B. schrieb: > Man kann das viel einfacher und kostengünstiger mit AVR machen. Aber nicht, wenn man wie der TO nicht programmieren kann und sich auch weigert, noch jemals was zu erlernen.
Michael B. schrieb: > 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.
Maxim B. schrieb: > ... 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? Andreas S. schrieb: > ... soll ... eine Rechteck-Frequenz ... erzeugt werden
:
Bearbeitet durch User
Rainer W. schrieb: > Maxim B. schrieb: >> ... 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.
:
Bearbeitet durch User
Axel S. schrieb: > Konkret sollen aus 20kHz Rechteck 100Hz Sinus werden. Die Frage ist, welche Frequenzen das sind. Bei ganzzahligen Vielfachen wären das viel zu viele - bei unganzzahligen wahrscheinlich zu wenige Punkte. Sowas baut man auch komplett anders ... mehr in Richtung dessen wie, eine MUL/DIV-gesteuerte PLL in einem FPGA arbeitet.
Michael B. schrieb: > Aber nicht, wenn man wie der TO nicht programmieren kann Irgendwann sollte man Programmieren sowieso lernen. Warum nicht gleich jetzt?
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.