Микроконтроллеры STM32: работа с LED-дисплеями на основе чипа MAX7219
14 марта 2022
Есть такие LED-дисплеи из восьми семисегментных индикаторов. Индикаторами управляет MAX7219 (даташит [PDF]) или его клон, а общение между чипом и МК осуществляется по SPI. Питается модуль напряжением 5 В. Вот стало интересно, можно ли подружить такой дисплей с STM32, а также что полезного удастся на него вывести.
MAX7219 имеет простой протокол, который хорошо описан в даташите. Однако мне не пришлось его реализовывать. В сети была найдена готовая библиотека за авторством Andriy Honcharenko. Библиотека имеет лицензию MIT. Конечно же, в итоге я сделал форк и подправил код под свои нужды. Но библиотека прекрасно работала и в исходном виде.
Интерфейс получился следующим:
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);
// ...
}
Так это примерно выглядит:
На камеру сложно снять, как это смотрится на самом деле. Наиболее точно картину воспроизводит съемка в темноте:
Дисплей вполне применим в простом самодельном трансивере. На него можно вывести рабочую частоту, текущее состояние (прием или передача), а при необходимости — скорость электронного телеграфного ключа и прочую информацию. Конечно, он не так гибок, как ЖКИ 1602 или 0802. Но есть и свои плюсы. Например, яркостью светодиодов можно управлять программно.
Полная версия исходников доступна на GitHub.
Дополнение: Позже я выяснил, что MAX7219 генерирует слышимый шум. Этот шум подхватывается УНЧ и идет в наушники или на динамик. Модуль не подходит для использования в самодельных приемниках и трансиверах.
Метки: STM32, Электроника.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.