Я пытался построить светодиодную матрицу 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 не был рассчитан на количество рассеиваемого тепла, и он иногда выходил в режим температурной ошибки. Кто-нибудь знает, почему эта проблема может возникнуть? Каждый ответ очень ценится!
Попробуйте добавить подтягивающие резисторы к выводам стока полевых МОП-транзисторов. Показанные вами формы сигналов представляют собой классические кривые емкостного разряда, вызванные нагрузками с высоким импедансом.
Поскольку контакты источника полевого транзистора находятся на 5 В постоянного тока, попробуйте резисторы 1 кОм от стоков до земли.
Вы неправильно поняли что-то важное, и дело не в вашей схеме, а в том, как вы читали техническое описание. IRF9540 говорит:
Теперь ясно, что «обещанное» Fall Time составляет 51 нс. Но нужно обратить внимание на условия:
Это означает, что «обещанное» время падения не будет 51 нс или, по крайней мере, не с вашим источником питания 5 В. В этом корень проблемы.
Если вы мне еще не верите, проверьте следующее, я провел несколько тестов:
Это реакция схемы с VDD = 5v. В результате Fall Time составляет 4 мс!
Это реакция схемы с VDD = 12v. Здесь результирующее время падения составляет 2,5 мс. На самом деле меньше, потому что мы приближаемся к тестовым значениям (например, VDD=50v).
Я хотел бы проверить это с VDD = 50 В, но сейчас у меня нет инструментов.
Заключение:
Читайте техпаспорт и будьте осторожны в следующий раз! Они обещают некоторые вещи, но вы должны читать между строк.
Я считаю, что нет ничего плохого в дизайне. Что-то не так с физической схемой. На ум приходят три основных кандидата:
Вы попробовали несколько МОП-транзисторов и получили тот же результат, так что это маловероятно. Но вы можете провести несколько тестов, чтобы зафиксировать это и указать на настоящего виновника:
Вы знаете, если вы работаете над тем, чтобы переключатель был подключен к одной комбинации светодиод/резистор, он должен работать где-то на этом пути. Таким образом, идея состоит в том, чтобы проложить свой путь к этому и определить, что не удается. Возможно, ваша печатная плата имеет дефект и дает вам какое-то соединение с клеммой стока, и в этом случае даже переключатель, питающий комбинацию светодиода и резистора, может показывать такое поведение!
Ух ты. Много отвлекающих ответов на этот вопрос. Это простая проблема с простым ответом.
МОП-транзистор не выключается слишком медленно.
Эти сигналы измеряют напряжение относительно земли , в частности, напряжение на стоке полевого МОП-транзистора.
Светодиоды остаются диодами. Они имеют собственную емкость и нелинейное падение напряжения. И МОП-транзисторы действительно имеют емкости. Одним из интересных здесь является выходная емкость, которая фактически представляет собой конденсатор между стоком и истоком. Он должен разрядиться через эти диоды, и этот разряд станет экспоненциально медленным (точно так же, как мы видим на графиках напряжения). Так что конечно напряжение на стоке спадает медленно.Вы просто смотрите на ожидаемую кривую спада напряжения для выходной емкости полевого МОП-транзистора, вынужденного разряжаться через субпороговую утечку диодов. Емкость исчисляется сотнями пикофарад, а ток разряда порядка наноампер. Всякий раз, когда напряжение возбуждения близко к падению напряжения на диодах, это становится намного более заметным, тогда как при более высоких напряжениях оно меньше, так как затухание не замедляется до тех пор, пока падение напряжения на диодах немного не уменьшится. Но он все равно есть, просто менее заметен на графике. Я хотел бы отметить, что при напряжении возбуждения 5 В, и чтобы мы не забывали, что есть как минимум дополнительное падение 0,6-1,2 В из-за микросхемы драйвера нижней стороны (в которой внутри не используются МОП-транзисторы, а биполярные транзисторы) поверх возможно падение на 3-3,4 В для светодиодов... не так много места для головы. Такой распад был бы гораздо заметнее.
И я могу это доказать. Если вы поместите нагрузочный резистор параллельно диодам на землю, может быть, 10K, вы должны увидеть, что напряжение спадает намного быстрее, поскольку теперь оно имеет линейный резистивный путь для разряда, а не экспоненциальное поведение PN-переходов.
Я хочу сказать, что MOSFET отключается . Падение напряжения является нормальным, ожидаемым и не связано с другими проблемами, которые у него есть. Это также легко. Измерьте ток. Измерьте ток последовательно со стоком или истоком МОП-транзистора. Измерение напряжения на стоке не является правильным способом определения выключения в этой схеме . Измерение тока — это правильный способ определить, выключается ли МОП-транзистор или нет. И я уверен, что он выключается так быстро, как можно было бы ожидать.
И, конечно же, если MOSFET действительно выключался так же медленно, как спадает напряжение в измеряемом узле, то почему мы можем видеть это:
Регуляторы напряжения не всплескивают свое выходное напряжение, если нагрузка затухает, как измеренное напряжение. Единственный способ, которым мы могли бы увидеть внезапный всплеск напряжения питания, - это если бы регулятор испытал внезапный скачок нагрузки от сильного потребления тока до почти полного отсутствия потребления тока. Он не может среагировать мгновенно, поэтому существует короткий период, когда напряжение выходит из-под контроля, в частности, из-за того, что оно выше, чем должно быть, прежде чем он сможет вернуть выход в режим регулирования. Для этого требуется большой и быстрый шаг нагрузки.
Шаг нагрузки, который не мог бы произойти, если бы МОП-транзистор не выключался должным образом. Тот, который, конечно, не мог бы произойти, если бы он выключался так медленно, как неправильный метод, используемый для определения этого (напряжения), чтобы мы поверили.
В шине напряжения есть такой скачок нагрузки, что означает, что полевой МОП-транзистор действительно отключается и происходит немного быстрее, чем этот скачок напряжения на шинах питания.
Измерьте ток. Вы увидите, что ток падает так быстро, как вы и ожидали.
Ссылки на даташиты ВСЕГДА хорошая идея.
C в воротах около 1400 пФ в зависимости от ваших условий. Подтягивание
R 1 кОм
Постоянная времени на затворе T = RC = 1000 x 1400 E -12
= 1,4 мкс.
Вы видите гораздо более длительное время выключения ворот, чем это. Вы уверены, что 1 кОм не 100 кОм или около того?
В противном случае это не имеет большого смысла.
Ищите что-нибудь несусветное :-)
Добавлен:
... как вы можете видеть в коричневом канале логического анализатора, напряжение на затворе ведет себя так, как и ожидалось. Это напряжение стока, которое дает мне это странное поведение. Я также проверил сопротивление и протестировал ряд других резисторов (1 кОм, 10 кОм, 100 кОм ...) ... то же самое.
Есть ли неиспользуемая линия выбора или адресная линия на HC595, когда она должна быть привязана к высокому или низкому уровню? Это объяснило бы такое поведение, а также случайное поведение в других случаях.
Здесь плавающая линия может следовать за некоторым источником (выборной линией или ...) через утечку (внутри микросхемы или снаружи) с большой постоянной времени из-за емкости вывода и высокого сопротивления утечки или тока смещения.
Это очень распространенный класс поведения с плавающим выводом.
Пара мыслей.
Использование более низкого напряжения светодиода на собственной шине уменьшит рассеивание мощности в драйвере источника тока TLC. А поскольку переходные токи светодиодов по своей природе велики, не помешает изолировать их от собственного источника питания. И... меньше заряда, который нужно сбросить, когда придет время чистить ряд.
Теперь о проблеме, которую вы видите.
тл; Д-р: ваши светодиоды мерцают . Вы можете нанять экзорциста или... вам нужно снять аноды в мертвое время.
Вот актуальная ссылка по этой теме: Вертикальные ореолы на светодиодной матричной RGB-панели 64x32 1/16.
Почему это происходит?
Когда полевой транзистор верхнего плеча отключен, ток светодиода почти равен нулю. Это нормально, но на анодах светодиодов, дорожках и стоке P-FET все еще есть остаточный заряд. Да, эти светодиоды становятся конденсаторами .
Что происходит, когда FET выключается, тогда:
Таким образом, любой оставшийся заряд медленно уходит через светодиоды со смещением ниже Vf, которым больше некуда деваться. Это означает, что эти светодиоды все еще очень близки к включению, даже если совсем чуть-чуть, в течение этого времени затухания ниже порога Vf.
И угадай что? Если напряжение на катоде повышается при активации другого столбца, это соединяется с столбцом «выключено» через емкость их светодиодов ниже Vf. И в процессе этого анодное напряжение за пределами столбца снова становится выше Vf , зажигая светодиоды в столбце «выключено».
Это ореол в (ореховой) скорлупе.
Как это исправить?
Добавьте N-FET в каждую колонку, чтобы принудительно снизить анодное напряжение, когда эта колонка выключена. Подтягивающий резистор N-стороны разряжает это остаточное напряжение намного быстрее, чем это может сделать подтягивающий резистор. Это не только устраняет ореолы, но и позволяет значительно сократить время гашения.
N-FET может быть очень дешевым, например, 2N7002, объемом менее 2 центов. Также может работать NPN-транзистор (около 1 цента за 2N3904) или даже инвертирующий буфер с открытым стоком.
Я заметил, что время низкого уровня затвора каждого мосфета составляет 0,27 мс. Ну, 0,27 мс x 9 = 2,45 мс, но ваше время цикла составляет 4,5 мс. Вы выполняете 2 мс обработки между каждым циклом вокруг строк, когда дисплей не управляется?
Обычный способ управления светодиодным дисплеем — управление прерываниями. Имейте прерывание, управляемое таймером, и каждый раз, когда выполняется подпрограмма прерывания, текущая светящаяся строка выключается, а следующая включается. Тогда нет мертвого времени во время другой обработки.
Вы можете настроить прерывание дисплея, и если проблема вызвана временем отключения полевого транзистора, вы можете управлять дисплеем на более низкой частоте (вы не должны видеть никакого мерцания на частоте 80 Гц). Затем вы можете добавить 0,8 мс мертвого времени «все гейты высокие» между отключением строки и включением следующей.
Брюс Эбботт
Энди ака
Рассел МакМахон