MAX7456: микросхема OSD |
![]() |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAX7456 представляет собой одноканальный монохромный генератор для наложения на видеосигнал какой-либо информации (псевдографика, текст, это так называемая технология on-screen display, OSD). Применение этой микросхемы устраняет необходимость во внешних схемах драйвера видео, выделения синхросигнала, коммутатора видеосигнала, EEPROM. MAX7456 поддерживает программируемую таблицу 256 символов пользователя, стандарты NTSC и PAL. MAX7456 позволяет просто отображать такую информацию, как логотип компании, произвольную графику (составленную из символов псевдографики), время и дату с любыми символами. В MAX7456 уже загружено 256 символов и пиктограмм, которые можно перепрограммировать непосредственно в схеме через порт SPITM. MAX7456 доступна в 28-выводном корпусе TSSOP и она может использоваться в диапазоне температур -40°C .. +85°C. Примечание: это перевод даташита [1]. Расшифровку некоторых терминов и сокращений см. в Словарике, в конце статьи. Основные функциональные возможности: ♦ 256 программируемых пользователем символов или пиктограмм во встроенном EEPROM Области применения: Камеры и системы безопасности Упрощенная функциональная диаграмма: Цоколевка корпуса TSSOP28 микросхемы, вид сверху: Описание выводов:
Рис. 1. Стандартные схемы тестирования. Рис. 2. Типовая рабочая схема подключения. [Подробное описание MAX7456] MAX7456 это одноканальный монохромный генератор OSD-графики (on-screen display), который интегрирует в себе все необходимые функции для генерации пользовательской OSD и вставке её в выходной видеосигнал. MAX7456 принимает композитный видеосигнал NTSC или PAL. Устройство включает схему восстановления постоянной составляющей входного сигнала (input clamp), схему выделения синхроимпульсов (sync separator), генератор синхронизации видеосигнала (video timing generator), мультиплексор добавления графики (OSD insertion mux), энергонезависиму память графики символов (nonvolatile character memory), память экрана (display memory), генератор OSD, кварцевый генератор, SPI-совместимый интерфейс для чтения/записи данных OSD и видеодрайвер (см. выше упрощенную функциональную диаграмму). Дополнительно MAX7456 предоставляет выходные синхроимпульсы вертикальной синхронизации (~VSYNC), горизонтальной синхронизации (~HSYNC) и выходной сигнал потери синхронизации (LOS). Выходной синхросигнал (CLKOUT) обеспечивает последовательное подключение нескольких устройств MAX7456. Микросхема поставляется с предварительно загруженными 256 символами 12 x 18 точек, графику которых может перепрограммировать пользователь (данные символов сохраняются в энергонезависимой памяти NVM). Эти символы и произвольная графика может быть выведена в выходной композитный видеосигнал (CVBS). В режиме NTSC могут быть отображены 13 строк по 30 символов. В режиме PAL могут быть отображены 16 строк по 30 символов. Когда входной видеосигнал отсутствует, образ OSD все еще может отображаться на выдеовыходе благодаря встроенному в MAX7456 внутреннему генератору видеосигнала и синхронизации. Видеовход. MAX7456 принимает на вход VIN стандартные композитные видеосигналы (CVBS) стандартов NTSC или PAL. Видеосигнал должен подаваться на вход через разделительный коденсатор 0.1 мкФ, это необходимо для обеспечения заданного времени строчного искажения (line-time distortion, LTD) и работы схемы восстановления постоянной составляющей по синхроимпульсам видеосигнала (video clamp settling time). Время video clamp меняется пропорционально входной разделительной емкости, и LTD меняется в обратной пропорциональности этой емкости. Рис. 3. Терминология композитного видесигнала. SYNC TIP LEVEL уровень синхроимпульса. Input Clamp. MAX7456 содержит схему восстановления постоянной составляющей видеосигнала, работающую на базе выделения строк. Она работает таким образом, что уровень нижней полки синхроимпульса SYNC TIP LEVEL равен 550 mV. Это восстановление постоянной составляющей необходимо для корректной работы выделения синхроимпульсов и обработки видео. Эта схема также устраняет низкочастотный шум, такой как 60 Гц, или другие дополнительные низкочастотные шумы. Sync Separator. Схема выделения синхроимпульсов (sync separator) детектирует в композитном видеосигнале синхронизацию, и генерирует из этого импульсы ~HSYNC и ~VSYNC. Это также используется для интернациональной синхронизации OSD и детектирования потери синхронизации (loss-of-sync, LOS). LOS перейдет в уровень лог. 1, если не был детектирован синхросигнал на VIN для 32 последовательных строк, и перейдет в лог. 0, если были определены 32 последовательных горизонтальных синхроимпульса. Во время потери синхронизации (LOS condition), когда VM0[5] = 0 (Video Mode 0 регистр, бит 5), на VOUT отображается только графика OSD. В этом состоянии входной образ для VOUT устанавливается на уровень серого, определяемый битами VM1[6:4]. Поведение всех режимов синхронизации показано в таблице 1. Таблица 1. Режимы синхронизации видеосигнала (Video Sync Modes).
X = не имеет значения Video Timing Generator. Это цифровой генератор интервалов времени видеосигнала (video timing generator, VTG), который генерирует все внутренние и внешние сигналы (VSYNC и HSYNC) тайминга видео. VSYNC и HSYNC могут быть синхронизированы с сигналом VIN, или формироваться независимо, когда действует режим внутренней синхронизации. VTG может генерировать сигналы интервалов времени стандартов NTSC или PAL, используя один и тот же кварцевый резонатор 27 МГц (см. рис. 4 .. 9). Рис. 4. Тайминг VOUT, VSYNC и HSYNC (NTSC, External Sync Mode). Рис. 5. Тайминг VOUT, VSYNC и HSYNC (NTSC, Internal Sync Mode). Рис. 6. Тайминг VOUT, VSYNC и HSYNC (PAL, External Sync Mode). Рис. 7. Тайминг VOUT, VSYNC и HSYNC (PAL, Internal Sync Mode). Рис. 8. VOUT и горизонтальная синхронизация HSYNC (NTSC и PAL, External Sync Mode) Рис. 9. VOUT и горизонтальная синхронизация HSYNC (NTSC и PAL, Internal Sync Mode) Кварцевый генератор. Внутренняя схема кварцевого генератора формирует системную тактовую частоту, которую использует VTG. Генератор использует внешний кварц на 27 МГц, или может быть подана тактовая частота 27 МГц от внешнего источника на вход CLKIN с уровнями TTL. Когда используется тактирование от внешнего источника, выход кварцевого генератора XFB остается неподключенным. Display Memory (SRAM). Память экрана хранит 480 адресов символов, указывающих на символы, сохраненные в памяти символов NVM. Содержимое памяти экрана программируется пользователем через SPI-совместимый последовательный интерфейс. Адрес в памяти экрана соответствует фиксированной позиции на экране монитора (см. рис. 10). Мгновенное нарушение отображаемой картинки OSD можно предотвратить, если записывать в память экрана во время действия импульса вертикальной синхронизации VSYNC. Этот сигнал может использоваться для генерации сигнала прерывания, чтобы инициировать запись в память экрана. Рис. 10. Определение различных параметров. Память символов (NVM). Здесь хранится графика, организованная в 256 строк по 64 байта, каждая строка содержит графику одного символа. Заводская запрограммированная таблица символов показа на рис. 12. Содержимое памяти символов программируется через SPI-совместимый последовательный интерфейс. Каждая строка содержит описание одного символа OSD. Каждый символ состоит из 12 горизонтальных и 18 вертикальных точек, где каждая точка представлена 2 битами: программирующими 3 состояния белый цвет (white), черный цвет (black) или прозрачная точка (transparent). Таким образом, каждый символ требует 54 байта данных графики (рис. 11). Рис. 11. Графика одного символа (карта точек). Рис. 12. Заводская таблица символов. NVM требует чтения и записи всех данных символа целиком (64 байт) за одну операцию. Это реализовано благодаря дополнительной строке памяти, которая называется теневой (shadow RAM). 64 байта shadow RAM содержит все данные точек выбранного (значением регистра CMAH[7:0]) символа, и используется как буфер для операций чтения и записи NVM (рис. 13). Доступ к NVM всегда осуществляется через shadow RAM, и это требует выполнения процесса из двух шагов. Чтобы записать символ в NVM, пользователь сначала заполняет shadow RAM, используя 54 восьмибитные операции записи SPI, и затем выполняет команду записи одного символа (single shadow RAM write). Подобным образом чтение значений точек требует чтения данных выбранного символа из shadow RAM через порт SPI. Рис. 13. Структура NVM. Генератор OSD. Генератор графики OSD установит амплитуду каждой точки на основе содержимого памяти символов и регистров яркости строк (Row Brightness, RB0 .. RB15). OSD Insertion Mux. Мультиплексор вставки OSD осуществляет выбор между точкой из видеосигнала и точкой OSD. Четкость образа OSD определяется битами OSD Rise Time и Fall Time, и битами OSD Insertion Mux Switching Time, которые находятся в регистре OSD Insertion Mux (OSDM). Этот регистр управляет компромиссом между четкостью изображения OSD и цветовыми артефактами (crosscolor/crossluma). Уменьшенное время формирует более четкие точки для OSD, но потенциально вызывает появление большего количеств crosscolor/crossluma артефактов. Оптимальная настройка зависит от требований приложения, чем может управлять пользователь. Драйвер видеовыхода. В MAX7456 встроен видеодрайвер выхода с усилением 2. На выходе драйвера формируется сигнал с максимальным размахом от пика до пика 2.4V и полосой частот 6 МГц (по уровню ослабления ≤ 0.2 dB на верхней частоте). Драйвер выхода может быть нагружен двумя стандартными нагрузками видеосигнала 150 Ом. Sag Correction. Sag correction (дословный перевод "коррекция провисания") означает средство уменьшения электрического и физического размера выходного разделительного конденсатора при достижении приемлемого искажения времени строки. Sag correction относиться к низкочастотной компенсации фильтра верхних частот, образованного нагрузкой 150 Ом на обратной стороне коаксиального кабеля и выходным разделительным конденсатором. Срез фильтра должен быть достаточно низкий по частоте, чтобы пропустить интервал вертикальной синхронизации (< 25 Гц для PAL и < 30 Гц для NTSC), чтобы избежать наклона поля. Традиционно срез делается < 5 Гц, и для этого разделительный конденсатор должен быть очень большим, > 330 мкФ. MAX7456 уменьшает требования к величине емкости этого конденсатора путем его замены на два конденсатора меньшей величины (COUT и CSAG), что непосредственно уменьшает размер и цену разделительных конденсаторов с сохранением допустимого искажения сигнала (таблица 2). Если это не используется, то соедините SAG с VOUT. Таблица 2. Значения конденсатора SAG-коррекции.
Последовательный интерфейс. SPI-совместимый последовательный интерфейс программирует рабочие режимы и данные OSD. Возможность чтения обеспечивает верификацию записи и чтение регистров состояния (STAT), Display Memory Data Out (DMDO) и Character Memory Data Out (CMDO). Рис. 14. Диаграмма сигналов последовательного интерфейса. MAX7456 поддерживает тактирование интерфейса частотой SCLK до 10 МГц. Рис. 15 иллюстрирует запись данных, а рис. 16 чтение данных MAX7456. Перевод ~CS в лог. 0 разрешает работу последовательного интерфейса. Данные вдвигаются в SDIN по фронту нарастания SCLK. Когда ~CS переходит в лог. 1, данные защелкиваются во входной регистр. Если ~CS перейдет в лог. 1 посередине передачи, то последовательность передачи данных обрывается (т. е. данные не записываются в регистры). После того, как ~CS перешел в лог. 0, устройство ждет первого байта, вдвигаемого в SDIN, чтобы идентифицировать тип выполняемой транзакции данных. Команды SPI имеют длину 16 бит, где 8 самых старших значащих бит (most significant bits, MSB) представляют адрес регистра, и 8 младших бит (least significant bits, LSB) представляют данные (рис. 15 и 16). Из этого правила есть два исключения: 1) Режим записи с автоинкрементом, который используется для доступа к памяти экрана, является одиночной 8-битной операцией (рис. 21). Когда выполняется запись в память экрана с автоинкрементом, 8-битный адрес генерируется внутренне, и для последовательного интерфейса требуются только 8-разрядные данные. 2) Чтение данных символа из памяти экрана, когда действует 16-битный рабочий режим, является 24-разрядной операцией (8 бит адреса плюс 16 бит данных). См. рис. 20. Рис. 15. Операция записи. Рис. 16. Операция чтения. Рис. 17. Запись байта атрибута символа (Character Attribute Byte) в 8-битном режиме. Рис. 18. Чтение байта атрибута символа (Character Attribute Byte) в 8-битном режиме. Рис. 19. Запись байта атрибута символа (Character Attribute Byte) в 8-битном режиме и 16-битном режимах. Рис. 20. Чтение байт адреса символа и атрибута символа в 16-битном режиме. Рис. 21. Операция записи в режиме автоинкремента. [Варианты сброса] Power-On Reset, POR. Схема сброса по питанию MAX7456 (power-on reset, POR) обеспечивает формирование внутреннего сигнала сброса после того, как напряжение питания достигнет номинального значения и стабилизируется. Внутренний сигнал сброса сбросит все регистры в их значения по умолчанию и очистит память экрана. Процесс сброса регистров требует 100 мкс, и чтобы избежать нежелательных результатов, в течение этого времени не должно быть никакой активности чтения/записи. Память экрана сбрасывается, и OSD разрешается приблизительно через 50 мс после стабилизации напряжения питания и получения стабильной частоты тактов 27 МГц. Пользователь должен избегать операций SPI в течение этого времени, чтобы избежать нежелательных результатов. После интервала 50 мс (типовое значение) бит STAT[6] может быть опрошен, чтобы проверить, что последовательность сброса завершена (рис. 22). Рис. 22. Последовательность сброса по питанию (Power-On Reset, POR). Software Reset. MAX7456 имеет бит программного сброса (Software Reset bit VM0[1]): когда он установлен в лог. 1, это очистит память экрана и сбросит все регистры в их значения по умолчанию, кроме регистра OSD Black Level (OSDBL). После 100 мкс (типовое значение) бит STAT[6] может быть опрошен, чтобы проверить, что процесс сброса завершен. Hardware Reset. MAX7456 предоставляет возможность аппаратного сброса сигналом на входе ~RESET, который функционирует так же, как и сброс по питанию POR. Все регистры сбросятся в их значения по умолчанию и будут недоступны для чтения/записи, когда ~RESET находится в лог. 0. Процесс сброса требует ≥ 50 мс импульса ~RESET, и во время этого интервала не разрешена никакая активность интерфейса. Все регистры SPI сбросятся в свои значения по умолчанию через 100 мкс после нарастания уровня ~RESET. Память экрана сбросится в свое значение по умолчанию 00H во всех ячейках через 20 мкс после фронта нарастания ~RESET. Сигнал ~RESET имеет преимущество надо битом Software Reset. После того, как сигнал ~RESET снят, бит STAT[6] может быть опрошен, чтобы проверить, что последовательность сброса завершена. [Описание регистров MAX7456] Доступ ко всем операциям MAX7456, включая память экрана и память символов NVM, осуществляется через регистры SPI, перечисленные в таблице 3. Нет прямого доступа к дисплею и символьной памяти через порт SPI. Пошаговые описания операций SPI, необходимых для доступа к памяти, см. в разделе "Информация по применению MAX7456". В этом даташите используется формат ИМЯ_РЕГИСТРА[НОМЕРА_БИТ]. Например, бит 1 в регистре Video Mode 0 записывается как VM0[1]. Таблица 3. Карта регистров.
X = не имеет значения. Video Mode 0 Register (VM0). Адрес записи = 00H, адрес чтения = 80H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должны быть соблюдены следующие условия: 1) STAT[5] = 0, память символов (NVM) не в состоянии занятости.
X = не имеет значения. Video Mode 1 Register (VM1). Адрес записи = 01H, адрес чтения = 81H. Доступ на чтение/запись: неограниченный.
Horizontal Offset Register (HOS). Адрес записи = 02H, адрес чтения = 82H. Доступ на чтение/запись: неограниченный (рис. 23).
Vertical Offset Register (VOS). Адрес записи = 03H, адрес чтения = 83H. Доступ на чтение/запись: неограниченный (рис. 23).
Рис. 23. Область отображения символа (Character Display Area). Display Memory Mode Register (DMM). Адрес записи = 04H, адрес чтения = 84H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должно быть соблюдено условие: DMM[2] = 0, память экрана (SRAM) не находится в процессе очистки.
Рис. 24. Примеры бит атрибута символа: управление инверсией и локальным фоном (Invert and Local Background Control). Таблица 4. Управление фоном символа (Character Background Control).
X = не имеет значения. Display Memory Address High Register (DMAH). Адрес записи = 05H, адрес чтения = 85H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должно быть соблюдено условие: DMM[2] = 0, память экрана (SRAM) не находится в процессе очистки.
Display Memory Address Low Register (DMAL). Адрес записи = 06H, адрес чтения = 86H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должно быть соблюдено условие: DMM[2] = 0, память экрана (SRAM) не находится в процессе очистки.
Display Memory Data In Register (DMDI). Адрес записи = 07H, адрес чтения = 87H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должно быть соблюдено условие: DMM[2] = 0, память экрана (SRAM) не находится в процессе очистки.
Character Memory Mode Register (CMM). Адрес записи = 08H, адрес чтения = 88H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должны быть соблюдены следующие условия: 1) STAT[5] = 0, память символов (NVM) не в состоянии занятости.
Character Memory Address High Register (CMAH). Адрес записи = 09H, адрес чтения = 89H. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должны быть соблюдены следующие условия: 1) STAT[5] = 0, память символов (NVM) не в состоянии занятости.
Character Memory Address Low Register (CMAL). Адрес записи = 0AH, адрес чтения = 8AH. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должны быть соблюдены следующие условия: 1) STAT[5] = 0, память символов (NVM) не в состоянии занятости.
Character Memory Data In Register (CMDI). Адрес записи = 0BH, адрес чтения = 8BH. Доступ на чтение/запись: неограниченный. Для записи в этот регистр должны быть соблюдены следующие условия: 1) STAT[5] = 0, память символов (NVM) не в состоянии занятости.
NA = Not Applicable, не применимо. OSD Insertion Mux Register (OSDM). Адрес записи = 0CH, адрес чтения = 8CH. Доступ на чтение/запись: неограниченный.
Row N Brightness Register (RB0–RB15). Address = 10H + row number; Адрес записи = 10H through 1FH, адрес чтения = 90H through 9FH, Доступ на чтение/запись: неограниченный. Номер верхней строки 0. Номер нижней строки 13 в режиме NTSC и 15 в режиме PAL (см. рис 23).
OSD Black Level Register (OSDBL). Адрес записи = 6CH, адрес чтения = ECH. Доступ на чтение/запись: этот регистр содержит 4 предварительно установленные на заводе биты [3:0], которые не должны быть изменены. Таким образом, когда меняется бит 4, сначала считывается этот регистр, изменяется бит 4, и затем обновленный байт записывается обратно.
xxxx = заводская предустановка - значение может быть любым из 16 возможных. Это значение постоянно сохранено в MAX7456 и будет всегда восстанавливаться в состояние заводской предустановки после сброса по питанию или аппаратного сброса. Status Register (STAT). Адрес чтения = AxH (x = не имеет значения). Доступ на чтение/запись: только чтение.
NA = Not Applicable, не применимо. Display Memory Data Out Register (DMDO). Адрес чтения = BxH (x = не имеет значения). Доступ на чтение/запись: только чтение.
NA = Not Applicable, не применимо. Character Memory Data Out Register (CMDO). Адрес чтения = CxH (x = не имеет значения). Доступ на чтение/запись: только чтение.
NA = Not Applicable, не применимо. [Информация по применению MAX7456] Работа памяти символов. Только все данные символа целиком (54 байта данных точек) могут быть записаны в NVM или прочитаны из NVM одной операцией. Это осуществляется через 64 байта shadow RAM (см. рис. 13). К shadow RAM осуществляется доступ через порт SPI по одному байту. Shadow RAM записывается в NVM и считывается из NVM одной командой SPI. Ниже описаны шаги различных операций с символами в NVM. Запись нового символа: 1) Запишите VM0[3] = 0 для запрета отображения образа OSD. Модификация существующего символа: 1) Запишите VM0[3] = 0 для запрета отображения образа OSD. Шаги для чтения байт символа из NVM: 1) Запишите VM0[3] = 0 для запрета отображения образа OSD. Работа памяти экрана. Следующие два шага разрешают отображение образа OSD. Эти шаги не требуются для чтения из памяти экрана или записи памяти экрана: 1) Запишите VM0[3] = 1, чтобы разрешить отображение образа OSD. Шаги по очистке памяти экрана. Запишите DMM[2] = 1 для запуска операции очистки памяти экрана. Эта операция занимает приблизительно 20 мкс. Регистр Display Memory Mode не может быть записан снова, пока не завершится операция очистки. DMM[2] автоматически сбросится в 0 после завершения операции. Шаги для записи памяти экрана в 8-битном режиме. 8-битный рабочий режим предоставляет максимум гибкости при записи символов в память экрана. Этот режим позволяет индивидуально записать байты атрибута символа (Character Attribute) для каждого символа (см. таблицу 5). Этот режим отличается от 16-битного, в котором байт атрибута автоматически копируется из DMM[5:3], когда записывается символ (рис. 19). Запишите DMM[6] = 1 для выбора 8-битного режима. Запись байта адреса символа (Character Address) в память экрана: 1) Запишите DMAH[1] = 0, чтобы записать байт Character Address. Запись байта атрибута символа (Character Attribute Byte) в память экрана: 1) Запишите DMAH[1] = 1, чтобы записать байт Character Attribute. Шаги для записи памяти экрана в 16-битном режиме. 16-битный режим увеличивает скорость, с которой может быть обновлена память экрана. Это происходит путем автоматического копирования DMM[5:3] в байт атрибута символа (Character Attribute), когда записывается новый символ, что уменьшает количество операций записи SPI на один символ с двух до одной (рис. 19). В этом режиме все записываемые символы получают одинаковый байт атрибута. Этот режим полезен, потому что последовательно размещенные символы обычно имеют один и тот же атрибут. Этот режим отличается от 8-битного режима, где байт Character Attribute должен каждый раз записываться при записи байта в память экрана по Character Address (см. таблицу 5). 1) Запишите DMM[6] = 0, чтобы выбрать 16-битный рабочий режим. Шаги для записи памяти экрана в режиме автоинкремента. Режим автоинкремента повышает скорость, с которой может быть записана память экрана, путем автоматического инкремента адреса записываемого символа. Этот режим полезен, когда записываются строки символов на экране слева-направо и продолжающиеся сверху-вниз. Этот режим уменьшает количество команд SPI (см. таблицу 5). В 8-битном режиме: 1) Запишите DMAH[1] = 0 для выбора, если будет записываться байт Character Address, или DMAH[1] = 1 для выбора записи байта Character Attribute. Замечание: символ, сохраненный по адресу CA[7:0] = FFh, недоступен для использования в режиме автоинкремента. Операция чтения невозможна до завершения режима автоинкремента. В 16-битном режиме: 1) Запишите DMAH[0] = X для выбора MSB и DMAL[7:0] = XX для выбора младших бит начального адреса для операции автоинкремента. Этот адрес определит положение первого символа на экране (см. рис. 10 и 21). Замечание: символ, сохраненный по адресу CA[7:0] = FFh, недоступен для использования в режиме автоинкремента. Операция чтения невозможна до завершения режима автоинкремента. Шаги для чтения из памяти экрана в 8-битном режиме: 1) Запишите DMM[6] = 1 для выбора 8-битного рабочего режима. Шаги для чтения из памяти экрана в 16-битном режиме: 1) Запишите DMM[6] = 0 для выбора 16-битного рабочего режима. Замечание: если запрос чтения памяти экрана произошел одновременно операцией SPI памяти экрана, то внутренний запрос на чтение игнорируется, и отображение этого символа в течение этого времени может оказаться мгновенно нарушены. См. секцию "Синхронное обновление OSD". Синхронное обновление OSD. Отображение символа может быть мгновенно нарушенным, если внутренний запрос чтения памяти экрана произойдет одновременно с операцией SPI памяти экрана. Мгновенное нарушение образа OSD может быть предотвращено записью памяти экрана во время интервала вертикального гашения. Это может быть осуществлено с помощью импульса VSYNC, который будет сигналом прерывания для процессора хоста. Альтернативно образ OSD может быть синхронно запрещен перед записью в память экрана и затем синхронно разрешен (см. VM0[3:2]). Таблица 5. Режимы доступа к памяти экрана и операции SPI.
[Тактирование нескольких OSD] MAX7456 предоставляет выход тактов TTL (CLKOUT), который может поступать на вывод CLKIN другой микросхемы MAX7456. Две или большее количество MAX7456 могут тактироваться с помощью внешнего драйвера тактов. Такое решение уменьшает стоимость системы, поскольку нужен только один кварцевый резонатор, подключенный к одной MAX7456, для тактирования нескольких MAX7456 (рис. 25). Рис. 25. Типовая схема подключения нескольких OSD с общим тактированием. Выбор кварца. Необходим кварц 27 МГц фундаментального режима параллельного резонанса. Внешние конденсаторы нагрузки не нужны. Все конденсаторы, требуемые для генератора Пирса, уже содержатся в чипе. Питание и блокировочные конденсаторы. MAX7456 работает от трех независимых шин питания. Каждое напряжение питания должно быть в диапазоне между +4.75V и +5.25V. Отдельное цифровое питание, независимое от аналогового, обеспечивает снижение высокочастотных цифровых помех на видеовыходе. Все три напряжения питания должны быть с одинаковым напряжением. Подключите блокировочные конденсаторы 0.1 мкФ каждой шины питания как можно ближе к соответствующим выводам микросхемы. Нет какого-то требования по последовательности включения шин питания. Рекомендации по разводке печатной платы. Чтобы обеспечить лучшие параметры, сделайте провода сигналов VIN и VOUT как можно короче. Поместите все разделительные конденсаторы 75 Ом резисторы терминирования как можно ближе к микросхеме, и земляной вывод этих резисторов должен быть напрямую припаян к аналоговой заливке медью. Поскольку у корпуса MAX7456 TSSOP28 есть нижняя контактная площадка земли (exposed pad, EP), не делайте разводку проводников под корпусом микросхемы, чтобы не было коротких замыканий. См. MAX7456 EV kit для примера разводки PCB. Для охлаждения площадка EP должна быть соединена с контактной площадкой меди подобного размера на стороне компонентов платы. Эта площадка меди должна соединяться со стороной пайки через несколько переходных отверстий, обеспечивающих рассеивание тепла от микросхемы. Размеры площадки металла на стороне пайки должны быть больше, чем размеры площадки EP. Рекомендуется, чтобы площадка EP соединялась с землей, но это необязательно. Не используйте EP как единственное подключение шины земли для устройства. [Какие платки можно найти с MAX7456] MICRO MinimOSD. Миниатюрная платка размером 15 мм x 15 мм, которая тем не менее обладает широким набором возможностей. Кроме входа и выхода видеосигнала и интерфейса UART, через который передается информация OSD, к ней можно подключить два напряжения от батарей, сенсор тока, сенсор RSSI. Программируется платка MICRO MinimOSD через тот же UART, поскольку в ней присутствует загрузчик Arduino (сигналами RX, TX, DTR). Мне известно как минимум два открытых проекта, которые совместимы с этой платой MWOSD [4] и ArduCAM OSD [5]. И тот и другой это проекты Arduino, которые компилируются и прошиваются в среде Arduino IDE обычным образом. Эта платка очень популярна, и её можно купить на AliExpress. Чтобы скомпилировать проект ArduCAM OSD, скачайте его репозиторий [5], откройте в среде Arduino IDE файл ArduCAM_OSD/ArduCAM_OSD.ino. После этого компилируйте и прошивайте его обычным образом. Замечание по поводу сигнала автосброса DTR платки MICRO MinimOSD - если у вас USB TTL переходничок на чипе FR232R, то на DTR подайте сигнал RTS# с микросхемы FR232R. [Ошибка отсутствия библиотек] ArduCAM_OSD:56:10: fatal error: FastSerial.h: No such file or directory Такая ошибка говорит о том, что не установлены необходимые библиотеки в стандартных путях поиска Arduino IDE. Скопируйте все папки, которые находятся в каталоге libraries репозитория [5], в каталог ~/Arduino/libraries/. На примере библиотеки FastSerial: $ cp -r libraries/FastSerial/ ~/Arduino/libraries/ Также нужно поступить и с другими каталогами библиотек, находящихся в папке libraries: AP_Common [Ошибка, связанная с prog_char] In file included from ~/Arduino/libraries/FastSerial/BetterStream.h:16:0, from ~/Arduino/libraries/FastSerial/FastSerial.h:56, from ~/asm/arducam-osd/ArduCAM_OSD/ArduCAM_OSD.ino:56: ~/Arduino/libraries/FastSerial/../AP_Common/AP_Common.h: ... и так далее ... В файле ~/Arduino/libraries/AP_Common/AP_Common.h исправьте макрос PSTR(s), в нем prog_char надо заменить на char. Проще всего это сделать добавлением строчки перед определением этого макроса: #define prog_char char То же самое нужно сделать для макроса printf_P в ~/Arduino/libraries/FastSerial/BetterStream.h: #define prog_char char Исправленный репозиторий можно скачать по ссылке [6]. MinimOSD. Плата, на которую был изначально рассчитан проект ArduCAM OSD [5].
Функционально плата не отличается от MICRO MinimOSD. У MinimOSD размер больше, детали расположены на одной стороне, все сигналы имеют удобную и понятную маркировку. [Словарик] CVBS Color Video Blank Sync, композитный видеосигнал. NVM Non-Volatile Memory, энергонезависимая память (EEPROM). OSD On-Screen Display, вставляемая в видеосигнал графика. VTG Video Timing Generator, генератор интервалов времени для видеосигнала. [Ссылки] 1. MAX7456 Single-Channel Monochrome On-Screen Display with Integrated EEPROM. |