Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Игрушки

Графический дисплей на ИЛВ1-48/5х7

Автор: Aheir, aheir@fromru.com
Опубликовано 30.10.2013.
Создано при помощи КотоРед.

 

М-да... Вроде как годы мои еще не располагают к особой ностальгии, однако ж тянет иногда на всякие винтажно-раритетные комплектующие... Особенно если есть красивый повод. В данном случае повод назывался ИЛВ1-48/5х7:

 

Здоровая такая стекляха, миллиметров 200 шириной с тучей выводов и жутко «опытная», как следует из нанесенной неизменной белой краской маркировки. Кстати, ей всего 23 года не так давно исполнилось, самый сок)) Новая, не паяная)) Сие изделие было по случаю приобретено у одного из наших форумчан, как водится, некоторое время просто пылилось в закромах, ну а потом все же удалось себя пнуть и завести этот индикатор.
На начальном этапе конечный результат не то что был туманным, а вообще не просматривался, так что многое, само собой, делалось «по месту» в процессе...
Литературы по ВЛИ достаточно много, изрядное количество конструкций с ними имеется как в Сети вообще, так и у нас на сайте в частности, не утихают обсуждения в профильных ветках Форума. Это я все к тому, что информации много и особо распинаться на тему, как оно там работает и включается, смысла, наверное, нет.
«Документация» на это чудо доступна для скачивания в конце статьи, почему в кавычках — потому что не совсем на этот индикатор, так что распиновка не совпадает и ее пришлось угадывать, но остальные параметры будем считать верными.
Индикатор представляет собой 48 точечных знакомест 5х7, сгруппированных в 3 строки А, Б и В по 16 знакомест от 0 до 15. Для управления имеется 16 сеток, каждая из которых покрывает одно из знакомест всех трех строк одновременно. Управление, естественно, мультиплексное, сканирование по сеткам. Все это нам дает ни много, ни мало (5*7)*3 + 16 = 121 линию управления. Ну и накал. Понятно, что на логике делать это все не очень хочется, так что будем использовать микроконтроллер. При таком количестве линий управления самым разумным представляется использование сдвиговых регистров. В результате появилась вот такая плата, габариты которой определил единственно сам индикатор:


Схему целиком в тексте приводить не буду, все материалы в полном объеме имеются в конце статьи. Небольшой кусочек управления некими линиями выглядит так:

Схема выбрана не самая энергетически выгодная, но допустимая. Почему на дискретных элементах, а не на массивах транзисторов? Потому что их есть у меня, да и как ни странно на круг выходит дешевле. Резисторы в базах что-то около 1к, Подтяжки коллекторов к питающему напряжению побольше, 50-70кОм, а то греться начнут... Да, на этой схеме не показано, но непосредственно выводы индикатора придавлены к земле через резисторы что-то около 1МОм для подавления всяких нехороших паразитных явлений.
Теперь надо все запитать и всем этим управлять. По вот такой схеме:


была сделана вот такая плата:


Хорошо, хватило ума делать ее в габаритах платы экрана и с совпадающими крепежными отверстиями) Питание предполагалось раздельные 5В и 12В, имеются два повышающих преобразователя для анодного и сеточного напряжений на MAX618. Сначала предполагалось сделать анодное немножко больше сеточного, потом не стал заморачиваться и использую один преобразователь. Выжать из него удалось что-то около 28В, вполне достаточно для сеток и анодов. Микроконтроллер в конечном варианте STM32F100C8, сначала стоял STM32F100C4, но не хватило флеша... Разведена DS1307, но не используется, потому как к моменту написания прошивки я уже освоил внутренний RTC микроконтроллера, кварц и батарейку для которого тоже заранее предусмотрел. Выведены несколько светодиодов, кнопки, 2 UARTа. Для управления накалом собран на дискрете H-мост, частота переключения 10кГц — подсмотрено в буржуйских тематических патентах, работает. Управление идет с микроконтроллера, так что частоту можно задавать любую. Сначала думал «приподнять» «среднюю точку» накала от земли, но опять же практика показала, что это не требуется в данном случае.
Чем здесь занимается микроконтроллер — очевидно: сканирование экрана и вывод на него изображения. Я с самого начала рассматривал этот экран как графический, т.е. с точки зрения микроконтроллера работа с ним не отличается от работы с какой-нибудь Nokia 3310. Это позволяет с минимальными доработками использовать библиотеки отрисовки графических примитивов, шрифты и т.п. По сути, нужно только переписать функцию LcdPixel(x,y,state). C учетом неизвестной распиновки и разводки платы индикатора исходя из соображений удобства именно разводки, определение правильной адресации заняло некоторое время и потребовало создания всяких вспомогательных инструментов в Экселе. Сначала разобрались с распиновкой самого экрана:


Рядом уже сформированные столбцы соответствия выводов экрана битам в байтах сдвиговых регистров, потом на основании этих данных полуавтоматически генерилась функция для адресации всех пикселей:

Собственно, написано несколько трансректально и совершенно неоптимально, но работает, скорости хватает, оптимизацией я заниматься поленился, простите меня... Для понимания что как зажигать и удобства редактирования шрифтов еще одно поделие:


Эти файлики тоже доступны для скачивания, но если честно теперь уже я сам в них с трудом что-то понимаю...)
В общем, научили экран рисовать круги и линии, выводить текст, на том и остановились на некоторое время...
Спустя это самое время, вроде как возник в голове некий конструктив, поэтому родилась дополнительная плата:


Схема такая:

Дополнительно появился преобразователь из 12В в 5В на TL2575-5.0, мост USB-UART, BlueTooth или NRF24L01 радиомодуль. Ну и пищалка, куда ж без нее)
Кроме того, кнопки:


И корпус:


В результате все это собралось вот в такого зверя:

Проводов, конечно, немало, ну дык — еще раз — многое делалось уже после того, как... Платы соединены между собой этажеркой на латунных стойках от компьютерных корпусов, корпус пропаян по углам и прихвачен пайкой к плате экрана, передняя панель вырезана из черного пластика на лазере. Сверху кнопки, слева гнездо питания и USB, снизу еще одно гнездо питания... Надо будет светофильтр добавить, пока не попалось цветного оргстекла. В таком виде оно еще с полгодика пролежало...
Потом черты законченного проекта стала приобретать прошивка. В итоге на данный момент реализовано 3 режима работы устройства (режимы задаются вручную через меню настройки, все параметры хранятся в энергонезависимой памяти):
1. Часы. Отображается текущее время в случайном месте экрана со сменой позиции каждые две секунды и эффектом смены показаний каждую новую минуту, если эффекты включены в меню.
2. Терминал. На экран выводятся принимаемые по USB символы до заполнения, после чего происходит очистка экрана с эффектом смены показаний, если эффекты включены в меню. Отображается курсор.
3. Дисплей. Происходит отображение текстового сообщения длиной 48 байт, полученного по USB с обязательной преамбулой «+++». Новое сообщение затирает предыдущее с эффектом смены показаний, если эффекты включены в меню.
Если при активных режимах «Дисплей» или «Терминал» нет связи по USB, устройство настойчиво просит эту связь обеспечить. При простое в режиме «Дисплей» (до приема первого сообщения) происходит демонстрация эффектов смены показаний.
На самом деле, если позволяет трафик, просто посмотрите видео, и все вопросы отпадут:


Эффекты воспроизводятся в случайном порядке и всего их почти 30 шт. Можно еще дописать, места хватает. Подробно разбирать здесь прошивку смысла не вижу, если вдруг будут вопросы — разберемся на Форуме.
В заключение пару слов о том, нафига. Собственно, предполагается использовать в качестве дополнительного текстового дисплея для ПК. Для этого надо написать соответствующую программу, которая будет вводить на дисплей требуемые данные. Пока что хочется организовать электронный аналог карточек для запоминания слов иностранных языков. Т.е. с некоторой периодичностью эта штука будет выводить на экран слово и его перевод, взятые из словаря на компе. Бросил случайный взгляд — запомнил слово. По крайней мере как-то так просила меня сделать супруга, чтобы поставить сей девайс у себя на работе...

 


Файлы:
Проект Keil
Документация на индикатор
Схемы и платы P-CAD 2006
Файлы Excel


Все вопросы в Форум.


ID: 0

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

97 4 3
18
Подробно