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

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

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

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

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

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


 
Опции темы
Непрочитано 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.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Помогите с таймерами STM32F0

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

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

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

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

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

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

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

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

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

паяльные станции вон посмотрите - там частота регулирования меньше 1герца.
да и помех меньше. тиристоры ой как быстро включаются
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 22.07.2019, 13:21  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
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, время: 10:38.


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