
Троичные И-НЕ - первый успех!

Немного споткнулся поначалу, но обнаружил свой косяк. Зато, когда я только-только спаял эту схему как элемент И-НЕ (4 транзистора), за которыми идёт инвертор (ещё 2 транзистора) - оно заработало С ПЕРВОГО РАЗА. И графики меня прям радуют - как будто из учебника.
Сфотографировал и снял на видео элемент И, т.е И-НЕ + инвертор. Исключительно потому что его проще объяснить.

Под катом схема элемента, полсотни осциллограмм, видео работы отдельно И-НЕ и бонусная Марта, фото и видео.
По просьбам трудящихся все картинки 1024х768. Когда-то у хостинга imgsrc.ru была возможность грузить оригинал + уменьшенное, но что-то они это дело отменили (или надо денежку заплатить).
Но сначала небольшой должок с 561ЛЕ6. В прошлый раз оказалось, что она единственная среди имевшихся у меня ЛА/ЛЕ, у которой нет инверторов на входе и выходе, а значит, теоретически, её можно сделать троичной. Попробовал ещё немного её помучать.
Сначала повторим характеристику, которую тогда получали на аналоговом осциллографе, и почему-то там был гистерезис. Что ж, на цифровом его нет:

Пока что я вообще подозреваю искажения типа "ступенька" в усилителе канала X с чисто ёмкостной нагрузкой в том осциллографе, из-за чего "вверх" (зарядка пластин "верхним" транзистором) и "вниз" (их разрядка "нижним") немного не совпадает. Ведь для обычной развёртки во времени ("пила" с гашением обратного хода) это вообще несущественно! С этим надо будет в выходные покопаться - без хорошо работающих измерительных приборов тяжело такими вещами заниматься...
А теперь опробуем два элемента ИЛИ-НЕ в качестве инверторов, идущих друг за другом, что даёт буферный элемент (повторитель). Сейчас я имею в виду, что все 4 входа каждого из них я соединил между собой. Начнём:

Два стабильных уровня. Третий (центральный) выпал. Неудивительно: 561ЛН2 на таком питающем и при 2к7 подтягивающих резисторах тоже уже не фурычит. Снижаем:

Кривая касается прямой y=x в районе нуля - значит мы входим в "зону троичности" - третий уровень появился, но пока очень нестабильный.
Снижаем дальше:

Центральный уровень хоть сколько-нибудь "встал на ноги", но при этом "выпал" верхний уровень, ИСТИНА. Он теперь касается прямой y=x, т.е от малейшего толчка свалится в "ноль" (НЕ ЗНАЮ). Ну и для очистки совести снижаем ещё на 0,1 вольта:

И теперь уже два крайних уровня выпали - т.е без каких-то дополнительных "усилителей" такая логика нежизнеспособна. Соединив выход со входом, триггер мы не получим.
Причиной всему этому - жуткая асимметрия, вызванная 4 параллельными транзисторами в одном плече и 4 последовательными в другом. Как результат, на более высоком напряжении у нас не получается центральный уровень - 4 параллельных транзистора утягивают напряжение к себе. А на более низком "хиреет" последовательная ветвь.
Чтобы подтвердить эту гипотезу, заземлим все входы эти элементов, кроме одного. Так 3 из 4 параллельных транзисторов окажутся всегда закрытыми, а 3 из 4 последовательных - открыты "настежь", насколько это слово к ним применимо.

Отвратительно... Похоже, транзисторы верхней ветви всё-таки сделаны более мощными, а один "нижний" почти не тянет даже наши 2,7 кОм. Для очистки совести чуть поднимем напряжение:

А что в лоб, что по лбу. Ещё снизим, посмотреть на появление третьего уровня:

В общем, "с нахрапу" заставить его функционировать в троичной логике не вышло. Не отрицаю саму возможность такой работы - вероятно, надо снизить питающее напряжение одновременно с ростом сопротивления подтягивающего резистора, так будет куда более выражен порог открытия транзисторов, и тогда хоть один закрытый транзистор, хоть 4 закрытых соединённых параллельно - будет без разницы, резистор вытянет в ноль. Но пока решено было возню с ЛЕ6 отложить до лучших времён. Куда приоритетнее - освоить 176ЛП1!
И для начала идём проторенной дорожкой - на основе 176ЛП1 делаем два инвертора и соединяем их друг с другом, чтобы получить повторитель. И начинаем варьировать подтягивающие резисторы и напряжение.

Сразу стало видно: транзисторы здесь куда более "тугие", в сравнении с 561ЛН2. Резистор 2к7 с лёгкостью их пересиливает.
Идём методично, по 0,1 вольта...

это вообще ни разу не повторитель...

Нет...

Не то.

Форма правильная, но размах по вертикали маловат.

Уже близко.

ЕСТЬ КАСАНИЕ. Вот это уже заработает, но на грани, от малейшего пинка будет сваливаться в центр.

Началась троичность.

Хорошо.

Тришкин кафтан: теперь центральный уровень "истончился", того и гляди перескочит на нижний.

Вот она верхняя граница питающего напряжения, при использовании резисторов 2,7 кОм.
Ну и для отчётности, ещё на 0,1 вольт поднимем, уже догадываясь о результате:

Вышли на двоичную логику, центральный уровень "благополучно" исчез.
При использовании 2,7 кОм, на 176ЛП1 можно работать с питающими напряжениями 3,9..4,3 вольта. Т.е номинал 4,1 вольта плюс-минус 0,2. Так себе, если честно... С другой стороны, не удивлюсь, если 176 серия всё-таки может становиться троичной при 5 вольтах, хоть и очень "на бровях". Проверять было уже лень - отсутствие строго горизонтальной полочки в нуле - свидетельство, что оба транзистора остаются открыты, хоть и очень слабенько, так что резистор одерживает верх. Но когда идёт такая борьба "на тоненького" - это означает большую чувствительность к напряжению, к разбросу параметров микросхем и резисторов. И в целом не очень большую помехоустойчивость - стоит одни уровни настроить, другой начинает пропадать. В общем, для душевного спокойствия сопротивление надо повышать.
Беру следующий номинал, резисторов которого мне просто девать некуда (если только не решу на их основе сделать троичный компьютер - быстро закончатся), 3,3 кОм. Сразу же успех:

Пошли вниз:

Полвольта помехи, чтобы его сбить с панталыку. Неплохо.
Ещё ниже.

Уже граница...
Для протокола.

ИСТИНУ потеряли, бывает...
И ещё вверх пройдём.

Всё выше и выше

Пока дышит, если не дышать.

Всё, это уже двоичность.
Подытожим: При подтягивающих резисторах 3,3 кОм получаем номинальное питающее напряжение 3,9 вольт, плюс-минус 0,2, или плюс-минус 5% Всё ещё не комфортно. Опять же, когда мы от инверторов перейдём к более сложным элементам, где может быть открыт один транзистор, а может несколько параллельно, границы устойчивости снизятся ещё больше. Поэтому продолжим повышать номиналы резисторов.
4к7 - чуть ли не самый популярный номинал резистора, мера всех вещей.

Да, ему напряжение нужно пониже, это ожидаемо.

Ещё ниже.

Не заработает.

На грани.

Эх, ещё бы ему с нуля не отползать вниз - было бы уже неплохо.

Хорошо.

Почти идеально.

Крайние уровни "истончились", но жить можно.

Это уже край.
При использовании 4,7 кОм, номинальное питающее напряжение будет 3,65 В плюс-минус 0,25 В, или плюс-минус 6,8%. Это уже приемлемо, и полочка уже поровнее посередине. Но давайте, как всегда, доведём ситуацию до абсурда и поставим 10 кОм.

Блин, а что так криво-то??? Впрочем, работать будет.

Тут уже не заработает, поэтому поехали вниз.

Криво, но работать будет прилично.

Сойдёт.

ИСТИНА где-то рядом, пока ещё работает.

По первой оценке, при использовании 10к резисторов нужно брать питающее 3,15 вольт плюс-минус 0,15 вольт, допустим разброс напряжения менее 5%, т.е имеем УХУДШЕНИЕ в сравнении с 4к7. Это меня очень расстроило - маленькие сопротивления не подходят, большие тоже не подходят, вынь да положь 4к7. А если с ним более сложная логика не заработает - всё, сматываем удочки???
Ой, кто это у нас?

Только это, к моим микросхемам не лезь, это ж КМОП, и я что-то не уверен, есть ли в 176ЛП1 вообще защитные диоды, вдруг погорит всё?

СТОП. Я ж там буквально к каждой ножке подпаял по 100 кОм резистору. Пока это были ЛН2, ЛА7, ЛЕ6, эти резисторы вообще не делали погоды. Но сейчас, когда один инвертор приходится "собирать", подпаивая кучу ножек между собой, тут получается в одной точке ТРИ резистора 100 кОм параллельно, и ещё в другой точке ДВА таких резистора. И на фоне 10 кОм подтягивающего, это уже весьма существенно, они нарушают нам баланс. Может, это из-за них всё так криво? А ну-ка все лишние выпаяю отсюда. Ну сожгу однажды ЛП1 - ничего, у меня ещё 14 есть. А если надо - ещё докуплю.

Какая же шикарная полочка посередине - строго по нулю идёт! Это, вестимо, нижняя граница рабочего напряжения. Пошли вверх.

Мы в игре!

Помехоустойчивость до 0,25 вольта примерно - ЛОЖЬ легче всего скинуть в НЕ ЗНАЮ, нужно лишь из точки устойчивого равновесия (самая левая) дотянуться до точки неустойчивого, и оттуда свалимся к нулю.

Один из лучших графиков. Снова "слабое звено" - ЛОЖЬ, но теперь нужно 600 мВ, чтобы её скинуть. Чтобы скинуть ИСТИНУ в НЕ ЗНАЮ или назад, нужно около 800 мВ. Фактически горизонтальные уровни и крутые перепады между ними - это радует.

Практически то же самое. Можно считать, ИДЕАЛ.

Центральный уровень (НЕ ЗНАЮ) начал "истончаться", но всё ещё 500 мВ нужно, чтобы его перебросить в ИСТИНУ. Очень хорошо.

Не сильно поменялось.

Центральный уровень продолжает истончаться, теперь он может сбиться от 400 мВ помехи, но это неплохой показатель.

300 мВ, мы всё ещё в деле.

200 мВ. Край уже видим, но пока ползём.

Вот он. И ещё шагнём, для полноты.

Троичность завершилась.
Результаты по 10 кОм подтягивающему резистору, УТОЧНЁННЫЕ: номинал питания 3,3 вольта плюс-минус 0,5 вольта (!), или плюс-минус 15%. Этот вариант мне определённо нравится! Возможно, он будет очень медленным, но картинки прям образцово-показательные. Появляется уверенность, что здесь заработает и более сложная логика, и работать она будет при большом колебании температур, при разбросе параметров и при помехах.
Пора, наконец, перейти к логическим элементам посложнее инвертора!
А именно, к двухвходовому И и И-НЕ.
Таблица истинности троичного И - вполне себе житейская. Если хоть на одном входе ЛОЖЬ - результат также заведомо ЛОЖЬ. А ИСТИНА на выходе может быть в одном-единственном случае, если на обоих входах ИСТИНА. Во всех остальных случаях результат будет НЕ ЗНАЮ. Вот так:

Но простейшие логические элементы, исполняемые по КМОП технологии, должны быть инвертирующими. Поэтому сделаем И-НЕ (NAND). Вот его таблица истинности:

И схема элемента:

Как видно, это ТУПО ДВОИЧНЫЙ ЭЛЕМЕНТ, которому добавили подтягивающий резистор на половину питающего напряжения! Ну и подобрали напряжение, чтобы при подаче на затвор хоть "верхнего", хоть "нижнего" транзистора центрального логического уровня (НЕ ЗНАЮ), он всё ещё оставался практически закрытым (до такой степени, что резистор возьмёт верх).
Получаем следующую историю: если хоть на одном входе будет минус питания (ЛОЖЬ), откроется соответствующий верхний транзистор и обеспечит на выходе плюс питания, т.е ИСТИНУ.
Нижняя цепочка транзисторов откроется только если на оба входа придёт плюс питания, т.е ИСТИНА. Они скоммутируют выход на минус питания, т.е выдадут ЛОЖЬ.
Во всех прочих случаях ВСЕ ТРАНЗИСТОРЫ БУДУТ ЗАКРЫТЫ, и выход притянется к половине напряжения питания. Как говорится, дёшево и сердито!
Попробуем это дело запустить:
С первой же попытки всё как надо.
Ну и потом к выходу подключаем инвертор, реализованный на оставшихся 2 транзисторах из К176ЛП1 - и получаем видео и фото из начала поста. Первое фото "сфотошоплено" (точнее, отпейнтнечено) из трёх фоток:
Один из входов - ЛОЖЬ. Второй - отмечен по оси X. Выход элемента - по оси Y.

Один из входов - НЕ ЗНАЮ.

Один из входов - ИСТИНА.

Чтобы получить элемент ИЛИ-НЕ, достаточно пересоединить транзисторы: наверху поставить их последовательно, а внизу - параллельно. Что-то у меня нет сомнений, что это также заработает. Думаю сейчас взяться за следующий этап - реализовать схему "+1", которая будет ЛОЖЬ превращать в НЕ ЗНАЮ, НЕ ЗНАЮ превратит в ИСТИНУ, а ИСТИНУ превратит в ЛОЖЬ, ну и ещё отдельный выход переноса. Такой элемент не соответствует никакой житейской логике, тут вообще стоит забыть об этих названиях и перейти к уравновешенной троичной системе счисления, с цифрами +1, 0 и -1. А чтобы такой элемент реализовать, нужны транзисторы с двумя разными порогами открывания. Но я для единообразия попробую использовать те же самые ЛП1, но некоторые подложки буду смещать, чтобы сдвинулись пороги. Это усложнит схему питания (хотя два дополнительных питания будут чисто ПОТЕНЦИАЛЬНЫМИ - без потребления тока), но не думаю, что это так уж страшно.
Бонусная Марта:
|
</> |
