Недоспектрум NEDOCON-48K и далее NEDOCON-56K

Старый спектрумистский форум

Moderator: Shaos

Взять да и построить?

Да, поможем
5
36%
Да, строй сам
4
29%
Не, не надо
1
7%
Глупость какая
1
7%
А мне пофиг
3
21%
 
Total votes: 14
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

28/2=14 :idea: алсо поляки продают 14МГц осцилляторы
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MC68k wrote:28/2=14 :idea: алсо поляки продают 14МГц осцилляторы
вот я у них и купил :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Нарисовал (пока не бумаге) всю цепочку вплоть до вывода пикселов и бордера - теперь можно собирать на макетке и пробовать генерить видеосигнал без проца ;)

P.S. Наличие ПЗУ в качестве формирователя сигналов сильно упрощает привязку к разным кристаллам-осцилляторам и видеорежимам - я даже могу VGA сигнал сгенерить, главное чтобы видео со всеми синхрами умещалось в квадрат 512x512...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Нарисовал (пока не бумаге)...
А на чем же? :o На песке - на лужайке перед домом, хлебая в приятную погоду пивко? 8)
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:Нарисовал (пока не бумаге)...
А на чем же? :o На песке - на лужайке перед домом, хлебая в приятную погоду пивко? 8)
Ну можно в редкаторе схем рисовать или сразу на макетке :)

P.S. Я имел ввиду "на бумаге" :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MC68k wrote:28/2=14 :idea: алсо поляки продают 14МГц осцилляторы
В ленинграде у меня стоит 14.31818 МГц (как советовал автор печатной платы на своём сайте) и есть пара запасных таких же - могу начать с них (правда PAL-оригинала с таким кварцем не получится). А теперь немного посчитаем.

Частота строк в PAL - 15625 Гц и 50 полукадров в секунду (312.5 строки в полукадре).

Частота строк в NTSC - 15734.26 Гц и 59.94 полукадров в секунду (262.5 строки в полукадре).

При частоте кварца 14 МГц (пиксельклок 7 МГц) мы получим 448 точек в строке для PAL и 444.9 точек в строке для NTSC (округляем до 448, чтобы было кратно 8, что приведёт к уменьшению частоты кадров до 59.64 при 262 строках и 59.18 при 264 строках).

При частоте кварца 14.31818 МГц (пиксельклок 7.16 МГц) мы получим 458.2 точек в строке для PAL (округляем до 456, чтобы было кратно 8, что приведёт увеличению частоты кадров до 50.3 при 312 строках) и 455 точек в строке для NTSC (округляем до 456, чтобы было кратно 8, что приведёт к небольшому уменьшению частоты кадров до 59.92 при 262 строках, а при 264 строках частота кадров будет ещё меньше - 59.47).

Как видно при кварце 14.31818 МГц цифры для NTSC очень близки к идеальным (правда кол-во строк при этом не кратно 4) - так что наверное именно эту частоту я и буду использовать для NTSC-варианта, а PAL-вариант будет на 14 МГц...

P.S. А поставив кварц на 25.175 МГц (пиксельклок 12.59 МГц) и перепрограммировав ПЗУ можно без изменения схемы генерить VGA-сигнал 640x400@70 (точнее это будет 320x400), при этом частота Z80 будет 6.29 МГц :o

P.P.S. Ну или 640x480@60...

Image
Last edited by Shaos on 16 Jun 2013 09:21, edited 3 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:Например счётчик на четырёх 74LS163 плюс 74LS74 - два раза по девять (H0...H8, V0...V8) из которых на 8-килобайтную ПЗУ идут H3, H4, H5, H6, H7, H8, V2, V3, V4, V5, V6, V7, V8...
Вобщем как-то так:

Image

Счётчик точек с синхронным сбросом (74LS163), а счётчик строк - с асинхронным (74LS161) - это чтобы можно было без младших 2 бит сбросить в ноль...

P.S. Выяснилась неприятная деталь - осцилляторов на 14 МГц нигде нет, да и кристаллы тоже фиг найдёшь - купил непойми чего на ебее - поглядим...
Сегодня добавил возможность сброса счётчика строк на строке некратной 4 (но кратной 2 - например 262 в случае NTSC - при этом джампер J1 должен быть установлен).

P.S. Первые 3 счётчика 74LS163 можно заменить на 74LS161, но вместо входа /CLR сигнал сброса HCLR надо будет подавать на вход /LOAD (он синхронный), а биты установки надо все посадить на 0.

P.P.S. 16 июня решил поставить все 74LS163 и добавил также мелкой логики на синхронное окончание счёта в случае количества линий кратных 2 (джампер J1) или кратных 4 (джампер J2).
Last edited by Shaos on 15 Jun 2013 23:28, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

капитан напоминает, что 14.318... какбе для NTSC и сделан. но если в PAL, то пентагон получится - строк-то добавить надо. 264 строки откуда такое?
как будет с прерываниями в NTSC?

в ленинграде 14.0-14.5 и предустановка по таблице. у меня стоял вакуумированный на 14000кГц, маргиналы обходились подстроечником.

а как с чтениями из видеопамяти? четыре в нечетном знакоместе и два в четном или четыре чтения на два знакоместа? yoba.jpg
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

264 кратно 4 и именно эта цифра напечатана в ULA-книжке для NTSC-варианта - правда он никуда не пошёл (это было ещё до таймекса), так что мы пожалуй остановимся на стандартных 262 - раз уж я уже предусмотрел несколько внешних гейтов для их поддержки...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MC68k wrote:а как с чтениями из видеопамяти? четыре в нечетном знакоместе и два в четном или четыре чтения на два знакоместа? yoba.jpg
Четыре чтения подряд когда счётчики показывают адрес нечётного знакоместа - точно как в оригинале :)

P.S. Вывод пикселов сдвинут вправо на ползнакоместа относительно адресов...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
MC68k wrote:28/2=14 :idea: алсо поляки продают 14МГц осцилляторы
В ленинграде у меня стоит 14.31818 МГц (как советовал автор печатной платы на своём сайте) и есть пара запасных таких же - могу начать с них (правда PAL-оригинала с таким кварцем не получится). А теперь немного посчитаем.

Частота строк в PAL - 15625 Гц и 50 полукадров в секунду (312.5 строки в полукадре).

Частота строк в NTSC - 15734.26 Гц и 59.94 полукадров в секунду (262.5 строки в полукадре).

При частоте кварца 14 МГц (пиксельклок 7 МГц) мы получим 448 точек в строке для PAL и 444.9 точек в строке для NTSC (округляем до 448, чтобы было кратно 8, что приведёт к уменьшению частоты кадров до 59.64 при 262 строках и 59.18 при 264 строках).

При частоте кварца 14.31818 МГц (пиксельклок 7.16 МГц) мы получим 458.2 точек в строке для PAL (округляем до 456, чтобы было кратно 8, что приведёт увеличению частоты кадров до 50.3 при 312 строках) и 455 точек в строке для NTSC (округляем до 456, чтобы было кратно 8, что приведёт к небольшому уменьшению частоты кадров до 59.92 при 262 строках, а при 264 строках частота кадров будет ещё меньше - 59.47).

Как видно при кварце 14.31818 МГц цифры для NTSC очень близки к идеальным (правда кол-во строк при этом не кратно 4) - так что наверное именно эту частоту я и буду использовать для NTSC-варианта, а PAL-вариант будет на 14 МГц...

P.S. А поставив кварц на 25.175 МГц (пиксельклок 12.59 МГц) и перепрограммировав ПЗУ можно без изменения схемы генерить VGA-сигнал 640x400@70 (точнее это будет 320x400), при этом частота Z80 будет 6.29 МГц :o

P.P.S. Ну или 640x480@60...

Image
Хотя 640x480 уже больше 512 линий в кадре получится - придётся большее ПЗУ ставить, ну и для этого режима, как и для 640x400 надо каждую строку дублировать (в-принципе, это не проблема - просто иначе номер строки на формирование адреса надо подавать).

ПЗУ видеогенератора должно иметь время доступа до 4 тактов пиксельклока, что есть 571 нс для 7 МГц, 558 нс для 7.16 МГц и 317 нс для 12.59 МГц

Можно ещё поглядеть на 800x600:

Code: Select all

Mode name        Lines line  sync      back      active     front     whole frame
                 Total width pulse     porch     time       porch     period
                       (us)  (us)(lin) (us)(lin) (us) (lin) (us)(lin) (us) (lin)
VGA 800x600 56Hz 625   28.44  56  1    568  20   17177 604      -1*   17775 625
VGA 800x600 60Hz 628   26.40 106  4    554  21   15945 604      -1*   16579 628
VGA 800x600 72Hz 666   20.80 125  6    436  21   12563 604   728 35   13853 666


Mode name       Pixel sync      back  active front whole line
                clock pulse     porch time   porch period
                (MHz) (us)(pix) (pix) (pix)  (pix) (pix)
VGA 800x600 56Hz 36   2     72  125    806    21   1024
VGA 800x600 60Hz 40   3.2  128   85    806    37   1056
VGA 800x600 72Hz 50   2.4  120   61    806    53   1040 
Если взять 800x600@56Hz, то пиксельклок будет 36/2=18 MHz, частота проца - 9 MHz, а скорость доступа к видеоконтроллеру - 222 нс (111 у ОЗУ), но т.к. строк больше 512, то нужно будет большее ПЗУ.

Если взять 800x600@60 Hz, то пиксельклок будет 40/2=20 MHz, частота проца - 10 MHz, скорость доступа к видеопамяти - 200 нс (100 у ОЗУ) и строк опять таки больше 512.

Видимо надо выбирать 640x350, чтобы не надо было строки раздваивать, а если ещё и кварц уменьшить до 18 МГц (точное значение 18.357), то соотношение сторон такого спектрумовского экрана будет примерно 4:3...

P.S. А при оригинальном кварце 25.175 MHz правильное соотношение сторон будет только на широкоэкранных мониторах...

P.P.S. Вот несколько примеров VGA:

Пиксельклок 25.175 МГц, частота процессора 12.59 МГц, широкоформатный монитор, правильное соотношение сторон (640x350):

Image

Пиксельклок 25.175 МГц, частота процессора 12.59 МГц, стандартный монитор, неправильное соотношение сторон (640x350):

Image

Пиксельклок 12.59 МГц, частота процессора 6.29 МГц, стандартный монитор, неправильное соотношение сторон (320x350):

Image

Пиксельклок 18.432 МГц, частота процессора 9.22 МГц, соотношение сторон близкое к правильному (ошибка 0.4%) на стандартном мониторе (469x350):

Image

Пиксельклок 18 МГц, частота процессора 9 МГц, соотношение сторон близкое к правильному (ошибка 2%) на стандартном мониторе (458x350):

Image

P.P.P.S. т.к. схема у нас манипулирует строками в точках, кратных 8 пикселам, то надо пересчитать размеры для двух последних случаев и кроме того можно присмотреть другие частоты, близкие к идеальному значению пиксельклока 18.357 МГц (частота кварца 36.71 МГц).

Пиксельклок 18.432 (ошибка 0.4%) вместо 469 делаем 472 (59 знакомест). Проблема в том, что кварца 36.864 МГц похоже не существует, поэтому вряд ли удастся использовать эту частоту в схеме без изменений.

Частота осциллятора/кварца - 36 МГц, пиксельклок 18 МГц (ошибка 2%) - вместо видимых 458 делаем 456 (57 знакомест), кол-во пикселов в полной строке - 572 (71.5 знакомест).

Частота осциллятора/кварца - 37.05 МГц, пиксельклок 18.53 МГц (ошибка 1%), видимых 470, а всего кол-во пикселов в полной строке - 588.67 (73.58 знакомест).

Частота осциллятора/кварца - 37.4 МГц, пиксельклок 18.7 МГц (ошибка 2%), видимых 475, а всего кол-во пикселов в полной строке - 594.23 (74.28 знакомест).

Частота осциллятора/кварца - 37.5 МГц, пиксельклок 18.75 МГц (ошибка 2%), видимых 476, а всего кол-во пикселов в полной строке - 595.82 (74.48 знакомест).

P.P.P.P.S. Ещё частоты:

Частота осциллятора/кварца - 35.469 МГц, пиксельклок 17.73 МГц (ошибка 3%), видимых 450, а всего кол-во пикселов в полной строке - 563.55 (70.4 знакомест).

Частота осциллятора/кварца - 35.6 МГц, пиксельклок 17.8 МГц (ошибка 3%), видимых 450, а всего кол-во пикселов в полной строке - 563.64 (70.7 знакомест).

Частота осциллятора/кварца - 35.7 МГц, пиксельклок 17.85 МГц (ошибка 3%), видимых453, а всего кол-во пикселов в полной строке - 567.22 (70.9 знакомест).

Чтобы частота кадров была близка к стандартным 70.086 Гц, надо выбрать количество знакомест, близкое к целому числу, например 35.7 МГц - в этом случае выбрав 71 знакоместо мы получим 31426 строк в секунду, разделив которые на 449 получим 69.99 кадров в секунду. Оставив теже 71 знакомест, но взяв 36 МГц, мы получим 31690 строк в секунду или 70.6 кадров в секунду (наверное это немножко много) в случае 449 строк, а взяв 450 получим 70.4 кадров в секунду . А теперь пересчитаем для 72 знакомест - 31250 строк в секунду или 69.60 кадров в секунду. Из больших частот можно попробовать 37.4 МГц и 74 знакоместа - 31588 строк в секунду, 70.35 кадров в секунду при 449 строках и 70.20 при 450 строках.

Кварц 37.4 МГц, пиксельклок 18.7 МГц, частота процессора 9.35 МГц, соотношение сторон близкое к правильному (ошибка 2%) на стандартном мониторе (475x350):

Image

Кварц 35.7 МГц, пиксельклок 17.85 МГц, частота процессора 8.93 МГц, соотношение сторон близкое к правильному (ошибка 3%) на стандартном мониторе (454x350):

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

Post by Shaos »

Shaos wrote:Хотя 640x480 уже больше 512 линий в кадре получится - придётся большее ПЗУ ставить, ну и для этого режима, как и для 640x400 надо каждую строку дублировать (в-принципе, это не проблема - просто иначе номер строки на формирование адреса надо подавать).
С другой стороны вот тут чуваки пробовали для 640x480@60 вместо 525 строк генерировать только 512 - и всё работало:

http://people.ece.cornell.edu/land/cour ... 25_dah322/

т.е. теоретически можно в той же схеме сгенерить 640x480 VGA, правда с несколько кривыми таймингами...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

зачем ПЗУ? галок нету чтоли?
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MC68k wrote:зачем ПЗУ? галок нету чтоли?
галки уже не то - первозадача построить на рассыпухе :)

P.S. палки/галки будут в варианте с расширенными видеорежимами ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

вот и строй на рассыпухе - без галок и без ПЗУ :) хотя галка суть программируемый массив логических элементов.