Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: TIM1_CH3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
quandr
Добрый день.
Возникла проблема. В STM32F4 есть источник для DMA2, который называется TIM1_CH3.
Какое событие при этом подразумевается для запуска транзакции DMA?
Например TIM1_UP - это просто перезагрузка таймера. Для TIM1_CH3 перезагрузка таймера в режиме ШИМ на 3 канале не катит.
Просветите, пожалуйста, по этому вопросу. Спасибо.
Сергей Борщ
QUOTE (quandr @ Apr 25 2018, 09:52) *
Какое событие при этом подразумевается для запуска транзакции DMA?
То событие, которое вызывает установку CC3IF. При этом еще должен быть разрешен третий канал, т.е. должен быть взведен CC3E.
quandr
Цитата(Сергей Борщ @ Apr 25 2018, 11:34) *
То событие, которое вызывает установку CC3IF. При этом еще должен быть разрешен третий канал, т.е. должен быть взведен CC3E.

Будет ли работать эта система, если 3й канал сконфигурирован в режиме ШИМ?
Сергей Борщ
QUOTE (quandr @ Apr 25 2018, 13:28) *
Будет ли работать эта система, если 3й канал сконфигурирован в режиме ШИМ?
Будет.
quandr
Цитата(Сергей Борщ @ Apr 25 2018, 14:57) *
Будет.


TIM_SR_CC3IF устанавливается периодически в процессе работы таймера,
я его отслеживаю и сбрасываю программно, но при этом декремента счетчика DMA NDTR не происходит.
Странно.
Сергей Борщ
QUOTE (quandr @ Apr 25 2018, 15:11) *
TIM_SR_CC3IF устанавливается периодически в процессе работы таймера,
я его отслеживаю и сбрасываю программно, но при этом декремента счетчика DMA NDTR не происходит.
Показывайте содержимое регистров таймера и ПДП.
SSerge
Надо ещё в TIM3->DIER установить бит TIM_DIER_CC3DE, разрешить таймеру выдавать запросы к DMA.

А ещё у STM32F4 есть еррата, "2.1.13 Delay after an RCC peripheral clock enabling".
После включения тактирования нельзя сразу же обращаться к регистрам периферии, надо немного подождать.
например так:
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
__DSB();

А то результат настройки периферии непредсказуем.
quandr
Цитата(SSerge @ Apr 25 2018, 16:25) *
Надо ещё в TIM3->DIER установить бит TIM_DIER_CC3DE, разрешить таймеру выдавать запросы к DMA.

А ещё у STM32F4 есть еррата, "2.1.13 Delay after an RCC peripheral clock enabling".
После включения тактирования нельзя сразу же обращаться к регистрам периферии, надо немного подождать.
например так:
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
__DSB();

А то результат настройки периферии непредсказуем.

Спасибо!
TIM1->DIER |= TIM_DIER_CC3DE покатило.
Почему не понадобилась та же опция для TIM1_UP - загадка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.