03-Show (USB MP3-Player per Discovery-Board)


Dieses Projekt macht aus dem STM32F4-Discovery-Board ein USB MP3-Player.

Die MP3 Files müssen alle in einem Ordner auf dem USB-Stick gespeichert sein.
(In der Demo in “Root”, aber im H-File kann auch ein Ordnername angegeben werden)

Nach dem einschalten und dem einstecken des USB-Sticks am Discovery-Board werden automatisch alle MP3 Files hintereinander abgespielt.

Durch drücken vom User-Button kann zum nächsten MP3 gesprungen werden.

Hier der komplette CooCox-Projektordner zum download :

Show_03_MP3_Player

Hier ein MP3-File zum download :

skinny_mp3


26 Antworten auf 03-SHOW (USB MP3-Player per Discovery-Board)

  1. Martin Krupicka sagt:

    Guten Tag,

    ich komme aus der Tschechischen Republik also entschuldigen Sie meine schreckliche Deutsch, bitte. Ich habe diesen Projekt mit STM32F4 Discovery versuchen aber es arbeitet nicht. Build und debugging ist fertig ohne die Probleme, aber es spielt die mp3s nicht. Gibt es etwas, dass ich zuerst mit der Code machen muss? Oder gibt es ein spezielles Format fur die mp3 Namen? Danke schon.

    Mit herzlichen Grussen Martin Krupicka

    • admin_ub sagt:

      die MP3s müssen direkt im “Root” vom Stick liegen…also nicht in einem Unterordner. Die Namen sollten 8.3 Format sein also z.B. “Song1.mp3″. Das Format der MP3s muss 44,1kHz, Stereo sein !!
      Hinweis : im Demo-53 : http://mikrocontroller.bplaced.net/wordpress/?page_id=436 ist ein Demo-MP3 dabei…das kann mit meinem Fileconverter von “C” in “MP3″ zurückgewandelt werden…das läuft zu 100%.

  2. Simon sagt:

    Guten Tag,

    bin stm32f4Discovery Einsteiger, und wollte dieses Projekt probieren… Leider funktioniert es nicht! Die mp3′s sind genau so vorhanden wie du sie beschrieben hast (Stereo, 44,1kHz …). Beim kompilieren gab es auch keine Fehler! Nur beim anschließen des USB Stick’s hört man bei meinen angeschlossenen Kopfhörern nichts! In welchen Format muss der USB Stick formatiert werden? Was kann sonst noch falsch sein?

    Danke Simon

    • admin_ub sagt:

      probier erst mal ein anderes Projekt aus : Demo-32:
      http://mikrocontroller.bplaced.net/wordpress/?page_id=383
      damit kannst du die Hardware erstmal prinzipiell testen.
      Wenn alles funktioniert, leuchtet da die grüne LED und auf dem Stick wird eine Text-Datei mit ein paar Texten angelegt die du am PC überprüfen kannst. Melde dich nochmal ob das geht.

      • Simon sagt:

        Hallo,
        einmal Danke für die schnelle Antwort!
        Soweit würde alles funktionieren! Es leuchtet die Grüne LED und es wird eine Text Datei erstellt mit folgendem Inhalt:
        “Test der WriteString-Funktion
        hier Zeile zwei
        ENDE”
        Kann sein, dass es mit der Größe (ca. 9MB pro Lied) der Audio Datei zusammenhängt? Oder mit der Bitrate (320kbit/s)?

        Danke Simon

        • admin_ub sagt:

          bin mir nicht sicher woran das liegt, ich hab hier jetzt ein MP3 hochgeladen das zu 100% laufen muss. Vlt erkennst du am vergleich einen Unterschied.

          • Simon sagt:

            Hallo,
            Danke für deine Hilfe! Mit dem Mp3 hat es sofort funktioniert! Ich habe mit meinen Mp3s noch ein bisschen herumexperimentiert und konvertiert und auch zum laufen bekommen!

            Danke
            Simon

  3. phu vo sagt:

    Hi ad,
    I’m trying to convert your project to keil, but i doesn’t work.
    Do you have a keil verion of this project ?
    Phú.

    • admin_ub sagt:

      no, sorry.

  4. tunjow sagt:

    thanks for the code!

  5. Ersan sagt:

    Hi,
    How can I make this work on stm32f429I discovery? There is not a plug like in stm32f4 discovery board. How can I configure pins for that? I’d be glad if you could help me.
    Regards

    • admin_ub sagt:

      the easiest way is … buy a STM32F407-Disco Board :-)
      you need some kind of hardware to connect your headphone and to create and filter the sound. I am not sure if the I2S pins free to add an external CS43L22. You can’t use the two DACs for the output because only one is free. Two PWM-Channels are possible but here you need a hardware filter too. So…keep it simple and spent 10 bucks for a ready solution.

  6. Karl sagt:

    Hallo, habe probiert die Libs für das LCD Display SSD1289, den Touchcontroller ADS7834, LCD_Font, LCD_Graphic in dieses Projekt einzufügen. Funktioniert auch recht gut, bis auf den Touchscreen, der einfach nicht laufen will!
    Meine main zum testen des Touchscreens:
    SystemInit();
    UB_USB_MSC_HOST_Init();
    UB_MP3Player_Init();
    UB_LCD_Init(); // Init vom LCD
    UB_Touch_Init();
    UB_LCD_SetMode(LANDSCAPE);
    UB_LCD_FillScreen(RGB_COL_BLUE);
    while(1)
    {
    if(Touch_Data.status==TOUCH_PRESSED)
    {

    UB_LCD_SetCursor2Draw(Touch_Data.pos.xp,Touch_Data.pos.yp);
    LCD_RAM=RGB_COL_RED;
    }
    }
    An was kann es liegen?

    Gruß

    • admin_ub sagt:

      was liefert den “UB_Touch_Init” für einen Rückgabewert ? prüfe nochmal alle 5 Leitungen vom Touch.
      Versuch zuerst mal das Demo_09 zum laufen zu bekommen (da ist nur der Touch und das Display drinn)

      • Karl sagt:

        In diesem Teil der Init gibt es den Fehler, also die werte stimmen nicht überein und die if wird übersprungen!
        // Test ob Messung erfolgreich
        if((Touch_Kal.raw.xp<=0x0FFF) && (Touch_Kal.raw.yp<=0x0FFF)) {
        ret_wert=SUCCESS;

        // Init vom Timer
        P_Touch_InitTIM();

        // Init vom Interrupt
        P_Touch_InitNVIC();
        }

        Bei der Demo 09 passt alles!

        • admin_ub sagt:

          vlt sind irgenwelche Pins vom Touch durch das restliche Programm doppelt belegt. Da musst du wohl Fehlersuchen an der Library liegt es nicht.

          • Karl sagt:

            Ja PD4 hängt am LCD Display RD und am Reset bim USB host. Kann es daran liegen, auch wenn es nicht direkt etwas mit dem Touch zu tun hat?

  7. Hợp sagt:

    this’s awesome. thank u so so much :D

  8. Hop sagt:

    Hello there,
    Thank for your code :)
    It work fine. But can u tell me how can this project play mp3 file?
    I thought it uses DAC to convert from Digital-to-Analogue but i dont find this function?

    • admin_ub sagt:

      sound output is the 3,5mm Mini-Jack (CN4) connected to sound-dac CS43L22.
      In the project the lo-level library “cs43l22_mp3.c” is used to play the sound.

      • Hop sagt:

        thanks for your answer :D i can ask one more question :D Im just a beginer in stm32. i dont find the function which turn on DAC. Can u tell me? thank u again :D

        • Cong sagt:

          Thanks for your code. I have one question. in file stm32_ub_mp3Player.c line 100 why delay must be bigger than 10000? if users click user button when delay<=10000 it wont play next song? can u tell me? Im just very beginer :D

          • admin_ub sagt:

            thats a software debounce function. you can use a smaller number but at some point you skip songs because of the bouncing.

        • admin_ub sagt:

          @Hop, please use the debugger to step to the init process.
          DAC setup is in “EVAL_AUDIO_Init”

  9. Christian Julius sagt:

    Hi,
    wie wäre es mit einer Lib für 433 Mhz ASK Module? Ich überlege schon die RadioHead als Grundlage zu nehmen. Und dann noch ein Tip: Die Libs wären unverändert verwendbar, wenn die Pins, Timer, SPI Nummer usw. durch #define überschrieben werden könnten und nicht im Sourcecode liegen würden.

    #ifndef LCD_PORT
    #define LCD_PORT GPIOD
    #endif

    Oder so :-)

    • admin_ub sagt:

      solch ein Modul habe ich nicht und blind programmieren kann ich noch nicht.


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert