nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Jan 2023 17:01



Reply to topic  [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Недоспектрум NEDOGON-48K и далее NEDOGON-56K 

Взять да и построить?
Да, поможем 36%  36%  [ 5 ]
Да, строй сам 29%  29%  [ 4 ]
Не, не надо 7%  7%  [ 1 ]
Глупость какая 7%  7%  [ 1 ]
А мне пофиг 21%  21%  [ 3 ]
Total votes : 14

Недоспектрум NEDOGON-48K и далее NEDOGON-56K 
Author Message
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1333
Location: WWW
Reply with quote
Post 
28/2=14 :idea: алсо поляки продают 14МГц осцилляторы


13 Jun 2013 20:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
MC68k wrote:
28/2=14 :idea: алсо поляки продают 14МГц осцилляторы


вот я у них и купил :)

_________________
:eugeek: https://mastodon.social/@Shaos


14 Jun 2013 07:32
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
Нарисовал (пока не бумаге) всю цепочку вплоть до вывода пикселов и бордера - теперь можно собирать на макетке и пробовать генерить видеосигнал без проца ;)

P.S. Наличие ПЗУ в качестве формирователя сигналов сильно упрощает привязку к разным кристаллам-осцилляторам и видеорежимам - я даже могу VGA сигнал сгенерить, главное чтобы видео со всеми синхрами умещалось в квадрат 512x512...

_________________
:eugeek: https://mastodon.social/@Shaos


14 Jun 2013 09:55
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Нарисовал (пока не бумаге)...

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

_________________
iLavr


14 Jun 2013 09:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
Нарисовал (пока не бумаге)...

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


Ну можно в редкаторе схем рисовать или сразу на макетке :)

P.S. Я имел ввиду "на бумаге" :roll:

_________________
:eugeek: https://mastodon.social/@Shaos


14 Jun 2013 11:02
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
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

_________________
:eugeek: https://mastodon.social/@Shaos


Last edited by Shaos on 16 Jun 2013 09:21, edited 3 times in total.



14 Jun 2013 20:07
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
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).

_________________
:eugeek: https://mastodon.social/@Shaos


Last edited by Shaos on 15 Jun 2013 23:28, edited 1 time in total.



14 Jun 2013 22:24
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1333
Location: WWW
Reply with quote
Post 
капитан напоминает, что 14.318... какбе для NTSC и сделан. но если в PAL, то пентагон получится - строк-то добавить надо. 264 строки откуда такое?
как будет с прерываниями в NTSC?

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

а как с чтениями из видеопамяти? четыре в нечетном знакоместе и два в четном или четыре чтения на два знакоместа? yoba.jpg


15 Jun 2013 04:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
264 кратно 4 и именно эта цифра напечатана в ULA-книжке для NTSC-варианта - правда он никуда не пошёл (это было ещё до таймекса), так что мы пожалуй остановимся на стандартных 262 - раз уж я уже предусмотрел несколько внешних гейтов для их поддержки...

_________________
:eugeek: https://mastodon.social/@Shaos


15 Jun 2013 05:22
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
MC68k wrote:
а как с чтениями из видеопамяти? четыре в нечетном знакоместе и два в четном или четыре чтения на два знакоместа? yoba.jpg


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

P.S. Вывод пикселов сдвинут вправо на ползнакоместа относительно адресов...

_________________
:eugeek: https://mastodon.social/@Shaos


15 Jun 2013 06:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
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:
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

_________________
:eugeek: https://mastodon.social/@Shaos


16 Jun 2013 10:54
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Хотя 640x480 уже больше 512 линий в кадре получится - придётся большее ПЗУ ставить, ну и для этого режима, как и для 640x400 надо каждую строку дублировать (в-принципе, это не проблема - просто иначе номер строки на формирование адреса надо подавать).


С другой стороны вот тут чуваки пробовали для 640x480@60 вместо 525 строк генерировать только 512 - и всё работало:

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

т.е. теоретически можно в той же схеме сгенерить 640x480 VGA, правда с несколько кривыми таймингами...

_________________
:eugeek: https://mastodon.social/@Shaos


16 Jun 2013 19:10
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1333
Location: WWW
Reply with quote
Post 
зачем ПЗУ? галок нету чтоли?


16 Jun 2013 23:41
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 20684
Location: Silicon Valley
Reply with quote
Post 
MC68k wrote:
зачем ПЗУ? галок нету чтоли?

галки уже не то - первозадача построить на рассыпухе :)

P.S. палки/галки будут в варианте с расширенными видеорежимами ;)

_________________
:eugeek: https://mastodon.social/@Shaos


17 Jun 2013 10:08
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1333
Location: WWW
Reply with quote
Post 
вот и строй на рассыпухе - без галок и без ПЗУ :) хотя галка суть программируемый массив логических элементов.


18 Jun 2013 04:28
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 0 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

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.