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?
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?
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).
Mit PWM einen 120kHz Sinus? Wenn wir mal 8bit PWM nehmen, dann ist die höchste PWM-Frequenz 62kHz. Oder hab ich etwas übersehen?
Hi Einige AVRs haben einen internen IO-Takt von 64, 32 bzw 25,6 MHz damit sollte es locker gehen. MfG HG
wenn es sauber sein muss, nimm doch n'en DDS..? ok, ok, ist ev. etwas übertrieben ;) aber als gratis-sample wieso nicht...
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.