elektronshik
Aug 26 2013, 07:48
Здравствуйте! Планирую использовать STM32 для управления полномостовым преобразователем. Подскажите пожалуйста точно минимально возможный dead-time, который можно задать ( естесственно>0 ) для аппаратного ШИМ-контроллера. Никак не могу разобраться по документации. Экспериментировать нет возможности.
SSerge
Aug 26 2013, 08:48
В описании регистра 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
Aug 26 2013, 10:18
Т.е. не понял, 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
Aug 26 2013, 12:19
Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс.
SSerge
Aug 26 2013, 13:01
При частоте 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
Aug 26 2013, 13:41
Цитата(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, пока сам не проверишь, ни в чем не уверен, а тут просто под рукой их нет, а выбрать надо заранее.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.