Для отображения какой-нибудь информации, или просто для отладки проекта, имеющихся на марсоходе восьми cветодиодов часто бывает недостаточно. В качестве дополнительного "средства отображения" можно использовать видеомонитор (часто остаются "не у дел" морально устаревшие CRT мониторы ) или даже телевизор, только для этого нужно реализовать соответствующий видеоадаптер.
К сожалению полноценный текстовый видеорежим в Марсоход не укладывается, поэтому хочу представить очень "облегченную" версию, которую я использовал для отладки некоторых своих проектов.
Как видно из картинки , видеорежим имеет 64 (8*8) знакоместа. Символы 4х-битные, образы символов ( цифры от "0" до "F" ) зашиты в UFM. Таким образом на экране можно отобразить 64 4х-битных шестнадцатиричных числа ( ну или, например, 8 32х-битных ).
Файл
В качестве примера, в обоих проектах, в самой верхней строке отображается константа, в последней позиции предпоследней строки - состояние кнопок, а в самой нижней строке - счетчик кадров. Кроме того, проекты имеют ряд отличий:
- Разные выходные пины. Для vga используется три пина (F0, F1, F2), а для tv два (DP, DN)
- Разная тактовая частота. Для vga - 10мгц (делим входные 100мгц на 10 четырехбитным счетчиком). Для tv - 5мгц (те-же самые 100мгц делим на 20 пятибитным счетчиком) .
- Разные синхрогенераторы. В vga - sync_gen, в tv - tv_sync.
Для подключения платки к видеомонитору нужно сделать проводочек:
На VGA разъеме:
- 1,2,3 - соединены вместе и подключены к F0 - это видео (ч/б)
- 6,7,8 - соединены вместе и подключены к GND - это земля
- 13 - горизонтальная синхронизация (HSYNC) - F1
- 14 - вертикальная синхронизация (VSYNC) - F2
Для подключения платки к телевизору нужно сделать другой проводочек:
Для получения телевизионного сигнала синхроимпульсы и видео нужно "смешивать" с помощью "весовых" резиков. Для этой цели мы использовали пины DP и DN, на которых резисторы уже есть, и соединили их вместе в самом проводочке.
Изображение на телевизоре такое-же как и на мониторе, только немного отличается в размерах.
При питании платки от относительно большого напряжения (3.5-4В) амплитуда видеосигнала может оказаться довольно большой и, соответственно, яркость изображения избыточной. В этом случае, для уменьшения яркости на сигнал "видео" в vga или на весь сигнал в tv можно поставить последовательно резистор 100-200 ом.
Подробнее...