Вариант модуля индикации для Amanero на SSD1322 OLED модуле
Всем доброго дня. Предлагаю вашему вниманию собственный вариант модуля индикации, работающий с модулем гальванической развязки для Amanero. В процессе сборки AH-D6 встал вопрос отображения информации о потоке и режимов работы цапа. Основным критерием при выборе дисплея было желание стилизовать изображение под VFD дисплеи. В ходе экспериментов выбор пал на OLED модуль 3.12’’ 256х64 на контроллере SSD1322, покупал на али. Варианты цветов свечения- белый, синий, зеленый, желтый. Следует уточнить, что продавцы присылают дисплеи, сконфигурированные для работы по параллельному интерфейсу 8080. Для работы в данном устройстве следует настроить для работы в 4SPI, согласно таблице на плате дисплея (R6 переместить в позицию R5). Схема устройства приведена ниже.
Как видно из рисунка, схема устройства предельно проста и вопросов вызвать не должна. Контроллер модуля индикации- stm32f103c8t6. Дисплей работает по 4 wire SPI интерфейсу на частоте 9 МГц. Управление инкрементальным энкодером, в моем случае установлен RE1103EF2-V01-4318. Отдельно хочу остановиться на разъеме J1, он не pin-to-pinсовместим с разъемом оригинального модуля гальванической развязки от Андрея. Пины 9 и 10 поменяны местами. На 8 пин вывел сигнал с микроконтроллера m/sl.Его дальнейшем планирую использовать для переключения источников. Эти различия следует учесть при сборке.
Логика управления следующая. Вращение энкодера по часовой стрелке — переключение по кругу четырех режимов цифрового фильтра SHARP, SLOW, SHARP SD, SLOW SD, против часовой стрелки- переключение по кругу входов USB(цап переводится в master, m/sl устанавливается в 0), S/PDIF(цап переводится в slave, m/sl устанавливается в 1).
Нажатие на кнопку энкодера- вход в меню модуля со структурой:
—INPUT SELECT(выбор входа)
—DIGITAL FLT(выбор режима цифрового фильтра)
—DSD CONFIG(режим автоматического определения DSD потока ON/OFF)
—SAMPLE RATE(режим автоматического определения частоты дискретизации ON/OFF)
—BRIGHTNESS(настройка яркости свечения индикатора)
—EXIT(выход из меню и сохранение настроек во flash, при следующем включении конфигурация будет загружена из памяти)
Управление от пульта ДУ не стал делать, показалось лишним, при желании легко добавить. Исходники и сам файл прошивки прилагаю к статье. Проект собран для Keil 5 MDK-ARM. Программирование контроллера производится через разъем J2 SWO, для прошивки понадобится программатор- отладчик ST-LINK и STM32 ST-LINK Utility.
Также хочу остановиться на шрифте. Прорисовка шрифта заняла большую часть времени. Сделал только используемые символы. Может кому- то будет интересно сделать свой вариант, помогу методикой легкого создания шрифта к которой в итоге пришел.
Модуль смонтирован на печатной плате 50х150 мм., файл для SprintLayout во вложениях.
И еще несколько фотографий
Так выглядит в темноте
Отличная работа. Соберупроверю и дополню отзыв
Управление от пульта ДУ не стал делать, показалось лишним, при желании легко добавить.
Еще бы крупные часы на индикатор добавить, для дежурного режима, с ДУ пультом.
По поводу часов думал, не устраивает точность rtc в stm32. Если делать, то на внешнем чипе rtc. Подумаю, может прикручу часики.
Отличная работа! Были бы эти индикаторы подешевше… выглядит весьма привлекательно, но просто так жаба задушит такой купить.
Спасибо. По стоимости вопрос спорный. Да, oled индикаторы довольно дорогие. Но если сравнивать этот индикатор с oled 1602 от winstar, то разница в 4$ уже не так существенна.
Он по мне даже лучше смотрится чем oled 1602, как-то более красиво что ли, выразительно.
Отличная работа. Поделитесь информацией — как формировали шрифты?
Спасибо. Пробовал разные варианты, даже пытался делать вручную, по итогу остановился на следующем алгоритме. На сайте рисую нужный символ (16px by 24px, row major, big endian). Полученный код символа вставляю в верхнее текстовое поле утилиты, что написал для этого. После генерации в нижнем поле забираю готовый для использования результат. Утилитку приложу к статье.
Собрал этот модуль работает красиво. Спасибо автору проекта.
Дисплей покупал -здесь, есть выбор цвета.
Доработка разъема J1 под плату адаптера amanero гальваноразвязки от Андрея, переворот пинов 9 с 10.
Как бы для такого окна шрифт большеват, или всю лицевую панель сделать черной, здесь еще стоит чуть затемняющий плекс толщиной 2,5мм.
Панель собственного изготовления? С размером шрифта можно поиграться.
Лицевая панель толщиной 8мм и размерами 320X70мм. Корпус ЦАП черный анодированный куплен на алиэкспресс, окно фрезеровано по размеру видимой части индикатора, по моему с вариантом белой панели здесь нужно чуть уменьшить шрифт или увеличивать размеры окна.
Сами фрезеровали или отдавали куда-то?
С местными авиамоделистами договорился недорого 3Д фрезеровку сделали.
Увеличил размер окна до 85X27мм, на 3мм с каждой стороны от видимой части индикатора и тоньше рамка 1мм перед фильтром, фильтр покупал здесьND2.
Красиво получилось. Так намного лучше смотрится.
А часом не сохранились исходники фонта. Или может монолинейный шрифт донор есть?
Пытался повторить глядя на фото, понимаю, что погрязну до нового года с прорисовкой.
… уф! нарисовал самостоятельно полный английский набор этого замечательного шрифта.
dotmatrix_OLED.RHF
И программа конвертации в сишный код
https://gitlab.com/riva-lab/matrixFont#matrixfont