Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 19.08.2020, 13:59   #1
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Прошу помощи STM32F4 Burst DMA.

Я хочу чтобы по событию обновления TIM8 из таблицы загружались значения в регистры TIM1->CCR1, TIM1->CCR2, TIM1->CCR3.
Использую DMA2_Stream1 Ch7.
В инициализации TIM1:
Код:
...
TIM1->DCR=((3-1)<<8)+((((uint32_t)(&TIM1->CCR1))-((uint32_t)(&TIM1->CR1)))>>2);
...
В инициализации DMA2_Stream1:
Код:
...
DMA2_Stream1->PAR=(uint32_t)(&(TIM1->DMAR));
...
DMA2_Stream1->CR=DMA_SxCR_CHSEL_2|DMA_SxCR_CHSEL_1|DMA_SxCR_CHSEL_0|\
					DMA_SxCR_PL_0|DMA_SxCR_PL_1|\
					DMA_SxCR_CIRC|\
					DMA_SxCR_DIR_0|\
					DMA_SxCR_PSIZE_0|DMA_SxCR_MSIZE_0|DMA_SxCR_MINC;
...
...
DMA2_Stream1->CR|=DMA_SxCR_EN;
Заполнение TIM1->CCR1, TIM1->CCR2, TIM1->CCR3 происходит, но выборка из таблицы нарушена.
Если настроить передачу в регистры TIM8->CCR1, TIM8->CCR2, TIM8->CCR3 (т.е. в регистры таймера, который инициирует DMA транзакции) инициализации CCR корректные.
Как быть?
Правильно ли я понимаю, что в DMA2_Stream1->CR битовые поля DMA_SxCR_MBURST_0_1 и DMA_SxCR_PBURST_0_1 в моем случае не имеют значения. Чесно говоря я так и не понял что за "удары" эти поля определяют.
За ранее благодарю за желание помочь.
Pasha_Bi вне форума   Ответить с цитированием
Старый 19.08.2020, 14:34   #2
d-f-m
Senior Member
 
Регистрация: 09.02.2009
Адрес: Недалеко от Пятигорска
Возраст: 49
Сообщений: 637
Вес репутации: 1659/66
d-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant future
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Цитата:
Сообщение от Pasha_Bi Посмотреть сообщение
DMA2_Stream1->CR битовые поля DMA_SxCR_MBURST_0_1 и DMA_SxCR_PBURST_0_1 в моем случае не имеют значения.
У меня таблица uint16_t PwmTab[], т.е. 16 битная.
Настройка CCR:
Код:
Dma->CCR =
   DMA_CCR_MINC     // memory increment mode
|  DMA_CCR_TCIE     // transfer complete interrupt enable
|  DMA_CCR_DIR      // 1=read from memory
|  DMA_CCR_MSIZE_0 // Memory 01: 16-bits
|  DMA_CCR_PSIZE_1; // Peripheral size 10: 32-bits
d-f-m вне форума   Ответить с цитированием
Старый 19.08.2020, 14:37   #3
d-f-m
Senior Member
 
Регистрация: 09.02.2009
Адрес: Недалеко от Пятигорска
Возраст: 49
Сообщений: 637
Вес репутации: 1659/66
d-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant future
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Регистр CMAR:
Код:
Dma->CMAR = (uint32_t)PwmTab; // Source Memory address
d-f-m вне форума   Ответить с цитированием
Старый 19.08.2020, 14:39   #4
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

У меня таблица тоже 16 битная. Таймер TIM1 имеет 16 разрядные регистры управления. У меня так же исп-ся STM32F4 (у Вас, вероятно, другой). У Вас один таймер "пинает" DMA Burst, а обновляются регистры другого таймера (как в моем случае) или таймер "сам себя обновляет"?
Pasha_Bi вне форума   Ответить с цитированием
Старый 19.08.2020, 14:46   #5
d-f-m
Senior Member
 
Регистрация: 09.02.2009
Адрес: Недалеко от Пятигорска
Возраст: 49
Сообщений: 637
Вес репутации: 1659/66
d-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant futured-f-m has a brilliant future
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Запуск вручную в прерывании таймера с частотой 1024 Гц:
Код:
Dma->CCR   &= ~DMA_CCR_EN; // Off
Dma->CMAR   = (uint32_t)PwmTab; // Source Memory address
Dma->CNDTR  = PAKN * BURSTL;
Dma->CCR   |= DMA_CCR_EN; // On
d-f-m вне форума   Ответить с цитированием
Старый 19.08.2020, 14:54   #6
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Меня интересует именно ситуация когда таймер TIM8 (задает скорость) "пинал" DMA Burst, а DMA Burst загружал данные в регистры таймера TIM1 (формирует 3 синуса). И у Вас не F4. Спасибо за желание помочь.
Pasha_Bi вне форума   Ответить с цитированием
Старый 19.08.2020, 14:56   #7
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 48
Сообщений: 3,808
Вес репутации: 6357/151
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

http://mcu.goodboard.ru/viewtopic.php?id=31
dosikus вне форума   Ответить с цитированием
Старый 19.08.2020, 15:16   #8
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Уважаемый dosikus, Ваш труд и подтолкнул меня доработать свой проект с использованием DMA Burst. И вот с такими проблемами я столкнулся (см. первое сообщение). С DMA Burst я поэкспериментировал, все ожидаемо работает на разных вариантах, но только когда один и тот же таймер используется.
Pasha_Bi вне форума   Ответить с цитированием
Старый 19.08.2020, 16:22   #9
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 48
Сообщений: 3,808
Вес репутации: 6357/151
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Попробовать снизить частоту у TIM8...
dosikus вне форума   Ответить с цитированием
Старый 19.08.2020, 16:31   #10
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Сейчас TIM8->ARR=0xffff;
Pasha_Bi вне форума   Ответить с цитированием
Старый 19.08.2020, 16:38   #11
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 48
Сообщений: 3,808
Вес репутации: 6357/151
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Смогу проверить только на следующей неделе...
И в наличии только дискаверина с F407...
dosikus вне форума   Ответить с цитированием
Старый 19.08.2020, 20:44   #12
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Пока я сделал вывод, что такой механизм DMA транзакций возможен только "внутри" конкретного таймера (т.е. таймер, который формирует запросы DMA Burst является таймером, регистры которого могут быть загружены или прочитаны). Такой фразы в RM не нашел и вообще сомневаюсь, что у STM такое ограничение получилось.... Пока тупик...
Pasha_Bi вне форума   Ответить с цитированием
Старый 20.08.2020, 20:29   #13
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Цитата:
Сообщение от Pasha_Bi Посмотреть сообщение
но выборка из таблицы нарушена.
Какой характер этих нарушений? В чем он проявляется?
Марк на форуме   Ответить с цитированием
Старый 21.08.2020, 11:28   #14
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Имею таблицу:
Код:
__packed struct _SinePoints
	{
	uint16_t U;
	uint16_t V;
	uint16_t W;
	} SinePoints[NUMBER_POINT_FORM];
Заплнил ее для удобства анализа так:
Код:
0x0100,0x0200,0x0300,0x0101,0x0201,0x0301,0x0102,0x0202,0x0302,0x0103,0x0203,0x0303,...
Разрешил прерывания от таймера, чьи регистры заполняются Burst DMA транзакциями. В этом прерывании заполняю массив, который смотрю в отладчике:
В каждом прерывании:
Код:
static volatile uint16_t CopyCCR[30];
static unsigned char Ind=0;
CopyCCR[Ind++]=TIM1->CCR1;
CopyCCR[Ind++]=TIM1->CCR2;
CopyCCR[Ind++]=TIM1->CCR3;
if(Ind>=30)
	Ind=0;
// Остановив отладчик вижу, например:
Код:
0x0153,0x0253,0x0353,0x0100,0x0253,0x0353,0x0100,0x0200,0x0353,0x0100,0x0200,0x0300,0x0151,0x0251,0x0352,...
Если сделать все тоже самое, но DMA Burst применять к таймеру, тактирующему DMA (в моем случае TIM8), все предсказуемо:
Код:
0x0153,0x0253,0x0353,0x0100,0x0200,0x0300,0x0101,0x0201,0x0301,0x0102,0x0202,0x0302,0x0103,0x0203,0x0303,...
Pasha_Bi вне форума   Ответить с цитированием
Старый 21.08.2020, 11:54   #15
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Есть такое мнение, что к ДМА это вообще не имеет никакого отношения.
Речь идет об интерференции двух некогерентных таймеров. Смотреть нужно СИГНАЛЫ после фильтров.
Марк на форуме   Ответить с цитированием
Старый 21.08.2020, 12:22   #16
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

С сигналами таймера (ШИМ) такой же "бардак".
Pasha_Bi вне форума   Ответить с цитированием
Старый 24.08.2020, 21:18   #17
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Есть соображения. Завтра буду проверять.
Коротко: TIM8 по событию переполнения "пинает" DMA Timer Burst транзакции из таблицы в регистры TIM1->CCR1, TIM1->CCR2 и TIM1->CCR3.
Это DMA2_Stream1 Ch7.
В настройках TIM1 прописываю куда и сколько "кидать" данных:
Код:
...
TIM1->DCR=((3-1)<<8)+((((uint32_t)(&TIM1->CCR1))-((uint32_t)(&TIM1->CR1)))>>2);
...
В инициализации DMA2_Stream1:
Код:
...
DMA2_Stream1->PAR=(uint32_t)(&(TIM1->DMAR));
...
DMA2_Stream1->CR=DMA_SxCR_CHSEL_2|DMA_SxCR_CHSEL_1|DMA_SxCR_CHSEL_0|\
					DMA_SxCR_PL_0|DMA_SxCR_PL_1|\
					DMA_SxCR_CIRC|\
					DMA_SxCR_DIR_0|\
					DMA_SxCR_PSIZE_0|DMA_SxCR_MSIZE_0|DMA_SxCR_MINC;
...
...
DMA2_Stream1->CR|=DMA_SxCR_EN;
Что происходит: Для отладки у меня TIM8 обновляется 1 раз в секунду, регистры TIM1->CCRx я в while(1) копирую в volatile переменные, которые смотрю в отладчике. Вижу что никаких Burst транзакций нет. Один раз в секунду обновляются регистры TIM1->CCR1, затем TIM1->CCR2, TIM1->CCR3, TIM1->CCR1 и т.д. Т.е. механизм, прописанный в регистре TIM1->DCR работает, обновляются нужные мне регистры но не Burst. А DMA2_Stream1 Ch7, который "пинается" таймером TIM8, откуда должен понять что должен формировать по 3 транзакции на одно событие переполнение? Ни откуда!
Вот когда он (канал привязанный к событию обновления TIM8) настраивается на обновление регистров TIM8->CCRx, и в TIM8->DCR прописано куда и сколько копировать данных, действительно происходят Bust транзакции. Я это вижу в отладчике: раз в секунду обновляются сразу все 3 регистра TIM8->CCRx. Потому что канал DMA2_Stream1 Ch7 "привязан" к событию переполнения TIM8 и "привязан" соответственно к TIM8->DCR. Я уверен, что в моем случае, определяющей является инициализация TIM8->DCR, не смотря на то, что копирование предполагается в TIM1->CCRx. А так как:
Код:
DMA2_Stream1->PAR=(uint32_t)(&(TIM1->DMAR));
... там DMA уже "разрулит" куда копировать... Будет завтра время, попробую и отпишу.
Спасибо за внимание.
Pasha_Bi вне форума   Ответить с цитированием
Старый 24.08.2020, 22:03   #18
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,611
Вес репутации: 3789/98
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Цитата:
Сообщение от Pasha_Bi Посмотреть сообщение
Есть соображения. Завтра буду проверять.
Коротко: TIM8 по событию переполнения "пинает" DMA Timer Burst транзакции из таблицы в регистры TIM1->CCR1, TIM1->CCR2 и TIM1->CCR3.
Это DMA2_Stream1 Ch7.
В настройках TIM1 прописываю куда и сколько "кидать" данных:
Код:
...
TIM1->DCR=((3-1)<<8)+((((uint32_t)(&TIM1->CCR1))-((uint32_t)(&TIM1->CR1)))>>2);
...
В инициализации DMA2_Stream1:
Код:
...
DMA2_Stream1->PAR=(uint32_t)(&(TIM1->DMAR));
...
DMA2_Stream1->CR=DMA_SxCR_CHSEL_2|DMA_SxCR_CHSEL_1|DMA_SxCR_CHSEL_0|\
					DMA_SxCR_PL_0|DMA_SxCR_PL_1|\
					DMA_SxCR_CIRC|\
					DMA_SxCR_DIR_0|\
					DMA_SxCR_PSIZE_0|DMA_SxCR_MSIZE_0|DMA_SxCR_MINC;
...
...
DMA2_Stream1->CR|=DMA_SxCR_EN;
Что происходит: Для отладки у меня TIM8 обновляется 1 раз в секунду, регистры TIM1->CCRx я в while(1) копирую в volatile переменные, которые смотрю в отладчике. Вижу что никаких Burst транзакций нет. Один раз в секунду обновляются регистры TIM1->CCR1, затем TIM1->CCR2, TIM1->CCR3, TIM1->CCR1 и т.д. Т.е. механизм, прописанный в регистре TIM1->DCR работает, обновляются нужные мне регистры но не Burst. А DMA2_Stream1 Ch7, который "пинается" таймером TIM8, откуда должен понять что должен формировать по 3 транзакции на одно событие переполнение? Ни откуда!
Вот когда он (канал привязанный к событию обновления TIM8) настраивается на обновление регистров TIM8->CCRx, и в TIM8->DCR прописано куда и сколько копировать данных, действительно происходят Bust транзакции. Я это вижу в отладчике: раз в секунду обновляются сразу все 3 регистра TIM8->CCRx. Потому что канал DMA2_Stream1 Ch7 "привязан" к событию переполнения TIM8 и "привязан" соответственно к TIM8->DCR. Я уверен, что в моем случае, определяющей является инициализация TIM8->DCR, не смотря на то, что копирование предполагается в TIM1->CCRx. А так как:
Код:
DMA2_Stream1->PAR=(uint32_t)(&(TIM1->DMAR));
... там DMA уже "разрулит" куда копировать... Будет завтра время, попробую и отпишу.
Спасибо за внимание.
Ну так пинай Т1 триггером от Т8 или у камня такой возможности нет?
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 24.08.2020, 22:07   #19
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

У меня TIM1 формирует 3 синусоиды (ШИМ 25КГц), а TIM8 задает частоту этих синусоид (перид обновления регистров TIM1-CCRx). TIM1 тактируется с шинв APB2 168 МГц.
Pasha_Bi вне форума   Ответить с цитированием
Старый 24.08.2020, 22:23   #20
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,611
Вес репутации: 3789/98
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Цитата:
Сообщение от Pasha_Bi Посмотреть сообщение
У меня TIM1 формирует 3 синусоиды (ШИМ 25КГц), а TIM8 задает частоту этих синусоид (перид обновления регистров TIM1-CCRx). TIM1 тактируется с шинв APB2 168 МГц.
Ну а я о чём?
заведи UPD-event только на внешний триггер (G0, например, такой эквилибр позволяет)
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 25.08.2020, 08:38   #21
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

pal1222@yandex.ru, спасибо за желание помочь, но я так и не смог понять фразу "пинай Т1 триггером от Т8".
Pasha_Bi вне форума   Ответить с цитированием
Старый 25.08.2020, 09:43   #22
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Пока добился только такой реализации: TIM8 в прерывании по событию обновления генерирует событие триггера для TIM1:
Код:
TIM1->EGR=TIM_EGR_TG;
Для загрузки регистров TIM1->CCR1, TIM1->CCR2 и TIM1->CCR3 из таблицы используется DMA2 Stream4 Ch6, который использует запрос TIM1_TRIG. Все работает, конечно, но мне не нравится, что пришлось использовать прерывание от TIM8. Надеюсь, что к теме не потеряет интерес уважаемый dosikus.
Pasha_Bi вне форума   Ответить с цитированием
Старый 25.08.2020, 17:17   #23
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 59
Сообщений: 2,942
Вес репутации: 4193/116
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Не нужно там прерывание... мастер-слэйв...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 26.08.2020, 19:07   #24
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Я не понимаю. Как мне получить событие (какое нибудь) таймера TIM1, который тактируется с APB2 в момент события обновления TIM8 (или любого другого)? Напишите пожалуйста на несколько слов побольше.
Pasha_Bi вне форума   Ответить с цитированием
Старый 27.08.2020, 09:12   #25
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/51
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Прошу помощи STM32F4 Burst DMA.

Вопрос в том, как аппаратно сгенерировать событие TRGO таймера TIM1 в момент события обновления таймера задающего скорость (не обязательно TIM8, можно какой нибудь Master таймер).
Возможно, уважаемый pal1222@yandex.ru когда советовал: "пинай Т1 триггером от Т8" и уважаемый HHIMERA имеют ввиду, что событие TRGO таймера, задающего скорость как то скоммутировать на событие TRGO таймера TIM1. Это бы ре решило мою задачу. Но сейчас по регистрам прошелся, не увидел такой возможности.
Pasha_Bi вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stm32f407 tim2 dma burst Pridnya Микроконтроллеры других производителей 24 03.04.2017 15:02
появились датащиты на PIC32MZ EC Алексей Продукция MICROCHIP 154 16.03.2015 10:43
Прошу помощи в решении задачь по МК K580ВМ80 Xellos Вопросы начинающих 21 29.05.2012 15:22
Прошу помощи по MPLAB Jakob Вопросы начинающих 26 12.12.2010 19:54


Часовой пояс GMT +3, время: 20:57.


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