Forum: Mikrocontroller und Digitale Elektronik Mp3 von Sd Karte. Adressen


von Nils T (Gast)


Lesenswert?

Hallo,
Das Endziel ist es, die Musik von der SD Karte ab zu spielen.
Da ich mit der SD Karte keine Erfahrung habe, wollte ich fragen, wie ich 
die Adressen erfahre?
Ich kopiere eine MP3 datei auf eine leere Karte.
Wie kann ich jetzt erfahren, bei welcher Adresse ich die Daten lesen 
soll?
Danke

von Mike R. (thesealion)


Lesenswert?

Ich rate mal:

Du willst die MP3 mit einem PC auf die Karte kopieren und dann mit einem 
µC wieder abspielen?

Wenn ja, dann soltest du dich mal mit Dateisystemen (bei SD Karten z.B. 
FAT) beschäftigen.

von Falk B. (falk)


Lesenswert?

Das steht im FAT.

https://de.wikipedia.org/wiki/File_Allocation_Table

Es gibt aber schon diverse Projekte, die eben das tun.

http://www.elm-chan.org/works/sd20p/report.html

Solche Module gibt es auch fertig zu kaufen.

von Nils T (Gast)


Lesenswert?

Es ist also einfacher die Datei selbst auf die Karte zu kopieren, damit 
man weiß, wo sich was befindet?

von c-hater (Gast)


Lesenswert?

Nils T schrieb:

> Das Endziel ist es, die Musik von der SD Karte ab zu spielen.
> Da ich mit der SD Karte keine Erfahrung habe, wollte ich fragen, wie ich
> die Adressen erfahre?

Aus dem Dateisystem. Genau dazu gibt es das.

> Ich kopiere eine MP3 datei auf eine leere Karte.
> Wie kann ich jetzt erfahren, bei welcher Adresse ich die Daten lesen
> soll?

Du liest den Header des Mediums, um die Adresse der grundlegenden 
Dateisystemstrukturen zu ermitteln. Dann liest du diese Strukturen und 
interpretierst sie. Der ganze Rest hängt allein von eben diesem 
Dateisystem ab.

von Nils T (Gast)


Lesenswert?

Mit welchem Tool kann man die Datei (egal ob mp3 oder sonst was) per COM 
Schnittstelle zum uC übertragen?
Dann würde ich einfach die Datei Byte für Byte einlesen und auf die SD 
Karte platzieren.
Oder ich das der falsch Weg?
Mir geht es momentan primär um das Lesen, also möchte ich nicht zu viel 
Kraft in Dateisystem investieren.

von Peter II (Gast)


Lesenswert?

Nils T schrieb:
> Oder ich das der falsch Weg?

ja,

warum speicherst du nicht Byte für Byte von deinem PC auf die SD-Karte?

von Daniel A. (daniel-a)


Lesenswert?

Peter II schrieb:
> Nils T schrieb:
>> Oder ich das der falsch Weg?
>
> ja,
>
> warum speicherst du nicht Byte für Byte von deinem PC auf die SD-Karte?

Unter Linux get das mit:
1
dd if=[/pfad/zur/datei] bs=1 skip=[offset_einsetzen] of=/dev/[name_des_sdkartendevicefiles]

PS: nicht das falsche Device überschreiben :)

von Nils T (Gast)


Lesenswert?

Bis jetzt habe ich mit SD Karte nicht mehr als ein normaler "user" zu 
tun gehabt.
Also Karte rein, Video drauf kopieren und woanders anschauen.

Sonst in keinem Elektronikprojekt benutzt.
Deswegen klingt
>warum speicherst du nicht Byte für Byte von deinem PC auf die SD-Karte?
für mich leider nicht verständlich :(

Ich weiß momentan, dass die Karte per SPI gelesen und beschrieben wird.
SPI beherrsche ich dagegen bestens.

von Stefan F. (Gast)


Lesenswert?

Du willst sicher nicht einfach nur den Dateieinhalt über einen COM Port 
an den µC senden. Denn die Datei soll ja auch einen Namen haben und 
einen Eintrags ins Inhaltsverzeichnis bekommen. Eben dazu dienst das FAT 
Filesystem.

Es gibt zwei Standard Protokolle zur Übertragung, beide sind USB basiert 
und daher für Hobbyprogrammierer eher nicht zugänglich.

Aber du kannst Dir ein eigenes Übertragunstool programmieren.

von Nils T (Gast)


Lesenswert?

Ich habe auch noch so ein Teil hier liegen: S25FL164K
http://www.cypress.com/file/196886/download

Das ist praktisch sogar noch besser als die SD Karte.
Bleibt nur noch die Frage, wie ich die Daten da rein bekomme.

Was ich einfach umsetzen könnte, wäre Byte per UART empfangen und per 
SPI im Flash speichern.

Es hackt aber an der Stelle, dass ich kein Ansatz habe, wie ich die 
Datei Byte für Byte verschicke. Dateiname ist unwichtig.

von Peter II (Gast)


Lesenswert?

Nils T schrieb:
> Es hackt aber an der Stelle, dass ich kein Ansatz habe, wie ich die
> Datei Byte für Byte verschicke. Dateiname ist unwichtig.

du kannst doch wohl Programmieren oder nicht?

Datei öffnen
com-öffnen
while( !Ende)
   Byte von Datei lesen
   Byte auf Com schreiben



eventuell reicht es ja schon von der Kommandozeile zu schreiben

cat Datei.mp3 > COM2

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.