Например TDA7294

Форум РадиоКот • Просмотр темы - STM32: генерирование частот порядка единиц МГц таймером
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 12:19:07

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32: генерирование частот порядка единиц МГц таймером
СообщениеДобавлено: Ср мар 15, 2017 22:44:34 
Сверлит текстолит когтями
Аватар пользователя

Карма: 11
Рейтинг сообщений: 13
Зарегистрирован: Пт июл 21, 2006 15:05:19
Сообщений: 1266
Откуда: плод воображения
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Всем привет! Поясните не совсем понимающему, реально ли осуществить сабж? Подозреваю, что реально, посредством использование режима таймера Output Compare. Но вот на деле нифига не получается. Инициализационный код генерю Кубом, а именно вот так:

Спойлер
Код:
static void MX_TIM2_Init(void)
{

  TIM_ClockConfigTypeDef sClockSourceConfig;
  TIM_MasterConfigTypeDef sMasterConfig;
  TIM_OC_InitTypeDef sConfigOC;

  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 0;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 2;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  {
    Error_Handler();
  }

  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
  {
    Error_Handler();
  }

  if (HAL_TIM_OC_Init(&htim2) != HAL_OK)
  {
    Error_Handler();
  }

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }

  sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
  sConfigOC.Pulse = 100;
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  if (HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  {
    Error_Handler();
  }

  HAL_TIM_MspPostInit(&htim2);

}


Потом из main() запускаю таймер: HAL_TIM_OC_Start(&htim2,1);

И... ничего не происходит. Выходная нога, будто в воздухе висит. Что я делаю не так?

_________________
R2AIV 73!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32: генерирование частот порядка единиц МГц таймером
СообщениеДобавлено: Чт мар 16, 2017 06:35:57 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
Период таймера 2, а значение канала 100 - вот он и не срабатывает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32: генерирование частот порядка единиц МГц таймером
СообщениеДобавлено: Чт мар 16, 2017 08:04:21 
Сверлит текстолит когтями
Аватар пользователя

Карма: 11
Рейтинг сообщений: 13
Зарегистрирован: Пт июл 21, 2006 15:05:19
Сообщений: 1266
Откуда: плод воображения
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Нашел этот косяк - исправил, все равно тишина.

_________________
R2AIV 73!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32: генерирование частот порядка единиц МГц таймером
СообщениеДобавлено: Вс апр 02, 2017 00:16:13 
Встал на лапы

Зарегистрирован: Пн июн 13, 2016 10:41:52
Сообщений: 129
Рейтинг сообщения: 0
А таймер сам стартанули хоть??
Функция халовская такая есть - HAL_TIM_Base_Start(&htim) . По умолчанию Куб таймер не стартует. Одной функции TIM_Init недостаточно. Вы его сами должны стартануть вот этой функцией. И он пойдет тикать.

И советую уходить от Куба, и чем скорее, тем лучше. Он пригоден только для того, чтобы что-то подсмотреть, чтобы легче разобраться.
А так.. не советую. Получите тормоза с кодом, нулевую оптимизацию со всеми вытекающими.

И если стоит задача генерации импульсов с частотой единицы мегагерц, то можно попробовать использовать прерывание таймера, в котором при переполнении просто будет инвертироваться нужная нога. В обработчике прерывания достаточно добавить
(GPIOx->ODR ^= GPIO_ODR_ODRx;)
Но таким способом на практике больше 5МГц на бюджетных контроллерах получить проблематично. Это ерунда, что пишут, что частота GPIO может быть 50Мгц. Чушь полнейшая. Проверено не раз. Больше 5МГц по таймеру.. увы.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32: генерирование частот порядка единиц МГц таймером
СообщениеДобавлено: Вс апр 02, 2017 15:54:35 
Сверлит текстолит когтями
Аватар пользователя

Карма: 11
Рейтинг сообщений: 13
Зарегистрирован: Пт июл 21, 2006 15:05:19
Сообщений: 1266
Откуда: плод воображения
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Да все, разобрался уже, спасибо! Таймер стартовал. Проблема была в некорректных настройках PLL, которые почему то Куб предложил - так что с этим надо быть осторожнее. Все уже давно работает и еще как )

_________________
R2AIV 73!


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y