Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Вспомогательные средства
SK-WF43BTIBED0-Plug вопрос по управлению
pluto
Добавлено 29.05.2010 04:42 Сообщение: 11
pluto
0

Пункты: 166
Регистрация: 12.10.2009
Command F0h

Description

Set the pixel data format to 8-bit / 9-bit / 12-bit / 16-bit / 16-bit(565) / 18-bit / 24-bit in the parallel host processor
interface
A[2:0] : Pixel Data Interface Format (POR = 101)
000 8-bit
001 12-bit
010 16-bit packed
011 16-bit (565 format)
100 18-bit
101 24-bit
110 9-bit
Others Reserved

У панельки 8-битный интерфейс, а нужно 16 бит за раз, естественно контроллер видит только первые 8 бит.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 29.05.2010 11:36 Редактировалось 29.05.2010 13:33 Сообщение: 12
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Т.е вы хотите сказать что режим 16бит на писел не возможен аппаратно?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 29.05.2010 13:35 Сообщение: 13
Jury093
4.5

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

почему невозможен? в мане на каждом углу написано 16, 16, 16..
4 разновидности формата 16 бит..
проверь, что у тебя возвращает индикатор на такие команды:
Код
9.77 Get Pixel Data Interface
Command F1h
Parameters 1

Код
9.5 Get Pixel Format
Command 0Ch
Parameters 1

есть ли вот такая команда и что засылает:
Код
9.29 Set Pixel Format
Command 3Ah
Parameters 1


видимо чего-то не хватает или в настройках или при передаче пакета данных
выложи сюда или на почту - как инитишь и как и что посылаешь - проще будет понять :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 29.05.2010 17:41 Редактировалось 29.05.2010 17:44 Сообщение: 14
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Привет Юр.
вот последоватеьность инициализации. полностью слизал из драйвера линуксового
Код

// Software reset
wr_cmd(0x01);
wr_cmd(0x01);
wr_cmd(0x01);
// PLL
command_wr(0xe0, 0x01); // PLL Start
command_wr(0xe0, 0x03); // PLL Lock
// TFT Mode
wr_cmd(0xb0); // SET TFT MODE (18bit mode)
wr_data(0x08); // Set TFT mode & hsync + vsync + DEN mode
wr_data(0x80); // ^
wr_data(0x01); // Set horizontal size 480-1 (high byte)
wr_data(0xdf); // ^ low byte
wr_data(0x01); // Set vertical size 272-1 (high byte)
wr_data(0x0f); // ^ (low byte)
wr_data(0x00); // Set even/odd line RGB seq.=RGB

//command_wr(0xf0, 0x00); // set pixel data interface format 8bit
command_wr(0xf0, 0b00000101); // Set RGB5:6:5 format
// command_wr(0xf0, 0b11000000);
command_wr(0x3a, 0x50); // Set 16 bit per pixel
// command_wr(0x3a, 0b01110000);
// command_wr(0x3a, 0x60); // Set RGB6:6:6 format

wr_cmd(0xe6); // Set PCLK = 9MHz
wr_data(0x01);
wr_data(0x45);
wr_data(0x47);
// Set HBP
wr_cmd(0xb4);
wr_data(0x02); //Hsync = 525
wr_data(0x0d);
wr_data(0x00); //HBP = 43
wr_data(0x2b);
wr_data(0x28); // VBP = 41
wr_data(0x00); // Hsync pulse start pos.
wr_data(0x00);
wr_data(0x00); //HSync pulse subpixel start position
wr_cmd(0xb6); //SET VBP,
wr_data(0x01); //SET Vsync total 286=285+1
wr_data(0x1d);
wr_data(0x00); //SET VBP=12
wr_data(0x0c);
wr_data(0x09); //SET Vsync pulse 10=9+1
wr_data(0x00); //SET Vsync pulse start position
wr_data(0x00);

wr_cmd(0x2a); //SET column address
wr_data(0x00); //SET start column address=0
wr_data(0x00);
wr_data(0x01); //SET end column address=479
wr_data(0xdf);

wr_cmd(0x2b); //SET page address
wr_data(0x00); //SET start page address=0
wr_data(0x00);
wr_data(0x01); //SET end page address=271
wr_data(0x0f);

wr_cmd(0x29); //SET display on


wr_data обрабатывается так:
Код

void wr_data( long data)
{
RD = 1;
WR = 0;
RS = 1;
data_port = data;
CS = 0;
CS = 1;
WR = 1;
}


command_wr вот так:
Код

void command_wr( long command, long data)
{
wr_cmd(command);
wr_data(data);
}


wr_cmd вот так:
Код

void wr_cmd( long cmd)
{
WR = 0;
RS = 0;
data_port = cmd;
CS = 0;
CS = 1;
WR = 1;
}
Спуститься к концу Подняться к началу
Персональная информация
Artemius
Добавлено 29.05.2010 18:41 Редактировалось 29.05.2010 18:44 Сообщение: 15
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Цитата
Т.е вы хотите сказать что режим 16бит на писел не возможен аппаратно?

Команда 0xF0 отвечает только за разрядность интерфейса между CPU и SSD1963, не влияя на разрядность выдаваемой картинки.

Если под 16-битностью подразумевается возможнось передать один пиксель за две 8-битные записи данных вместо трех, то скорее всего это невозможно.
Хотя есть некая команда 0x3A Set Pixel Format, но как она работает не понятно.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 29.05.2010 19:42 Сообщение: 16
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
т.е из этого следует что нужно 0хF0 поставить на 8 бит, а 0x3A на RGB5:6:5 ? Пробовал. не помогает.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.05.2010 19:55 Редактировалось 29.05.2010 19:58 Сообщение: 17
sasamy
4.70

Пункты: 77392
Регистрация: 14.08.2009
В даташите на ssd1963 на стр 16 Table 7-1: Pixel Data Format - видно что с 8-битным интерфейсом можно передавать только 3 байта на пиксель хотя из них получается только 18 значащих бит. Для меня тоже это оказалось крайне неприятным явлением. Мало того что по интефесу летает 30% не несущего информации "воздуха" так еще и в linux нужно делать фреймбуфер не менее 24 bpp из который 30% воздуха а процессор они нагружают.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 29.05.2010 20:22 Сообщение: 18
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
т.е из этого следует что нужно 0хF0 поставить на 8 бит, а 0x3A на RGB5:6:5 ? Пробовал. не помогает.

т.е. ты давал команду записи данный и засылал три байта самих данных и не помогло?
Саша, прав. Я пока читал доку, он успел написать :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 29.05.2010 20:37 Редактировалось 29.05.2010 20:38 Сообщение: 19
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
если грубо прикинуть - АВР 8МГц - одна команда 125нс
у тебя команда записи байта 7+1 итого 1мкс
запись одного пикселя 4 байта - итого 4мкс
разрешение экрана 480х272 = 130560 пикселей
т.о. теоретически для пустой заливки экрана требуется 0.5с в теории, а с учетом накладных расходов на счетчики, вызовы и возвраты будет еще больше
оптимизацию включил? :)

кстати, на том же электрониксе есть длинющий тред где пипл приживляет к АВРам экраны от сотовых - есть недовольные скоростью работы, а там разрешение экранов заметно меньше..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 29.05.2010 21:34 Сообщение: 20
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
вот если брать настройку из драйвера линуксового.. то получается что нужно заслать в дисп 3 байта за 3 цикла RGB6:6:6. У меня шина данных дисплея висит на порте С процессора.. т.е я высталяю управляющие сиганлы типа WR,RS(порт В) и т.д и в порт C кидаю байт цвета, потом заканчиваю цикл выставляя управляющие сигналы. и так 3 раза для 3х цветов. так работает. Неудобно то что на цвет 6 бит а не 8..и почему-то очень долго перерисовывается экран. Но работает. Вот примерно ТАК просто статическое изображение,нарисовано для примера
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Вспомогательные средства