← На главную

Микроконтроллеры STM32: работа с LED-дисплеями на основе чипа MAX7219

Есть такие LED-дисплеи из восьми семисегментных индикаторов. Индикаторами управляет MAX7219 (даташит [PDF]) или его клон, а общение между чипом и МК осуществляется по SPI. Питается модуль напряжением 5 В. Вот стало интересно, можно ли подружить такой дисплей с STM32, а также что полезного удастся на него вывести.

MAX7219 имеет простой протокол, который хорошо описан в даташите. Однако мне не пришлось его реализовывать. В сети была найдена готовая библиотека за авторством Andriy Honcharenko. Библиотека имеет лицензию MIT. Конечно же, в итоге я сделал форк и подправил код под свои нужды. Но библиотека прекрасно работала и в исходном виде.

Интерфейс получился следующим:

void init() { max7219_Init(); max7219_SetIntensivity(1); max7219_TurnOn(); } void loop() { // Display "tr14.012.3" max7219_SendData(8, MAX7219_SYM_T); max7219_SendData(7, MAX7219_SYM_R); max7219_SendData(6, MAX7219_SYM_1); max7219_SendData(5, MAX7219_SYM_4 | MAX7219_SYM_DOT); max7219_SendData(4, MAX7219_SYM_0); max7219_SendData(3, MAX7219_SYM_1); max7219_SendData(2, MAX7219_SYM_2 | MAX7219_SYM_DOT); max7219_SendData(1, MAX7219_SYM_3); HAL_Delay(3000); // Display "SPEEd --" max7219_SendData(8, MAX7219_SYM_S); max7219_SendData(7, MAX7219_SYM_P); max7219_SendData(6, MAX7219_SYM_E); max7219_SendData(5, MAX7219_SYM_E); max7219_SendData(4, MAX7219_SYM_D); max7219_SendData(3, MAX7219_SYM_BLANK); max7219_SendData(2, MAX7219_SYM_MINUS); max7219_SendData(1, MAX7219_SYM_MINUS); HAL_Delay(3000); // ... }

Так это примерно выглядит:

Вывод рабочей частоты на LED-дисплей под управлением MAX7219

На камеру сложно снять, как это смотрится на самом деле. Наиболее точно картину воспроизводит съемка в темноте:

Вывод скорости электронного телеграфного ключа на LED-дисплей под управлением MAX7219

Дисплей вполне применим в простом самодельном трансивере. На него можно вывести рабочую частоту, текущее состояние (прием или передача), а при необходимости – скорость электронного телеграфного ключа и прочую информацию. Конечно, он не так гибок, как ЖКИ 1602 или 0802. Но есть и свои плюсы. Например, яркостью светодиодов можно управлять программно.

Полная версия исходников доступна на GitHub.

Дополнение: Позже я выяснил, что MAX7219 генерирует слышимый шум. Этот шум подхватывается УНЧ и идет в наушники или на динамик. Модуль не подходит для использования в самодельных приемниках и трансиверах.