Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 минимальный dead-time аппаратного ШИМ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
elektronshik
Здравствуйте! Планирую использовать STM32 для управления полномостовым преобразователем. Подскажите пожалуйста точно минимально возможный dead-time, который можно задать ( естесственно>0 ) для аппаратного ШИМ-контроллера. Никак не могу разобраться по документации. Экспериментировать нет возможности.
SSerge
В описании регистра TIM1->BDTR сказано что время задержки измеряется в тиках tDTS,
а в поле CKD регистра TIM1->CR1 задаётся коэффициент деления для получения tDTS из tCK_INT

Так что минимальный dead-time равен одному периоду входной частоты модуля таймера ( tCK_INT ).
Не далее как вчера проверял на F100, входная частота 24МГц,
TIM1->CR1.CKD = 0;
TIM1->PSC = 24-1; //прескалер на 24, 1тик счетчика CNT =1мкс
TIM1->BDTR.DTG = 12; // dead-time 0.5мкс
elektronshik
Т.е. не понял, 500ns - это минимум при тактовой частоте всего контроллера 24Мгц или 72Мгц? Забыл сказать, у меня STM32F103CBT6. Мне надо, хоть убейся, получить самый минимальный Dead-Time, но не 0, от этого зависит, какой драйвер искать/покупать, с Dead-Time или без него. Еще там вроде есть таймеры, у которых на входе делитель на 2, есть без делителя.
Или я что-то не понимаю. Вот TIM2,3,4 висят на APB1 которая 36Мгц максимум, а TIM1 на APB2, которая 72МГц максимум. значит я смогу получить ДТ 14нс используя для ШИМ TIM1? А можно 28, 42, 56 и т.д получить, или не так?
vlad_new
Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс.
SSerge
При частоте SYSCLK 72МГц минимальное время которое можно получить это 1/72e6 = 13.888 нс.
И можно получить в 2, 3, и до 127 раз больше с шагом в эти самые 1/72 мкс.
Ещё больше времена (до 14мкс) тоже можно получить, но уже с более грубым шагом.

А 500нс в моём примере получается потому что в BDTR записывается число 12.
минимальное время = 1тик = 1./24e6 = 41.666 нс, а 12 тиков = 12/24e6=500нс.
elektronshik
Цитата(SSerge @ Aug 26 2013, 16:01) *
При частоте SYSCLK 72МГц минимальное время которое можно получить это 1/72e6 = 13.888 нс.
И можно получить в 2, 3, и до 127 раз больше с шагом в эти самые 1/72 мкс.

Цитата(vlad_new @ Aug 26 2013, 15:19) *
Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс.

Спасибо всем за ответы! Значит пойдет драйвер без Dead-Time (с Dead-Time сложновато подобрать).
Столько понапишут в этой документации в разных местах..., особенно по STM, пока сам не проверишь, ни в чем не уверен, а тут просто под рукой их нет, а выбрать надо заранее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.