TIM_OCMode_Toggle PWM Duty Controll
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-04 11:36 PM
I'm an absolutely beginner in microcontrollers.
I want to create a PWM signal wave signal to drive main power switch at 100Khz TIM1CH1&TIM1CH1N of STM32F103VC. I change duty (CCR1_Val) but the duty stay same at 50%. Can anybody tell me what I'm doing wrong? Thank You Photo to Attachments vu16 CCR1_Val = 90 ; TIM_DeInit(TIM1); /* Time Base configuration */ TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 360 - 1 ; // 72 MHz / 360 = 200 kHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); /* Channel 1, 2,3 and 4 Configuration in PWM mode */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle ; TIM_OCMode_PWM1 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCNPolarity_Low; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCNIdleState_Set; TIM_OCInitStructure.TIM_Pulse = CCR1_Val; // 25% TIM_OC1Init(TIM1,&TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); /* TIM1 counter enable */ TIM_Cmd(TIM1,ENABLE); /* Main Output Enable */ TIM_CtrlPWMOutputs(TIM1,ENABLE);- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-07 12:03 PM
Thank You very much but I have only TIM1CH1 pin free
I tried
to set TIM8 ( pin CH1 & CH2 free) (photo pin) but error comp. main.c(357): error: #20: identifier ''TIM1_UP_TIM10_IRQn'' is undefined ________________ Attachments : pin.PNG : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0dj&d=%2Fa%2F0X0000000bbm%2FmgyuHEhwGLe.R2F8scOCvx0Rj8bUP_oPj9X0KrcIEgg&asPdf=false- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-07 2:03 PM
The code was for an F4 rather than an F1 part, you will likely need to use a different interrupt designator, like TIM1_UP_IRQn, or TIM4_IRQn, etc, as appropriate, see stm32f10x.h and startup_stm32f10x.s
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-08 12:16 AM
> One might suppose, but I've never had much joy with the dead-time settings, so an example doing this would be welcome.
Do you mean ''I tried but it did not work as I expected'', or ''I never had an opportunity/reason to try''? I don't have the reason, but as this is what one would expect as a driving waveform for a bridge, I'd be very surprised if ST wouldn't pay attention to its working. I'd even expect an example to exist somewhere. STM32F10x_StdPeriph_Lib_V3.4.0\Project\STM32F10x_StdPeriph_Examples\TIM\ComplementarySignals\ appears to be such, but as I said, so far I haven't had the reason to go there. JW- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-08 3:39 AM
Not problem JW,
thanks anyway
for help intentionwhen
you have a question
,
any ideas
welcome
to evaluate
or
test
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2013-10-08 8:05 AM
Do you mean ''I tried but it did not work as I expected'', or ''I never had an opportunity/reason to try''?
Mostly the former, I have experimented with the timers, and tried to digest the documentation/diagrams. The timers only have a singular timing value, and I'm really not sure that I can combine say channel 1&2 and 3&4 to express a start/stop comparison with respect to the time base. I have experimented with dead-time settings, and had more frustration than success.Looking at the motor/pwm, multiple interrupt handlers for TIM1, I've concluded that they expect a much more dynamic interaction with the TIM parameters, rather that being able to set the hardware up once to perform some simple function generation automatically.Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-04-27 10:27 AM

- « Previous
-
- 1
- 2
- Next »