реклама на сайте
подробности

 
 
> STM32 Таймер: из 2-х 16-ти битных один 32-х битный
juvf
сообщение Oct 27 2013, 18:39
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Связал два таймера TIM2->TIM4 в один 32-х битный таймер. TIM4 инкреметируентся при переполнении TIM2.

Нужно также связать TIM16 и TIM15. TIM15 ведомый, вроде настроил правильно
Код
TIM15_SMCR = TIM_SMCR_TS_1 | TIM_SMCR_MSM | TIM_SMCR_SMS;

т.е. TS = 010: Internal Trigger 2 (ITR2), из дата шита TIM15 можно сделать ведомым от TIM16 или от TIM17.

Настраиваю TIM16. Чтобы тим15 считал переполнения от тим16, нужно чтобы тим16 генерировал TRGO. На схеме TIM16 есть сигнал TRGO. Но как его излучать - не понятно. В других таймерах в регистре СR2 есть биты MMS: Master mode selection. При MMS = 2 при переполнении таймер будет излучать TRGO.
Цитата
010: Update - The update event is selected as trigger output (TRGO). For instance a master
timer can then be used as a prescaler for a slave timer.

Но в TIM16/17 в регистре СR2 нет полей MMS.

Как связать таймера TIM16->TIM15?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
smk
сообщение Oct 28 2013, 08:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Как я понимаю, для одного таймера нужно разрешить TRGO, а для другого выбрать TRGO источником тактирования. При условии, что они могут работать в паре. АЦП я так уже запускал, думаю и таймеры тоже будут работать.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 28 2013, 08:15
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(smk @ Oct 28 2013, 14:08) *
Как я понимаю, для одного таймера нужно разрешить TRGO, ...

как для TIM16 разрешить TRGO?
Go to the top of the page
 
+Quote Post
smk
сообщение Oct 28 2013, 08:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



А какой контроллер?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 28 2013, 08:40
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(smk @ Oct 28 2013, 14:18) *
А какой контроллер?

сорри, забыл указать в первом посте: STM32F100C8T6
Go to the top of the page
 
+Quote Post
smk
сообщение Oct 28 2013, 09:14
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



для TIM15->SMCR выбрать 010: Internal Trigger 2 (ITR2) и SMS установить 110: Trigger Mode



А отладчик есть какой-то? SMS попробуйте разные. Не соображу навскидку какой нужен.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 28 2013, 09:20
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Отладчик есть.... IAR + jlink. С ТИМ15 вопросов нет. вопрос с ТИМ16
Цитата
как для TIM16 разрешить TRGO?

Go to the top of the page
 
+Quote Post
smk
сообщение Oct 28 2013, 09:26
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Возможно понадобится резрешить событи TG в ведущем таймере.

TIM16_EGR бит 6


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 28 2013, 09:51
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
Bit 6 TG: Trigger generation
This bit is set by software in order to generate an event, it is automatically cleared by
hardware.
0: No action.
1: The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if
enabled.

Ну как то не вяжется Related interrupt с TRGO. Тем более что этот бит автоматический сбрасывается.
В других таймерах (TIM2...TIM4) TRGO разрешается путём установки битов
TIMx->CR2->MMS: Master mode selection. В TIM16 нет полей MMS в регистре CR2. Похоже авторы забыли добавить эти биты в регистр. laughing.gif
Хотя в даташите пишут
Цитата
TIM15 can be synchronized with TIM16 and TIM17.


ps
вот reference_manual, 18.6.2 TIM16&TIM17 control register 2 (TIMx_CR2) - нет тут битов MMS в регистре CR2. В этом же документе в карте регистров 18.6.16 TIM16&TIM17 register map есть биты MMS в регистре CR2. Ну и под отладчиком в просмотре регистров тоже нет этих битов.
Go to the top of the page
 
+Quote Post
smk
сообщение Oct 28 2013, 09:53
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
If OCx is selected on TIM3 as the trigger output (MMS=1xx), its rising edge is used to clock
the counter of TIM2.


Как я понял, нужно вот этот ОСх настроить, а вывод не подключать, если не нужен. Если возможность описана, то как-то заработает. Может можно использовать один таймер как ведущий для двух других? Битов нет, я вижу. Но есть возможность управлять событием. Может и не нужен этот бит.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Oleg Galizin
сообщение Nov 22 2015, 12:51
Сообщение #11





Группа: Участник
Сообщений: 14
Регистрация: 25-03-07
Пользователь №: 26 499



В документе по таймерам 3 серии сказано что в для tim17, tim16 в качестве trigger out используется OC.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016