Недавно мне презентовали весьма рандомный комплект советских логических микросхем, в основном серии К561.
- Только я понятия не имею, работающие они или нет, - добавил мой знакомый, отсыпая в мои ладошки кучку сцепившихся металлическими ножками пластиковых корпусов.
Какой же бедный студент откажется от халявных микросхем! Но как отделить зерна от плевел – то бишь, брак от рабочих? Конечно же, первым делом я вооружился справочником В.Л. Шило "Популярные микросхемы КМОП. Справочник. Серии К176, К561, 564, КР1561, 1564" (Москва, "Ягуар", 1993 г.). Узнав оттуда назначение и расположение контактов одной из выбранных наугад микросхем – К561ТМ2, я соединил с Arduino входы первого из двух независимых D-триггеров, входящих в состав этой микросхемы, а прямой и инверсный выходы - на светодиоды с токоограничительными резисторами:
Как только я правильно написал скетч, светодиоды весело замигали:
/* K561TM2 1 | Q1 2 | Q1` 3 | C1 4 | R1 5 | D1 7 | GND 9 | D2 10 | R2 11 | C2 12 | Q2` 13 | Q2 14 | Vcc */ #define pinC 2 #define pinR 3 #define pinD 4 #define pinS 5 void setup() { pinMode(pinC,OUTPUT); digitalWrite(pinC,HIGH); pinMode(pinR,OUTPUT); digitalWrite(pinR,LOW); pinMode(pinD,OUTPUT); digitalWrite(pinD,LOW); pinMode(pinS,OUTPUT); digitalWrite(pinS,LOW); } void loop() { digitalWrite(pinD,LOW); digitalWrite(pinC,LOW); delay(2); digitalWrite(pinC,HIGH); delay(500); digitalWrite(pinD,HIGH); digitalWrite(pinC,LOW); delay(2); digitalWrite(pinC,HIGH); delay(500); }
Помигать также можно и через R/S входы, если заменить в предыдущем примере тело loop:
void loop() { digitalWrite(pinR,HIGH); digitalWrite(pinS,LOW); delay(500); digitalWrite(pinR,LOW); digitalWrite(pinS,HIGH); delay(500); }
Если светодиоды загораются по-очереди раз в полсекунды, то триггер вроде бы рабочий. Но в корпусе их два, а значит надо повторить проверку и для второго.
И тут я задумался: насколько такая проверка будет корректной?
Любая микросхема имеет определенное быстродействие (зависит от серии, например, в случае с КМОП – от напряжения питания) и неплохо было бы проверить, что оно достижимо. Поскольку оценивать это "на глазок" по миганию светодиодов нельзя, логично доверить это Arduino, подключив к нему и выходы тестируемой микросхемы тоже.
И обязательно надо проверить и взаимное влияние одного триггера на другой – например, при управлении одним, второй своего состояния менять не должен.
А если сделать программу для проверки более универсальной?
Немного подумав надо тем, как должна выглядеть Универсальная Программа Проверки Логических Микросхем, я ужаснулся и потянулся к Интернету, пытаясь найти готовое устройство для повторения. Но все оказалось не так просто, как я ожидал.
Надо заметить, что в существовании подобного устройства я не сомневался – несколько раз, покупая на рынке комплектуху для своего первого Спектрума, я прибегал с услугам дядьки-проверяльщика. Это такой специальный мужик (чем-то смахивающий на коробейника) с портативным проверочным устройством. За небольшую плату покупаемые микросхемы устанавливались в панельку на устройстве, нажималась кнопка и – чудо! Если загорался один светодиод, то проверка считалась успешной, если другой... микросхема возвращалась продавцу с вердиктом "битая". Стоило эта услуга весьма недорого и пользовалась заслуженной популярностью: выпаивать микросхему, рискуя повредить печать, не хотелось.
Первый найденный вариант обнаружился в книге "Популярные микросхемы ТТЛ. Серии: КР1533, КР1531, К531, К555, К155" (Москва, "Аргус", 1993). Назывался он "Прибор для испытания микросхем". Необходимость преподносилась его авторами так: "однотипные микросхемы, изготавливаемые разными фирмами как "функциональные аналоги", могут работать по-разному":
Механическую основу девайса составляет универсальная панелька на 24 контакта, к кажому из которых припаяно по проводку длиной 150мм, со штырьком на конце. С двух сторон расположены тумблеры и светодиоды с гнездами: для начала надо раздобыть описание микросхемы и подключить проводками тумблеры - ко входам, а светодиоды – к выходам. Наверное, вы уже догадываетесь, что дальше надо руководствуясь документацией / интуицией / исключительно субъективным пониманием того, как должна работать микросхема, набирать на тумблерах комбинации и анализировать результат. В схеме предусмотрен генератор импульсов 1 Гц, который предназначен для формирования сигнала проверки последовательных регистров и сдвиговых счетчиков (и тоже имеет отдельное гнездо):
Как гласит последний абзац описания, "некоторые микросхемы КМОП не работают от 5В. Разомкните тумблер S15, подайте от внешнего питания 9В". Это единственное упоминание КМОП в книге, полностью посвященной ТТЛ- и ТТЛШ-логике, отдает мистикой ;)
Подводя краткий итог, надо признать, что это была чуть более удобная обвязка к лобовому способу проверки, с которого я начал. Да и подходило оно, скорее, для исследователя, который хочет посмотреть, как работает незнакомая микросхема при разных комбинациях входных сигналов. Подозреваю, что авторы книги пользовались чем-то похожим ;)
Продолжая искать, я нашел статью "Прибор для контроля работы микросхем", автор Н.И. Заец:
Принцип работы: берутся две одинаковых микросхемы, у них соединяются входы и в реальном времени сравниваются состояния на выходах: при расхождении загорается светодиод. Главная особенность этого способа заключается в том, что можно (и даже нужно!) проверять микросхему не выпаивая - прямо в работающем устройстве. Правда, для этого придется собрать специальный игольчатый переходник, но в итоге появляется уникальный шанс "застукать" неисправную микросхему, если "один из входов или выходов ... могут иметь обрыв или "сидеть" на одном из уровней, а в статике логика работы будет совпадать".
Простота устройства компенсируется необходимостью иметь под рукой эталонные микросхемы. Обратный вариант - если вы занимаетесь проверкой микросхем из кассы, надо иметь исправное устройство, в котором будет стоять такая же микросхема. Идея оригинальная и крайне практичная, но...
Кстати, нельзя не заглянуть в статью, на которую ссылается Заец: журнал Радио №7 за 1993, "Тестер для проверки микросхем". Там мы найдем похожую схему для проверки регистров и мультиплексоров ТТЛ-серий, которая предполагает проверку путем формирования тестовой последовательности на испытуемой и эталонной микросхеме. Таким образом, работающей платы не требуется, зато сужается диапазон типов проверяемых микросхем. Необходимость иметь "про запас" исправную эталонную микросхему тоже не отпадает, увы:
(как и все схемы в моем блоге - кликабельно для увеличения)
Продолжение поисков обязательно следует...
Обалдеть, Unit testing (http://en.wikipedia.org/wiki/Unit_testing) для микросхем, я люблю этот блог! ;-)
ОтветитьУдалитьВсем привет. Как-то тоже был озадачен проверкой исправности большого количества разных цифровых микросхем 155 и 555 серии. Информацию о реальном устройстве, пригодного для повторения радиолюбителями сначала нашел в журнале Радиолюбитель №12 за 1994г, а затем схему и программу в Радиолюбителе №3 за 1996год. Статья называется "Устройство проверки микросхем". Схема сделана на рассыпухе 555 серии, программа написана на Бейсике для ПК а-ля "ZX-Spectrum" версии "Балтик", поэтому очень проста и прозрачна для понимания. Легко можно адаптировать под Ардуино. качество проверки не зависит от быстродействия программы, т.к. "защелка" отклика сделана аппаратная. Редактор журнала сильно статью "покалечил", поэтому много ошибок. Где-то в последующих номерах есть некоторые исправления. По умному такой способ контроля называется "методом сигнатурного анализа". К сожалению автор не привел исходник составителя тестовых таблиц. Вроде автор делал устройство в виде автономного устройства, но не могу ошибаться.
ОтветитьУдалитьНашел в журнале Радиолюбитель две статьи: 1) "Прибор для проверки микросхем" М.Лошкарев, А.Николаев, О.Мохов 1995 N7 с. 25-27, N8 с. 22-24. Программа на ассемблере. 2) "Устройство проверки микросхем" С. Коржов 1996 N2 с. 29-31, N3 c.29. Программа на Бейсике.
УдалитьА в N12 за 1994 статья "Программатор ПЗУ К155РЕ3 и К155РТ4" того же С.Коржова, программа тоже на Бейсике.