Forum: Mikrocontroller und Digitale Elektronik Atmega8/16 WAV über PWM???


von Sascha D. (plutoonline)


Lesenswert?

Hallo, ist es möglich ein Wav (Telefonqualität 8Bit/8KHz) über einen
Atmega8 oder Atmega16 per PWM auszugeben?
Wenn ja wie realisiert man sowas, am liebsten wäre mir die
Programmierung in C. Hat jemand vieleicht ein kleines
Beispielprogramm?
Dürfte ja eigentlich nicht so schwer sein wenn der Timer mal richtig
initialisiert ist. Oder liege ich da total scheif?

Danke schonmal für eure Hilfe!

von Hannes L. (hannes)


Lesenswert?

Die PWM-Frequenz dürfte etwas langsam sein. Mit Tiny15 geht das besser,
dessen PWM-Timer hat PLL.

...

von unbekannter (Gast)


Lesenswert?

Ich kenne mich zwar mit Mikrocontroller praktisch nich aus, aber ist der
PWM nicht ein digitaler ausgang? Aslo dauerndes wechseln von 0 und 1 am
Ausgang?
Damit könntest du meines Wissens nach nur "piipen" aber wenn du
Stimmen oder sonst welche Geräusche ausgeben möchtest brauchst du ein
Analogausgang.

von Fly (Gast)


Lesenswert?


von Hauke Radtki (Gast)


Lesenswert?

@unbekannter:
Das pipen hörst du nur, wenn die PWM frequenz zu niedrig ist.
Einer PWM Frequenz von 30kHz z.b. könnte wohl kein normaler
lautsprecher mehr folgen, und es würde nur noch das "aufmodulierte"
NF signal durchkommen. Eleganter wäre ein Tiefpassfilter, der die hohe
Frequenz filtert und nur den NF anteil durchlässt.

von Sascha D. (plutoonline)


Lesenswert?

@...HanneS... Lux
Das mit dem PLL hört sich gut an gibt es da acu einen MC mit mehr
Ports?
Und gibt es da ein irgend welche Quellen wie der Timer dann
konfiguriert werden muß?
Ich hab echt schon alle möglichen Seiten durchsucht und nichts
passendes gefunden.

@Fly
Danke für die AppNotes, die muß ich erstmal Studieren um da
durchzusteigen.

von dotstyler (Gast)


Lesenswert?

Mir fällt de tiny26 ein. Der hat PLL und zwei Ports. Den kann man Speed
mäßig ziemlich hochjagn. Am einfachsten
alle Datasheets durgucke.
73

von Hannes L. (hannes)


Lesenswert?

> Und gibt es da ein irgend welche Quellen wie der Timer dann
> konfiguriert werden muß?

Ja, Quellen gibt es, die Datasheets zu den AVRs, die man sich kostenlos
bei www.atmel.com herunterladen kann.

Ich habe mal etwas mit dem Tiny15 und der Soundausgabe experimentiert,
das kannst Du hier nachlesen:

http://www.hanneslux.de/avr/divers/index.html

...

von Fly (Gast)


Lesenswert?

Weshalb studierst du nicht die Links die ich gepostet habe?! Das ist
ganz genau dass was du suchst! Inkl. Schema und dokumentiertem
Sourcecode und das beste ist: Es funktioniert garantiert!
Kannst du kein Englisch?

von Sascha D. (plutoonline)


Lesenswert?

@Fly
Ich hab doch geschrieben das ich mir die Appnotes mal anschauen muß!
und ja ich kann Englisch.
@All
ich habe mir mal die Appnotes reingezogen und hab das ganze mal auf
einem Atmega8@8Mhz umgesetzt.
Ich habe das Wav-File zum testen im Programmspeicher untergebracht
und schicke die Daten dann auf OCR1B.
Den WAV habe ich mit 8BIT und 4000Hz codiert.
Es kommt auch was raus was sich wie der WAV-File anhört nur ist die
Qualität bei (8Bit 4000Hz) nicht mehr so doll.
Ich werde bei gelegenheit mal (8Bit 8000Hz) testen.
Das piepen der PWM-Frequenz kann man noch wohl rausfiltern.
Ich denke das ein MC mit PLL wohl ein besseres ergebnis ausgibt und man
sich den Filter Sparen kann.
Ich werde mal den Tiny26 checken.
Was mir jetzt noch fehlt ist ein geeigneter Speicher zu ablegen der
WAV-Files, ich denke 64KB/128KB würden ausreichen.
Hat da jemand eine Idee?

von Sebastian Heyn (Gast)


Lesenswert?

mmhh ganz ehrlich, wenn du den controller nur sound ausgeben lässt, und
diese nicht im flash ablegen willst, kannst du ja einen eeprom oder
flash IC nehmen... Kleiner controller, der am adress und datenbus
hängt, evtl über schieberegister o.ä. und hinten einen kleinen 8bit
dac. da musst du nichts filtern, und bist glücklich :-))

von Hannes L. (hannes)


Lesenswert?

Da gibt es z.B. 'ne nette fertige Lösung von Peter Dannegger als
Soundmodul für Modellbau. Musst mal suchen, wurde hier im Forum drüber
berichtet.

...

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.