mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sinus mit AVR erzeugen


Autor: Marco Schramm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich brauche mal ein paar Tips von der AVR-Fraktion:

Kann man mit einem Atmega 16 einen sauberen Sinus von 120kHz direkt
erzeugen?

Kann man mit eienm Atmega 16 zwischen den Frequenzen 120kHz und 130 kHz
ohne Unterbrechung hin- und herschalten (Wechsel in der Nullstelle) und
das in einem Takt von 1kHz?

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie "sauber" soll es denn werden? Du kannst z.B. 8 Ausgänge über eine
Widerstandskaskade als DA-Wandler zusammenschalten. Ich bin kein
Assembler-Freak, aber ich denke, Minimum 4 Take braucht man für eine
Schleife, die Werte aus einer Tabelle auf den Port ausgibt. Noch die
Abfrage des Wechsels zwischen den Frequenzen, dann bist du sicher bei
6-7 Takten pro Durchlauf. Gehen wir mal von 16 MHz Takt aus, dann
bleiben vielleicht 3MSamples/s Ausgabe - vermutlich weniger. Da sind
dann schon einige Zacken im Sinussignal drin. Allerdings könnte man die
Kurve über einen Tiefpass wieder etwas abrunden - aber ein sauberer
Sinus wird es dadurch natürlich nicht. Die Frage bleibt also: Wie genau
soll das Sinussignal sein?

Autor: Barti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt Widerstandsdekade gleich PWM nehmen, Sinustabelle mehreren Werten
erstellen und darein PWM-Werte von 0 bis Pi/2 schreiben, diese Tabelle
einmal hoch, einmal runter, dann wieder hoch und runter mit
gewechseltem Vorzeichen "durchfahren"->eine Sinusperiode. PWM-Ausgang
mit Tiefpass glätten.
Je nachdem wie schnell man die Tabelle durchgeht ist dementsprechend
auch die Frequenz. Wechsel der Frequenz nach dem 4. Mal durchfahren(im
Nulldurchgang nach 2xPi).

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit PWM einen 120kHz Sinus? Wenn wir mal 8bit PWM nehmen, dann ist die
höchste PWM-Frequenz 62kHz. Oder hab ich etwas übersehen?

Autor: Hartmut Gröger (hardygroeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Einige AVRs haben einen internen IO-Takt von 64, 32 bzw 25,6 MHz
damit sollte es locker gehen.

MfG HG

Autor: mc.emi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn es sauber sein muss, nimm doch n'en DDS..? ok, ok, ist ev. etwas
übertrieben ;) aber als gratis-sample wieso nicht...

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit genügend steilem Tiefpaß wird aus jedem Rechteck ein sauberer Sinus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.