Вариант модуля индикации для 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 во вложениях.
И еще несколько фотографий
Так выглядит в темноте
zokir 4 года назад #
Отличная работа. Соберупроверю и дополню отзыв
rucrim 4 года назад #
Управление от пульта ДУ не стал делать, показалось лишним, при желании легко добавить.
Еще бы крупные часы на индикатор добавить, для дежурного режима, с ДУ пультом.
dega 4 года назад #
По поводу часов думал, не устраивает точность rtc в stm32. Если делать, то на внешнем чипе rtc. Подумаю, может прикручу часики.
caleb 4 года назад #
Отличная работа! Были бы эти индикаторы подешевше… выглядит весьма привлекательно, но просто так жаба задушит такой купить.
dega 4 года назад #
Спасибо. По стоимости вопрос спорный. Да, oled индикаторы довольно дорогие. Но если сравнивать этот индикатор с oled 1602 от winstar, то разница в 4$ уже не так существенна.
caleb 4 года назад #
Он по мне даже лучше смотрится чем oled 1602, как-то более красиво что ли, выразительно.
Yaroslav 4 года назад #
Отличная работа. Поделитесь информацией — как формировали шрифты?
dega 4 года назад #
Спасибо. Пробовал разные варианты, даже пытался делать вручную, по итогу остановился на следующем алгоритме. На сайте рисую нужный символ (16px by 24px, row major, big endian). Полученный код символа вставляю в верхнее текстовое поле утилиты, что написал для этого. После генерации в нижнем поле забираю готовый для использования результат. Утилитку приложу к статье.
rucrim 3 года назад #
Собрал этот модуль работает красиво. Спасибо автору проекта.
rucrim 3 года назад #
Дисплей покупал -здесь, есть выбор цвета.
rucrim 3 года назад #
Доработка разъема J1 под плату адаптера amanero гальваноразвязки от Андрея, переворот пинов 9 с 10.
rucrim 3 года назад #
Как бы для такого окна шрифт большеват, или всю лицевую панель сделать черной, здесь еще стоит чуть затемняющий плекс толщиной 2,5мм.
dega 3 года назад #
Панель собственного изготовления? С размером шрифта можно поиграться.
rucrim 3 года назад #
Лицевая панель толщиной 8мм и размерами 320X70мм. Корпус ЦАП черный анодированный куплен на алиэкспресс, окно фрезеровано по размеру видимой части индикатора, по моему с вариантом белой панели здесь нужно чуть уменьшить шрифт или увеличивать размеры окна.
Co_balt 3 года назад #
Сами фрезеровали или отдавали куда-то?
rucrim 3 года назад #
С местными авиамоделистами договорился недорого 3Д фрезеровку сделали.
rucrim 3 года назад #
Увеличил размер окна до 85X27мм, на 3мм с каждой стороны от видимой части индикатора и тоньше рамка 1мм перед фильтром, фильтр покупал здесьND2.
dega 3 года назад #
Красиво получилось. Так намного лучше смотрится.
ppy 2 года назад #
А часом не сохранились исходники фонта. Или может монолинейный шрифт донор есть?
Пытался повторить глядя на фото, понимаю, что погрязну до нового года с прорисовкой.
ppy 2 года назад #
… уф! нарисовал самостоятельно полный английский набор этого замечательного шрифта.
dotmatrix_OLED.RHF
И программа конвертации в сишный код
https://gitlab.com/riva-lab/matrixFont#matrixfont