Как-то раз, очередным томным субботним вечером, я в очередной раз листал от нефиг делать Yahoo! Auctions — одну из крупнейших японских сетевых барахолок. Внезапно, среди рекомендуемых лотов появился вот такой внушительных размеров электровакуумный дисплей:
Однако, рулить дисплеем, как правило, та ещё задача. «Особенно если динамическая индикация, да ну его, влом!» — подумал было я. Но у того же продавца обнаружилась и, судя по всему, управляющая плата:
На фотографии виднеется 8085 процессор, 8251 UART и ПЗУшка — казалось бы, дизассемблируй себе, разбирай протокол, да просто с ардуины выводи что угодно. Да ещё и за одну йену, это прям даром! После этого я решил всё же попытать удачу и выхватить этот дисплей. Тем более, что давно уже хотелось какие-нибудь красивые часики в комнату...
Конечно же, какая-то зараза попыталась из-под меня эти лоты перехватить, но в итоге за примерно десять тысяч йен весь комплект достался мне.
Через пару-тройку дней приходит посылка. Продавец, конечно, пожалел упаковки, и поэтому плата и дисплей просто болтались в коробке — но, к счастью, всё выглядело целым.
Да, я в курсе, что полярность на коннекторе питания подписана задом наперёд %)
Первым же делом снимаю ПЗУ, кидаю в MSX, чтобы вычитать на комп, но увы — кроме нулей ничего не вычитывается, да ещё и греется оно очень подозрительно. При подаче питания сама плата тоже ничего не делает.
На шине процессора никакой активности нет, хотя тактовый сигнал в норме — то бишь, если бы даже ПЗУ и было целым, читать из него процессор не пытается. Плата ещё и закатана в какой-то лак, который не плавится и не растворяется, поэтому чинить такое будет то ещё «удовольствие». Даже масочные ПЗУ со шрифтами нормально не вытащить…
Гуглёж по маркировке (Morio Denki 6M06056) тоже ничего, кроме сайта производителя, не выявил. Судя по всему, они занимаются дисплеями для транспорта — так что, скорее всего, этот стоял в каком-то автобусе или поезде.
Вероятнее всего, это был автобус — ведь в поездах между станциями, как правило, на экране идёт бегущая строка. В старых автобусах же отображается лишь название следующей остановки. Выгоревший текст — 「次は、(неразборчиво)」(«Следующая: (нрзб.)») подтверждает эту догадку.
Значит, придётся рулить панелью напрямую — благо, какая-то плата, адаптирующая его к какой-то шине, к дисплею уже прилагается.
А ведь в наше время вся эта требуха поместится в дешёвую ПЛИСку размером с ноготь…
Судя по наличию микросхемы ОЗУ (MN2114), плата представляет себе какой-то простенький фреймбуфер. Отлично, значит с динамической индикацией на 100+ катодов уже разобрались до меня :-)
Справа снизу находится трапециевидный «молекс», знакомый нам по старым жёстким дискам. Линия 5 вольт и общий провод совпадают по распиновке — отлично, значит запитать попробуем от обычного компьютерного источника питания.
Пара минут с тестером и карандашом — и вот уже отчётливо видно, где на разъёме шины данных входы, а где выходы.
При отладке пытался оттрассировать всю схему в DipTrace, но лимита в 1000 пинов у бесплатной версии не хватило
Верхний ряд группами по 4 пина соединён со входом коммутатора 74LS257 — скорее всего, это вход данных шириной в 1 байт. Нижний ряд же идёт на инвертеры, выполняющие роль буферов — так хотя бы можно понять, что в нём есть 5 входных сигналов, и 2 выходных.
Быстренько раскидываем на огрызке старой макетки штуковину, чтобы накручивать произвольные значения на восьмибитном входе данных и перемычками дёргать остальные, а на светодиодах смотреть выходные сигналы.
Крутилки шестнадцатеричные дома были в избытке, а вот джамперы пришлось импровизировать паяльником на ходу
Ничтоже сумняшеся, я подключаю старый блок питания от компьютера к молексу на плате… И конечно же дисплей всё так же мёртв. Никакой реакции ни на входные данные, ни на закорачивание шины данных у чипа памяти на землю.
Почему-то всё это время мне думалось, что это — ВЛИ, которому нужно около 20-30 вольт для свечения. Однако при прозвонке самой лампы тестером никакие пины между собой соединены не были — в случае ВЛИ так быть не может, ведь ему нужен накал катода. Ну, разве что, если нить накала перегорела…
Впрочем, пристальный взгляд на дисплей под лупой показал, что ни накала, ни сеток — типичных для люминисцентных индикаторов компонентов — там и вовсе нет:
Значит, скорее всего, это газоразрядный индикатор! По горизонтали у него расположены платы с кучей группированных транзисторов. По маркировке «L-S» никакие транзисторы в справочниках подходящих лет, увы, не находятся.
По бокам у дисплея — практически одинаковые платы с диодами, логическим инвертером (7414) и неизвестным модулем Mitsubishi MA7446-01.
Собираем мозги в кучу и пытаемся понять, что делать дальше:
Значит, скорее всего, на молексе вместо 12 вольт ожидается, как минимум, под сотню с лишним, а значит и индикатору для поджига нужно напряжение где-то такого порядка.
В итоге из загашников извлекается маленький инвертер для электролюминисцентных проводов, к нему приделывается диодный мост, и вуаля — у нас есть кривой маломощный источник 160 вольт постоянки.
Припаиваем к одному из горизонтально стоящих пинов минусовой выход через резистор на пару килоом, а плюсовым аккуратненько одной рукой ведём по вертикально-стоящим…
Ура, значит сам дисплей, как минимум, жив! Можно заказывать повышающий модуль на амазоне, а пока он едет — заняться восстановлением платы мультиплексирования.
Конечно, можно было бы сделать целиком свою, и управлять аж субпикселями, как на видео. Но динамическая индикация на сотню с гаком катодов — это то ещё развлечение, поэтому мне проще было оставить всё как есть.
Под такое дело для проекта был куплен аж целый китайский лабораторник на амазоне — и подключение платы к нему показало, что жрёт она как не в себя! Почти что целый ампер, на конструкцию из 38 корпусов. Для логики серии 74LS это уж слишком много. Получается, в плате управления тоже что-то не так.
Так как компаратора навроде HP 10529A у меня нет, пришлось вооружиться осциллографом и таблицами истинности из даташитов.
На шине данных у ОЗУ хоть и завалены фронты, но в принципе всё смотрится не так и плохо:
А вот на прочих чипах местами встречается откровенная дичь — например, сигналы, у которых логический ноль где-то на 1,8 вольтах, а единица на 3,5.
В двоичной логике бывает True, бывает False, но встречается и «Да нет наверное»:
Местами и вообще какие-то непонятные лесенки, которых явно в цифровой схеме быть не должно. Ниже троичная логика, прямиком из семидесятых:
Видимо, собирали девайс на 74 логике из альтернативной вселенной.
По итогам пары дней такого копательства, вкупе с тыканием термопарой по всей плате даже туда, где солнечный свет не бывал, обнаружились следующие виновники:
До кучи, у сбоивших микросхем пин Gnd явно отличался по внешнему виду — припой был как будто потемневшим, и его там было больше, чем на остальных пинах в том же ряду/столбце.
Возможно, после пробоя там прошёл достаточный ток, чтобы расплавить припой и собрать его в такие горки?
В любом случае, другие чипы с таким же симптомом было тоже решено поменять на всякий случай.
Радиомагазинов в городе уже толком не осталось — поэтому берём вкусняшки, паяльник, и едем к товарищу хабарить полный комплект логики из ведра старых плат.
В четыре руки и два паяльника чипы хабарятся куда быстрее, чем просто в четыре руки
JK-триггеры оказались настолько сложной в применении штукой, что ими, видимо, никто пользоваться и не захотел — поэтому пришлось докупать их отдельно в интересном магазине, по сей день торгующем теми ещё музейными экспонатами.
Выпаиваем всех подозрительных и заменяем их на панельки — ну вдруг опять вылетит, не паять же по новой :-)
Фото уже более позднее — заменил ещё и кварц, чтобы увеличить частоту развёртки, дабы экран не полосил на видео
Подаём питание. Один из светодиодов на макетке, раньше постоянно горевший, на сей раз гаснет — это хороший знак. Ставим крутилки в положение 0xFF, от балды трогаем один из джамперов, и…
Две негорящие строки — это от макетки один из проводов шины данных отвалился при проверке :-)
Оно живое!!! И жрёт со всеми включёнными пикселями аж 25 ватт.
Экспериментально подбираем распиновку коннектора:
Способ управления тоже оказался весьма простым и понятным.
После подачи питания нужно дождаться, пока ~READY не уйдёт в лог. 0. Затем выставляем биты данных и дёргаем ~CLOCK. Этот байт попадёт в верхнюю половину самого левого столбца — пиксели, выставленные в «1», загорятся, а в «0», соответственно, погаснут.
Следующий импульс на ~CLOCK запишет байт в нижнюю половину самого левого столбца, потом — верхнюю половину второго столбца, и так далее — сверху вниз, слева направо. После записи последнего байта (нижняя половина самого правого столбца), следующий байт опять попадёт в верхнюю половину самого левого, т.е. запись идёт в цикле.
Если мы хотим начать рисовать с начала, можно дёрнуть ~RETZ — это обнулит счётчик, и рисование опять начнётся с самого левого столбца. Можно сбросить вообще всё и очистить экран при помощи ~RESET.
Притянув BRIGHT к земле можно уменьшить яркость (и потребляемую мощность) дисплея вдвое. Притянув же к земле SHOW, можно отключить отображение на дисплее вообще, при этом рисовать в память платы всё так же возможно.
Так как терпения у меня в организме ещё меньше, чем дофамина, то была распотрошена ещё какая-то плата из мусорки. Оттуда были извлечены TC4050B — буферы, которые отлично подойдут для согласования 3.3-вольтовой ESP32 с 5-вольтовой логикой на дисплее.
Переходник с 1980 года на 2016
На JLCPCB я всё ещё не зарегистрировался...
Схема в этот раз даже не рисовалась, всё соединялось сразу из головы. Пишем простенькую процедуру, двигающую бит в слове туда-сюда, заливаем скетч, и любуемся:
Дописываем ещё простенький рендер шрифтов, обновляем скетч:
Ну а дальше едем в Акихабару закупаться требухой для развития проекта до какого-то полезного состояния :-)
Котлета в комплект радиодеталей не входит!
Опытный читатель уже догадался по содержимому этого хабара из Акихабары, что дисплею уготована типичная радиолюбительская участь — стать будильником-метеостанцией %)
Операционная система же обрела рабочее название Plasma Information System OS — или, если коротко, PIS-OS.
Смотрится итоговый результат, как по мне, восхитительно:
Но о сборке девайса и написании прошивки — уже в следующей части :-)
В реалтайме за обновлениями, среди тонны фоток еды и Мику, вы можете также следить в моём телеграме.
Также, можно посмотреть ход описанного в статье «в реалтайме», прочитав тему на EEVBlog.
Возможно, захочется почитать и это:
Однако, рулить дисплеем, как правило, та ещё задача. «Особенно если динамическая индикация, да ну его, влом!» — подумал было я. Но у того же продавца обнаружилась и, судя по всему, управляющая плата:
На фотографии виднеется 8085 процессор, 8251 UART и ПЗУшка — казалось бы, дизассемблируй себе, разбирай протокол, да просто с ардуины выводи что угодно. Да ещё и за одну йену, это прям даром! После этого я решил всё же попытать удачу и выхватить этот дисплей. Тем более, что давно уже хотелось какие-нибудь красивые часики в комнату...
Конечно же, какая-то зараза попыталась из-под меня эти лоты перехватить, но в итоге за примерно десять тысяч йен весь комплект достался мне.
❯ Всё уже поломано до нас
Через пару-тройку дней приходит посылка. Продавец, конечно, пожалел упаковки, и поэтому плата и дисплей просто болтались в коробке — но, к счастью, всё выглядело целым.
Да, я в курсе, что полярность на коннекторе питания подписана задом наперёд %)
Первым же делом снимаю ПЗУ, кидаю в MSX, чтобы вычитать на комп, но увы — кроме нулей ничего не вычитывается, да ещё и греется оно очень подозрительно. При подаче питания сама плата тоже ничего не делает.
На шине процессора никакой активности нет, хотя тактовый сигнал в норме — то бишь, если бы даже ПЗУ и было целым, читать из него процессор не пытается. Плата ещё и закатана в какой-то лак, который не плавится и не растворяется, поэтому чинить такое будет то ещё «удовольствие». Даже масочные ПЗУ со шрифтами нормально не вытащить…
Гуглёж по маркировке (Morio Denki 6M06056) тоже ничего, кроме сайта производителя, не выявил. Судя по всему, они занимаются дисплеями для транспорта — так что, скорее всего, этот стоял в каком-то автобусе или поезде.
Вероятнее всего, это был автобус — ведь в поездах между станциями, как правило, на экране идёт бегущая строка. В старых автобусах же отображается лишь название следующей остановки. Выгоревший текст — 「次は、(неразборчиво)」(«Следующая: (нрзб.)») подтверждает эту догадку.
❯ Плата драйвера панели
Значит, придётся рулить панелью напрямую — благо, какая-то плата, адаптирующая его к какой-то шине, к дисплею уже прилагается.
А ведь в наше время вся эта требуха поместится в дешёвую ПЛИСку размером с ноготь…
Судя по наличию микросхемы ОЗУ (MN2114), плата представляет себе какой-то простенький фреймбуфер. Отлично, значит с динамической индикацией на 100+ катодов уже разобрались до меня :-)
Справа снизу находится трапециевидный «молекс», знакомый нам по старым жёстким дискам. Линия 5 вольт и общий провод совпадают по распиновке — отлично, значит запитать попробуем от обычного компьютерного источника питания.
Пара минут с тестером и карандашом — и вот уже отчётливо видно, где на разъёме шины данных входы, а где выходы.
При отладке пытался оттрассировать всю схему в DipTrace, но лимита в 1000 пинов у бесплатной версии не хватило
Верхний ряд группами по 4 пина соединён со входом коммутатора 74LS257 — скорее всего, это вход данных шириной в 1 байт. Нижний ряд же идёт на инвертеры, выполняющие роль буферов — так хотя бы можно понять, что в нём есть 5 входных сигналов, и 2 выходных.
Быстренько раскидываем на огрызке старой макетки штуковину, чтобы накручивать произвольные значения на восьмибитном входе данных и перемычками дёргать остальные, а на светодиодах смотреть выходные сигналы.
Крутилки шестнадцатеричные дома были в избытке, а вот джамперы пришлось импровизировать паяльником на ходу
Ничтоже сумняшеся, я подключаю старый блок питания от компьютера к молексу на плате… И конечно же дисплей всё так же мёртв. Никакой реакции ни на входные данные, ни на закорачивание шины данных у чипа памяти на землю.
❯ Конструкция дисплея
Почему-то всё это время мне думалось, что это — ВЛИ, которому нужно около 20-30 вольт для свечения. Однако при прозвонке самой лампы тестером никакие пины между собой соединены не были — в случае ВЛИ так быть не может, ведь ему нужен накал катода. Ну, разве что, если нить накала перегорела…
Впрочем, пристальный взгляд на дисплей под лупой показал, что ни накала, ни сеток — типичных для люминисцентных индикаторов компонентов — там и вовсе нет:
Значит, скорее всего, это газоразрядный индикатор! По горизонтали у него расположены платы с кучей группированных транзисторов. По маркировке «L-S» никакие транзисторы в справочниках подходящих лет, увы, не находятся.
По бокам у дисплея — практически одинаковые платы с диодами, логическим инвертером (7414) и неизвестным модулем Mitsubishi MA7446-01.
Собираем мозги в кучу и пытаемся понять, что делать дальше:
- Поперёк «12-вольтовой» линии питания стоит конденсатор на 250 вольт — значит, как минимум, там должно быть высокое постоянное напряжение. Очевидно, положительное, если этот конденсатор проектировщики не вставили туда в роли петарды.
- На плате мультиплексора между питанием и выходом на дисплей есть цепь с транзистором 2SC1473 — он тоже рассчитан на 250 вольт.
Значит, скорее всего, на молексе вместо 12 вольт ожидается, как минимум, под сотню с лишним, а значит и индикатору для поджига нужно напряжение где-то такого порядка.
В итоге из загашников извлекается маленький инвертер для электролюминисцентных проводов, к нему приделывается диодный мост, и вуаля — у нас есть кривой маломощный источник 160 вольт постоянки.
Припаиваем к одному из горизонтально стоящих пинов минусовой выход через резистор на пару килоом, а плюсовым аккуратненько одной рукой ведём по вертикально-стоящим…
Ура, значит сам дисплей, как минимум, жив! Можно заказывать повышающий модуль на амазоне, а пока он едет — заняться восстановлением платы мультиплексирования.
Конечно, можно было бы сделать целиком свою, и управлять аж субпикселями, как на видео. Но динамическая индикация на сотню с гаком катодов — это то ещё развлечение, поэтому мне проще было оставить всё как есть.
❯ Диагностика платы мультиплексора
Под такое дело для проекта был куплен аж целый китайский лабораторник на амазоне — и подключение платы к нему показало, что жрёт она как не в себя! Почти что целый ампер, на конструкцию из 38 корпусов. Для логики серии 74LS это уж слишком много. Получается, в плате управления тоже что-то не так.
Так как компаратора навроде HP 10529A у меня нет, пришлось вооружиться осциллографом и таблицами истинности из даташитов.
На шине данных у ОЗУ хоть и завалены фронты, но в принципе всё смотрится не так и плохо:
А вот на прочих чипах местами встречается откровенная дичь — например, сигналы, у которых логический ноль где-то на 1,8 вольтах, а единица на 3,5.
В двоичной логике бывает True, бывает False, но встречается и «Да нет наверное»:
Местами и вообще какие-то непонятные лесенки, которых явно в цифровой схеме быть не должно. Ниже троичная логика, прямиком из семидесятых:
Видимо, собирали девайс на 74 логике из альтернативной вселенной.
По итогам пары дней такого копательства, вкупе с тыканием термопарой по всей плате даже туда, где солнечный свет не бывал, обнаружились следующие виновники:
- 107-1 (JK-триггер) — кипятится (60+°C) сразу при включении питания, выход закорочен на вход
- 107-2 — от выхода на вход 1кОм, в первом триггере выходной сигнал просажен (ну ещё бы), а второй вообще выдаёт не то, что в даташите, а погоду на Марсе. До кучи ещё и греется под 40 градусов.
- 107-3 — 2кОм со входа на выход, теплее всего остального.
- 393-1, 393-2 (сдвоенные 4-битные счётчики) — между тактовым входом и Vcc всего лишь 2 кОм, поэтому и сигналы выглядят странно.
До кучи, у сбоивших микросхем пин Gnd явно отличался по внешнему виду — припой был как будто потемневшим, и его там было больше, чем на остальных пинах в том же ряду/столбце.
Возможно, после пробоя там прошёл достаточный ток, чтобы расплавить припой и собрать его в такие горки?
В любом случае, другие чипы с таким же симптомом было тоже решено поменять на всякий случай.
Радиомагазинов в городе уже толком не осталось — поэтому берём вкусняшки, паяльник, и едем к товарищу хабарить полный комплект логики из ведра старых плат.
В четыре руки и два паяльника чипы хабарятся куда быстрее, чем просто в четыре руки
JK-триггеры оказались настолько сложной в применении штукой, что ими, видимо, никто пользоваться и не захотел — поэтому пришлось докупать их отдельно в интересном магазине, по сей день торгующем теми ещё музейными экспонатами.
❯ Повторный запуск
Выпаиваем всех подозрительных и заменяем их на панельки — ну вдруг опять вылетит, не паять же по новой :-)
Фото уже более позднее — заменил ещё и кварц, чтобы увеличить частоту развёртки, дабы экран не полосил на видео
Подаём питание. Один из светодиодов на макетке, раньше постоянно горевший, на сей раз гаснет — это хороший знак. Ставим крутилки в положение 0xFF, от балды трогаем один из джамперов, и…
Две негорящие строки — это от макетки один из проводов шины данных отвалился при проверке :-)
Оно живое!!! И жрёт со всеми включёнными пикселями аж 25 ватт.
Экспериментально подбираем распиновку коннектора:
Способ управления тоже оказался весьма простым и понятным.
После подачи питания нужно дождаться, пока ~READY не уйдёт в лог. 0. Затем выставляем биты данных и дёргаем ~CLOCK. Этот байт попадёт в верхнюю половину самого левого столбца — пиксели, выставленные в «1», загорятся, а в «0», соответственно, погаснут.
Следующий импульс на ~CLOCK запишет байт в нижнюю половину самого левого столбца, потом — верхнюю половину второго столбца, и так далее — сверху вниз, слева направо. После записи последнего байта (нижняя половина самого правого столбца), следующий байт опять попадёт в верхнюю половину самого левого, т.е. запись идёт в цикле.
Если мы хотим начать рисовать с начала, можно дёрнуть ~RETZ — это обнулит счётчик, и рисование опять начнётся с самого левого столбца. Можно сбросить вообще всё и очистить экран при помощи ~RESET.
Притянув BRIGHT к земле можно уменьшить яркость (и потребляемую мощность) дисплея вдвое. Притянув же к земле SHOW, можно отключить отображение на дисплее вообще, при этом рисовать в память платы всё так же возможно.
❯ Проба пера
Так как терпения у меня в организме ещё меньше, чем дофамина, то была распотрошена ещё какая-то плата из мусорки. Оттуда были извлечены TC4050B — буферы, которые отлично подойдут для согласования 3.3-вольтовой ESP32 с 5-вольтовой логикой на дисплее.
Переходник с 1980 года на 2016
На JLCPCB я всё ещё не зарегистрировался...
Схема в этот раз даже не рисовалась, всё соединялось сразу из головы. Пишем простенькую процедуру, двигающую бит в слове туда-сюда, заливаем скетч, и любуемся:
Дописываем ещё простенький рендер шрифтов, обновляем скетч:
Ну а дальше едем в Акихабару закупаться требухой для развития проекта до какого-то полезного состояния :-)
Котлета в комплект радиодеталей не входит!
Опытный читатель уже догадался по содержимому этого хабара из Акихабары, что дисплею уготована типичная радиолюбительская участь — стать будильником-метеостанцией %)
Операционная система же обрела рабочее название Plasma Information System OS — или, если коротко, PIS-OS.
Смотрится итоговый результат, как по мне, восхитительно:
Но о сборке девайса и написании прошивки — уже в следующей части :-)
В реалтайме за обновлениями, среди тонны фоток еды и Мику, вы можете также следить в моём телеграме.
Также, можно посмотреть ход описанного в статье «в реалтайме», прочитав тему на EEVBlog.