3 / 10 243
Версия для печати
Логический пробникДля наладки и ремонта ZX-Spectrum совместимых компьютеров полезным приспособлением является логический пробник. По сути это прибор, отображающий логический уровень сигнала на входе (лог.0 или лог.1). Так как в зависимости от типа используемых микросхем (ТТЛ, КМОП) логические уровни могут быть разными, пробник в идеале должен быть настраиваемым для использования совместно с разными типами сигналов.В ZX-Spectrum'ах почти всегда используются микросхемы с ТТЛ входами/выходами, поэтому будет уместно рассмотреть схему логического пробника с учётом уровней сигнала ТТЛ. Тут я немного повторю прописные истины, которые и без того известны всем заинтересованным... Величины напряжений лог.1 и лог.0 для ТТЛ видны из следующего схематичного рисунка:
Как видно крайние уровни лог.0 и лог.1 для входов и выходов несколько отличаются друг от друга. Для входа лог.0 будет при напряжении от 0,8В и менее. А выходной уровень лог.0 - это 0,4В и менее. Для лог.1 это будет 2,0В и 2,4В соотвественно. Это сделано для того, чтобы крайние уровни лог.0 и лог.1 для выходов гарантированно попадали в диапазон напряжений для входов. Поэтому и сделана такая небольшая "разбежка" в уровнях входов и выходов. Всё, что попадает в диапазон напряжений между лог.0 и лог.1 (от 0,8В до 2,0В) логическим элементом не распознаётся как один из логических уровней. Если бы не было такой разбежки в уровнях (2-0,8=1,2В) любая помеха расценивалась бы как смена уровня сигнала. А так логический элемент устойчив к действиям помех с амплитудой до 1,2В, что согласитесь, очень неплохо. У ТТЛ-входов есть интересная особенность: если вход никуда не подключен, то микросхема "считает", что на него подана лог.1. Конечно же такое "неподключение" - это очень нехорошо, хотя бы потому, что при этом висящий "в воздухе" вход микросхемы "ловит" все помехи, в результате чего возможны ложные срабатывания. Однако нас интересует другое - на "висящем в воздухе" входе всегда присутствует некоторое напряжение, величина которого попадает в неопределённый промежуток между логическими уровнями:
Определение величины напряжения на неподключенных входах микросхемы
Такой уровень называют "висящая единица", т.е. как бы единица есть (расценивается микросхемой как лог.1), но на самом деле её нет :) Применительно к процессу ремонта и наладки компьютеров понятие "висящей единицы" полезно тем, что в случае обрыва проводника на плате или отгорания выхода какой-либо микросхемы на входы связаных с ними микросхем не подаётся сигнал, а следовательно, там будет "висящая единица", и этот момент можно зафиксировать, т.к. примерные уровни напряжения в таком состоянии микросхемы нам уже известны (порядка от 0,9В и вплоть до 2,4В). То есть если, допустим, по схеме вход микросхемы куда-то должен быть подключен, а на нём в реальности не 0 и не 1, а "висящая единица", то что-то тут не так. В плане процесса ремонта это очень полезно!
Исходя из всего вышесказанного можно сформулировать техническое задание на создание логического пробника:
Различные конструкции логических пробниковСхем логических пробников очень много. Достаточно поискать в любом поисковике забить фразу "логический пробник". Однако по разным критериям данные схемы мне не подходят:- Вывод ведётся на семисегментный индикатор, яркость которого никак не позволяет определить примерную скважность импульсов; - Нет определения "висящей единицы"; - Другие критерии типа "просто не понравилась схема" :) Схема самого простого пробника был опубликована в журнале "Радиолюбитель" №9 за 1995 год:
Немного более "продвинутый" вариант этой схемы:
Таким пробником я пользовался около 18 лет. Несмотря на простоту этот пробник показывает всё: лог.0, лог.1. Даже "висящую единицу" показывает - при этом светодиод (лог.1) еле светится. Можно определять скважность импульсов по яркости свечения светодиодов. Этот пробник даже не выгорает при подаче на его входы напряжений -5В, +12В и даже выше! При подаче на пробник -5В светодиод (лог.0) горит с очень большой яркостью. При +12В на входе горит с большой яркостью светодиод (лог.1). Короче, неубиваемая схема :) Для регистрации коротких импульсов, которые не видны глазом (например, импульс выбора порта) я приделал к пробнику "защёлку" на половинке триггера ТМ2:
Внешний вид пробника: Свой вариант логического пробникаМной предпринимались попытки сделать логический пробник с индикацией "висящей единицы" на компараторах. В статике всё работало и определялось, но в динамике пробник оказался неработоспособен. Проблема кроется в быстродействии компараторов. Доступные мне компараторы (LM339, К1401СА1, КР554СА3 и т.п.) довольно "тормозные" и не позволяют работать на частоте выше 1,5-2МГц. Для работы со схемой ZX-Spectrum это совершенно не годится. Какой толк от пробника, если он не может даже показать тактовую частоту процессора? Но совсем недавно на Youtube на глаза попалась видео-лекция по работе логического пробника:
Лекция по принципам работы логического пробника
Лекция очень интересная и познавательная. Посмотрите её полностью! Данная конструкция пробника меня очень заинтересовала, и я решил её повторить и проверить. По схеме из лекции всё заработало за исключением каскада для определения уровня "висящей" единицы. Однако это не является проблемой, и я сделал каскад на компараторе. Вопрос быстродействия тут не стоит, т.к. термин "висящая единица" применим к статическому состоянию микросхемы. В итоге получился пробник со следующей схемой: P.S. Схема пробника не самая идеальная, и при желании наверняка можно сделать проще и лучше. Описание схемы и процесс наладки логического пробникаВходные каскады пробника выполнены на эмиттерных повторителях на транзисторах VT1 и VT2. В исходном состоянии (когда на вход пробника ничего не подано) транзисторы закрыты, поэтому на входы DD1.1 подан лог.0 через резистор R4, светодиод VD1 не горит. Точно так же закрыт транзистор VT2, и через резистор R5 на входы DD1.2 подаётся лог.1, светодиод VD3 не горит.При подаче сигнала с уровнем лог.0 (0...0,8В) открывается транзистор VT2, на входы DD1.2 подаётся лог.0, светодиод VD3 загорается. При подаче сигнала с уровнем лог.1 (2...5В) открывается транзистор VT1, на входы DD1.1 подаётся лог.1, светодиод VD1 загорается. Резисторами R2-R3 на входе пробника устанавливается напряжение порядка 0,87-0,9В. Т.е. необходимо, чтобы это напряжение было в промежутке 0,8..0,9В, чтобы при никуда не подключенном входе пробника не горел светодиод VD3. На компараторе DA3 сделана схема определения "висящей единицы". Резисторами R6-R7 устанавливается напряжение порядка 0,92..0,95В, при котором компаратор определит, что на входе находится уровень "висящей единицы", и загорится светодиод VD2. Напряжение на входе 2DA2 подбирается такой величины, чтобы при никуда не подключенном входе пробника не горел светодиод VD2. Цвет свечения светодиодов можно выбрать таким, чтобы лог.0 показывался зелёным светом, лог.1 - красным, "висящая единица" - желтым. Не знаю как вам, а мне так удобнее. Светодиоды VD1 и VD3 лучше всего брать прозрачные (не матовые), чтобы хорошо был виден кристалл, и по возможности яркие, чтобы легче было заменить, если светодиод хоть чуть-чуть светится. На микросхеме DD3 выполнен счётчик импульсов, поступающих на вход пробника. При коротких имульсах, не видных глазу, светодиоды VD4-VD7 будут исправно показывать количество импульсов в двоичной форме :) Кнопкой SB1 счётчик сбрасывается с погасанием всех светодиодов. Инверторы микросхемы DD2 используются для того, чтобы активным уровнем (когда зажигается светодиод) был лог.0, т.к. ТТЛ-выход при лог.0 способен отдать в нагрузку ток до 16 мА. При выходной лог.1 выход способен отдать ток 1 мА, и если мы к нему подключим светодиод (чтобы он зажигался при лог.1 на выходе) мы перегрузим выход. Токоограничивающие резисторы подобраны так, чтобы максимальный ток, протекающий через светодиоды, не превышал 15 мА. Пробник питается от отдельного блока питания (я использовал источник питания от магнитофона "Беларусь"). На плате пробника расположен стабилизатор напряжения DA2. Учитывая не слишком большой ток потребления пробника микросхема стабилизатора используется без дополнительного теплоотвода, и при этом не перегревается. Входные цепи пробника VT1, VT2, DA3 питаются от отдельного источника опорного напряжения DA1. Сделано это потому, что при изменении тока потребления пробника (например, когда горит большинство светодиодов) выходное напряжение стабилизатора DA2 несколько меняется, при этом соответственно будут меняться все опорные напряжения, что недопустимо. К проверяемой конструкции от пробника отдельно подключается "общий" провод (GND). Быстродействия микросхем пробника хватает для индикации импульсов вплоть до частоты 10 МГц. При частоте 12МГц уже пропадает индикация лог.0, но лог.1 показывается. По этой же причине вход счётчика подключен именно к DD1.1 - при проверке частоты выше 10 МГц счётчик будет считать импульсы с индикацией на светодиодах VD4..VD7. Пробник собран на макетной плате: Плата подобрана по размеру, чтобы поместиться в корпус от пришедшего в негодность маркера:
Процесс работы с пробником на плате компьютера "Байт" можно посмотреть на видео:
Работа с логическим пробником
|