Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Отладочные платы » SK-iMX233
iMX233 драйвер FB
Pavel Ivanchenko
Добавлено 23.05.2010 19:18 Редактировалось 23.05.2010 19:19
0
Сообщение: 1
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Подключил панельку SK-WF43BTIBED0TP-Plug, теперь пытаюсь понять, как к ядру для нее драйвер FB прикрутить ...

Лирическое отступление, LCD модуль этого контроллера в LQFP корпусе не имеет возможности формировать развертку обычных TFT (в их терминологии DOTCLK интерфейс), только VSYNC, DVI и процессорный интерфейс (с учетом которого и разведен внешний разъем платы для прямого подключения плага расширения).
Механизм взаимодействия с панелями процессорного интерфейса примерно следующий: настраиваем указатель на требуемый к передаче блок данных, указываем количество передаваемых данных, LСDIF модуль в режиме мастера на шине читает данные с внешней памяти, выдает их на LCD и генерирует прерывание по окончании блока.
Насколько я понимаю, мастером на шине делают LCDIF модуль для его исключительной приоритетности при доступе к внешней памяти, что особо не требуется с панелями на процессорном интерфейсе (нет необходимости формировать четкие тайминги развертки), в сорцах LCDIF есть упоминания о DMA ...

Это все теория, как на практике прикрутить к "двухслойному" драйверу (драйвер панели + драйвер FB) экрана панель, пока без понятия .
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.05.2010 13:49 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
Это все теория, как на практике прикрутить к "двухслойному" драйверу (драйвер панели + драйвер FB) экрана панель, пока без понятия


Там не двухслойный драйвер - для разных панелей инит разный, поэтому для универсальности ф-ции касающиеся работы lcd-матрицы вынесены в отдельный модуль, чтобы можно было не исправляя основной драйвер менять панели. В нашем случае нужно будет сделать немного больше работы - там системный интерфейс не предусмотрен в модулях.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 24.05.2010 14:03 Редактировалось 24.05.2010 14:06 Сообщение: 3
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Имеем:
1) драйвер-инит панели
2) драйвер-набор функций LCDIF
3) драйвер фреймбуфера

Полагаю, проще будет, "кострячить" драйвер фреймбуфера ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.05.2010 14:08 Редактировалось 24.05.2010 14:16 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Я пока исходники просматриваю фрискейловские - там полный бардак в применяемых стилях, очень трудно читаются. Такое ощущение что писалось все как в Простоквашино - начал дяд Федор, потом продолжил кот а дописывал Шарик. Пипец полный. В одном месте написано как принято в linux через writel, в другом через подстановки и дефайны как принято у фрискейловцев, притом стиль дурацкий потому что у одих регистров кроме адреса есть дополнительные регистры для установки, очистки, переключения а у других нет - только один адресный регистр, постоянно приходится рыться в даташите.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.05.2010 14:15 Сообщение: 5
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

Полагаю, проще будет, "кострячить" драйвер фреймбуфера ...


Не проще а просто по другому и не получится :) Кроме него и для панели надо делать и еще там куча ф-ций разбросана по всему ядру - например mux пинов - надо разобраться что к чему, там шины в их панелях 16 битные, у нас 8.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 24.05.2010 14:35 Сообщение: 6
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Все их панели - "чистые" TFT с DOTCLK инстерфейсом.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 25.05.2010 17:54 Сообщение: 7
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Вобщем, пока "буксуем" с банальным выводом хотя бы чего-либо через LCDIF в PIO режиме ...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 25.05.2010 18:00 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Вобщем, пока "буксуем" с банальным выводом хотя бы чего-либо через LCDIF в PIO режиме ...

не уловил суть проблемы - индикатор не отдается по GPIO или iMX упрямится при переходе в GPIO или не прикрутить индикатор во фреймбуфер?
в каком месте буксуем?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 25.05.2010 18:10 Редактировалось 25.05.2010 18:16 Сообщение: 9
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
LCDIF имеет два режима работы с такими панелями:
  • PIO - когда кидаем ему в FIFO данные
  • режим когда он может сам хватать блок данных из внешней памяти
    Вот в ходе экспериментов пока тупо не можем получить хотя бы какое то движение на LCD пинах и стробах в обоих режимах.

    Обмен через GPIO, конечно можно настроить (как в драйвере с 9260), но это уже крайний вариант.
  • Спуститься к концу Подняться к началу
    Персональная информация
    Jury093
    Добавлено 25.05.2010 18:27 Редактировалось 25.05.2010 18:28 Сообщение: 10
    Jury093
    4.5

    Пункты: 54271
    Регистрация: 25.05.2009
    Пол: Мужчина
    Из: Санкт-Петербург
    т.е. в самом АРМе не поднимается контроллер экрана?
    могу предложить путь сложный и скучный:
    допустим контроллер выключен логически и все пины подконтрольны. экран соединен по штатной схеме.
    "на коленке" пишется примитивная прога, которая сама шевелит все пинами изображая GPIO-интерфейс.
    скорость тут не важна, но - что достигается:
    - проверка правильности соединения
    - полная наглядность и подконтрольность..
    безусловно, такое можно провернуть, если все пины подконтрольны :)
    в случае упрямости контроллера надо искать как его разрешить, проверить разрешения тактовой на модуль и еще кучу мест
    помнится, потребовалось в PXA270 шевелить пином - пришлось понять как получить разрешение на _разрешение_ им управлять :)))
    в вашем случае, наверно полезно выводить диагностику состояния ключевых регистров до и после попытки запустить драйвер фреймбуфера (я на мнуке созерцал крайне забавные вещи) - возможно что драйвер делает вид что запускается, но с кем-то конфликтует..
    зы выдвинулся в сторону дома..

    На любой вопрос есть любой ответ.
    Спуститься к концу Подняться к началу
    Персональная информация
    Форум » starterkit.ru » Отладочные платы » SK-iMX233