Skyduino:~#
Articles
Autre, C/C++, programmation, stm32, test

[STM32F4] Démo de l’exemple Wavplayer avec USB Host

Bonjour tout le monde !

Dans un mon précédant article sur la carte STM32F4 j’avais fait une petite vidéo / screencast pour présenter l’exemple wavplayer.

Comme je le précisai à la fin de la vidéo je voulais (re)tester l’exemple wavplayer, mais cette fois si avec le support de l’usb host.
Dans l’exemple précédant j’utilisai le mode « internal », soit la mémoire flash interne, qui bien que volumineuse ne permet de stocker que 5 secondes de musique.
Dans cette nouvelle démo je vais utiliser le mode « usb » pour lire un fichier audio.wav depuis un clef usb.

Sauf que pour lire depuis une clef usb il faut un câble micro usb vers usb host … câble trés classique (mais introuvable) dans le monde de tablettes / téléphones android.

Je suis donc allez chez *bip* (leclerc, oups! fallait pas le dire :)) ou j’ai trouver mon bonheur !
J’avais le choix entre :
– la version micro usb -> usb A femelle,
– ou la version DIY, usb A femelle -> usb B male -> usb B femelle -> usb A femelle -> micro usb.

Je vous laisse imaginer quelle solution j’ai choisi 😉
(Pourquoi faire simple quand on peut faire compliquer !)

Non sérieusement, j’ai pris la solution de difficulté car je faisait d’une pierre deux coups.
Avec ce lot d’adaptateurs je peut aussi brancher des périphérique en usb B sur divers câble usb.

Voila en gros le principe :

Et le résultat final :

J’aime ! Un montage dégueulasse à souhait ! Miam !
(Vous noterez le changement furtif de clef usb, en faite ma clef 16Go est formaté en ntfs, hors il faut un clef formaté en FAT pour la démo. Et comme j’avais des fichiers dessus … voila.)

Et après un petit coup de ST-Link utility, quelques câblages, et une clef usb formaté en FAT (contenant un fichier « audio.wav ») la démo est prête !

La démo :

Tout d’abord au démarage de la carte le fichier audio.wav situé à la racine de la clef est lu sur les hauts parleurs, pendant la lecture la led bleu clignote, signe que tout va bien.

Si on « click » la carte, comprenez « tapez un peu sauvagement dessus », histoire de secouer un peu l’axe Z de l’accéléromètre, cela met en pause (ou relance) la lecture de la musique.

Si on appui sur le bouton « User », la carte passe en mode « enregistrement » depuis le micro intégré à la carte, dés lors la led rouge s’allume et un fichier « rec.wav » est crée sur la clef.
Celui ci est lu (en boucle) dés que l’on appui de nouveau sur le bouton.

Bref c’est un exemple qui donne un aperçu trés intéréssant des performances du STM32F4 !

Et pour ceux qui ont 6 minutes de temps libre voici la vidéo de la démo :

(Petit défi pour les fan d’anime/manga : Quelle est le titre (et l’auteur) de la musique que je lance dans la vidéo ?)

Discussion

18 réflexions sur “[STM32F4] Démo de l’exemple Wavplayer avec USB Host

  1. Bonjour,

    J’aurais bien aimé connaitre le prix des cables usb pour connecter la clé.

    De même quel IDE utilises-tu ? Pour l’instant rien de disponible sous linux semble-t-il.
    Et pour le débogue/programmation, qu’elle est l’appareil que tu connectes ?

    J’ai reçu aujourd’hui ma carte (1ere carte pour moi) mais j’ai rien pour la programmer. Je compte le faire par la clé usb, il y a une application note pour cela, donc achat de cable qui serait meilleur marché qu’une sonde de débogue mais beaucoup plus limité.
    De mon coté j’ai acheté chez Farnell.
    Demain je télécharge un IDE, windows donc, pour commencer à bidouiller. Je me demande lequel est le mieux.

    Publié par STM32F4newbie | 14 mars 2012, 0 h 45 min
    • >> J’aurais bien aimé connaitre le prix des cables usb pour connecter la clé.
      Moins de 2€ sur DealExtrem : http://www.dealextreme.com/p/micro-usb-male-to-usb-female-otg-cable-for-samsung-galaxy-s2-i9100-nokia-n8-more-101894

      >> De même quel IDE utilises-tu ? Pour l’instant rien de disponible sous linux semble-t-il.
      Je n’utilise aucun IDE, j’utilise notepad++ et je compile en console avec un makefile.
      Le compilateur gcc-arm est disponible pour linux/max/windows, il suffit juste d’avoir les fichiers CMSIS fournit par ST pour compiler sur les STM32F4.

      >> Et pour le débogue/programmation, quelle est l’appareil que tu connectes ?
      J’utilise ST-Link utility sous windows, ou https://github.com/texane/stlink sous linux.

      >> J’ai reçu aujourd’hui ma carte (1ere carte pour moi) mais j’ai rien pour la programmer.
      >> Je compte le faire par la clé usb, il y a une application note pour cela, donc achat de cable qui serait meilleur >> marché qu’une sonde de débogue mais beaucoup plus limité.
      Heu … je ne crois pas qu’il y ai de bootloader usb pour les STM32F4 !?

      La seul façon « simple » de programmer une carte Discovery c’est d’utiliser le Debuggeur/Programmeur ST-Link embarqué sur la carte.
      (Voir https://skyduino.wordpress.com/2012/03/08/test-stm32f4-la-nouvelle-generation-darm-cortex-m4-est-dans-la-place/)

      >> Demain je télécharge un IDE, windows donc, pour commencer à bidouiller. Je me demande lequel est le mieux.
      A pars les IDE commerciales de ST je ne connais (pour le moment) aucun IDE compatible STM32F4 …
      Cocoox IDE devrait supporter les STM32F4 dans la prochaine version.
      La meilleur option c’est de compiler en ligne de commande ou par makefile.

      Publié par skywodd | 14 mars 2012, 13 h 01 min
      • Sur le site de ST il y a cette application note : http://www.st.com/internet/evalboard/product/252419.jsp
        AN3990: Upgrading STM32F4DISCOVERY board firmware using a USB key

        Donc normalement c’est possible, j’ai pas encore essayer donc je ne peux pas confirmer. On peut aussi sauvegarder le contenu de la ROM sur la clé USB, ce sera le 1er essai pour moi.

        Je suis pas sûr de tout comprendre pour la programmation avec le ST-Link. Est-ce que tu passes par la connection mini USB qui alimente en courant la carte ?
        Ou bien est-ce que tu as une sonde du type http://www.st.com/internet/evalboard/product/251168.jsp que tu connectes sur le port SWD ? C’est ce que je comprends en tout cas mais dans le readme du lien que tu as mis, le logiciel libre semble indiquer que l’on peut programmer directement via le PC et USB ? Si tu as une telle sonde, combien l’as-tu acheté et où stp ?
        Faut que j’approfondisse la question pour bien comprendre, je suis confus. Le lien que tu m’indiques ne m’a pas aidé, j’ai dû raté l’info.

        J’étais pressé du coup j’ai acheté dans un magasin d’électronique une prise femelle/femelle usb 3euros + un cable de 60cm micro usb vers usb entre 7 et 9 euros. Bref une fortune par rapport au prix de la carte !

        Les IDE préconisés par ST ont tous une version allégé gratuite mais apparemment sont tous limités en ko programmable.

        Merci pour tes liens.

        Publié par STM32F4newbie | 14 mars 2012, 18 h 35 min
  2. >> Sur le site de ST il y a cette application note : http://www.st.com/internet/evalboard/product/252419.jsp
    >> AN3990: Upgrading STM32F4DISCOVERY board firmware using a USB key
    Mais qu’est ce que je suis c*n >_> Je suis pas sûr de tout comprendre pour la programmation avec le ST-Link.
    >> Est-ce que tu passes par la connexion mini USB qui alimente en courant la carte ?
    Le port mini usb (câble blanc dans la vidéo) est relié au ST-Link qui est relié à l’ordinateur.
    C’est le ST-Link qui permet de programmer / débugger le STM32F4 et d’alimenter la carte.
    Le port micro usb est quand à lui directement relié au STM32F4, c’est lui qui doit le gérer.
    Il ne sert à rien d’autre, juste à être utilisé par le programme soit en usb host, soit en usb device.

    >> Ou bien est-ce que tu as une sonde du type http://www.st.com/internet/evalboard/product/251168.jsp que tu connectes sur le port SWD ?
    Non, la sonde ST-Link est intégré dans la carte directement.
    Le port SWD sert justement à utiliser la sonde intégré avec une carte externe comme si tu avait une sonde ST-Link « seul ».

    >> Les IDE préconisés par ST ont tous une version allégé gratuite mais apparemment sont tous limités en ko programmable.
    C’est pour ça que j’utilise un compilateur opensource en ligne de commande, et bientôt (je l’espère) la prochaine version de Coocox IDE.

    Publié par skywodd | 14 mars 2012, 19 h 22 min
  3. Bonjour,
    j’ai testé le programme « Démo de l’exemple Wavplayer avec USB Host » et ça marche bien mais avec une seule séquence nommé audio.wav !
    Je veut bien tester cet exemple avec plusieurs séquences !
    Pouvez vous m’aidez pour trouver la bonne solution ?

    Publié par amrouch | 19 avril 2012, 21 h 11 min
    • Dans main.h ligne 58 il y a un define pour changer le nom du fichier, mais l’exemple a était conçu pour lire un seul fichier.

      Il faudrait reprendre tout le code, enlever les parties inutile (lecture depuis la flash, enregistrement, …) et refaire quelque chose de propre.

      Et très franchement je n’est pas envie de me casser la tête a reprendre tout le code.

      Publié par skywodd | 19 avril 2012, 21 h 29 min
      • Bonsoir,
        merci bien pour votre réponse en fait j’ai un projet universitaire dans lequel j’utilise un stm32f4 ,
        j’ai essayé de modifier le programme comme vous m’avez dit et j’ai enlevé les parties inutile et ça marche bien!!maintenant je peut lire une fichier audio.wav sans faire un enregistrement!!c’est vrai que c’est dure de trouver la bonne solution pour jouer plusieurs fichiers wav !!
        j’espère que vous m’aidez parce que franchement je suis en retard et j’ai une autre tache a faire!!
        Mon but est de lire la séquence suivante suite a l’appui sur le bouton user..
        j’espère que c’est claire !!
        j’espère que ça ne vous dérange pas
        et merciiiiii….

        Publié par amrouch | 20 avril 2012, 18 h 56 min
  4. « je suis en retard et j’ai une autre tache a faire!! »
    « j’espère que c’est claire !! »

    Amrouch, tu n’as pas l’impression d’abuser ?
    Tu as un travail universitaire à faire, pas nous. Ce sont tes connaissances/capacités qui sont requises, non celle de la communauté.
    On peut aider, mais pour cela il faut savoir le demander.

    Publié par Olivi3r | 8 juin 2012, 15 h 49 min
  5. Bonjour,
    j’essai de faire tourner la demo audio avec une cle usb, le programme est chargé avec STlink V2( logiciel et drivers windows 7 mis à jour) . La clé usb est connectée via un câble usb MicroA mâle-> USBA mâle->usb A femelle- femelle-> clé USB .La cle usb est formatée Fat16 standard 30Mo.( le fichier wav est lu normalement sur windows à partir de la clé). Mais aucun son dans les écouteurs de la carte F4 discovery. A noter que le programme tournant avec l’extrait de son en flash fonctionne très bien.
    le nom du fichier sur la clé est « audio.wav » ( codage PCM,48khz,16bit,2 canaux) .( un seul fichier sur la clé).
    L’insertion et la déconnexion de la clé sont détectées par la carte, LD7 est allumée .LD4 clignote,LD2 en rouge permanent, LD1 rouge permanent.
    J’ai essayé plusieurs cartes F4 discovery et c’est la même chose pour toutes.
    quelqu’un a-t-i eu les mêmes problèmes ?
    merci de votre aide.

    Publié par jean-claude | 28 février 2013, 12 h 49 min
  6. j’ai une carte stm32f4 et je veut tester la version démo de la lecture du fichier wav mais j’arrive pas a telecharger l’exemple Wavplayer avec USB Host

    Publié par bechir | 1 février 2014, 11 h 39 min
  7. j’ai essayer de tester ce code mais lors de l’ouverture des fichier avec l’ide iar j’ai remarquer que les fichiers usb_bsp.c usbh_usr.c et wave_recorder.c ne sont pas reconnus ???

    et j’ai pas pu lancer la lecture de la music à partir du flash disque

    Publié par bechir | 24 février 2014, 18 h 41 min
  8. Bjr, tuto trés sympa. Merci pour le post.
    Cependant, je tente de faire fonctionner ce soft avec l’IDE Coocox et je suis confronté sans cesse à des probs de dépendance. Il me manque toujours une déclaration, un fichier une directive de compilo …
    Est ce que quelqu’un aurais réussi à le faire tourner sous CoIDE ?
    Merci

    Publié par Thierry | 25 juin 2015, 8 h 36 min
  9. Ici, c’est + clair pour CoIDE (http://www.labsud.org/stm32f4-discovery-compiler-les-demos-avec-coocox-ide-et-code-sourcery/) mais ca ne fonctionne pas plus 😦
    Les 4 leds sont éteintes

    Publié par Thierry | 30 juin 2015, 13 h 11 min
  10. Le format du fichier WAV semble mauvais, je l’ai pourtant modifié en 44.1khz tous type et ca ne donne rien …

    Publié par Thierry | 2 juillet 2015, 7 h 56 min
  11. bo,jour à tous!! je veux jouer de l musique avec le stm32f100. je ne sais pas comment procéder. j’ai voulu me servir du programme avec le st32f4 mais je ne le trouve pas. si quelqu’un peut m’en procurer cela me ferait plaisir

    Publié par boli laetitia | 25 novembre 2015, 13 h 02 min

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.