Easyelectronics.ru

Электроника для всех
Текущее время: 08 мар 2021, 08:44

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 13:25 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
Добрый день подскажите от чего зависит выбор регистров для настройки таймера.
Код:
TIM1->CCR4 = 0;
TIM1->CCMR2 |= TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1;
TIM1->CCER |= TIM_CCER_CC4E;

необходимо регулировать яркость светодиода,
подключенного к выводу
кнопками «+» PA2 и «-» PA3 Яркость должна изменяться от 0 до 100 %, шаг изменения равен
5 %. Яркость должна регулироваться коэффициентом заполнения ШИМ
сигнала. Частота ШИМ сигнала 6 Кгц. Светодиод PB0.
Очень нуждаюсь в помощи какой регистр мне выбрать для этого. Думал CCR4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 13:37 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1425
integral123 писал(а):
Очень нуждаюсь в помощи какой регистр мне выбрать для этого. Думал CCR4

И какие же были основания так думать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 13:44 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 5097
Откуда: Кемеровская область, Киселевск
Настройка периферии таймер зависит от режимов работы.
Выбор ножки микроконтроллера зависит от трассировки платы и выбора номера таймера и его каналов.
Чтобы узнать какие таймеры и его каналы на PB0 вы можете использовать CubeMX для этого. Тыкнуть на нужную ножку и посмотреть в всплывающем меню возможности, либо через периферию выбрав конкретный таймер и его канал и режим PWM генерации и посмотреть на какую ножку он выходит.
На PB0 выходит Timer3 и его 3 канал PWM
Таймер 1 и его канал 4 выходит на PA11
Вложение:
Screenshot_5.png
Screenshot_5.png [ 18.48 Кб | Просмотров: 2237 ]

Вложение:
Screenshot_6.png
Screenshot_6.png [ 31.55 Кб | Просмотров: 2237 ]


TIM1->CCR4 это 1 таймер и 4 канал
В референс мануале откройте нужный таймер и найдите раздел PWM mode там хорошо расписано как работает и как настраивается этот режим.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 14:42 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
Reflector писал(а):
integral123 писал(а):
Очень нуждаюсь в помощи какой регистр мне выбрать для этого. Думал CCR4

И какие же были основания так думать?

Я новичок в этом деле, и многое непонятно. Работаю в среде coocox.
Код:
#include "cmsis_boot/stm32f10x.h"
int i=0;
int k=0;
void TIM6_IRQHandler()
{
  TIM6->SR &= ~TIM_SR_UIF;
  if(!(GPIOA->IDR & GPIO_IDR_IDR2))
  {
      i++;
      if(i > 30)
      {
         if(TIM1->CCR4 < 100)
         {
            TIM1->CCR4 += 5;
         }
         i=0;
      }
  }
  if(!(GPIOA->IDR & GPIO_IDR_IDR3))
  {
     k++;
     if(k > 30)
     {
        if(TIM1->CCR4 > 0)
        {
          TIM1->CCR4 -= 5;
        }
        k=0;
     }
  }

}
int main(void)
{
   SCB->VTOR=0x20000000;
   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
   RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
   RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;
   RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
   RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
   GPIOA->CRL &= ~GPIO_CRL_MODE2;
   GPIOA->CRL &= ~GPIO_CRL_CNF2;
   GPIOA->CRL |= GPIO_CRL_CNF2_0;
   GPIOA->CRL &= ~GPIO_CRL_MODE3;
   GPIOA->CRL &= ~GPIO_CRL_CNF3;
   GPIOA->CRL |= GPIO_CRL_CNF3_0;
   GPIOB->CRL |= GPIO_CRL_MODE0_1;
   GPIOB->CRL &= ~GPIO_CRL_CNF0;
   GPIOB->CRL |= GPIO_CRL_CNF0_1;
   TIM6->PSC = 3599;
   TIM6->ARR = 99;
   TIM6->CNT = 0;
   TIM6->DIER |= TIM_DIER_UIE;
   TIM6->CR1 |= TIM_CR1_CEN;
   NVIC_EnableIRQ(TIM6_IRQn);
   TIM1->PSC = 119;
   TIM1->ARR = 100;
   TIM1->CNT = 0;
   TIM1->CCR4 = 0;
   TIM1->CCMR2 |= TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1;
   TIM1->CCER |= TIM_CCER_CC4E;
   TIM1->BDTR |= TIM_BDTR_MOE;
   TIM1->CR1 |= TIM_CR1_CEN;
    while(1)
    {
    }
}

код моей программы, но я не понимаю какой канал нужен(CCR1, CCR2, CCR3..), чтобы все работало, уже миллион сайтов облазил, ничего непонятно и никакой полезной информации....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 14:46 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1425
integral123 писал(а):
но я не понимаю какой канал нужен(CCR1, CCR2, CCR3..)

Все CCRx ассоциированы с соответствующими каналами таймера, так что сначала нужно было посмотреть в DataSheet или кубе какие каналы каких таймеров в принципе висят на PB0.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 15:34 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
Reflector писал(а):
integral123 писал(а):
но я не понимаю какой канал нужен(CCR1, CCR2, CCR3..)

Все CCRx ассоциированы с соответствующими каналами таймера, так что сначала нужно было посмотреть в DataSheet или кубе какие каналы каких таймеров в принципе висят на PB0.

Подскажите, пожалуйста, согласно этому мануалу я должен выбрать канал CCR2 и ремап AFIO->MAPR |= AFIO_MAPR_TIM1_REMAP_1?


Вложения:
12.png
12.png [ 116.62 Кб | Просмотров: 2214 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 15:56 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1425
integral123 писал(а):
Подскажите, пожалуйста, согласно этому мануалу я должен выбрать канал CCR2 и ремап AFIO->MAPR |= AFIO_MAPR_TIM1_REMAP_1?

Проще выбрать TIM3_CH3, чем комплементарный канал TIM1_CH2N.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 15:59 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
Reflector писал(а):
integral123 писал(а):
Подскажите, пожалуйста, согласно этому мануалу я должен выбрать канал CCR2 и ремап AFIO->MAPR |= AFIO_MAPR_TIM1_REMAP_1?

Проще выбрать TIM3_CH3, чем комплементарный канал TIM1_CH2N.

Мне нужен именно TIM1, подскажите, пожалуйста, что означает включить инвертированный канал?
как мне TIM1 настроить на него?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 16:33 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 7304
Обратите внимание на регистр TIM1->CCER


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 16:49 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
u37 писал(а):
Обратите внимание на регистр TIM1->CCER

ни о чем не говорит )))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Инвертированный канал
СообщениеДобавлено: 25 дек 2020, 18:15 
Только пришел

Зарегистрирован: 25 дек 2020, 13:17
Сообщения: 6
Кто-нибудь может подсказать что означает инвертированный канал ?
Код:
GPIOB->CRL |= GPIO_CRL_MODE0_1;
   GPIOB->CRL &= ~GPIO_CRL_CNF0;
   GPIOB->CRL |= GPIO_CRL_CNF0_1;

что значит включить инвертированный канал в том же регистре ?..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Настройка вывода и канала таймера TIM1 в STM32F107
СообщениеДобавлено: 25 дек 2020, 18:22 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2161
Откуда: Докучаевск-Волноваха
инвертированный канал - это который работает в противофазе с основным. еще называют комплементарным. нужен для двухтактного режима работы.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB