Forum: Mikrocontroller und Digitale Elektronik Sinus generieren - welcher AVR am besten?


von Christoph (Gast)


Lesenswert?

Welchen AVR nimmt man derzeit günstigerweise, wenn man einen Sinus (im
Audiobereich)generieren will? Es gibt ja immer Modelle, die gerade
wieder mal auslaufen und durch einen neuen Typ ersetzt werden. So habe
ich bisher mit dem AT90S2313 gearbeitet, aber der ist, glaube ich,
schon wieder überholt, oder?

Gibt's eine Application Note zur Sinuserzeugung von Atmel?

von Wolfram (Gast)


Lesenswert?

Da du überhaupt keine Anforderungen an die Qualität des Sinus
definierst: jeder ist geeignet

von mr.chip (Gast)


Lesenswert?

Hallo

Ich glaube dann, das spielt kaum eine Rolle, da die AVRs von ihrem
Prinzip her alle gleich sind und sich lediglich in Peripherie und
Speicher unterscheiden. Einen AVR mit Sinusgenerator gibts aber IMHO
nicht. Von daher: Sinus können alle gleich gut. Nimm, was du günstig
bekommst und deine anderen Anforderungen abdeckt.

Gruss

Michael

von Christoph (Gast)


Lesenswert?

Wolfram, inwieweit würde die Anforderung an die Qualität des Sinus einen
Ausschlag für die Wahl des AVR geben. Nur mal so interessehalber?

von uwegw (Gast)


Lesenswert?

Da man einen Sinus normalerweise über ein Look-up-Tabelle erzeugt,
könnte man bei mehr Speicher eine feinere Auflösung mit mehr
Zwischenschritten abspeichern. Außerdem könnte man theoretisch einen
16bit-ADC aufbauen, wofür man genug freie Ausghänge braucht. Da man das
Signal aber sowieso noch durch einen Filter schickt, ist 8bit aber meist
vollkommen ausreichend.

von uwegw (Gast)


Lesenswert?

PS.: schau dir mal den hier an:
http://www.mikrocontroller.net/articles/Digitaler_Funktionsgenerator

Der 90S2313 ist veraltet und wird nicht mehr hergestellt. Der
weitgehend kompatibele Nachfolger ist der Tiny2313.

von Wolfram (Gast)


Lesenswert?

z.B. Klirrfaktor
Dämpfung der Oberwellen
Oberwellen werden durch die Stufung erzeugt. Wenn du also 16 Bit
Auflösung statt 8 machst wird es besser. (feinere Stufen)
gewöhnlich macht man den Sinus durch PWM mit dem AVR, wenn du deine
PWMfrequenz sehr hoch wählst sinken die Anforderungen an den Filter.
z.B. AtTiny26 mit 64Mhz zur PWM generierung über PLL.
Du kannst genauso einfach ein Rechtecksignal deiner gewünschten
Frequenz rausgeben und dieses mit einem aufwendigen Filter zum Sinus
machen.
definiere welche Anforderungen du hast und dann wähle einen von
mehreren Wegen diese zu erreichen.

von Christoph (Gast)


Lesenswert?

uwegw: Du meintest sicher DAC, nicht ADC. Und "normalerweise" über
Lookuptable stimmt ja nun nicht. Man kann auch gleich eine PWM-Folge
generieren und die über ein RC-Filter schicken.

Wolfram: Meine Anforderung ist etwa 1% Klirrfaktor. Ich möchte aber
kein aktives Filter mehr nachschalten müssen. Gut, bin im Bilde,
tiny2313, obwohl, vielleicht täte es auch ein 2323 oder 2343?
Ich brauche noch eine Komparatorfunktion und einen Schaltausgang.

von Wolfram (Gast)


Lesenswert?

>Ich möchte aber kein aktives Filter mehr nachschalten müssen
was denn dann? Womit willst du den Sinus glätten? Auf was soll der
Sinus gehen Kopfhörer oder Lautsprecher? Also das treibst du mit
Sicherheit nicht mit dem Portpin besonders wenn da noch ein RC Glied
dranhängt. Also kannst du den OPV auch gleich als aktiven Filter
beschalten.
Die Lookuptable ist für die Sinusfkt. mit der man die PWM füttert.

von Christoph (Gast)


Lesenswert?

Wolfram, mit aktivem Filter meinte ich Op-Amp. Wollte nur eine
RC-Kette dahinter hängen.
Wieso soll ich die nicht mit dem Port-Pin treiben können?

von Wolfram (Gast)


Lesenswert?

Die RC-Kette schon, aber ich bezweifle ,dass du den dahinterhängenden
Verbraucher (Lautsprecher) auch noch treiben kannst.

von Profi (Gast)


Lesenswert?

Es gibt eine Application Note von Atmel.
Musst Du Dir aber selbst suchen.
Bitte Ergebnisse hier posten.

Stichworte sind:
tone generation
DTMF
sinus generaion
DDS (direct digital synthese)

Entscheiden ist: willst Du eine konstante Frequenz?
In welchem Bereich soll die Frequenz liegen?

1% Klirrfaktor ist schon anspruchsvoll.
Aktiver Filter könnte die Filterung vereinfachen und verbessern.

Je höher die Frequenzen (Sampling und PWM) umso besser.

Allerdings ist der µC mit der Sinus-Ausgabe voll ausgelastet.
Wenn Du was anderes dazwischen machst, sieht man das am Ausgang.

Entweder Du gibst eine Sinustabelle komplett aus (Frequenz durch
Samplefrequenz bestimmt), oder verwendest DDS (Frequenz unabhängig von
Samplefrequenz).

Man kann auch problemlos mehrere Frequenzen gleichzeitig ausgeben (vor
dem Ausgeben die Sinus-Werte addieren).

Lesestoff:
http://www.seattlerobotics.org/encoder/200205/ddsfgen.htm

von Profi (Gast)


Lesenswert?

Die Suche scheint doch schwierig...
AVR314: DTMF Generator
http://www.atmel.com/dyn/resources/prod_documents/doc1982.pdf
Software dazu:
http://www.atmel.com/dyn/resources/prod_documents/avr314.zip

recht ähnlich, für AT94K
http://www.atmel.com/dyn/resources/prod_documents/DOC2816.PDF
http://www.atmel.com/dyn/resources/prod_documents/2816.asm

Wer über den TellerRand schauen will:
AN1771 und AN1222 von Motorola

Die DDS-Chips sind inzwischen so einfach, dass man sie wirklich testen
kann.

von Robert Teufel (Gast)


Lesenswert?

Bin zwar nicht aus dem AVR Lager aber den besten Sinus generiert man mit
dem hoechstaufloesenden und schnellsten PWM-Timer. Da gibts doch einen
(zwei) AT90PWMn, die haben wirklich nette PWM Timer. Zwar sind die als
"Lighting" micros ausgezeichnet, doch das sollte den Sinus nicht
soteren ;-)

Robert

von Jojo S. (Gast)


Lesenswert?

Eine Alternative wäre vielleicht auch der ATMega8-16 Dip. Hat ein
28-pol. DIP Gehäuse und eine Menge mehr Resourcen, kostet nur ca. 1
Euro mehr.
Bei Atmel gibts auch eine grosse Übersichtstabelle.

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.