Jump to content

    
Sign in to follow this  
LAS9891

Настройка таймеров в STM32Cube

Recommended Posts

Разрабатываю проект в STM32Cube для Keil. В проекте имеется два таймера: TIM5 и TIM3.

TIM3 настраиваю как Master. TIM3 тактируется от Internal clock. В меню Trigger Event Selection TRGO выбрано формирование импульса по совпадению - значение Event.

TIM2 настраиваю как Slave. TIM5 тактируется от External Clock Mode 1, в качестве Trigger Source выбран ITR2 - что соответствует TIM3.

Подобнее настройки TIM5 на картинке:

1484416176_(05_11.202016-24-54).thumb.jpg.c80e1dd384ebda16eb8090f0a3c866ef.jpg

Таким образом TIM3 работает на частоте шины, а TIM5 работает на частоте TIM3. На осциллографе наблюдаю следующие сигналы:

 

20201105_162118.thumb.jpg.276bb24ada65ec297a817d9f0767778c.jpg

На осциллограмме верхний сигнал - выход TIM3 сразу после сброса контроллера; нижний сигнал - выход TIM5 сразу после сброса контроллера.

 

На второй осциллограмме те же сигналы позднее - второй и последующие периоды TIM5.

20201105_162153.thumb.jpg.01d58b0eabcf89bd8feee3bbc83509a9.jpg

 

Видно, что при старте длительность лог. 0 на выходе TIM5 больше чем в последующих периодах. Кроме того, первый срез на выходах происходит неодновременно. Хотелось бы чтобы первый импульс на выходе TIM5 был аналогичен последующим. Пробовал различные настройки в Cube - не помогло. Как сделать первоначальные срезы синхронными и выровнять длительность первого импульса на TIM2 с остальными?

Edited by LAS9891

Share this post


Link to post
Share on other sites
On 11/5/2020 at 4:43 PM, LAS9891 said:

Разрабатываю проект в STM32Cube для Keil. В проекте имеется два таймера: TIM5 и TIM3.

TIM3 настраиваю как Master. TIM3 тактируется от Internal clock. В меню Trigger Event Selection TRGO выбрано формирование импульса по совпадению - значение Event.

TIM2 настраиваю как Slave. TIM5 тактируется от External Clock Mode 1, в качестве Trigger Source выбран ITR2 - что соответствует TIM3.

Подобнее настройки TIM5 на картинке:

1484416176_(05_11.202016-24-54).thumb.jpg.c80e1dd384ebda16eb8090f0a3c866ef.jpg

Таким образом TIM3 работает на частоте шины, а TIM5 работает на частоте TIM3. На осциллографе наблюдаю следующие сигналы:

 

20201105_162118.thumb.jpg.276bb24ada65ec297a817d9f0767778c.jpg

На осциллограмме верхний сигнал - выход TIM3 сразу после сброса контроллера; нижний сигнал - выход TIM5 сразу после сброса контроллера.

 

На второй осциллограмме те же сигналы позднее - второй и последующие периоды TIM5.

20201105_162153.thumb.jpg.01d58b0eabcf89bd8feee3bbc83509a9.jpg

 

Видно, что при старте длительность лог. 0 на выходе TIM5 больше чем в последующих периодах. Кроме того, первый срез на выходах происходит неодновременно. Хотелось бы чтобы первый импульс на выходе TIM5 был аналогичен последующим. Пробовал различные настройки в Cube - не помогло. Как сделать первоначальные срезы синхронными и выровнять длительность первого импульса на TIM2 с остальными?

 

Может картинка вверху - следствие последовательной инициализации таймеров программой при старте, а вторая картинка - когда они уже до этого были проинициализированы и просто запускаются внешним сигналом?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this