- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: 1 kHz Sinussignal mit µController erzeugen

  1. #1

    1 kHz Sinussignal mit µController erzeugen

    Anzeige

    Praxistest und DIY Projekte
    Hallo Forum,

    ich muß für ein Projekt eine ASK-Sinusspannung mit einer Frequenz von 1 kHz erzeugen. In der bestehenden Schaltung wird dazu ein Rechtecksignal mit dieser Frequenz über einen 1 kHz Tiefpass 3. Grades geschickt und aus dem entstehenden Sinussignal über einen Spannungsteiler zwei Signale mit verschiedenen Amplituden erzeugt. Danach wird für jede Periode entschieden welche der beiden Spannungen zum Ausgang durchgeschaltet wird.

    Meine Aufgabe ist es jetzt diese Schaltung möglichst zu vereinfachen und nach Möglichkeit die ganze Analoggeschichte wegzuoptimieren. Optimal wäre es, wenn ich direkt im Mikrocontroller/DSP einen Sinus nachbilden und mit entsprechender Amplitude am IO-Pin ausgeben könnte. Meine Überlegung war es nun an einem PWM- oder DA-Ausgang den Sinusverlauf entsprechend nachzubilden und diesen evtl. nochmal mit einem kleinen, passiven R-C-Tiefpass zu "bereinigen".

    Für jegliche Tipps, ob und mit was für Controllern sowas realisierbar ist, wäre ich Euch echt dankbar. Beispiele für 50 Hz-Frequenzen finden sich zuhauf aus dem Bereich irgendwelcher USV-Bastler, aber ob ein normaler Controller oder sogar ein DSP einen 1 kHz-Sinus generieren kann hab ich nirgends gefunden.

    Bisher hab ich Controllertechnisch eben auch noch nicht die Erfahrung, da ich bisher beruflich nur mit 8051 und ein bisschen altem Z80 Assembler zu tun hatte. Von der Programmierung her sehe ich keine Probleme, da ich in C recht fit bin und von mir selber glaube dass ich mich auch recht schnell in nen neuen Assembler einarbeiten kann.

    Wie gesagt wäre ich Euch echt dankbar, wenn Ihr mir weiterhelfen könntet.

    Gruß Roland

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.08.2004
    Ort
    Unterschleissheim
    Beiträge
    332
    Hallo Roland

    einen DSP mußt Du dafür nicht bemühen. Wie Du schon schreibst geht das mit einem PWM-Ausgang oder, mit einem DAC. Da Du ohnehin an einem Filter nicht vorbeikommst würde ich das mit einem DAC machen. uC mit 8 Bit DAC, Sinuswerte ausrechnen, in Tabelle rein und in den DAC reinschieben. Dahinter noch einen Tiefpass fertig. Kann man auch mit PWM und nachgeschaltetem Filter erledigen. Das muß dann aber vermutlich ein aktiver Filter sein, kein passiver Tiefpass, da 1Khz doch schon relativ hochfrequenz (1kHz = 1ms, und hier mindestens 10 Werte(Schwingung = mindesten 10kHz, besser 20Khz PWM).

    Gerhard

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    58
    Beiträge
    247
    Hallo

    Vielleicht hilft dir das auch weiter.

    http://www.mikrocontroller.net/artic...tionsgenerator

    MFG
    Dieter

  4. #4
    Merci Ihr beiden. Werd mir mal was überlegen und wenn ich noch Fragen hab meld ich mich wieder.

    Gruß Roland

  5. #5
    Unregistriert
    Gast

    Lächeln Sinus Tabelle für PIC

    DAs Problem kenne ich. MIr hat dies hier weitergeholfen

    http://www.afug-info.de/Schaltungen-...Sinus-Tabelle/

    Alois

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von r.schmidlin Beitrag anzeigen
    Für jegliche Tipps, ob und mit was für Controllern sowas realisierbar ist, wäre ich Euch echt dankbar. Beispiele für 50 Hz-Frequenzen finden sich zuhauf aus dem Bereich irgendwelcher USV-Bastler, aber ob ein normaler Controller oder sogar ein DSP einen 1 kHz-Sinus generieren kann hab ich nirgends gefunden.

    Bisher hab ich Controllertechnisch eben auch noch nicht die Erfahrung, da ich bisher beruflich nur mit 8051 und ein bisschen altem Z80 Assembler zu tun hatte. Von der Programmierung her sehe ich keine Probleme, da ich in C recht fit bin und von mir selber glaube dass ich mich auch recht schnell in nen neuen Assembler einarbeiten kann.
    1kHz ist kein wirkliches Problem, ein Controller mit Hardware-PWM erzeugt das vollkommen autonom. Um das Filtern wirst du aber auch da nicht rumkommen, um einen Verstärker, um die Ausgangsimpedanz deines Signals an deine Last anzupassen, auch nicht. Nur die ASK kannst du dann in SW erledigen. Dafür ist Assembler absolut nicht nötig, das geht alles in C. Signale in Telefonqualität, 300Hz bis 3,2kHz, erledigt ein moderner µC mühelos im Hintergrund. Bei einer festen Frequenz ist das noch einfacher. Ob das Ganze aber wirklich einfacher als dein jetziger Ansatz wird?

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Hallo,
    man könnte sich auch DDS-Chips anschauen ( https://de.wikipedia.org/wiki/Direct_Digital_Synthesis ), allerdings ist das für 1kHz etwas overengineered...
    Von Analog Devices gibt es einige Chips von der Sorte, siehe http://search.datasheetcatalog.net/key/DDS .
    Allerdings ist die AM dort meist nicht vorgesehen. Eventuell kann man ein digitales Potentiometer dahinter schalten, um die AM zu realisieren, da müsste man aber schauen ob das schnell genug funktioniert.
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Versuch es mal mit ein STM32 Discovery board : Beispielen für Sinus Erzeuging ueber DAC (12 bit) sind forhanden. Den F100 lauft mit 24 MHz, ueber DMA lasst sich dan problemlos eine schone Sinus ausgeben.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo Bernhard,
    Zitat Zitat von BMS Beitrag anzeigen
    man könnte sich auch DDS-Chips anschauen ( https://de.wikipedia.org/wiki/Direct_Digital_Synthesis ), allerdings ist das für 1kHz etwas overengineered...
    Für sein Problem reicht die Sinus-Tabelle und der DAC. Die Sinustabelle wird durch einen einfachen Counter angesteuert.
    Kann man recht einfach mit einem ROM für die Sinus-Tabelle aufbauen.
    Da heutige ROMs sowieso viel zu gross sind, legt man mehrere Sinus-Tabellen an, je nach gewünschter Modulation. Mit dem eigentlichen Signal schaltet man dann zwischen den Tabellen um.

    Wenn 10-Bit für den DAC ausreichen würde ich ein µC verwenden.
    Für einen 16-Bit DAC wäre dann obiger Aufbau besser geeignet.

    Leider finden sich bisher keine Angaben zum erlaubten Klirrfaktor und den Einschwingzeiten?
    Analoge Filter reagieren nicht sofort.
    Auch ist nicht so ganz klar WAS optimiert werden soll, bzw. um was für einen Einsatz es geht?
    Wenn dies ein Prüfgerät werden soll, spielen die Kosten keine grosse Rolle, da zählen dann die technischen Parameter.
    Bei einem Seriengerät stehen eher die Kosten und die Baugrösse im Vordergrund.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress