MiX, рецепт по реализации Reset подтверждаете на основе имеющейся схемы?
По просмотру платы, за формирование DCLO отвечают два транзистора которые возле батарейки. Далее на базу одного транзистора подключена R-C цепочка делающая задержку запуска. Для повторного запуска достаточно замкнуть конденсатор.
Конденсатор находится рядом с батарейкой (розовый).
Думаю кнопку как в УКНЦ туда воткнуть.
Возрождение БК0011М: pk-fpga.ru, forum.pk-fpga.ru
Продажа электронных компонентов >>тут<<
Datasheet не видел, увы. Только везде упоминание, что серия 1822 аналогична серии 1802.
- - - Добавлено - - -
У меня там опечатка - нужно переименовать PF_PN => PF_PB
- - - Добавлено - - -
Микросхема VC формирует старшие два бита адресе CA8 (выбор младшие/старшие байты палитры), CA9 (номер блока памяти памяти палитр — нижний/верхний), а также четыре младших бита адреса памяти палитры (либо пропускает туда биты VA0-VA3, либо устанавливает их в зависимости от видеорежима и текущего типа обмена с памятью)
Микросхемой V9 формируются сигналы CA4-CA6 (средние биты адреса памяти палитры), причём использует управление выходными буферами с Z состоянием для того, чтобы на резисторах R1, R2, R7 и R8 сделать мультиплексирование VD4-VD7.
* [Тут нужно заметить, что сигналы на этих резисторов похоже нужно повернуть по горизонтали зеркально, т.*к. VD4-VD7 подают на CA4-CA7, а не наоборот; тоже самое с резисторами R31,R30,R9,R29 — там выходные сигналы A1-A4 должны подаваться с левой стороны. И, кстати, по ТО резистор R7 находится в схеме начального пуска - видимо нужно поставить вместо R11].
Кроме того, на выходах RF15-RF17 реализован счетчик, но как о работает мне не нравится (RF15 один в один повторяет состояние RF17, зачем?), похоже здесь ошибка в прошивке. Нужно будет попробовать посмотреть содержимое других дампов этой микросхемы...
- - - Добавлено - - -
Немного про контроллер жесткого диска, вроде никому ненужный... Разработчики схемы видимо так хотели сэкономить один корпус, что поставили 8-ми битный двоичный счетчик D60 из К561 серии, а к ней и памяти отдельное питание +5V1 на фильтре R65/С27 (кстати почему не +4V9? А может это 537РУ10 на самом деле такая капризная к питанию?).
Переполнение счетчика (через C15) продвигает трёхразрядный счетчик в прошивке микросхемы P11 (выводы 17, 16 и 14).
В общем тут просится такая замена:
+(возможно там стоит убрать переплетение проводов, спрятав сигналы в шину, - снова разработчики печатной платы ради упрощения разводки линии шины данных и адресные переставили).Код:F => ~HDBUFCS (выборка микросхемы памяти буфера жесткого диска) F/2 => HDBUFA0 (адреса буфера жесткого диска) F/4 => HDBUFA1 F/8 => HDBUFA2 F/16 => HDBUFA3 F/32 => HDBUFA4 F/64 => HDBUFA5 F/128 => HDBUFA6 F/256 => HDBUFA7 P11 вывод 17 => HDBUFA8 P11 вывод 16 => HDBUFA9 P11 вывод 14 => HDBUFA10
- - - Добавлено - - -
Насчет пар диод+резистор - как я понимаю, реализуют они простую логику на два входа:
VD1+R10 => ИЛИ
VD6+R71 => И
VD7+R66 => ИЛИ
VD13+R24 => ИЛИ
Их бы сориентировать так, чтобы выход этой пары (соединение резистора и диода) находился справа, в остальные входы слева - как это было бы для элементов И/ИЛИ. Сейчас этому соответствует только пара VD1+R10. Можно даже в прямоугольник (в рамочку) их закатать для наглядности...
А вот думки про модули ОЗУ…
1) Пока я не очень понимаю зачем было вводить режим маскирования при записи в ОЗУ — довольно много оборудования под это ушло... Какой от этого профит программам-то? Прямого описания пока не видел, но могу предположить, что там что-то вроде такого: если некоторые поля (двух или 4 битные), в записываемых значениях в память нулевые, то они не прописываются в соответствующее поле, т.*е. там сохраняется прежний цвет. Это потребовало 4-х линий строба записи на каждый байт - в обычной памяти только один такой строб. Если эмулировать такое свойство на привычных планках памяти, то придётся использовать режим чтение-модификация-запись.
2) Ну зачем они в модуле памяти используют сигналы RAS1 и RAS2, т.*е. почему не RAS0 и RAS1? Откуда вообще взялась распиновка разъема XP1 модуля памяти? У нас ведь схема модуля M256 (кто-то видел модули M1024 или их схему?), сигналами RAS выполняется выбор конкретного модуля, но для M1024 нужна дополнительная адресная линия A9 — где она на разъеме? Что такие-то RAS-ы могут превращаться в A9? Какие-то ПЛМки специально устанавливали на сокеты для смены прошивки? (Как видно тут.
В формуляре на ПК11-16к пишут, что там используется память TC51100-12 или аналогичная (1Мх1), - действительно, отечественных чипов ёмкостью 1Мх1 вроде как не было, а напаять 4 комплекта РУ7-х на одну планку было бы сложно, разве что использовать чипы в корпусе ПМ: ,
- вот тогда все RAS-ы бы пригодились бы на одной планке (только тогда 4 такие планки не установить — нечем их выбирать).
3) Если делать свои модули, то резистор R2 нужно размножить на каждый из RAS-ов, но запаять только один. Чтоб не заниматься вандализмом с откусыванием выводов 20-23 разъема XP1.
Предлагаю на разъемах памяти (XP1 и RAM1-RAM4) сделать такую замену по названию сигналов разрешения записи пары бит данных:
Тогда можно более корректно обозначит эти сигналы в соответствии с сигналами на шине данных памяти (уже в основной схеме, а не в схеме модуля памяти):Код:WE0 => ~WE_0_1 WE1 => ~WE_2_3 WE2 => ~WE_4_5 WE3 => ~WE_6_7 RAS0 => ~RAS0 RAS1 => ~RAS1 RAS2 => ~RAS2 RAS3 => ~RAS3 CAS => ~CAS
Код:WE0 => ~WE_10_11 WE1 => ~WE_0_1 WE2 => ~WE_7_8 WE3 => ~WE_12_13 V5-F2 => ~WE_14_15 V5-F1 => ~WE_8_9 V5-F0 => ~WE_4_5 V5-F7 => ~WE_2_3
Про явно идентифицируемые счётчики в прошивках, из тех которые я пробовал моделировать на простых Си программках: Counters_V1V2_V4_V9.zip
1) Счётчик на выводах rf16, rf15, rf14, rf17 в V4 - используют 4 бита, чтобы крутить 6 разных состояний. Немного странно, т.к. достаточно было задействовать только 3 триггера:
2) Счётчик на выводах rf14, rf16, rf15, rf17 в V9 - используют 4 бита, но состояние выводов rf15 и rf17 полностью совпадает (что очень странно!):Код:| | 001 => 1111 -_-_-_-_-_-_ 17 002 => 1100 -_-_---_-_-- 14 003 => 1011 --__----__-- 15 004 => 1000 ----__----__ 16 005 => 0111 006 => 0110 далее повтор... 007 => 1111
Если использовать, например, такой вариант "new_v9_rf15 = !((!v9_rf17 && v9_rf15) || (v9_rf17 && !v9_rf15));", а он будет отличаться только одними битом в прошивке, то состояния будут такими (снова цикл на восемь состояний, которому достаточно трёх триггеров):Код:000 => 0000 001 => 1111 002 => 1100 003 => 1011 004 => 1000 005 => 0111 006 => 0100 007 => 0011 008 => 0000
3) Счётчик на выводах v2_rf17, v2_rf16, v1_rf14, v1_rf15, v1_rf16, !v1_rf17 (да, последний вывод нужно инвертировать, чтобы он был в той же полярности как другие выходы). Там ещё два триггера есть v2_rf15 и v2_rf14, их поведение зависит от сигнала i3, который сильно связан с выводом на экран (выглядит как смена приоритета когда не требуются данные для вывода на экран монитора):Код:000 => 0000 001 => 1111 (-1) 002 => 1110 (-2) 003 => 1101 (-3) 004 => 1100 (-4) 005 => 1011 (-5) 006 => 1010 (-6) 007 => 1001 (-7) 008 => 0000 (0)
Все эти счётчики выполняют обратный отчёт, иначе вычитающие или декрементирующие. Толи так проще в этих конкретных ПЛМка было сделать, то ли разработчикам как привычнее было, когда у них процессор весь с инверсными шинам. Кстати, почему бы не поставит инверсию над всеми сигналами приходящими на процессор? А за одно:Код:i, v2_rf15, (i3 = 0) v2_rf14, v2_rf17, v2_rf16, v1_rf14, v1_rf15, v1_rf16, !v1_rf17 v2_rf15, (i3 = 1) v2_rf14 Version: i3 = 0 i3 = 1 000 => 11 111111 => 11 001 => 10 111110 => 10 002 => 10 111101 => 10 003 => 10 111100 => 10 004 => 00 111011 => 00 005 => 01 111010 => 01 006 => 01 111001 => 01 007 => 11 111000 => 10 008 => 11 110111 => 10 009 => 01 110110 => 10 010 => 01 110101 => 10 011 => 11 110100 => 01 012 => 11 110011 => 01 013 => 11 110010 => 11 014 => 11 110001 => 01 015 => 11 110000 => 11 016 => 10 101111 => 10 017 => 10 101110 => 10 018 => 10 101101 => 10 019 => 10 101100 => 10 020 => 00 101011 => 00 021 => 01 101010 => 01 022 => 01 101001 => 01 023 => 11 101000 => 10 024 => 11 100111 => 10 025 => 01 100110 => 10 026 => 01 100101 => 10 027 => 11 100100 => 01 028 => 11 100011 => 01 029 => 11 100010 => 11 030 => 11 100001 => 01 031 => 11 100000 => 11 032 => 10 011111 => 10 033 => 10 011110 => 10 034 => 10 011101 => 10 035 => 10 011100 => 10 036 => 00 011011 => 00 037 => 01 011010 => 01 038 => 01 011001 => 01 039 => 11 011000 => 10 040 => 11 010111 => 10 041 => 01 010110 => 10 042 => 01 010101 => 10 043 => 11 010100 => 01 044 => 11 010011 => 01 045 => 11 010010 => 11 046 => 11 010001 => 01 047 => 11 010000 => 11 048 => 10 001111 => 10 049 => 10 001110 => 10 050 => 10 001101 => 10 051 => 10 001100 => 10 052 => 00 001011 => 00 053 => 01 001010 => 01 054 => 01 001001 => 01 055 => 11 001000 => 10 056 => 11 000111 => 10 057 => 01 000110 => 10 058 => 01 000101 => 10 059 => 11 000100 => 01 060 => 11 000011 => 01 061 => 11 000010 => 11 062 => 11 000001 => 01 063 => 11 000000 => 11 064 => 10 111111 => 10 065 => 10 111110 => 10 066 => 10 111101 => 10 067 => 10 111100 => 10 068 => 00 111011 => 00 069 => 01 111010 => 01
Но если вернуться к счётчику, на V1 и V2, то его выводы много где используются, причём как в качестве частоты, так и как код, - поэтому пронумеровать бы их так:Код:PC3 => ~VIRQ P2-19 => HALT
Тут ещё просятся такие вот сигналы, которые пока не могу указать достоверно, где формируются:Код:V1-17 => X0-8MHz (Позиция вывода луча по горизонтали или тактовая частота 8 МГц) V1-16 => X1-4MHz 2MHz => X2-2MHz V1-14 => X3-1MHz V2-16 => X4-500kHz V2-17 => X5-250KHz
Т.е. мы так должны выйти на частоту строчной развёртки 15625 Гц. Вот так 16 МГц кварц и обычный 10-ти разрядный двоичный счётчик даст желаемую строчную частоту (период повторения 64мкс). Т.к. строчный гасящий импульс требует 12 мкс, то остаётся 52 мкс на активную часть строки (https://studfiles.net/preview/1666872/page:31/ ). А при 26 полосках выходит что каждая полоска по 2 мкс (темп 500кГц)...Код:X6_125KHz X7_62500Hz X8_31250Hz X9_15625Hz
Последний раз редактировалось troosh; 18.07.2018 в 19:25.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)