Jump to content
Zver2011

Греется полевой транзистор

Recommended Posts

Всем привет! 

Дано: Контроллер подсветки рабочей зоны кухни, реализованный на Tiny 13A.  Светодиодная лента длиной 2,3 метра, led 5050, 120 светодиодов/метр. Принципиальная схема устройства ниже:

Принципиальная схема

Код прошивки:

#include <tiny13.h>
#include <delay.h>

int triggered = 0;
int ontimer = 0;

void main(void)
{

// Input/Output Ports initialization
// Port B initialization
// Function: Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out 
DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0);
// State: Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 
PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 37,500 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected
// Timer Period: 6,8267 ms
// Output Pulse(s):
// OC0A Period: 6,8267 ms Width: 0 us
TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;



while (1)
      {
       if (PINB.1==1) {
            triggered = 1;
            ontimer = 60;
        };
        
        if (ontimer > 0) {
            ontimer--;
        } else {
            triggered = 0;
        };
        
        if (triggered) {
            if (OCR0A<255) {
                OCR0A++;
                };
            }
        else {
            if (OCR0A>0) {
                OCR0A--;
                };
            };

        delay_ms(10); 
      }
}

Возникшая проблема:

Греется полевой транзистор при работе. 

Изначально поискав информацию на данную проблему, начал прикидывать. 

Смотрим график зависимости пропускаемого тока стока (ID )от приложенного напряжения  затвор-сток (VGS),  при температуре окруж. среды 25 градусов: ID = 14 А (2,3 метра светодиодной ленты не могут столько кушать, по крайней мере я такую не видел).

image.png.c3a17bf71cc7a209c18588b3bad85b0c.png

Было предположение что частота переключения ШИМ высокая - отсюда транзистор в не определенном состоянии = нагрев. Рассчитал макс. частоту так:

Rg = 100 Ом, Vgs = 5V

Заряд затвора:
Qiss = Ciss * Vgs = 1800pF * 5v = 9nC

Скрость нарастания:
S = Rgate * Qiss = 100Ohm * 9nC = 0.009mV*sec

Время на открытие или закрытие транзистора:
t=S / Vgs = 0.002mV*sec * 3.2v = 4.5uSec

Период  - это открытие + закрытие:
T = t + t = 4.5uSec + 4.5uSec = 9uSec

Максимальная частота переключения:
F < 1 / T = 1 / 9uSec = 111KHz

Ток через затвор (G) и цифровой выход Tiny 13A:
I = Qiss / t = 2mA

Максимальный выходной ток GPIO у Tiny 13A 40.0mA
2mA < 40.0mA

Выставил частоту ШИМ на 37,5 кHz. Вуаля - при подключении 1м светодиодной ленты (тестировал на обрезке), нагрева нет. Но как только подключил все 2,3 метра - транзистор стал снова спустя время греться, аж дотронуться не возможно.  Захотел померить ток, который потребляет 1 метр ленты, проверить продавца. Потребление 1 метра ленты оказалось вместо заявленных 600 мА, все 1,85 А, причем заметил странную вещь - ток начал возрастать спустя время на сотые доли  и дошел до 1,9 А. Дальше ждать не стал. Режим амперметра в мультиметре сломался?

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

Смотрим сопротивление транзистора в открытом состоянии при VGS = 5В : RDS(on) = 0.18 Ом

P1 = 1,9*1,9*0,18 = 0,65 Вт. (1 метр св.ленты).

Раз мы взяли потребление 1 метра ленты  1, 9 А, тогда 2,3 метра потребляют  = 4,4 А. (Теперь не уверен в своем мультиметре).

P2=4.4*4.4*0.18 = 3.5 Ватт - довольно таки многовато я думаю.

В общем: Правильно ли я делаю расчеты? Что упустил?  Как снизить нагрев транзистора, без применения вентиляторов и здоровенных радиаторов? Есть вариант замены светодиодной ленты на что нибудь поменьше жрущее (60 светодиодов/ метр например), но в будущем еще много раз придется сталкиваться с полевиками, хотелось бы разобраться .

Share this post


Link to post
Share on other sites

Транзистор с радиатором? Если нет, то почему он НЕ должен греться? Да и эта серия не рассчитана на большие токи. Их больше ставят в качестве ключей в повышающих или понижающих преобразователях. Для Ваших целей стоит воспользоваться irfz44, или чем-то из этой серии, у него сопротивление 0,017 Ом в открытом состоянии, греться будет в разы меньше. По поводу переживаний насчёт его времени переключения, то можно добавить транзистор pnp в цепь затвора, тем самым садить затвор на землю во время паузы, но это если нет осциллографа, но очень хочеться убедиться.

5c252615cd0e4_.png.64381d1dbe69075a4c8debe74e547851.png

 

 

 

 

И ещё на заметку. Есть такая штука, как воздействие тепла на характеристики светодиода. Чем больше нагрев - тем больше ток через светодиод и больше нагрев. Также желательно выставить максимальное напряжение в пределах, когда лента светит достаточно хорошо, при этом нагрев не значительный. Моя лента из китая при повышении на доли вольта больше 12 уже греется намного больше. Стабилизация тока в этом деле очень важна, если нужна длительная работа без выгорания

такой вариант лучше

5c2528efb22e8_.thumb.png.939e9418b333b7bf0e98265a75d86df4.png

Edited by I_I_Iok

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

11 минуту назад, I_I_Iok сказал:

Транзистор с радиатором? Если нет, то почему он НЕ должен греться? Да и эта серия не рассчитана на большие токи. Их больше ставят в качестве ключей в повышающих или понижающих преобразователях. Для Ваших целей стоит воспользоваться irfz44, или чем-то из этой серии, у него сопротивление 0,017 Ом в открытом состоянии, греться будет в разы меньше.

Радиатор есть. Не большой. Спасибо за совет, сейчас посмотрим, что за транзюк такой.

image.png.84e1263f29b1ffcda5e633b56bd89eae.png

Share this post


Link to post
Share on other sites

Материалы вебинара Параметры выше, цена ниже. Обновление в линейке AC/DC- и DC/DC-преобразователей MORNSUN

Опубликованы запись, ответы на вопросы и материалы вебинара, посвящённого преимуществам и отличиям новых источников питания и DC/DC-преобразователей Mornsun. На вебинаре были рассмотрены изолированные и неизолированные DC/DC-преобразователи последнего, четвертого, поколения (R4) и компактные модульные источники питания второго и третьего поколений (семейства LS/R3 и LD/R2) на плату, также новая группа продукции – встраиваемые источники питания в кожухе.

Подробнее

32 минуты назад, I_I_Iok сказал:

И ещё на заметку. Есть такая штука, как воздействие тепла на характеристики светодиода. Чем больше нагрев - тем больше ток через светодиод и больше нагрев. Также желательно выставить максимальное напряжение в пределах, когда лента светит достаточно хорошо, при этом нагрев не значительный. Моя лента из китая при повышении на доли вольта больше 12 уже греется намного больше. Стабилизация тока в этом деле очень важна, если нужна длительная работа без выгорания

такой вариант лучше

5c2528efb22e8_.thumb.png.939e9418b333b7bf0e98265a75d86df4.png

Видел подобные решения для МОП транзисторов. Драйвера еще советуют ставить. Но в тех решениях коллектор биполярного транзистора был подключен к питанию от 10В и выше. Так как полевики открываются напряжением от 10 В. Почему в Вашей схеме коллектор подкл. к 5В? IRF540 не с логическим уровнем открытия ведь.

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

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

Edited by Zver2011

Share this post


Link to post
Share on other sites

Запускаем новый BLE 5.2-чип BlueNRG-LP от STMicroelectronics

Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.

Подробнее

23 минуты назад, Zver2011 сказал:

Видел подобные решения для МОП транзисторов. Драйвера еще советуют ставить. Но в тех решениях коллектор биполярного транзистора был подключен к питанию от 10В и выше. Так как полевики открываются напряжением от 10 В. Почему в Вашей схеме коллектор подкл. к 5В? 

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

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

Драйвер штука хорошая, но дорогая. Самое дешёвое решение - это стабилизатор тока на lm317t. Самая средина между компактностью и эффективнстью(если считать таковую в линейных стабилизаторах). Если БП импульсный, то отрегулировать можно всегда (цепь обратной связи). Для понижения напряжения можно воспользоваться простым решением - поставить последовательно выпрямительный диод (ток подбирать с запасом). Например я при переделке фонариков с кадмиевых на литиевые аккумы ставлю пару диодов последовательно. На них падает напряжение примерно 0,4 - 0,7В в зависимости от маркировки. По стоимости - десяток 1n4007 стоит копейки. когда-то заказал сотню за смешные деньги из китая. При этом они практически не греются. На деле проще чем подбирать резистор.

Ну а если вообще компактно и дёшево - реле в помощь. Никаких проблем и схемотехнических мучений

Коллектор подключается к 5 вольтам, так как запас по напряжению для открытия затвора транзистора остаётся. Они открываются полностью при 4х вольтах примерно. Если учитывать падение на переходе коллетор-эммитер транзистора, то остаётся ещё доли вольта в запасе. Конечно лучше брать напругу повыше, но при этом нужно думать о гальванической развязке с МК, так как такой вариант будет менее безопасным.

И почему собственно МК для таких целей? Есть варианты на паре элементов , ведь в сенсоре уже есть выход под ТТЛ уровень

Edited by I_I_Iok

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

2 часа назад, Zver2011 сказал:

Что упустил? 

наличие у мосфетов плато Миллера , заряд на затворе имеет совсем другое значение(ошиблись не много, всего раз в пять)   , проще всего  найти его значение  по графику из ДШ,

1 час назад, Zver2011 сказал:

Так как полевики открываются напряжением от 10 В. Почему в Вашей схеме коллектор подкл. к 5В? IRF540 не с логическим уровнем открытия ведь.

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

Share this post


Link to post
Share on other sites
В 27.12.2018 в 23:21, IMXO сказал:

наличие у мосфетов плато Миллера , заряд на затворе имеет совсем другое значение(ошиблись не много, всего раз в пять)   , проще всего  найти его значение  по графику из ДШ,

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

А даташит говорит обратное.Смотрим на Threshold Voltage. Мне лень проверить, а вот Вы, будьте добры, предоставте доказательства со своей стороны.

5c28f3bd294b4_.png.0519621de45b934432380f2f0b597ad5.png

Edited by I_I_Iok

Share this post


Link to post
Share on other sites

Threshold Voltage всего лишь значение падения напряжения между затвором и стоком мосфета по  схеме ОИ

2 часа назад, I_I_Iok сказал:

будьте добры, предоставте доказательства со своей стороны.

 да ни вопрос, конкретно по платто Миллера рис.6 даташита.  мосфет полностью открывается после 5,5в на затворе.

так же смотрим передаточные характеристики  рис.1 и рис.2

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

 

Скрытый текст

ЗЫ какой-то ламер  выдрал усилитель выходов TL494 из преобразователя прилепив его к дурине нихрена не понимая как он работает и сотня других как бараны постят ее где не попадя.

 

Share this post


Link to post
Share on other sites
В 30.12.2018 в 20:37, IMXO сказал:

 

 

  Скрыть содержимое

ЗЫ какой-то ламер  выдрал усилитель выходов TL494 из преобразователя прилепив его к дурине нихрена не понимая как он работает и сотня других как бараны постят ее где не попадя.

 

 

Ну и хрен с ним. Опытным путём определить питающее напряжения усилителя на затвор. Всё-равно девайс слишком заумный для своих целей. Ставить мк в качестве генератора по срабатыванию датчика.... Обычный 555 справиться не хуже.

Share this post


Link to post
Share on other sites
В 27.12.2018 в 21:20, I_I_Iok сказал:

такой вариант лучше

Схема в целом хорошая , только для irf540 5в управляющее маловато ! На холоде может не открываться полностью! Лучше 10в

Почитал тут сообщения , меня опередили спецы )))

Тоже ругаются на 5в управляющее )


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
4 минуты назад, artos5 сказал:

только для irf540 5в управляющее маловато !

в лучшем случае там будет 4,35в...

Share this post


Link to post
Share on other sites

Да , я в курсе )) падение на переходе npn транзистора минимум 0.6В. там в схеме пару транзисторов добавить и от 10в запитать драйвер , и все будет ок )

Или поставить в эту схему:

IRLI540 or IRL2505 or IRLI2910

В 30.12.2018 в 20:37, IMXO сказал:

 

  Показать содержимое

ЗЫ какой-то ламер  выдрал усилитель выходов TL494 из преобразователя прилепив его к дурине нихрена не понимая как он работает и сотня других как бараны постят ее где не попадя.

 

))))


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By sunjob
      добрый день
      проект v-usb
      выкус из спецификации/инета/форумов:
      - реализация не полностью соответствует стандарту
      - работа на 100% не гарантируется
      - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...)  :))
      у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.



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


       
      достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)
      tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx
      NO atmega32u4, NO arduino pro micro etc...

    • By HHHIII
      Сломался пульт управления беговой дорожки. Теперь хочу с помощью Ардуино управлять мотором, но не понятно как происходит управление. к панели идёт 4 контакта: чёрный красный белый зелёный. на плате 5 контактов, но 1 не используется. Как происходит управление скоростью?

    • By Ivarrr
      Помогите понять где ошибка... не получается реализовать попеременный опрос 2ух каналов АЦП. Данные с одного канала должны передаваться на первый индикатор как напряжение, а со второго, соответственно на второй индикатор как сила тока.
       
      #define F_CPU 8000000U
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <stdlib.h>
      #include <util/delay.h>
      #define INDICATOR PORTD
      #define RANK PORTB
      unsigned int UR1=0, UR2=0, UR3=0, UR4=0; //переменные для деления на разряды значения напряжения
      unsigned int IR1=0, IR2=0, IR3=0, IR4=0; //переменные для деления на разряды значения силы тока
      int GainControl=1;
      int current_ch=0;
      float I, U;
      unsigned char voltage, current;
      unsigned int NUMS [10] = {0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000}; // от 0 до 9
      int main(void)
      {
          DDRB=0xFF; PORTB=0x00; //ножки порта B для разряда
          DDRC=0x00; PORTC=0x00; //ножки порта C для АЦП
          DDRD=0xFF; PORTD=0xFF; //ножки порта D для индикаторов
          
          TCCR0 |= (1<<CS01); TCCR0 &= ~((1<<CS00) | (1<<CS02)); //настройка частоты таймера f/8
          TIMSK |= (1<<TOIE0); //разрешение прерываний по переполнению таймера
          TCNT0=0; // обнуление счетчика
          
          ADCSRA |= ((1<<ADEN) | (1<<ADSC) | (1<<ADPS2)); // запуск АЦП, запуск преобразования, предделитель 16
          ADCSRA &= ~((1<<ADFR) | (1<<ADIF) | (1<<ADPS1) | (1<<ADPS0)); // режим преобразвания прерывестый, флаг перобразования опущен, предделитель 16
          ADMUX |= ((1<<REFS0) | (1<<REFS1)); //источник опорного напряжения 2.56В
          ADMUX &= ~((1<<ADLAR) | (1<<MUX0) | (1<<MUX1) | (1<< MUX2) | (1<<MUX3)); // направление записи, измерительная ножка ADC0;
          
          sei(); // вкл прерывания
          while (1) 
          {
              if (ADCSRA & (1<<ADIF))
              {
                          U_Convert((U*5.00/1024)*100);
                          I_convert((I*5.00/1024)*100);
              }
          }
      }
      void U_Convert (unsigned int U_num)  //деление на разряды напряжения
      {
          UR1=U_num/100;
          UR2=U_num%100/10;
          UR3=U_num%10;
      }
      void I_convert (unsigned int I_num) //деление на разряды тока
      {    IR1=I_num/100;
          IR2=I_num%100/10;
          IR3=I_num%10;
      }
      ISR (TIMER0_OVF_vect)
      {        
          if (GainControl == 1) {INDICATOR = 0b11111110; RANK = NUMS[UR1];} //отображение 1ого разряда напряжения
          if (GainControl == 2) {INDICATOR = 0b11111101; RANK = NUMS[UR2];} //отображение 2ого разряда напряжения
          if (GainControl == 3) {INDICATOR = 0b11111011; RANK = NUMS[UR3];} //отображение 3ого разряда напряжения    
          if (GainControl == 4) {INDICATOR = 0b11110111; RANK = NUMS[IR1];} //отображение 1ого разряды силы тока
          if (GainControl == 5) {INDICATOR = 0b11101111; RANK = NUMS[IR2];} //отображение 2ого разряды силы тока
          if (GainControl == 6) {INDICATOR = 0b11011111; RANK = NUMS[IR3];} //отображение 3ого разряды силы тока
          GainControl++;
          if (GainControl > 6) GainControl=0; //  мониторинг переменной для управления затворами    
      }
      ISR (ADC_vect) 
      {
          if (current_ch == 0)
            {
                U = ADC;
                voltage = (U*2.56/1024)*100;
                ADMUX |= (1<<MUX0);
                current_ch = 1;
                ADCSRA |= (1<<ADSC);
            }
            else
            {
                I = ADC;
                current = (I*2.56/1024)*100;
                ADMUX &= ~(1<<MUX0);
                current_ch = 0;
                ADCSRA |= (1<<ADSC);
            }
      }
    • By Обычный Человек
      Микроконтроллер ATmega328p, внешний кварц 16МГц. Компилятор avr-gcc с оптимизацией O1

      Написал код для управление шаговым двигателем. Работает так: требуемая скорость задается переменной STP1_ReqSpeed, дальше с частотой 100Гц срабатывает таймер TIM0, который высчитывает с какой частотой надо подавать сигналы на вход шагового драйвера. TIM1 работает в режиме частотно импульсной модуляции и по прерыванию меняет значение пина на противоположное.

      Управление работает, скорость регулируется, но по какой то причине случаются пропуски шагов. Чаще всего во время ускорения. Количество пропусков от 0 до 4, обычно 2-3, длятся 32мс.

      Из кода вырезал неиспользуемое. Заменить прерывания на аппаратный ШИМ возможности нет. Как убрать эти пропуски?
      Осциллограммы:
       
       
×
×
  • Create New...