8086 - проверка без приборов

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

newold86 wrote:Не выдержал, встал и посмотрел:...
Процессор - Siemens 8086

Кстати, BHE все время находится в низком (активном) уровне, вообще без переходов в высокий. Я даже засомневался, но с прошивкой для мигания светодиодом BHE периодически сбрасывается.
Image

Именно так: BHE все время находится в низком (активном) уровне, вообще без переходов в высокий - ну хоть процеcсоры ведут себя идентично, судя по осциллограмме, чего не скажешь о задающих генераторах.

Я Вам очень благодарен за сравнение - я тут закопался в чтениe мануалов и пришел к выводу, что моя изначальная предпосылка, пожалуй, была неверна.

Операции NOP из очереди выполняет Операционное устройство, а его корреляцию с действиями Шинного интерфейса предсказать несколько сложно, поскольку это несколько независимые устройства в 8086.
Как пишут во многих источниках: предсказать поведение 8086 по тактам исполения команд довольно трудоемко, в отличие от привычных 8080, 8085, z80 и уж тем более 6502.
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

Значит, без приборов? А уж осциллограмм-то накидали! :o
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mixa64 wrote:Значит, без приборов? А уж осциллограмм-то накидали! :o
Это из серии "если к вам неожиданно нагрянули гости, а в холодильнике ничего нет" :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Mixa64 wrote:Значит, без приборов? А уж осциллограмм-то накидали! :o
А это мы просто сверили отечественный КР1810ВМ86 с зарубежным Siemens 8086, поскольку в задающих генераторах разночтения были обнаружены, а ведь элементная база этого комплекта у людей может быть на руках самая разнообразная....
Так что к отладке без приборов это непосредственного отношения не имеет.

Ну и чтобы объяснить людям, как это запустить без приборов, вполне нелишне посмотреть самому тщательнее, как схема по приборам правильно работает, или где-то неправильно.

А то я тут читал, как кто-то торопливый брякнул "HLDA, значит, на три ТТЛа хватает, IO/M - нет?" и ведь попал пальцем в небо... :wink:
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Продолжаем сборку и проверку без приборов платы на микропроцессое КР1810ВМ86...
Подключаем шинные формирователи на 580ВА86 и буферы адреса - 580ИР82 - как на схеме.


Увеличить

На входы шинных формироватей цепляем те же самые резисторы, изображающие команду NOP.
Теперь их номиналы не так критичны, как непосредственно на шине процессора, поэтому можно
любые и разные в пределах 100 Ом... 4.7 кОм.
Я поставил те же, что уже были на плате - по 4.3 кОм.

На элементах DD2.1, DD2.2 собираем одновибратор для формирования тактов задержки процессора.
С номиналом С3 = 1uF (микрофарад) диоды на адресных линиях А15...А12 индицируют перебор
процессором адресов и этот процесс визуально заметен.
Если подключить эти диоды к младшим адресам - моргание их уже не заметно и просто сливается
в тусклое свечение.
Увеличение ёмкости С3 до 100uF заметно скорость не сбавляет, но при таких номиналах и выше
одновибратор начинает работать неустойчиво, поэтому далее организуем другой тест.

А на этом этапе есть смысл проверить исполнение процессором некоторых команд, что позволит
убедиться в правильной работе формирователя сигналов /IORD, /IOWR, /MWR.

Для этого на выводы /IOR, /IOW подключаем триггеры К155ТМ2, включенные как счетные (/Q соединен с D),
а на шине данных D0...D7 резисторами изображаем следующие команды:

Code: Select all

E4 -  IN AL,port8: 1110.0100b
E5 -  IN AX,port8: 1110.0101b
E6 - OUT AL,port8: 1110.0110b
E7 - OUT AX,port8: 1110.0111b
на линиях D8...D15 так и оставим 90Н - как было.
Получится: IN AL,90Н (IN AX,90Н) или OUT AL,90Н (OUT AX,90Н). При этом заморгают диоды на выходах одного или другого триггеров.

Так же можно проверить и вывод /MWR, но для этого нужен 1..2 байтный код, который будет записывать в память.
Тут хорошо подходят команды группы PUSH хх: 50Н ... 57Н. Выставляем эти коды резисторами на шине данных D0...D7.
А сигнал /MWR подключаем на вход С одного из триггеров.
Процессор будет выполнять: PUSH хх, NOP. Неизвестно, правда, где у него по старту стек, но у нас все-равно
и памяти-то ему под стек никакой нет... Так что для теста - подойдёт.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

На следующем этапе добавим в схему устройство пошагового прохождения "программы".


Увеличить

Для этого в одновибраторе заменяем ёмкость С3 = 1uF на 360 pF, добaваляем кнопку
с резистором R8, RS-триггер и цепь его сброса: R6, R7, C4, VD3.
Светодиод VD9 своим свечением индицирует, что процессор находится в состоянии ожидания - WAIT.
Он не очень информативен, т.к. процессор срабатывает очень быстро и погашенный диод
глаз не успевает заметить.
Я добавил диод лишь для того, чтобы никто не запутался с RS-триггером: если диод горит,
то всё правильно - процессор в основном ждёт.

В принципе у кого есть место на плате (а у меня на макетке оно очень ограниченно)
всю цепь сброса: R6, R7, C4, VD3, обведенную синим контуром, можно заменить на
точно такой-же одновибратор, как у кнопки STEP.

Работает вся схема так: процессор первым же обращением к памяти сигналом /MRD коротким
импульсом, сформированным цепью сброса: R6, R7, C4, VD3 сбрасывает RS-триггер в состояние "0"
по выходу RDY1, и останавливается, выполняя такты ожидания WAIT.
Нажимая на кнопку STEP, коротким импульсом одновибратора мы выводим процессор из этого
состояния, он считывает слово с шины данных, быстро исполняет считанный код, увеличивает
программный счетчик и следующим обращением сигналом /MRD за кодом операции снова
сбрасывает RS-триггер и снова останавливается, выполняя такты ожидания WAIT.

Теперь можно подключать светодиоды на младшие адресные линии и пошагово смотреть,
как процессор их меняет, нажимая на кнопку STEP.
Адресная линия А0 всегда = "0", т.к. процеcсор читает код операции словами по 2 байта.

В пошаговом режиме можно проследить нет ли замыканий на всех шинах, и можно поэкспериментировать,
выставляя на шину данных различные коды команд.
Команды можно выставлять резисторами те, что упоминали выше, а можно попробовать
и другие с одним ограничением: код операции не должен превышать 2 байта.
В принципе - можно и любые другие команды, но тогда на следующем шаге код команды
надо будет изменить резисторами на необходимый.

Кнопка STEP в данной схеме не защищена от дребезга контактов, поэтому кнопку желательно
поставить "хорошую" - хотя бы вот такую, как у меня:

Image

Иначе процессор будет проскакивать по нескольку шагов. Он - шустрый, он успевает! :D

Можно собрать и более традиционную схему пошагового прохождения, но одновибратор
может нам понадобиться в дальнейшем для формирования состояния WAIT при обращени
процессора к "медленным" устройствам ввода-вывода, когда остальная пошаговая схема
будет уже не нужна.


P.S. Две трети большой макетки уже занято всего лишь стандартной обвеской процессора.
Поэтому никогда и не хотелось делать что-то на КР1801ВМ86. И поедает это всё вместе уже
порядка 1.5 А ! :o А то еще кто-то тут говорил, что К580ВМ80 имеет сложную обвеску.
Да он при желании - "голый" работать будет!
:D
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Традиционная схема это на двух гейтах ЛА3 включенных в виде триггера и кнопка-переключатель...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Ну а здесь - кнопка замыкатель. Поэтому и сделан формирователь короткого импульса, который нам далее и сам по себе понадобится.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Ну а теперь перейдём к самому "вкусному", к тому, где нам этот одновибратор понадобится,
а, собственно, это "вкусное" и было основной причиной того, что я взялся воплотить этот
совершенно не нужный мне проект с процессором КР1810ВМ86. :D

Скажем так, что ситуация это довольно частая - собрали проект на каком-либо процессоре,
хочется попробовать его работу, но тут надо "прошить" ПЗУ, а "прошивать" в ПЗУ пока ещё
и нечего, а у кого-то и "прошивалки" нет, а, может быть, и ПЗУ подходящей нет...

В этом случае и может оказаться полезным способ, который здесь на форуме как-то обсуждали,
но никто не решился его воплотить. А способ мне понравился, и я решил его в значительной мере
улучшить, чтобы он не нуждался ни в каких дополнительных переключениях, а работал в качестве
"эмулятора ПЗУ", хотя и с некотороми ограничениями.

Основная идея следующая: раз уж у нас есть схема пошагового режима, управляемая кнопкой STEP,
и мы можем выполнять коды, выставляемые резисторами на шине данных, то почему бы не поручить
эту операцию выполнять параллельному порту другого коппьютера?
Всё равно в конструкции таких SBC-поделок обычно закладывается отладочный последовательный
интерфейс, через который идёт обычно загрузка программ пользователя. Но этот интерфейс нуждается
в программной поддержке, а у нас будет загрузка и исполнение кодов безо всякого ПО на плате.

Смотрим принципиальную схему:


Увеличить

Я ввёл 2 дополнительных регистра типа 580ИР82, которые своими тристабильными выходами подключены
к шине данных системы, а на входы их через разряды данных LPT-коннектора можно выдавать байты и
фиксировать их отдельными стробами - /AUTOF и /STROBE, соответственно.

После того, как старший и младший байты кода операции зафиксированы в регистрах, подается
сигнал INIT в виде строба низкого уровня, который выводит процессор из состояния WAIT,
процессор считывает из регистров 2 байта кода, исполняет их, если их достаточно, и снова
обращется к памяти за новым кодом или продолжением предыдущего кода. Этим он снова загоняет
себя в состояние WAIT, перебросив RS-триггер, но этот же триггер снимает активный сигнал
BUSY
для LPT-порта.
Теперь снова можно подать процессору через регистры младший и старший байты нового кода, и снова
разрешить его работу стробом INIT, управляющим через одновибратор пошаговым RS-триггером.

Вся прелесть решения заключается в том, что я использовал адресную линию А15 в качестве селектора
адресного пространства в сегменте.
По адресам 8000H-0FFFFH А15 = "1" и эта логическая "1" пропускает сигнал /MRD на пошаговый RS-триггер.
А в диапазоне 0000H-7FFFH процессор этим триггером не тормозится, поскольку А15 = "0" и /MRD не
командует триггером, а значит не загоняет себя в состояние WAIT.

Значит, получается следующая карта памяти в пределах одного сегмента:
В нижних 32 КБайт можно расположить ОЗУ, которое будет работать самым обычным образом.
В верхних 32 КБайт процессор натыкается на "псевдо-ПЗУ" и работает в старт-стопном режиме.
В принципе такую дешифрацию можно изменить, применив дополнительные схемы селекции, но я
был очень ограничен местом на макетке.

Итак, процессор КР1810ВМ86 стартует с адреса 0FFF0H в старшем сегменте и там он сразу попадает
в режим чтения-исполнения команд по интерфейсу LPT, которыми мы можем загрузить программу
в нижние 32 КБайт ОЗУ и передать на них управление, где программа выполняется самым обычным образом.
Для того, чтобы выполнение команд было как-то визуально заметно, я временно добавил в систему
один единственный порт вывода на регистре типа 580ИР82, в который мы попадаем командами OUT
по любому адресу из 65536 возможных.
На выходе этого порта визуализацию записанных в него данных осуществляют 8 светодиодов.

И тут выяснилась весьма интересная и забавная вещь, что сконструированная мной система и безо
всякого ОЗУ позволяет выполнять программы, хотя и с некоторыми ограничениями, но позволяющие
вынести суждение об исправности уже собранной микропроцессорной системы.
Но о программах я расскажу далее...
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Софтом для этого поделия для меня первоначально послужила вот эта весьма полезная программа:

LPT_VB.exe - Parallel port monitor by Nail Fraser.

У меня довольно старый вариант, но, говорят, что у автора (или авторов) есть варианты этого
монитора LPT-портов даже для Windows 7 (64).
Я этого не проверял, мне хватило для старта и своего экземпляра, но, думаю, кому понадобится,
найти подходящий экземпляр этой программы будет нетрудно.

---------Image

Потыкался я мышью в биты данных и стробы, транслируя коды при помощи вьюера HIEW, поскольку
очень мне самому не терпелось всё это увидеть в работе...
И навскидку оно всё очень неплохо даже и заработало! Хотя некоторые погрешности были, но это
уже учтено мной в схеме, показанной здесь выше.

А поскольку мне очень хотелось скорее увидеть всё в динамике (а сделал я это всё ещё в эти
выходные - на рисование схемы больше времени ушло
:wink: ), то я решил не связывать себя всякими
драйверами Винды, хорошими или менее хорошими, а запустить это всё под "голым DOS", дабы
быть уверенным, что если что работает не так, как хотелось, то это мои ошибки, а не происки
коварства Винды, пытающейся помешать мне (или помочь) работать с портами.

Поэтому я выбрал даже не компилятор, а интерпретатор QBasic, который раньше даже был в
дистибутивах Винды, вроде как до версии 98. Ну, благо, критичного ничего в протоколе работы
с этой железкой нет.

Ну и вот что у меня получилось:

Code: Select all

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> COD2LPT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'

     DECLARE SUB SETHIGH (WORD%)
     DECLARE SUB SENDLOW (WORD%)
     DECLARE SUB SETINIT ()
     DECLARE SUB DELAY (TIME!)

     DEFINT A-Z
     DIM SHARED PRTRBASE, PRTSTATS, PRTDRIVE AS INTEGER

     SCREEN 0: WIDTH 80, 25: CLS

'----------------------------------- ищем базовый адрес LPT1
 DEF SEG = &H40              '---- указываем на область BIOS
   PRTRBASE = PEEK(9) * 256 + PEEK(8) '--- адрес регистра данных, базовый  LPT1
 DEF SEG
   PRTSTATS = PRTRBASE + 1 '--- адрес регистра статуса
   PRTDRIVE = PRTRBASE + 2 '--- адрес регистра управления
   PRINT HEX$(PRTRBASE); "H, "; HEX$(PRTSTATS); "H, "; HEX$(PRTDRIVE); "H "'---
DO: LOOP WHILE INKEY$ = ""
CLS
   OUT PRTDRIVE, INP(PRTDRIVE) AND &HFC '--- /STROBE = 1, /AUTO = 1
   OUT PRTDRIVE, INP(PRTDRIVE) OR &H4 '--- INIT = 1
DO
   SETHIGH (&H55) '--- MOV AL,55H
   SENDLOW (&HB0)
   SETINIT

   SETHIGH (&HEA) '--- NOP, JMP FAR 08000H
   SENDLOW (&H90) '--- чтобы не уйти в нижние 32 Кбайт
   SETINIT

   SETHIGH (&H80)
   SENDLOW (&H0)
   SETINIT

   SETHIGH (&H0)
   SENDLOW (&H0)
   SETINIT

   SETHIGH (&HFF) '--- OUT 0FFH,AL
   SENDLOW (&HE6)
   SETINIT

   SETHIGH (&HFF) '--- OUT 0FFH,AL
   SENDLOW (&HE6)
   SETINIT
   DELAY (.2)     '--- задержка по таймеру

   SETHIGH (&HAA) '--- MOV AL,0AAH
   SENDLOW (&HB0)
   SETINIT

   SETHIGH (&HEA) '--- NOP, JMP FAR 0F000H
   SENDLOW (&H90) '--- чтобы "поморгать" светодиодами
   SETINIT        '--- старших линий адреса

   SETHIGH (&HF0)
   SENDLOW (&H0)
   SETINIT

   SETHIGH (&H0)
   SENDLOW (&H0)
   SETINIT

   SETHIGH (&HFF) '--- OUT 0FFH,AL
   SENDLOW (&HE6)
   SETINIT

   SETHIGH (&HFF) '--- OUT 0FFH,AL
   SENDLOW (&HE6)
   SETINIT
   DELAY (.2)     '--- задержка по таймеру

   LOCATE 1, 1
   PRINT "---------------------------------------------------"
LOOP WHILE INKEY$ <> CHR$(&H1B) '--- выход по клавише [ESC]

   END
'------------------------SUBROUTINES---------------------------
SUB DELAY (TIME!)
       TIMER ON
        Start! = TIMER
        DO
        LOOP UNTIL TIMER > Start! + TIME! ' = .1
       TIMER OFF
END SUB

SUB SENDLOW (WORD%)
    OUT PRTRBASE, WORD%
    OUT PRTRBASE, WORD%

    OUT PRTDRIVE, INP(PRTDRIVE) OR &H1 '--- /STROBE = 0
    OUT PRTDRIVE, INP(PRTDRIVE) OR &H1 '--- /STROBE = 0

    OUT PRTDRIVE, INP(PRTDRIVE) AND &HFE '--- /STROBE = 1
    OUT PRTDRIVE, INP(PRTDRIVE) AND &HFE '--- /STROBE = 1
END SUB

SUB SETINIT
    PRINT HEX$(INP(PRTSTATS) AND &H80); "--> ";

    OUT PRTDRIVE, INP(PRTDRIVE) AND &HFB '--- INIT = 0
    OUT PRTDRIVE, INP(PRTDRIVE) AND &HFB '--- INIT = 0

    PRINT HEX$(INP(PRTSTATS) AND &H80); "-__ ";
DO
  Key$ = INKEY$  '--- выход по клавиатуре если железо зависло
  Stat = INP(PRTSTATS) AND &H80  '--- "слушаем" BUSY
  PRINT "-";
LOOP WHILE ((Key$ = "") AND (Stat = 0))

    OUT PRTDRIVE, INP(PRTDRIVE) OR &H4 '--- INIT = 1
    OUT PRTDRIVE, INP(PRTDRIVE) OR &H4 '--- INIT = 1
    PRINT HEX$(INP(PRTSTATS) AND &H80); "  "
'DO
'Key$ = INKEY$ '--- для пошагового выполнения кодов "программы"
'LOOP WHILE Key$ <> CHR$(32) '--- по нажатию на ["Пробел"]
END SUB
'------------------------SUBROUTINES END---------------------------
Двойные обращения к портам инструкцией OUT должны по идее воплотить следующий
механизм программирования вывода:

Code: Select all

          out    dx,al
          jmp    short $+2
          out    dx,al
Так советуют работать с выводом на процессорах х86, если задержки при обращении
к порту нет, или она недостаточна.
А по осциллографу сигналы LPT фронтами не ахти и весьма шумные, поэтому я их
и притянул к +5В и пропустил через вентили.
Кстати, на схеме не отразил, но и линии данных с LPT тоже притянуты резисторами
1.2 кОм
к +5В питания.

Программа выводит в порт попеременно сигнатуры 55Н, 0ААН, что и отображает
следующая фотография:

Image

Предвижу замечания типа, что LPT-порт сейчас фиг где найдёшь, но видел я здесь,
что Tronix нашел, когда понадобилось - это во-первых...

А во-вторых, я продумывал эту железку, чтобы можно было использовать ЛЮБЫЕ
переходники
типа USB-2-LPT, даже те, что не имеют номеров портов и не дают
"поморгать" отдельными битами. Но они же протокол Centronics воплощают понятным
для принтеров образом - а этого, как мне кажется, вполне достаточно в дальнейшем.


P.S. Я себе, конечно же, и ещё управляющих программ написал, в том числе и с чтением
кодов из файла, но не думаю, что они здесь будут интересны. Из того, что приведено
выше, основной принцип понятен, и каждый может написать себе сам с любимым компилятором
и привычными библиотеками работы с портами.
Единственное, что следует помнить при работе с "псевдо-ПЗУ" - программа должна быть
выровнена на слово
, программа выполняется линейно, что бы мы не писали в качестве
JMP или CALL, - а по нему, конечно же, не будет возврата.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

newold86 wrote:Не поленился, и посмотрел на осциллографе...

Image
newold86, а у Вас вот этот осциллограф самодельный или фирменный какой?

А то попадалось мне как-то по пути довольно похожее изделие...

-------Image
iLavr
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Lavr wrote:... у Вас вот этот осциллограф самодельный или фирменный какой?
http://www.tek.com/oscilloscope/mso3000-dpo3000
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 8086 - проверка без приборов

Post by Lavr »

Stan wrote:Мультивибратор на К155ЛА3 формирует меандр в звуковом диапазоне частот.
Его работу на слух контролируем по пьезо-спикеру или высокоомному телефону
типа "Тон" или "Октава" (у меня был последний - 1700 Ом).
Телефон нужен просто, чтобы подобрать генерацию в низкочастотном диапазоне
на слух из интервала 400...1000Гц.
Эта частота "модулирует" (а на самом деле формирует пачки импульсов)
частоту, сформированную задающим генератором КР1810ГФ84, и её можно легко
услышать по китайскому приемнику с частотомером, которых полно в разных
ларьках.

-----Image

Можно и любым другим приёмником, поскольку у меандра широкий спектр, он
слышен даже в ФМ (ЧМ) диапазоне, по крайней мере включение довольно ощутимо
регистрируется моим приемником, по которому я дома слушаю ФМ станции.
Частоты подходящих для схемы кварцев попадают в диапазон коротких волн с частотой
от 3 МГц (длина волны 100 м) до 30 МГц (длина волны 10 м).
Вот эта затея с приемником мне дюже понравилась, и когда я собирал свой Nedo-"Специалист" на UB880, то специально не пользовался осциллографом, хотя и купил USB-приставку...
Что неприятно при измерении частоты приемником - не всегда основная частота и гармоники попадают в границы вещательных диапазонов.
Я призадумался, как это побороть, и, как мне кажется, нашел довольно простое решение:
есть такая чисто цифровая несложная схема: Преобразователь меандра в синусоиду

-----Image
Операционник на 8...16 МГц нужно заменить ВЧ транзистором, включенным как эмиттерный повторитель.
И с эмиттера через емкость уже цеплять провод-антенну.

Основной кайф от этой схемы, что на выходе она выдает псевдо-синус с частотой Fвх/3.
Значит повышается вероятность услышать генератор в вещательном диапазоне.


И еще один момент... на мой взгляд, вот здесь ошибка в схеме подключения регистра ИР82:
8086Test4err.gif
Ошибка может быть незаметна, если в порт постоянно что-то пишут - светодиоды не успевают "погаснуть" для глаз,
а может быть коллега Stan просто ошибся, рисуя схему.

Я тоже чуть было не совершил похожую ошибку, поскольку в своей схеме на UB880 хотел изначально поставить регистры ИР22, ИР23 - они жрут меньше.
Но они неудобны при макетировании на беспаечной макетке - входы и выходы идут подряд на каждой стороне.
У ИР82 - входы с одной стороны, а выходы - с другой, но сигналы управления отличаются немного (даже у ИР22 от ИР23).


P.S. Посчитал, идея вполне работоспособная с эмиттерным повторителем - его включать,
как в самодельных компьютерах формируют полный телевизионный сигнал.
TV_out.gif
Синус, конечно, будет не ахти какой синусоидальный, но при такой аппроксимации - вполне ничего...
You do not have the required permissions to view the files attached to this post.
Last edited by Lavr on 16 Oct 2016 09:37, edited 4 times in total.
iLavr
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: 8086 - проверка без приборов

Post by jdigreze »

Lavr wrote:Но они неудобны при макетировании на беспаечной макетке - входы и выходы идут подряд на каждой стороне.
У ИР82 - входы с одной стороны, а выходы - с другой...
А если 1533ИР33?
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 8086 - проверка без приборов

Post by Shaos »

Image

Интересная штука надо попробовать - тока XOR можно на 4 NAND-ах построить:

http://www.eeweb.com/electronics-quiz/create-xor-logic-with-nand-gates

P.S. Если в схеме есть конденсатор в обратной связи операционника, то это уже на активный фильтр похоже...

P.P.S. Да так и есть - Low Pass Filter: http://www.swarthmore.edu/NatSci/echeeve1/Ref/FilterBkgrnd/Filters.html
Я тут за главного - если что шлите мыло на me собака shaos точка net