Modérateurs: Modération Forum Installations, Modération Forum DIY, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

DSPiy : logiciels et algorithmes

Message » 18 Déc 2012 23:47

Voici un sujet dédié aux logiciels et algorithmes qui vont donner vie à notre DSPiy (système à base de DSP)
Le cœur est le DSP ADAU1701, il dispose d’une RAM interne pour le programme et variables ainsi que de registres de configurations.
Pour concevoir son programme le développeur utilise SigmaStudio .
Après compilation SigmaStudio nous fournis différents fichiers :
Le code programme à charger en RAM.
Un fichier de définitions avec toutes les variables utilisées dans le programme.
Ce sont ces variables qui après calculs vont définir par exemple les fréquences, facteur Q et gain d’un filtre.
Pour réaliser ces calculs, on va utiliser un soft sur PC.
Entre le PC et le DSP on utilise un µC (microcontrôleur) qui va assurer le dialogue, mais aussi de commander le DSP sans le PC pour le réglage de volume par exemple.
Le gros du chalenge est de réaliser un ensemble facilement modifiable en fonction des différentes applications finales.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 18 Déc 2012 23:48

donnons la parole aux forumeurs.
alkasar a fait une feuille partagée (accès libre) pour vous écouter sur ce que vous avez envie de faire du DSPiy. Enfin si vous savez...
https://docs.google.com/spreadsheet/ccc?key=0AsOXGyAB2MTMdENhYm53M0U2cGk5ZGZHZlBSNGp6Tmc#gid=0

Interface d'entrée numérique :
http://www.homecinema-fr.com/forum/travail-de-groupe-diy/interface-d-entree-numerique-pour-dspiy-et-autre-t30030455.html

le site du DSPiy (en construction) :
https://googledrive.com/host/0B8OXGyAB2MTMX3p5Z3FzZG1YdlE/

Interface audio numérique sans fil et autres idées
http://www.homecinema-fr.com/forum/travail-de-groupe-diy/interface-audio-numerique-sans-fil-t30030990.html


autre liens :

calcul des filtres :
http://ez.analog.com/docs/DOC-1819
Dernière édition par thierryvalk le 17 Jan 2013 13:49, édité 2 fois.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 18 Déc 2012 23:49

Image
Dernière édition par thierryvalk le 17 Jan 2013 13:45, édité 1 fois.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 11:44

Bonjour,
Beaucoup de documents sur ton lien !
As tu un candidat pour le µC ? Pour démarrer sur DSP ADAU1701 un kit EVAL-ADAU1701MINIZ à 195$ suffit ?

merci
stf_adonf
 
Messages: 819
Inscription Forum: 19 Fév 2006 20:38
Localisation: Drômadaire (26)
  • offline

Message » 19 Déc 2012 12:13

Le µC sera un LPC1114 de NXP le cœur est un CORTEX-M0 d’ARM.
Les outils de développement LPCXPRESSO.

le kit EVAL-ADAU1701MINIZ donne accès à SigmaStudio :love: , il est suffisant mais reste un kit d’évaluation, c’est mieux de patienter que notre carte soit opérationnelle.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 20:02

Juste par curiosité, pourquoi le NXP plutôt qu'un STM32F0 par exemple ?
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 19 Déc 2012 20:38

Je ne connais pas le STM32F0 qui est de la même classe (cortex-M0) que le LPC1114 et je dispose des outils pour le LPC.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 21:46

Voici une petite illustration d’un projet de filtra actif 2*3 + 2*10PEQ.
Image
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 21:49

Explications :Je rappelle que SigmaStudio est uniquement disponible pour les développeurs.
Graphique du projet (de gauche à droite) :
Sélection des entrées
Inversion de phase 180°
Volume
PEQ -> le détail est donné dans la fenêtre fille de gauche.
10 filtres IIR sélection fréquence, facteur Q, boost et gain.
Crossover -> le détail est donné dans la fenêtre fille de droite.
3 voies sélection pente 12 ou 24db/octave (Linkwitz-Riley), polarité et gain.
Délais.
Sorties.

Après compilation, SigmaStudio va nous donner une série de fichiers +- prêts à l’emploi.
Le code .Hex et .H à charger dans la RAM du DSP.
Voici un extrait du .H

#ifndef __HCFR1_0_IC_1_H__
#define __HCFR1_0_IC_1_H__

#include "SigmaStudioFW.h"
#include "hcfr1-0_IC_1_REG.h"

#define DEVICE_ARCHITECTURE_IC_1 "ADAU1701"
#define DEVICE_ADDR_IC_1 0x68

/* DSP Program Data */
#define PROGRAM_SIZE_IC_1 5120
#define PROGRAM_ADDR_IC_1 1024
ADI_REG_TYPE Program_Data_IC_1[PROGRAM_SIZE_IC_1] = {
0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0xE8, 0x01,
0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x08, 0x00, 0xE8, 0x01,
0x00, 0x02, 0x00, 0x20, 0x01,
0x00, 0x10, 0x00, 0xE2, 0x01,
0x00, 0x0A, 0x01, 0x20, 0x01,
0x00, 0x18, 0x00, 0xE2, 0x01,
0x00, 0x12, 0x02, 0x20, 0x01,
0x00, 0x30, 0x00, 0xE2, 0x01,


Fichier de définitions .H de tous les paramètres modifiables :
Voici pour 1 filtre EQ

/* Module Param EQ1 - Parametric EQ*/
#define MOD_PARAMEQ1_COUNT 50
#define MOD_PARAMEQ1_DEVICE "IC1"
#define MOD_PARAMEQ1_ALG0_STAGE0_B0_ADDR 4
#define MOD_PARAMEQ1_ALG0_STAGE0_B0_FIXPT 0x007FFB6A
#define MOD_PARAMEQ1_ALG0_STAGE0_B0_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.999860146545056)
#define MOD_PARAMEQ1_ALG0_STAGE0_B0_TYPE SIGMASTUDIOTYPE_FIXPOINT
#define MOD_PARAMEQ1_ALG0_STAGE0_B1_ADDR 5
#define MOD_PARAMEQ1_ALG0_STAGE0_B1_FIXPT 0xFF00092B
#define MOD_PARAMEQ1_ALG0_STAGE0_B1_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.99972029309011)
#define MOD_PARAMEQ1_ALG0_STAGE0_B1_TYPE SIGMASTUDIOTYPE_FIXPOINT
#define MOD_PARAMEQ1_ALG0_STAGE0_B2_ADDR 6
#define MOD_PARAMEQ1_ALG0_STAGE0_B2_FIXPT 0x007FFB6A
#define MOD_PARAMEQ1_ALG0_STAGE0_B2_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.999860146545056)
#define MOD_PARAMEQ1_ALG0_STAGE0_B2_TYPE SIGMASTUDIOTYPE_FIXPOINT
#define MOD_PARAMEQ1_ALG0_STAGE0_A0_ADDR 7
#define MOD_PARAMEQ1_ALG0_STAGE0_A0_FIXPT 0x00FFF6BD
#define MOD_PARAMEQ1_ALG0_STAGE0_A0_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.99971739292589)
#define MOD_PARAMEQ1_ALG0_STAGE0_A0_TYPE SIGMASTUDIOTYPE_FIXPOINT
#define MOD_PARAMEQ1_ALG0_STAGE0_A1_ADDR 8
#define MOD_PARAMEQ1_ALG0_STAGE0_A1_FIXPT 0xFF800913
#define MOD_PARAMEQ1_ALG0_STAGE0_A1_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.999723193254333)
#define MOD_PARAMEQ1_ALG0_STAGE0_A1_TYPE SIGMASTUDIOTYPE_FIXPOINT

Un fichier de définitions .H des registres

Ainsi que des ressources utilisées :

Number of instructions used (out of a possible 1024 ) = 440
Data RAM used (out of a possible 2048 ) = 562
Parameter RAM used (out of a possible 1024 ) = 194

On utilise donc 440 instructions pour notre projet. SigmaStudio nous indique une limite de 1024 ; erreur vu que l’on travaille en 96KHz on dispose que de la moitié soit 512.
Dernière édition par thierryvalk le 19 Déc 2012 22:38, édité 2 fois.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 21:50

ha ok; je suis resté sur un PIC18F moi :ko:
Sinon je suis étonné de pas voir le Raspberry évoqué dans le poste du DSPiy. Avec les GPIO on doit pouvoir faire quel que chose de super
zai
 
Messages: 413
Inscription Forum: 08 Fév 2009 21:27
Localisation: 31
  • offline

Message » 19 Déc 2012 21:53

zai a écrit:ha ok; je suis resté sur un PIC18F moi :ko:

Et tu as bien raison, je travaille avec des 8bits depuis de longues années, mais aujourd’hui un 32bits avec plein de flash coute moins qu’un simple et efficace 8bits.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 22:03

Rahhhhh me parlez pas du R-PI :evil: :evil: :evil: :evil:
Une sombre bouze qui surfe sur le buzz.
Pour faire un truc qui marchote c'est rigolo puis quand on regarde de plus près pour passer de marchotter à fonctionner, on découvre l'arnaque et on fout le truc à la benne.
Et puis avec n'importe quel cortex M0, y en a à la pelle des GPIO, ça coute moins de 3€ et y a pas d'embrouille.
Tazz28
 
Messages: 2802
Inscription Forum: 03 Nov 2008 23:47
Localisation: Dreux
  • offline

Message » 19 Déc 2012 22:15

Suite des explications
Que faire avec tout ça ?
Le fichier .Hex peut être rentré dans une EEPROM et c’est fini, à sa mise sous tension le DSP lit l’EEPROM et effectue le travail demandé.
C’est simple, mais pas d’accès aux paramètres qui sont figés lors de la conception. :wtf:

C’est là que l’on remplace l’EEPROM par un µC contenant le programme_DSP sous forme de data.
A la mise sous tension, il va charger le DSP comme pour l’EEPROM.
Grace aux fichiers de définitions, le logiciel_µC va connaître les adresses à modifier pour changer les paramètres.
C’est relativement simple, mais les paramètres doivent être calculés.
Dans l’exemple donné pour 1 filtre PEQ on dispose de 5 paramètres : B0 B1 B2 A0 et A1.
Alors que l’utilisateur veut modifier fréquence, facteur Q et boost.

C’est là que le logiciel_param sous PC va intervenir.
Soit via un soft dédié ou une feuille Excel bien remplie, on va calculer tout cela et les transmettre au µC qui va les sauvegarder et les renvoyer au DSP aux bonnes adresses.
Il restera quelques paramètres modifiables à la volée (cad sans que le PC soit branché) tels que volume, sélection d’entrée …

Reste à mettre tout cela en musique.
:hehe:
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 22:35

Voici un embryon d’exemple de logiciel PC, plusieurs onglets selon les modules.
Ecrit en c#, communique(ra) avec le µC en USB via un port com virtuel.
A voir cette solution ou excel plus ouvert à tous ?

Image
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 19 Déc 2012 22:36

ben voilà qui devient super clair :)

Pour récupérer SigmaStudio il faut demander une clé. C'est une formalité ou compliqué ?
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline


Retourner vers Filtrage actif, Equalisation et Processeurs

 
  • Articles en relation
    Dernier message