Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX233
Драйвер для SK-WF43BTIBED0-Plug или BSP Linux
Jury093
Добавлено 09.11.2010 19:21 Сообщение: 11
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
если речь о пингвине в лого при загрузке, то подсуньте свое изображение с заведомо известными цветами и упаковкой вместо стандартного файла лого. тогда станет более понятно куда копать

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 09.11.2010 19:23 Редактировалось 09.11.2010 19:39 Сообщение: 12
sasamy
4.70

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

Потестил - есть одно замечание, еще не решил, как с ним поступить.

Одно меня смущает : синие лапы у Tux, я проверил - упаковка RGB совпадает в фреймбуфере, дисплее и Qt Embedded (графика нормально выводится), а ноги у пингвина синие : а именно такое ощущение что tux закодирован в формате BGR.


Гугль патч в html преобразовал, как его счас выковыривать :) С туксом все нормально должно быть - где-то ошибка в драйвере. По поводу инита pix_clock - ошибка похоже в ядре фрискейла, я ее тоже наблюдаю при загрузке - сначала обратил внимание в контексте драйвера сети и конкретно - включение клока ssp - тормоз при загрузке и вываливает ошибку, но потом как ни странно сеть работает, начал разбираться - отладочный printk выдал что подобная проблема и с склолком lcdif. На данный момент я в своем патче просто уменьшил эту задержку чтобы загрузку не тормозило. Смысл такой - включается клок и ожидается в цикле готовность, так вот с этими устройствами она так и не появляется :) Я пробовал увелчить задержку в 10 раз - не помогает, уменьшил в 10 раз и забыл - наверняка фрискейловцы знают об этой трабле и исправят сами - они несколько раз дергают панель при загрузке (раза три включают и выключают), явно напоролись на эти грабли и вышли из положения пока таким кривым способом. Правда есть подозрение что это может быть баг в силиконе.
Спуститься к концу Подняться к началу
Персональная информация
ches
Добавлено 14.12.2010 15:03 Сообщение: 13
ches
0

Пункты: 993
Регистрация: 01.07.2010
столкнулся с проблемой при рисовании на экране через фреймбуфер.

функция отрисовки пикселя:
void draw_pixel(int x, int y, u_int32_t pixel)
{
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 0) = (u_int8_t)(pixel);
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 1) = (u_int8_t)(pixel >> 8);
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 2) = (u_int8_t)(pixel >> 16);
}

проблема заключается в том, что если нарисовать один пиксель цветом 0xffffff, то он будет отображаться как мигающий слабо светящийся синим цветом пиксель, в то время как остальные следующие за ним пиксели такого же цвета отображаются нормально пока не будет пропущен хоть один пиксель, после пропуска одного или нескольких пикселей, следующий пиксель отображается как первый(неправильно), а следующие за ним опять нормально.

такое происходит с любым цветом, за исключением того что первый пиксель принимает не правильный цвет(или вообще не горит) в зависимости от того какой цвет зажигал.

создается впечатление, что "первый" пиксель играет роль инициализирующего, для нормального отображения следующего за ним.

PS: как вставлять код для нормального отображения?!
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 14.12.2010 15:25 Сообщение: 14
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
PS: как вставлять код для нормального отображения?!

по теме не скажу - не владею
про код это о чем? вот так?
Код
void draw_pixel(int x, int y, u_int32_t pixel)
{
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 0) = (u_int8_t)(pixel);
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 1) = (u_int8_t)(pixel >> 8);
*((u_int8_t *)framebuffer + fix_info.line_length * y + x * 3 + 2) = (u_int8_t)(pixel >> 16);
}

тогда при написание сообщения над окошком выбираете форму "код" или вручную в начале ставите тэг {code}ваш код{/code}, где кривые скобочки надо изменить на []

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 14.12.2010 22:44 Сообщение: 15
sasamy
4.70

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

проблема заключается в том, что если нарисовать один пиксель цветом 0xffffff, то он будет отображаться как мигающий слабо светящийся синим цветом пиксель, в то время как остальные следующие за ним пиксели такого же цвета отображаются нормально пока не будет пропущен хоть один пиксель, после пропуска одного или нескольких пикселей, следующий пиксель отображается как первый(неправильно), а следующие за ним опять нормально.


Скорей всего это проблемы с LCD экраном а не с фреймбуфером - не должно быть никаких мигающих точек. Вообще эти LCD ведут себя странно - при просмотре видео видны артефакты с цветами в виде ломаных кривых синего и красного цвета, избавиться от них програмно программируя контроллер мне не удалось. Такие же кривые видны и на статических картинках даже если вообще прекратить обновление памяти.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 16.12.2010 05:03 Сообщение: 16
sasamy
4.70

Пункты: 77333
Регистрация: 14.08.2009
Код

static char lcd_init_data[] =
{
CMD, 0x01, /* Reset */
CMD, 0x01,
CMD, 0x01,

CMD, 0xe0, /* Use PLL output as system clock */
DATA, 0x01,

CMD, 0xe0, /* Enable PLL */
DATA, 0x03,

CMD, 0x36, /* Set Address Mode */
DATA, 0x08,

CMD, 0xb0, /* Set LCD Mode */
DATA, 0x08, // <------- old value == 0x0c
DATA, 0x80,
DATA, 0x01,
DATA, 0xdf,
DATA, 0x01,
DATA, 0x0f,
DATA, 0x00,

CMD, 0xf0, /* Set Pixel Data Interface (8-bit) */
DATA, 0x00,

CMD, 0x3a, /* Set Pixel Format */
DATA, 0x60,

CMD, 0xe6, /* Set pixel clock frequency */
DATA, 0x01,
DATA, 0x45,
DATA, 0x47,

CMD, 0xb4, /* Set Horizontal Period */
DATA, 0x02,
DATA, 0x0d,
DATA, 0x00,
DATA, 0x2b,
DATA, 0x28,
DATA, 0x00,
DATA, 0x00,
DATA, 0x00,

CMD, 0xb6, /* Set Vertical Period */
DATA, 0x01,
DATA, 0x1d,
DATA, 0x00,
DATA, 0x0c,
DATA, 0x09,
DATA, 0x00,
DATA, 0x00,

CMD, 0x2a, /* Set Column Address */
DATA, 0x00,
DATA, 0x00,
DATA, 0x01,
DATA, 0xdf,

CMD, 0x2b, /* Set Page Address */
DATA, 0x00,
DATA, 0x00,
DATA, 0x01,
DATA, 0x0f,
};


Нашел проблему в инициализации - поменял, все встало на свои места.
Спуститься к концу Подняться к началу
Персональная информация
ches
Добавлено 17.12.2010 12:21 Сообщение: 17
ches
0

Пункты: 993
Регистрация: 01.07.2010
теперь попиксельная отрисовка в фреймбуфер отображается корректно, но сейчас интересует вопрос раньше было 24 бита на пиксель, а сейчас 32. но как я понял количество значащих бит осталось 24, а старшие 8 бит ни на что не влияют, т.е. при выводе в фреймбуфер их можно не учитывать, а при передаче на lsd они просто "обрезаются"

PS: а что еще изменилось помимо файла lcd_ssd1963.c, т.к. замена его в ядре 2.6.31 к положительному результату не приводит
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.12.2010 18:45 Редактировалось 17.12.2010 18:50 Сообщение: 18
sasamy
4.70

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

а что еще изменилось помимо файла lcd_ssd1963.c, т.к. замена его в ядре 2.6.31 к положительному результату не приводит


Немного поменялся вызов ф-ции обновления экрана в обработчике прерываний в mxsfb.c. Проще всего скопировать массив который я привел в старый драйвер, все должно работать.В новом драйвере обновление запускается в тасклете и я еще обнаружил в структуре mxs_platform_fb_entry прототип ф-ции .update_panel и воспользовался им, так сказать привел к стандартному виду. В остальном почти все тож самое. Еще смена панорамы сделана более правильно -синхронизирована с началом обновления экрана.
Спуститься к концу Подняться к началу
Персональная информация
supermaximus79
Добавлено 27.12.2010 15:48 Сообщение: 19
supermaximus79
0

Пункты: 56
Регистрация: 27.12.2010
Добрый день господа!
Не подскажете где можно скачать драйвер для SSD2119 дисплея.
У хотелось бы подключить этот дисплей через SPI к AT91SAM9260.

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