elektronshik 0 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба Здравствуйте! Планирую использовать STM32 для управления полномостовым преобразователем. Подскажите пожалуйста точно минимально возможный dead-time, который можно задать ( естесственно>0 ) для аппаратного ШИМ-контроллера. Никак не могу разобраться по документации. Экспериментировать нет возможности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба В описании регистра 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 0 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба Т.е. не понял, 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 1 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба При частоте 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 0 26 августа, 2013 Опубликовано 26 августа, 2013 · Жалоба При частоте SYSCLK 72МГц минимальное время которое можно получить это 1/72e6 = 13.888 нс. И можно получить в 2, 3, и до 127 раз больше с шагом в эти самые 1/72 мкс. Есть ограничение на скорость лапки в 50 мГц. Но если особо её нагружать на ёмкость не будите, то получите 14 нс. Спасибо всем за ответы! Значит пойдет драйвер без Dead-Time (с Dead-Time сложновато подобрать). Столько понапишут в этой документации в разных местах..., особенно по STM, пока сам не проверишь, ни в чем не уверен, а тут просто под рукой их нет, а выбрать надо заранее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться