Перейти к содержанию
    

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

Разрабатываю проект в 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 с остальными?

Изменено пользователем LAS9891

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 с остальными?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...