Chettuser писал(а):Примерчиком не поделитесь?
Как Вам удаётся прикрутить, какой там протокол?
Были темы уже. и с примерами, схемами и даже исходниками.
В качестве ликбеза - экраны, елси глобально, бывают 2 типов
1. тупо экран с преобразователями напряжений питания драйверами строк/столбец панели. На такую панель должны неприрывным потоком передаваться данные для обновления картинки. Т.е. тупо сканирование по строкам/столбцам. Итого для панели 320х240 16бит цвет и частота кадров 50гц (меньше экран уже бледнеет и эффект дрожащих строк) с учетом полей получается ~6Mhz на 16 бит. Непрерывный поток от 12 мегабайт в секунду. Плюс надо иметь фреймбуфер 320x240*2 = 176kb.
Сразу понятно, что с 8 бит контроллерами тут ну совсем ловить нечего -)))
На АРМах можно вприницпе сдлеать чтото софтово на ДМА, но скушает это гдето половину времени процессора. Есть АРМы с LCD интерфейсом (знаю один на ARM7TDMI в продакшне, 1 на CortexM3 в состоянии девеломпента и туча ARM9 в продакшне). Ну и без внешней памяти под буфер тоже ловить практически нечего.
Наружу интерфейс 18-24 линии RGB, H-sync, V-sync, CLK и enable.
2. как 1 + на нем уже контроллер видеопамяти и развертки. Т.е. скопировал картинку в память экрану и забыл - перерисовывает сам.
Наружу интерфейс как у статической памяти. 8-16 бит данных и сигналы WR,RD, CS и линия данные/адрес.
Такой запросто подключается хоть к тупому 8 бит AVRу. И вприцнипе по скорости результат вполне удовлеторительный.
НО! Таких экранов в массштабе мироовго производства - сотые доли процента. Таких моделей очень мало и делаются для всякого мелкосерийного оборудования и прочего.
Все экраны в современных телефонах, КПК, навигаторах, плеерах, фоторамках - 1го типа. Выгодное исключение, как я писал, дешевые китайские телефоны, копии брендовых.
Алгоритм работы примитивен. из регистра 0х00 читается идентификатор дисплея, далее ищется даташит.
По нему тупо вливаются регистры по табличке рекомендованной инициализации и все, дальше можно забыть обо всем кроме нескольких регистров.
1-2 регистра cursor_position - задают позицию с которой рисовать
2-4 регистра window (x1,y1) - (x2, y2) - область вывода
при выводе задаются область, куда будет рисоваться, начальное положение в ней, а дальее тупо в регистр 0x22 вливается последовательно по слову вся картинка равная размеру области window.
ВСЁ
p.s. пользовал чтук 5 разных дисплеев 2го типа и 3 1го типа. Приятней всего 1й с жирным АРМом и внешним SDRAMом -))
Последний раз редактировалось
Satyr Пн мар 07, 2011 13:31:20, всего редактировалось 1 раз.