Главная » Электроника » MAX7219, MAX7221 - драйвер для светодиодной индикации
MAX7219, MAX7221 — драйвер для светодиодной индикации

MAX7219, MAX7221 — драйвер для светодиодной индикации

При классическом управлении семисегментными или матричными индикаторами микроконтроллером возникают несколько проблем:

  • увеличение количества линий управления;
  • необходимость устанавливать мощные буферные элементы;
  • необходимость постоянной работы микроконтроллера для поддержания динамической индикации.

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

Общие сведения о MAX7219 или MAX7221

Драйвер MAX7219 управляется по трехпроводной последовательной шине Microwire (3-Wire). MAX7221 управляется по шине SPI и имеет ограниченную скорость нарастания напряжения драйверов сегментов для снижения излучения EMI. Драйверы допускают каскадирование для управления большим числом индикаторов. Каждый из разрядов индикатора имеет независимую адресацию и его содержимое может быть обновлено без необходимости перезаписи всего индикатора. ИС MAX7219/MAX7221 также позволяют пользователю определять режим декодирования каждого разряда.

Кроме того, драйверы MAX7219 (MAX7221) имеют спящий режим с запоминанием информации, аналоговое и цифровое управление яркостью подключенных индикаторов и тестовый режим, включающий все LED сегменты.

MAX7219 (MAX7221) – драйвер восьми разрядного цифрового LED индикатора с последовательным интерфейсом. Драйвер может управлять восемью семисегментными индикаторами с точкой, либо отдельно 64 светодиодами в LED панелях с общим катодом. Таким образом, данные микросхемы подходят не только для семисегментных, но и для матричных индикаторов.

MAX7219 и MAX7221 отличаются только интерфейсом. У MAX7219 интерфейс Serial 3-Wire, у MAX7221 — Serial SPI.

Типовая схема включения

Как обычно, у таких микросхем имеется схема включения, которая не представляет какой-либо сложности, что и показано на рис. 1

Типовая схема включения MAX7219/7221

Типовая схема включения MAX7219/7221

При помощи резистора на pin 18 задается ток ISET, которым устанавливается ток через светодиоды, что позволяет регулировать свечение сегментов индикатора «аналоговым» способом. В MAX7219/VAX7221 предусмотрена регулировка яркости сегментов с помощью ШИМа.

В проекте по ссылке //pro-diod.ru/electronica/max7219-proekt-na-pyati-mikrosxemax.html использовано пять микросхем MAX7219.

Расположение выводов (распиновка) MAX7219 и MAX7221

На рис. 2 показано расположение выводов драйвера.

Распиновка MAX7219, MAX7221

Рис. 2. Распиновка MAX7219, MAX7221

В таблице на рис. 3 описано назначение выводов, не забывайте кликать по картинкам для просмотра в полном размере!

Назначение выводов MAX7219/7221

Рис. 3. Назначение выводов MAX7219/7221

Основные характеристики

Характеристики приведены в таблице 1.

Таблица 1.

1
Частота тактирования интерфейса SPI, МГц
10
2
Напряжение питания, В
4…5,5
3
Потребление по шине +5В в спящем режиме, мкА
150
4
Ток через один сегмент в импульсе, мА
до 320
5
Средний ток через один сегмент, мА
до 40
6
Частота следования импульсов включения символов, Гц
не менее 500
7
Задержка: Поступление данных -> вывод на дисплей, мс
2,2

Применение

Формат данных посылаемых в MAX7219 (MAX7221) показан в таблице 2. Данные отсылаются по 16 бит, старшим битом вперед.

Таблица 2.

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

X

X

X

X

ADRES

DATA

В битах D15…D12 полезной информации не передается. Лично я в этих битах передаю ноль.

В поле ADRES указывается, что необходимо сделать.

Если в ADRES передается значение 1…8 (0001…1000), то это выбор знакоместа. В поле DATA в этом случае передается информация о сегментах выбранного знакоместа. Если DATA равна 0 (00000000), то сегменты не светятся. Если DATA равна 255 (11111111), то светятся все сегменты выбранного знакоместа, включая точку. В режиме декодирования DATA несет иную информацию, подробности см. в Datasheet на MAX7219/7221. Для удобства можно воспользоваться программой Decode7219.

Если в ADRES передается значение 9…15 (1001…1111), то это указание выполнить некоторую служебную инструкцию, см. Таблицу 3.

Таблица 3.

ADRES

Описание команды

D11

D10

D9

D8

HEX

1

0

0

1

0x09

Режим декодирования. Битами DATA выбирается какие знакоместа декодировать, а какие нет. Dx = 1 – декодировать знакоместо x, Dx = 0 – не декодировать знакоместо x.

1

0

1

0

0x0A

Интенсивность свечения (яркость). Битами D0…D3 выбирается яркость свечения.  При D0=D1=D2=D3 = 0 яркость минимальна. При D0=D1=D2=D3 = 1 яркость максимальна.

1

0

1

1

0x0B

Выбор кол-ва отображаемых знакомест. Битами D0…D2 выбираются отображаемые знакоместа. При D0=D1=D2 = 1 отображаются все восемь знакомест.

1

1

0

0

0x0C

Спящий режим. При DATA = 0 микросхема впадает в спящий режим. DATA = 1 является нормальным режимом.

1

1

0

1

0x0D

Не используется.

1

1

1

0

0x0E

Не используется.

1

1

1

1

0x0F

Тест. Если DATA = 1 – тест включен, если DATA = 0 – выключен.

На рис. 4 графически показаны передаваемые данные.

Данные для MAX7219 / 7221

Данные для MAX7219 / 7221

ВНИМАНИЕ!
Для нормальной работы микросхемы её необходимо инициализировать после подачи питания. Инициализация подразумевает некоторую последовательность команд, после которой микросхема начинает нормально работать и реагировать на команды и данные. Без инициализации микросхема ничего высвечивать не будет, но, тем не менее, при этом микросхема спокойно переходит в режим TEST (ADRES = 0x0F) и зажигает все сегменты одновременно.

Для инициализации необходимо выполнить:

  1. ADRES = 0x0F, DATA = 0x00 – Тест индикатора выключен
  2. ADRES = 0x0С, DATA = 0x01 – Выйти из сна
  3. ADRES = 0x0B, DATA = 0x07 – Кол-во задействованных символов — 8 символов
  4. ADRES = 0x09, DATA = 0x00 – Дешифраторы отключены
  5. ADRES = 0x0A, DATA = 0x0F – Интенсивность свечения (яркость) максимальна

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

MAX7219 после инициализации

MAX7219 после инициализации

Это необходимо учесть и после инициализации выполнить очистку дисплея, например, записать во все знакоместа символ 0 (ноль) или погасить все сегменты, например, используя ADRES = 0x01…0x08, DATA =0x00.

Примеры. На всех снимках канал 1 (желтый) – LOAD, канал 2 (синий) – CLK, канал 3 (красный) – DIN.

Выбрали знакоместо 1 (ADRES = 0x01) и передали DATA = 0 (0x00). В результате все сегменты первого знакоместа оказались погашены.

Выбрали знакоместо 1 (ADRES = 0x01) и передали DATA = 0 (0x00). В результате все сегменты первого знакоместа оказались погашены.

Выбрали знакоместо 1 (ADRES = 0x01) и передали DATA = 121 (0x79). В результате светятся сегменты D6, D5, D4, D3, D0 и получается цифра три на первом сегменте.

Выбрали знакоместо 1 (ADRES = 0x01) и передали DATA = 121 (0x79). В результате светятся сегменты D6, D5, D4, D3, D0 и получается цифра три на первом сегменте.

Выбрали знакоместо 6 (ADRES = 0x06) и передали DATA = 255 (0xFF). В результате все сегменты шестого знакоместа оказались включены.

Выбрали знакоместо 6 (ADRES = 0x06) и передали DATA = 255 (0xFF). В результате все сегменты шестого знакоместа оказались включены.

Выбрали команду TEST (ADRES = 0x0F) и передали DATA = 1 (0x01). В результате все 64 сегмента оказались включены с максимальной яркостью.

Выбрали команду TEST (ADRES = 0x0F) и передали DATA = 1 (0x01). В результате все 64 сегмента оказались включены с максимальной яркостью.

Выбрали команду TEST (ADRES = 0x0F) и передали DATA = 0 (0x00). В результате микросхема вернулась в предыдущее состояние.

Выбрали команду TEST (ADRES = 0x0F) и передали DATA = 0 (0x00). В результате микросхема вернулась в предыдущее состояние.

Выбрали команду Яркость (ADRES = 0x0A) и передали DATA = 4 (0x04). Яркость изменилась.

Выбрали команду Яркость (ADRES = 0x0A) и передали DATA = 4 (0x04). Яркость изменилась.

ВНИМАНИЕ!
При выборе кол-ва отображаемых символов (ADRES = 0x0B) менее четырех, предварительно необходимо уменьшить яркость (ADRES = 0x0A), иначе есть вероятность повредить микросхему и/или светодиоды в индикаторе.

Если в проекте используется две и более микросхем не следует у них выставлять разное кол-во отображаемых символов, т.к. это приведет к тому, что индикаторы будут светиться по-разному. Наверное не стоит заморачиваться с различным кол-вом символов – пусть микросхема перебирает все восемь, даже если часть из них не подключена.

Для формирования кодов символов может пригодиться программа «Декодирование MAX7219».

Достоинства и недостатки MAX7219 / MAX7221

Положительные свойства:

  • Обеспечивает удобное управление семисегментными индикаторами, упрощает разработку устройств с семисегментными индикаторами.
  • Обеспечивает очень приличную яркость каждого сегмента средним током до 40мА на сегмент.
  • Занимает немного места.

Отрицательные свойства

  • Стоит достаточно дорого1. В некоторых проектах может оказаться слишком дорогой. Хотя… Если всё покрутить и посчитать то вполне может оказаться, что данная микросхема стоит своих денег.
  • Греется. В режиме TEST после часового прогона до корпуса микросхемы нельзя дотронуться, что может отрицательно сказаться на надежности устройства.

Лично мне не понравился режим декодирования.

1) В китае, в том числе через ebay или aliexpress можно очень недорого купить клоны этих микросхем, народ покупает и не жалуется. Так что, если вопрос надежности не стоит на первом месте, можно и не переплачивать.

Документация

Документация на MAX7219 / 7221

MAX7219
MAX7219
MAX7219.pdf
734.5 KiB
1142 Downloads
Детали

Метки:: , , ,

3 Отзывы Ваш отзыв

  1. NikitosZs #

    >>Для инициализации необходимо выполнить:

    ADRES = 0x0F, DATA = 0x00 – Тест индикатора выключен
    ADRES = 0x0С, DATA = 0x00 – Выйти из сна <<
    Выйти из сна это 0x0c01.

  2. basel #

    Отлично, подробно расписано, набрал в поисковике русский даташит на max7219 и нашел вашу статью, где все подробно расписано!

Продажа пассажирских: автобусов

Ваш отзыв