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

Baisser/monter volume sur carte DM330011 (DSPIC)



  1. #1
    hatom1k

    Question Baisser/monter volume sur carte DM330011 (DSPIC)


    ------

    Bonjour à tous,

    J'ai actuellement une carte Starter Board DM330011 avec un DSPIC33F dessus.

    Mon code fonctionne correctement (enregistrement + sortie grace au codec WM8510) mais j'aimerais creer un bout de code qui me monterais et baisserait le volume.

    J'ai remarqué que dans le fichier SASK.h j'ai ces lignes là:

    Code:
    #define VOLUME_UPDN_TRIS	_TRISG0
    #define VOLUME_CLK_TRIS		_TRISG1
    
    #define VOLUME_UPDN	_LATG0
    #define VOLUME_CLK	_LATG1
    et que ensuite dans mon SASKinit(); j'ai ceci:

    Code:
    VOLUME_UPDN_TRIS = 0;	
    	VOLUME_CLK_TRIS	= 0;
    	
    	VOLUME_UPDN = 0;
    	VOLUME_CLK = 0;
    Donc je me doute bien que c'est sur ces valeur que je dois jouer mais je ne comprends vraiment pas comment faire pour monter et descendre le son.
    En sachant que dans la datasheet du LM4811 qui controle le volume de sortie de la carte il y'a ceci:

    Capture d’écran 2014-11-21 à 17.18.07.png

    Merci à tous pour votre aide

    -----

  2. Publicité
  3. #2
    RISC

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,

    Si tu lis le user guide de la carte et que tu regardes le schéma électronique, tu verras que le volume est controlé par des bouton poussoir connectés aux broches PORTG0 et PORTG1.
    Il te suffit de voir ou ces boutons poussoirs sont testés dans l'application et tu les remplace par un bit de status dans une variable. Tu "simuleras" le bouton en manipulant et testant ton bit au lieu d'utiliser le bouton poussoir.
    Tu peux aussi faire un "OU" de façon à utiliser l'un ou lautre.

    a+
    Ma marotte ? les microcontrôleurs ;=)

  4. #3
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Ces switchs sont branché sur les entrées RD0 et RD1 de ma carte non ?

    Je ne vois pas ou tu vois qu'ils controlent le volume ?

    Capture d’écran 2014-11-21 à 17.18.07.png

    et ces switchs sont configuré comme ceci dans le sask.h:

    Code:
    #define SWITCH_S1_TRIS	_TRISD8
    #define SWITCH_S2_TRIS	_TRISD9
    
    #define SWITCH_S1	_RD8
    #define SWITCH_S2	_RD9

  5. #4
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Dans la doc, je lis ceci:

    The headphone amplifier (A7) is a National Semiconductor LM4811 70-mW stereo amplifier with digital volume control. The input to the amplifier is controlled by the setting of output select jumper J6. The output of the amplifier is available through the headphone stereo output jack (J8).
    Gain is controlled by the logic levels applied through the device I/O ports to the CLK and UP/DN pins of U11. Each time the CLK line goes logic high, the gain increases or decreases by 3 dB, depending on the logic level of the UP/DN line. The gain can be adjusted over a range of -33 db to +12 db in 16 discrete gain settings.
    Dernière modification par JPL ; 21/11/2014 à 20h10. Motif: remplacement de la balise Code par Quote

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

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,
    OK. Donc les switches ne controlent pas directement le volume, mais le processeur lis les switches et appelle une fonction qui augmente / baisse le volume en fonction de la touche appuyée. Cherches dans le projet tu devrais trouver cette/ces fonctions qui gère le volume.
    Si tu utilises MPLAB X c'est assez facile de trouver toutes les occurences d'un label dans tous les fichiers d'un project (de tête CTRL + SHIFT + F)
    a+
    Ma marotte ? les microcontrôleurs ;=)

  8. #6
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Je suis vraiment désolé mais je ne comprend vraiment pas

    j'aimerais ecrire une simple fonction monterSon(); qui m'augmente le son de +3dB sans utiliser ces switchs mais vraiment j'y arrive pas

  9. Publicité
  10. #7
    RISC

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,

    J'ai vérifié le code source du projet. Les définitions sont effectivement faites mais il n'y a pas de fonctions associées.
    Tu vas donc devoir les écrire. Au vu du protocole que tu as montré c'est d'ailleurs très simple. Il suffit de manipuler les ports de sortie _LATG0 et _LATG1
    #define VOLUME_UPDN _LATG0
    #define VOLUME_CLK _LATG1

    Ecris une fonction qui manipule les signaux VOLUME_UPDN et VOLUME_CLK pour reproduire le timing que tu as montré et ensuite il suffit d'appeler cette fonction
    Je te conseille d'ajouter 2 boutons poussoir sur ta carte en utilisant des broches non utilisées du dsPIC (regarde le schéma de la carte sur le user manual).

    a+
    Ma marotte ? les microcontrôleurs ;=)

  11. #8
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Le soucis est que sur VOLUME_CLk il faut mettre un signal d'orloge non?

    Alors que moi ma fonction est appelé a un instant t..

  12. #9
    RISC

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,
    Tu peux faire ce signal d'horloge en togglant les broches tout en respectant la fréquence de ces signaux.
    si le dsPIC33 tourne à la fréquence max, il exécute une instruction toutes les 25ns donc rester dans cette séquence pendant quelques us ne devrait pas poser de PB ;=)
    Le plus simple c'est d'essayer
    a+
    Ma marotte ? les microcontrôleurs ;=)

  13. #10
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut !

    Voila ce que j'ai essayer:

    Code:
    while(CheckSwitchS2() == 0);
    
    for(i=0;i<10000;i++) {
    if(_LATG0 == 1) {
    
    	_LATG0 = 1;
    	_LATG1 = 1;
    } else {
    
    	_LATG0 = 1;
    	_LATG1 = 0;
    }
    }
    Mais mon son ne se modifie pas

  14. #11
    RISC

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,

    Ton programme ne respecte pas le timing du signal pour le WM8510....
    Lis la datasheet et écrit un programme qui toggle les bits sous interruption timer pour respecter le timing.
    Ta boucle actuelle fait cela probablement à plusieurs MHz en fonction du niveau d'optimisation.
    C'est faciele à voir avec un oscillo.

    Tu peux aussi faire cela à l'arrache" en insérant des Nop() ou des boucles pour faire un timing correct mais cela ne sera pas propre tu tout...

    a+
    Ma marotte ? les microcontrôleurs ;=)

  15. #12
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Heu.. merci pour toutes tes reponses mais je suis completement perdus.
    Ca t'ennuerais de me montrer un bou de code histoire que je me base dessus?

    Je te remercie

  16. Publicité
  17. #13
    RISC

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Salut,
    Si tu ne comprends pas ce que j'ai expliqué, je pense que tu n'arriveras pas à modifier le logiciel de la carte ou à faire d'autres modifications.
    Tu devrais commencer par faire des petits programmes pour apprendre comment gérer le dsPIC33 sur ta carte avant d'essayer de modifier des logiciels assez compliqués.
    Il faut accepter de passer du temps pour apprendre.
    Bon courage
    a+
    Ma marotte ? les microcontrôleurs ;=)

  18. #14
    hatom1k

    Re : Baisser/monter volume sur carte DM330011 (DSPIC)

    Tout a fait d'accord avec toi, sauf que c'est pour mon projet de fin d'etude qui doit etre terminé pour le mois de mars.

    Merci tout de meme, je vais essayer de tirer quelques chose de ce que tu as expliqué plus haut

    Merci

Discussions similaires

  1. dsPIC et carte SD (encore ...)
    Par tifab37 dans le forum Électronique
    Réponses: 2
    Dernier message: 10/02/2010, 18h11
  2. carte dsPIC avec codec audio
    Par kronanberg dans le forum Électronique
    Réponses: 3
    Dernier message: 17/05/2008, 23h15
  3. imossible de monter volume sur autoradio pioneer KEH-3600
    Par leglaude87 dans le forum Dépannage
    Réponses: 7
    Dernier message: 20/08/2006, 21h51
  4. Baisser le volume d'un buzzer
    Par nicrun dans le forum Électronique
    Réponses: 5
    Dernier message: 09/08/2006, 05h54
  5. Monter un volume externe sur OS X
    Par Bételgeuse dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 01/11/2005, 20h15
Découvrez nos comparatifs produits sur l'informatique et les technologies.