Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 29.10.2014, 17:59  
Uvavan
Временная регистрация
 
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
Uvavan на пути к лучшему
По умолчанию stm32f103+асинхронный двигатель

Добрый вечер!
Помогите понять где ошибаюсь. Управляю симистором. Схема подключения и опр. нуля. Управления фазовое "смотрю" ноль, включаю таймер на определенную задержку , по прерыванию таймера поднимаю ножку.
задержки
PHP код:
const uint16_t Power[100]=
                                                { 
9635,8827,8522,8304,8127,7975,7841,7720,7608,7505,  7407,7315,7228,7144,7064,
                                                  
6987,6912,6840,6769,6701,6634,6569,6505,6443,6382,  6321,6262,6204,6146,6090,6034,
                                                    
5978,5923,5869,5816,5710,5657,5605,5553,5502,5451,  5400,5349,5299,5248,5198,5148,
                                                    
5098,5048,4998,4948,4898,4848,4798,4747,4697,4646,  4596,4545,4494,4442,4391,4338,
                                                    
4286,4233,4180,4126,4075,4017,3962,3906,3849,3792,  3733,3674,3614,3552,3490,3426,
                                                    
3361,3294,3225,3155,3082,3007,2930,2850,2766,2678,  2586,2488,2384,2272,2150,2015,
                                                    
1862,1683,1461,1147
                                                
}; 
время в мкс.

Сам код:
PHP код:
//_---------------------------------------------------
//_---------------------------------------------------
// Òàéìåð óïð. òèðèñòîðîì
//_---------------------------------------------------
//_---------------------------------------------------    
 
void TIM8_TRG_COM_TIM14_IRQHandler()
 {
    
int i;
    
TIM14-›SR&=~TIM_SR_UIF;    
    
TIM14-›CR1&=~TIM_CR1_CEN;
  
GPIOC-›BSRR|=GPIO_BSRR_BS0;
    
//delay_10us(10);
    //GPIOC-›BRR|=GPIO_BRR_BR0;
    
TIM14-›SR=0;
 }

//_---------------------------------------------------
//_---------------------------------------------------
// Ïåððûâàíèå Zero
//_---------------------------------------------------
//_---------------------------------------------------
void EXTI0_IRQHandler()
{
  
GPIOC-›BRR|=GPIO_BRR_BR0;
    
TIM14-›CNT=0;
    
TIM14-›ARR=Power[termz];
    
//time_set=0;
    
TIM14-›CR1|=TIM_CR1_CEN;     
  
EXTI-›PR|=EXTI_PR_PR0;    


Настройка таймера и прерывания:
PHP код:
// Íàñòðîéêà òàéìåðà äëÿ óïðàâëåíèÿ âåíòèëÿòîðîì
    
TIM14-›PSC=71;
    
TIM14-›CR1|=(1UL‹‹2);
  
TIM14-›DIER|=0x01// interrupt enable
  
TIM14-›EGR|=0x01;  // Re-initializ 
PHP код:
// Íàñòðîéêà ïðåðûâàíèé PB12- start, PB13- stop, PB14- åíêîäåð êíîïêà;
    // Âõîäû ïðåðûâàíèé in1 è in 2 îò òåðìîñòàòîâ
    // Âõîä ïðåðûâàíèÿ îïðåäåëåíèÿ íóëÿ ZERO
    
EXTI-›FTSR|=EXTI_FTSR_TR14|EXTI_FTSR_TR13|EXTI_FTSR_TR12  |EXTI_FTSR_TR7|EXTI_FTSR_TR4|EXTI_FTSR_TR0;
    
EXTI-›IMR|=EXTI_IMR_MR14|EXTI_IMR_MR13|EXTI_IMR_MR12|EXT  I_IMR_MR7|EXTI_IMR_MR4|EXTI_IMR_MR0;
    
AFIO-›EXTICR[3]|=AFIO_EXTICR4_EXTI14_PB|AFIO_EXTICR4_EXTI13_PB|AF  IO_EXTICR4_EXTI12_PB;
    
AFIO-›EXTICR[1]|=AFIO_EXTICR2_EXTI4_PA|AFIO_EXTICR2_EXTI7_PC;
    
AFIO-›EXTICR[0]|=AFIO_EXTICR1_EXTI0_PE
прерывание 0 срабатывание по заднему фронту.

Что получается:
При подачи сигнала длительностью 100мкс вентилятор крутится на одной и той же скорости не мах. гдето 20-30% (в коде закомментировано). При выключение пина в след. прерывание нуля вообще не крутится.

P.S. Значение задержки идет от 1% до 99%
Бьюсь над этим долго не могу понять причины.
Реклама:
Uvavan вне форума  
Непрочитано 29.10.2014, 19:58  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

где настройка частот камня/таймеров ? предлагаешь догадаться ?
зачем тебе 6 (!!!) линий EXTI ?
и вроде по описанию TIM14 только вверх тикает = твои условия никогда не сработают.
PS могу ошибаться.
Hives вне форума  
Непрочитано 29.10.2014, 20:25  
Uvavan
Временная регистрация
 
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
Uvavan на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

Частота камня 72МГц.
Делитель у таймера 72.

PHP код:
TIM14-›PSC=71
А считает правильно вверх. в ARR заносим наше значение и считаем.
А прерывания на 3 кнопки и 2 внешних входа.

Какое условие вы имеете ввиду?? Прерывание у таймера срабатывает по переполнению.

P.S. Настройка таймера присутствует в первом посте.

Последний раз редактировалось Uvavan; 29.10.2014 в 20:29.
Uvavan вне форума  
Непрочитано 29.10.2014, 20:34  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

будем инфо по капле давить ? прескалеры AHB, APB, TIM ? прочее?

насчет никогда: сеть 50гц, событие ZERO-CROSS = 100 гц = 10мсек
у тебя даже если таймер тикает на 1 мгц (что маловероятно) - переполнение произойдет через 50 мсек
прикол чувствуешь?

Последний раз редактировалось Hives; 29.10.2014 в 20:39.
Hives вне форума  
Непрочитано 29.10.2014, 21:10  
Uvavan
Временная регистрация
 
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
Uvavan на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

если не секрет откуда взялось 50 мс если у меня даже не указано сколько в АRR занесено??

А частота МК настраивается через стартап. А таймера указана с самого первого поста
Uvavan вне форума  
Непрочитано 29.10.2014, 21:13  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

А зачем здесь STM32?
Easyrider83 вне форума  
Непрочитано 29.10.2014, 21:18  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

Uvavan
минимальный квант = 65536 - 9635 = 55901 мкс // Power[0]
максимальный квант = 65536 - 1147 = 64389 мкс // Power[99]
причем реально больше в разы, т.к. TIM14 max = 36 mhz (по datasheet)
PS и кто вас только считать учил...

кстати - только заметил еще косяк: CNT = 0 - счет всегда с 0

Последний раз редактировалось Hives; 29.10.2014 в 21:23.
Hives вне форума  
Непрочитано 29.10.2014, 21:20  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

Easyrider83 да хоть какой дай... результат выше.
Hives вне форума  
Непрочитано 29.10.2014, 21:22  
Uvavan
Временная регистрация
 
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
Uvavan на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

Он считает от 0 до указанного значения в регистре ARR.
И имейте хоть немного уважения к другим людям.
А насчет 36МГц сейчас посмотрю.
P.S. А смт потому что он не только вентилятором управляет.
Uvavan вне форума  
Непрочитано 29.10.2014, 21:39  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: stm32f103+асинхронный двигатель

нда, уточнил - считает действительно не полный диапазон, а до ARR
извиняюсь, ошибочка вышла.

едем дальше: переменную termz ты чем крутишь? наружу какая нибудь связь есть?
Hives вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Асинхронный двигатель - генератор vvs777 Электроника - это просто 110 09.12.2011 06:20
Асинхронный двигатель на пальцах _DmZ_ Электроника - это просто 119 12.07.2011 19:47
Диммер для ламп накаливания и асинхронный двигатель shum_inc Источники питания и свет 77 26.02.2007 11:37
[Решено] Асинхронный двигатель и персональный компьютер Sky51 Информация по радиокомпонентам 7 26.02.2006 17:56


Часовой пояс GMT +4, время: 23:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot