работа с контроллером дисплея SED1335

Немедленно нажми на RESET, All!

Известно, что контроллер LCD дисплеев SED 1335 (пр-ва фирмы Epson) славится тем, что "тормозной и подходит только для статических картинок". Такое мнение о контроллере обусловлено невозможностью конкурентного доступа к видео-памяти контроллера одновременно со стороны самого контроллера и микропроцессора -- приоритет отдаётся микропроцессору, а контроллер, если не может получить доступ к видеопамяти, вместо обновляемой в данный момент времени части строки изображения (8 пикселей в ширину и один в высоту), не важно какой режим выбран, текстовый или графический, отображает "пустое место", как если бы в видеопамяти были записаны нули. В результате, при частом обновлении изображения на экране части изображения, или всё изображение, с экрана могут пропадать.

| Для тех кто не знаком с принципом работы контроллера хочется | пояснить: LCD дисплей регенерируется динамически, построчно, | сверху-вниз, при этом в каждый момент времени регистры сдвига, | управляющие непосредственно матрицей и подключаемые параллельной или | последовательной шиной к контроллеру, хранят одну строку (высотой в 1 | пиксел) монохромного, бит на пиксель -- градации серого обеспечиваются | быстрой сменой кадров содержащих включенный и выключенный пиксели, | изображения. Контроллер, последовательно, считывает каждую строку из | видеопамяти и загружает её в регистр сдвига. После загрузки очередной | строки имеется небольшой промежуток времени, примерно 1/10 от времени | загрузки строки, когда контроллер не осуществляет доступ к памяти.

В документации предлагается решение. Регистр статуса контроллера SED 1335 содержит разряд D6, устанавливающийся в 1 в момент перехода от одной строки к другой, когда контроллер не осуществляет доступ к видеопамяти, и микропроцессор может безопасно обратиться к видеопамяти, без создания эффектов исчезающего изображения на экране. Кроме того, там же отмечается, что вывод LP контроллера дисплея может использоваться как источник прерывания микроконтроллера, по которому и может производится обмен с дисплеем -- чтобы избежать неэффективных циклов опроса регистра статуса, что вобщем-то не всегда возможно даже -- микроконтроллер должен обслуживать другие устройства и часто в реальном времени, что плохо совместимо с блокировкой программы на холостых циклах опроса.

Имеется проблема. Ряд продаваемых дисплеев, например WG320240 (пр-ва Winstar) выводят на интерфейсный разъём только шину данных и управляющие сигналы. Сигнал прерывания не предусмотрен. Соответственно остаётся либо мириться с неизбежностью видеоэффектов при выводе на дисплей, и стараться минимизировать объём выводимой информации, либо мириться с необходимостью достаточно длительных циклов опроса регистра состояния (напомню, соотношение времён доступности и недоступности видеопамяти составляет, примерно, 1 к 10), либо, возможно синхронизировать работу программы с регенерацией дисплея, если это вообще возможно -- и таким образом сэкономить микропроцессорные такты отданные на цикл опроса.

Если бы конкретный дисплей имел выход прерывания искать компромиссных решений не пришлось бы. Но его нет. Так кажется. На самом деле он есть. Опытным путём было установлено, что: если установить сигналы CS, RD, WR и A0 в состояние соответствующее чтению регистра состояния на длительный период времени, то выход D6 шины данных /изменяет/ /своё/ состояние/ в процессе регенерации дисплея (или, можно сказать, регистр состояния имеет возможность изменения своего значения непосредственно в цикле чтения из регистра). Это важный момент. Дальше очевидно -- достаточно во-первых обеспечить прерывание микропроцессора по положительному фронту линии D6 шины данных, и во-вторых при отсутствии обмена с дисплеем перевести управляющие сигналы в состояние соответствующее чтению регистра состояния. Минусом такого решения может являться невозможность использования параллельной шины данных дисплея для подключения ещё каких-либо устройств, впрочем это может зависеть от конкретной ситуации.

Reply to
Kirill Frolov
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.