Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Problème programmation filtre sur Dspic30F



  1. #1
    Phebus97

    Problème programmation filtre sur Dspic30F


    ------

    Bonjour à tous,

    Voilà j'ai un problème. Je travaille depuis un moment sur un système acoustique utilisant le composant Dspic30F6010 de chez Microchip. J'ai programmé un filtre LMS en modifiant un peu les librairies fournies par le constructeur pour l'adapter à mon application. Je récupère le signal en sortie d'un convertisseur numérique analogique.

    Le soucis, c'est que des perturbations apparaissent quand mon signal à l'entrée du convertisseur analogique numérique du dsPIC dépasse la moitié de la tension de référence. Quand, je monte la fréquence, je me retrouve alors avec un signal complètement déformé.

    J'ai pensé que cela venait du codage des signaux numériques ( Fractional ) qui posait problème quand on dépassait la valeur 7FFF en hexadécimal au niveau du CAN ( 8000 étant la valeur la plus négative ) alors que mon signal lui est toujours positif.

    J'ai donc réalisé plusieurs manipulations ( divisions par deux des échantillons, modifications des bits de saturation des accumulateurs, calcul en entier et non en fractional,etc...) mais je n'ai pas obtenu le résultat escompté.

    Pourriez vous me venir en aide pour résoudre ce problème ?

    Merci et bonne journée !

    -----
    Savoir c'est bien, apprendre c'est mieux

  2. Publicité
  3. #2
    cherwam07

    Re : Problème programmation filtre sur Dspic30F

    Quand, je monte la fréquence, je me retrouve alors avec un signal complètement déformé.
    Je ne vois pas le rapport ??
    Tu envisages des soucis sur l'amplitude du signal, et tu dis avoir des problèmes quand tu montes en fréquence.

    Tu peux éclaircir ca s'il te plait ?

  4. #3
    Phebus97

    Re : Problème programmation filtre sur Dspic30F

    Bonjour,

    D'abord merci pour ta réponse et désolé si je me suis mal fait comprendre.

    Ce que je veux dire c'est que le phénomène qui se produit me semble être un problème numérique faisant diverger la sortie au passage par la moitié de la tension de référence jusqu'à ce qu'elle converge à nouveau vers la valeur désirée.

    Or , lorsque j'augmente la fréquence à l'entrée, la période d'échantillonnage restant la même, l'effet déformant de cette "perturbation" s'accentue et au bout d'un moment le signal devient complètement déformé car les deux passages par Vref/2 sont très resserrés. Voilà mon avis.

    Je voudrais donc savoir si le problème vient effectivement de là et comment y remédier au niveau logiciel (code assembleur, bits à configurer, format de données etc...) .

    Merci d'avance pour votre aide !
    Savoir c'est bien, apprendre c'est mieux

  5. #4
    Jack
    Modérateur

    Re : Problème programmation filtre sur Dspic30F

    Tu n'as pas donné les fréquences des signaux et de l'échantillonnage. C'est peut-être un problème de repliement du spectre. Tu a mis un filtre anti-repliement à l'entrée?

  6. A voir en vidéo sur Futura
  7. #5
    cherwam07

    Re : Problème programmation filtre sur Dspic30F

    C'est peut-être un problème de repliement du spectre
    Héhé on est d'accord ca sent le repliement, c'est bien pour ca qu'il faut nous en dise plus sur ses fréquence !

  8. #6
    Phebus97

    Re : Problème programmation filtre sur Dspic30F

    Salut à tous,

    Je ne pense pas que cela vienne d'un problème de repliement car j'ai mis un filtre passe-bas en entrée coupant à 900hz environ et je traite des sinusoïdes de fréquences de quelques dizaines à quelques centaines de hz à une fréquence d'échantillonage de 10khz.

    Merci à vous !
    Savoir c'est bien, apprendre c'est mieux

  9. Publicité
  10. #7
    Jack
    Modérateur

    Re : Problème programmation filtre sur Dspic30F

    Alors, il faut être sur qu'il ne s'agit pas d'un problème de représentation des nombres signés.

    Le codage en sortie de l'ADC est-il bien compatible avec le format entier?

    A+

  11. #8
    Phebus97

    Re : Problème programmation filtre sur Dspic30F

    Bonjour à tous,

    Il se trouve que j'ai changé de différentes façons le paramétrage du format pris en compte par l'ADC en jouant sur les bits FOMR0 et FORM1 ( 00= entiers, 01= entiers signés, 10 = fractional, et 11 = fractional signés ) du registre ADCON1 sans succès.

    En outre, je viens de remarquer quelquechose. J'ai voulu changer la valeur du registre CORCON ( configuration des calculs sur le DSP Engine ) Mais quand je circule au pas à pas dans le programme en regardant le contenu de ce registre, je me suis rendu compte qu'il ne modifiait que les 8bits de poids faible. C'est pourquoi je ne peux pas mettre le bit US ( calcul en signé ou non signé ) de ce registre à 1. Est-ce normal ? Je ne pense pas.

    Qu'est-ce que vous en pensez ?

    Merci et bonne journée !
    Savoir c'est bien, apprendre c'est mieux

  12. #9
    Jack
    Modérateur

    Re : Problème programmation filtre sur Dspic30F

    Là, ça sort de mes compétences car je ne connais pas mes Dspic.

    Bon courage pour la suite.

  13. #10
    Phebus97

    Re : Problème programmation filtre sur Dspic30F

    Bonjour à tous,

    J'ai trouvé une m"thode qui semble améliorer les choses quant à mon problème. En fait, j'ai divisé les échantillons d'entrée par 2 et ça fonctionne à peu près si le nombre de coefficients des filtres est suffisamment élevés. J'avais déjà réalisée une telle manipulation avant mais elle ne focntionnait pas et j'ai fini par me rendre compte que je faisait une opération de trop à un moment donné dans le module assembleur.

    Mais maintenant j'ai un autre problème avec 2 de ces modules appelés via le programme principal en C. L'un semble me générer une erreur d'adressage au moment du "return" et l'autre une erreur de "pile". Pourtant, j'ai 2 autres modules qui réalisent plus ou moins la même chose ( seul les calculs sont un peu différents ) et qui eux ne m'engendrent pas d'erreur.

    Est-ce quelqu'un aurait une idée sur l'origine de ces problèmes ?

    Merci d'avance !
    Savoir c'est bien, apprendre c'est mieux

  14. #11
    microchip

    Re : Problème programmation filtre sur Dspic30F

    Citation Envoyé par Phebus97 Voir le message
    En outre, je viens de remarquer quelquechose. J'ai voulu changer la valeur du registre CORCON ( configuration des calculs sur le DSP Engine ) Mais quand je circule au pas à pas dans le programme en regardant le contenu de ce registre, je me suis rendu compte qu'il ne modifiait que les 8bits de poids faible. C'est pourquoi je ne peux pas mettre le bit US ( calcul en signé ou non signé ) de ce registre à 1. Est-ce normal ? Je ne pense pas.

    Qu'est-ce que vous en pensez ?
    Bonsoir,


    Peux-tu également faire voir les messages d'erreur du compilateur ?
    Dernière modification par microchip ; 27/08/2008 à 21h17. Motif: modif
    Here to help ;=)

  15. #12
    microchip

    Re : Problème programmation filtre sur Dspic30F

    Re,

    Pour écrire le bit US dans CORCON tu peux utiliser la méthode suivante (champ de bits prédéfinis par le compilateur) :

    CORCONbits.US = 1;

    Cela permet de changer uniquement ce bit (bit manipulation).
    (ce bit se trouve dans l'octet de poids fort de CORCON = bit12).
    Il faut bien sur avoir inclus le header file de ton micro ou cette structure à champ de bits est définie.

    Ce bit est en R/W donc il n'y a pas de raison pour laquelle on ne devrait pas pouvoir l'écrire.

    Tous les détails se trouvent dans le Family Reference Manual des dsPIC30 :
    http://ww1.microchip.com/downloads/e...Doc/70049D.pdf
    Here to help ;=)

  16. Publicité

Discussions similaires

  1. probleme de programmation sur LOGO
    Par Jackyyy dans le forum Électronique
    Réponses: 2
    Dernier message: 16/04/2008, 15h53
  2. Dspic30f --- I2c --- Cmps03
    Par benlecachalot dans le forum Électronique
    Réponses: 1
    Dernier message: 11/10/2007, 14h06
  3. Programmation sur HC08 (problème de hardware)
    Par Jraf78 dans le forum Électronique
    Réponses: 3
    Dernier message: 18/08/2006, 13h49
  4. Probleme de filtre sur seche linge Bauknecht trk 997
    Par Luluc dans le forum Dépannage
    Réponses: 0
    Dernier message: 24/05/2006, 09h40
  5. Probleme de programmation pic sur portable résolu
    Par alainav1 dans le forum Électronique
    Réponses: 0
    Dernier message: 11/05/2005, 12h45
Découvrez nos comparatifs produits sur l'informatique et les technologies.