Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



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

PIC16F18325 : Plusieurs explications pour le mode PWM ??

  1. AmigaOS

    Date d'inscription
    mars 2008
    Localisation
    Hérault
    Messages
    745

    PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Bonjour

    En voulant programmer deux signaux PWM avec 2 fréquences différentes sur un PIC16F18325, je me suis rendu compte que dans le datasheet de ce µC il y a deux explications différentes pour programmer un signal PWM. Page 193 et Page 305... C'est peut être mon anglais mais je ne vois pas vraiment quelle différence il y a entre les deux. Pourtant les procédures de SETUP sont différentes :

    Page 195 :
    Code:
    19.1.7 SETUP FOR PWM OPERATION
    The following steps should be taken when configuring
    the module for using the PWMx outputs:
    1. Disable the PWMx pin output driver(s) by setting
    the associated TRIS bit(s).
    2. Configure the PWM output polarity by
    configuring the PWMxPOL bit of the PWMxCON
    register.
    3. Load the PR2 register with the PWM period
    value, as determined by Equation 19-1.
    4. Load the PWMxDCH register and bits <7:6> of
    the PWMxDCL register with the PWM duty cycle
    value, as determined by Equation 19-2.
    5. Configure and start Timer2:
    • Clear the TMR2IF interrupt flag bit of the
    PIR1 register.
    • Select the Timer2 prescale value by
    configuring the T2CKPS bit of the T2CON
    register.
    • Enable Timer2 by setting the TMR2ON bit of
    the T2CON register.
    6. Wait until the TMR2IF is set.
    7. When the TMR2IF flag bit is set:
    • Clear the associated TRIS bit(s) to enable
    the output driver.
    • Route the signal to the desired pin by
    configuring the RxyPPS register.
    • Enable the PWMx module by setting the
    PWMxEN bit of the PWMxCON register.
    Page 306 :
    Code:
    29.4.2 SETUP FOR PWM OPERATION
    The following steps should be taken when configuring
    the CCP module for standard PWM operation:
    1. Use the desired output pin RxyPPS control to
    select CCPx as the source and disable the
    CCPx pin output driver by setting the associated
    TRIS bit.
    2. Load the PR2 register with the PWM period
    value.
    3. Configure the CCP module for the PWM mode
    by loading the CCPxCON register with the
    appropriate values.
    4. Load the CCPRxL register and the CCPRxH
    register bits, with the PWM duty cycle value and
    configure the CCPxFMT bit of the CCPxCON
    register to set the proper register alignment.
    5. Configure and start Timer2, 4 or 6.
    • Clear the TMR2/4/6IF interrupt flag bits of
    the PIR4 register. See Note below.
    • Configure the T2/4/6CKPS bits of the
    T2/4/6CON register with the Timer
    prescale value.
    • Enable the Timer by setting the
    TMR2/4/6ON bit of the T2/4/6CON
    register.
    6. Enable PWM output pin:
    • Wait until the Timer overflows and the
    TMR2/4/6IF bits of the PIR4 register is set.
    See Note below.
    • Enable the CCPx pin output driver by
    clearing the associated TRIS bit.
    Une idée ?

    Merci

    -----

     


    • Publicité



  2. antek

    Date d'inscription
    février 2015
    Messages
    8 510

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Et l'incontournable lien vers la doc !?
     

  3. AmigaOS

    Date d'inscription
    mars 2008
    Localisation
    Hérault
    Messages
    745

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

     

  4. antek

    Date d'inscription
    février 2015
    Messages
    8 510

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Re
    Il y a plusieurs formes de PWM, le "standard" que tout le monde connait et un "évolué" qui permet de commander directement un pont H ou triphasé.
     

  5. AmigaOS

    Date d'inscription
    mars 2008
    Localisation
    Hérault
    Messages
    745

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Ok. Du coup, lequel est lequel ? Vu qu'il y a marqué Standard pour les deux.
     


    • Publicité



  6. antek

    Date d'inscription
    février 2015
    Messages
    8 510

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Ah ben non, ça ne correspond pas à ce que je disais #4.

    Les fonctionnements et possibilités ne sont pas les mêmes, faut se taper les deux paragraphes.
    Bonne lecture . . .
     

  7. invite29322649

    Date d'inscription
    mars 2017
    Âge
    29
    Messages
    62

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Bonsoir,

    pour répondre simplement à ta question AmigaOS, le premier te permet d'utiliser la sortie de ton choix par le registre RxyPPS , le deuxième t'oblige à utiliser uniquement une sortie dédiée (CCPx pin).
    Le premier ne permet pas les fonctions "Capture" et "Compare", le deuxième oui.

    Donc le premier est plus simple pour un usage PWM classique, tu configures ta base de temps pour obtenir une période x et un rapport cyclique y avec une résolution z, le deuxième est requis pour un usage plus élaboré, avec possibilité d'auto-shutdown, auto-restart, dead-band, etc.
    Bref tout le nécessaire pour faire des alims à découpage.
    Dans les 2 cas tu peux créer un PWM, ça dépend donc uniquement de ton application.
     

  8. AmigaOS

    Date d'inscription
    mars 2008
    Localisation
    Hérault
    Messages
    745

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Merci Ça tombe bien, j'ai testé le 1er et j'ai plutôt besoin du 1er.

    Par contre j'ai dû me tromper quelque part. J'ai aucun signal en sortie (état bas) :
    Code:
        TRISAbits.TRISA0 = 1 ;
        PWM5CONbits.PWM5POL = 1 ;   // Active Low
        PR2 = 255 ;
        PWM5DCH = 0 ; PWM5DCL = 255 ;   // Exemple
        PIR1bits.TMR2IF = 0 ;
        T2CONbits.T2CKPS = 0 ;      // Prescaler=1 (00) ou 4, 16, 64
        T2CONbits.TMR2ON = 1 ;
        while(PIR1bits.TMR2IF==0) ;
        TRISAbits.TRISA0 = 0 ;
        RA0PPS = 0b00000011 ;       // PWM5=00000011, PWM6=00000010
        PWM5CONbits.PWM5EN = 1 ;
     

  9. RISC

    Date d'inscription
    novembre 2006
    Messages
    3 704

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Salut,
    Le PIC16F18325 est une usine à registres...comparé aux anciens PIC16. Perso, j'utilise le plugin MCC dans MPLAB X pour initialiser les périphériques. Surtout en ce qui concerne les registres PPS de routage des péirphérique vers les broches car c'est vraiment compliqué. Idem d'ailleurs pour les portes de logique programmable (CLC) qui ont une multitude de registres.
    a+
    Ma marotte ? les microcontrôleurs ;=)
     

  10. AmigaOS

    Date d'inscription
    mars 2008
    Localisation
    Hérault
    Messages
    745

    Re : PIC16F18325 : Plusieurs explications pour le mode PWM ??

    Finalement j'ai résolut le problème. (Du côté de mon oscilloscope )
     


    • Publicité







Sur le même thème :





 

Discussions similaires

  1. LaTeX débarque sur FSG : explications et mode d'emploi
    Par Futura dans le forum Annonces Officielles
    Réponses: 4
    Dernier message: 08/12/2015, 08h08
  2. [Pré-BAC] Le mode de réplication de l'adn: Explications
    Par Matheojudar dans le forum Exercices en biologie
    Réponses: 1
    Dernier message: 09/09/2012, 21h39
  3. [MPLAB] Explications mode Pas à Pas
    Par pseudoguyanais dans le forum Électronique
    Réponses: 2
    Dernier message: 09/09/2010, 13h12