Guten Tag,
auch ich will mich einmal hier zu Wort melden.
Ich versuche seit Tagen korrekte MP3-Dateien an einen VS1011 im NewMode
zu senden.
Ich kann Register auslesen, den Sinus Test durchführen und vernehme ein
Knacken, Rauschen und abgehackten Lärm in den Lautsprechern, wenn ich
die Audio-Daten sende.
Ich denke das Problem liegt also eindeutig in dem Code, den ich zum
Senden der Dateien verwende.
Ich habe bisher drei SD/MMC Libraries ausprobiert, sie alle
funktionieren wirklich wunderbar, nur leider nicht für meine Zwecke.
Ich initialisierie folgendermaßen:
HardReset->Softreset->SetzeModus(SDINEW)->Setze ClockDoubler->Schreibe
ins AUDATA register
Wie gesagt, der Sinus Test funktioniert, der Quarz schwingt also?
Erster Versuch (Library von Daniel R. siehe:
http://www.mikrocontroller.net/articles/AVR_FAT32:
1 | void Play()
|
2 | {
|
3 | unsigned char file_name[20]="test mp3";
|
4 | if(MMC_FILE_EXISTS == ffopen(file_name))
|
5 | {
|
6 | //geht super
|
7 | uputs((unsigned char*)"Datei exisitert!\n");
|
8 | // setzen einer Variable und dann runterzählen geht am schnellsten !
|
9 | unsigned long int seek=file.length;
|
10 | //runterspulen
|
11 | while ( seek > 0)
|
12 | {
|
13 | //buffer voll
|
14 | WaitforDREQ();
|
15 | SelectSDI();
|
16 | //32 Byte Blöcke senden
|
17 | for (long i = seek; i > (seek-32); i--)
|
18 | {
|
19 | WriteByteSPI(ffread());
|
20 | }
|
21 | DeSelectSDI();
|
22 |
|
23 | seek = seek - 32;
|
24 | }
|
25 |
|
26 | uputs((unsigned char*)"Dateiende!\n");
|
27 | ffclose();
|
28 | }
|
29 |
|
30 | }
|
Ich höre nichts.
Zweiter Versuch (Library von Ulrich Radig):
1 | Clustervar = 0;
|
2 | if (fat_search_file((unsigned char *)"test.mp3",&Clustervar,&Size,&Dir_Attrib,Buffer) == 1)
|
3 | {
|
4 | uputs("\nDatei gefunden!!\r\n");
|
5 |
|
6 |
|
7 | for (int b = 0;b<52;b++)
|
8 | {
|
9 | fat_read_file (Clustervar,Buffer,b);
|
10 |
|
11 | uint8_t k = 0;
|
12 | WaitforDREQ();
|
13 | SelectSDI();
|
14 | while(k < 512)
|
15 | {
|
16 |
|
17 | WriteByteSPI(Buffer[k]);
|
18 | k++;
|
19 | }
|
20 | DeSelectSDI();
|
21 |
|
22 |
|
23 | }
|
24 |
|
25 | }
|
26 | return;
|
Hier vernehme ich abgehackten Lärm aus den Kopfhörern, der jedoch
schnell wieder vorbei ist. Ich nehme an es handelt sich dabei um einen
Dekodierungsversuch =).
Ich entschuldige mich schon jetzt für meine miserablen Programmierkünste
und wünsche euch allen einen schönen Tag!