Je suis occupé a expérimenté de l’USB–Audio sur microcontrôleur avec LPC1769 cortex-M3.
Le but est d’avoir contrairement aux modules existants de l’I2S slave, et non master, à 96KHz 24bits pour pouvoir être directement connecté au DSP du DSPiy sans passer par la carte D_In qui joue à resynchroniser 2 bus I2S alors que l’USB Audio est par définition déjà asynchrone.
On y gagne en jitter qui est réduit au seul du DSP et simplification hardware.
Par contre il faut sortir de la source en 96K (éventuellement en 48K) en 16 ou 24 bits.
Pour le moment, sous Win7 la carte est reconnue sans driver additionnel et je sais lui donner les fréquences que je désire.
Par contre pas moyen de lui faire comprendre que je désire du 24bits, problème de driver ou de descriptor de la part de mon device USB ?
|
16 messages • Accèder à une page • 1, 2
|
Modérateurs: Modération Forum Installations, Modération Forum DIY, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités
USB-Audio expérimental pour DSPiy
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
thierryvalk a écrit:Je suis occupé a expérimenter...
Infatiguable!!!!!
- Philby
- Messages: 9819
- Inscription Forum: 12 Mar 2001 2:00
- Localisation: 33
On peut le dire ....infatiguable
La configuration dans mon profil
Jean-Philippe
- razzortec
- Membre HCFR
- Messages: 1571
- Inscription Forum: 05 Fév 2008 22:25
- Localisation: 68
Et on est pas nombreux à pouvoir l'aider... Tazz, revient !!!
- androuski
- Messages: 23172
- Inscription Forum: 14 Mar 2007 14:43
- Localisation: C'est un trou, mais rempli de pinard, donc ça me va.
En fait je connais très mal l'USB et vu que c'est en faisant que l'on apprend ...
On dispose de librairies pour le uC, il suffit d'assembler puis tenter de comprendre pourquoi ça ne fonctionne pas.
On a plein de doc sur USB.org , mais très indigeste.
On dispose de librairies pour le uC, il suffit d'assembler puis tenter de comprendre pourquoi ça ne fonctionne pas.
On a plein de doc sur USB.org , mais très indigeste.
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
Oui, j’ai des problèmes similaire, Windows ne comprend pas que le Device change de caractéristiques sous le même ID.
Ça commence à fonctionner de ce côté, mais maintenant je dois tout adapter pour pouvoir recevoir ces 24bits.
Par contre une question qui me vient au vu du peux d’infos sur le mode 24bits et mon ignorance dans le domaine dématérialisé, il y a bien un intérêt à avoir du 24 bits ?
Ça commence à fonctionner de ce côté, mais maintenant je dois tout adapter pour pouvoir recevoir ces 24bits.
Par contre une question qui me vient au vu du peux d’infos sur le mode 24bits et mon ignorance dans le domaine dématérialisé, il y a bien un intérêt à avoir du 24 bits ?
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
thierryvalk a écrit:Par contre une question qui me vient au vu du peux d’infos sur le mode 24bits et mon ignorance dans le domaine dématérialisé, il y a bien un intérêt à avoir du 24 bits ?
oui
parceque des gens gèrent le volume sur le pc.
parceque des gens commencent a avoir de la musique enregistrée nativement en 24/96 ou même en 24/192
je peux pas aider non plus pour faire comprendre a windows ce qu'il doit.
si j'ai bien compris, ton idée serait de recevoir l'usb audio directement sur la prise USB uart du DSPiy.
le "petit" µC aura assez de ressources pour recevoir de l'usb audio en 24/96 et faire le reste de sa surveillance en meme temps ?
- alkasar
- Messages: 11517
- Inscription Forum: 29 Nov 2005 22:47
- Localisation: Neuf deux
T'es en USB audio class 1 ou 2 ?
Si ça marche sous windows sans drivers ça doit être de la class 1...
Branche le sur un linux et regarde les logs noyau (alsasound), tu auras des infos. Tu peux examiner à peu près tout ce que renvoie la carte.
Essaie 32 bits au lieu de 24.
> parceque des gens gèrent le volume sur le pc.
L'USB envoie l'information de volume au DAC (le volume global que tu règles avec le mixer ou le driver) donc le DAC peut gérer le volume...
> le "petit" µC
Petit ? Un LPC1769 ?
Si ça marche sous windows sans drivers ça doit être de la class 1...
Branche le sur un linux et regarde les logs noyau (alsasound), tu auras des infos. Tu peux examiner à peu près tout ce que renvoie la carte.
Essaie 32 bits au lieu de 24.
> parceque des gens gèrent le volume sur le pc.
L'USB envoie l'information de volume au DAC (le volume global que tu règles avec le mixer ou le driver) donc le DAC peut gérer le volume...
> le "petit" µC
Petit ? Un LPC1769 ?
- peufeu
- Messages: 71
- Inscription Forum: 24 Avr 2013 8:34
j'ai cru que c'était le µC actuel du DSPiy. désolé.
l'usbaudio peut envoyer l'info de volume pour que le "dac" ( le receveur USB plutot) le gère mais la plupart des gens ne l'utilisent pas ainsi. On gère le volume coté player. Cela dit, la question de thierry c'était "est ce utile d'envoyer du 24 bits" sous entendu "pourquoi me casser la tete si 16 bits est suffisant". Je répond que, de mon avis, c'est un gros plus de passer les 24 bits.
l'usbaudio peut envoyer l'info de volume pour que le "dac" ( le receveur USB plutot) le gère mais la plupart des gens ne l'utilisent pas ainsi. On gère le volume coté player. Cela dit, la question de thierry c'était "est ce utile d'envoyer du 24 bits" sous entendu "pourquoi me casser la tete si 16 bits est suffisant". Je répond que, de mon avis, c'est un gros plus de passer les 24 bits.
- alkasar
- Messages: 11517
- Inscription Forum: 29 Nov 2005 22:47
- Localisation: Neuf deux
Le µC actuel n’a pas l’USB, il utilise un convertisseur externe USB->UART.
Mais il existe avec l’USB : le LPC11U14 mais pas d’interface I2S.
Le LPC1769 (comme noté post 1) lui est cortex-M3 à 120MHz max. Les cortex-M4 sont équivalents avec des instructions DSP.
Je travaille sur une petite carte LPCXPRESSO qui dispose par exemple d’une interface Ethernet.
Pour en revenir à nos moutons, oui c’est bien la classe1.
Linux, bonne idée mais je ne maitrise pas encore.
Pour le moment Windows voit bien ma carte en 24bits, par contre plus de 16bits.
Apparemment pas le choix, pour les fréquences on dispose d’une petite table décrivant les différentes fréquences acceptées mais pas pour la longueur.
Très bonne idée de passer en 32bits, car c’est le problème actuel, l’I2S est en 32bits (pour du 24bits on met 8bits à zéro) et j’ai donc des soucis pour remettre mes data en ordre dans le buffer d’échange.
Et en effet la classe USB permet d’envoyer pleins d’infos dont le volume et même les EQ.
Pour la question du 16bit <> 24bits, c’est numériquement une énorme différence, mais le passage au 24bits c’est surtout une meilleure gestion du bruit et plus de souplesse en traitement.
Donc je reste tout de même perplexe.
Mais il existe avec l’USB : le LPC11U14 mais pas d’interface I2S.
Le LPC1769 (comme noté post 1) lui est cortex-M3 à 120MHz max. Les cortex-M4 sont équivalents avec des instructions DSP.
Je travaille sur une petite carte LPCXPRESSO qui dispose par exemple d’une interface Ethernet.
Pour en revenir à nos moutons, oui c’est bien la classe1.
Linux, bonne idée mais je ne maitrise pas encore.
Pour le moment Windows voit bien ma carte en 24bits, par contre plus de 16bits.
Apparemment pas le choix, pour les fréquences on dispose d’une petite table décrivant les différentes fréquences acceptées mais pas pour la longueur.
Très bonne idée de passer en 32bits, car c’est le problème actuel, l’I2S est en 32bits (pour du 24bits on met 8bits à zéro) et j’ai donc des soucis pour remettre mes data en ordre dans le buffer d’échange.
Et en effet la classe USB permet d’envoyer pleins d’infos dont le volume et même les EQ.
Pour la question du 16bit <> 24bits, c’est numériquement une énorme différence, mais le passage au 24bits c’est surtout une meilleure gestion du bruit et plus de souplesse en traitement.
Donc je reste tout de même perplexe.
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
Merci peufeu.
J’ai modifié mon descriptor en mettant 32bits, subframe à 4 et adapté le buffer d’échange.
Désinstallé le périphérique, lancé le débug et j’ai maintenant à l’oscillo connecté sur l'I2S un signal qui ressemble bien à 2 canaux avec 24bits.
Par contre Windows ne me permet plus de changer de fréquence, il est fixe sur 32bits 96K en grisé.
C’est pas dérangeant en soit mais étrange.
Prochaine étape brancher un DAC et générer un sinus pour voir si tous ces datas sont en place.
J’ai modifié mon descriptor en mettant 32bits, subframe à 4 et adapté le buffer d’échange.
Désinstallé le périphérique, lancé le débug et j’ai maintenant à l’oscillo connecté sur l'I2S un signal qui ressemble bien à 2 canaux avec 24bits.
Par contre Windows ne me permet plus de changer de fréquence, il est fixe sur 32bits 96K en grisé.
C’est pas dérangeant en soit mais étrange.
Prochaine étape brancher un DAC et générer un sinus pour voir si tous ces datas sont en place.
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
thierryvalk a écrit:Merci peufeu.
J’ai modifié mon descriptor en mettant 32bits, subframe à 4 et adapté le buffer d’échange.
Désinstallé le périphérique, lancé le débug et j’ai maintenant à l’oscillo connecté sur l'I2S un signal qui ressemble bien à 2 canaux avec 24bits.
Par contre Windows ne me permet plus de changer de fréquence, il est fixe sur 32bits 96K en grisé.
C’est pas dérangeant en soit mais étrange.
Prochaine étape brancher un DAC et générer un sinus pour voir si tous ces datas sont en place.
Je ne sais pas si en USB1 tu as le bSubslotSize dans le descripteur de format qui te permet de spécifier le nombre d'octets par sample. Par exemple avec bBitResolution=24 et bSubslotSize =4 il va mettre 24 bits dans 4 octets... donc largement plus pratique à manipuler (mais mange plus de bande passante, pas un problème en USB2).
Si windows est verrouillé sur 96k c'est dommage de passer par un resampling alors que t'es pas obligé...
- peufeu
- Messages: 71
- Inscription Forum: 24 Avr 2013 8:34
Oui, j’ai bien le bSubslotSize qui est nommé dans mon descripteur SubFrameSize.
Le verrouillage à 96K n’est pas un gros problème vu qu’au final je désire cette fréquence pour être compatible avec le DSPiy qui fonctionne en 96K.
J’ai regardé les produits XMOS qui sont en effet très biens, mais l’avantage des NXP pour moi est d’être en terrain connu.
Le verrouillage à 96K n’est pas un gros problème vu qu’au final je désire cette fréquence pour être compatible avec le DSPiy qui fonctionne en 96K.
J’ai regardé les produits XMOS qui sont en effet très biens, mais l’avantage des NXP pour moi est d’être en terrain connu.
- thierryvalk
- Messages: 5617
- Inscription Forum: 08 Mai 2012 9:39
- Localisation: Belgique
|
16 messages
• Page 1 sur 2 • 1, 2
|