nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 16:39



Reply to topic  [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next
8086 - проверка без приборов 
Author Message
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
newold86 wrote:
Не выдержал, встал и посмотрел:...
Процессор - Siemens 8086

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

Image

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

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

Операции NOP из очереди выполняет Операционное устройство, а его корреляцию с действиями Шинного интерфейса предсказать несколько сложно, поскольку это несколько независимые устройства в 8086.
Как пишут во многих источниках: предсказать поведение 8086 по тактам исполения команд довольно трудоемко, в отличие от привычных 8080, 8085, z80 и уж тем более 6502.


25 Nov 2014 14:28
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Post 
Значит, без приборов? А уж осциллограмм-то накидали! :o


26 Nov 2014 04:31
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Mixa64 wrote:
Значит, без приборов? А уж осциллограмм-то накидали! :o


Это из серии "если к вам неожиданно нагрянули гости, а в холодильнике ничего нет" :)

_________________
:dj: https://mastodon.social/@Shaos


26 Nov 2014 06:33
Profile WWW
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Mixa64 wrote:
Значит, без приборов? А уж осциллограмм-то накидали! :o

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

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

А то я тут читал, как кто-то торопливый брякнул "HLDA, значит, на три ТТЛа хватает, IO/M - нет?" и ведь попал пальцем в небо... :wink:


26 Nov 2014 10:51
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Продолжаем сборку и проверку без приборов платы на микропроцессое КР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:
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. Неизвестно, правда, где у него по старту стек, но у нас все-равно
и памяти-то ему под стек никакой нет... Так что для теста - подойдёт.


02 Dec 2014 11:35
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
На следующем этапе добавим в схему устройство пошагового прохождения "программы".


Увеличить

Для этого в одновибраторе заменяем ёмкость С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


02 Dec 2014 13:07
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Традиционная схема это на двух гейтах ЛА3 включенных в виде триггера и кнопка-переключатель...

_________________
:dj: https://mastodon.social/@Shaos


02 Dec 2014 13:37
Profile WWW
Banned
User avatar

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


02 Dec 2014 14:11
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Ну а теперь перейдём к самому "вкусному", к тому, где нам этот одновибратор понадобится,
а, собственно, это "вкусное" и было основной причиной того, что я взялся воплотить этот
совершенно не нужный мне проект с процессором КР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 светодиодов.

И тут выяснилась весьма интересная и забавная вещь, что сконструированная мной система и безо
всякого ОЗУ позволяет выполнять программы, хотя и с некоторыми ограничениями, но позволяющие
вынести суждение об исправности уже собранной микропроцессорной системы.
Но о программах я расскажу далее...


04 Dec 2014 13:00
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Софтом для этого поделия для меня первоначально послужила вот эта весьма полезная программа:

LPT_VB.exe - Parallel port monitor by Nail Fraser.

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

---------Image

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

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

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

Ну и вот что у меня получилось:
Code:
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 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:
          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, - а по нему, конечно же, не будет возврата.


04 Dec 2014 14:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
newold86 wrote:
Не поленился, и посмотрел на осциллографе...

Image


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

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

-------Image

_________________
iLavr


07 Dec 2014 09:52
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Post 
Lavr wrote:
... у Вас вот этот осциллограф самодельный или фирменный какой?


http://www.tek.com/oscilloscope/mso3000-dpo3000


07 Dec 2014 11:15
Profile
Supreme God
User avatar

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

-----Image

Можно и любым другим приёмником, поскольку у меандра широкий спектр, он
слышен даже в ФМ (ЧМ) диапазоне, по крайней мере включение довольно ощутимо
регистрируется моим приемником, по которому я дома слушаю ФМ станции.
Частоты подходящих для схемы кварцев попадают в диапазон коротких волн с частотой
от 3 МГц (длина волны 100 м) до 30 МГц (длина волны 10 м).

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

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

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


И еще один момент... на мой взгляд, вот здесь ошибка в схеме подключения регистра ИР82:
Attachment:
8086Test4err.gif
8086Test4err.gif [ 22.67 KiB | Viewed 14837 times ]

Ошибка может быть незаметна, если в порт постоянно что-то пишут - светодиоды не успевают "погаснуть" для глаз,
а может быть коллега Stan просто ошибся, рисуя схему.

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


P.S. Посчитал, идея вполне работоспособная с эмиттерным повторителем - его включать,
как в самодельных компьютерах формируют полный телевизионный сигнал.

Attachment:
TV_out.gif
TV_out.gif [ 2.66 KiB | Viewed 14837 times ]

Синус, конечно, будет не ахти какой синусоидальный, но при такой аппроксимации - вполне ничего...

_________________
iLavr


Last edited by Lavr on 16 Oct 2016 09:37, edited 4 times in total.



16 Nov 2015 11:01
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Lavr wrote:
Но они неудобны при макетировании на беспаечной макетке - входы и выходы идут подряд на каждой стороне.
У ИР82 - входы с одной стороны, а выходы - с другой...
А если 1533ИР33?


16 Nov 2015 21:21
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
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

_________________
:dj: https://mastodon.social/@Shaos


17 Nov 2015 10:18
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.