Урок 66. OSD-генератор MAX7456. Общее описание, функциональные возможности, параметры, подключение к плате Ардуино.

OSD-меню

Опять внеплановые уроки. На этот раз 3 урока об очень интересном способе вывода текстовой и графической информации на монитор со стандартным аналоговым видеовходом.

Предыдущий урок     Список уроков     Следующий урок

Мне заказали работу, в которой используется OSD-генератор MAX7456. Тема оказалась настолько интересной, что я забросил все и “на одном дыхании” написал эти уроки.

 

О чем идет речь.

OSD это сокращение от On Screen Display, перевод – “на экране дисплея”.

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

Типичным примером OSD-меню является меню любого современного телевизора. Глупо для установок параметров телевизора использовать отдельный дисплей, когда есть громадный экран.

Широко используется OSD-информация в системах видеонаблюдения, цифровых фотоаппаратах, сотовых и стационарных телефонах… Практически во всех устройствах, у которых есть дисплей.

В общем случае система выглядит так. На OSD-контроллер подается исходный (фоновый) аналоговый видеосигнал, а на выходе контроллера формируется видеосигнал с дополнительной текстовой и графической информацией.

Вот пример, в котором я наложил надписи  на видеосигнал камеры, направленной на коробку с конфетами.

OSD-меню

Существует достаточно простой и дешевый способ реализации OSD-контроллера. Это использование OSD-генератора - микросхемы MAX7456.

Эта микросхема позволяет наложить на стандартный видеосигнал текстовую и графическую информацию. В случае отсутствия видеосигнала, микросхема сама сформирует его. Т.е. MAX7456 может использоваться, как генератор видеосигнала, служить своеобразной видеокартой.

Микросхема MAX7456

Стоимость микросхемы на Али Экспресс составляет немногим более 100 руб.

 

OSD-генератор MAX7456. Основные возможности.

Подробную информацию о микросхеме MAX7456 можно посмотреть в технической документации фирмы-производителя Maxim Integrated (MAX7456.pdf).

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

MAX7456 это OSD-генератор. Микросхема позволяет:

  • Наложить на стандартный NTSC или PAL видеосигнал текстовую информацию. С учетом того, что знакогенератор микросхемы оперативно перегружается, можно говорить о выводе и графической информации (скорее псевдографической).
  • Сформировать видеосигнал с текстовой и псевдографической информацией. Т.е. реализовать функции видеокарты.

Для нас это означает, что MAX7456 может быть использована в Ардуино-системах как для формирования OSD-меню, так и в качестве видеокарты со стандартным видеовыходом.

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

Информация отображается в виде 16 строк по 30 символов в каждой. Каждый символ или знакоместо представляет собой матрицу разрешения 12 x 18 пикселей.

Каждый пиксель знакоместа может иметь состояния, определяемые при программировании знакогенератора:

  • черный;
  • белый;
  • прозрачный при наличии входного видеосигнала и серый при его отсутствии.

Каждый символ имеет собственные атрибуты, которыми может быть задан:

  • инверсный режим отображения;
  • мигающий режим;
  • черный или серый фон.

Для каждой строки может быть задана своя яркость.

Входной видеосигнал и OSD-информация могут быть отключены программно.

Могут быть заданы:

  • яркость фона;
  • временные параметры мигания символов;
  • смещение информации по вертикали и горизонтали.

 

Принцип работы и организация MAX7456.

Как любой видеоконтроллер, MAX7456 содержит экранную память и знакогенератор.

Экранная память хранит коды символов для каждого знакоместа экрана. Ее содержимое определяет информацию на экране.

Экранная память может быть оперативно загружена по интерфейсу SPI. Когда нам надо вывести какие-то символы на экран, мы должны загрузить их коды в экранную память. Адреса, по которым мы записываем коды, определяют места отображения символов на экране.

Для формирования видеосигнала из экранной памяти под управлением внутренней логики микросхемы в цикле считываются коды символов. Считываются они последовательно, синхронно с синхроимпульсами входного видеосигнала и поступают на знакогенератор.

Знакогенератор это тоже память, но она определяет соответствие кода символа графическому изображению символа. Т.е. в знакогенератор мы должны загрузить пиксельные карты символов.

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

В отличие от обычных видеоконтроллеров выходной поток пикселей знакогенератора MAX7456  управляет мультиплексором, который коммутирует входной видеосигнал фонового изображения. Т.е. может быть задана не только яркость элемента видеосигнала, но и передано фоновое изображение для этого пикселя.

Все процессы происходят синхронно с синхроимпульсами фонового видеосигнала. В случае его отсутствия вырабатываются свои синхроимпульсы. В этом случае MAX7456 становится автономным генератором видеосигнала.

Структурная схема микросхемы MAX7456 выглядит так.

Структурная схема MAX7456

 

Экранная память.

В экранную память мы загружаем коды символов, которые желаем увидеть на экране.

Экранная память – это ОЗУ. При выключении питания вся информация теряется.

Разрешение экрана 16 строк по 30 символов. Значит, экранная память должна содержать информацию для 480 символов.

Организация экранной памяти

В следующих уроках мы будем разрабатывать программы для работы с OSD-дисплеем. Под адресом символа на экране будем понимать адреса от 0 до 479 согласно этой схеме.

Каждый адрес символа содержит 2 байта.

Код символа
(адрес знакогенератора)
Атрибуты символа
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 LBC BLK INV - - - - -
  • Код символа определяет, какой символ будет выведен в этом месте экрана.
  • Атрибуты символа могут менять режим отображения для конкретного места экрана.
    • LBC – признак определяет выводить для фона символа фоновое изображение (изображение входного видеосигнала) или использовать заданный фон. Т.е. символ будет со своим фоном или накладываться на изображение входного видеосигнала.
    • BLK – признак включает режим мигания.
    • INV – признак задает инверсный режим отображения символа. Черный пиксель знакогенератора становится белым и наоборот.

В первоисточнике формат экранной памяти показан так.

Формат экранной памяти

Загрузка информации в экранную память происходит по интерфейсу SPI. В момент записи может быть нарушена регенерация информации на экране. Чтобы этого не происходило можно выбрать режим загрузки экранной памяти в короткие отрезки времени гашения синхронно с синхроимпульсами вертикальной синхронизации VSYNC.

 

Память знакогенератора.

Память знакогенератора определяет изображение символов. Это EEPROM, т.е. память, которая сохраняет информацию при выключении питания.

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

Память знакогенератора содержит битовые карты для 256 символов. Ее формат 256 ячеек по 64 байта.

Символ имеет размерность 12 x 18 пикселей.

Каждый пиксель определяется 2 битами.

Атрибуты пикселя Режим отображения
00 Непрозрачный черный
01 Непрозрачный белый
10 Прозрачный, при наличии входного видеосигнала и серый при его отсутствии
11 Прозрачный, при наличии входного видеосигнала и серый при его отсутствии

Получается, что байт содержит атрибуты для 4 пикселей.  Всего для знакоместа используется 54 байта.

Формат памяти знакогенератора

В памяти знакогенератора для каждого символа отведено 64 байта. Используются первые 54.

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

Формат памяти знакогенератора

Программирование EEPROM знакогенератора происходит через интерфейс SPI.

Разработчики микросхемы гарантируют не менее 100 000 циклов записи EEPROM знакогенератора и хранение информации в этой память не менее 100 лет.

Более подробно все режимы отображения информации и форматы данных  рассмотрим при описании Ардуино-библиотеки MAX7456.h.

 

Подключение микросхемы MAX7456.

Микросхема выпускается в 28 выводном корпусе 28 TSSOP-EP.

Микросхема MAX7456

Имеет следующее назначение выводов.

Распиновка MAX7456

Номер
вывода
Название Функциональное назначение
1, 2, 13-16, 27, 28 N.C. Не используются. Ни к чему не подключены.
3 DVDD Цифровое питание. Необходимо установить блокировочный конденсатор 0,1 мкФ между этим выводом и общим проводом (DGND).
4 DGND Цифровая земля.
5 CLKIN Используется для непосредственного подключения кварцевого резонатора частотой 27 мГц или для подачи частоты внешнего генератора.
6 XFB Используется для непосредственного подключения кварцевого резонатора частотой 27 мГц.
7 CLKOUT Выход внутреннего генератора 27 мГц.
8 CS Выбор кристалла, активный уровень низкий.
9 SDIN Сигнал входных данных интерфейса SPI.
10 SCLK Сигнал тактирования интерфейса SPI.
11 SDOUT Сигнал выходных данных интерфейса SPI.
12 LOS Сигнал потери синхронизации.
Переходит в высокий уровень, если во входном видеосигнале микросхема не находит 32 импульса синхронизации подряд.
Переходит в низкий уровень, если получено 32 синхроимпульса.
Выход типа “открытый коллектор”.
Необходимо подключить его через резистор 1 кОм к питанию 5 В.
Высокий уровень означает потерю синхронизации.
17 VSYNC Импульсы вертикальной синхронизации.
Выход типа “открытый коллектор”.
Необходимо подключить его через резистор 1 кОм к питанию 5 В.
18 HSYNC Импульсы горизонтальной синхронизации.
Выход типа “открытый коллектор”.
Необходимо подключить его через резистор 1 кОм к питанию 5 В.
19 RESET Сброс микросхемы. Активный уровень – низкий. Длительность импульса не мене 50 мс.
20 AGND Аналоговая земля
21 AVDD Аналоговое питание. Необходимо установить блокировочный конденсатор 0,1 мкФ между этим выводом и аналоговой землей (AGND).
22 VIN Входной видеосигнал.
23 PGND Земля драйвера выходного видеосигнала. С аналоговой землей (AGND) должен быть соединен только в одной точке.
24 PVDD Питание драйвера выходного видеосигнала. Необходимо установить блокировочный конденсатор 0,1 мкФ между этим выводом и сигналом PGND.
25 SAG Сигнал коррекции выходного видеосигнала. Если коррекция не используется, должен быть соединен с сигналом VOUT.
26 VOUT Выходной видеосигнал.

Из электрических характеристик для нас самое важное:

  • Напряжение питания микросхемы (выводы  DVDD, AVDD, PVDD) – 5 В.
  • Потребляемый ток:
    • DVDD до 30 мА;
    • AVDD до 35 мА;
    • PVDD до 80 мА.
  • Цифровые сигналы имеют TTL уровни ( 0 / 5 В ).

Разработчики микросхемы рекомендуют следующую схему подключения.

Схема подключения MAX7456

Заказчик работы по OSD-контроллеру, Игорь из Москвы, изготовил по этой схеме модуль. В качестве Csag он использовал танталовый электролитический конденсатор емкостью 100 мкФ (2 конденсатора по 47 мкФ).

Модуль MAX7456

К плате Ардуино я подключил модуль согласно таблице.

Плата Arduino Nano Модуль MAX7456
PIN 10 CS
PIN 11 SDIN
PIN 13 SCLK
PIN 12 SDOUT
+ 5 V + 5 V
GND GND

Кому-то удобнее будет схема.

Подключение MAX7456 к Ардуино

Собранное все вместе у меня выглядит так.

Вид собранной системы

Вид собранной системы

Вид собранной системы

Вид собранной системы

Моя система состоит из платы Arduino Nano, модуля MAX7456, автомобильного монитора, камеры, блока питания 12 В.

Плата Ардуино питается от USB компьютера, OSD-модуль питается от платы. Монитор и камера запитаны от блока питания 12 В.

 

В следующем уроке будем изучать Ардуино-библиотеку для управления OSD-генератором.

Предыдущий урок     Список уроков     Следующий урок

Один комментарий на «Урок 66. OSD-генератор MAX7456. Общее описание, функциональные возможности, параметры, подключение к плате Ардуино.»

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *