У меня провода ~30см, клок в экране, резистор на входе клока на конвертер в два раза меньше номинала (рез. сборка). Работает нормально. Потом комп был продан, жалоб не поступало.
Вид для печати
У меня провода ~30см, клок в экране, резистор на входе клока на конвертер в два раза меньше номинала (рез. сборка). Работает нормально. Потом комп был продан, жалоб не поступало.
А я себе не ставил экранированый провод, просто провода друг от друга подальше разместил и помех нестало. Сейчас экранчик чистый, без помех.
Кстате я еще заметил чем платка дальше находится от спека тем и меньше помех.
zst ,что делать ума не приложу,где-то микротрещина или непропай,чи что,когда чёрный фон допустим бута всё видно когда белый изображение пропадает, закономерности не вычислил но бывает поднажать на плату ,то появляется изображение и на разных фонах кроме чёрного,потом дрожит вверх-вниз и пропадает,не знаю что делать вообще,такую мелкую альтеру не пропаяю,если бы точечно,то куда б ни шло, а так цепляну сомплю быстрее...
У Лисици вроди работало,та и у меня иногда работает,если держать на изгиб плату, это всё с Профи.
Перемычки перебрал всех вариантов,пропаял что мог,понимаеш всё работает как-бы в фоне монитор не отключается,пробовал на двух мониках.Всё одинаково.
ещё момент греется микросхема палкодера сильно.
Не с Пентом не пробовал еще ,надо подключится еще.
zst, получил кит. Все было аккуратно расфасовано и упаковано, спасибо большое!
Теперь вопрос по подключению к УКНЦ. Частота выдачи точек у нее 12.5МГц, что и где можно подправить (и в какой прошивке), чтобы сделать простой вариант на эту частоту и только VGA 60Гц?
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Гц) в аттаче.
Смотрю код (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, чтобы экран был в центре.
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 строчного ГИ
Потом скомпилировать, прошить, проверить центровку в строках. Если нужно будет подвинуть изображение по горизонатали - нужно будет посчитать на сколько тактов и изменить эти параметры.
Попробовал, результат почти тот же. Экран обрезан слева, и справа видны мельтешащие горизонтальные черные полосы на синем фоне, примерно в зоне гашения.
Даст ли что-нибудь перетасовка параметров 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 тактов
У меня чуть кастрированный вариант 2.0.9, из которого выкинуто почти все, относящееся к автонастройкам и другим машинам :v2_dizzy_facepalm: Кадровая жестко 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
Да что-то пока не удается добиться улучшений. Картинка более-менее нормально располагается относительно верхнего левого угла. Но внизу все равно не выводится порядка 36 пикселей (3 текстовых строки по 12 пикселей), и справа бегут черные полоски. На прилагаемом слайде их можно разглядеть.
Я начинаю предполагать, что дело в мониторе. Хотя странно, с чего бы ему не уметь показать 640x480, пусть и в растянутом-ужатом виде?
Внезапно оказалось, что вопреки тому, что написано в википедии и нарисовано на слайде с форматом кадра (http://zx.pk.ru/attachment.php?attac...4&d=1295634391), УКНЦ выводит на экран 26 текстовых строк, или 12*26=312 растровых.
Правильно написано в википедии и в документации. Высота текстовой строки составляет 11 пикселей. Итого 26 строк - 286 пикселей. Между служебными строками и экраном пользователя есть по одной разделительной видеостроке - отсюда и получается 288 видеострок.
Всего кадр составляет 312 видеострок, оставшиеся 24 видеостроки приходятся на обратный ход луча по кадру.
Alex_K, спасибо! Я думал, свихнусь уже :)
Господа, тыкните пожалуйста где почитать о доработке генератора (схема и причины). Немного лень перечитывать 93 страницы.
В первом посте всё есть, ну или здесь:http://zx.pk.ru/showpost.php?p=212132&postcount=107
Стоит 74HCT04D
Генератор не запустился по стандартной спектрумовской схеме на двух инверторах. Пришлось переделывать на один инвертор.
Там еще на двух инверторах сделана задержка тактовой частоты, чтобы в ПЛИС сделать удвоение частоты для некоторых прошивок.
Если не нужен генератор 4.43 МГц и прошивки V1.xx можно микросхему не впаивать.
Или если генератор запустится без доработок и удвоение частоты придумать без задержки внешними инверторами...
Резисторы 75 Ом, так как при 100 Ом изображение на телевизоре было очень яркое.
Добился нормального (ну, почти) отображения экрана УКНЦ по горизонтали (влезают все 80 символов) со следующими параметрами:
Код:VGA_SSI1_BGN <= "0000000000"; -- 0
VGA_SSI1_END <= "0000000111"; -- 7
VGA_SSI2_BGN <= "0101110000"; -- 368
VGA_SSI2_END <= "0111110100"; -- 500
VGA_SGI1_END <= "0000011111"; -- 31
VGA_SGI2_BGN <= "0101101000"; -- 360
Получается, что за счет уменьшения ССИ. Перемычку пробовал, не влияет никак. Помеха как-то связана с кадровой частотой, или с биениями ее и 50Гц.
Количество строк тоже пробовал увеличивать, картина не меняется, только монитор показывает снижение кадровой до 55Гц при увеличении количества строк c 525 до ~570.
В режиме 640х480 отображается 480 сторок VGA - это 2х240 сторок при удвоении.
Еще вариант - не удваивать строки. Но тогда изображение на экране сожмется по вертикали в два раза.
Попробуйте режим 640х350 70 Гц (http://tinyvga.com/vga-timing/640x350@70Hz). Там параметры строчной почти такие же. Но полярность синхроимпульсов позитивная - во время синхроимпульса сигнал = 1.
В кадре 449 строк (0...448). Будет отображаться 350 строк. Без удвоения 288 строк влезут.
Для начала измените количество строк, кадровые синхроимпульсы и полярность ССИ, проверьте - держит ли монитор такую развертку. Если держит - потом нужно будет убрать удвоение строк и центрировать.
---------- Post added at 12:37 ---------- Previous post was at 12:12 ----------
Вот так можно поменять полярность строчных синхроимпульсов VGA:
Код:--------------------------------------------------------------------------------
-- ФОРМИРОВАНИЕ СТРОЧНЫХ ИМПУЛЬСОВ VGA 110125 --
--------------------------------------------------------------------------------
-- строчные синхроимпульсы для режима VGA 640х350 70 Гц (положит. полярн.)
VGA_SSI <= '1' when (VGA_H >= VGA_SSI1_BGN and VGA_H <= VGA_SSI1_END)
or (VGA_H >= VGA_SSI2_BGN and VGA_H <= VGA_SSI2_END)
else '0';
Изменил количество строк и полярность ССИ, кадровые прописал так:
Монитор развертку держит, картинка обрезана. Как теперь убрать удвоение строк? Попробовал так:Код:VGA_KSI_BGN <= "0000111011"; -- 0
VGA_KSI_END <= "0000111100"; -- 1
VGA_KGI1_END <= "0000111110"; -- 62
VGA_KGI2_BGN <= "0110011101"; -- 413
Вроде то, что нужно. Может, стоило такое же проделать со старой разверткой.Код:else VGA_V(8 downto 0) & VGA_H(8 downto 1);
Да, так. А как буквы - нормально смотрятся ?
Также можно и с со старой разверткой сделать, но наверно экран сильно уменьшится по-вертикали и изображение займет чуть больше половины высоты.
Посмотрите оба варианта. Оставьте тот какой лучше выглядит.
И пока не забыли что к чему - соберите, пожалуйста, в одно сообщение:
Как подключить к УКНЦ.
Ссылки на схему, монтажку и т.п.
Работающую прошивку с измененными исходниками.
Какой режим развертки.
Как называется монитор.
Какие перемычки ставить.
Ну и фотографии плат и изображения с монитора.
Вроде еще на форуме есть люди, желающие подключить свои старые компьютеры к монитору - им это очень пригодится.
Спасибо.
В режиме 640x480@60 тоже получилось, но экран слишком сплюснут, не очень комфортно, на мой взгляд.
В режиме 640x350@70 экран чуть более растянут по вертикали, картинки прилагаю. Скорее всего, можно отцентрировать его по вертикали, но у меня пока не вышло, кадровые настройки сейчас такие:
В обоих режимах так и остался тот же глюк - по правой части экрана, примерно шириной в 1/8 строки, мелькает темная полоска.Код:VGA_KSI_BGN <= "0000000000"; -- 0
VGA_KSI_END <= "0000000001"; -- 1
VGA_KGI1_END <= "0000001100"; -- 12
VGA_KGI2_BGN <= "0100101101"; -- 301
Попробуйте так:
Код:VGA_KSI_BGN <= "0110000100"; -- 388
VGA_KSI_END <= "0110000101"; -- 389
VGA_KGI1_END <= "0111000001"; -- 449
VGA_KGI2_BGN <= "0101011111"; -- 351
Прикрепите исходник - может что там ?Цитата:
В обоих режимах так и остался тот же глюк - по правой части экрана, примерно шириной в 1/8 строки, мелькает темная полоска.
Завтра попробую, заодно прицеплю исходники (сильно покоцанные, и Квартус превратил все кириллические комментарии в тыкву).
Глючок хорошо виден на слайде №4 в сообщении http://zx.pk.ru/showpost.php?p=353106&postcount=935
Попробовал, монитор синхронизируется, но экран черный.
В Квартусе русский текст правильно копируется, если в данный момент включен русский язык (с помощью Alt+Shift и т.п). Без комментариев труднее разобраться.
Попробуйте так:Цитата:
Глючок хорошо виден на слайде №4 в сообщении http://zx.pk.ru/showpost.php?p=353106&postcount=935
Попробовал, монитор синхронизируется, но экран черный.
Код:VGA_KSI_BGN <= "0110000100"; -- 388
VGA_KSI_END <= "0110000101"; -- 389
VGA_KGI1_END <= "0000000001"; -- 1
VGA_KGI2_BGN <= "0101011111"; -- 351
---------- Post added at 14:00 ---------- Previous post was at 13:33 ----------
C компьютера на видеоконвертер подаете синхросмесь или раздельные синхроимпульсы ?