dsPIC30F SMPS - Réalisation d'une conversion A/N
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

dsPIC30F SMPS - Réalisation d'une conversion A/N



  1. #1
    jorg1n

    dsPIC30F SMPS - Réalisation d'une conversion A/N


    ------

    Bonjour,

    j'utilise la carte de développement de Microchip SYNC BUCK converter qui est équipée d'un dsPIC30F2020. Et je souhaiterai mettre en œuvre une simple conversion analogique numérique sur l'entrée AN5, mais je n'y arrive pas. La configuration est différente des dsPIC30F sans modules SMPS...et je connais plus les PIC18 (je commence tout juste avec les dsPIC...)

    Auriez vous une petite idée pour réaliser une simple conversion A/N (sans interruption, sans PWM comme source,...).?
    J'ai téléchargé les exemples du site, mais ce sont des exemples bien précis (avec IT,...)

    voici mon code, mais mon registre de stockage du résultat ADCBUF5 ne change pas ...

    Code:
    void init_ADC()
    {
        
    	TRISBbits.TRISB5 = 1;
    
        // A/D Status Register
        ADSTATbits.P3RDY    = 0;  // Pair 3 not used
        ADSTATbits.P2RDY    = 0;  // Pair 2 
        ADSTATbits.P1RDY    = 0;  // Pair 1 not used
        ADSTATbits.P0RDY    = 0;  // Pair 0 not used
    							  // This bit will be set when data is ready to 
    							  // be read from the ADC buffer
        
        // A/D Port Configuration Register
        ADPCFGbits.PCFG7    = 1;  // configured as analog input, pin not used
        ADPCFGbits.PCFG6    = 1;  // configured as analog input, pin not used
        ADPCFGbits.PCFG5    = 0;  // configured as analog input, pin
        ADPCFGbits.PCFG4    = 0;  // configured as analog input, pin not used
        ADPCFGbits.PCFG3    = 1;  // configured as analog input, pin not used
        ADPCFGbits.PCFG2    = 1;  // configured as analog input, pin not used
        ADPCFGbits.PCFG1    = 1;  // configured as analog input, pin not used
        ADPCFGbits.PCFG0    = 1;  // configured as analog input, pin not used
    
    
    
        // A/D Convert Pair Control Register #1
        ADCPC1bits.IRQEN2   = 0;  // Disable Interrupt request on AN3 and AN2
    							  // conversion, no interrupt used
        ADCPC1bits.SWTRG2   = 0;  // Cleared; no software trigger used
        ADCPC1bits.PEND2    = 0;  // Cleared; no pending conversion before start
        ADCPC1bits.TRGSRC2  = 1;  // Choose PWM1 as the trigger source for
    							  // start of A/D conversion of AN5 and AN4
    
        // A/D Control Register
        ADCONbits.ADSIDL    = 0;  // Continue ADC operation in idle mode
        ADCONbits.GSWTRG    = 0;  // no global software trigger used
        ADCONbits.FORM      = 0;  // ADC conversion results in integer form
        ADCONbits.EIE       = 0;  // Generate Interrupt after second conversion
    							  // is completed. In our case, the second 
    							  // conversion is the AN5 conversion, which is 
    							  // used for converting Vout1 to digital
        ADCONbits.ORDER     = 0;  // Even numbered analog input converted first
        ADCONbits.SEQSAMP   = 1;  // Sampling is sequential
        ADCONbits.ADCS      = 7;  // Select clock = 2*TQ
            
        ADCONbits.ADON      = 1;  // Turn ON ADC Module
    
    }

    Merci d'avance

    -----

  2. #2
    manuj

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    L'année dernier j'ai travailler sur un dspic30f3012. Ci-joint mon code sur le convertisseur A/N.

    Code:
    //configuration convertion analogique => numÈrique
    
    
    ADPCFG = 0xFFF0;       //ADPCFG=0 => analogique RB0 en analogique
    ADCON1 = 0x00E0;
    //bit0: DONE 				0=> convertio is not done
    //bit1: SAMP 				0=> A/D sample/hold amplifiers are holding (conservation de la valeur A/D)
    //bit2: ASAM 				0=> Sampling begins when SAMP bit set
    //bit3: SIMSAM 				0=>0 = Samples multiple channels individually in sequence
    //bit4:	Unimplemented: Read as ë0í
    //bit5 ‡ 7:	SSRC<2:0>  		Conversion Trigger Source Select bits => reserved 
    //bit8 ‡ 9: FORM<1:0> 		00=> Integer (DOUT = 0000 00dd dddd dddd)
    //bit10 ‡ 12: Unimplemented: Read as ë0í
    //bit13: ADSIDL  			0=> Continue module operation in Idle mode
    //bit14: Unimplemented: Read as ë0í
    //bit15: ADON 				0=> A/D converter is off
    
    //ADCHS = 0;	        // Connect RB0 as CH0 input ..
    ADCSSL = 0;				// 0=> Skip ANx for input scan
    ADCON3 = 0x0000;        // Manual Sample, Tad = internal Tcy/2
    ADCON2 = 0;        		//configuration de ADCON2
    
    ADCON1bits.ADON =1;   // turn ADC ON
    
    
    
    
    
    
    void CANe (int ch)
    {
    ADCHS = ch;	        // Connect RB0 as CH0 input 
    				// 0=> Skip ANx for input scan
    
    //convertion analogique => numÈrique
    ADCON1bits.SAMP = 1;  // start sampling
    
    while (!ADCON1bits.DONE);
    
    ADCON1bits.SAMP = 0; // start Converting
    while (!ADCON1bits.DONE); // conversion done?
    temp_channel[ch] = ADCBUF0; // yes then get ADC value
    }

  3. #3
    manuj

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    L'année dernier j'ai travailler sur un dspic30f3012. Ci-joint mon code sur le convertisseur A/N.

    Code:
    //configuration convertion analogique => numÈrique
    
    
    ADPCFG = 0xFFF0;       //ADPCFG=0 => analogique RB0 en analogique
    ADCON1 = 0x00E0;
    //bit0: DONE 				0=> convertio is not done
    //bit1: SAMP 				0=> A/D sample/hold amplifiers are holding (conservation de la valeur A/D)
    //bit2: ASAM 				0=> Sampling begins when SAMP bit set
    //bit3: SIMSAM 				0=>0 = Samples multiple channels individually in sequence
    //bit4:	Unimplemented: Read as ë0í
    //bit5 ‡ 7:	SSRC<2:0>  		Conversion Trigger Source Select bits => reserved 
    //bit8 ‡ 9: FORM<1:0> 		00=> Integer (DOUT = 0000 00dd dddd dddd)
    //bit10 ‡ 12: Unimplemented: Read as ë0í
    //bit13: ADSIDL  			0=> Continue module operation in Idle mode
    //bit14: Unimplemented: Read as ë0í
    //bit15: ADON 				0=> A/D converter is off
    
    //ADCHS = 0;	        // Connect RB0 as CH0 input ..
    ADCSSL = 0;				// 0=> Skip ANx for input scan
    ADCON3 = 0x0000;        // Manual Sample, Tad = internal Tcy/2
    ADCON2 = 0;        		//configuration de ADCON2
    
    ADCON1bits.ADON =1;   // turn ADC ON
    
    
    
    
    
    
    void CANe (int ch)
    {
    ADCHS = ch;	        // Connect RB0 as CH0 input 
    				// 0=> Skip ANx for input scan
    
    //convertion analogique => numÈrique
    ADCON1bits.SAMP = 1;  // start sampling
    
    while (!ADCON1bits.DONE);
    
    ADCON1bits.SAMP = 0; // start Converting
    while (!ADCON1bits.DONE); // conversion done?
    temp_channel[ch] = ADCBUF0; // yes then get ADC value
    }

  4. #4
    jorg1n

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour Manuj,

    je te remercie, mais la configuration du module ADC est différent sur le dsPIC intégrant le module SMPS. J'ai trouvé beaucoup d'exemples mais pas pour la série des dsPIC30F1010/2020/2023. (enfin si, mais avec des générations d'IT, ou avec comme source de clock le signal PWM de sortie, et moi je souhaite réaliser une conversion toute simple, comme toi.. mais pour un dsPIC30F20202...

    Mais merci encore... je pense que cela servira pour d'autres.

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

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    bsr, voila moi aussi je travail sur un dspic 30f4011, jai pas encore ecrit le programme finale de la conversion car je travail sur l'aquisiqtion de 4 signaux analogique simultanné avec interuption c un peut compliqué mais pour une conversion simple suit ses étapes:
    1)choisi le voltage,
    2) defini l'horloge de la conversion et le type c manuelle au automatique,
    3) choisi les entrées analogique (les pin an0 jusqua an15)
    et quand je connect sur mon pc je tenvoi des doc quii t'aiderai parceque moi je programme en assembleur.
    merci

  7. #6
    jorg1n

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Merci pour l'information...
    J'ai réussi depuis a faire ce que je voulais, mais merci quand même

  8. #7
    RISC

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Salut,

    J'ai pas mal galéré aussi avec les PWM SMPS qui sont très sophistiqués...et difficiles à initialiser.
    Une Technical brief (FAQ) ( TB062 ) dédiée aux dsPIC SMPS est sortie qui permet d'y voir plus clair avec des exemples.

    a+

  9. #8
    didou1982

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour,
    jorg1n tu as dis que tu as réussi, ceque tu as fais m'intéresse peux-tu nous mettre en piece jointe le programme finale.
    RISC, tu parle de PWM SMPS mais quesque c'est qu'un module PWM SMPS?

    Merci d'avance pour les répponses.

  10. #9
    jorg1n

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour Didou,
    jorg1n tu as dis que tu as réussi, ceque tu as fais m'intéresse peux-tu nous mettre en piece jointe le programme finale.
    le programme final ne te sera pas d'une grande utilité, car je l'utilise dans un système, enfin nous avons développé un prototype avec un dsPIC30F1010, avec lequel, nous utilisons le module PWM SMPS afin de générer des signaux pour piloter des IGBTs. Mais contrairement a ce que j'ai dis plus haut, nous avions commencé avec le module ADC, mais nous étions partit sur une chose plus simple (commande manuelle par appui sur BP pour la modification du phase shift -> registre dans le module PWM SMPS Il y a une carte de développement chez Microchip qui est parfaite pour cela:
    http://www.microchip.com/stellent/id...cName=en028713

    Et si tu télécharges les codes sources en bas de la pages, tu trouveras tout ce que tu veux...

    Bonne continuation

  11. #10
    RISC

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Salut Didou,
    Citation Envoyé par didou1982 Voir le message
    RISC, tu parle de PWM SMPS mais quesque c'est qu'un module PWM SMPS?
    Dans les dsPIC30 et dsPIC33 il existe plusieurs types de périphériques PWM.
    Certains dsPIC sont destinés au contrôle moteur et sont parfois référencés dans les documents comme "MC PWM" c'est à dire Motor control PWM.
    D'autres sont destinés aux alimentations à découpage comme les "SMPS PWM" Switched Mode Power Supply PWM.

    Ces unités sont très différentes car les besoins de ces applications en terme de PWM sont plus ou moins sophistiquées.

    Par exemple, pour les SMPS PWM, ce sont les unités les plus sophistiquées et les plus pointues puisque la résolution peu descendre à quelques ns et le dead time est programamble de façon très précise.

    Pour mieux comprendre ces unités il vaut mieux lire les notes d'applications et regarder le schéma des cartes d'évaluation dédiées.

    Il existe un centre de design pour les alims SMPS avec des exemples complets d'alimentations numériques avec correction du PFC


    a+

  12. #11
    didou1982

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour et merci pour vos réponses.
    Maintenant je pense avoir compris ce que c'est que le PWM SMPS mais par contre par curiosité, j'aimerai savoir à quelle type d'application ca sert.
    En bref on alimente quel type de circuit avec du PWM SMPS?

    Cordialement

  13. #12
    RISC

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Salut,

    As-tu été sur les liens de mon post précédent ???

    Les dsPIC SMPS sont destinés à réaliser des alimentations et des convertisseurs en digital plutôt qu'en analogique comme cela était fait jusqu'à présent.

    La raison No 1 est que c'est la seule méthode pour encore améliorer le rendement des alimentations car grâce au processeur de traitement du signal on peut ajuster dynamiquement la sortie en fonction de la charge .

    Il y a par exemple ce reference design qui montre comment faire une alimentation 350W basée sur un dsPIC

    a+
    Dernière modification par RISC ; 19/11/2009 à 12h27. Motif: correction

  14. #13
    didou1982

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour,
    Merci RISC, pour ta réponse.
    J'avais lu ton lien mais j'étais pas sur d'avoir bien compris, maintenant c'est tu m'as confirmé que j'avais compris.

    J'aimerai savoir quel programmateur vous utilisez pour les dspic30f?

    Est ce que le module plugin du kit DV164037 (- MPLAB ICD 3 with Explorer 16 Kit) peut recevoir n'importe quel type de boitier?
    Sinon, quel type de boitier je dois choisir ( uniquement le 100/TQFP comme le pic donner avec) ?

    Merci d'avance pour les réponses.
    de chez microchip

  15. #14
    RISC

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Salut,

    Que souhaites-tu réaliser Didou ?
    Cherches-tu une carte à usage général ou dédiée ?
    Quelles fonctions veux-tu utiliser (USB, Ethernet, contrôle moteur, écran graphique,...),...
    Il existe beaucoup de cartes chez Microchip et d'autres fabricants (Mikroelektronika, Olimex,Techtoys, Sparkfun...), plus ou moins dédiées.

    a+

  16. #15
    didou1982

    Re : dsPIC30F SMPS - Réalisation d'une conversion A/N

    Bonjour,
    Je cherche une carte à usage générale pour programmer un dspic33f en usb si possible mais c'est pas indispensable.
    Je cherche le moins cher.

    A bientot, Merci.

Discussions similaires

  1. Aide sur SMPS
    Par ibtihel dans le forum Électronique
    Réponses: 11
    Dernier message: 15/02/2009, 10h22
  2. Problème programmation filtre sur Dspic30F
    Par invite0fffe0df dans le forum Électronique
    Réponses: 11
    Dernier message: 27/08/2008, 21h35
  3. Dspic30f --- I2c --- Cmps03
    Par invite018af9d8 dans le forum Électronique
    Réponses: 1
    Dernier message: 11/10/2007, 14h06
  4. réalisation d'une expérience
    Par invite1940c82f dans le forum Science ludique : la science en s'amusant
    Réponses: 3
    Dernier message: 17/06/2007, 10h15
  5. Réalisation d'une self HF réglable
    Par invite62ce5db1 dans le forum Électronique
    Réponses: 0
    Dernier message: 06/03/2006, 21h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...