Перейти к содержанию
    

G45 - Работа с видеопамятью

Процессор AT91SAM9G45. Видеопамять с 70000000, DDr2x16. 24 битный цвет.

 

1. Делаем черный экран записью нулей.

2. Пишем, рисуем, что хотим делаем - но не белым цветом.

3. Стоит хоть одну точку сделать белой - весь экран становится белым. (Хотя видеопамять как таковая содержит верные данные).

4. Ставим в ЛЮБОМ месте "НЕ БЕЛУЮ" точку. Изображение восстанавливается.

5. Ставим белую куда-нибудь опять. Весь экран белый.

 

 

Перестройка DMA LCD, целиком самого LCD ничего не дает - экран остается белым (в смысле, при отклюении и перенастройке он становится черным, но после окончания инициалзации - белый).

 

Примечание 1 Программа, которая всем этим управляет находится в той же самой памяти.

Примечание 2. "НЕ БЕЛАЯ" точка, которая восстанавливает изображение ДОЛЖНА СОДЕРЖАТЬ В КАЖДОМ БАЙТЕ ЦВЕТА не менее двух единичных битов. К примеру, точка цветом 88 88 88 не восстанавливает изображение, а точка 33 33 33 - восстанавливает. (33 00 33 - не восстанавливает, 53 35 75 - восстанавливает).

-------------------

Этот глюк не определяется в обычных условиях, когда на экране многоцветие и мельтешение.

А вот попробовал сменить фон калибровки экрана на черный, на котором рисовал чисто белый крестик - и получил этот эффект.

 

Ума не хватает помыслить что это. К сожалению плата в единственном экземпляре.

 

---

Белая точка ничему не вредит, если на экране полноцветная картинка реальная.

 

Но если 90% экрана одного цвета, причем простого цвета - черный, чисто синий например, то белая точка работает....

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что говорит эррата про lcd ? (это еще надо очень творчески домыслить)

Наоборот эффект есть, т.е. белый экран и черная точка ?

Скопом есть возможность глянуть, там действительно начинает идти белый цвет на весь экран ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Общем, в копилку мирового опыта.

 

Описанный эффект существует, повторяется строго. Чтобы специально такое сделать, надо долго потрудиться.

 

Причина в самом LCD. Вернее, в шлейфе. Стоит его немного изогнуть - нормальное изображение появляется без всякого программного вмешательства.

Но как трабл со шлейфом может давать четкий триггерный эффект, абсолютно четкий и абсолютно триггерный - пока не представляю.

Рад этому несказанно, ибо уже привинтил к PutPixel фичу, которая ставит серую точку в конец видеопамяти.

 

В общем, пока все равно чудо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы случайно не используети коды, которые нужны для синхронизации. В цифровом ТВ нельзя давать код в 8 старших разрядах 00 или FF.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не. Это обычный TFT, 24 битный интерфейс.

Уже железно дело в шлейфе. Поставил новый экран - все работает нормально.

 

Но по характеру неисправности - не в жисть не подумал бы на шлейф. И щас не думаю. Пойти в церву, воды купить и попрыскать вокруг. Других мыслей пока нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, вдруг интересно.

Не в шлейфе дело.

 

Когда программируешь - часто включаешь выключаешь, а когда просто ничего не делаешь - то не выключаешь.

 

И вот тогда LCD начинает нагреваться.

И действительно, в зависимости от картинки - начинает глючить.

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

Кто греется, LCD или проц пока сказать трудно. Проц пока недоступен для охлаждения.

---

Скорее всего LCD виноват. Если просто подуть на него слегка глюк прекращается сразу.

Что удивительно, этот же LCD уже использовал в серии. Все нормально было. Но управлялся он LPC2478.

 

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох, а не может там быть что уровни не согласованы?? TTL <-> LVTTL, может защитные диоды подрабатывают вот он и греется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

А вот существенное увеличение Vertical Porch (c 5 линий до 127 - как переднего так и заднего) - решило проблему.

Полагаю, что 128 линий до и после хватает, чтобы LCD транзисторы чуток перекурили от дерганий туда-сюда.

Т.е. реально хватило и 10 линий порча, но я взял чксло линий при котором видно дрожание и поделил на 2. Типа с запасом.

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...