nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 25 May 2019 11:22



Reply to topic  [ 272 posts ]  Go to page Previous  1 ... 14, 15, 16, 17, 18, 19  Next
Микро-ЭВМ на КМ1801ВМ2 
Author Message
Junior

Joined: 06 Aug 2017 09:30
Posts: 2
Reply with quote
Проверял сегодня схему Lavrа с первой страницы, только без буферных регистров. В качестве генератора и "пускача" поставил тиньку, прошитую простейшим скетчем Ардуино. AD5 и AD7 завел с DIN через повторители с ОК (ЛП17). RPLY сначала формировал тоже как на схеме, затем выкинул триггер и запустил сигнал просто через повторитель. Присутствие RPLY при чтении безадресного регистра на первый взгляд никак не повлияло на результат. Вот такая получилась минимальная схема.


Attachments:
VM2_1.png
VM2_1.png [ 41.04 KiB | Viewed 741 times ]
VM2_3.png
VM2_3.png [ 44.27 KiB | Viewed 741 times ]
IMG_20190314_165300.jpg
IMG_20190314_165300.jpg [ 247.54 KiB | Viewed 741 times ]
14 Mar 2019 07:33
Profile
Doomed

Joined: 01 Oct 2007 11:30
Posts: 400
Location: Ukraine
Reply with quote
Круто)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


14 Mar 2019 07:40
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Shaos wrote:
Lavr wrote:
Shaos wrote:
Ну последнее значит что ушло в производство на фабрику (fab) - значит всё хорошо :)

Я почему переспросил: обычно, когда "всё хорошо", ты показываешь здесь платы, а я ничего не спрашиваю... :wink:
А тут - одно уведомление, второе уведомление... :-?

Ну как придут платы - покажу и платы :roll:

Последнее уведомление пришло про то что платы сделаны и направились по почте ко мне :)

_________________
:eugeek: https://twitter.com/Shaos1973


14 Mar 2019 14:26
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Xrust wrote:
Проверял сегодня схему Lavrа с первой страницы, только без буферных регистров. В качестве генератора и "пускача" поставил тиньку, прошитую простейшим скетчем Ардуино. AD5 и AD7 завел с DIN через повторители с ОК (ЛП17). RPLY сначала формировал тоже как на схеме, затем выкинул триггер и запустил сигнал просто через повторитель. Присутствие RPLY при чтении безадресного регистра на первый взгляд никак не повлияло на результат. Вот такая получилась минимальная схема.

Там могут быть различия в поведении между более старыми белыми ВМ2 (керамическими) и более новыми черными ВМ2 (пластмассовыми).
Мы тут в свое время сообща решили вот так формировать RPLY (с конфигурируемыми задержками):
http://www.nedopc.org/forum/viewtopic.php?p=143377#p143377
Именно такой подход сделан в моем модуле ЦПУ для PDPii - см. несколько страниц назад...

_________________
:eugeek: https://twitter.com/Shaos1973


14 Mar 2019 14:30
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Shaos wrote:
Shaos wrote:
Lavr wrote:
Shaos wrote:
Ну последнее значит что ушло в производство на фабрику (fab) - значит всё хорошо :)

Я почему переспросил: обычно, когда "всё хорошо", ты показываешь здесь платы, а я ничего не спрашиваю... :wink:
А тут - одно уведомление, второе уведомление... :-?

Ну как придут платы - покажу и платы :roll:

Последнее уведомление пришло про то что платы сделаны и направились по почте ко мне :)

Пришли платки :mrgreen:


Attachments:
ROM-module.jpg
ROM-module.jpg [ 173.28 KiB | Viewed 692 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
15 Mar 2019 13:12
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Спаял - теперь есть возможность гонять программки из ПЗУ (правда пока без ОЗУ) :kruto: С чего бы начать демонстрацию возможностей PDPii? Подцепить жидкокристаллический дисплейчик 16x2 и вывести на него "nedoPC-18 PDPii"? ;) Или сразу nedoText с выводом на экран ТВ? В-принципе, и для того, и для другого достаточно будет 16-битного порта на вывод и на ввод (для ЖКХ можно только на вывод) - разрешать его по BBS7 (т.е. при любом обращении в старшую восьмушку адресного пространства будет выбираться этот порт) и работать с ним только словами, т.е. в этом случае алхимия с WTBT и A0 при записи будет ненужна - на макетке можно по быстрому собрать...


Attachments:
ROM-module-built.jpg
ROM-module-built.jpg [ 158.71 KiB | Viewed 675 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
15 Mar 2019 16:06
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Погнали :mrgreen:


Attachments:
ROM-module-test.jpg
ROM-module-test.jpg [ 273.17 KiB | Viewed 673 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
15 Mar 2019 22:07
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Shaos wrote:
но т.к. инструкция NOP возвращается всегда при наличии DIN (даже в случае "безадресного чтения"), то адресный счётчик начинает выполнять программу с адреса 0x00A0 (0240) :roll:

в ПЗУ надо писать инвертированные биты (т.к. шина у нас инвертированная) - значит вместо 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. А - там просто непропай был - пропаял ногу светодиода и всё заработало как надо :)


https://youtu.be/NA2n89yNx3Y

_________________
:eugeek: https://twitter.com/Shaos1973


15 Mar 2019 22:20
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Кроме 1 МГц успешно потестил также осцилляторы 3 МГц, 4 МГц и даже 10 МГц :o

А вот 16 и 20 МГц не завелись...

P.S. То был ВМ2 с одной точкой, а вот ВМ2 без точек на 16 МГц вроде как завёлся! :eugeek:

P.P.S. Это всё были чёрные - добрался до белых (у меня пара новых появилась за последний год) так вот они тоже рабочие (до 10 МГц) - вместе со старым единственным белым, что работал, получается 3

P.P.P.S. Перепроверил все чёрные и все белые - до 10 МГц включительно работают даже те керамические, которые я в прошлом году забраковал после пошаговой проверки (может они на нулевой частоте в-принципе не пашут?) - точно нерабочие сейчас 1 чёрный и 1 белый

P.P.P.P.S. Некоторые чёрные с точкой гонятся до 16 МГц, несмотря на точку, а один даже на 20 МГц вроде как завёлся :twisted: (пошёл чуть дальше - на 25 МГц уже всё мёртво)

_________________
:eugeek: https://twitter.com/Shaos1973


16 Mar 2019 01:05
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Shaos wrote:
... а один даже на 20 МГц вроде как завёлся :twisted:

при этом блок питания показывает ток 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 :o

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  |
http://ftp.dbit.com/pub/pdp11/faq/faq.pages/PDPinst.html

но я пока нигде не могу найти информацию о том, как долго она должна выполняться на ВМ2...

_________________
:eugeek: https://twitter.com/Shaos1973


16 Mar 2019 10:36
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Тестовая программа, выводящая строку на ЖКИ может выглядеть так (написано под PDP11ASM):
Code:
decimalnumbers
    org 0
    .word 0100H,0E0H ; reset vector
    org 0100H
start:
    mov #init,r4
initloop:
    movb (r4)+,r0
    beq endinit
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #100,r0
delay1:
    sob r0,delay1
    jmp initloop
endinit:
    mov #msg,r4
loop:
    movb (r4)+,r0
    beq endloop
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    bic #200H,r0 ; inverted RS=1
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #100,r0
delay2:
    sob r0,delay2
    jmp loop
endloop:
    mov #0FFFFH,r0
delay:
    sob r0,delay
    jmp start

msg:    .byte    "Hello, World!",0
init:    .byte 30H,30H,38H,8H,1H,6H,0CH,0

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 :mrgreen:

Attachment:
kbd_ms7007.jpg
kbd_ms7007.jpg [ 81.54 KiB | Viewed 592 times ]

получив эдакий НедоУКНЦ :rotate:

Там правда 12 линий назад надо будет принимать - в таком случае ЖКИ к млашему байту на ввод можно подключать только если E=1, а в противном случае это будет клава...

P.P.S. а дальше уже можно будет попробовать RT-11 на этом завести (c nedoText-овым выводом на ТВ), а может быть даже BSD :o
http://www.vcfed.org/forum/archive/index.php/t-45773.html

_________________
:eugeek: https://twitter.com/Shaos1973


17 Mar 2019 06:37
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Вобщем прежде чем делать полновесный 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...

_________________
:eugeek: https://twitter.com/Shaos1973


17 Mar 2019 10:56
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Пока нету PDPii материнки (backplane) - вместо неё можно заюзать большую бредборду (63 контакта в ряд):

Attachment:
PDPii-breadboard-small.jpg
PDPii-breadboard-small.jpg [ 150.67 KiB | Viewed 560 times ]


Два жёлтых проводочка слева, которые под углом - это BDMGO-BDMGI и BIAKO-BIAKI для составления цепочки срабатывания (если CPU плата стоит последней, то эти два проводочка иначе надо воткнуть):

Attachment:
PDPii-breadboard2-small.jpg
PDPii-breadboard2-small.jpg [ 165.39 KiB | Viewed 560 times ]


Собрал тестик для ЖКИ (кроме CPU и ROM модулей на бредборде установлены одна 74LS32 и две 74LS374) - осталось прошивку написать :mrgreen:

Attachment:
PDPii-LCD-test-small.jpg
PDPii-LCD-test-small.jpg [ 194.27 KiB | Viewed 560 times ]

_________________
:eugeek: https://twitter.com/Shaos1973


17 Mar 2019 20:49
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17695
Location: Colorado
Reply with quote
Shaos wrote:
Тестовая программа, выводящая строку на ЖКИ может выглядеть так (написано под PDP11ASM):
Code:
decimalnumbers
    org 0
    .word 0100H,0E0H ; reset vector
    org 0100H
start:
    mov #init,r4
initloop:
    movb (r4)+,r0
    beq endinit
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #100,r0
delay1:
    sob r0,delay1
    jmp initloop
endinit:
    mov #msg,r4
loop:
    movb (r4)+,r0
    beq endloop
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    bic #200H,r0 ; inverted RS=1
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #100,r0
delay2:
    sob r0,delay2
    jmp loop
endloop:
    mov #0FFFFH,r0
delay:
    sob r0,delay
    jmp start

msg:    .byte    "Hello, World!",0
init:    .byte 30H,30H,38H,8H,1H,6H,0CH,0

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?

Собственно вот :mrgreen:


Attachments:
PDPii-LCD-test-hello-small.jpg
PDPii-LCD-test-hello-small.jpg [ 349.43 KiB | Viewed 547 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
18 Mar 2019 04:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
LCD без подсветки?

_________________
iLavr


18 Mar 2019 11:34
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 272 posts ]  Go to page Previous  1 ... 14, 15, 16, 17, 18, 19  Next

Who is online

Users browsing this forum: No registered users and 1 guest


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.