PDA

Просмотр полной версии : Хочется видяху типа ЮТ-88. Подскажете?



alm604
19.02.2017, 17:03
Доброго времени суток, форумчане.
Ковыряюсь давненько в свободное время с 80С552 (80С52, но навороченный). Уже писал тут по нему, просил помочь с GAL16V8 - помогли, за что спасибо большое. С тех пор много времени и метров МГТФ прошло. Сейчас у меня есть программаторы Altera и Xilinx. В проекте используется XC9536 в роли дешифратора адреса. И еще 3 таких лежат, ждут своей участи.
Общение с МК происходит через UART. Но для ввода я прицепил К580ВВ55, а к ней клавиатуру от ноутбука. Это уже работает, а вот вывод по-прежнему в UART. Хочется мне прицепить VGA монитор. Пусть даже пока в Ч/Б. Разрешение 640*480, что по моим расчетам даст текстовое разрешение 80*48 (символы 8*8 + 2 строки вертикального отступа между строками). ОЗУ есть, ПЗУ тоже. Но не хочется мне это на рассыпухе собирать - много жрет она. Хочу на ПЛИС.
Из ПЛИС имеются:
3*XC9536 - 44ногие
3*XC9536XL - 64ногие
1*XC9572XL - 64ногая
1*EPM3256 - 208ногая на плате от игрософта
4*EPM240T100C5
Проблема в том, что использовать, например, EPM3256 с таким количеством ног - как минимум избыточно. EPM240T100 - проблема с 5в-толерантностью. Хотел бы использовать именно XC9536-PC44, так как они 5 вольтовые, вписываются в конструкцию (макетка, МГТФ, панельки МС). Кроме того, я пока только схемным вводом пользуюсь. Надо бы Verilog выучить, понять, но пока никак...
Дополнительной проблемой в плане моего творчества стало рождение двойняшек дочерей. Так что платы я пока делать не могу( Это затрудняет использование XC9536XL, XC9572XL, EPM240 и других МС с корпусами не DIP или PLCC.
Нашел тут http://www.polesite.ru/?p=2553 интересную задумку, пробовал перенести в XIlinx ISE, но вылазят ошибки.
Поискал по знакомым ISA VGA карточек - все глаза таращат, никто не видел их давно.
Может вы что-то подскажете?

UA3MQJ
19.02.2017, 23:07
Поздравляю с рождением двух дочерей!
Всетаки рекомендую начать использовать Verilog. Будет больше времени на дочек. Пишем на верилог и всегда представляем, как оно в схемотехнике. Если это понимание есть, то это просто замечательно.
С ходу vga адаптер наверняка будет сложно. Хотя сам по себе он не сложный. Лучше бы начать с вещей совсем попроще. Например дешифратор в семисегментник или типа того.
Про VGA поглядите тут http://www.fpga4fun.com/PongGame.html и все остальное тоже там рекомендую поглядеть. Очень качественный и правильный верилог код там. Не в пример некоторым другим местам.

alm604
20.02.2017, 10:17
Спасибо за поздравление и за ответ. Этот сайт я как-то пропустил... Попробую сегодня на ксилинксе хоть синхрогенератор сделать. Считал по количеству ног и получается, что в одну ПЛИС я могу впихнуть синхрогенератор и регистр сдвига, а во вторую - мультиплексоры ША и ШД. Хотя последнюю, наверное, разумнее будет поменять на горсть 74ls244, 245. КП11 могут такую частоту и не вывезти, а ПЛИСину ради мелочи тратить жаль.

rw6hrm
20.02.2017, 12:15
Поискал по знакомым ISA VGA карточек - все глаза таращат, никто не видел их давно.
...сколько надо? ;)

По теме: обязательно VGA? А на обычный телевизор не? Есть варианты (на VGA в том числе) на обычных Атмегах и ПИКах, причём как с СОМ-входом, так и на восьмибитную шину. И не жрущие они, как многим кажется... Правда это если соблюсти первоначальное условие - "...типа ЮТ-88", т.е. чисто текстовые режимы, про графику и цвет можно и забыть (в стартовом варианте).
Универсальный вариант тут, http://geoffg.net/terminal.html , на шину тут, http://www.qsl.net/rw6hrm/html/8bitdisp.htm (последний вариант пока без кириллицы, однако полностью поддерживает прошивку оригинала, с которого списывалось, в том числе и графику).

alm604
20.02.2017, 17:23
Телевизор дома один, а мониторов много. Есть телевизоры от авто. С RGB входом в том числе, но 5,8 - 7 дюймов... Как коту под хвост смотришь. Поэтому VGA, да...
А у меня беда-печаль. Те три XC9536-44 оказались какими-то старыми, что ли. Не прошиваются. IMPACT говорит XC9536_unsupported. Я находил несколько сайтов с советами поставить старую среду и прошить через LPT, но как раз из-за отсутствия LPT я купил USB кабель JTAG. Засада, однако. Теперь к 4 штукам EPM3032 с залоченным JTAG добавились эти три обморока.
Ну значит придется как-то делать плату под XC9536XL-64. Одна стоит на плате, не выкусить, но JTAG выведен - я ее уже удачно прошил. К тому же она 5В-толерантна)
И, да, схемы на мегах, пиках я видел. Их отличие от ЮТ вижу в том, что не могу, указав адрес, отобразить символ, например, в центре экрана. Так же я не могу узнать какой символ отображен по заданному адресу. А хотелось бы.

rw6hrm
20.02.2017, 19:58
не могу, указав адрес, отобразить символ, например, в центре экрана. Так же я не могу узнать какой символ отображен по заданному адресу.
По первой части. Если указывать координаты, то проблем никаких. А вот со второй то да, проблема.., но проблема ли? ;) За последние лет двадцать такая задача ни разу не понадобилась...

ALS
21.02.2017, 00:37
Это может понадобиться, наверное, в игрухах с псевдографикой.

alm604
21.02.2017, 16:51
Кстати, да. Был у меня давным-давно спек. На нем я учился бейсику. Книжек не было, приходилось смотреть исходный код программ, написанных другими, менять цифры и смотреть результат) Позже писал программы типа теннис, где использовал псевдографику. Там, помнится, была у меня задача узнать какой символ в заданной координате находится.
Но решения на меге мне не подходят, в первую очередь потому, что не vga. Телевизор мне жена не уступит. А у автомобильных маленькая диагональ. Есть 15" свободный моник - под него и попробую сделать.

- - - Добавлено - - -

Удалось платку сделать, запаять, прошить. Подключаю - нифига. Не пойму в чем дело, осциллятор не работает или ПЛИС что-то не выдает синхросигналы... Без осциллографа не проверить. Он на работе(

alm604
28.02.2017, 04:25
Всё отлично! Я перепутал hsync, vsync). Монитор включается. Пока только полоски выводил с делителей. Полоски странные - в начале яркие, к концу тусклеют. Как будто кондер зарядился. А если мне надо будет весь экран засветить?

alm604
06.03.2017, 12:28
https://yadi.sk/i/sWN_Q2MS3F7HY3
Что-то мне изображение символов не нравится...
На выходе видяхи поставил не сдвиговый регистр, а мультиплексор типа кп7. Не пойму что именно не успевает отображать первый столбец нового символа.
Синхрогенератор взял из статьи с сайта fpga4fan. ПЗУ генератора символов W27C512-45, старшие адреса занулил. А0-А2 - к счетчику строк Y0-Y2 в плис, ШД ПЗУ снова в плис на мультиплексор. Выход которого из плис сразу в G-VGA.
Не нашел кварца на 25.175, использую 25 ровно. Старый моник не выдержал такой наглости и не стал показывать, а вот один новый и телик 32" отнеслись лояльнее.

- - - Добавлено - - -

Блин, вот что меня "радует" в публикации поста в разделе для новичков, так это почти полный игнор вопроса гуру вычислительной техники. Публиковал в других разделах - советов было больше и быстрее, правда, пополам с рекомендациями свалить в раздел для начинающих)))
Подскажите, пожалуйста, почему на выходах видео ставят сдвиговые регистры, а не мультиплексоры? Я в таком случае не могу понять по какому сигналу в него должны данные защелкнуться. Между символами пустые строки и столбцы мне нежелательно делать - псевдографика будет с пробелами.
С адресацией тоже получилась фигня - 64 символа в строке, затем повтор. Думается мне придется ставить 9572 и организовывать еще счетчики знакомест для удобной адресации, так как под видео у меня только 16кб, из которых 8 - под код символа и 8 под атрибут знакоместа - цвет символа и цвет фона.

b2m
06.03.2017, 13:27
почему на выходах видео ставят сдвиговые регистры, а не мультиплексоры?
Я не гуру, но полагаю, потому что выборка из ПЗУ генератора символов не мгновенная, а требует времени. А сдвиговый регистр либо записывает новое значение пикселей (в том числе и отображаемого в данный момент), либо сдвигает, и делается это по тактовому сигналу, т.е. происходит регулярно, не зависимо от времени выборки данных из ПЗУ.

alm604
06.03.2017, 14:30
https://yadi.sk/i/zKwKdKMM3F84L9
Получилось. Теперь надо сделать адресацию корректную, а то перфекционист его может разбить.

- - - Добавлено - - -

b2m, у меня выборка из ПЗУ в начале каждого символа. Далее, пока отрисовываем символ, адрес ПЗУ не меняется, оно находится, можно сказать, в покое с выданными данными. Пробежались мультиплексором - меняем адрес на новый. Частота выборки, мне кажется, точно та же. Видимо можно и регистр и мультиплексор. Может быть у реальной КП7 скорость ниже. Просто у меня мультиплексор в плисине. А так мне нравится результат. Почти)

b2m
06.03.2017, 21:10
Ну, в ПЛИСине можно и мультиплексор, если дизайн синхронный. Но, чем длиннее цепочка от регистра до регистра, тем ниже максимальная частота.


Пробежались мультиплексором - меняем адрес на новый
Вот отсюда и артефакты на границе символов. Если адрес меняется одновременно с переключением мультиплексора на начальный пиксель, то он (пиксель) сначала отобразится от предыдущего символа, и только когда ПЗУ выдаст новые данные, начнётся отображение текущего символа. Время выборки из ПЗУ сравнимо со временем отображения одного пикселя (если это, конечно, не супер-быстрое ПЗУ, а наше, советское).

alm604
06.03.2017, 21:29
b2m, не. В моем случае виноват я. Символы были рисованы для дисплеев от сотовых, там вывод вертикальными столбцами по 8 бит. Для этого проекта я применил построчный вывод, чтоб снизить частоту выборки из ПЗУ. Соответственно мне пришлось каждый символ поворачивать на 90 град. Благо программа это позволяет. Но перевернул я не туда) При первом запуске буквы оказались зеркальными по горизонтали. Ну не переписывать же таблицу символов - поменял порядок ШД ПЗУ и мультиплексора D0-D7, D1-D6... Только сдвинул где-то. МГТФ же. Там напутать - раз плюнуть. А видяха сделала ровно то, что я напаял - выдала со сдвигом) Сегодня нашел проблему.
Вот за что люблю железо, так тут если не работает - дурак я, а вот с людьми - там варианты бывают)