VGA на ПЛИСе

Для отображения какой-нибудь информации, или просто для отладки проекта, имеющихся на марсоходе восьми cветодиодов часто бывает недостаточно. В качестве дополнительного "средства отображения" можно использовать видеомонитор (часто остаются "не у дел" морально устаревшие CRT мониторы ) или даже телевизор, только для этого нужно реализовать соответствующий видеоадаптер.

К сожалению полноценный текстовый видеорежим в Марсоход не укладывается, поэтому хочу представить очень "облегченную" версию,  которую я использовал для отладки некоторых своих проектов.

Как видно из картинки , видеорежим имеет 64 (8*8) знакоместа. Символы 4х-битные, образы символов ( цифры от "0" до "F" ) зашиты в UFM. Таким образом на экране можно отобразить 64 4х-битных шестнадцатиричных числа ( ну или, например, 8 32х-битных ).

Файл 

содержит два проекта: vga100 - для видеомонитора и tv100 - для телевизора.

В качестве примера, в обоих проектах, в самой верхней строке отображается константа, в последней позиции предпоследней строки - состояние кнопок, а в самой нижней строке - счетчик кадров. Кроме того, проекты имеют ряд отличий:

  1. Разные выходные пины. Для vga используется три пина (F0, F1, F2), а для tv два (DP, DN)
  2. Разная тактовая частота. Для vga - 10мгц (делим входные 100мгц на 10 четырехбитным счетчиком). Для tv - 5мгц (те-же самые 100мгц делим на 20 пятибитным счетчиком) .
  3. Разные синхрогенераторы. В vgasync_gen, в tv - tv_sync.

Для подключения платки к видеомонитору нужно сделать проводочек:

VGA разъем к плате Марсоход

На VGA разъеме:

  • 1,2,3 - соединены вместе и подключены к F0 - это видео (ч/б)
  • 6,7,8 - соединены вместе и подключены к GND - это земля
  • 13 - горизонтальная синхронизация (HSYNC) - F1
  • 14 - вертикальная синхронизация (VSYNC)    - F2

Для подключения платки к телевизору нужно сделать другой проводочек:

TV к плате Марсоход

Для получения телевизионного сигнала синхроимпульсы и видео нужно "смешивать" с помощью "весовых" резиков. Для этой цели мы использовали пины  DP и DN, на которых резисторы уже есть, и соединили их вместе в самом проводочке.
Изображение на телевизоре такое-же как и на мониторе, только немного отличается в размерах.

tv_out

При питании платки от относительно большого напряжения (3.5-4В) амплитуда видеосигнала может оказаться довольно большой и, соответственно, яркость изображения избыточной. В этом случае, для уменьшения яркости на сигнал "видео" в vga или на весь сигнал в tv можно поставить последовательно резистор 100-200 ом.

 

Добавить комментарий