Проверял сегодня схему Lavrа с первой страницы, только без буферных регистров. В качестве генератора и "пускача" поставил тиньку, прошитую простейшим скетчем Ардуино. AD5 и AD7 завел с DIN через повторители с ОК (ЛП17). RPLY сначала формировал тоже как на схеме, затем выкинул триггер и запустил сигнал просто через повторитель. Присутствие RPLY при чтении безадресного регистра на первый взгляд никак не повлияло на результат. Вот такая получилась минимальная схема.
Attachments:
VM2_1.png [ 41.04 KiB | Viewed 10324 times ]
VM2_3.png [ 44.27 KiB | Viewed 10324 times ]
IMG_20190314_165300.jpg [ 247.54 KiB | Viewed 10324 times ]
14 Mar 2019 06:33
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
Ну последнее значит что ушло в производство на фабрику (fab) - значит всё хорошо
Я почему переспросил: обычно, когда "всё хорошо", ты показываешь здесь платы, а я ничего не спрашиваю... А тут - одно уведомление, второе уведомление...
Ну как придут платы - покажу и платы
Последнее уведомление пришло про то что платы сделаны и направились по почте ко мне
Проверял сегодня схему Lavrа с первой страницы, только без буферных регистров. В качестве генератора и "пускача" поставил тиньку, прошитую простейшим скетчем Ардуино. AD5 и AD7 завел с DIN через повторители с ОК (ЛП17). RPLY сначала формировал тоже как на схеме, затем выкинул триггер и запустил сигнал просто через повторитель. Присутствие RPLY при чтении безадресного регистра на первый взгляд никак не повлияло на результат. Вот такая получилась минимальная схема.
Там могут быть различия в поведении между более старыми белыми ВМ2 (керамическими) и более новыми черными ВМ2 (пластмассовыми). Мы тут в свое время сообща решили вот так формировать RPLY (с конфигурируемыми задержками): http://www.nedopc.org/forum/viewtopic.php?p=143377#p143377 Именно такой подход сделан в моем модуле ЦПУ для PDPii - см. несколько страниц назад...
Ну последнее значит что ушло в производство на фабрику (fab) - значит всё хорошо
Я почему переспросил: обычно, когда "всё хорошо", ты показываешь здесь платы, а я ничего не спрашиваю... А тут - одно уведомление, второе уведомление...
Ну как придут платы - покажу и платы
Последнее уведомление пришло про то что платы сделаны и направились по почте ко мне
Пришли платки
Attachments:
ROM-module.jpg [ 173.28 KiB | Viewed 10275 times ]
Спаял - теперь есть возможность гонять программки из ПЗУ (правда пока без ОЗУ) С чего бы начать демонстрацию возможностей PDPii? Подцепить жидкокристаллический дисплейчик 16x2 и вывести на него "nedoPC-18 PDPii"? Или сразу nedoText с выводом на экран ТВ? В-принципе, и для того, и для другого достаточно будет 16-битного порта на вывод и на ввод (для ЖКХ можно только на вывод) - разрешать его по BBS7 (т.е. при любом обращении в старшую восьмушку адресного пространства будет выбираться этот порт) и работать с ним только словами, т.е. в этом случае алхимия с WTBT и A0 при записи будет ненужна - на макетке можно по быстрому собрать...
Attachments:
ROM-module-built.jpg [ 158.71 KiB | Viewed 10258 times ]
но т.к. инструкция NOP возвращается всегда при наличии DIN (даже в случае "безадресного чтения"), то адресный счётчик начинает выполнять программу с адреса 0x00A0 (0240)
в ПЗУ надо писать инвертированные биты (т.к. шина у нас инвертированная) - значит вместо 0x00A0 надо будет вписать 0000000010100000 -> 1111111101011111 или 0xFF5F, ну и в моей схеме безадресное чтение не должно никуда идти, если я ничего не путаю, т.е. оно автоматически прочитает нули (ибо шина данных подтянута к +5В) и будет бежать нопами с нулевого адреса...
P.S. Вроде бегут нопы - адрес тикает (правда начинает не с нуля, а с 0x00A0 т.к. по безадресному чтению он читает ноль, а по нулевому адресу в ПЗУ сидит NOP - 0x00A0). С осциллятором 1 МГц старший светодиод адреса мигает 100 раз за 39 с чем-то секунд - это 32768 нопов пролетают каждые 0.39 сек - при 1 МГц клоке это 500 000 внутренних тактов в секунду или 195000 за один пробег по всей памяти - это 6 внутренних тактов (или 12 внешних тактов) на каждый NOP. И у меня похоже один из битов адреса глючит - светодиод A4 никогда не зажигается.
P.P.S. А - там просто непропай был - пропаял ногу светодиода и всё заработало как надо
Кроме 1 МГц успешно потестил также осцилляторы 3 МГц, 4 МГц и даже 10 МГц
А вот 16 и 20 МГц не завелись...
P.S. То был ВМ2 с одной точкой, а вот ВМ2 без точек на 16 МГц вроде как завёлся!
P.P.S. Это всё были чёрные - добрался до белых (у меня пара новых появилась за последний год) так вот они тоже рабочие (до 10 МГц) - вместе со старым единственным белым, что работал, получается 3
P.P.P.S. Перепроверил все чёрные и все белые - до 10 МГц включительно работают даже те керамические, которые я в прошлом году забраковал после пошаговой проверки (может они на нулевой частоте в-принципе не пашут?) - точно нерабочие сейчас 1 чёрный и 1 белый
P.P.P.P.S. Некоторые чёрные с точкой гонятся до 16 МГц, несмотря на точку, а один даже на 20 МГц вроде как завёлся (пошёл чуть дальше - на 25 МГц уже всё мёртво)
при этом блок питания показывает ток 0.59А (возможно из-за светодиодов)
https://youtu.be/ET_R9582DBU (надо смотреть на полный экран в 1080p60 режиме - тогда будет заметно мерцания светодиода старшего бита адреса)
Ещё момент - джамперы JP6 и JP7 всё также стоят в режиме без задержек, т.е. RPLY является непосредственным отражением DIN - наверное поэтому NOP выполняется за 6 тактов, а не за 8, как по заводской документации (хотя заводская документация говорит 8 тактов CLCI на операцию регистр-регистр, а у меня выходит 12 тактов CLCI). ПЗУ время доступа судя по маркировке 120нс - в режиме без задержки RPLY ручной проход показывает, что DIN активен в течение 4 тактов CLCI (внешний клок), значит предел скорости для ПЗУ должен быть порядка 120нс/4=30нс на клок, что есть 33.33 МГц CLCI
P.S. NOP это на самом деле SEx/CLx команда, которая ничего не делает т.к. битовая маска флагов нулевая:
Code:
Condition Code Operations
_ _ _ _ _ _ _ _ _ _:_ _ _:_ _ _ |0|0|0|0|0|0|0|0|1|0|1|s|N|Z|V|C| | O p c o d e | | Mask |
16-битный порт на вывод доступен по BBS7, т.е. адрес 0FF00H должен сработать - младший байт это 8-битные данные в ЖКИ и несколько битов в старшем байте порта пойдут на управление - RS,R/W,E:
bit 8 - LED (индикация ошибки) bit 9 - RS (0 для команды, 1 для данных) bit 10 - R/W (0 для записи. 1 для чтения) bit 11 - E (1 для разрешения связи с ЖКИ) bit 12 - бит адреса клавиаутры KA0 bit 13 - бит адреса клавиатуры KA1 bit 14 - бит адреса клавиатуры KA2 bit 15 - IFLAG для nedoText/SX ?
в будущем можно на ввод тоже поддержать - младший байт также будет 8 бит данных (чтение из ЖКИ), а старший байт может быть таким:
bit 8 - бит клавиатуры KB0 bit 9 - бит клавиатуры KB1 bit 10 - бит клавиатуры KB2 bit 11 - бит клавиатуры KB3 bit 12 - бит клавиатуры KB4 bit 13 - кнопка S1? bit 14 - кнопка S2? bit 15 - OFLAG из nedoText/SX?
P.S. по идее наверное можно офигеть и подключить к PDPii целую советскую клаву МС7007
Attachment:
kbd_ms7007.jpg [ 81.54 KiB | Viewed 10175 times ]
получив эдакий НедоУКНЦ
Там правда 12 линий назад надо будет принимать - в таком случае ЖКИ к млашему байту на ввод можно подключать только если E=1, а в противном случае это будет клава...
Вобщем прежде чем делать полновесный PDPii в mini-ITX форм-факторе с PS/2-клавой и дисками HDD/FDD (как предполагалось год назад), прямо щас можно реализовать две "облегченные" вариации для пробуждения интереса публики:
Junior PDPii - с дисплейчиком 16x2 и микрокнопочной клавкой прямо на материнской плате (чтобы начать продажи);
Soviet PDPii - с текстовым выводом на ТВ и советской клавиатурой "Электроника МС 7007" (у меня их есть несколько);
Graphic PDPii - полноценный компьютер с PS/2-клавой (и мышой?), VGA-выходом, звуковым стерео-выходом на колонки, HDD, FDD, CD-ROM, Ethernet и в mini-ITX форм факторе (предполагается быть совместимым с БК).
Первые две вариации будут использовать тот же базовый набор плат - CPU, ROM, RAM (плюс будет один-два свободных слота для будущих плат расширения типа переходника на периферию RC2014). В полноценном варианте память будет на самой материнке (т.е. модули ROM и RAM туда втыкать уже будет нельзя) и возможно ещё сделаю CPU модуль на ВМ1...
Пока нету PDPii материнки (backplane) - вместо неё можно заюзать большую бредборду (63 контакта в ряд):
Attachment:
PDPii-breadboard-small.jpg [ 150.67 KiB | Viewed 10143 times ]
Два жёлтых проводочка слева, которые под углом - это BDMGO-BDMGI и BIAKO-BIAKI для составления цепочки срабатывания (если CPU плата стоит последней, то эти два проводочка иначе надо воткнуть):
Attachment:
PDPii-breadboard2-small.jpg [ 165.39 KiB | Viewed 10143 times ]
Собрал тестик для ЖКИ (кроме CPU и ROM модулей на бредборде установлены одна 74LS32 и две 74LS374) - осталось прошивку написать
Attachment:
PDPii-LCD-test-small.jpg [ 194.27 KiB | Viewed 10143 times ]
16-битный порт на вывод доступен по BBS7, т.е. адрес 0FF00H должен сработать - младший байт это 8-битные данные в ЖКИ и несколько битов в старшем байте порта пойдут на управление - RS,R/W,E:
bit 8 - LED (индикация ошибки) bit 9 - RS (0 для команды, 1 для данных) bit 10 - R/W (0 для записи. 1 для чтения) bit 11 - E (1 для разрешения связи с ЖКИ) bit 12 - бит адреса клавиаутры KA0 bit 13 - бит адреса клавиатуры KA1 bit 14 - бит адреса клавиатуры KA2 bit 15 - IFLAG для nedoText/SX ?
в будущем можно на ввод тоже поддержать - младший байт также будет 8 бит данных (чтение из ЖКИ), а старший байт может быть таким:
bit 8 - бит клавиатуры KB0 bit 9 - бит клавиатуры KB1 bit 10 - бит клавиатуры KB2 bit 11 - бит клавиатуры KB3 bit 12 - бит клавиатуры KB4 bit 13 - кнопка S1? bit 14 - кнопка S2? bit 15 - OFLAG из nedoText/SX?
Собственно вот
Attachments:
PDPii-LCD-test-hello-small.jpg [ 349.43 KiB | Viewed 10130 times ]
Users browsing this forum: No registered users and 33 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