Size: a a a

2021 March 24

ED

Electronics Designer in Embedded Group
А бит UG в EGR перед запуском ставили? Бит ARPE стоит?
источник

DN

Dmitry Noskov in Embedded Group
Electronics Designer
А бит UG в EGR перед запуском ставили? Бит ARPE стоит?
Оба вопроса - нет.
Я ожидал, что если у нас есть два таймера, которые тактируются от одной шины, то, поставив им кратные периоды с 50% заполнением, получу два меандра, которые не будут плыть друг относительно друга (начальная фаза не важна). Неверный посыл?
источник

A

Alexander in Embedded Group
Dmitry Noskov
Добрый день, имею вопрос относительно таймеров в stm32f3. Есть два таймера: TIM1 и TIM17, которые тактируются от шины APB2. Предделитель в таймерах отключён. Режим работы обоих - PWM mode 1. При выставлении одинакового периода (например, ARR = 140 тактов) и регистра сравнения CCR = ARR/2 в обоих таймерах выходные импульсы получаются синхронизированы, пусть и со случайным начальным сдвигом между двумя таймерами. Поведение ожидаемое. Но если поставить ARR одного таймера 280, а другого оставить 140, то выходные импульсы начинают «плыть» относительно друг друга, синхронизация теряется, хотя период у них кратен (проверял значения регистров в отладчике), а тактирование должно быть общее от APB2. Почему так происходит? Можно ли как-то без принудительной синхронизации в прерываниях добиться синхронизированной работы обоих таймеров (пусть и со случайной начальной фазой) на кратных частотах?
Ты уверен, что кратен?
Фактический период - значение регистра ARR + 1 насколько я помню.
источник

DN

Dmitry Noskov in Embedded Group
Alexander
Ты уверен, что кратен?
Фактический период - значение регистра ARR + 1 насколько я помню.
Да, я пробовал варьировать 280-140, 280-141, 280-142 и подобные комбинации
источник

A

Alexander in Embedded Group
А подсихронизировать (сбрасывать на ноль) - один таймер от второго в твоей задаче - тяжело/невозможно?

Или TIM17 вообще не поддерживает эти фишки?
источник

Х

Х in Embedded Group
Dmitry Noskov
Да, я пробовал варьировать 280-140, 280-141, 280-142 и подобные комбинации
А 281-140?
источник

A

Aleksandr Zharov in Embedded Group
Dmitry Noskov
Да, я пробовал варьировать 280-140, 280-141, 280-142 и подобные комбинации
Периоды отдельно совпадают с расчетными?
источник

DN

Dmitry Noskov in Embedded Group
Х
А 281-140?
Тоже да. Дедтаймы пробовал делать кратными и вообще отключать - не влияет.
источник

DN

Dmitry Noskov in Embedded Group
Aleksandr Zharov
Периоды отдельно совпадают с расчетными?
Да
источник

DN

Dmitry Noskov in Embedded Group
Alexander
А подсихронизировать (сбрасывать на ноль) - один таймер от второго в твоей задаче - тяжело/невозможно?

Или TIM17 вообще не поддерживает эти фишки?
С этим есть некоторые сложности
источник

A

Aleksandr Zharov in Embedded Group
Чудеса
источник

A

Alexander in Embedded Group
Dmitry Noskov
С этим есть некоторые сложности
Набег фазы всегда увеличитвается в одну сторону?
Параметры таймеров с т.з. регистров идентичны?
источник

A

Alexander in Embedded Group
Вообще по логике если они на одном клоковом домене и идентично настроены - разбегаться не должны.

Такое может быть возможно когда периоды различаются или кто-то "притормаживает" таймер/модифицирует значения TIM по ходу выполнения кода.
источник

DN

Dmitry Noskov in Embedded Group
Alexander
Набег фазы всегда увеличитвается в одну сторону?
Параметры таймеров с т.з. регистров идентичны?
Про набег фазы - сложный вопрос. Когда были установлены периоды 280 - 140, то на осциллографе ток преобразователя (управляется более высокочастотным таймером) при каждом запуске бежал в одну и ту же сторону относительно синхронизации по другому таймеру. А вот если начинать плюс минус 1 делать к периодам - не смотрел, как будет отличаться «набег».
источник

A

Alexander in Embedded Group
Dmitry Noskov
Про набег фазы - сложный вопрос. Когда были установлены периоды 280 - 140, то на осциллографе ток преобразователя (управляется более высокочастотным таймером) при каждом запуске бежал в одну и ту же сторону относительно синхронизации по другому таймеру. А вот если начинать плюс минус 1 делать к периодам - не смотрел, как будет отличаться «набег».
Поставь 279 и 139 в ARR
источник

A

Alexander in Embedded Group
Dmitry Noskov
Да, я пробовал варьировать 280-140, 280-141, 280-142 и подобные комбинации
Все приведенные выше пары не кратны
источник

ED

Electronics Designer in Embedded Group
Alexander
Поставь 279 и 139 в ARR
+1
источник

DN

Dmitry Noskov in Embedded Group
Alexander
Поставь 279 и 139 в ARR
Плывет :(
источник

A

Alexander in Embedded Group
Dmitry Noskov
Плывет :(
А настройки DeadTime аналогичны?
источник

DN

Dmitry Noskov in Embedded Group
Alexander
А настройки DeadTime аналогичны?
Да, поставил его в ноль
источник