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

STM32 минимальный dead-time аппаратного ШИМ

Здравствуйте! Планирую использовать STM32 для управления полномостовым преобразователем. Подскажите пожалуйста точно минимально возможный dead-time, который можно задать ( естесственно>0 ) для аппаратного ШИМ-контроллера. Никак не могу разобраться по документации. Экспериментировать нет возможности.

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


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

В описании регистра 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мкс

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


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

Т.е. не понял, 500ns - это минимум при тактовой частоте всего контроллера 24Мгц или 72Мгц? Забыл сказать, у меня STM32F103CBT6. Мне надо, хоть убейся, получить самый минимальный Dead-Time, но не 0, от этого зависит, какой драйвер искать/покупать, с Dead-Time или без него. Еще там вроде есть таймеры, у которых на входе делитель на 2, есть без делителя.

Или я что-то не понимаю. Вот TIM2,3,4 висят на APB1 которая 36Мгц максимум, а TIM1 на APB2, которая 72МГц максимум. значит я смогу получить ДТ 14нс используя для ШИМ TIM1? А можно 28, 42, 56 и т.д получить, или не так?

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


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

Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс.

 

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


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

При частоте SYSCLK 72МГц минимальное время которое можно получить это 1/72e6 = 13.888 нс.

И можно получить в 2, 3, и до 127 раз больше с шагом в эти самые 1/72 мкс.

Ещё больше времена (до 14мкс) тоже можно получить, но уже с более грубым шагом.

 

А 500нс в моём примере получается потому что в BDTR записывается число 12.

минимальное время = 1тик = 1./24e6 = 41.666 нс, а 12 тиков = 12/24e6=500нс.

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


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

При частоте SYSCLK 72МГц минимальное время которое можно получить это 1/72e6 = 13.888 нс.

И можно получить в 2, 3, и до 127 раз больше с шагом в эти самые 1/72 мкс.

Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс.

Спасибо всем за ответы! Значит пойдет драйвер без Dead-Time (с Dead-Time сложновато подобрать).

Столько понапишут в этой документации в разных местах..., особенно по STM, пока сам не проверишь, ни в чем не уверен, а тут просто под рукой их нет, а выбрать надо заранее.

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


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

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

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

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

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

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

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

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

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

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