Троичный счётчик заработал!
nabbla1 — 22.12.2025
И года не прошло, как удалось запустить ПОСЛЕДОВАТЕЛЬНУЮ ТРОИЧНУЮ
ЛОГИКУ, до этого ковырялись с комбинаторной. Честно говоря, только
скользнули по поверхности, но всё же что-то начинает
проявляться...
Опробовали прозрачные троичные триггеры, затем из них построили один непрозрачный (срабатывающий по фронту).
Соединили его вход с инверсным выходом - и получили счётчик, который (в зависимости от начальных условий) либо переключается -1, +1, -1, +1, ...., либо держится в нуле.
Дополнив эту схему "девушкой", наконец, получили "правильный" троичный счётчик, пока что на один трит.

Весьма громоздко для ОДНОТРИТНОГО счётчика, но это лишь из-за отсутствия микросхем хотя бы средней степени интеграции, приходится собирать по 1-2 транзисторам. А так-то наш однотритный счётчик требует лишь ОДНИМ транзистором больше, чем обычный однобитный счётчик по технологии КМОП
А ещё опробовали индикацию логических состояний на двухцветном светодиоде, используя "лишние" инверторы. И всё бы давным-давно заработало, если б не пришлось ещё устранять самовозбуды по питанию и переделывать генератор тактовой частоты - наошибался где мог...
На текущий момент уже набралась приличная номенклатура троичных КМОП элементов, из которых, как из кирпичиков, мне хочется собрать что-нибудь посложнее:

Пока что мне нравится идея, что все унарные элементы (с одним входом, пусть даже для упрощения самого элемента мы принимаем второй, инверсный сигнал) на схеме будут треугольниками. Буферы и инверторы и так "всю жизнь" изображались так. А теперь мы ещё треугольник перевернём, и будет у нас "девушка в платье", она же прекрасная Дельта, она же "стрелочка вверх", т.к (-1) превращается в 0, (0) превращается в +1, а (+1) в -1, чтоб в будущем другой элемент включил бы перенос в следующий разряд. Либо развернём этот треугольник ещё на 180° - и будет "дипломат в смокинге", он же "стрелочка вниз".
Ну а за триггером как-то специального символа не закрепилось, просто квадратик с выводами D, Q, nQ, и clk, разумеется. Небольшая стрелочка напротив clk традиционно означает, что элемент реагирует на ФРОНТ, а не на логический уровень, т.е это НЕПРОЗРАЧНЫЙ триггер.
А вот схема простейшего троичного счётчика, которую я собирался собрать:

Сверху - структурная схема. D-триггер, вход которого подключён к выходу "девушки". Когда на выходе триггера -1, на выходе "девушки" будет 0, который поступит на вход триггера. По фронту тактовой частоты этот 0 защёлкнется, и через некоторое время на выходе "девушки" сформируется +1, и так далее.
Ниже показана принципиальная схема. Триггер спаян на одной платке, "девушка" - на другой. На плате триггера оказались незадействованными 2 инвертора из состава К561ЛН2. Их я решил применить для индикации "состояния триггера" на двухцветном светодиоде. Сложность в том, что микросхемы К561 у меня получают питание -1,35 и +1,35 вольта (суммарно 2,7), при этом по уровню около +1 вольта должен зажигаться зелёный, а по -1 вольту - красный, в противном случае не должен гореть ни один. Этим светодиодам нужно около 2 вольт, чтобы зажечься, поэтому они были подключены "по мостовой схеме". Единственное, в этой схеме я забыл ещё показать резистор от первого выхода инвертора к общему проводу (GND), для обеспечения стабильного нулевого уровня. Методом проб и ошибок я обнаружил, что здесь достаточно вообще 150 кОм, и на центральном, нулевом уровне (0, он же НЕ ЗНАЮ) ни один светодиод гореть не будет. Но впоследствии будут ставить поменьше, как минимум 100 кОм.
Ещё здесь не видно токоограничивающих резисторов - а они и не нужны, на таком низком напряжении транзисторы ещё не могут толком открыться, так что ток ограничен ими. Впрочем, и здесь, наверное, я потом внесу коррекцию. Когда троичный счётчик, наконец, заработал от тактовой частоты, я ожидал увидеть жёлтое свечение (красный + зелёный по аддитивной схеме цветопередачи), но увидел зелёное - почему-то зелёный ярче горит. Чтобы выровнять их по яркости, последовательно с одним из кремниевых диодов КД522 я всё-таки воткну резистор.
Но прежде чем собрать эту схему, я раз за разом испытывал её компоненты по отдельности. Двухступенчатый триггер был разбит на два прозрачных. Первое их испытание было в двоичном режиме, как двухбитный счётчик Грея. И, как показала практика, не зря! Попила моей кровушки микросхема К561КТ3, хотя пару тузов она ещё припасла в рукаве...
Далее, я впаял к выходу каждого инвертора по резистору 2,7 кОм, это один из вариантов получения троичности в К561ЛН2 - питание 2,7 вольта + резисторы 2,7 кОм, см исследуем троичный КМОП инвертор, а также к 2 "лишним" инверторам подключил светодиод.
И вот первый успех, защёлкивание значения по нажатию кнопки "clk" (подача одиночного импульса):
Далее я, наконец, соединил между собой две половинки, чтобы получить непрозрачный триггер, т.е срабатывающий по фронту. Если подавать на него сигнал с рычажка, то всё работает. Но вся прелесть непрозрачного триггера в том, что можно соединять входы и выходы, не боясь, что в момент записи нового значения у нас пропадёт выходное, и мы застрянем где-то посередине (или самовозбудимся).
Для упрощения, я подсоединил вход триггера к его же инверсному выходу и ожидал "смены полярности" при каждом нажатии на кнопку, т.е +1 сменится на -1, а тот снова на +1, и так далее. Но увы, первое же нажатие кнопки "сбросило" его в ноль, и так он в нуле и остался.
Вскоре стало ясно, в чём дело. Вот как отзывается выход триггера на фронт clk:

Задержка около 300 наносекунд. Возможно, даже, что здесь я "неправильный" триггер собрал, где от входа до выхода сигнал проходит через ЧЕТЫРЕ инвертора подряд. Но не суть важно. Вот как у меня, оказывается, выглядели прямой и инверсный сигналы clk:

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

Коррекция слева (запитать тактовую частоту примерно на 0,6 вольта больше, чем напряжения UD+ / UD-) была введена, когда оказалось, что К561КТ3 как-то хитро "защёлкивается" от чрезмерной амплитуды управляющих сигналов. Ну а теперь одну из двух половинок NE556 "вывели из игры", вместо них 4 логических элемента, соединённых параллельно. В КМОП такие параллельные соединения допустимы!
Оффтоп. А причина тому - повышение сопротивления канала МОП транзистора при разогреве, поэтому ток автоматически выравнивается между несколькими параллельными транзисторами. Если один взял больше тока, он стал сильнее других греться, сопротивление повысилось и ток распределился по более холодным. По той же причине до недавнего времени МОП транзисторы не страдали от вторичного пробоя. См. МОП, ты должен был побороть вторичный пробой, а не примкнуть к нему!
Посмотрим, как выглядят clk прямой и инверсный теперь:

Уже сильно лучше. И действительно, счётчик заработал в этом "двоично-троичном режиме":
Возможно, я не очень правильно про метастабильность упомянул. В одном из значений я прав, но применительно к этой технике обычно под метастабильностью подразумевается более конкретное явление, здесь не об нём речь.
Допаиваем "девушку", пробуем включить уже всё вместе - и ОПЯТЬ НИЧЕГО НЕ РАБОТАЕТ. Как оказалось, самовозбуд по питанию UΔ:

Как я и боялся, когда шину "нагрузили" керамическими конденсаторами, операционник "взбесился". На кабели их тоже напрямую обычно не нагружают, ставят "защитный" резистор и чуть более сложную обратную связь. Ладно, поставил тоже такой резистор 100 Ом, и ещё пару керамических по питанию самих операционников:

эх, если бы ИБП сдохнул на пару недель раньше, я бы питалово стенда сделал аккурат из его потрохов! Тут и три розетки в кассу - мне сейчас катастрофически их не хватает для всех осциллографов, паяльника, питания стенда, настольной лампы. А главное - совершенно безумная моща, так что два диода Шоттки + два больших электролита + 7805 + 7905, а от них тупо здоровенные потенциометры, ватт по 5 каждый. Никаких самовозбудов, о чём вы! На фоне своего родного нихрома он просто не почувствует, что туда ещё что-то подключили! Ну, что теперь поделаешь. Тоже полезный навык, эти ОУ приводить к послушанию.
В итоге самовозбуд устранил, но схема всё равно не заработала - сопля припоя соединила несколько ножек К176ЛП1. Убрал лишнее - и УРА:
https://rutube.ru/shorts/a2d6fdcec40b4c53ac68d348860d348e/?r=wd
Теперь посмотрим осциллограммы. Вот первая, которая "картинка для привлечения внимания":

Сверху clk, снизу выход "девушки", он же вход триггера. Только выбросы напрягают... Я сразу же поспешил повторно обвинить в этом NE556: там же выход на 200 мА, и при переключении наверняка очень нехилые сквозные токи проходят, вот они мне что-то просаживают. Уже начал искать, какой бы конденсатор ему по питанию воткнуть. Там висел керамический на 47 нФ, подумал что-нибудь вроде К53-1 вставить, красивые они, и в отличие от электролитов у них ESR (ЭПС) пониже. Но всё-таки ещё пошерудил осциллографом и обнаружил: НА ШИНАХ ПИТАНИЯ ВЫБРОСОВ НЕТ!
И на выходах триггера тоже всё чистенько:

Интересная картина: оба входа "девушки" без выбросов, а на выходе они каким-то образом появляются, аккурат на спаде clk, при том, что в "девушку" тактовая частота в принципе не заведена!

Выход триггера (сверху) и выход "девушки" (снизу). Необычное зрелище в цифровых схемах, фазовый сдвиг в 120°. А ведь какие-нибудь контроллеры бесколлекторных двигателей, где нужно формировать трёхфазные последовательности, могут оказаться ОЧЕНЬ ПРОСТЫМИ при реализации на троичной логике!
Наконец, дошло: это ВХОД ТРИГГЕРА НАПРЯЖЕНИЕ ПРОСАЖИВАЕТ! Там же стоят аналоговые ключи. Выходит перекрытие, когда вход буфера запитан одновременно от двух источников - и от своего собственного выхода, и от входа D, вот и происходит провал. Проверим догадку, между выходом "девушки" и входом триггера поставив резистор 100 кОм:

Ага, всё хорошо! Пора повысить тактовую частоту раз в 10:

Хоть сейчас в учебник.
Впрочем, на входе всё не так благостно:

Но пока работает. Это же СИНХРОННАЯ СХЕМА: она будет работать, покуда на входах триггеров напряжения будут успевать установиться к фронту clk, или, если точнее, за время tsu до него (setup time, для здешней элементной базы это что-то вроде десятка наносекунд).
И всё ж опять NE556 показывает свою несостоятельность для данного стенда:

Хотя отчасти это я слишком большой времязадающий конденсатор поставил, 10 нФ. Поэтому для повышения частоты приходится довольно маленькие резисторы ставить, и они заметно так подгружают выход. Он сваливается на 1,4 вольта (там сплошь npn транзисторы в выходном каскаде, поэтому в верхнем плече эмиттерный повторитель Дарлингтона, под нагрузкой просаживается хорошо так), из-за чего падает скважность, и в целом сигнал очень искажён. Видимо, один раз поделить частоту не помешало бы, для формирования ровного меандра. Но это уже не сегодня...
В общем, на тактовой частоте 170 кГц счётчик ещё работал, а при повышении до 330 кГц уже "сдох", начал время от времени импульсы пропускать. Но винить его сложно, ведь тактовая частота у нас стала такой:

С такими часами у кого угодно кукуха полетит!
Я уверен, рабочую частоту можно ещё повысить. Для этого нужен нормальный генератор тактовой частоты, ещё может правильно сфазировать clk и nclk, чтобы снизить сквозные токи (или, если речь об аналоговых ключах - кроссфейдинг?). Напряжения настроить. Сейчас у меня всё просто было: питающие +1,35 и -1,35 как для К561, так и для К176, и ещё +2,58 В для "девушки". Можно для К176 все приподнять, чуть позже ещё разок всё подрихтуем.
Что ж, год прошёл не совсем бездарно, хоть и не так продуктивно, как хотелось бы. Лично я прихожу к убеждению, что троичная логика на КМОП вполне реальна, а заодно, знаю ответ на вопрос "если это так здОрово и очень просто, почему никто до сих пор не сделал??" Одну половинку ответа уже давал. Вторая - а хрен сделаешь! Оно только задним числом просто. Граблей там понатыкано... И как-то так получилось, у нас радиолюбители страшно недолюбливали полевые транзисторы и КМОП в частности. Как оно работает, зачастую никого не учили, а ещё пугали статическим электричеством, и вообще биполярные как-то свои, родные, а тут подложки какие-то. А "шаг вправо, шаг влево", оно вообще чудит только в путь, с карманами этими, тиристорами повсюду расставленными...
PS. В процессе работы усмотрел уже ДВА приятных пряника троичных цепей:
1. Не нужны цепи глобального сброса. Питание снял, питание подал - все триггеры установились в ноль. Стоит об этом вспомнить - оказывается, что секция в 1 трит троичного счётчика занимает НА ТРИ ТРАНЗИСТОРА МЕНЬШЕ, чем двоичная на 1 бит! Ибо двоичному всяко нужен Reset, который делается превращением одного из двух инверторов в элемент И-НЕ / ИЛИ-НЕ, в каждом из двух прозрачных триггеров. А троичному это ни к чему.
2. Не страшны "висящие в воздухе" входы: два транзистора разом всяко не откроются, зверских сквозных токов не будет.
|
|
</> |
Консольные столики: стильные акценты в интерьере
База в Новороссийске после атаки подводного дрона
55 лет дебютному альбому Kraftwerk
Трудофф плоды
Новогодняя ярмарка на Московской площади 21 декабря 2025 года
Наше старое кино
Новогодний алфавит - "В" Витрины магазинов
«Золотой дух»: в каких случаях «деды» в советской армии не трогали новобранцев?
О Мексиканской красотке, русском клоне Гражданского кодекса США и здравом смысле

