 |  |  |
 | Shaos wrote: В ленинграде у меня стоит 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 МГц  P.P.S. Ну или 640x480@60...  |  |
 |  |  |
Хотя 640x480 уже больше 512 линий в кадре получится - придётся большее ПЗУ ставить, ну и для этого режима, как и для 640x400 надо каждую строку дублировать (в-принципе, это не проблема - просто иначе номер строки на формирование адреса надо подавать).
ПЗУ видеогенератора должно иметь время доступа до 4 тактов пиксельклока, что есть 571 нс для 7 МГц, 558 нс для 7.16 МГц и 317 нс для 12.59 МГц
Можно ещё поглядеть на
800x600:
Если взять 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):

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

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

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

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

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

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