Проблема переключения P-канального МОП-транзистора

Я пытался построить светодиодную матрицу 16x9 с микроконтроллером с ограниченным количеством контактов. Аноды светодиодов управляются P-канальными МОП-транзисторами, затворы которых управляются 8-битным сдвиговым регистром 74HC595. катоды светодиодов утоплены микросхемой драйвера TLC5940 LED PWM. Схема вокруг МОП-транзисторов выглядит так:введите описание изображения здесь

Источник подключен к 5 В, а гейт подтягивается к 5 В через резистор 1 кОм. Сток подключен к анодам 16 светодиодов параллельно, а затвор к 74HC595. Теперь мое наблюдение на логическом анализаторе (как и на осциллографе):

введите описание изображения здесь

Красный канал — это просто постоянное питание 5 В на источнике. Коричневый канал — это сигнал переключения, поступающий от 74HC595, а черный канал — напряжение на стоке. Разве полевой МОП-транзистор не должен отключаться сразу после того, как ворота снова поднимаются? Задержка выключения описывается как около 80 нс, что четко передается на выходе логического анализатора. Это ожидаемое поведение или я делаю что-то не так? Поскольку TLC5940 может потреблять ток только на катодах светодиодов, я не мог обойти переключение на стороне высокого напряжения, но у меня сложилось впечатление, что эта схема должна работать...

РЕДАКТИРОВАТЬ:

Спустя некоторое время я воссоздал более простую версию схемы и протестировал ее на макетной плате с помощью Arduino, чтобы выявить проблему. Это моя схема, несвязанные цепи подключаются к управляющим контактам Arduino:

введите описание изображения здесь

В качестве p-канальных МОП-транзисторов я пробовал оба, FQP27P06 и IRF9540N, оба имеют схожие характеристики. Мои показания были в обоих случаях почти одинаковыми:введите описание изображения здесь

Мы видим, что MOSFET должен работать только в течение 0,27 мс в соответствии с показаниями затвора, но он остается еще на 0,86 мс, что действительно вредит моему приложению, когда все 9 рядов светодиодов подключены в конце. Это вызывало проблемы, потому что одна колонка со всеми 16 светодиодами потребляла 320 мА. При таком поведении всех МОП-транзисторов и всех светодиодов, активированных в моей матрице, 3-4 МОП-транзистора работали одновременно, что как минимум утроило потребляемый ток, и, поскольку моя плата не была предназначена для этого, напряжение тормозило, и MCU закончилось остановкой. Кроме того, мой корпус TLC5940 не был рассчитан на количество рассеиваемого тепла, и он иногда выходил в режим температурной ошибки. Кто-нибудь знает, почему эта проблема может возникнуть? Каждый ответ очень ценится!

Пожалуйста, покажите больше схемы, чтобы мы могли точно увидеть, как подключены МОП-транзисторы.
Не показывайте фрагмент схемы, а опишите остальное. Покажите всю цепь.
Что произошло дальше? Был ли плавающий штифт?

Ответы (7)

Попробуйте добавить подтягивающие резисторы к выводам стока полевых МОП-транзисторов. Показанные вами формы сигналов представляют собой классические кривые емкостного разряда, вызванные нагрузками с высоким импедансом.

Поскольку контакты источника полевого транзистора находятся на 5 В постоянного тока, попробуйте резисторы 1 кОм от стоков до земли.

К сожалению, 1K, вероятно, недостаточно для выполнения работы — это достаточная емкость для 16 светодиодов. Также он тратит энергию, когда колонка включена.

Вы неправильно поняли что-то важное, и дело не в вашей схеме, а в том, как вы читали техническое описание. IRF9540 говорит:

введите описание изображения здесь

Теперь ясно, что «обещанное» Fall Time составляет 51 нс. Но нужно обратить внимание на условия:

  • VDD = -50В
  • ID = -11А

Это означает, что «обещанное» время падения не будет 51 нс или, по крайней мере, не с вашим источником питания 5 В. В этом корень проблемы.

Если вы мне еще не верите, проверьте следующее, я провел несколько тестов:

введите описание изображения здесь

Это реакция схемы с VDD = 5v. В результате Fall Time составляет 4 мс!

введите описание изображения здесь

Это реакция схемы с VDD = 12v. Здесь результирующее время падения составляет 2,5 мс. На самом деле меньше, потому что мы приближаемся к тестовым значениям (например, VDD=50v).

Я хотел бы проверить это с VDD = 50 В, но сейчас у меня нет инструментов.

Заключение:

Читайте техпаспорт и будьте осторожны в следующий раз! Они обещают некоторые вещи, но вы должны читать между строк.

Ни в коем случае не в этом проблема. Время разряда RC, показанное OP, кратно мс. Это заряд, остающийся на стоке, и ему некуда стекать, когда светодиоды больше не смещаются в прямом направлении.
Хм, ну вы тоже можете попробовать повторить. Пожалуйста, без симуляций. У меня было это сомнение раньше, и это был мой вывод. Я могу ошибаться, но вы должны предъявить доказательства. Наука <3
Привет, Марсело, спасибо за ответ и усилия! Я тоже подумал об этом и сделал еще один тест, вместо 16 параллельных светодиодов, которые дают ток 320 мА с ограничением тока, установленным на TLC, я использовал резистор 16 Ом (6 x100 параллельно для мощности) как нагрузка, которая будет иметь почти равный ток. Теперь время падения составляло чуть меньше микросекунды, не то, что указано в техническом описании, но намного лучше, чем раньше, и с этим я определенно мог работать. Поэтому мне кажется, что проблема заключается в емкости моей конкретной нагрузки, и подтягивание действительно помогло.
Да, я тестировал это вчера, подтягивающий резистор уменьшает время выключения с миллисекунд до диапазона микросекунд. Не идеально из-за небольшой траты энергии, но работает. Тем не менее, это не обещанные наносекунды.

Я считаю, что нет ничего плохого в дизайне. Что-то не так с физической схемой. На ум приходят три основных кандидата:

  1. МОП-транзистор плохой
  2. Подсхема TLC5940 и светодиода имеет некоторый сбой, приводящий к нежелательному подключению к клемме стока.
  3. Некоторое другое непреднамеренное соединение со сливной клеммой в цепи.

Вы попробовали несколько МОП-транзисторов и получили тот же результат, так что это маловероятно. Но вы можете провести несколько тестов, чтобы зафиксировать это и указать на настоящего виновника:

  1. Замените MOSFET на физический переключатель и посмотрите, получите ли вы тот же результат. Очевидно, что это полностью оправдает МОП-транзистор и покажет, что что-то еще не так.
  2. Если у вас такое же странное поведение с переключателем, замените TLC5940 или, возможно, отключите от него все светодиоды, кроме одного, чтобы отрезать большую часть возможных неисправных соединений с клеммой стока. Возможно, TLC5940 и светодиод имеют какую-то ошибку, которая обеспечивает эту связь.

Вы знаете, если вы работаете над тем, чтобы переключатель был подключен к одной комбинации светодиод/резистор, он должен работать где-то на этом пути. Таким образом, идея состоит в том, чтобы проложить свой путь к этому и определить, что не удается. Возможно, ваша печатная плата имеет дефект и дает вам какое-то соединение с клеммой стока, и в этом случае даже переключатель, питающий комбинацию светодиода и резистора, может показывать такое поведение!

+1 Хороший старт для нового автора! :-). Добро пожаловать.
Спасибо за предложения. Тест, который я провел, заключался в замене светодиодов резистором, что привело к равному потреблению тока, и оказалось, что время спада было намного лучше и очень близко к ожидаемому в таблице данных. Итак, я пришел к выводу, что используемые светодиоды являются компонентом с высоким импедансом, и мне помог подтягивающий резистор на стоке MOSFET!

Ух ты. Много отвлекающих ответов на этот вопрос. Это простая проблема с простым ответом.

МОП-транзистор не выключается слишком медленно.

Эти сигналы измеряют напряжение относительно земли , в частности, напряжение на стоке полевого МОП-транзистора.

Светодиоды остаются диодами. Они имеют собственную емкость и нелинейное падение напряжения. И МОП-транзисторы действительно имеют емкости. Одним из интересных здесь является выходная емкость, которая фактически представляет собой конденсатор между стоком и истоком. Он должен разрядиться через эти диоды, и этот разряд станет экспоненциально медленным (точно так же, как мы видим на графиках напряжения). Так что конечно напряжение на стоке спадает медленно.Вы просто смотрите на ожидаемую кривую спада напряжения для выходной емкости полевого МОП-транзистора, вынужденного разряжаться через субпороговую утечку диодов. Емкость исчисляется сотнями пикофарад, а ток разряда порядка наноампер. Всякий раз, когда напряжение возбуждения близко к падению напряжения на диодах, это становится намного более заметным, тогда как при более высоких напряжениях оно меньше, так как затухание не замедляется до тех пор, пока падение напряжения на диодах немного не уменьшится. Но он все равно есть, просто менее заметен на графике. Я хотел бы отметить, что при напряжении возбуждения 5 В, и чтобы мы не забывали, что есть как минимум дополнительное падение 0,6-1,2 В из-за микросхемы драйвера нижней стороны (в которой внутри не используются МОП-транзисторы, а биполярные транзисторы) поверх возможно падение на 3-3,4 В для светодиодов... не так много места для головы. Такой распад был бы гораздо заметнее.

И я могу это доказать. Если вы поместите нагрузочный резистор параллельно диодам на землю, может быть, 10K, вы должны увидеть, что напряжение спадает намного быстрее, поскольку теперь оно имеет линейный резистивный путь для разряда, а не экспоненциальное поведение PN-переходов.

Я хочу сказать, что MOSFET отключается . Падение напряжения является нормальным, ожидаемым и не связано с другими проблемами, которые у него есть. Это также легко. Измерьте ток. Измерьте ток последовательно со стоком или истоком МОП-транзистора. Измерение напряжения на стоке не является правильным способом определения выключения в этой схеме . Измерение тока — это правильный способ определить, выключается ли МОП-транзистор или нет. И я уверен, что он выключается так быстро, как можно было бы ожидать.

И, конечно же, если MOSFET действительно выключался так же медленно, как спадает напряжение в измеряемом узле, то почему мы можем видеть это:

введите описание изображения здесь

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

Шаг нагрузки, который не мог бы произойти, если бы МОП-транзистор не выключался должным образом. Тот, который, конечно, не мог бы произойти, если бы он выключался так медленно, как неправильный метод, используемый для определения этого (напряжения), чтобы мы поверили.

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

Измерьте ток. Вы увидите, что ток падает так быстро, как вы и ожидали.

Выглядит неплохо. то есть то, что Дуэйн сказал в 3 строчки.
Спасибо за подробное объяснение!
Хорошее понимание всплеска выходного напряжения при выключении MOSFET. Я согласен с тем, что МОП-транзистор выключается ... но разве вы не ожидаете, что сразу после выключения МОП-транзистора, пока на аноде светодиода все еще есть полные 5 В, светодиод все еще будет в прямом направлении, и вы увидите очень короткий период чрезвычайно быстрого затухания, пока напряжение светодиода не упадет ниже порогового значения?

Ссылки на даташиты ВСЕГДА хорошая идея.

C в воротах около 1400 пФ в зависимости от ваших условий. Подтягивание
R 1 кОм

Постоянная времени на затворе T = RC = 1000 x 1400 E -12
= 1,4 мкс.

Вы видите гораздо более длительное время выключения ворот, чем это. Вы уверены, что 1 кОм не 100 кОм или около того?

В противном случае это не имеет большого смысла.
Ищите что-нибудь несусветное :-)


Добавлен:

... как вы можете видеть в коричневом канале логического анализатора, напряжение на затворе ведет себя так, как и ожидалось. Это напряжение стока, которое дает мне это странное поведение. Я также проверил сопротивление и протестировал ряд других резисторов (1 кОм, 10 кОм, 100 кОм ...) ... то же самое.

Есть ли неиспользуемая линия выбора или адресная линия на HC595, когда она должна быть привязана к высокому или низкому уровню? Это объяснило бы такое поведение, а также случайное поведение в других случаях.

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

Это очень распространенный класс поведения с плавающим выводом.

Спасибо за ответ, но, как вы можете видеть в коричневом канале логического анализатора, напряжение на затворе ведет себя так, как и ожидалось. Это напряжение стока, которое дает мне это странное поведение. Я также проверил сопротивление и протестировал ряд других резисторов (1 кОм, 10 кОм, 100 кОм ...) ... то же самое. Я добавлю более подробную схему с лучшим контекстом моего проекта!
@tlubes Есть ли неиспользуемая строка выбора или адреса на HC595, плавающая, когда она должна быть привязана к высокому или низкому уровню? Это объяснило бы такое поведение, а также случайное поведение в других случаях. Здесь линия следует за некоторым источником (линия выбора или ...) через утечку (в микросхеме или во внешнем) с большой постоянной времени из-за емкости вывода и высокого сопротивления утечки или тока смещения.
Нет, никаких плавающих булавок. Все пины 74hc595 были привязаны к уровню. Скоро буду отлаживать дальше, это всего лишь один из моих побочных проектов. Я также заметил, что при меньшей частоте поведение было не таким плохим, но все же непропорциональным, если смотреть на техническое описание.
@RusselMcMahon Я очень ценю вашу помощь! Я отредактировал свой вопрос так, чтобы было более понятно, что происходит. Я использовал все новые компоненты и дважды пересобирал все, поэтому я думаю, что я изолировал все случайные проблемы, насколько это было возможно!
Ответ @tlubes Дуэйна вполне может определить проблему. т.е. плавающий штифт, НО нагрузка - это штифт, который плавает! :-). Надеюсь, его решение сработает. Кажется, это согласуется с тем, что вы описываете до сих пор.

Пара мыслей.

  • попробуйте использовать более низкую шину для светодиода, например, 3,8 В или около того (если возможно, чуть выше вашего максимального Vf).
  • Используйте транзистор N-FET или NPN на каждой колонке, чтобы опустить аноды, когда колонка выключена.

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

Теперь о проблеме, которую вы видите.

тл; Д-р: ваши светодиоды мерцают . Вы можете нанять экзорциста или... вам нужно снять аноды в мертвое время.

Вот актуальная ссылка по этой теме: Вертикальные ореолы на светодиодной матричной RGB-панели 64x32 1/16.

Почему это происходит?

Когда полевой транзистор верхнего плеча отключен, ток светодиода почти равен нулю. Это нормально, но на анодах светодиодов, дорожках и стоке P-FET все еще есть остаточный заряд. Да, эти светодиоды становятся конденсаторами .

Что происходит, когда FET выключается, тогда:

  • Светодиоды проводят до тех пор, пока не достигнут своего прямого напряжения, Vf
  • Ток светодиода быстро спадает до утечки менее Vf, которая находится в диапазоне нА.

Таким образом, любой оставшийся заряд медленно уходит через светодиоды со смещением ниже Vf, которым больше некуда деваться. Это означает, что эти светодиоды все еще очень близки к включению, даже если совсем чуть-чуть, в течение этого времени затухания ниже порога Vf.

И угадай что? Если напряжение на катоде повышается при активации другого столбца, это соединяется с столбцом «выключено» через емкость их светодиодов ниже Vf. И в процессе этого анодное напряжение за пределами столбца снова становится выше Vf , зажигая светодиоды в столбце «выключено».

Это ореол в (ореховой) скорлупе.

Как это исправить?

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

N-FET может быть очень дешевым, например, 2N7002, объемом менее 2 центов. Также может работать NPN-транзистор (около 1 цента за 2N3904) или даже инвертирующий буфер с открытым стоком.

Спасибо за советы и подробные объяснения! В конце концов я опущу светодиодную рейку. Это всего лишь грубый хобби-проект, который мне нужно изучить, поэтому никакая утечка на стоке не поможет. Но, конечно, я хочу улучшить, и я заказал микросхему драйвера MOSFET с включенными N-канальными и P-канальными полевыми транзисторами. Это должно привести к еще лучшему результату.

Я заметил, что время низкого уровня затвора каждого мосфета составляет 0,27 мс. Ну, 0,27 мс x 9 = 2,45 мс, но ваше время цикла составляет 4,5 мс. Вы выполняете 2 мс обработки между каждым циклом вокруг строк, когда дисплей не управляется?

Обычный способ управления светодиодным дисплеем — управление прерываниями. Имейте прерывание, управляемое таймером, и каждый раз, когда выполняется подпрограмма прерывания, текущая светящаяся строка выключается, а следующая включается. Тогда нет мертвого времени во время другой обработки.

Вы можете настроить прерывание дисплея, и если проблема вызвана временем отключения полевого транзистора, вы можете управлять дисплеем на более низкой частоте (вы не должны видеть никакого мерцания на частоте 80 Гц). Затем вы можете добавить 0,8 мс мертвого времени «все гейты высокие» между отключением строки и включением следующей.

Спасибо за ответ. На самом деле моя матрица управляется прерываниями с помощью TIMER0 atmega168p. Причина, по которой в цикле есть некоторое время отключения, заключается в том, что я фактически получаю данные светодиодов от флэш-памяти SPI и настраиваю TLC5940 после того, как отключил аноды светодиодов. После того, как все сделано и защелка TLC прошла, я включаю следующий ряд анодов. Кроме того, мой MCU в настоящее время работает только на частоте 8 МГц. В программной части еще многое предстоит сделать...