Мёртвое время
Мёртвое время — короткая пауза при переключении полумоста, когда закрыты оба ключа: один уже выключился, другой ещё не включился. Она защищает мост от сквозного тока и задаётся в драйвере или таймере микроконтроллера.
Обновлено Редакция GAW
Мёртвое время (dead time) — интервал при переключении полумоста, когда закрыты оба его ключа: верхний и нижний. Полумост — два транзистора, включённых последовательно между питанием и землёй, с выходом в средней точке; из двух полумостов собирают H-мост для двигателя, из трёх — инвертор для трёхфазного двигателя. Если оба ключа откроются одновременно, они замкнут питание на землю, и через них пойдёт сквозной ток. Поэтому сначала закрывают открытый ключ, выдерживают мёртвое время и только потом открывают противоположный.
Как задаётся
- В драйвере. Многие драйверы мостов формируют паузу сами. У драйвера шагового двигателя A4988 (Allegro) она составляет 100–800 нс, 475 нс типично.
- В таймере микроконтроллера. Расширенные таймеры STM32 TIM1 и TIM8 выдают комплементарные сигналы CHx и CHxN с паузой, которую задаёт поле DTG[7:0] регистра BDTR в периодах t_DTS — такта таймера, умноженного на 1, 2 или 4. Рассчитать DTG для нужной паузы поможет калькулятор таймера, а о комплементарных выходах, входе аварийного отключения BRK и бите MOE — в статье о таймерах STM32.
| DTG[7:5] | Мёртвое время | Шаг |
|---|---|---|
| 0xx | DTG[7:0] · t_DTS | t_DTS |
| 10x | (64 + DTG[5:0]) · 2 · t_DTS | 2 · t_DTS |
| 110 | (32 + DTG[4:0]) · 8 · t_DTS | 8 · t_DTS |
| 111 | (32 + DTG[4:0]) · 16 · t_DTS | 16 · t_DTS |
Кодирование поля DTG — по RM0008, раздел 14.4.18.
Компромисс
Короткая пауза опаснее длинной: она должна перекрывать время выключения ключа с учётом драйвера затвора и нагрева. Но во время паузы ток индуктивной нагрузки течёт через диоды ключей, на которых падение больше, чем на открытом MOSFET, — эти потери тоже греют мост, и их учитывают при расчёте теплового сопротивления и радиатора.
Частые вопросы
Что будет, если не задать мёртвое время?
Транзисторы закрываются не мгновенно. Если в момент переключения открыть противоположный ключ сразу, оба ключа полумоста на короткое время окажутся открытыми одновременно и замкнут питание на землю. Этот сквозной ток нагревает ключи, создаёт помехи по питанию и при большой мощности выводит мост из строя.
Какое мёртвое время выбрать?
Не меньше, чем время выключения ключа вместе с драйвером затвора при самой высокой температуре, с запасом. Слишком большое мёртвое время тоже вредно: в паузе ток нагрузки идёт через диоды, а это лишние потери и искажение напряжения на выходе. Готовые драйверы задают паузу сами — у A4988 это 100–800 нс.
Как задать мёртвое время на STM32?
У таймеров TIM1 и TIM8 с комплементарными выходами — полем DTG[7:0] регистра BDTR, в периодах t_DTS. Значения до 0x7F дают DTG · t_DTS, большие — растущие шаги в 2, 8 и 16 периодов; наибольшая пауза — 1008 · t_DTS (RM0008, 14.4.18). Для 1 мкс при такте таймера 72 МГц это DTG = 72.
Источники
- STMicroelectronics. RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx reference manual — 14.4.18 — поле DTG[7:0] регистра TIMx_BDTR и пример диапазонов при t_DTS = 125 нс
- Allegro MicroSystems. A4988: DMOS Microstepping Driver with Translator and Overcurrent Protection (A4988-DS, Rev. 8) — встроенное мёртвое время при переключении (crossover dead time) 100–800 нс, 475 нс тип.
- Microchip. AN905: Brushed DC Motor Fundamentals (DS00905B), 2010 — рис. 8 и таблица 1: H-мост и сквозной ток
Нашли ошибку?
Смотрите также
- Драйверы H-мостаУстройство моста, сквозной ток, L298, A4988, потери на ключах
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту, мёртвое время, энкодер
- Таймеры STM32Тактирование, PSC/ARR, ШИМ, мёртвое время, захват, энкодер, OPM, синхронизация
- Тепловое сопротивлениеθJA и θJC: перегрев кристалла на ватт мощности, °C/Вт