AVR tiny2313 und Musikdateien

Hallo liebe/-r Expert/-e/-in,
Ich bin dabei mir so eine Art von einer Fernbedienung zu bauen, nur, dass es keine Sender und Empfänger geben soll, sondern das alles intern passieren soll.

Also zu meinem Problem:
Wie kann ich mit einem AVR Musikdateien abspielen bzw. auch Spiechern, um sie dann abzuspielen?

Ich benutzte ein tiny2313. Er hat 2 KB und 10-20 Mhz.

LG Lucas

P.S.:smiley:anke für die Antworten im Voraus.

einfache Antwort: gar nicht!
Um Musikdateien abzuspielen brauchst du mehr als nur einen 2313. Du kannst dir zwar ein Programm schreiben, das solche abspielt, aber da fehlt noch einiges an Hardware. Ein MP3-Player ist billiger! Eine Möglichkeit wäre, einen Steuerbaren Player zu verwenden (gibts bei ELV: MP3 Sound-Modul MSM2 - €19,95). Warum das Rad neu erfinden?

mfg

Welche Art von Musikdateien willst du denn abspielen?
Wie sieht deine Gesamtschaltung aus?
Wie kommt die Musik in deine Schaltung?
Mit dem 2kB internen RAM kommst du nicht weit. Wie hast du dir das vorgestellt?

Ich weiß, eine Menge Gegenfragen. Wer aber eine gute Antwort will, muss vorher gute Infos liefern.

Ich wollte eigentlich *.wav dateien verwenden
Schaltung: Taster an avr und der gibt dann ein Signal, dass die Musik oder der Sound abgespielt werden soll
Vorstellung: Ich drücke auf einen Knopf und dann wird der Sound bzw. die Musik abgespielt

Zuerst brauchst du mal mehr Speicher.
Selbst bei Mono in Telefonqualität (8kHz Bandbreite ergibt 16000 Samples/Sekunde) bekommst du in deine 2KB rund 0,125s an Sound. Nicht sehr viel.
Für eine Sekunde Sound brauchst du 16KB an RAM. Für CD Qualität in Mono sind es schon 44KB!
Da die AtTinys keine externe Busschnittstelle haben musst du entweder alles zu Fuß machen (wenn genug IOs da sind und es dann noch schnell genug ist) oder die Daten seriell per SPI aus einem FLASH Baustein (z.B. Atmel DATA FLASH) holen. Bei 16000 Samples/s hast du pro Sample 62,5µs (1250 Taktzyklen bei 20MHz) um den Wert zu lesen und auszugeben inklusive der Wandlungszeit des notwendigen DA Wandlers.

danke für deine schnelle Antwort
LG Lucas

Tach Ascawath,

Ich bin dabei mir so eine Art von einer Fernbedienung zu
bauen, nur, dass es keine Sender und Empfänger geben soll,
sondern das alles intern passieren soll.

Ok, das ignoriere ich jetzt mal. Die Anzahl Möglichkeiten, das zu interpretieren, gehen ins unendliche.

Also zu meinem Problem:
Wie kann ich mit einem AVR Musikdateien abspielen bzw. auch
Spiechern, um sie dann abzuspielen?

Wenn du dich auf Software also keine Hardwarecodecs beschränkst bleiben dir bei vertretbarem Aufwand nur die nicht komprimierten Audioformate. Ich habe schon etwas abgefahrene Implementationen von Software mp3 Dekodern gesehen. Allerdings macht das nur auf der mega Serie wirklich Spaß.
Speichern kannst du die tracks natürlich nicht im flash. Theoretisch können die AVRs on-the-run ihr flash verprügeln aber das ist im Rahmen des Speicherplatzes nur eine sehr begrenzte Lösung. Du wirst auf Massenspeichermedien ausweichen müssen. Ein onboard flash wäre denkbar. Bei weitem am häufigsten werden aber SD/MMC Karten eingesetzt. Sie haben den Vorteil hoher Speichermengen und umgehen den µC als schreibende Instanz. Sprich man kann sie zum Hochladen von neuen tracks einfach in den PC stecken.

Ich benutzte ein tiny2313. Er hat 2 KB und 10-20 Mhz.

Dann reduzieren sich alle Möglichkeiten auf ein Szenario. Das Audioformat wird PCM codiertes WAV sein. Für MP3, etc. pp. hat ein tiny nicht genügend rechen power. Stereo wäre bis 16bit möglich. Aufzeichnen kannst du mit dem 2313 allein aber nicht, ihm fehlt der ADC. Du bräuchtest einen externen oder einen anderen µC. Die tracks kämen von einer SD Karte.

Thor

Danke für deine schnelle antowrt

Hallo

In deiner Angabe fehlt zumindest:

Format der Aufzeichnung?
Länge?
Speicher (Wo, Wieviel)?
Und was willst du eigentlich damit anfangen?

Ehm, ok. Also so ich rate mal: ne Art MP3 Player? Ich weiß ja nicht was du mit deiner Fernbedienung die keine ist vorhast aber:

(Vorweg: Ich weiß nicht wirklich ob es mit dem ATtiny geht, aber MP3 z.B. könnte schwierig werden: Dekompression/Decodierung)

Google hat mir mal zu AVR und Musik das ausgespuckt: http://www.mikrocontroller.net/topic/1437
(Ist auch Quellcode mit bei)

Meinerseits würde ich aber für Musik keinen superschmalbrüstigen AVR Tiny mit 8Bit sondern einen AVR 32 Bit verwenden.

(Auf 2KB lässt sich eigentlich nur Code lagern, auf einem PIC24 von Microchip reicht das mitnichten um eine Speicherkarte anzusprechen!!! Meine Komilitonen waren dabei das für einen Datenlogger auf dem PIC24 zu machen, allein der Code der Library für die Speicherkarte (NUR LESEN) war größer. (FAT-Filesystem) )

Ein AVR32 bietet auch je nach Modell eventuell Schnittstellen für Audio-Codecs und auch ein Speicherkarteninterface (Hardwareimplementiert).

Und man kann auch Linux laufen lassen —> MP3 Dekodierung vorhanden.

Einen direkten Musikabspielansatz kann ich dir aber aus dem Stand aber leider nicht liefern.

Hoffe ich konnte dir trotzdem helfen.

Falls du über die AVR32er nachdenkst: Der ISP vom AVR 8Bit reicht nicht zu programmieren des Bootloaders. Wenn du vom Hersteller den Programmer willst brauchst du den AVR JTAG ICE MKII (400€).

Es könnte auch mit dem USBProg von embedded projects gehen, hab den zwar hier, allerdings noch nie dafür ausprobiert, da ich den AVR JTAG Adapter besitze.

Gruß

Cyborg-X1

danke für deine schnelle Antwort

Sorry, da habe ich keinen Plan
Grüße