ШИМ или как взорвать MOSFET

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

 Решил создать новую тему чтоб сразу на глаза попалась.
В прошлой своей теме про использование мышинного энкодера и ШИМ для плавной регулировки нагрузки, я говорил что в качестве нагрузки у меня был вентилятор отопителя атомобильной печки, так как родной сломался. Я бы не начал эту тему если бы не заметил что управляемый ШИМом MOSFET изрядно нагрелся, хотя и расчитан на большие нагрузки. Озадачившись этой проблемой я наткнулся на "пляски с бубном" в которых множество ребят излагали свои истории про то как они пытались ШИМом регулировать скорость печки. Выяснилось что у всех такая проблема а точнее их несколько:
Итак, если вы управляете с помощью сигнала ШИМ полевиком (MOSFET), то вас могут настич следующие проблемы

  1. Сильный нагрев MOSFET.
  2. Отнюдь не плавная регулировка что то вроде 30% затем резко 60% затем плавно 70-100%.
  3. Регулировка плавная но как будто MOSFET не полностью открылся и получается регулировка от 0 до 60%, с последующим нагревом
  4. Тупо взрыв полевика - вот это то самое забавное, до сих пор вся рожа у меня в крапинку.

Столько проблем, а так нахваливают эти MOSFET. Но виноват то не он а ШИМ. Как выяснилось вся проблема в частоте ШИМ.
Обясняльщик из меня никакой, поэтому не буду рассказывать "как это", всю информацию можно найти в инете.
Все бы ничего но как регулировать эту частоту в ардуине, вот тут то инфы совсем мало. 
Сразу хочу сказать - прочтите вот это http://www.arduino.ru/Tutorial/Arduino_Interrupts от начала до конца.
ну а мне удалось выяснить, не вдаваясь в подробности, что регулировать частоту можно такими параметрами 
Pins 5 and 6: controlled by Timer 0
Setting Divisor Frequency
0x01 1 62500
0x02 8 7812.5
0x03 64 976.5625
0x04 256 244.140625
0x05 1024 61.03515625
TCCR0B = TCCR0B & 0b11111000 | <setting>;

Pins 9 and 10: controlled by timer 1
Setting Divisor Frequency
0x01 1 31250
0x02 8 3906.25
0x03 64 488.28125
0x04 256 122.0703125
0x05 1024 30.517578125
TCCR1B = TCCR1B & 0b11111000 | <setting>;

Pins 11 and 3: controlled by timer 2
Setting Divisor Frequency
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
TCCR2B = TCCR2B & 0b11111000 | <setting>;
обратите внимание что для разных выходов ШИМ свои значения. Не перепутайте. То есть, например, чтобы выставить частоту на 3 пине в 30,5 Герц нужно вставить в void setup() строчку TCCR2B = TCCR2B & 0b11111000 | 7;. Советую попробовать. В этом случае вы заметите что светодиод будет плавно наращивать яркость и одновременно моргать с частотой 30,5 Герц.
Что касаемо различных нагрузок то хочу отметить:

  1. слишком высокая частота влияет на качество регулировки, например если управлять MOSFETом на частоте в 31 кГерц то он практически не регулируется и всегда находится в открытом состоянии.
  2. слишком низкая частота может дать очень плавную регулировку но в случае с моторами они могут не получить нужной мощности. 
  3. если частота в зоне звуковой частоты то может взорваться MOSFET, и в случае с мощным двигателем - он начинает петь как динамик.

Подытожить к сожалению не могу так как, решение проблемы зависит от того как вы подберете эту частоту для своей нагрузки. Для своей печки у меня оказалась оптимальной частота в 30-100 Герц, но я всеже поставил между выходом ардуины и затвором MOSFETа RC фильтр.
 
ВНИМАНИЕ!!! Эксперименты с MOSFET проводить только в защитных очках, опасно для глаз, ... можно прикрыться тещей - как выяснилось хороший пламягаситель.
 
ОБРАЩЕНИЕ К АДМИНИСТРАЦИИ САЙТА...... http://www.arduino.ru/Tutorial/Arduino_Interrupts_part2 - тут в строке   ("Tаймер 2 (ШИМ 3 и 11)
Используется для управления выходами ШИМ для цифровых выводов 9 и 10."
)  ошибка , соответственно должно быть 3 и 11.
 
 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

 Кстати заветные строчки предоставил товарисч Chip с форума http://www.compcar.ru. Ему отдельное спосибо.

Alexander
Offline
Зарегистрирован: 25.04.2010

Очень полезная информация, особенно в свете того, как она достается, это я насчет Вашего лица.
Спасибо за исправление. Я поправил в статье.

Caxa
Offline
Зарегистрирован: 19.03.2011

 А если использовать ШИМ на схеме предложенной в теме управления 220В с Ардуино, например, для регулеровки свет. Там семистр и оптопара выдержат частоту по умолчанию интересно или тоже надо будет менять, не хотелось бы это узнать подорвав чего-нить для начала.

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Если использовать шим для управления симистором (тиристором)то наврядли он там нужен будет. Если честно я не оч хорошо знаю как плавно регулировать нагрузку через семистор, но думаю это проблемотично. Тут я подсказать даже немогу, но обязательно задамся вопросом. 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

а вот нашел кое что ......
Для управления симистором желательно использовать низкочастотный сигнал ШИМ. Для гальванической развязки, при применении низкочастотного ШИМ можно применять MOC3021, MOC3022, MOC3023. 
Вычитал что если завысить частоту ШИМ для управления тиристором, то в положении "максимум" лампочка может моргать. 
Это взял из книги так что ссылок не дам и толком ни чего не расскажу надо изучать на практике.

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Еще немного информации - MOSFET даже с логическим уровнем управления полностью открывается с максимально низким сопративлением только при 10-16 в (в зависимости от модели MOSFET) на затворе. 

Caxa
Offline
Зарегистрирован: 19.03.2011

Nikelbak пишет:

Для гальванической развязки, при применении низкочастотного ШИМ можно применять MOC3021, MOC3022, MOC3023. 

А MOC3081 наверное тоже ведь подойдет?

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

надо смотреть по даташиту. 

kikia99
Offline
Зарегистрирован: 22.03.2011

 и опять вы господа конструируете велосипед  время не теряйте все уже давно изобретенно для коленной сборки можно и полевик цеплять прямо к ардуино (тут требуется подбор транзистора под конкретную задачу и с конкретными характеристиками благо их тысячи ) ну а если вы хотите плавность элостичность на частотах шим и ваща поделка претендует на высший класс  итд то просто купите драйвер к мосфету и будет вам счастье 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Просто купите это хорошо, и конечно каждый со временем доходит до этого геиального устройства. Но что взять с мастера который берет готовое и ни чего с этим не делая отдает в другие руки. Для понимания что такое велосипед - его надо изобрести. 

kikia99
Offline
Зарегистрирован: 22.03.2011

это скорее испугает многих ребят чем научит  да и пост мало обучает я сомневаюсь что кто то тут понемает и кремневой структуре о переходах ловинных токах индуктивности нагрузки кпд насыщения затвора  да и зачем это когда хочется собрать машинку с ардуино  вот если бы автор преследовал цель обучения людей то в конце он бы написал используйте драйвера а так тяготы жизни конструктора. Мой совет всем мосфет это сила использываеть его  нужно возможности огромные использую драйвера и подберая транзистор с запасом используя хорошие радиаторы  у вас скорее обмотка двигателя расплавится  чем транзистор взорвется ВСЯ СИЛА В МОСФЕТЕ  чуть не забыл мосфет для мотора это самое правельное решение но и самое дорогое  20 амперный полный мост обходится примерно в 600 рублей 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Как то вы не оптимистично настроены, уважаемый))). ПРям вогнали меня в грусть. ПОнятно что ни кто ни кого не учит, я лишь дал информацию, так сказать поделился опытом. А повторять мой опыт или нет каждый решит сам для себя. Я например решил повторить, и с драйвером и без драйвера и с транзистором для накачки (простой драйвер). А все почему потому что за много лет в этой области я впервые добрался до полевых транзисторов. Вот хоть убей я их боялся и не любил почему то, а тут еще MOSFET - слово то какое ужасное.
 
Вообще вдаваться в подробности изучения n-го количества MOSFET подбирая их под конкретные задачи - это правильно канечно, но не интересно, очень не интересно. Тем более при стоимости 30р за элемент, можно взять и провести несколько практических опытов, и это будет гораздо познавательнее чем изучать это долго в теории. Это как в музыке - все знают что есть нота ДО но мало кто  знает где она на пианино. 

kikia99
Offline
Зарегистрирован: 22.03.2011

а где тут у меня песемизм то разве что про сгоревший мотор  ну а цены это уже не ко мне  вы сами подсчитайте полный мост  4 полевика 4 драйвера 4 диода 4 конденсатора изолираванный радиатор ну и кулер если понадобится  и это все только на один привод а в движущихся платформах их как правило много а в остальном я рад что вы наконец добрались до мосфетов  марсоход приводится именно ими в движение как наверно и 90 процентов приводов на планете не считая наши тролейбусы которые до сих пор помойму на реле   

sermaster24
Offline
Зарегистрирован: 25.11.2011

 Вот у меня тоже с полевиками очень мало опыта,  но поставленная перед собой задача заставила разобратся что к чему и вот что получилось. http://arduino.ru/forum/programmirovanie/upravlenie-nagruzkoi-svyshe-10-amper-12-volt-shim

Возможно к вашей печке подойдет.

whoim
Offline
Зарегистрирован: 03.11.2011

 Спасибо, как раз вожусь с полевиками. 48+16 штук надо заюзать ) Не шим но быстрое включение - выключение, будет полезно.

IhKa
Offline
Зарегистрирован: 08.05.2013

Немного теории про полевики.

Основной недостаток их большая входная ёмкость, до 5-7 нф. Поэтому когда вы подаёте сигнал прямоугольной формы для открытия-закрытия, он сначала начинает заряжать входную ёмкость полевика, открывя его не резко, а по мере заряда ёмкости. Чем меньше ток управления ( у Ардуино 40ма, у драйверов 400ма - 4а), тем дольше идёт открытие полевика. В этот момент транзистор выполняет роль обычного резистора нагревающегося пропорционально нагрузке. И если частота управления достаточно большая, то промежутки спада-нарастания занимают больше времени, чем ключевые открыто-закрыто (когда транзистор не греется). Отсюда перегрев транзисторов, и пониженый КПД. Выход - либо понижать частоту, либо усиливать сигнал (в основном закрытия, шунтируя затвор на массу). Если это не шим, можно запаралелить несколько свободных выходов, одновременно закрывая-открывая их. Соответствено во столько раз усилится ток выхода.

Второй момент, когда закрывается транзистор, напряжение ёмкости затвора складывается с напряжением на закрывшемся транисторе (если нагрузка индуктивная, может в несколько раз превышать напряжение питания). И пока ёмкость затвора перезаряжается, это напряжение воздействует на цепи управления (ключ открытия, между выходом и питанием). Практически вся логика включая контролёры защишены от второго специальными диодами, предохраняющими от статического напряжения. Но всему есть предел.

ssanyss
Offline
Зарегистрирован: 11.07.2016

Спасибо IhKa и отдельное огромное спасибо Nikelbak! Очень ценная информация!

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

Nikelbak пишет:

Столько проблем, а так нахваливают эти MOSFET.

 

 вероятно вы их еще не научились готовить, а так они - очень вкусные :)

fuso
Offline
Зарегистрирован: 14.02.2016

что то не компилируется, выдает ошибку именно на заветных строках TCCR0B = TCCR0B & 0b11111000 | 5;

где ещё подправить?

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

fuso пишет:

что то не компилируется, выдает ошибку именно на заветных строках TCCR0B = TCCR0B & 0b11111000 | 5;

где ещё подправить?

 

Вы темой не ошиблись?

И вообще, откуда такая странная конструкция?

a5021
Offline
Зарегистрирован: 07.07.2013

Сначала он промахнулся темой, теперь наверное свой ответ найти не может. Удивляется. :)

fuso
Offline
Зарегистрирован: 14.02.2016

да разобрался уже, все работает, в скобки надо было заключать.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Nikelbak Привет.

После того как вы написали что вам обожгло лицо мосфетом, прочитал ваши сообщения в этой теме и сложилось такое впечатление? как писали выше что “вы их не умеете готовить”.

Как вы себе представляете работу мосфета? советую его представлять как кран задвижкой которого служит конденсатор и чтоб он открывался и закрывался его нужно быстро разряжать и заряжать! Почему быстро, да потому что он может работать с заявленными в даташите токами только в открытом или закрытом состоянии,  в моменты между открытием и закрытием он уязвим и если затягивать их, то он нагреется и сгорит.

Категорически не советую работать с мосфетами на токах выше 1А без осциллографа, чтоб смотреть как быстро он закрывается и драйвера -который будет его быстро открывать и закрывать.

И еще одна беда - это КИТАЙЦЫ которые подделывают мосфеты и даже соблюдя все условия правильной работы они стреляют из-за того что там внутри кристалл от более слабого ключа.

 

fuso
Offline
Зарегистрирован: 14.02.2016

подскажите как 16000 Гц на выходе получить?

 

arDubino
Offline
Зарегистрирован: 12.01.2017

fuso пишет:

подскажите как 16000 Гц на выходе получить?

 

дает кварц на плате :))) вот тебе и выход

arDubino
Offline
Зарегистрирован: 12.01.2017

тьфу тут ж МГц а тебе КГц

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

fuso пишет:

подскажите как 16000 Гц на выходе получить?

 


Гугли "AVR аппаратные таймеры"

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

fuso пишет:

подскажите как 16000 Гц на выходе получить?

Столько ответов в нете, думаю по этому вам не хотят отвечать!(

---Можно программно--так не стоит!!!

---можно таймерами, рекомендую!

---можно скачать библиотеку PWM.h и там есть пример где можно вбить любую частоту до 4МГц и он сам настроит таймеры!

fuso
Offline
Зарегистрирован: 14.02.2016

в продолжении темы:

поставил частоту 31250 как у автора темы, а управление полевиком сделал на биполярной сборке  PBSS4032SPN

и ни чего не греется, рекомендую

Savanture
Offline
Зарегистрирован: 23.03.2017

Доброй ночи.

Позвольте добавить свои 5 копеек. У любого MOSFET есть предельная частота, на которой он может работать. Превышение этой частоты приведёт к нестабильности и нагреву (как тут уже упоминалось). Помимо этого, есть такая характеристика, как ёмкость между затвором и истоком. Она не нулевая. "Заряд" этой ёмкости, пусть и длится очень короткое время, но создаёт некоторый всплеск тока при переходе от низкого уровня к высокому. Резистор на затворе уменьшает эту проблему. А вот дополнительная ёмкость на затворе (упоминавшийся RC-фильтр), наоборот, добавляет проблем. Из-за неё транзистор дольше проходит режим регулирования (из-за плавного нарастания напряжения на затворе и плавного падения) и греется уже за счёт тока в цепи сток-исток (в период, пока транзистор не полностью открыт). RC-фильтр на затворе MOSFET для ШИМ - не очень хорошая идея.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Savanture пишет:

Доброй ночи.

Позвольте добавить свои 5 копеек. У любого MOSFET есть предельная частота, на которой он может работать. Превышение этой частоты приведёт к нестабильности и нагреву (как тут уже упоминалось). Помимо этого, есть такая характеристика, как ёмкость между затвором и истоком. Она не нулевая. "Заряд" этой ёмкости, пусть и длится очень короткое время, но создаёт некоторый всплеск тока при переходе от низкого уровня к высокому. Резистор на затворе уменьшает эту проблему. А вот дополнительная ёмкость на затворе (упоминавшийся RC-фильтр), наоборот, добавляет проблем. Из-за неё транзистор дольше проходит режим регулирования (из-за плавного нарастания напряжения на затворе и плавного падения) и греется уже за счёт тока в цепи сток-исток (в период, пока транзистор не полностью открыт). RC-фильтр на затворе MOSFET для ШИМ - не очень хорошая идея.

Гм...

А то, что резистор (который "уменьшает проблему") и входная емкость полевика - это и есть RC фильтр на затворе, это ничего?

Logik
Offline
Зарегистрирован: 05.08.2014

//У любого MOSFET есть предельная частота, на которой он может работать. 

Да. В кривых руках предельнаячастота равна 1. Раз включил  - оно сгорело ;)

 MOSFET нужно переключать быстро, крутым фронтом за время порядка времени переключения его из даташита. Схемы не обеспечивающие такое, типа  типа RC фильтра - в топку.

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

1. ограничить этот ток до приемлемого для схемы управления. При этом учитывают что этот ток в коротком импульсе.

2. постоянной времени заряда затвора менее времени переключения MOSFET из даташита. Ну может не "менее", а порядка времени.

3. снижение добротности контура образованого емкостью затвора и индуктивностью провода к затвору до апериодического. Эта проблема характерна для мощных драйверов и MOSFETов подключеных длинными (десятки см) проводов. В таких случаях при переключении паразитный контур начинает "звенеть" и затягивает время переключения.

Кто не понял п.3 - забейте, редкий случай для мощных.

Но в слова "резистор в затворе" нада понимать как все сопротивление от цепи питания ( или земли) до затвора. Потому если MOSFET подключили  так

То при закрытии в затворе 100Ом а при открытии 100+10КОм. И открыватся он будет медленно, значить будет греть и гореть.

Такая схема только для очень слабой нагрузки пригодна.

 

Savanture
Offline
Зарегистрирован: 23.03.2017

Logic, добрый вечер.

Для не очень сильной нагрузки вполне можно подбрать такие MOSFET и резистор, чтобы подавать сигнал на затвор прямо с выхода МК.

Aleks_neofit
Aleks_neofit аватар
Offline
Зарегистрирован: 28.12.2016

Savanture пишет:

... Для не очень сильной нагрузки вполне можно подбрать такие MOSFET и резистор, чтобы подавать сигнал на затвор прямо с выхода МК.

типа  P-mosfet  IRF7314.   N-канальный IRF7311.  (или выпаять со старой материнской платы) 

Logik
Offline
Зарегистрирован: 05.08.2014

Savanture пишет:

Logic, добрый вечер.

Для не очень сильной нагрузки вполне можно подбрать такие MOSFET и резистор, чтобы подавать сигнал на затвор прямо с выхода МК.

Да. Это вполне нормально, с небольшим резистором, допустим 100Ом все вполне стабильно и не греется. И ток вывода МК пошти в норме, ну немного завышен, но в импульсе коротком сойдет. Но только для маломощных, например AO4828 (2 n-канал до 5А 60В) AO4611 (n и p канал до 5А 60В) я так включаю, все ок.

Тот же IRF7311 смотрим, 900пФ н 100Ом дают постоянную времени 90нсек. А сам он переключается за время до 57нсек. Вполне годный вариант.

Dmitrysa3
Offline
Зарегистрирован: 29.07.2018

Странно, вроде и на больших частотах мосфеты исправно работают. Может за восемь лет, что то изменилось.....