Радио-86РК/Радио 01,02-96/Чертежи печатных плат – на Радио-86РК

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: В. ЧЕРНЫШЕВ

Источник: http://retro.h1.ru/RK86/CadRK/CadRK.php

В. ЧЕРНЫШЕВ, г. Ивано-Франковск, Украина

Как известно, наиболее трудоемкие операциям при воплощении радиотехнической конструкции в жизнь — разработка чертежа печатной платы и перенос его на заготовку. Нередко на помощь в этом случае призывают компьютер. Известно множество программ, позволяющих разрабатывать топологию печатных плат и готовить фотошаблоны. Такие программы обычно работают на высокопроизводительных, современных ЭВМ. Однако и на простейших «персоналках» тоже можно кое-что сделать. Пример тому — публикуемая ниже программа «Феникс», разработанная нашим читателем Владимиром Чернышевым для компьютера «Радио-86РК».

Предлагаемая вниманию читателей программа позволяет разрабатывать чертежи одно и двусторонних печатных плат размерами до 200x160 мм. Она содержит две части редактирующую (РЕДАКТОР) и печатающую. Программа интенсивно использует ресурсы компьютера, в частности при выводе изображения на экран, поэтому требования к нему до вольно жесткие во первых он должен быть полностью совместим с базовой моделью «Радио-86РК», в части регистров контроллера ПДП и видеоадаптера, а во вторых объем его ОЗУ должен быть не менее 32 Кбайт. Программа не использует обращения к нестандартным подпрограммам МОНИТОРа .

Принцип работы подобных программ очень прост, будущая плата разбивается на квадратные ячейки, в каждой из которых может быть либо контактная площадка, либо отверстие, либо соединение. В нашем случае ячейка представляет собой квадрат со стороной равной половине расстояний между двумя соседними выводами микросхем в корпусах DIP, то есть 1,25 мм. Следовательно, шаг трассировки равен 1,25 мм, а вся плата содержит 160x128 элементарных ячеек.

Для того чтобы РЕДАКТОР программы имел возможность изображать в двух соседних ячейках изолированные один от другого элементы, например дорожку и контактную площадку с отверстием компьютер должен иметь в своем знакогенераторе дополнительные графические символы. Принципы и правила доработки знакогенератора подробно описаны в [1]. В приведенную в этой статье таблицу прошивки ПЗУ знакогенератора (табл. 3), необходимо внести изменения, в соответствии с табл. 1 (контрольная сумма нового блока 0400—04FFH равна 8992). В ее свободные позиции (кроме адресов 0400Н-0407Н) можно записать любые символы по вашему усмотрению.

Программа рассчитана на автоматическое управление переключением половин знакогенератора, для чего вывод 19 микросхемы КР57ЭРФ2 (D12) нужно подключить к выводу 34 контроллера дисплея КР560ВГ75 (D8). Однако при желании знакогенератором можно управлять и вручную, если подключить вывод 19 КР573РФ2, так как описано в статье [1].

В крайнем случае, РЕДАКТОРОМ можно пользоваться и без перепрограммирования ПЗУ знакогенератора, однако дорожки придется составлять только из символов «контактная площадка». Чтобы такие дорожки были изолированными одна от другой, между ними нужно будет оставлять как минимум один ряд свободных ячеек. Другими словами, Вы не сможете, например, провести печатный проводник между двумя выводами микросхемы, в корпусе DIP, не задев их.

Описание РЕДАКТОРа программы (ее машинные коды приведены в табл. 2, а блочные контрольные суммы — в табл. 3).


      Таблица 3.
0000 - 00FF 945C
0100 - 01FF 3431
0200 - 02FF F860
0300 - 03FF EC57
0400 - 04FF 5C0B
0500 - 05FF 309B
0600 - 05FF 882F
0700 - 07FF DCBA
0800 - 08FF 6E1C
0900 - 09FF B940
0A00 - 0AFF E2D1
0B00 - 0BFF EFD8

0000 - 0BFF F3D8

Начнем с интерфейса

При первом запуске РЕДАКТОРа на экран выводится заставка. После этого компьютер переходит в режим редактирования. Верхняя строка используется как строка состояния РЕДАКТОРа. В ней изображены название программы наименование стороны платы положение курсора относительно ее левого верхнего угла и режим работы. Оставшаяся часть экрана используется для отображения состояния платы. Естественно вывести на экран всю плату невозможно — вы видите только ее фрагмент. При попытке вывести курсор за пределы экрана РЕДАКТОР сместит изображение в соответствующую сторону или подаст предупредительный сигнал, если смещение не возможно.

Для того чтобы все линии на экране выглядели непрерывными, РЕДАКТОР удаляет межстрочные пробелы. Это улучшает восприятие изображения (чтобы заметить разницу сравните его с тем, что вы видите при выполнении команды LINE 0, 10 в БЕЙСИКе «МИКРОН»).

Итак, самая главная команда РЕДОКТОРа — <N>. При нажатии на эту клавишу он очищает обе стороны платы. Рекомендуется выполнять команду перед загрузкой в память односторонних плат и, конечно перед разработкой новой платы. Это поможет избежать некоторых трудностей при выводе на печать и построении зеркальных изображений.

По команде <J> рабочее поле покрывается сеткой из символов (точка). Сетка предназначена только для ориентации и на печать конечно не выводится. Команда работает в режиме «триггера» (включено—выключено).

Клавиша <0> (ноль) переключает курсор в режим стирания, все ячейки в которых он «побывал», очищаются. Режим индицируется буквами «СТР» в строке состояния.

Клавиша <1> «заставляет» курсор рисовать за собой дорожку (в строке состояния—символы «ЛИН»). Заметим, что при этом РЕДАКТОР надлежащим образом обрабатывает все пересечения дорожек. Например, если курсор находился на горизонтальной дорожке, а после подачи команды <1> двинулся вверх, новая и старая дорожки сольются. Если же курсор рисовал вертикальную дорожку «встретился» с горизонтальной дорожкой и тут «узнал» о команде <1>, дорожки будут соединены. Эту команду лучше выполнять в том случае если курсор находится на каком-либо элементе платы (на дорожке, на площадке). Не стоит пытаться выполнить ее, если знакогенератор компьютера не доработан.

Команда <2> аналогична команде <0>, однако ячейки в этом случае заполняются символами «контактная площадка». Кроме того, действию курсора в этом режиме не подвержены ячейки-"отверстия". При включении режима в строке состояния появляются символы «УСТ».

Три последние команды взаимодействуют между собой по особому. Если, например, команда <0> используется «сама по себе» она работает как «триггер». Однако если вы включили режим 'СТР' а, затем, не выключая его, дали команду <2> редактор сразу перейдет в режим «УСТ».

По команде <S> РЕДАКТОР меняет рабочую сторону платы. Ее условное обозначение выводится в строке состояния. При этом следует помнить, что и сторона «ДЕТАЛИ» и сторона «ПРИПОЙ», представляют собой вид платы со стороны радиокомпонентов. Иными словами рисунок печатных проводников получается зеркальным.

При нажатии на клавишу <М> программа строит зеркальное изображение обеих сторон. Эта команда необходима в частности при печатании стороны «ПРИПОЙ». При каждом выполнении команды изображение платы «прижимается» к левому краю рабочего поля.

По команде <3> РЕДАКТОР «сверлит» в плате отверстие. Перед сменой стороны, записью на магнитофон или выходом из программы все отверстия на текущей стороне «пробиваются» на противоположную сторону, а те из них, что находятся на противоположной стороне (у которых нет выхода на текущую сторону), — стираются.

При нажатии на клавишу <5> в строке состояния появляется или исчезает символ *(звездочка). Суть поясняет рис 1. Если попытаться провести курсор, как показано стрелкой этого режима на рис 1, а при выключенной звездочке, дорожки соединятся (рис 1б), а если режим включен, этого не произойдет (рис 1в).

Команда <СТР> очищает содержимое текущей ячейки. По команде <АР2> в ячейку записывается символ «контактная площадка». Надо отметить, что если курсор находится на такой ячейке, он из светлого прямоугольника превращается в значок «#» (диез).

Теперь о «блочных» командах

Командой <В> помечают левый верхний угол прямоугольного блока ячеек. Кроме того, эта команда определяет ячейку, от которой ведется отсчет координат курсора (по умолчанию — от левого верхнего угла рабочего поля). Координаты (в миллиметрах) выводятся в строке состояния двумя числами со знаком горизонтальная координата (по оси абсцисс) и вертикальная (по оси ординат). Программа предполагает, что фактические размеры ячейки — 1,27x1,27 мм (дюймовая система). Еще раз к вопросу размеров мы вернем попозже.

Командой < V> помечают правый нижний угол прямоугольного фрагмента. По этой команде компьютер запоминает все необходимые координаты блока. При попытке 'вывернуть' фрагмент «наизнанку» (поменять местами углы прямоугольника), компьютер выдает предупредительный сигнал.

Для копирования блока необходимо указать курсором на ячейку, где будет находиться левый верхний угол копии, и нажать на клавишу <Т> (конечно предварительно пометив фрагмент, подлежащий копированию). Эта директива имеет некоторые особенности. Во-первых, копируется только одна сторона помеченного блока («ПРИПОИ» или «ДЕТАЛИ»), та на которой была выполнена команда < V >. Во вторых, копирование может происходить между сторонами платы можно, например, пометить блок на стороне «ПРИПОИ», а клавишу <Т> нажать на стороне «ДЕТАЛИ». И, наконец, если копируемый фрагмент не перемещается на рабочем поле, он будет усечен.

Копирование происходит, построчно начиная с верхней строки, поэтому копия может затирать оригинал без каких либо отрицательных эффектов, если находится выше или на одном уровне с ним. Если же копию необходимо разместить ниже оригинала можно попытаться прижать плату к нижнему краю рабочего поля директивой « U», а затем скопировать обычным способом. Пользоваться этой директивой следует с осторожностью: если в самой нижней строке стороны «ПРИПОЙ» находится хоть один символ, РЕДАКТОР может испортить изображение.

По Команда < F> позволяет заполнить все ячейки блока на текущей стороне определенным символом. Его условный код (табл. 4) нужно ввести непосредственно после нажатия клавиши « F». Например, команда < F>+<0> очищает фрагмент, а команда < F>+<2> заполняет его символами «контактная площадка».

Особо отметим специфику распределения адресного пространства процессора при работе программы (табл. 5) Информация о каждой стороне платы занимает в памяти (и на магнитофонной кассете) 10 Кбайт. Для экономии памяти в ОЗУ записывается не восьмибитный ASCI код символа, а его четырехбитный, условный код (см. табл. 4). Иными словами каждый байт ОЗУ хранит информацию о двух соседних ячейках платы.

Для записи изображения платы на магнитофон используют директиву <О>. Информация записывается на магнитную ленту двумя блоками сначала сторона «ПРИПОЙ» затем через паузу «ДЕТАЛИ». Если редактируется односторонняя плата, во время паузы между блоками запись можно прервать клавишей <СБРОС>. Перед загрузкой таких плат необходимо очистить память директивой <М> редактора или «F1000,5 FFF» МОНИТОРа. Загружают изображение платы в ОЗУ директивой (директивами) " I « M ОНИТОРа. Директива <Е> передает управление МОНИТОРу. Использовать для этой цели клавишу <СБРОС> нежелательно.

Теперь о дополнительных директивах РЕДАКТОРа

Директива <с> переключает курсор в режим инверсии знакоместа (при этом он, скорее всего, исчезнет с экрана, так как базовый вариант „Радио-86РК“ этот режим не поддерживает). Директивой < D> включают внутренний драйвер клавиатуры, использующий подпрограмму 0F81BH. Он позволяет ускорить перемещение курсора по рабочему полю, при одновременном нажатии на клавишу <СС> (<НР>) и клавишу управления курсором.

Клавиша < L> запрещает вывод на экран координат курсора. Дело в том, что они рассчитываются при каждом его смещении, а это занимает некоторое время. Задержка особенно заметна, когда курсор находится в правом нижнем углу рабочего поля.

Несколько слов о приемах работы с РЕДАКТОРом. Некоторые ситуации, возникающие при работе с программой, изображены на рис 2 так, как они выглядят на экране, а на рис 3 (М 1:1) и 4 (М 2:1) — в отпечатанном виде (соответственно в масштабе 1:1 и 2:1). При размещении на плате микросхем в корпусах DIP с 14 выводами и им подобных расстояние между рядами выводов равно 6, а в корпусах этого типа с 24 и более выводами — 12 ячейкам. Расстояние между выводами резисторов МЛТ-0,125-8-10 ячеек. Для измерения небольших расстояний на платеудобно использовать неисправную микросхему в корпусе DIP, цена деления такой линейки» (расстояние между выводами) — 2 ячейки.

Для того чтобы соединить два элемента платы (например, две контактные площадки) установите курсор на одну из них, нажмите на клавишу <1> или <2>, проведите курсором дорожку ко второй и повторно нажмите на эту клавишу. Описываемая программа не позволяет изображать на платах текстовые комментарии. Причина очевидна — недостаток памяти и скудные графические возможности «Радио-86РК». Впрочем, простейшие надписи можно составить из символов, «собранных» из стандартных элементов. Примеры изображений цифр и некоторых букв приведены на упомянутых рисунках. Здесь может помочь директива <4>, которая перебирает символы в текущей ячейке по их условному коду.

Теперь об адаптации РЕДАКТОРа программы к компьютеру

Если последовательность расположения адресов регистров контроллеров ПДП и дисплея в его адресном пространстве совпадает с «Радио-86РК» и регистры адресуются как ячейки памяти, адаптация несложна. В противном случае она немного усложнится и в данной статье не рассматривается.

Итак, в ячейках 94 CH-94 DH и 8Е9Н-8ЕАН хранится адрес регистра управляющего слова контроллера дисплея. Для компьютера «Микроша», например, в эти ячейки записывается число D001Н (младший байт, конечно первым). Регистр данных этой микросхемы должен иметь адрес на единицу меньший. В ячейках 901Н—902Н записан адрес регистра режима контроллера ПДП. В случае использования «Микроши» здесь записывается число F808H. Адреса остальных регистров должны находиться «по соседству» в младших адресах.

Во время работы РЕДАКТОРа в видеомониторах некоторых типов срывается кадровая синхронизация. Так этот дефект возникал при работе компьютера с видеомонитором «Электроника МС6114.04» Чтобы устранить дерганье изображения, попробуйте записать в ячейку 8 F1 H одно из следующих значений 64Н, А4Н, Е4Н. Такая модификация увеличит длительность кадровых синхроимпульсов.

Как уже говорилось, РЕДАКТОР выводит относительные координаты курсора в дюймовой системе. Если для вас более удобна метрическая система (размеры ячейки — 1,25x1,25мм) в табл. 2 нужно изменить содержимое ячейки с адресом В61Н с 27Н на 25 H.

Поскольку эта программа разрабатывалась задолго до того как в журнале «Радио» была предложена доработка знакогенератора [2], включающая в него большинство необходимых символов табличной графики, автору пришлось самому подумать, как ввести их изображении в знакогенератор. Коды символов естественно оказались различными. Тем не менее, программу довольно легко адаптировать под любую кодировку символов. В данном случае нужно изменить в теле программы таблицу соответствия ASCII кодов — условным и код символа, используемого в качестве курсора:

00 B1 18
00 B6 18

Однако в этом случае символы с условными кодами 4 и 8 будут выводиться на экран в виде стрелок.

Для печатания изображений плат понадобится принтер

Он должен быть матричным или струйным и иметь EPSON -совместимую систему команд (большинство современных принтеров отвечают этим требованиям). Изображения всех символов хранятся в теле программы в упакованном виде и распаковываются в память по адресу 6000Н перед печатанием. После запуска печатающей части программы (ее коды приведены в табл. 6, а блочные контрольные суммы — в табл. 7), на экран выводятся название текущей стороны платы и перечень команд.

Таблица 7.

0000 - 00FF F79F
0100 - 01FF CF30
0200 - 02FF 28D2
0300 - 03FF 165F
0400 - 04FF 26D6
0500 - 05FF A36C
0600 - 06FF 5E0D
0700 - 07FF 5555
0800 - 08FF 2463
0900 - 09FF B20C
0A00 - 0AFF AE27
0B00 - 0BFF 3CE2
0C00 - 0CFF 24BC
0D00 - 0DFF 4EFE
0E00 - 0EFF 02D0

0000 - 0EBD 36B1

Команда <1> меняет текущую сторону, команда <2> аналогична команде <М> РЕДАКТОРа и строит зеркальное изображение платы. При нажатии на клавишу <6> текущая сторона очищается. Если программа обнаружит, что обе стороны чисты, на экране появится приглашение загрузить изображение платы и управление будет возвращено МОНИТОРУ. Еще раз напоминаю, что эту команду желательно выполнять всегда, когда возможно. Директива <7> передает управление монитору.

Для печатания предназначены команды <3>—<5>. После их ввода программа запрашивает комментария, который будет напечатан перед изображением. Рекомендуется использовать прописные латинские буквы. «Отчитываться» перед компьютером не обязательно, достаточно нажать клавишу <ВК> и программа сразу начнет печатать.

Кроме комментария перед чертежом печатаются название породившей его программы и обозначение стороны COMPONENT SIDE (ДЕТАЛИ) или SOLDER SIDE (ПРИПОЙ).

Директива <3> печатает черновые изображения в масштабе 1:1. Каждый ряд ячеек печатается за один проход, поэтому скорость вывода максимальна. Если приклеить полученный отпечаток к заготовке платы, сверлить отверстия будет значительно легче. Директива <4> печатает изображения в трехпроходном режиме с максимальным качеством и в масштабе 2:1. В этом режиме изображение подвергается специальном обработке: у площадок срезаются незадействованные углы, сглаживаются переходы между отверстиями и площадками, и т. д. Благодаря этой обработке, например, между расположенными в шахматном порядке контактными площадками нет электрического контакта. Примеры изображений, напечатанных этими командами, приведены на уже упоминавшихся рис 3 и 4.

Директива <5> аналогична директиве <4>, однако изображение в этом случае поворачивается на угол 90° по часовой стрелке (команду используют для печатания изображений длинных плат на узком принтере).

Полученные с помощью этих двух команд бумажные копии можно использовать в частности для изготовления печатных плат методом литографии (фотопечати). Бумага естественно должна быть соответствующего качества.

Вывод изображения на принтер можно прервать, нажав на клавишу <УС>. Программа прекратит посылать данные в принтер и выдаст сигнал INIT.

Печатание изображений двусторонних плат лучше начинать со стороны установки деталей. Перед печатанием тыльной стороны («ПРИПОЙ») необходимо построить ее зеркальное изображение. Это же относится и к односторонним платам.

Схема подключения принтера изображена на рис 5 (знаком *** помечены сигналы, подавать которые не обязательно). В программе имеется собственный драйвер принтера (если к вашему компьютеру он уже подключен, драйвер нужно заменить). Внешний драйвер должен выводить байт из регистра С на печать не изменять ни одно о регистра кроме возможно аккумулятора и позволять печатать символы с кодами от 0 до 255. Например, если адрес драйвера — F 80 FH в программу нужно внести следующие изменения:

03АС СЗ 0 F F8

По адресам ЗЕ2Н—ЗЕ4Н аналогичным образом записывают команду перехода на подпрограмму инициализации интерфейса принтера. Если инициализация не нужна подпрограмму просто «заглушают»:

0ЗЕ2 С9

Если программа почему-либо отказывается печатать и сразу после ввода комментария выходит в меню можно попытаться «заглушить» проверку нажатия не клавишу <УС>:

0ЗА9 00 00 00

Желаю успеха.

ЛИТЕРАТУРА

  1. Игнатьев Ю., Новый знакогенератор для «Радио-86РК» — Радио 1991 № 8 с 44-49.
  2. Седов Б., Матвеев А., «Радио-86РК» развитие перспективы. Программируемый дешифратор. Системный МОНИТОР. — Радио 1994 № 5 с 19 табл. 6

Отсканировано с журнала Радио № 1 № 2 1996 год.
Отредактировано Лесных Ю. 2001 год.