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

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

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

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

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

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


 
Опции темы

Помогите с таймерами STM32F0

Непрочитано 22.07.2019, 00:00  
ConstantX
Частый гость
 
Регистрация: 10.12.2008
Адрес: Кривой Рог
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ConstantX на пути к лучшему
По умолчанию Помогите с таймерами STM32F0

Доброго времени суток!
Решил для себя заморочиться с фазовым регулятором мощности с дисплейчиком, с шиной SPI. Выбор контроллера пал на STMF030F4, его ног и переферии достаточно (ADC, SPI, и таймеры). В чем вышел затык, выход SPI и таймера физически находятся на одних и тех же ногах МК, и ремапить нельзя.
Для организации регулятора мощности выбрал TIM3 и One-pulse mode. Все делается апаратно. Но тогда нельзя использовать ногу SPI MOSI.
Я пытался заставить работать связку таймеров TIM1 и TIM3: TIM1 использовать в качестве Input Capture (детектор перехода через ноль) и по сигналу TRGO запускать TIM3 в одноимпульсном режиме. Но увы, не работает, не пойму где я затупил.
Таймер TIM3 настроенный на внешний вход отрабатывает корректно, но если перевожу на TIM1 ITR0 то все, затык...

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

Код:
// **** IO config ****
  RCC-›AHBENR |= RCC_AHBENR_GPIOAEN;
  RCC-›APB1ENR |= RCC_APB1ENR_TIM3EN;                           // enable TIM3 clock;
  RCC-›APB2ENR |= RCC_APB2ENR_TIM1EN;                           // enable clock TIM1 
  // TIM3 CH1 - output PA6   
  GPIOA-›MODER |= GPIO_MODER_MODER6_1;  			// alternate function mode
  GPIOA-›OTYPER &= ~GPIO_OTYPER_OT_6;                           // out is Push-Pull
  GPIOA-›OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6_0;                   // Medium speed
  GPIOA-›PUPDR &= ~GPIO_PUPDR_PUPDR6;                           // No pull-up
  GPIOA-›AFR[0] |= 0x01000000;                                  // p. 140 Alternate function AF1, p. 33 datasheet 
  // TIM1 CH2 - input PA9 (pin 17)
   GPIOA-›MODER |= GPIO_MODER_MODER9_1;
  GPIOA-›OTYPER &= ~GPIO_OTYPER_OT_9;                           // out is Push-Pull
  GPIOA-›OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9_0;                   // Medium speed
  GPIOA-›PUPDR &= ~GPIO_PUPDR_PUPDR9;                           // No pull-up
  GPIOA-›AFR[1] |= 0x00000020;                                  // p. 140 Alternate function AF2,  p. 33 datasheet 
  // **** end IO config ****
  
  /*  - - - - - - - timer 1 config - - - - - -  -*/ 
  TIM1-›CCMR1 |= TIM_CCMR1_CC2S_0;                              // channel CC2 is configured as input, IC2 is mapped on TI2
  TIM1-›CCER |= (TIM_CCER_CC2P |TIM_CCER_CC2NP);                // add: both edges 
  // select slave mode:
  TIM1-›SMCR &= ~TIM_SMCR_TS_0;
  TIM1-›SMCR |= (TIM_SMCR_TS_2 | TIM_SMCR_TS_1);                // TS[2:0] = 0b110 -› Filtered Timer Input 2 (TI2FP2)
 // Gated mode SMS :
  TIM1-›SMCR |= (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0);
  // MMS: Master mode selection --›
  // 010: Update - The update event is selected as a trigger output (TRGO).
  TIM1-›CR2 |= ( TIM_CR2_MMS_1 );
  TIM1-›CR2 &=  ~(TIM_CR2_MMS_2 | TIM_CR2_MMS_0) ;
  
  //TIM1-›CR1 |= TIM_CR1_OPM;                                     // 1 - OnePulseMode, 0 - RepetitiveMode
  
  TIM1-›CCER |= TIM_CCER_CC2E;                                  // Enable chanel CC2 only after config CCMR !!!
  TIM1-›CR1 |= TIM_CR1_CEN;
    
    
  /*  - - - - - - - timer 3 config - - - - - -  -*/ 
//Значение регистров выбраны только для отладки! 
// будут меняться программно из основного цикла 
  TIM3-›PSC = 8-1;                                              // 8 MHz / 8 = 1 MHz to counter
  TIM3-›ARR = 9000-1;                                           // 1 MHz / 10000 = 100 Hz cycle
  TIM3-›CCR1 = 5500-1;                                          // delay "start" 
  // TIM3 config PWM2 OP mode
  TIM3-›CCMR1 &= ~TIM_CCMR1_CC1S;                               // CC1 channel is configured as output
  TIM3-›CCER &= ~TIM_CCER_CC1P;                                 // activ - high
  TIM3-›CCMR1 |= (TIM_CCMR1_OC1M |                              // PWM mode 2
                  TIM_CCMR1_OC1PE);                             // Output compare enable
  // select triger  Internal Trigger 0 (ITR0) -- TIM1
  // Trigger Mode - The counter starts at a rising edge of the trigger TRGI
  TIM3-›SMCR &= ~(TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_SMS_0);                            
  TIM3-›SMCR |= ( TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1);             // Only the start of the counter is controlled
  // finishing setup and start:
  TIM3-›CCER |= TIM_CCER_CC1E;                                  // enable output pin 
  TIM3-›CR1 |= TIM_CR1_OPM;                                     // 1 - OnePulseMode, 0 - RepetitiveMode
  TIM3-›BDTR |= TIM_BDTR_MOE;                                   // out enable
  TIM3-›CR1 |= TIM_CR1_CEN;                                     // enable timer
Реклама:

Последний раз редактировалось ConstantX; 22.07.2019 в 09:20.
ConstantX вне форума  
Непрочитано 22.07.2019, 10:11  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

А почему бы не использовать external interrupt? Вроде он вешается на любой порт F030.
ampy вне форума  
Непрочитано 22.07.2019, 10:44  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

Шимить регулятор мощности таймером? Зачем? В зависимости от характеристик объекта регулирования достаточно дергать грелку с периодом от пары секунд до пары десятков минут.
Не нужен там ШИМ.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 22.07.2019, 11:15  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

Чтоб 2 раза не вставать - использую такой детектор нуля.
Миниатюры:
Нажмите на изображение для увеличения
Название: mini1.jpg
Просмотров: 0
Размер:	35.6 Кб
ID:	143563  
ampy вне форума  
Непрочитано 22.07.2019, 11:30  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

А,если просто на вход оптрона подать синус 220в через 1 мегом. Только защитить оптрон обратно включенным диодом. И после резистора диод на +питания.
baiderin вне форума  
Непрочитано 22.07.2019, 11:48  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

Сообщение от baiderin Посмотреть сообщение
А,если просто на вход оптрона подать синус 220в через 1 мегом. Только защитить оптрон обратно включенным диодом. И после резистора диод на +питания.
Будут широкие импульсы. А надо как можно четче ноль детектировать. А то тиристоры - они такие. Вместо подачи маленького импульса можно наоборот включить его на следующие полпериода.
ampy вне форума  
Непрочитано 22.07.2019, 12:19  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,124
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

нафига такой детектор??
мне хватает оптрона, резистор на 56к и диод шоп оптрон не пробило обратным напряжением. работает 3 фазный регулятор на 18 люстр в ресторане.
шим делается на прерываниях ногодрыгом. 18 фаз.

вот любят люди усложнять себе задачи.
__________________
кагмаподэ магмаподэ
индюк вне форума  
Эти 2 пользователя(ей) сказали Спасибо индюк за это сообщение:
baiderin (22.07.2019), eddy (22.07.2019)
Непрочитано 22.07.2019, 12:29  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

Сообщение от ampy Посмотреть сообщение
Будут широкие импульсы.
Главное-нарастающий фронт. А он будет крутым.И будет соответствовать моменту перехода через "0".Причем точнее, чем в симисторах с встроенной схемой детектора.
baiderin вне форума  
Непрочитано 22.07.2019, 12:48  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,124
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

регулировать тэны вообще спокойно можно без всякого шима привязанного к сети. это актуально только для лампочек.

паяльные станции вон посмотрите - там частота регулирования меньше 1герца.
да и помех меньше. тиристоры ой как быстро включаются
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 22.07.2019, 13:21  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

Встречался, что стояли отдельные трансформаторы для определения перехода через 0, а вся схема охвачена ОС по RMS выходного напряжения с использованием AD536... Так что случаи бывают разные, а пара транзисторов не беда.
ampy вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите русифицировать Anycall Samsung SEC SCHW770, SEC SCHW420, SEC SCHW2700, SEC SCHW570 Rusik_best Автоматика и аппаратура связи 0 27.12.2011 16:13
Помогите, пожалуйста, с PICом и дисплеем VaL_KX Proteus 4 15.11.2010 22:33
Помогите найти схему радио маяка или "Охоты на лис" IgorAVR Автоматика и аппаратура связи 1 16.01.2007 14:43
помогите подобрать транзистор _grey_ Информация по радиокомпонентам 6 16.12.2006 13:33
Помогите пожалуйста.Муз.центр SAMSUNG MODEL MM-L7 arist Поиск схем. Делимся схемами 1 19.10.2006 01:22


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.