repstosw 18 28 января Опубликовано 28 января · Жалоба 1 hour ago, Obam said: А вы учитываете рекомендуемое\предпочтительное направление обзора, на чертежах дисплеев обычно стрелочкой обозначается и азимутом (6 часов, 12 часов)? Ваш-то для портретной ориентации проектировался (скорее всего на 6 ч взгляд должен быть). Учёл конечно! Отдаю себе отчёт в том, что дисплей 240x320. А не 320x240. И это надо учитывать при синхронизации вывода кадра из TCON в GRAM LCD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 28 января Опубликовано 28 января · Жалоба 19 часов назад, sasamy сказал: нашёл интересный вариант - Он же DSIшный))) 14 часов назад, repstosw сказал: И это надо учитывать при синхронизации вывода кадра из TCON в GRAM LCD. Вопрос по JPEG декодеру. Пока были картинки 1024х768 вопросов не было, а вот 1366х768 он в упор не хочет воспринимать, причем 1360х768 нормально, вопрос, может знаете, как побороть это или это по-жизни ошибка выравнивания? Просто матрица 1366х768, и эти 8 пикселей пустые - неприятно))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vasilius 1 28 января Опубликовано 28 января · Жалоба У кого-то есть XtDevTools RI-2020.4 под вин32? или может кто-то давно качал себе Xplorer-8.0.15-windows-installer.exe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 28 января Опубликовано 28 января · Жалоба 4 hours ago, mantech said: 1366х768 он в упор не хочет Буфер на 1376 ради эксперимента попробуете Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ozelot 7 28 января Опубликовано 28 января · Жалоба 4 hours ago, mantech said: 1366х768 он в упор не хочет воспринимать Если используете аппаратный декодер, то и не будет работать. Так как он может обрабатывать только разрешения кратные 16-ти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 28 января Опубликовано 28 января · Жалоба 34 минуты назад, GenaSPB сказал: Буфер на 1376 Да, тоже так подумал, завтра попробую.. 31 минуту назад, Ozelot сказал: Так как он может обрабатывать только разрешения кратные 16-ти. Да, похоже на то, жаль, интересно, как обходят на компах с такими матрицами, там только программно, с помощью SSE, но у него на сколько помню, тоже кратность есть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 28 января Опубликовано 28 января · Жалоба Так распакуйте... потом stretch blt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 28 января Опубликовано 28 января · Жалоба On 1/28/2024 at 5:51 PM, mantech said: Он же DSIшный в конце даташита есть код инициализации "Appendix 2:NT35521 REGISTER SETTING" проблема c mipi-ми панелями из-за его отсутствия возникают. В Linux уже есть драйвер панели с таким же контроллером, достаточно код инициализации подправить если он не такой же https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c#L44 On 1/28/2024 at 11:00 PM, mantech said: как обходят на компах с такими матрицами, там только программно, с помощью SSE при чём тут матрица интересно.. да и на armv7a neon есть для jpeg https://libjpeg-turbo.org/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 28 января Опубликовано 28 января (изменено) · Жалоба 9 hours ago, mantech said: Вопрос по JPEG декодеру. Пока были картинки 1024х768 вопросов не было, а вот 1366х768 он в упор не хочет воспринимать, причем 1360х768 нормально, вопрос, может знаете, как побороть это или это по-жизни ошибка выравнивания? Просто матрица 1366х768, и эти 8 пикселей пустые - неприятно))) Нужно размеры JPEG округлить в бОльшую сторону до 16. А на дисплей вывести через BitBlt G2D, вырезав ровно нужную область под дисплей. Пытаюсь запустить TCON в режиме IF CPU/i80. Чё-т пока не получается((( Дисплей рабочий - через ногодрыг работает, а через TCON не хочет. Осциллографа нет, времянки и сигналы посмотреть не могу. Пытался вольтметром определить уровни активного: делал цикл чтения и цикл записи. Определил, что линии должны быть проинвертированы: pdat.timing.h_sync_active = 1; //RD ---\___/--- pdat.timing.v_sync_active = 1; //CS ---\___/--- pdat.timing.den_active = 1; //RS pdat.timing.clk_active = 1; //WR ---\___/--- Мэпинг для 8-битной шины такой: IO0 VSYNC => CS (выбор устройства, активный 0) IO1 HSYNC => RD (строб чтения, активный 0) IO2 DCLK => WR (строб записи, активный 0) IO3 DE => RS (0 - индекс(команда), 1 - данные) D12 - R4,G2 - LCD D15 (в дисплее используются линии D15..D8 для шины 8 бит) D11 - R3,G1 - LCD D14 D10 - R2,G0 - LCD D13 D7 - R1,B4 - LCD D12 D6 - R0,B3 - LCD D11 D5 - G5,B2 - LCD D10 D4 - G4,B1 - LCD D9 D3 - G3,B0 - LCD D8 Проверил уровни в моменты чтения и записи вольтметром. Они соответствуют тем, что в программе. Цикл записи: void LCD_Index(u32 index) { LCD_Wait(); LCD_CPU_IF_REG&=~(1<<25); //CA=0 LCD_CPU_WR_REG=index; } Цикл чтения: void LCD_Data(u32 data) { LCD_Wait(); LCD_CPU_IF_REG|= (1<<25); //CA=1 LCD_CPU_WR_REG=data; } Запись в регистр: void LCD_IndexData(u32 index,u32 data) { LCD_Index(index); LCD_Data(data); } Всё остальное: #define LCD_CPU_IF_REG (*((IO u32*)(T113_TCONLCD_BASE+0x60))) #define LCD_CPU_WR_REG (*((IO u32*)(T113_TCONLCD_BASE+0x64))) void LCD_Wait(void) { while(LCD_CPU_IF_REG&(1<<23)); //WR wait while(LCD_CPU_IF_REG&(1<<22)); //RD wait } И ещё непонятно, этот TCON самостоятельно разруливает 16-битные записи на две 8-битные, или надо самому это делать? Ну тоесть чтобы отправить 16-битную команду через 8-битную шину: надо сначала отправить старший байт команды, потом младший байт команды. Затем отправить старший байт данных, потом младший байт данных. Тоесть - 4 записи. Столько же записей должно быть и через TCON? Или он сам разделяет одну 16-битную запись в две 8-битных? И вообще, учитывая бешеную популярность матриц на шине i8080 у китайцев, особенно на контроллерах ILI9325 и им подобных, неужели никто не озадачился как их подружить с Allwinner ? Может есть фрагменты кода в Линуксе, которые подскажут как работать с TCON в режиме CPU/i80 ? Второй немаловажный вопрос: как установить времянки через TCON в режиме CPU/i80 ? Ширина стробов чтения, записи. И прочие вещи. Вижу там только времянки развёртки дисплея через RGB-итерфейс. Изменено 29 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vasilius 1 29 января Опубликовано 29 января · Жалоба 1 час назад, repstosw сказал: И ещё непонятно, этот TCON самостоятельно разруливает 16-битные записи на две 8-битные, или надо самому это делать? Ну тоесть чтобы отправить 16-битную команду через 8-битную шину: надо сначала отправить старший байт команды, потом младший байт команды. Затем отправить старший байт данных, потом младший байт данных. Тоесть - 4 записи. Столько же записей должно быть и через TCON? Или он сам разделяет одну 16-битную запись в две 8-битных? И вообще, учитывая бешеную популярность матриц на шине i8080 у китайцев, особенно на контроллерах ILI9325 и им подобных, неужели никто не озадачился как их подружить с Allwinner ? Может есть фрагменты кода в Линуксе, которые подскажут как работать с TCON в режиме CPU/i80 ? Второй немаловажный вопрос: как установить времянки через TCON в режиме CPU/i80 ? Ширина стробов чтения, записи. И прочие вещи. Вижу там только времянки развёртки дисплея через RGB-итерфейс. tcon de 2.0 de_lcd.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 29 января Опубликовано 29 января (изменено) · Жалоба 5 hours ago, repstosw said: И ещё непонятно, этот TCON самостоятельно разруливает 16-битные записи на две 8-битные, или надо самому это делать? Ну тоесть чтобы отправить 16-битную команду через 8-битную шину: надо сначала отправить старший байт команды, потом младший байт команды. Затем отправить старший байт данных, потом младший байт данных. Тоесть - 4 записи. Столько же записей должно быть и через TCON? Или он сам разделяет одну 16-битную запись в две 8-битных? Проделал замеры, в ходе которых пришёл к выводу, что TCON пишет отдельным байтом. Он не производит аппаратного расщепления слова на байты шины. Выясняется элементарно: путём записи в регистр LCD_CPU_WR_REG значений: 0xFF, 0xFF00 и 0xFFFF. И вольтметром смотрим напряжения на ножках, в программе циклическая запись. Кроме того, обнаружен бит-свопинг на шине данных (что я собственно и предвидел): при записи и чтения команд/данных нужно учитывать положения бит. Тоесть чтобы послать байт на шину дисплея через TCON, нужно сделать следующие манипуляции над байтом: #define CONVERT(b) ((((b)&0x1F)<<3)|(((b)&0xE0)<<5)) Биты идут так: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 D7 D6 D5 0 0 D4 D3 D2 D1 D0 0 0 0 - биты байта в регистре LCD_CPU_WR_REG D7 D6 D5 D4 D3 D2 D1 D0 - биты байта на шине LCD_D12/LCD_D11/LCD_D10/LCD_D7/LCD_D6/LCD_D5/LCD_D4/LCD_D3 Хотя они могли этот свопинг делать аппаратно, с учётом битов 28...31 регистра LCD_CPU_IF_REG : 1110 - 8 bit 65K mode. При чтении из регистров биты нужно просвопать в обратном порядке. Кроме того, обнаружено следующее: CS,RD,WR вначале всегда =1, D0..D7 = 0, RS = 0. Никаких Z-состояний шины данных! RS - устанавливается только при начале цикла чтения/записи (запись в регистр LCD_CPU_WR_REG или чтение регистра LCD_CPU_RD0_REG) 4 hours ago, vasilius said: tcon de 2.0 de_lcd.zip Это всё хорошо, но я не увидел где устанавливается ширина стробов чтения, записи. И прочие вещи, которые немаловажны. Изменено 29 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 29 января Опубликовано 29 января (изменено) · Жалоба On 1/29/2024 at 2:57 AM, repstosw said: И вообще, учитывая бешеную популярность матриц на шине i8080 у китайцев просто лет 15 назад наделали столько что до сих пор не продали On 1/29/2024 at 2:57 AM, repstosw said: неужели никто не озадачился как их подружить с Allwinner ? а какой смысл - современные панели давно не используют свою память и разрешения уже на порядки больше. Нашёл очередной хороший вариант, сначала через https://www.panelook.com/ выставил интересующие параметры панели, нашёл кучу вариантов с даташитами и внезапно через поиск озона нашёл запчасть за копейки с таким контроллером HSD070PWW1 https://datasheetspdf.com/pdf-file/1098796/HannStar/HSD070PWW1-B01/1 Asus MeMO Pad ME172V LVDS 1280х800, удобное подключение через 30 пиновый разъём FPC и из напряжений нужно только 3.3В, на яндекс маркетк и озоне за примерно 800 рублей есть модуль LCD+тач Изменено 29 января пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 29 января Опубликовано 29 января · Жалоба 10 часов назад, sasamy сказал: при чём тут матрица интересно.. В смысле? Прямом, у нее не кратное разрешение. Вообщем попробовал 1376 честно говоря не очень, если использовать плоскость VUV то можно настроить скалер, чтобы он 1360 "вытягивал" в 1366, выглядит вполне прилично, а вот обратно с 1376 не очень, срезает часть края экрана. 8 часов назад, repstosw сказал: А на дисплей вывести через BitBlt G2D, вырезав ровно нужную область под дисплей. Походу так и придется, неудобные эти округления больно((( Хорошо, хоть в 1920х1080 все норм без округлений... 19 минут назад, sasamy сказал: https://datasheetspdf.com/pdf-file/1098796/HannStar/HSD070PWW1-B01/1 С одной стороны хорошо, что LVDS, с другой - она тоже 6и битная(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 29 января Опубликовано 29 января (изменено) · Жалоба On 1/29/2024 at 11:51 AM, mantech said: В смысле? Прямом, у нее не кратное разрешение. те вы считаете что сайты в инете под вашу матрицу верстаются ? логичнее было бы подумать что картинки просто масштабируются под любое разрешение Изменено 29 января пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 29 января Опубликовано 29 января · Жалоба 1 минуту назад, sasamy сказал: логичнее было бы подумать что картинки просто масштабируются Вполне возможно, хотя самой винде приходится с разрешением матрицы работать, скорее всего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться