Forum: Mikrocontroller und Digitale Elektronik Musik von SD-Karte mit Atmega8


von leinad R. (leinad2)


Lesenswert?

Hallo,
für den anfang erstaml ... ich will einen kleinen Wecker basteln der mir 
nicht nur so gepiepse abspielen soll sondern wenn möglich auch etwas 
Musikähnliches.
Ich würde das ganze gerne mit einem Atmega8 machen und da stellen sich 
mir jetzt die Fragen wie man einen Atmega8 dazu überredet etwas von 
einer SD-Karte (microSD-HC) abzuspielen und natürlich OB er es überhaupt 
schafft eine beliebige Musikdatei von einer SD-Karte zu lesen und 
weiterzugeben.

Ich freue mich schon auf eure Antworten :-)

von Jörg S. (Gast)


Lesenswert?

Hallo,

das geht sogar noch kleiner (ATtiny). Schau' mal hier:

http://elm-chan.org/works/sd8p/report.html

Der spielt sogar WAVs ab.

Grüße,

Jörg

von Sascha W. (sascha-w)


Lesenswert?

Jörg S. schrieb:
> Der spielt sogar WAVs ab.
und das ist auch das einzige was er abspielt

Sascha

von Frank K. (fchk)


Lesenswert?

leinad R. schrieb:

> für den anfang erstaml ... ich will einen kleinen Wecker basteln der mir
> nicht nur so gepiepse abspielen soll sondern wenn möglich auch etwas
> Musikähnliches.
> Ich würde das ganze gerne mit einem Atmega8 machen und da stellen sich
> mir jetzt die Fragen wie man einen Atmega8 dazu überredet etwas von
> einer SD-Karte (microSD-HC) abzuspielen und natürlich OB er es überhaupt
> schafft eine beliebige Musikdatei von einer SD-Karte zu lesen und
> weiterzugeben.

Antwort: nein. Beliebige Musikdateien schon mal gar nicht. Um mp3 oder 
wma zu dekomprimieren, hat er zwei Zehnerpotenzen zu wenig 
Rechenleistung. WAV würde theoretisch gehen, aber das Teil hat kein 
Audiointerface, und der Hack von elm-chan geht nur mit bestimmten Tinys, 
die schnelle PWM-Einheiten haben.

Ich habe hier

Beitrag "Re: Lausprecher für uC"

einen dsPIC33FJ128GP802 vorgeschlagen, weil der
(a) bereits Stereo Audio mit 14 Bit und 100 kHz ausgeben kann, die 
analogen Ausgänge sind auf dem Chip bereits drauf
(b) diese Controllerfamilie auch höherwertige externe DACs per I2S oder 
Framed SPI ansteuern kann, das geht mit AVRs nicht
(c) diese Controller mit 3.3V laufen und Du für Deine SD-Karte keine 
Pegelwandler brauchst; Dein Mega 8 funktioniert zwar auch mit 3.3V, dann 
aber nur mit 8 MHz, weil es ein altes Design ist; die Technologie ist 
inzwischen weiter
(d) diese Controller mindestens die dreifache Rechenleistung haben; wenn 
Du die speziellen DSP-Befehle und die beiden 56-Bit Akkumulatoren nutzt 
(das sind ansonsten 16 Bit Controller im Gegensatz zu den 8 Bit AVRs), 
kannst Du noch wesentlich mehr rausholen.
(e) diese Teile auch nicht teurer sind als Dein Mega 8, den Du 
wahrscheinlich noch rumliegen hast und jetzt meinst unbedingt verwenden 
zu müssen.

Also denk nochmal nach und wähle dann einen für Dein Projekt geeigneten 
Controller aus.

fchk

von Sam .. (sam1994)


Lesenswert?

Frank K. schrieb:
> (e) diese Teile auch nicht teurer sind als Dein Mega 8, den Du
> wahrscheinlich noch rumliegen hast und jetzt meinst unbedingt verwenden
> zu müssen.

Das sind sie mit Sicherheit. Den Mega8 bekomm ich für einen Euro.

von leinad R. (leinad2)


Lesenswert?

Das freut mich schonmal sehr.
Wisst ihr ein gutes Tutorial um eine SD-Karte anzuschließen und eine 
WAV-Datei abzuspielen.
Wieviel Leistung braucht dies eig. ?

von Sam .. (sam1994)


Lesenswert?

Man könnte das Projekt von elm-Chan auf den Mega8 portieren. Wenn ein 
Synthesizer ausreicht, könntest du den auch ohne SD-Karte laufen lassen. 
Bei den Polyphonen könnte jedoch dann der Flash knapp werden 
(AVR-Synthesizer).

von Frank K. (fchk)


Lesenswert?

leinad R. schrieb:
> Das freut mich schonmal sehr.
> Wisst ihr ein gutes Tutorial um eine SD-Karte anzuschließen und eine
> WAV-Datei abzuspielen.

Zu den dsPics und Audio:

http://www.microchip.com/pagehandler/en-us/technology/audio/technology/playback.html

Web Seminar:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2813&dDocName=en542825

FAT FS und SDCARD Handling:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537999

Bibliothek ist Bestandteil der Application Libraries

> Wieviel Leistung braucht dies eig. ?

Nicht viel. Der dsPIC hat DMA, d.h. eine Einheit, die Daten ohne Zutun 
des Prozessors verschieben kann. Die kann man auch für den Audio DAC und 
die SPI und DCI (I2S) Ports benutzen. Und nein, ein normaler AVR hat 
auch das nicht.

fchk

von Gelöscht (kami89)


Lesenswert?

Hallo,

Such mal nach dem VS1011 und Konsorten, die wären für dich vielleicht 
interessant. Habe ich selber für einen Wecker verwendet, der weckt mich 
nun jeden Morgen mit einer MP3-Datei :-)

Du liest z.B. mit einem AVR über SPI ein paar hundert Bytes von der 
SD-Karte, pufferst sie ganz kurz und schickst sie dann nach und nach in 
kleinen Häppchen wieder über SPI an den VS1011. Das Dekodieren und D/A 
Wandeln übernimmt also alles der VS1011, du musst ihn nur über SPI mit 
dem Datenstrom füttern und verstärkst den Ausgang noch mit einem kleinen 
Verstärker.

mfg

von Hannes L. (hannes)


Lesenswert?

Wie wäre es mit einem preiswerten fertigen Voicemodul?
http://www.voicemodul.de/article.htm?cat=1&tit=Voice-%20und%20Soundmodule

...

von Martin (Gast)


Lesenswert?

Hallo,

also ich habe mir dieses Modul von ELV geholt, das is richtig klasse für 
den Preis:

http://www.elv.de/mp3-sound-modul-msm-2-komplettbausatz.html

MfG Martin

von leinad R. (leinad2)


Lesenswert?

Gut da hab ich ja wiedermal einiges zum nachlesen :D

Ich würde mir nur sehr ungerne ein fertiges Modul kaufen, da ich den 
Wecker ja eig. basteln will damit ich etwas über Mirkrocontroller lerne 
:-)

von Karl H. (kbuchegg)


Lesenswert?

Mach dir da mal keine Sorgen. Du hast noch genug zu tun und zu lernen.

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.