tnt23, Попробуй прошивку для профика (12 МГц), только кварц нужно поставить на 12 МГц. Правда что на это скажет zst,
---------- Post added at 22:56 ---------- Previous post was at 22:54 ----------
http://zx.pk.ru/showpost.php?p=262222&postcount=713
tnt23, Попробуй прошивку для профика (12 МГц), только кварц нужно поставить на 12 МГц. Правда что на это скажет zst,
---------- Post added at 22:56 ---------- Previous post was at 22:54 ----------
http://zx.pk.ru/showpost.php?p=262222&postcount=713
Перепаивать в УКНЦ ничего не хочется, это довольно сложная двухпроцессорная машина. И так придется внутрь лезть за сигналами. Просто я думаю, раз есть исходники и у меня есть квартус, чего бы не попробовать сделать прошивку именно для УКНЦ.
Известно, что горизонтальное разрешение у этой машины 640 точек, на отображение которых уходит 51.2мкс, а всего в 64-микросекундной строке таких точек помещается 800.
По вертикали УКНЦ рисует 288 строк, кадр занимает 19.97мс (не знаю, почему именно такая цифра, взято из документации), длительность ССИ 5.1мкс, длительность КСИ 192мкс. Полных строк в кадре умещается 312.
Результат первого подключения (прошивка 2.0.9, инвертируются RGBI, ССИ, КСИ, 60Гц) в аттаче.
Последний раз редактировалось tnt23; 21.01.2011 в 17:46.
Смотрю код (2.0.9) и не пойму, почему VGA_H_MAX присваивается значение только разрядов 9..1 счетчика VIDEO_H? получается, что для входной ТВ строки это максимум 511 точек в строке? а как же машины с более высокой тактовой, у которых в ТВ строку укладывается по 700-800 и более тактов?
У ПРОФИ 768 точек в строке. Там считаются такты кварцевого генератора, что не всегда соответствует количеству точек. Для данной прошивки максимальная 14 МГц:
Если адаптировать на 16 МГц, то там в строке будет 64 мкс * 16 МГц = 1024 тактов. Должно влезть в 10 битов.Код:-------------------------------------------------------------------------------- -- ОПРЕДЕЛЕНИЕ ТИПА КВАРЦА 100304 -- -------------------------------------------------------------------------------- -- если перемычки JP6 (SET_FK_IN) и JP5 (VGA_SCART) сняты, -- частота кварца определяется автоматически. -- если одна из них или обе перемычки установлены, частота выбирается ими -- соответсвие битов (перемычка снята, 0 - установлена) : -- 10 - стандартная или удвоенная частота точек -- графики клонов "Спектрум", кварц на 14 МГц -- в строке 896 тактов (895 = 1 10 1111111) -- 01 - режим графики "Профи", кварц на 12 МГц -- в строке 768 тактов (767 = 1 01 1111111) -- 00 - режим графики "Орион", кварц на 10 МГц -- в строке 640 тактов (639 = 1 00 1111111) -- 11 - режим графики "Специалист", кварц на 8 МГц -- в строке 512 тактов (511 = 0 11 1111111)
---------- Post added at 13:21 ---------- Previous post was at 12:47 ----------
Значит в строке VGA тоже должно быть 800 точек.
Я так понял, что установлена перемыка INVERSE_SSI. Попробуйте ее убрать. Ее установка обычно приводит к сдвигу экрана влево.
Результат первого подключения (прошивка 2.0.9, инвертируются RGBI, ССИ, КСИ, 60Гц) в аттаче.
---------- Post added at 13:56 ---------- Previous post was at 13:21 ----------
Давайте попробуем доработать эту прошивку для УКНЦ (частота кварца 12.5 МГц).
Если в стоке телевизора умещается 64 мкс * 12.5 МГц = 800 тактов,
то максимальное значение VIDEO_H будет 1100011111 (799).
Тогда в регистр VGA_H_MAX будет записано 110001111 (399).
То есть для данного кварца длительность строки VGA должна быть 400 тактов, что в два раза меньше длительности строки VIDEO (800 тактов).
При автоматическом определении частоты кварца (убраны перемычки JP6 (SET_FK_IN) и JP5 (VGA_SCART)
анализируются биты 7 и 6 регистра VGA_H_MAX (1 10 001111). Они равны 10, поэтому плата VGA&PAL будет считать, что компьютер Спектрум с частотой кадров 14 МГц. Поэтому развертка будет генерироваться не для той частоты/компьютера...
---------- Post added at 14:09 ---------- Previous post was at 13:56 ----------
Для пробы можно поставить перемычки для Профи:
JP6 (SET_FK_IN) - установить
JP5 (VGA_SCART) - снять
-- соответствие битов (перемычка снята, 0 - установлена) :
-- -- 01 - режим графики "Профи", кварц на 12 МГц
-- -- в строке 768 тактов (767 = 1 01 1111111)
Т.е. строчные синхроимпульсы VGA будут по тактам как для Профи, а количество тактов в строке VGA на основе измеренных данных.
За один такт тактовой частоты будет отображаться две точки на VGA.
---------- Post added at 14:32 ---------- Previous post was at 14:09 ----------
В прошивке есть ошибки в назначении начала и конца строчных гасящих и синхроимпульсов, например, для Профи:
when "01" => -- "Профи"
VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ
VGA_SSI1_END <= "0000100010"; -- 34 - конец 1 строчного СИ
VGA_SSI2_BGN <= "1011110101"; -- 757 - начало 2 строчного СИ
VGA_SSI2_END <= "1011111111"; -- 767 - конец 2 строчного СИ
VGA_SGI1_END <= "0000111001"; -- 57 - конец 1 строчного ГИ
VGA_SGI2_BGN <= "1011101101"; -- 749 - начало 2 строчного ГИ
Конечно, синхроимпульсов не два - предусмотрено, что они состоят из двух частей и их можно двигать относительно начала счета счетчиков тактов VGA.
Числа должны быть раза в два меньше, так как в VGA строке в два раза меньше тактов, чем в строке VIDEO.
Можно ориентироваться по параметрам VGA (http://tinyvga.com/vga-timing/640x480@60Hz) и рассчитать для данного кварца. К тому же вам придется для своего компьютера подбирать начало строчного синхроимпулься VGA, чтобы экран был в центре.
Последний раз редактировалось zx-kit; 23.01.2011 в 13:34.
"L-256"
zst, а вот с той версией прошивки, что у меня (для Профи), можно карту к пентагону подключить? Нормально будет работать?
Хороший.. Плохой.. Главное - у кого ружьё !!
Рассчет параметров строчной развертки VGA 640x480x60 Гц для кварца 12.5 МГц:
Длительность гашения до синхроимпульса = 0,6356 мкс * 12.5 МГц = 7,95 тактов
Длительность синхроимпульса = 3,8133 мкс * 12.5 МГц = 47,67 тактов
Длительность гашения после синхроимпульса = 1,9067 мкс * 12.5 МГц = 23,83 тактов
Длительность гашения суммарная с учетом синхроимпульса =7,95 + 47,67 + 23,83 = 79,45 тактов
После округления:
Длительность гашения до синхроимпульса = 8 тактов
Длительность синхроимпульса = 48 тактов
Длительность гашения после синхроимпульса = 24 тактов
Длительность гашения суммарная с учетом синхроимпульса = 8 + 48 + 24 = 80 тактов
---------- Post added at 14:59 ---------- Previous post was at 14:58 ----------
Должна работать. Может перемычки придется подобрать.
---------- Post added at 15:19 ---------- Previous post was at 14:59 ----------
Для УКНЦ нужно изменить следующий фрагмент для Профи:
when "01" => -- "Профи"
VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ (1 часть 40 тактов)
VGA_SSI1_END <= "0000100111"; -- 39 - конец 1 строчного СИ
VGA_SSI2_BGN <= "0110001000"; -- 392 - начало 2 строчного СИ (2 часть 8 тактов)
VGA_SSI2_END <= "0111110100"; -- 500 - конец 2 строчного СИ (реально до 399)
VGA_SGI1_END <= "0000111111"; -- 63 - конец 1 строчного ГИ
VGA_SGI2_BGN <= "0110000000"; -- 384 - начало 2 строчного ГИ
Потом скомпилировать, прошить, проверить центровку в строках. Если нужно будет подвинуть изображение по горизонатали - нужно будет посчитать на сколько тактов и изменить эти параметры.
"L-256"
Попробовал, результат почти тот же. Экран обрезан слева, и справа видны мельтешащие горизонтальные черные полосы на синем фоне, примерно в зоне гашения.
Даст ли что-нибудь перетасовка параметров VGA_S* так, чтобы сперва шла область отображаемых пикселей, а потом уже гасящий и строчный импульсы?
Даст, от этого и зависит положение на экране по-горизонтали.
Измерьте сначала на сколько пикселов подвинуть требуется.
Для начала проверьте действие перемычки INVERSE_SSI и
JP6 (SET_FK_IN) - установить
JP5 (VGA_SCART) - снять
---------- Post added at 18:02 ---------- Previous post was at 17:43 ----------
Чтобы изображиние сдвинуть вправо на 32 точки изменить так:
when "01" => -- "Профи"
VGA_SSI1_BGN <= "0000000000"; -- 0 - 1 часть строчного СИ: 0...7 = 8 тактов
VGA_SSI1_END <= "0000000111"; -- 7
VGA_SSI2_BGN <= "0101101000"; -- 360 - 2 часть строчного СИ: 360...399 = 40 тактов
VGA_SSI2_END <= "0111110100"; -- 500 (реально до 399)
VGA_SGI1_END <= "0000011111"; -- 31 - 1 часть гасящего СИ: 0...31 = 32 такта
VGA_SGI2_BGN <= "0101100000"; -- 352 - 2 часть гашения СИ: 352...399 = 48 тактов
Последний раз редактировалось zx-kit; 23.01.2011 в 16:10.
"L-256"
У меня чуть кастрированный вариант 2.0.9, из которого выкинуто почти все, относящееся к автонастройкам и другим машинамКадровая жестко 60Гц. Инверсия КСИ и ССИ осталась, но ничего не дает в смысле улучшения или изменения результатов.
Более-менее удобоваримый результат получился со следующими строчными настройками:
При этом строка на экран до конца не влезает. Возможно, это уже проблемы монитора (Acer AL2016W), при случае попробую на других мониторах.Код:VGA_SSI1_BGN <= "0000000000"; -- 0 VGA_SSI1_END <= "0000001001"; -- 9 VGA_SSI2_BGN <= "0101101010"; -- 362 VGA_SSI2_END <= "0111010110"; -- 500 VGA_SGI1_END <= "0000100001"; -- 33 VGA_SGI2_BGN <= "0101100010"; -- 354
Теперь о кадровой разверткеНа экране должно быть 24 текстовых строки (288 растровых), но две последних текстовых не влезают. Опять же, это может быть бзик моего монитора.
Кадровые настройки:
И еще счетчик VGA строк обнуляется по достижении 525 строки.Код:VGA_KSI_BGN <= "0000000000"; -- 0 VGA_KSI_END <= "0000000001"; -- 1 VGA_KGI1_END <= "0000100001"; -- 33 VGA_KGI2_BGN <= "1000000011"; -- 515
Последний раз редактировалось tnt23; 23.01.2011 в 16:21.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)