![]() |
1 Attachment(s)
Запустил ТВ-выходы. Пока просто тестовый прямоугольник вывожу случайного размера, но с переключением его цвета имеющимися переключателями на плате. Работают и "тюльпан", и S-Video. На фотке - телевизор подключенный по S-Video. Качество картинки с S-Video лучше - на "тюльпане" все же заметны легкие разводы на черном фоне.
В качестве тактовой частоты использую сигнал, полученный методом, предложенным svofski. Исходная частота - 216.67МГц (50 х 13 / 3). Прямоугольник справа и слева немного размыт - видимо результат неравномерности скважности при таком способе получения сигнала. В принципе я могу увеличить частоту до 325МГц (50 х 13 / 2). Это должно еще улучшить картинку. Какие последствия этого могут быть? Нагрев, нестабильность? Неприятным сюрпризом стала невозможность каскадирования PLL в Cyclone 2. В Rev.A надо будет обдумать применение Cyclone 3 и наверное все же наладить генератор частоты 17.734475МГц для несущей ТВ сигнала. Хотя и так качество ТВ картинки вполне неплохое (но все же не идеальное). Посмотрим в реальных приложениях. Видеоконтроллер я пожалуй перепишу, так как это проще, чем адаптировать имеющийся под работу с разными видеовыходами. |
Круто!
Если у тебя цвет получается похожим на ожидаемый, мудрить с частотой ни к чему: то, что телевизор за не цепляется, говорит о том, что она такая как надо. Про размытость трудно чего-то сказать. Отклонения в цветовой поднесущей не должны бы влиять на яркостную составляющую. Шашечки на контрастных переходах в композите будут всегда, ref: dot crawl. Если сделаешь выход с раздельными luma y chroma, шашечки уйдут. |
Извини, я не очень внятно написал вчера - уже спать хотелось. В общем так как Cyclone II, как выяснилось, не поддерживает каскадирование PLL (а я на это рассчитывал), то ТВ pixel clock (10.5МГц) тоже пришлось делать тем же способом. Второй PLL у меня естественно оказался не подключен к clock на схеме. И там скорее не яркостная составляющая, а иногда сдвинутые пиксели причина замыленности краев справа и слева.
Я могу сделать 10.48МГц на имеющемся PLL ((50 x 13 / 31) / 2) и может быть попробую этот вариант. Цветовую несущую тоже тогда надо будет скорректировать? Или все же лучше разгонять ПЛИС до 325МГц? |
Я не знаю, какие у тебя в принципе клоки в системе, поэтому вряд ли могу чего-то посоветовать.
В Векторе по сути только один системный клок, он же пиксель-клок, поэтому таких проблем нет. На деле получается, что нужен отдельный клок для АЫ и для PAL-а. По поводу замыленности краев. Телевизор-то не знает ничего про пиксели, с его точки зрения это просто видеосигнал. Очень вероятно, что на яркостной составляющей стоит фильтр, который не пропускает верхние частоты, которые накладываются на цветовую полосу: это как раз замыленность краев даст. А может быть просто запустить ему заново автонастройку, чтобы его пиксельный ФАПЧ попробовал привязать картинку заново к своим внутренним пикселям? |
1 Attachment(s)
Проект был мной приостановлен на пару месяцев, но я обязательно планирую продолжить в ближайшее время. Сейчас я занят оборудованием постоянного рабочего места для хобби, так как до этого я располагался за столом без ящиков и очень быстро перестал находить вещи под слоем хлама. :rolleyes:
Но сегодня я получил посылку от GARNIZON с настоящей клавой "Агат", платой параллельного интерфейса и разъемами к ней, за что я ему очень благодарен :v2_thumb: Так что теперь появился стимул, чтобы быстрее закончить с рабочим место и продолжить проект :v2_dizzy_army: |
После всех задержек я вернулся к проекту в своей новой лаборатории. Правда пока на него у меня не очень много времени, ввиду того что у нас с женой сейчас другой совместный проект, который называется Стефани (Stephanie) и ей сейчас три с половиной недели :v2_dizzy_kids: Так что пока буду продолжать эпизодически по мере возможности. :v2_dizzy_sleep2:
Итак, процессор установлен и работает. Компьютер загружается и работает на VGA выход (TV пока не проверил - надо принести телек с кухни). PS2 клава работает. Планы на ближайшее время - запустить "дисковод" 140К, чтобы загрузить тесты. А также припаять разъем DIN7 и подключить родную клавиатуру. Ну и доделать TV выход, конечно. По какой-то причине у меня не получается записывать прошивки напрямую в ПЛИС и приходится каждый раз прошивать ROM, что не очень хорошо. Надо будет посмотреть где я напортачил тоже. |
Santechnik, поздравляю с новым отличным проектом, желаю, чтобы он развивался долго и успешно :)
|
Я завершил работу над Rev.0 и приступил к работам над Rev.A. :v2_cool: Там будет значительное количество изменений и новых идей. Я надеюсь, что Rev.A будет достаточно отработана, чтобы уже можно было ее повторять. Я выложил результаты работ над Rev.0 и планы по Rev.A в своем блоге, так что тем, кому интересны детали, вот ссылка:
http://electronicsfun.net/RU/archives/739 Rev.0 сейчас запускается и работает с оригинальной клавиатурой, и всеми видео-выходами (VGA, S-Video, RCA). Так же я сделал простой калькулятор для генерации тактовых сигналов в ПЛИС с помощью фазового аккумулятора. Этот метод, подсказанный svofski, прекрасно работает в Rev.0, но его расчет вручную не очень удобен, так что я выложил калькулятор здесь: http://electronicsfun.net/RU/archives/699 |
Для тех кто не дочитал до конца статью в моем блоге, поясню, что Rev.A будет не просто репликой "Агат-7", но и репликой Apple, Commodore, Atari и пр. компов с процессорами семейства 6502. По возможности я постарался учесть нюансы этих компьютеров в этой версии, чтобы избежать проблем при их дальнейшей имплементации на этой плате. Например, я добавил возможность перевода адресной шины процесссора в 3-тье состояние, чтобы можно было реализовать ПДП с картами расширения или добиться совместимости с процессором 6510 из Commodore-64, который отличается от 6502 возможностью переводить шины в третье состояние (ну и 6-тью портами ввода/вывода, но это решается в ПЛИС).
Я почти закончил со схемой Rev.A и уже собирался начать разводить плату, но тут понял, что я упустил один важный момент - каждый компьютер имеет свою собственную палитру цветов и я уже не отделаюсь 3-х битным RGB плюс сигнал яркости, как реализовано сейчас. Почитав статьи о Commodore и Atari, я понял, что для более или менее аккуратной цветопередачи надо делать как минимум 15-битный RGB. Это означает, что потребуется на 11 ног ПЛИС больше, чем сейчас. Фактически это не оставляет больше никаких запасных ног если потребуется, например, дополнительно вывести сигнал на плату расширения какого-либо из имплементируемых компьютеров. Большинство из этих компьютеров используют YPbPr цветовое пространство и варианты их ограничены. Я посчитал, что будет достаточно 9 ног ПЛИС, чтобы вывести все возможные варианты для любого из компьютеров. Это всего на 5 ног больше чем сейчас и мы все еще имеем 6 ног в запасе. Но тут возникает проблема преобразования этого сигнала в RGB для вывода на монитор. Перебрав несколько вариантов я пока остановился на следующем варианте - установить на плате вторую ПЛИС Cyclone 2, но с 144 ногами. Благодаря тому, что она содержит в себе 13 умножителей 18х18 она сможет эффективно налету пересчитывать цветовое пространство в RGB используя таблицы, загруженные во встроенную память, либо просто напрямую использовать заранее подготовленные коэффициенты конвертации, если цветов не очень много и память позволит их разместить. Использование именно этой модели позволит применить уже существующую схему питания. Кроме того, эту ПЛИС можно будет программировать с помощью микроконтроллера STM32 как и основную ПЛИС. Дополнительным преимуществом такого решения будет возможность загрузки различных вариантов палитр под любой компьютер и их обновление с SD-карты также как и прошивки основной ПЛИС. Благодаря достаточному количеству ног, можно будет реализовать 24-битный RGB выход, добившись максимальной точности отображения оригинальных цветов имплементируемых компьютеров. Конечно, некоторые цвета могут выпасть из RGB палитры, но при 24-битном выходе близкий к нему цвет замены не будет сильно отличаться. Проект удорожается лишь на стоимость ПЛИС ($13) и резисторы для ЦАП. Не исключено, что дальнейшая оптимизация и определенность с имплементируемыми компьютерами приведет к тому, что Rev.B будет содержать этот модуль в себе и необходимость во второй ПЛИС отпадет, но пока я оставил бы некоторый запас на расширение. А теперь собственно вопрос :v2_dizzy_snowball: - есть ли какие-либо более изящные и/или дешевые способы решения этой задачи? Если нет, то завтра добавлю вторую ПЛИС в схему и начну разводку. |
с C64 придётся очень долго мучаться я думаю... там эмуляция видеоконтроллера - очень геморное дело... слишком много недокументированных особенностей, на которые опирается большинство интересного софта.
|
| All times are GMT +4. The time now is 01:06. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.