Hallo, ich möchte ein NF-Signal (also ca. 25 bis 5000 Hz) per µC erzeugen. Designziel ist ein niedriger Klirrfaktor und einfache Aufbau. Wie würdet ihr das realisieren? DDS im µC oder dedizierter Chip? Gibts da was feines?
dafür nimmt man einen DSP. Was das is kannste bei Wikipedia nachlesen. Keine Ursache! Falls noch fragen hast, ich bin hier online.
Also 5khz ist nun wirklich keine Problem für einen Mikrocontroller der mit 8MHZ oder mehr läuft.Zusammen mit einem externen Digital-Analog-Wandler (z.B. MAX58xx) sollte das schon ganz brauchbar sein. Eine andere Frage ist,was ausgegeben wird.Einen sauber Sinus oder etwas ähnliches zu berechnen ist ja kein Problem,sobald aber irgendwie gesampelte Daten ins Spiel kommen wird es ETWAS komplizierter. Um was genau geht´s den?Audio-Anwendung?Oder Signalgenerator?
Hallo Ronny, 5 kHz sind in der Tat nicht viel, das ist schon richtig. Die Frage ist nur, ob man die DDS im µC macht und einen vernünftigen DA-Wandler sucht oder ob es brauchbare DDS-Chips gibt die das gleich selber können. Entscheidend ist, dass die Schaltung möglichst einfach wird und die Bauteile natürlich zu beschaffen sind. Es geht im Übrigen um einen Sinus, sorry, dass diese Information fehlt. Ein parallel DAC ist mir dabei allerdings erstmal unangenehm. Danke für deinen Beitrag. @Pete: Troll dich.
Hmm.... MAX5773 (50KHZ/14Bit-DAC mit SPI-Anschaltung) und ein entsprechender AVR (per Software-SPI auch einer der ganz kleinen) wären vielleicht ein Anfang. Ob es ein DDS integriert gibt,weiss ich nicht da ich bisher damit noch nicht gross zu tun hatte.
Es gibt die Niederfrequenz-DDS von Mitel, jetzt anscheinend Fairchild ML2035/36/37. die liefern einen Sinus bis 25 oder 50 kHz. http://www.alldatasheet.com/datasheet-pdf/pdf/53674/FAIRCHILD/ML2036.html ansonsten der günstigste DDS von Analog Devices AD9835 bis ca. 20 MHz http://www.analog.com/en/prod/0%2C2877%2CAD9835%2C00.html
Hallo Christoph und Ronny, danke für eure Beiträge. Irgendwie ist meine letzte Antwort von gestern Abend allerdings abhanden gekommen. Der MAX 5773 ist natürlich extremer Overkill mit 32 Kanälen und TQFP64. Den ML20* kann ich leider weder bei R, K, C oder Farnell finden und den AD9835 gibts nur bei Farnell für 15 Euro. Mit 50 MHz ist der natürlich in dieser Anwendung überfordert. Ich werde jetzt erstmal auf interne DDS orientieren und schauen, was es da für Wandler gibt.
-------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________ -------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________ -------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________ -------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________ -------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________ -------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * _ c_c_c_C/ \C_c_c_c____________
Muß es ein DDS sein, oder reicht es, den Prozessortakt herunterzuteilen? So machen es ja die Timer im Mikrocontroller, wenn sie eine Rechteckschwingung ausgeben. Nachteil ist die geringe Frequenzstufenzahl, Vorteil einfach und jitterfrei. Der uC muß nur in regelmäßigen Abständen einen neuen Wert aus einer Sinustabelle an einen DA-Wandler ausgeben. Der DDS läßt sich auch in Software realisieren, aber damit ist der uC ziemlich ausgelastet. Es gab in der Frühzeit der Mikroprozessortechnik auf den meisten Prozessoren solche DDS-Programme, um vierstimmig Musik auszugeben, ich hatte das auf dem 6502. Jede Sinusschwingung war aus 64 Spannungswerten aus einer Sinustabelle aufgebaut, sodaß man vier Stimmen/Schwingungen addieren konnte ohne dass die 255 überschritten wird. Ein 8Bit-DA-Wandler am Druckeranschluß oder einem anderen Parallelport gab das ganze aus. Es funktionierte nach dem DDS-Prinzip, also eine Programmschleife fester Länge, die einen konstanten Wert zu jeder der vier Schwingungen addierte.
@Klaus: Sonst geht's aber? @Thomas: Du könntest trotzdem einen AVR mit PWM in Hardware verwenden, 5kHz * 64 Schritte (6bit Auflösung) müsste der bei entsprechender Taktung problemlos schaffen. Brauchst du am Ausgang denn eine grosse Leistung? Ansonsten müsste das mit einem Tiefpass relativ gut zu glätten sein. Evtl. noch ein OpAmp nachschalten, wenn du doch mehr Leistung benötigst. Falls es auf die Auflösung nicht so sehr ankommt könntest du auch über einen Widerstands-DA-Wandler nachdenken, da hat's keine Oberwellen drin. Und das dort oben sollte wohl eher "unterfordert" heissen, gelle ;)
Ich habe mal nach Programmen gesucht, die so einen Software-DDS enthalten, hier etwas auf dem Apple II ( 6502 Prozessor mit etwa 1 MHz Takt): http://members.aol.com/MJMahon/RTSynth.html
Hallo zusammen, > Muß es ein DDS sein, oder reicht es, den Prozessortakt > herunterzuteilen? Reicht nicht. Es soll ein Sinus werden, der diverse Frequenzen annehmen soll. Einschwingverhalten etc. ist schnuppe, da es nur um das dann stationäre Signal geht. Frequenzteiler machen nur schreckliche Frequenzschritte, das wird nix. PLL wäre eine Lösung, aber hier vmtl. unnötig und man müsste dann wieder einen Sinus draus machen, aus dem Takt eben... Ich werde ersteinmal versuchen mit vorhandenen Bauteilen - 8-Bit Wandler - DDS im µC (wie im Projekt von Andreas) nach zu stellen. Dann muss sich zeigen, ob das geht. Da die Frequenz nicht allzu hoch ist, sollte es rechenleistungsmäßig aber noch kein Problem geben. > Du könntest trotzdem einen AVR mit PWM in Hardware verwenden, 5kHz > * 64 Schritte (6bit Auflösung) müsste der bei entsprechender Taktung Habe ich mir auch überlegt, aber 6 Bit sind wahrscheinlich zu wenig für einen "sauberen" Sinus. Ansonsten wäre PWM natürlich schon gut, da man keine zusätzlichen externen Bauteile braucht. Filter braucht man bei allen Lösungen. > Falls es auf die Auflösung nicht so sehr ankommt könntest du auch > über einen Widerstands-DA-Wandler nachdenken, da hat's keine > Oberwellen drin. Den Zusammenhang kann ich nicht herstellen, höherfrequente Störungen kommen doch durchs Umschalten unabhängig vom Wandler?! > Und das dort oben sollte wohl eher "unterfordert" heissen, gelle ;) Allerdings ;-) > http://members.aol.com/MJMahon/RTSynth.html Werde ich mir anschauen, sobald ich mehr als ein paar Minuten Zeit habe ;-) Danke @Pete Nerlinger und Klaus Bermanns: Sucht eucht bitte ein anderes Forum.
irgendeinen dac nehmen, dein signal 10x oversamplen, mittels RC filtern und fertig! Hab ich auch schon gemacht und bei 10x OS kommt trotz primitivem Filter ein schöner Sinus raus...
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.