This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

PWM using CAPCOM1/2 in XC164CS

Hello,
Can anyone tell me if could be possible to create a differents PWM with variable duty cycle by using CAPCOM1/2?
How would you configure output pines? I have tried it in Dave, but I dont see.
Thanks.

Parents Reply Children
  • Ok, I see that it is possible.
    Nikolay, your post hasn't hel me at all (thank you :)), but anyway, I has downloaded a proyect using CAPCOM2 fron Infineon website. I tested it in my starter kit and It works correctly. It apperares a PWM signal
    I used pin 9.0 as output (channel 16).
    Anyway, I don't undersand 2 things:
    1-. What does CC2_CC16 register mean? I tried to search into user manual, but I don't find it.

    2-. How can I control the periode of the PWM singal?
    Tnaks
    I put the used code here:

      CC2_IOC        =  0x0000;      // load CAPCOM2 I/O control register
    
      CC2_T78CON     =  0x0005;      // load CAPCOM2 timer 7 and timer 8 control
                                     // register
    
      CC2_T7         =  0x48E5;      // load CAPCOM2 timer 7 register
    
      CC2_T7REL      =  0x48E5;      // load CAPCOM2 timer 7 reload register
    
      CC2_T8         =  0x0000;      // load CAPCOM2 timer 8 register
    
      CC2_T8REL      =  0x0000;      // load CAPCOM2 timer 8 reload register
    
    
    
      CC2_CC16       =  0xA472;      // load CAPCOM2 channel 16 register
    
    
      CC2_CC17       =  0x0000;      // load CAPCOM2 channel 17 register
    
    
    
      CC2_CC18       =  0x0000;      // load CAPCOM2 channel 18 register
    
    
    
      CC2_CC19       =  0x0000;      // load CAPCOM2 channel 19 register
    
    
      CC2_CC20       =  0x0000;      // load CAPCOM2 channel 20 register
    
    
    
      CC2_CC21       =  0x0000;      // load CAPCOM2 channel 21 register
    
    
      CC2_CC22       =  0x0000;      // load CAPCOM2 channel 22 register
    
    
      CC2_CC23       =  0x0000;      // load CAPCOM2 channel 23 register
    
    
      CC2_CC24       =  0x0000;      // load CAPCOM2 channel 24 register
    
    
    
      CC2_CC25       =  0x0000;      // load CAPCOM2 channel 25 register
    
    
      CC2_CC26       =  0x0000;      // load CAPCOM2 channel 26 register
    
    
      CC2_CC27       =  0x0000;      // load CAPCOM2 channel 27 register
    
    
      CC2_CC28       =  0x0000;      // load CAPCOM2 channel 28 register
    
    
    
      CC2_CC29       =  0x0000;      // load CAPCOM2 channel 29 register
    
    
    
      CC2_CC30       =  0x0000;      // load CAPCOM2 channel 30 register
    
    
      CC2_CC31       =  0x0000;      // load CAPCOM2 channel 31 register
    
      CC2_M4         =  0x0007;      // load CAPCOM2 mode register 4
      CC2_M5         =  0x0000;      // load CAPCOM2 mode register 5
      CC2_M6         =  0x0000;      // load CAPCOM2 mode register 6
      CC2_M7         =  0x0000;      // load CAPCOM2 mode register 7
    
      CC2_DRM        =  0x0000;      // load CAPCOM2 double-register mode register
    
      CC2_SEM        =  0x0000;      // load CAPCOM2 single event mode register
    
      CC2_SEE        =  0x0000;      // load CAPCOM2 single event enable register
    
      CC2_OUT        =  0x0000;      // load CAPCOM2 compare output register
    
    
      ALTSEL1P9     |=  0x0001;      // select alternate output function
      DP9  |= 0x0001;    //set direction register
    
    
      CC2_T78CON_T7R    = 1;    // set CAPCOM2 timer 7 run bit
    
    
    

  • What does CC2_CC16 register mean? I tried to search into user manual, but I don't find it.

    CC2 => Capture Compare Module 2
    CC16 => Capture Compare Channel 16

    How can I control the period of the PWM signal?

    You have chosen Compare Mode 3:
    Set Output Pin on each Match.
    Reset output pin on each timer overflow;
    Only one interrupt per timer period.
    Allocated to T7

    Basically CC2_T7 is your period in this case.

    So when the CC2_CC16 compare value is equal to CC2_T7 then the PWM output goes high and the PWM output goes low when the CC2_T7 overflows (0xFFFF -> 0x48E5). 0x48E5 is your reload value.

  • Hello Chris,
    I've noticed that CC2_T7 register serves to control the wave period and CC2_CC16 to control duty cycle. :)
    In my case:
    CC2_CC16 = 0xFFFF -> Duty Cycle = 0 %
    CC2_CC16 = 0x48E5 -> Duty Cycle = 100 %
    Thanks ;-)

  • I have one question:
    The CC20IO (P9.4) output hasn't got "compare mode 3". Why?

  • It has it.I've noticed that the P9.4 had configured as general output.

  • hello

    I am bit confuse about the period. How can we generate 50micro second period using CAPCOM2 in XC164CS? Can anyone hwlp me plz?

    Vivek

  • hello

    Sorry above information is unclear. I just want to produce 50micro second period PWM or u can say 20Khz. What should be the timer reload value?

    Vivek