Forum: Mikrocontroller und Digitale Elektronik NF-Signal mit µC erzeugen


von Thomas (Gast)


Lesenswert?

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?

von Pete Nerlinger (Gast)


Lesenswert?

dafür nimmt man einen DSP.
Was das is kannste bei Wikipedia nachlesen.

Keine Ursache!
Falls noch fragen hast, ich bin hier online.

von Ronny (Gast)


Lesenswert?

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?

von Thomas (Gast)


Lesenswert?

Danke!

"Mit Kanonen auf Spatzen schiessen" sagt dir was?

von Ronny (Gast)


Lesenswert?

@Pete:

'Keine Ursache!' Wofür?

von Thomas (Gast)


Lesenswert?

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.

von Ronny (Gast)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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.

von Klaus Bermanns (Gast)


Lesenswert?

--------------------------
                         /|  /|  |                          |
                         ||__||  |       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____________

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

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.

von Philipp Burch (nicht einglogt) (Gast)


Lesenswert?

@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 ;)

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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.

von Fly (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.