Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 Таймер: из 2-х 16-ти битных один 32-х битный
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
juvf
Связал два таймера 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?
smk
Как я понимаю, для одного таймера нужно разрешить TRGO, а для другого выбрать TRGO источником тактирования. При условии, что они могут работать в паре. АЦП я так уже запускал, думаю и таймеры тоже будут работать.
juvf
Цитата(smk @ Oct 28 2013, 14:08) *
Как я понимаю, для одного таймера нужно разрешить TRGO, ...

как для TIM16 разрешить TRGO?
smk
А какой контроллер?
juvf
Цитата(smk @ Oct 28 2013, 14:18) *
А какой контроллер?

сорри, забыл указать в первом посте: STM32F100C8T6
smk
для TIM15->SMCR выбрать 010: Internal Trigger 2 (ITR2) и SMS установить 110: Trigger Mode



А отладчик есть какой-то? SMS попробуйте разные. Не соображу навскидку какой нужен.
juvf
Отладчик есть.... IAR + jlink. С ТИМ15 вопросов нет. вопрос с ТИМ16
Цитата
как для TIM16 разрешить TRGO?

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

TIM16_EGR бит 6
juvf
Цитата
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. Ну и под отладчиком в просмотре регистров тоже нет этих битов.
smk
Цитата
If OCx is selected on TIM3 as the trigger output (MMS=1xx), its rising edge is used to clock
the counter of TIM2.


Как я понял, нужно вот этот ОСх настроить, а вывод не подключать, если не нужен. Если возможность описана, то как-то заработает. Может можно использовать один таймер как ведущий для двух других? Битов нет, я вижу. Но есть возможность управлять событием. Может и не нужен этот бит.
Oleg Galizin
В документе по таймерам 3 серии сказано что в для tim17, tim16 в качестве trigger out используется OC.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.