Авторизация


...

Кто на сайте?

Сейчас 85 гостей и ни одного зарегистрированного пользователя на сайте

Статистика

-Посетители : 22985
-Материалы : 209

Пользователь сайта продает...

  Программатор Pic K-150

Пользователь сайта покупает...

Видеоадаптер на PIC18F46K20

Автор: Николай Викторов Просмотров: 7590

 

 

 

Видеоадаптер – это в нашем понимании электронная плата, которая выводит  данные из видеопамяти  (в нашем случае ОЗУ МК) на экран телевизора (монитора). Видеоадаптер посылает в  монитор сигналы управления яркостью лучей и сигналы развертки (синхронизации) изображения.  По мимо основной функции , он может иметь встроенные аппаратные «модули», такие как на пример часы , календарь и др..

Можно посмотреть фото видеоадаптера , работающего в железе (данные передаются от "управляющего " МК PIC18F25K20)-  смотреть .

Описание  работы видеоадаптера .    

Данная конструкция  основана на микроконтроллере  PIC18F46K20. Этот  микроконтроллер выбран из-за его доступности (стоимость менее 100 рублей) и нужными техническими характеристики , необходимыми  для реализации данного проекта. Этот МК позволяет работать  при  тактовой частоте 64 MHz и имеет  размер ОЗУ 3936 байт, наличие необходимого количества портов,все  это дает возможность создать графическое изображение с разрешением 200х143. Для того что бы иметь полноценное цветное изображение необходимо иметь ОЗУ почти в восемь  раз больше .В этой конструкции применена функция  сдвигающего регистра , яркостной сигнал снимается с PortD,7 .

После копирования в PortD из ОЗУ байта данных регистр поочередно   сдвигается до нулевого  разряда  , в результате  один байт “несет“  информацию о  8 «пикселях» горизонтального разрешения. В одной активной строке задействовано 26 байт ОЗУ. Каждый первый байт несет информацию о цвете фона (первый полубайт) и цвете графики (второй полубайт)  . В связи с этим  цвет графики может изменяться только построчно , т.е. одна строка может быть только одного цвета ,кроме этого  можно выбрать цвет фона строки , группы  строк , или всего экрана. Для большинства конструкций этого в полнее достаточно.  Можно работать и в черно-белом режиме , для этого переделывать ни чего не надо , да и  схема упрощается , исключается часть элементов незадействованных при черно-белом изображении. Принцип работы видеоадаптера чем-то схож с  графическим индикатором, в него также можно передать данные для отображения , которые так и будут «крутиться» до очистки или замены другими данными. В видеоадаптере прошит шрифт 8х8 (включая русский), для вывода знака  необходимо от управляющего МК передать три байта –это адрес в местоположения на экране монитора (два байта)  и байт номера шрифта согласно таблице, в результате на экране монитора появится выбранный знак высотой 8 строк.

 

Таблица шрифта. рис.№1

 

Шрифт располагается в памяти программ 8 блоков по 256 байт , начиная с адреса 0100h .Это необходимо для удобства вывода текстовой информации , указав  адрес знака первого байта в последующем обращении увеличиваем на 1  регистр TBLPTRH и чтение происходит уже из следующего блока шрифта и так производится выборка  8 байт.

рис.№2

 

Схема видеоадаптера.

 

Распиновка  разъемов  Х2 и Х3 .

 

В микроконтроллере PIC18F46K20, видеосигнал для вывода на экран телевизора (монитора) формируется следующим образом:

 

  • С вывода RВ5 (sinx) снимаются строчные и кадровые синхроимпульсы, необходимые для синхронизации телевизионного приемника. На осциллографе или в Протеусе на этом выводе можно наблюдать такую же форму синхроимпульсом как и на   рисунке №3 .

 

Здесь показана форма синхроимпульсов  обоих полукадров  (полей). Всего 625 строк (кадр). Все временные интервалы синхроимпульсов соответствуют  ГОСТ 7845-72 .

Временные параметры видеосигнала приведены в таблице.

 

 

  • С выводов RE0,RE1,RA2  снимаются сигналы цветности фона , которые через  резисторы  R2, R3, R4 (регулировка уровня цвета фона) поступают на соответствующие ключи  микросхемы CD4066 (2), задача которой отключать цвет фона на время вывода графики .(иначе цвет фона будет смешиваться с цветом графики).
  • С выводов RA0,RA1,RA2 снимаются сигналы цветности графики (изображения) , которые поступают на управляющие выводы соответствующих ключей  CD4066 (1). С помощью резистора R6 (яркостной сигнал) можно регулировать уровень цвета графики.
  • Порт «С»  работает на вход ,получает данные от другого МК , для обновления ОЗУ видеоадаптера или вывода текстовой информации.
  • RB0,RB2,RB4 управляющие сигналы для обмена с другим МК.
  • Порт «Д» целиком задействован для яркостного сигнала (изображения выводимого на экран). Сигнал снимается с RD7. Работает по принципу сдвигающего регистра, из-за ограничения объема памяти ОЗУ.

Алгоритм работы видеоадаптера

При старте программы копируется заставка  из памяти данных (video) в область ОЗУ (видеопамять) начиная с адреса 0000Н , всего 3840 регистров. Далее программа  циклически формирует необходимые сигналы (видеосигнал), во время временных задержках производится обновление ОЗУ  и обмен данными с управляющим МК. Во время формирования активной части строки (видимой на экране монитора )из видеопамяти поочередно считывается байт данных  и копируется в PortD. В каждой строке первый байт информация о цвете фона и графики и  25 байта данных, разрешение строки за счет сдвига регистра получается 200 бит. Всего активных строк (видимых на экране телевизора) 143, т.е. разрешение получается 200х143.Смесь синхроимпульсов , сигналов цветности (R,G,B ) и яркостный (Y)  сигнал , поступают на кодер PAL . Если необходимости в цветном отображении графики нет , то можно взять черно-белый сигнал с разъема Х3 sinx и Y , соединив их вместе и подать на вход монитора, предварительно  отрегулировать уровни синхроимпульсов 0.3 вольта , по отношению к полному видеосигналу 1 вольт.

Обновление видеопамяти происходит по параллельному порту «С» , алгоритм обновления следующий:

  • Копируются FSR0L,FSR0H во временные  регистры для последующего восстановления .
  • Далее проверяется наличие данных для приема , если есть, то проверяется начало ли пакета , если начало, то принятый байт копируется в регистр FSR0L, указывающий младший байт адреса назначения.
  • Сообщаем о принятии первого байта и готовности приема следующего.
  • Проверяем наличие следующего байта , если есть копируем байт в FSR0H, указывающий  старший  байт адреса назначения.
  • Сообщаем о принятии второго байта и готовности принять байт данных.
  • Проверяем наличие байта данных , если есть копируем в видеопамять.
  • Подтверждаем о принятии пакета.
  • Восстанавливаем регистры FSR0L,FSR0H.

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

Алгоритм вывода текстовой информации такой же , за исключением полярности управляющих сигналов.

Во второй части  статья будет рассказано о подключении кодера PAL и пример работы с МК PIC18F25K20.

При копировании материала активная ссылка на источник обязательна!

Обсудить на форуме.

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Случайные статьи....

Prev Next

Вариант создания клавиатуры без прерываний

19-02-2011 Александр Милевский

Вариант создания клавиатуры без прерываний

Как известно, управление индикатором на основе HD44780, ведется по шине данных. Это 8 или 4 занятых порта контроллера. Практически все время «простаивают». Вот и подумал, чем бы их еще занять. После копаний в Интернете родился вариант «для меня» универсальной клавиатуры, которым...

Инфракрасный счетчик вошедших/вышедших на основе дальномеров.

23-08-2014 Александр Маюнов

Инфракрасный счетчик вошедших/вышедших на основе дальномеров.

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

Разлочка автонавигатора Prestigio GeoVision 5300.

16-12-2012 Алексей

Разлочка автонавигатора Prestigio GeoVision 5300.

Хочется надеяться что эта статья положит начало целому циклу статей по связке микроконтроллер-WinCE. В частности использовать портативное устройство для вывода различного рода информации, например, связать логический анализатор с WinCE. В свое время мной был куплен автонавигатор Prestigio GeoVision 5300. Естественно целью...

Программирование c нуля в AVRStudio 5 (ч.1)

04-02-2012 Радик

Программирование c нуля в AVRStudio 5 (ч.1)

Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще программирование, упирается сразу в несколько вопросов:1.Какой микроконтроллер выбрать для максимально быстрого освоения?2.Какой основной инструмент (программу) использовать для начала работы?3.Какие аппаратные средства доступны для начала программирования?4.Какую литературу использовать?  


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru