Модульный Z80 компьютер RC2014

Микропроцессоры и микроконтроллеры от фирмы Zilog, а также компьютеры на них построенные

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Shaos wrote:Существует аналогичная плата для RC2014 - VGA-выход и USB-клава на пропеллере "VGA Serial Terminal Kit for RC2014":

https://www.tindie.com/products/maccasoft/vga-serial-terminal-kit-for-rc2014/

Набор стоит $46.50 и работает совместно с платой последовательного интерфейса

В моём случае это будет NTSC/PAL+PS/2 Serial Terminal Kit for RC2014 который работает ВМЕСТО платы последовательного интерфейса и надо как-то уложиться хотя бы в $50...
Автор RC2014 мне предлагает его микроклавиатурку заюзать для начала ;)
https://www.tindie.com/products/Semachthemonkey/universal-micro-keyboard/
Наверное так и надо сделать ибо клавка по ходу спектрумовская (матрица 5x8) :dj:
Для работы с такой клавкой взять скажем PIC16F871, у которого есть:
- порт A (6 бит)
- порт B (8 бит)
- порт C (8 бит)
- порт D (8 бит)
- порт E (3 бита)
т.е. всего 33 сигнала!

Я планирую задействовать режим PSP для работы с шиной Z80 (чтение и запись в порт #80) - в этом случае порт D подключается к шине данных, а порт E превращается в сигналы управления /RD,/WR и /CS. На вычитку клавки уйдёт 13 сигналов если делать в лоб, либо 8 если адресовать ряды по одному (тогда нужна будет ещё одна микросхема дешифратора переводящая 3 бита адреса в 8 битов выбора ряда для клавки). В итоге остаётся 14 бит, из которых 8 (например порт B) уйдут на выдачу прочитанного символа на буфер (когда Z80 будет читать из порта #81) и из оставшихся 6 битов порта A:

RA0 адрес для чтения клавки KA0
RA1 адрес для чтения клавки KA1
RA2 адрес для чтения клавки KA2
RA3 вход нулевого бита адреса с триггера (и заодно тут заводим бит занятости OFLAG из SX-28 - переключаемся между ними с помощью RA0)
RA4 который ОК пойдёт на прерывание /INT процыка (будет дёргаться если прерывания разрешены и если есть байт с клавки)
RA5 светодиод для индикации Caps Lock

5 битов данных с клавки пойдут на порт C, оставляя ещё 3 бита для других целей:

RC0 вход данных с клавки (бит 0)
RC1 вход данных с клавки (бит 1)
RC2 вход данных с клавки (бит 2)
RC3 вход данных с клавки (бит 3)
RC4 вход данных с клавки (бит 4)
RC5 сигнал IFLAG на SX28 (т.к. похоже пик должен будет общаться с недотекстом, а не хост)
RC6 это TX (можно задействовать на будущее)
RC7 это RX (можно задействовать на будущее)

Тактировать пик можно 10 МГц с делителя частоты из недотекста (там 60 МГц должно было делиться на 6) либо кварц 20 МГц взять, чтобы в полную мощь его разогнать :rotate:

P.S. Интересный момент заключается ещё и в том, что пик в данном случае можно будет не по назначению использовать - скажем заслав в порт управления специальный байт (который не является правильной комбинацией битов для имитируемой микросхемы 68B50, например Master Reset с параметрами) пик можно временно заставить перестать работать в качестве контроллера клавиатуры и в этом режиме он сможет выполнять какие-то другие функции - например принимать и выдавать данные из EEPROM (64 байта) либо из флеша выдавать какие-то программки для Z80, либо выполнять какие-то математические расчёты и т.д. Кроме того эти пики умеют сами себя программно перепрошивать - в таком случае можно будет перепрошивать пик прямо с Z80 - вобщем много интересного можно будет понаделать :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Shaos wrote:P.S. Интересный момент заключается ещё и в том, что пик в данном случае можно будет не по назначению использовать - скажем заслав в порт управления специальный байт (который не является правильной комбинацией битов для имитируемой микросхемы 68B50, например Master Reset с параметрами) пик можно временно заставить перестать работать в качестве контроллера клавиатуры и в этом режиме он сможет выполнять какие-то другие функции - например принимать и выдавать данные из EEPROM (64 байта) либо из флеша выдавать какие-то программки для Z80, либо выполнять какие-то математические расчёты и т.д. Кроме того эти пики умеют сами себя программно перепрошивать - в таком случае можно будет перепрошивать пик прямо с Z80 - вобщем много интересного можно будет понаделать :)
Master Reset, это когда в порт управления #80 засылается 00000011 (т.е. 2 младших бита единички) - для наших целей мы можем задействовать остальные биты. Пик имеет доступ только к записи-чтению порта #80 и может выдавать что-то в порт #81 (т.е. Z80 сможет прочитать один байт), а принять что-то из порта #81 он не может т.к. запись пойдёт в SX-28 (работающий в режиме видеоконтроллера). Отсюда выходит, что скажем задать адрес для EEPROM становится нетривиальной задачей - мы должны будем часть из этих 6 битов использовать как данные, например:

Code: Select all

0000 0011 - это режим клавиатуры (обычный Master Reset)
xxxx x011 - вызов другого приложения (xxxxx не равно 00000)
xxxx 1011 - так можно задавать младшие 4 бита адреса EEPROM для дальнейшей работы
xxxx 1111 - так можно задавать старшие 4 бита адреса EEPROM (при этом младшие биты адреса обнуляются) - так мы можем покрыть несколько больше, чем 64 бита 
чтение и запись в порт #81 после установки адреса будет выдавать/записывать байт по текущему адресу, смещая адрес на 1 после выдачи
чтение из портов #80 и #81 после вызова функции будет зависеть от функции

P.S. адреса можно распределить так:

Code: Select all

#00...#3F - EEPROM (64 адреса, чтение и запись)
#40...#7F - зарезервировано
#80...#9F - вызов библиотечных функций (32 адреса)
#A0...#BF - переменные из второй страницы данных (32 адреса, чтение и запись)
#C0...#FF - данные из специально отведённого блока кода (64 адреса, которые содержат команды RETLW)
последний диапазон адресов может содержать зашитые в ПЗУ кода данные - например уникальный идентификатор чипа, название программы и имя автора, версия прошивки и т.д.

P.P.S. про пик-сопроцессор далее будет тут: nedoPC Sidekick на PIC16F871
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Мой nedoText/SX + nedoPC Sidekick in keyboard mode for RC2014 на 17 корпусов получился (это если TTL-осциллятор тоже микросхемой считать) и в шаблон стандартной платки RC2014 он как бы уже не влезает - попытаюсь уложиться в 10x10 см
Attachments

nedoTextRC2014-sch1.jpg
nedoTextRC2014-sch1.jpg (141.54 KiB) Viewed 14601 times

nedoTextRC2014-sch2.jpg
nedoTextRC2014-sch2.jpg (125.74 KiB) Viewed 14601 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Shaos wrote:Мой nedoText/SX + nedoPC Sidekick in keyboard mode for RC2014 на 17 корпусов получился (это если TTL-осциллятор тоже микросхемой считать) и в шаблон стандартной платки RC2014 он как бы уже не влезает - попытаюсь уложиться в 10x10 см
Вроде уложился :mrgreen:
Attachments

nedoTextRC2014-brd.jpg
nedoTextRC2014-brd.jpg (223.3 KiB) Viewed 14682 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Земля и питание разведены:
Attachments

nedoTextRC2014-brd.jpg
nedoTextRC2014-brd.jpg (240.59 KiB) Viewed 14658 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
fifan
Devil
Posts: 900
Joined: 06 Oct 2006 10:17
Location: г.Лянтор,Сургутского р-на,ХМАО
Contact:

Re: Модульный Z80 компьютер RC2014

Post by fifan »

Shaos wrote:Земля и питание разведены:
Уложишься в два слоя или будет многослойная печатная плата?
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

fifan wrote:
Shaos wrote:Земля и питание разведены:
Уложишься в два слоя или будет многослойная печатная плата?
Уже ушел в 4 :(
Attachments

nedoTextRC2014-brd.jpg
nedoTextRC2014-brd.jpg (230.06 KiB) Viewed 14637 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Вроде все развелось :rotate:
Attachments

nedoTextRC2014-brd.jpg
nedoTextRC2014-brd.jpg (269.32 KiB) Viewed 14601 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

OSHpark вот такие картинки генерит и берётся изготовить 3 экземпляра за полторы сотни:
We detected a 4 layer board of 3.93 x 3.94 inches (99.8 x 100.0mm)
3 boards will cost $154.80
Attachments

nedoTextRC2014-oshpark.jpg
nedoTextRC2014-oshpark.jpg (233.49 KiB) Viewed 14595 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

В рассылке RC2014 некий Mark T предложил мне следующие вещи по улучшению платы:
Mark T wrote: Hi Shaos,

Four layer has a much greater impact on cost than double sided.

You might make the layout a bit easier by reducing the glue logic.

Example the address decoding could use a '138. No need to qualify M1 as both /WR and /RD are qualified. Links select address 0b10XXXXXX or 0b01XXXXXX.

Having all the gates of the multiplexers close together in the same package makes the routing a lot easier. In the diagram I've selected the gates so a single 74HCT00 is used for each multiplexer. Also selected the gates and pins used to reduce routing issues.

You might be able to drive the LED direct from the PIC output to avoid adding the inverter, or use a spare gate from IC7 which would have three unused gates.

Also position the ICs that have bussed connection between them next to each other, not spread across the board. IC4 and IC6 next to each other as they are one to one pin mapping.

Then IC10 next to them, but change the pin mapping of the 6116 to line up the connections of the MAx and RCx connections to IC4 and IC6. It doesn't matter what order you connect address and data to the RAM chip.

Similar with IC4 and IC6 so long as the inputs map to the correct outputs.

Next put IC11 at whichever end of IC4, IC6, IC10 that suits the rest of the circuit. And the same with IC8.

Put IC17 next to the RC2014 bus header. D0 to A1, D1 to A2, .... D7 to A7, ground DIR on IC17, PB0 to B1, PB1 to B2, .... PB7 to B7. Then you have straignt connections from IC17 to the bus header.

Then IC15 goes next to IC17, straight connections for PB0 to PB7. I prefer to have all ICs pointing in the same direction to help avoid assembly issues, but just make sure the directions are clearly labelled on the silk screen and you should be OK.

Mark.png
Mark.png (39.67 KiB) Viewed 14557 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23733
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Модульный Z80 компьютер RC2014

Post by Shaos »

В в рассылке RC2014 проскочила информация, что этот компьютер кроме Микрософт-Бейсика и CP/M-80 умеет ещё вот чего:
  • Running ZX-spectrum software (thanks to Rob Dobson)
  • MSX basic or TRS-80 system software (thanks to J.B. Langston)
Я как-то про ZX пропустил - надо чтоли погуглить...

P.S. Погуглил - вот оно, правдо чото мутно там:
https://robdobson.com/2018/09/raid-the-bus-and-the-speccy-lives/
Я тут за главного - если что шлите мыло на me собака shaos точка net
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 17:30
Location: Ukraine

Re: Модульный Z80 компьютер RC2014

Post by Alekcandr »

Чем мне нравятся буржуйские поделки, так за красочную документацию с картинками :mrgreen:
Shaos wrote:В в рассылке RC2014 проскочила информация, что этот компьютер кроме Микрософт-Бейсика и CP/M-80 умеет ещё вот чего:
  • Running ZX-spectrum software (thanks to Rob Dobson)
  • MSX basic or TRS-80 system software (thanks to J.B. Langston)
Бейсик MSX запустить таки VDP нид, и еще "чего". Хотя это "чего", можно и не ставить.

О вайтах забыл для обмена с VDP.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 17:30
Location: Ukraine

Re: Модульный Z80 компьютер RC2014

Post by Alekcandr »

Как бы реклама дорогих приборов, дети тут причем? Хотя нужно отдать должное, поглотитель дыма в деле. А так-то, отдает сильно коммерцией. Уже давно заметил грешок за этим каналом. Справедливости ради на этом канале попадаются толковые образовательные и обзорные ролики.

Что сказать смотреть телик, а теперь и ютуб надо избирательно.
Last edited by Alekcandr on 28 Apr 2019 10:04, edited 1 time in total.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
Lavr
Supreme God
Posts: 16639
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Модульный Z80 компьютер RC2014

Post by Lavr »

:o
iLavr
Post Reply