Не смотря на то, что сегодня повсеместно стали использовать ЖК индикаторы и дисплеи, светодиодные 7-сегментные индикаторы по прежнему сохраняют актуальность. Хотя и стали использоваться реже, в том числе, в любительских конструкциях.
Такие 7-сегментные индикаторы часто объединяются для использования динамической индикации. Но может использоваться и статическая индикация. В любом случае, количество выводов микроконтроллера для управления и единичными индикаторами, и многоразрядными дисплеями получается довольно большим.
Для уменьшения количества задействованных для управления индикаторами выводов широко используется микросхема 74HC595, сдвиговый регистр с параллельными выходами. Для динамической индикации достаточно одной микросхемы для управления сегментами (7 сегментов плюс десятичная точка). Для статической индикации можно использовать возможность последовательного соединения 74HC595, что увеличит число микросхем в устройстве, но позволит снизить нагрузку на микроконтроллер.
Что бы задать ток светодиодов используют резисторы в цепях сегментов. Для динамической индикации таких резисторов потребуется 8 штук. Для статической, по 8 штук на каждый разряд. Поскольку динамическая индикация используется чаще, количество резисторов не выглядит большим.
Но иногда требуется управлять еще и яркостью светодиодов. Это можно сделать введя ШИМ в управление общими электродами индикаторов (ключи разрядов). Но есть и другой способ. Вот о нем сегодня и поговорим.
Стабилизаторы тока и драйверы светодиодов
Двухвыводные стабилизаторы тока, например, NSI50010YT1G от ON Semiconductor (10 мА), можно использовать вместо токозадающего резистора для светодиода. И так действительно иногда поступают, но относительно редко. Просто резистор дешевле. Такие двухвыводные стабилизаторы тока можно назвать и драйверами светодиодов.
Существуют и многоканальные драйверы, которые умеют работать только в режиме включен/выключен (все каналы одновременно), но при этом ток каналов (светодиодов) задается внешними компонентами. Обычно, резистором. Примером такого многоканального драйвера является микросхема MBI1816GT от Macroblock.
Однако, такие драйверы не подходят для управления 7-сегментными индикаторами, так как не обеспечивают независимое управление сегментами.
Не подходят и драйверы, которые обеспечивают питание светодиодов от сети переменного тока. У них просто совсем другое назначение.
Было бы заманчивым объединить классический регистр 74HC595 с драйверами светодиодов, в одном корпусе, что бы иметь и возможность раздельного управления сегментами, и возможность каскадирования, и возможность управления током (яркостью). Причем управление током должно быть едиными для индикатора в целом.
И такие микросхемы действительно есть.
MBI5167, MBI5168, STP08DP05. Используем драйверы светодиодов для управления светодиодными индикаторами и дисплеями
На самом деле, эти микросхемы предназначены вовсе не для управления 7-сегментыми индикаторами. Они предназначены для управления линейками светодиодов в светодиодных дисплеях. Поэтому их выходы могут работать при напряжении превышающем напряжение питания. А STP08DP05 еще и обеспечивает контроль светодиодов (обрыв и короткое замыкание).
Но эти микросхемы хорошо подходят и для управления 7-сегментными индикаторами. MBI5167 отличается от MBI5168 лишь допустимым током через светодиоды, в остальном эти микросхемы идентичны. STP08DP05, дополнительно, обеспечивают защиту микросхемы от перегрева и контроль светодиодов. В остальном они идентичны MBI5167/8.
Поскольку дополнительные возможности STP08DP05 не нужны при управлении индикаторами, я их не буду сегодня рассматривать. Поэтому, с точки зрения управления, все микросхемы одинаковы. Кстати, есть аналогичные микросхемы других производителей, но рассмотреть их все не представляется физически возможным.
При этом у микросхем есть и ограничение, которое может для некоторых оказаться решающим минусом. Их можно использовать только с индикаторами с общим анодом.
Как это устроено? Функциональная схема
Рассматриваемые сегодня драйверы действительно очень похожи на объединение в одном корпусе 74HC595 и стабилизаторов тока
Микросхема от ST немного сложнее, что для нас сегодня не имеет значения
Назначение выводов всех микросхем одинаково.
SDI - входные данные (состояния сегментов) в последовательном коде.
CLK - тактовый сигнал регистра сдвига. Данные со входа SDI записываются в сдвиговый регистр по положительному перепаду на входе CLK.
LE - разрешение регистра-защелки. Следует учитывать, что это именно разрешение, а не строб. То есть, при высоком уровне на входе LE данные со входа защелки беспрепятственно попадают на его выход. После окончания заполнения регистра сдвига нужно подать на вход LE положительный импульс для занесения информации из регистра сдвига в защелку. В остальное время на входе LE должен быть низкий уровень.
На самом деле, уровень на входе LE может быть и всегда высоким. Тогда мы можем реализовать режим бегущей строки на матричном дисплее. Я уже говорил, что эти микросхемы предназначены для управления дисплеями, а не индикаторами. Но для 7-сегментных индикаторов такой режим работы не используется.
OE - инверсный сигнал разрешения работы выходных ключей. Если на входе OE высокий уровень, индикатор погашен. Во многих случаях вход OE можно просто соединить с общим проводом.
SDO - выходной сигнал сдвигового регистра, который используется для каскадирования микросхем. Подключается к входу SDI следующей микросхемы.
R-EXT - вывод подключения внешнего резистора. которым задают ток через светодиоды (яркость свечения). Второй вывод резистора подключают к общему проводу.
OUT0 - OUT7 - выводы для подключение сегментов (катоды светодиодов) индикатора. Общий вывод индикаторов (анод светодиодов) подключается или к положительному выводу источника питания, или к ключу управления разрядом (при динамической индикации).
После копирования данных из регистра сдвига в выходной регистр (защелку), то есть, после возврата сигнала на входе LE к низкому уровню, можно заполнять регистр сдвига новой информацией. Это не будет влиять на состояние выводов сегментов.
Регулирования яркости светодиодов
Ток светодиодов (сегментов), а значит и их яркость, определяется внешним резистором. Зависимость сопротивление-ток при этом не линейная, а конкретные значения нужно смотреть в документации. Но во всех случаях, чем больше сопротивление резистора, тем меньше ток. То есть, в качестве токозадающего резистора можно использовать фоторезистор, что позволит легко снижать яркость индикаторов в условиях низкой освещенности. Или повышать, при ярком освещении.
Электрические и временные параметры микросхем
Как и всегда, микросхемы драйверов имеют ограничения по условиям работы. Напряжение питания собственно микросхем должно находиться в диапазоне 3.3В - 5В. Выходные ключи могут работать при напряжении до 20В. Это позволяет использовать микросхемы для управления большими индикаторами, в которых каждый сегмент состоит из нескольких последовательно включенных светодиодов.
Кроме выходного тока существенным ограничивающим фактором является суммарная мощность рассеиваемая ключами всех каналов. Поскольку драйвер ограничивает ток, к выходным ключам оказывается приложено напряжение источника питания за вычетом падения напряжения на светодиоде (и разрядном ключе, при его наличии).
Допустимая рассеиваемая мощность для этих микросхем различна. Но не рекомендуется превышать 1Вт, что соответствует 0.125Вт на один канал (все сегменты могут быть включены одновременно). Если для питания индикатора используется источник 5В, а на светодиоде (сегменте) падает 1.8В, максимальный ток сегмента не должен превышать 39мА. Такого тока, в большинстве случаев, хватает даже для динамической индикации.
Максимальная частота тактового сигнала может достигать 25 МГц. Поэтому вывод информации не займет много времени даже при статической индикации для многоразрядного дисплея.
Заключение
Рассмотренные микросхемы не единственные, которые можно успешно использовать при работе с 7-сегментными светодиодными индикаторами, хоть они изначально и предназначались для другого. Есть и 16 разрядные драйверы, причем с возможностью программного управления током каналов, и даже с ШИМ управлением током (вместо линейного). Как я уже сказал, рассмотреть все варианты невозможно. Поэтому я ограничился лишь достаточно простыми микросхемами, которые, по управлению, очень похожи на широко используемые 74SN595.