nedoPC.org

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



Reply to topic  [ 312 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  Next
Микро-ЭВМ на КМ1801ВМ2 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
начал городить свой "стэнд" для тестового запуска ВМ2

Сверху-то симпатично,... а снизу что там у него? :wink:


Attachments:
VM2-stand-180218-2.jpg
VM2-stand-180218-2.jpg [ 155.93 KiB | Viewed 8737 times ]

_________________
:dj: https://mastodon.social/@Shaos
19 Feb 2018 17:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Макетка на удивление хорошо паяется без ошкуривания и лужения (и не смотря на отсутствие металлизации отверстий) - видимо при производстве сразу была обильно смазана канифолью :)

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


20 Feb 2018 09:21
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Вообще для формирования !RPLY надо кроме !DIN и !DOUT ещё и !SYNC задействовать т.к. в случе "безадресного чтения" нулевой !DIN есть, но ни нулевого !SYNC, ни нулевого !RPLY на диаграмме не обнаруживаются - значит надо вот так (заодно притянул смещение 0 как вариант для старта и !INIT):


Attachments:
vm2-rply-test-nand-sync.gif
vm2-rply-test-nand-sync.gif [ 4.42 KiB | Viewed 8710 times ]

_________________
:dj: https://mastodon.social/@Shaos
20 Feb 2018 22:12
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
"Стэндъ" сегодня :roll:


Attachments:
VM2-stand-180220.jpg
VM2-stand-180220.jpg [ 192.95 KiB | Viewed 8702 times ]
VM2-stand-180220-2.jpg
VM2-stand-180220-2.jpg [ 125.43 KiB | Viewed 8702 times ]
VM2-stand-180220-3.jpg
VM2-stand-180220-3.jpg [ 94.01 KiB | Viewed 8702 times ]

_________________
:dj: https://mastodon.social/@Shaos
21 Feb 2018 02:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Фигурно гнул ноги светодиодам, чтобы более-менее равномерно распределить 16 штук вдоль четырёх 74LS75, которые защёлкивают адрес и одновременно инвертируют, а светодиоды подключены к неинвертированным выходам - теперь можно как минимум начальный пуск сымитировать :roll:

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


21 Feb 2018 02:30
Profile WWW
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Shaos wrote:
Вообще для формирования !RPLY надо кроме !DIN и !DOUT ещё и !SYNC задействовать т.к. в случе "безадресного чтения" нулевой !DIN есть, но ни нулевого !SYNC, ни нулевого !RPLY на диаграмме не обнаруживаются - значит надо вот так (заодно притянул смещение 0 как вариант для старта и !INIT):

Для полноты картины можно добавить безадресное чтение вектора прерывания, когда DIN активен, IAKO активен, RPLY на них выдается, а SYNC неактивен.

(так вкусно детали смакуете, с картинками, что аж самому захотелось опус на параллельную тему замутить :) )


21 Feb 2018 06:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Mixa64 wrote:
так вкусно детали смакуете, с картинками, что аж самому захотелось опус на параллельную тему замутить

Ну так зачерпывай горсть 1801ВМ2 и - на стенд их! на стенд! :mrgreen:
Давненька мы баек про твой стендъ не читали, может он поприличнее стал с тех пор!
Посмакуем с картинками... 8) заодно мож и посмеемся... :wink:

_________________
iLavr


21 Feb 2018 06:18
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Lavr wrote:
Mixa64 wrote:
так вкусно детали смакуете, с картинками, что аж самому захотелось опус на параллельную тему замутить

Ну так зачерпывай горсть 1801ВМ2 и - на стенд их! на стенд! :mrgreen:
Давненька мы баек про твой стендъ не читали, может он поприличнее стал с тех пор!
Посмакуем с картинками... 8) заодно мож и посмеемся... :wink:

А, вы все про то.. Я уж и забыл. Та тема была хоть и паяльно-конструкторская, но оффтоп, поэтому и без подробностей. И раз настаиваете, поржать можно тут


21 Feb 2018 09:13
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Mixa64 wrote:
Shaos wrote:
Вообще для формирования !RPLY надо кроме !DIN и !DOUT ещё и !SYNC задействовать т.к. в случе "безадресного чтения" нулевой !DIN есть, но ни нулевого !SYNC, ни нулевого !RPLY на диаграмме не обнаруживаются - значит надо вот так (заодно притянул смещение 0 как вариант для старта и !INIT):

Для полноты картины можно добавить безадресное чтение вектора прерывания, когда DIN активен, IAKO активен, RPLY на них выдается, а SYNC неактивен.

и действительно - есть такое с вектором прерывания:

http://www.nedopc.org/forum/viewtopic.php?p=143271#p143271

значит надо по И собирать /SYNC и /IAKO, чтобы схему формирования /RPLY включать:

Attachment:
vm2-rply-test-nand-sync-iako.gif
vm2-rply-test-nand-sync-iako.gif [ 4.57 KiB | Viewed 8662 times ]


Mixa64 wrote:
(так вкусно детали смакуете, с картинками, что аж самому захотелось опус на параллельную тему замутить :) )

ну дык самодельная электронная порнуха - основная тема этого форума :twisted:

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


21 Feb 2018 09:30
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
А мой "стэндъ" сегодня ожил :mrgreen:

Attachment:
VM2-stand-180224.jpg
VM2-stand-180224.jpg [ 215.07 KiB | Viewed 8639 times ]


На плате с чёрным ВМ2, как я и писал раньше, четыре 4-х битных прозрачных защёлки 74LS75, где у каждого бита есть как прямой, так и инверсный выход - т.е. тут одновременно защёлкиваем адрес (по спаду сигнала !SYNC), инвертируем адрес (для дальнейшего его прямого использования) и подаём неинвертированые выходы (на которых находится инверснутый процессором адрес) на светодиоды для визуального отображения (диоды на питание т.к. они светятся когда на них идёт ноль). На маленькой макетной платке две 74F00 для формирования RS-триггера, который с помощью микропереключателя тактирует проц, и остаток подключен как инверторы для буферизирования и индикации на светодиодах. На макетной платке по больше DIP-переключатели (не используются) и светодиоды для дополнительной индикации (пока используется 4 для индикации CLCI, CLCO, !SYNC и !DIN). Кроме того на этой же платке прицеплен преобразователь из 9 вольт в 5 (платка красного цвета с большим светодиодом). !AR подключен прямиком к !SYNC. На !RPLY идёт !DIN через 2 инвертора (чисто на попробовать, т.е. никакой хитро-логической городёжки с тактированием, как на схемке чуть выше). ACLO и DCLO отключал по ходу пьесы руками - в результате тактирования обнаружилось, что при шине данных, которая всегда возвращает нули, на шине адреса чередуются #0000, #0002, #0078, #007A т.к. проц переходит в режим HALT по команде HALT, которая все нули...

P.S. Теперь можно проверять процыки! А ещё надо прицепить буфер, который по DIN будет выдавать команду NOP и тогда можно будет счётчик адресов узреть, который бежит по всему адресному пространству - как раз то, чего и хотел добиться Lavr своей проверялкой :roll:

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


24 Feb 2018 16:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
в результате тактирования обнаружилось, что при шине данных, которая всегда возвращает нули, на шине адреса чередуются #0000, #0002, #0078, #007A (т.к. проц переходит в режим HALT по команде HALT, которая все нули)
вобщем, как и на диаграмме начального пуска из заводской документации, CLCO меняет своё состояние (при отпущенном DCLO) по спаду каждого импульса входного тактирования CLCI (в данном случае при отпускании кнопки)

ниже мои записки состояния сигналов DIN, SYNC и CLCO, которые я фиксировал после каждого нажатия-отпускания кнопки тактирования (интересно, что нулевой SYNC в начале противоречит диаграмме):
Code:
; начальное состояние - DCLO и ACLO подключены к земле
такт   1: DIN=H SYNC=L CLCO=L
такт   2: DIN=H SYNC=L CLCO=L
такт   3: DIN=H SYNC=L CLCO=L
такт   4: DIN=H SYNC=L CLCO=L
такт   5: DIN=H SYNC=L CLCO=L
; подключаем DCLO к логической единице, ACLO остаётся подключенным к земле
такт   6: DIN=H SYNC=H CLCO=H
такт   7: DIN=H SYNC=H CLCO=L
такт   8: DIN=H SYNC=H CLCO=H
такт   9: DIN=H SYNC=H CLCO=L
такт  10: DIN=H SYNC=H CLCO=H
такт  11: DIN=H SYNC=H CLCO=L
такт  12: DIN=H SYNC=H CLCO=H
такт  13: DIN=H SYNC=H CLCO=L
такт  14: DIN=H SYNC=H CLCO=H
такт  15: DIN=H SYNC=H CLCO=L
такт  16: DIN=H SYNC=H CLCO=H
такт  17: DIN=H SYNC=H CLCO=L
такт  18: DIN=H SYNC=H CLCO=H
такт  19: DIN=H SYNC=H CLCO=L
; подключаем ACLO к логической единице, теперь процессор готов к работе
такт  20: DIN=H SYNC=H CLCO=H
такт  21: DIN=H SYNC=H CLCO=L
такт  22: DIN=H SYNC=H CLCO=H
такт  23: DIN=H SYNC=H CLCO=L
такт  24: DIN=H SYNC=H CLCO=H
такт  25: DIN=H SYNC=H CLCO=L
такт  26: DIN=H SYNC=H CLCO=H
такт  27: DIN=H SYNC=H CLCO=L
такт  28: DIN=H SYNC=H CLCO=H
такт  29: DIN=H SYNC=H CLCO=L
такт  30: DIN=L SYNC=H CLCO=H <<< цикл безадресного чтения
такт  31: DIN=L SYNC=H CLCO=L <<< цикл безадресного чтения
такт  32: DIN=L SYNC=H CLCO=H <<< цикл безадресного чтения
такт  33: DIN=H SYNC=H CLCO=L
такт  34: DIN=H SYNC=H CLCO=H
такт  35: DIN=H SYNC=H CLCO=L
такт  36: DIN=H SYNC=H CLCO=H
такт  37: DIN=H SYNC=H CLCO=L
такт  38: DIN=H SYNC=H CLCO=H
такт  39: DIN=H SYNC=H CLCO=L
такт  40: DIN=H SYNC=H CLCO=H
такт  41: DIN=H SYNC=H CLCO=L
такт  42: DIN=H SYNC=H CLCO=H
такт  43: DIN=H SYNC=H CLCO=L
такт  44: DIN=H SYNC=H CLCO=H
такт  45: DIN=H SYNC=H CLCO=L
такт  46: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #0000 (защёлкнуто)
такт  47: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт  48: DIN=L SYNC=L CLCO=H
такт  49: DIN=L SYNC=L CLCO=L
такт  50: DIN=L SYNC=L CLCO=H
такт  51: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт  52: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #0000 закончился
такт  53: DIN=H SYNC=H CLCO=L
такт  54: DIN=H SYNC=H CLCO=H
такт  55: DIN=H SYNC=H CLCO=L
такт  56: DIN=H SYNC=H CLCO=H
такт  57: DIN=H SYNC=H CLCO=L
такт  58: DIN=H SYNC=H CLCO=H >>> на шине адреса-данных появилось значение #0002
такт  59: DIN=H SYNC=H CLCO=L
такт  60: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #0002 (защёлкнуто)
такт  61: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт  62: DIN=L SYNC=L CLCO=H
такт  63: DIN=L SYNC=L CLCO=L
такт  64: DIN=L SYNC=L CLCO=H
такт  65: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт  66: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #0002 закончился
такт  67: DIN=H SYNC=H CLCO=L
такт  68: DIN=H SYNC=H CLCO=H
такт  69: DIN=H SYNC=H CLCO=L
такт  70: DIN=H SYNC=H CLCO=H
такт  71: DIN=H SYNC=H CLCO=L
такт  72: DIN=H SYNC=H CLCO=H
такт  73: DIN=H SYNC=H CLCO=L
такт  74: DIN=H SYNC=H CLCO=H
такт  75: DIN=H SYNC=H CLCO=L
такт  76: DIN=H SYNC=H CLCO=H
такт  77: DIN=H SYNC=H CLCO=L
такт  78: DIN=H SYNC=H CLCO=H
такт  79: DIN=H SYNC=H CLCO=L
; начали выполнять программу по адресу #0000, считанному ранее по вектору, полученному в процессе безадресного чтения
такт  80: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #0000 (защёлкнуто)
такт  81: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт  82: DIN=L SYNC=L CLCO=H
такт  83: DIN=L SYNC=L CLCO=L
такт  84: DIN=L SYNC=L CLCO=H
такт  85: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт  86: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #0000 закончился
такт  87: DIN=H SYNC=H CLCO=L >>> на шине адреса-данных появилось значение #0002 (адрес следующей инструкции)
такт  88: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #0002 (защёлкнуто)
такт  89: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт  90: DIN=L SYNC=L CLCO=H
такт  91: DIN=L SYNC=L CLCO=L
такт  92: DIN=L SYNC=L CLCO=H
такт  93: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт  94: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #0002 закончился
такт  95: DIN=H SYNC=H CLCO=L
; тут похоже начался режим HALT, т.к. ранее по адресу #0000 было прочитано слово #0000 (инструкция HALT)
такт  96: DIN=L SYNC=H CLCO=H <<< начался цикл безадресного чтения, чтобы определить откуда считывать вектор перехода на обработчик HALT
такт  97: DIN=L SYNC=H CLCO=L <<< цикл безадресного чтения
такт  98: DIN=L SYNC=H CLCO=H <<< цикл безадресного чтения
такт  99: DIN=H SYNC=H CLCO=L
такт 100: DIN=H SYNC=H CLCO=H
такт 101: DIN=H SYNC=H CLCO=L
такт 102: DIN=H SYNC=H CLCO=H
такт 103: DIN=H SYNC=H CLCO=L
такт 104: DIN=H SYNC=H CLCO=H
такт 105: DIN=H SYNC=H CLCO=L
такт 106: DIN=H SYNC=H CLCO=H
такт 107: DIN=H SYNC=H CLCO=L
такт 108: DIN=H SYNC=H CLCO=H
такт 109: DIN=H SYNC=H CLCO=L
такт 110: DIN=H SYNC=H CLCO=H >>> на шине адреса-данных появилось значение #0078
такт 111: DIN=H SYNC=H CLCO=L
такт 112: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #0078 (защёлкнуто)
такт 113: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт 114: DIN=L SYNC=L CLCO=H
такт 115: DIN=L SYNC=L CLCO=L
такт 116: DIN=L SYNC=L CLCO=H
такт 117: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт 118: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #0078 закончился
такт 119: DIN=H SYNC=H CLCO=L
такт 120: DIN=H SYNC=H CLCO=H
такт 121: DIN=H SYNC=H CLCO=L
такт 122: DIN=H SYNC=H CLCO=H
такт 123: DIN=H SYNC=H CLCO=L
такт 124: DIN=H SYNC=H CLCO=H >>> на шине адреса-данных появилось значение #007A
такт 125: DIN=H SYNC=H CLCO=L
такт 126: DIN=H SYNC=L CLCO=H <<< цикл чтения из памяти - на адресной шине #007A (защёлкнуто)
такт 127: DIN=L SYNC=L CLCO=L <<< пошёл DIN (/RD)
такт 128: DIN=L SYNC=L CLCO=H
такт 129: DIN=L SYNC=L CLCO=L
такт 130: DIN=L SYNC=L CLCO=H
такт 131: DIN=H SYNC=L CLCO=L <<< DIN закончился
такт 132: DIN=H SYNC=H CLCO=H <<< цикл чтения из адреса #007A закончился

и далее оно опять уходит в #0000 и #0010...

P.S. кстати тут RPLY формируется из DIN почти без задержек (задержка на 2 каскада 74F00) и присутствует при "безадресном чтении" в том числе - т.к всё более менее работает, то надо полагать, что такой постоянный RPLY никому особенно и не мешает...

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


24 Feb 2018 17:17
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
А ещё надо прицепить буфер, который по DIN будет выдавать команду NOP и тогда можно будет счётчик адресов узреть, который бежит по всему адресному пространству - как раз то, чего и хотел добиться Lavr своей проверялкой :roll:

Добавил пару инвертирующих буферов 74LS240 и 16 переключателей - NOP бегает :)

Attachment:
VM2-stand-180224-2.jpg
VM2-stand-180224-2.jpg [ 291.58 KiB | Viewed 8634 times ]


но т.к. инструкция NOP возвращается всегда при наличии DIN (даже в случае "безадресного чтения"), то адресный счётчик начинает выполнять программу с адреса 0x00A0 (0240) :roll:

на фотке можно видеть, что я добежал до адреса #00FE (0000000011111110)

P.S. третью "крону" уже доедаю :mrgreen:

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


24 Feb 2018 21:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Теперь можно проверять процыки!

Проверил все пластиковые корпуса, что у меня были (КР1801ВМ2) - четыре штуки 1992 и 1993 годов - все рабочие! :)
Попробовал также парочку в белой керамике (КМ1801ВМ2) - 1989 и 1990 - и вот они ведут себя совсем неадекватно :(
Как будто застревают на адресе #00A0...
P.S. Из шести керамических нашёлся таки один полностью рабочий (см.ниже) - остальные жжёный мусор... :evil:

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


24 Feb 2018 23:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Прогнал на керамике вариант с нулями - после того, как он обратился к "безадресному чтению" (причём DIN обнулился только на 2 такта вместо трёх), он остановился (только CLCO чередовался на выходе и всё) - я предположил, что это из-за лишнего RPLY на "безадресном чтении" - поставил элемент ИЛИ, чтобы !RPLY формировался только если есть одновременно !DIN и !SYNC - на этот раз оно таки дошло до чтения из памяти (правда не на 40х тактах, а на 80х), RPLY в этот раз сформировался, но после этого оно опять застряло - видимо для керамики RPLY таки надо тактировать и задерживать...

P.S. После нескольких проб с триггером откатился обратно на ИЛИ и подключился к более стационарному питанию - из 6 керамических ВМ2, что у меня накопились, нормально полетел только ОДИН, остальные либо вообще толком не входили в цикл, либо при счёте показывали не все ноги (AD могут выборочно выгорать?)...

Attachment:
VM2-stand-180225.jpg
VM2-stand-180225.jpg [ 245.73 KiB | Viewed 8614 times ]


P.P.S. Лабораторный блок питания показал, что исправные экземпляры потребляют 280...320 мА и практически не греются, а неисправные - 330 и выше, а один изобразил 450 мА

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


25 Feb 2018 01:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Подцепил DOUT на формирование RPLY и получил очень интересные результаты при наблюдении за поведением шины в процессе ручного прогона подпрограммы из прошивки МК-85 :roll:


Attachments:
VM2-stand-180225-2.jpg
VM2-stand-180225-2.jpg [ 398.52 KiB | Viewed 8624 times ]

_________________
:dj: https://mastodon.social/@Shaos
25 Feb 2018 22:21
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 312 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  Next

Who is online

Users browsing this forum: No registered users and 6 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:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.