PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Audio Datei auf den AVR Laden und abspielen. (eeprom)



Prophet05
06.12.2006, 10:13
Moin,

wir machen in der Schule gerade Projektarbeit. Unser Lehrer möchte unkomprimierte Audiodateien auslesen und analysieren. Wir haben uns dazu entschieden das wir die Audio datei auf einen AVR laden und dann über einen lautsprecher ausgeben. Die hardware ist kein problem, die haben wir uns bereits durchdacht.
Das eigentliche Problem liegt darin das wir keinen schimmer haben wir wir die audio datei in den eeprom speicher bekommen. Ich habe zwar in diesem Tutorial (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial) gelesen wie man den eeprom zur laufzeit ausliest und beschreibt. dort steht ebenfalls wie ich einzelne vairbalen über eine .eep datei in in rein lade allerdings fragen wir und wie wir unsere audiodatei dort hineinladen können. Könnt ihr uns helfen? Das auslesen uns alles andere sollte kein problem sein wir müssen nur irgendwie die audiodatei in eine gescheites speicherabbild (.eep) umwandlen.

Gruß, Prophet05

PicNick
06.12.2006, 13:31
Du mußt von einer WAV-File den Datenteil als WAV.EEP speichern.
(oder .BIN)
Manche WAV-Editoren können auch freiwillig im RAW-Format, also ohne RIFF-Chunks speichern.
Das dann mit Pony oder sowas auf den COntroller.

SIGINT
06.12.2006, 13:39
Und wie viele Millisekunden Audio willst du abspielen?!?!? Selbst der ATmega128 hat nur 4K EEPROM-Speicher... das reicht gerade für ein paar Sekunden. Mein Tip: Häng eine MMC oder SD Karte an den AVR und speicher da die Audiodateien drauf. Routine für MMC gibts massenweise im Netz.

Gruß,
SIGINT

Prophet05
06.12.2006, 14:04
Du musst von einer WAV-File den Datenteil als WAV.EEP speichern.
(oder .BIN)
Manche WAV-Editoren können auch freiwillig im RAW-Format, also ohne RIFF-Chunks speichern.
Das dann mit Pony oder sowas auf den COntroller.
Wie speichere ich es den als *.EEP? Soll ich mir ein Programm schreiben welches alles was ich aus der audio datei haben will in eine neue binäre datei schreibt und die als eep benennt?


Und wie viele Millisekunden Audio willst du abspielen?!?!? Selbst der ATmega128 hat nur 4K EEPROM-Speicher... das reicht gerade für ein paar Sekunden. Mein Tip: Häng eine MMC oder SD Karte an den AVR und speicher da die Audiodateien drauf. Routine für MMC gibts massenweise im Netz.
Wir haben vor die datei herunterzubrechen. Wir werden z.B. nur mono sound nehmen und 8bit anstatt 16bit. Ausserdem werden wir die sample rate stark runterschrauben. Wir vermuten das wir schon ein "Hallo!" oder einen mini klingelton ausgeben können.
In erster linie geht es auch ersteinmal darum überhaupt die daten in den controller zu bekommen und dann zu verarbeiten.

vajk
06.12.2006, 14:22
.. MMC oder SD Karte an den AVR und speicher da die Audiodateien drauf. Routine für MMC gibts massenweise im Netz.

Also "Massenweise" hab ich nicht gemerkt .. habe bisher zwei von drei Varianten bisher probiert und mir ist nicht gelungen, mit meinen SD-Karten irgendwas drauf abzulegen oder wieder zu lesen. Die dritte Variante möcht ich noch testen ... (wobei ich C-Quellen brauche).

Prophet05
06.12.2006, 14:24
Ohh, uns ist gerade aufgefallen das wir nur ein halbes kByte eeprom haben. Wir haben uns überlegt das wir die wave über ein kleines programme in einen header umwandeln der ein array mit allen bytes der wave enthält. Das können wir dann mit dem programm bequem im flash speicher lagern. Das sollte doch gehen oder?

Von lösungen mit zusätzlichem speicher wollten wir eigentlich fern bleiben.

SIGINT
06.12.2006, 17:23
@vajk: "Ergebnisse 1 - 10 von ungefähr 283.000 für avr mmc. (0,19 Sekunden)" ---> Sind das genug Links ;-) .... Ok, die meisten werden wahrscheinlich die selbe Sourcequelle verwenden... aber mehr als 3 Varianten dürfte es schon geben. Bei einem geb ich dir aber leider recht:Alle Varianten die ich kenne unterstüzen nur das Lesen von Dateien. Wahrscheinlich benötigt man einiges an RAM um den FATeintrag zu erstellen... bin mir da aber nicht sicher.

@Prophet05: Tabellen im Flash abzulegen soll eine gängige Technik sein... ich hab das aber bis jetzt nur mit PICs gemacht.

Gruß,
SIGINT

Prophet05
06.12.2006, 18:03
Gut dann werden wir es wahrscheinlich so machen! Vielen dank für eure hilfe! Melde mich wenn es noch fragen gibt.

asuro_freak2
06.12.2006, 18:10
hi
ich denke du solltest das hier mal lesen
http://ag-vp-www.informatik.uni-kl.de/Lehre/Praktikum/VoiceHack/Voice.html

Prophet05
06.12.2006, 21:07
Vielen dank! Die seite ist wirklich hilfreich!