[Перевод] Восстановление PDP 11/04. Терминал LA30 Decwriter
Продолжение перевода статьи по восстановлению одной старой интересной машинки. В первой части наладили основной блок плат. Во второй — ленточную станцию TU60. Много тяжелых картинок. Курсивом мои комментарии.LA30 DecwriterТеперь я приступил к заключительной части своего квеста — раздобыть хороший терминал, который был бы таким же винтажным, как и основная система. Мне повезло, что у меня в хранении есть LA30, который я собираюсь теперь начать восстанавливать. Наш экземпляр был изготовлен в начале 1973. Хотя, печатающие головки, видимо, были заменены в 1979.LA30, по-видимому, был одним из первых матричных принтеров, что делает его интересным, сам по себе, даже в отрыве от PDP-11.Печатющий терминал с, действительно, приятным винтажным видом! Он еще и тяжелый. Корпус выполнен литьём (мне так кажется) из алюминия, а верхняя крышка изготовлена из стеклопластика, усиленного обычным пластиком.
У Decwriter справа есть переключатель скорости передачи данных, из-за чего я думаю, что это был LA30S для последовательного порта, но на информационной пластине сзади написано LA30P. Кроме того, в нём нет двух карт, которые нужны для соединения по последовательному порту.
Вся логика управления принтером — транзисторная (TTL), за исключением ROM для декодирования символов, клавиатурного кодера и опционального UART’a.
После чистки, клавиатура выглядит довольно достойно. Раскладка немного отличается от современных клавиатур. Микрочип клавиатурного кодера очень красив, не так ли? Очень ранняя БИС, созданная SMC.
Я начал работу с исправления конденсаторов. Хотя все конденсаторы находились во вполне приличном состоянии. Ток утечки 100 мкА на худшем из них. Неплохо, особенно спустя 40 лет. После этого я очистил печатающие головки от старых чернил.
Когда (и если) я заставлю его заработать, у меня всё равно будет серьезная проблема: это параллельный терминал, требующий плату M7910 на PDP-11. У меня такой нет. Другой вариант это найти две недостающих платы — M7731 и M7389, что, как мне кажется, даже сложнее. Последняя возможность — собрать небольшой переходник на Arudino с параллельного порта на последовательный.
Душистый перец? На фото ниже печатающая головка нашего LA30. Временная метка на ней содержит 1979. Это означает, что головка была заменена. Похоже, это та же самая головка, что использовалась в LA36 и LA180.
Я тестировал печатающие головки, подавая 15В и ~2А на каждую катушку за крайне небольшой промежуток времени. Среагировали только 2 из 7-ми иголок. Поэтому я купил специальное рекомендуемое масло — Omega 636, и, между прочим, оно содержит что-то, называемое душистым перцем. Жидкое масло и несколько дней покоя привнесли жизнь в три дополнительные иглы, а оставшиеся две нуждаются в слабом нажиме для выпуска. Надеюсь, когда я верну в принтер головки, эти иглы тоже заработают.
Самодельный клавиатурный кодер KR2376 от SMC, pMOS-чип, выполняющий клавиатурное кодирование, оказался сломанным. Искать подходящую замену было бы не просто и очень дорого. Я сделал свой собственный аналог на AVR.
Так как клавиатура ёмкостного типа, то это означает, что все и каждая клавиша — транзистор. Коллектор которого подключен к X-матрице, а эмиттер к Y. База, в свою очередь, подключена к переменному конденсатору, который образован подвижной частью клавиши и самой платой. С другой стороны к этому конденсатору подключен осциллятор.Оригинальный чип от SMC слева, а моя замена — справа
Для Arudino есть довольно хорошая библиотека для работы с клавиатурами, которая нуждалась только в нескольких мелких правках. Кроме неисправного кодера, на плате клавиатуры была микро-трещинка, которую я заделал небольшим количеством припоя. После этого клавиатура заработала нормально!
Софт можно скачать здесь.
Блок питания Блок питания содержит большой трансформатор и четыре электролитических конденсатора. Одна из обмоток трансформатора соединена с конденсатором переменного тока чтобы составить феррорезонансный контур. Таким образом, блок питания становится более устойчивым к глюкам питания. Он сохраняет энергию в катушке и конденсаторе. Но этот конденсатор уже очень стар и, скорее всего, содержит полихлорированные дифенилы. Номенклатура конденсатора была записана в списке элементов платы, поэтому я решил заменить его на всякий случай, прежде чем продолжать работу. Я нашёл подходящий конденсатор от Cornell-DublierСтарый конденсатор под замену
Пока я ждал доставки, я перепроверил электролитические конденсаторы. С ними всё было в порядке, и, как только прибыл конденсатор переменного тока, я смог запустить блок питания под тестовой нагрузкой без всяких проблем. Все характеристики были отличными.
Улучшенная плата кодера Мой самодельный клавиатурный кодер был немного топорным и выглядел не очень здорово. Для самообразования я решил сделать разводку и заказать плату в Китае. Результат получился замечательным!
Тестируем терминал целиком Прежде чем приступить к полному тестированию, я демонтировал принтер для того, чтобы почистить его и смазать все места, где это требовалось. После обратной сборки и поднятия автомата в положение «ВКЛ», конечно же, ничего не произошло. Первая проблема заключалась в том, что было два блокировочных ключа, которые должны быть в верной позиции для того, чтобы блок был готов к работе. Один из них проверял то, что в принтере есть бумага. Когда принтер в состоянии «READY», то сигнал «B INI L» на высоком уровне и лампочка «READY» на клавиатуре приятно светится. Кроме того генерируется строб-импульс от клавиатуры к управляющей логике принтера. У варианта LA30 с параллельным подключением нет LINE/LOCAL переключателя, поэтому эта опция не регулируется пользователем, но оказывается, что логическая цепь с этой возможностью присутствует на плате M7712, однако не используется. При подаче сигнала «LCL ENA L» через пин AR2 на плате M7712, она замыкает принтер на локальный режим работы.
И, вуаля, он действительно что-то печатает, когда мы набираем текст на клавиатуре, но, так как на своём месте нет ленты, то очень трудно понять что же он всё-таки печатает.
Просматривая хранилище, я нашёл три разных красящих ленты в оригинальной упаковке, до сих пор в термоусадке и даже в фальцованной бумаге. Похоже, что верхняя как раз для LA30, а нижняя для LA36 / LA180. Средняя неизвестно точно, но, возможно, для LS01 / Centronics 101. Кстати, простая бумага не подошла к LA30. К нему нужна 250 мм бумага вместо 216 мм.
Проблема с генерацией символов Вставив бумагу в принтер, я смог проверить его, и он действительно кое-что печатал, но это «кое-что» было некорректным.
Похоже, что пропала последняя колонка каждого символа и, кроме того, несмотря на нажатые клавиши, только ограниченный набор символов появляется на бумаге. Сверившись с ASCII-таблицей, можно заметить, что залипли два бита. Проследив эти биты, видим, что на вход символьного генератора поданы правильные значения. Так как счетчик колонок так же находится внутри этого генератора, то он становится главным подозреваемым. Для начала нужно проверить триггеры, отмеченные красным.
Выяснилось, что эти чипы работают неправильно. Заменяем сломанные 7474, произведенные National Semiconductor (опять NS!) в 1972 году, керамическими от Fairchild и Texas Instruments.
Видимый последний символ Осталась еще одна неприятность. Функция «видимый последний символ» не работает первое время, пока машина не разогрелась. Она начинает функционировать спустя какое-то время после старта. Это функция, которая перемещает печатающую головку на два символа вправо спустя таймаут в 1 секунду для того, чтобы печатающему был виден последний набранный символ. Отличная штука, если использовать машину в качестве консольного терминала. Я отследил проблему до неработающего генератора 1 секундного таймаута. Красная область на схеме.
Изначально это выглядело как неработающий E14 (7440), но, когда я протестировал его с использование охлаждающего спрея, выяснилось, что это счетчик E12 (7493) ведёт себя плохо. Снова чип от NS! Заменив его на микросхему от TI, выпущенную в 1969, я увидел, что генератор работает.
Работает! Последняя проблема связана с тем, что шаговой двигатель стопорился во время перевода каретки на заполненной строке. Шаговые импульсы были просто слишком быстры. В LA30 есть отдельный блок, управляющий ускорением во время перевода каретки. Я просто понизил максимальную скорость, настроив один из потенциометров в модуле G936.
С этой последней правкой принтер заработал как надо!