реклама на сайте
подробности

 
 
> STM32F051 + IR2104, Драйвер биполярного двигателя
Oxford
сообщение Apr 13 2013, 19:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 13-04-13
Из: Кемеровская область
Пользователь №: 76 490



Пока пытаюсь вывести ШИМ на фазу, т.е. тупо запитать ее током и регулировать без обратной связи, т.е. задавать скважность от 0 до 1000. С точностью десятых.

Т.е. настраиваю таймер:
CODE
uint16_t Freq = 20000;//Частота
uint16_t TimerPeriod = 0;
uint16_t Pulse = 0;


TimerPeriod = (uint16_t) (SystemCoreClock / Freq) - 1;
Pulse = (uint16_t) (((uint32_t) 500 * (TimerPeriod- 1)) / 1000);

TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;

И далее устанавливаю скважность:
Код
Pulse = (uint16_t) (((uint32_t) 600 * (TimerPeriod- 1)) / 1000); //ВЫХОД
TIM_SetCompare3(TIM3, Pulse);

Так вот от 500 до 1000 что эквивалентно 50% - 100%, ток регулируется, а ниже 500 что-то нет устанавливается ток.
Если сменить полярность шим на TIM_OCPolarity_Low:
то ситуация обратная от 0 до 500 регулируется, а выше 500 нет.
Где я пролетел?

Вобщем снизил до 18 кгц стал изменяться от 0 до 100.
Походу это связано с работой IR2104

Сообщение отредактировал IgorKossak - Apr 26 2013, 12:42
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!


--------------------
RADIOWOLF.RU
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 22:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016