Modérateurs: Staff DIY, Staff Installations, Staff Juridique • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Et si l’on rajoutait du FIR au DSPiy ?

Message » 30 Oct 2013 15:49

Désolé, le DSP du DSPiy n’a pas de ressource cachée et sa capacité à faire du FIR est plus que réduite. :(

Depuis quelques temps je regarde du côté des DSP plus puissants.
Les Sharc sont magnifiques surtout la 4eme génération avec accélérateur IIR et FIR.
On y voit que le IIR n’est pas mort. :wink:
L’accélérateur FIR est limité à 1024 taps, mais il est toujours possible d’en faire de manière 100% soft.
Le problème principal de ces DSP, c’est le prix élevé et tout ce qu’il faut rajouter autour + le prix du système de développement.

En lisant le sujet de TCLI et sa mise en œuvre des plus intelligentes : http://www.homecinema-fr.com/forum/post177833088.html#p177833088
Je me suis dit pourquoi pas faire dans le même style. :roll:

PC je n’aime pas pour leurs problèmes de fiabilités et de bruits.

On avait parlé sur le sujet de Rolo http://www.homecinema-fr.com/forum/travail-de-groupe-diy/interface-audio-numerique-sans-fil-t30030990-60.html
Des cartes Olimex; elles existent. La A20 n’a apparemment pas de port I2S mais la A10S oui et disponible sur connecteur. Bien qu’une ligne se trouve sur le connecteur LCD.

L’idée est donc d’insérer cette carte ou une autre du style sur le DSPiy.
On sortirait du DSPiy en I2S juste avant le contrôle de volume, traitement FIR dans la carte A10S et retour dans le DSPiy au même endroit pour la séparation des voies et DAC.

Cette carte dispose d’une interface JTAG pour le développement, reste à voir les outils disponibles.
Vu qu’elle ne ferait pas grand-chose d’autre que de la correction FIR, on pourrait, il me semble, se passer du Linux.

Ce n’est qu’une idée, idée toute fraiche de ce matin. :D
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Annonce

Message par Google » 30 Oct 2013 15:49

 
 
Publicite

 
Encart supprimé pour les membres HCFR

Message » 30 Oct 2013 16:05

Si j'ai bien compris, c'est une carte additionnelle qui se branche sur la carte DSPY pour faire du FIR ?

La configuration dans mon profil


Intoxiqué au Beryllium :D
Avatar de l’utilisateur
Powerdoc
Staff Home-Cinéma
Staff Home-Cinéma
 
Messages: 6430
Inscription: 30 Sep 2006 19:05
Localisation: Allier
  • offline

Message » 30 Oct 2013 16:07

Waouh, ça va plaire à Minimax tout ça ! :love:
mtf
 
Messages: 1080
Inscription: 06 Nov 2003 20:25
  • offline

Message » 30 Oct 2013 16:41

Powerdoc a écrit:Si j'ai bien compris, c'est une carte additionnelle qui se branche sur la carte DSPY pour faire du FIR ?

Oui c’est cela, profiter d’un CPU à 1GHz sur une carte a +-60EUR pour faire du FIR sur 2 voies uniquement.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 30 Oct 2013 17:05

thierryvalk a écrit:
Powerdoc a écrit:Si j'ai bien compris, c'est une carte additionnelle qui se branche sur la carte DSPY pour faire du FIR ?

Oui c’est cela, profiter d’un CPU à 1GHz sur une carte a +-60EUR pour faire du FIR sur 2 voies uniquement.


deux fois 2 voies, ou une fois 2 voies ?
est-il possible de monter 3 cartes sur une seule DSPY ?

La configuration dans mon profil


Intoxiqué au Beryllium :D
Avatar de l’utilisateur
Powerdoc
Staff Home-Cinéma
Staff Home-Cinéma
 
Messages: 6430
Inscription: 30 Sep 2006 19:05
Localisation: Allier
  • offline

Message » 30 Oct 2013 17:13

Je pense a une seule carte et 1*2 voies, la séparation pouvant se faire ensuite avec le DSP du DSPiy en IIR.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 30 Oct 2013 19:49

Thierry, est ce qu'avec ce type de CPU tu es complètement libre des algo implémentés, ou est ce que c'est comme avec le proc du DSPiy , tu ne peux qu'assembler des briques de base prédéfinies ?
Par ce que, si il est directement programmable en C ou autre , une possibilité serait d'implémenter les filtres // mixtes IIR/FIR de Balázs Bank : http://home.mit.bme.hu/~bank/parfilt/
En particulier : http://www.mit.bme.hu/~bank/publist/spl08.pdf
Ca me semble bien adapté aux environnement un peu limité en puissance.

La configuration dans mon profil


J'avais la télé, mais ça m'ennuyait, je l'ai r'tournée. D'l'aut' côté c'est passionnant
Avatar de l’utilisateur
tcli
Membre HCFR
Membre HCFR
 
Messages: 3474
Inscription: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 30 Oct 2013 19:55

C'est de l ARM cortex A8 programmable en C, je dois encore étudier le sujet.
Merci pour les liens, je vais regarder cela ce soir en écoutant de la musique.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 30 Oct 2013 21:32

Le A8 a semble t il une unité SIMD : http://www.arm.com/products/processors/technologies/neon.php
Donc, à 1Ghz , tu devrais pouvoir facilement faire du FIR avec pas mal de coeff.
C'est pas loin des perf de mon celeron + sse4.2
Le celeron est bi-core, mais j'ai pas multithreadé le code ...
De plus , ton A8 ne ferait que ça ...

La configuration dans mon profil


J'avais la télé, mais ça m'ennuyait, je l'ai r'tournée. D'l'aut' côté c'est passionnant
Avatar de l’utilisateur
tcli
Membre HCFR
Membre HCFR
 
Messages: 3474
Inscription: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 30 Oct 2013 21:50

Exact, il semble relativement à l’aise en fonctions DSP multimédia avec son NEON.
Apparemment on peut aussi gérer la saturation comme sur un DSP audio.
Et les exemples de routines optimalisées FIR existent.
Niveau carte il y a aussi les BeagleBoard, apparemment la xM dispose d’un connecteur I2S.
Même cœur de processeur, mais en TI par rapport à du Chinois pour Olimex.
La doc semble plus complète sur la Beagle mais le prix plus élevé.
Par contre laisser Linux ou partir d’une page blanche ?
Je ne connais pas du tout Linux, ce serait l’occasion d’y mettre un pied par contre j’aime pas trop ces modules dont on ne connais pas tout et comme tu en as fait l’expérience un petit bug bien placé qui vient tout coincer.
Niveau boulot pour ce processeur: placer les coef en Flash, les charger en RAM ainsi que le code, configurer l’I2S et la gérer et interfaçage en I2C avec le µC du DSPiy.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 30 Oct 2013 22:55

thierryvalk a écrit:Niveau boulot pour ce processeur: placer les coef en Flash, les charger en RAM ainsi que le code, configurer l’I2S et la gérer et interfaçage en I2C avec le µC du DSPiy.

Honnêtement, si c'est juste pour faire cela, je ne vois pas ce que Linux t'apportera, à part des ennuis.
Parce que ce n'est absolument pas, à la base, un OS temps réel. Par contre, si tu as une application où il te faut, du réseau ethernet / wifi, de l'affichage vidéo alors là oui, c'est pas la peine de réinventer la poudre. Bref, c'est un Unix parmi tant d'autre, parfait pour un serveur, petit ou gros.
Maintenant, il faut voir quelles sont les alternatives, car , si il faut réécrire les couches basses :ko:

La configuration dans mon profil


J'avais la télé, mais ça m'ennuyait, je l'ai r'tournée. D'l'aut' côté c'est passionnant
Avatar de l’utilisateur
tcli
Membre HCFR
Membre HCFR
 
Messages: 3474
Inscription: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 30 Oct 2013 23:43

Le bas niveau c’est ce que je connais le mieux, mais ici c’est tout de même un gros morceau. :roll:
Le manuel de référence chez TI fait plus de 4700 pages mais seulement 48 registres pour la partie audio.
Pour cela TI est mieux, il y a aussi les outils de développement, mais payant.
L’idéal est d’avoir un code d’exemple de départ, par exemple faire clignoter une LED et l’on a déjà un gros morceau de boot, startup et de config de clock et PLL justes.
Je ne suis qu’au début de la phase de documentation, ce qui apparait c’est que l’idée n’est pas farfelue, ce type de processeur peut convenir pour l’application et il n’y a pas d’obstacle insurmontable.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 31 Oct 2013 0:26

A10S est limité au niveau I2S.
A10 ou A20 pour faire de l'I2S.

Linux est quasi indispensable pour faire autre chose qu'un "helo world" sur ce genre de processeur.
Linux a en plus un très bon comportement temps réel de base qui peut en plus être amélioré avec un kernel RT sans tomber dans la programmation temps réel spécifique (hard realtime) ce qui est également possible avec les extensions appropriées (xenomai ou le futur RTAI4).
Même avec de la programmation temps réel dur, l'avantage du Linux est de rester dans du classique avec toute la souplesse, le confort et la bibliothèque soft habituelle pour tout "l'annexe" qui n'a pas besoin du temps réel dur.

Par contre ça reste un très gros morceau :
Même si des distribs fonctionnant sur olinuxino commence à apparaitre, le kernel est en plein développement pour l'achi A10/A20 et donc un gros tas de sable mouvant pas très sec.
Avec le TI même combat, même si les choses sont déjà plus stables (et encore, TI ayant beaucoup de boulot et de mal à passer ses drivers de son BSP spécifique ultra propriétaire, au techno Linux actuel comme le device tree et l'infra DMA engine. La bonne nouvelle c'est que le boulot est dans les tuyaux y compris pour le MCASP).
Ensuite, même avec un kernel "final" 100% fonctionnel, il y a un peu de driver kernel spécifique à développer pour l'interfaçage de la couche ASOC avec le DSPiy (et c'est un beau binz cette "couche").
Par contre ensuite, tout le reste peu se faire en userspace standard ce qui est appréciable. Des parties peuvent ensuite être passés en hardrealtime si nécessaire, mais on doit pouvoir s'en passer avec un résultat déjà sympa.
Tazz28
Membre HCFR
Membre HCFR
 
Messages: 2802
Inscription: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 31 Oct 2013 10:19

Pour l’application que j’envisage le « hello world » est déjà plus abouti.
Le but n’est pas de gérer les fonctionnalités de ce processeur, mais juste d’utiliser sa puissance de calcul pour la boucle FIR.

En gros le programma principal c’est :
Attendre un sample sur l’I2S In
Le mettre en forme.
Faire deux boucles de N taps.
Le remettre en forme.
Le sortir dans le buffer I2S Out

A cela se rajoute un peu de gestion mémoire avec un contrôle en I2C.

USB, Ethernet et autres, on les laisse bien tranquilles en standby.

Niveau carte la BeagleBone Black me semble bien, on dispose de l’I2S sur un connecteur, elle est petite, simple et d’un prix très raisonnable.
CONN_REVA5A.jpg
CONN_REVA5A.jpg (105.23 Kio) Vu 3761 fois
Audio-Pin.jpg
Audio-Pin.jpg (71.46 Kio) Vu 3760 fois
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 31 Oct 2013 13:16

Je pense qu’il faudra me résoudre à utiliser Linux.
Il existe bien de RTOS et bios, mais je pense que je serais dans ce cas obliger de travailler avec les outils payants de TI . Le prix est correct, mais tout de même.
L’avantage du Linux est de ne pas trop être dépendant du matériel, mais dépendant des drivers.
Linux me permettra d’apprendre ce système, j’envisage d’autres applications en imagerie industrielle par exemple.
La carte est livrée avec un Linux installé ce qui facilitera la mise en route.
Je vais commander un BeagleBone Black et commencer à jouer tout doucement avec.
thierryvalk
 
Messages: 5510
Inscription: 08 Mai 2012 9:39
Localisation: Belgique
  • offline


Retourner vers Filtrage actif, Equalisation et Processeurs