MAX7219 драйвер светодиодного индикатора

MAX7219 в электронных схемах осуществляет управление семисегментным светодиодным индикатором. Применение этого типа драйвера в конструкциях на микроконтроллере существенно упрощает вывод информации на дисплее, т.к нет надобности в схеме реализации динамической индикации. Управление светодиодным драйвером идет по интерфейсу SPI, для реализации которого необходимо выделить всего 3 линии ввода-вывода. Кроме семисегментных индикаторов, с помощью MAX7219 можно реализовать управление и светодиодной матрицой. Ближайший аналог с минимальными отличиями микросхема MAX7221.
Радиоконструкторы на любой вкус

MAX7219 справочник DataSheet

Ниже показана типовая схема управления семисегментных индикаторов на драйвере MAX7219:

MAX7219

К светодиодному драйверу можно подсоеденить до 8-ми индикаторов с общим катодом. Выводы DIN, CLK, CS применяются для передачи данных по SPI, к выводу ISET подсоединяется резистор, задающий максимальный ток через индикаторные сегменты, минимальный номинал сопротивления равен 9,53 кОм, при этом максимальный ток около 40 мА. Вывод DOUT применяется для каскадного подсоединения нескольких драйверов, этот вывод подключают к DIN входу следующего драйвера, тем самым данные загруженные в первый последовательно загружаются во второй.

Передача данных идет пакетами, состоящими из двух байт, первый – адрес регистра к которому следует обращение, второй байт это и есть данные, которые надо записать в регистр. Во время передачи пакета, нужно задать низкий логический уровень на линии CS.

В микросхеме MAX7219 находятся 14 регистров, с помощью которых идет управление. При задании адреса старший полубайт не имеет никакого значения. В таблице 1, которую вы можете скачать в архиве по ссылке выше приведены адреса регистров и их назначение.

Регистр Decode Mode задает режим декодирования данных для каждого светодиодного индикатора: 0-й бит отвечает за 0-й индикатор (на схеме HG1), 1-й бит соответствует HG2 и т.д. Если значение бита нулевое, декодирование данных не осуществляется, если 1 – идет.

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

Режим декодирования существенно упрощает процесс вывода символов, например, для отображения цифры один, надо просто записать в Digit X число 1. В таблице 2 вы можете найти (смотри архив по ссылке выше) соответствие отображаемых символов от значения Digit X, с режимом декодированием данных и без него.

Расположение сегментов (a, b, c, d, e, f, g, dp) в стандартном индикаторе можно увидеть на схеме выше. В режиме декодирования, состояние 4,5,6 бита в Digit X не имеет значения. Независимо от заданных параметров, 7-й бит необходим для визуализации десятичного знака.

Рег. Intensity используется для цифровой настройки интенсивности свечения. Изменение яркостиреализовано с помощью ШИМ, всего можно задать 16 уровней яркости, в справочной таблице три дается соответствие между яркостью свечения и значением параметра Intensity.

Значение старшего полубайта Intensity не имеет значения. Максимальная яркость ограничивается сопротивлением на выводе ISET.

При помощи еще одноо регистра Scan Limit можно задать количество активных индикаторов в схеме для вывода данных, неактивные индикаторы при этом не будут светится. В таблице 4 представлены справочные настройки характеристики Scan Limit.

Значение битов 3-7 в Scan Limit не актуально. От количества активных индикаторов зависит в первую очередь частота их обновления, которую можно легко узнать по формуле: 6400/N, где N – активные индикаторы схемы, например.

Параметр No-Op MAX7219 нужен для обращения к конкретному драйверу схемы при применении каскадного подсоединения нескольких, при этом линии CS (LOAD) и CLK нужно соединить вместе. Например, для обращения к четвертому драйверу в схеме, потребуется отправить пакет данных для него, а затем задать 0 на линии DIN, и отправить еще три пакета. Т.е, для первых 3-х обращение идет к No-Op, не повлияв на их работу, а в 4-м будет доставлен необходимый пакет.

В рег. Shutdown активным является только 0-й бит, если его значение задать в 0, то драйвер уйдет в спящий режим, и обесточит светодиодные дисплеи, при этом содержимое регистров не изменяется, при установке бита в единицу драйвер активизируется. В спящем режиме ток потребления равен всего 250 мкА.

Рег. Display Test предназначен для проверки работоспособности сегментов на индикаторах, для этого нужно задать 0-й бит регистра в 1, после чего засветятся все сегменты на всех светодиодных дисплеях, для выключения тестирующей опции бит перключаем обратно в нулевое состояние.

На рисунке ниже представлена схема подсоединения цифрового табло на микросхеме MAX7219 к микроконтроллеру PIC типа 16F628A:

Описание программного кода в архиве.