User Tag List

Страница 24 из 31 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя
Показано с 231 по 240 из 301

Тема: Вывод изображения ретрокомпьютера на TFT-матрицу ("народный контроллер")

  1. #231

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от duke_yusupov Посмотреть сообщение
    Можете подсказать - какие параметры в первую очередь важны для определения матрицы? Как я понял - разрешение тут вообще особого значения не имеет. Тогда что?
    Я правильно понимаю вопрос: хочется, чтоб были какие-то "основные" параметры, чтобы "что-то было на экране", а потом уже настраивать "менее важное" ?
    Так не получится, некоторые "неважные" параметры могут также приводить к тому, что матрица будет молчать.
    Режим интерфейса важен, флаги инверсии синхронизации, пиксельклок. При несоответствии между собой DH-параметров (DHTotal включает в себя видимую строку, все зазоры и длину синхры и если они не будут между собой составлять правильный набор под конкретную матрицу, она не будет работать. Может для большинства матриц к каждому разрешению все прочие параметры примерно одинаковы, но я натыкался на такие, с которыми надо колдовать.

    Еще вариант решения: если есть полная сборка китайской прошивки, которая работает с искомой матрицей, а в ней указана модель матрицы (такое они часто в имени файла пишут), то ищем даташит на эту модель или файл ее описания в sdk- вполне может быть. И всю структуру PanelType переносим оттуда в урезанную прошивку через конфигуратор.

    at080en01 работала, правильно ?

    Upd: в sdk нет ни одной матрицы TTL 1024x600, причем все примеры ttl там 4:3. Так что под at080en01 не нашел.

    Upd2: в китайской сборке PCB800099-TTL1024x600-24bit-at080en01-2av1vga1hdmi-5key-IR2.bin не нашел структур, похожих на PanelType (искал по горизональному разрешению 1024 = 0x0400, после него идет в структуре PanelType идет значение DHTotal и повторяется его значение для PAL и NTSC (не знаю, зачем, но трижды) , оно больше и в пределах 1200-1600, то есть было бы либо 04 00 05 xx 05 xx ..., либо 04 00 06 xx 06 xx ..., но похожего нету). Видимо там все из других sdk собрано или просто отличаются структуры описания параметров матрицы (если таковые есть). В общем, результат "поискать в бинарнике" неуспешный.

    Upd3: поглазел во все описания ttl-матриц, и кардинальное отличие для них вижу в частотах пиксельклока - 20, 25, 32, 39, 43mhz (много ниже значений для LVDS). Так что возможно, что это как раз тот параметр, с которым надо будет поиграть.

    Вот навскидку конфиг матрицы TTL 1024x600 24bit (параметры TTL DELAY и TTL DCLK мне не ясны, может с ними тоже стоит поиграть, как и с частотой):



    Ну и для справки
    Структура PanelType

    Скрытый текст

    Код:
    typedef struct
    {
        UINT8 PanelStyle;                 // Panel Style
        UINT8 PanelConfig;                // Panel Configuration
    
        UINT16 DHStartPos;                // Display Horizontal Start Position
        UINT16 DHWidth;                   // Display Horizontal Width
    
        UINT16 DHTotal;                   // Display Horizontal Total Clock Number in One Display Line
        UINT16 PalDHTotal;                // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
        UINT16 NtscDHTotal;               // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC
    
        UINT16 DVStartPos;                // Display Vertical Start Position
        UINT16 DVHeight;                  // Display Vertical Height
    
        UINT16 DVTotal;                   // Display Vertical Total Line Number in One Frame
    
        UINT8 DHSyncWidth;                // Display H Sync Width
        UINT8 DVSyncHeight;               // Display V Sync Height
    
        UINT16 PixelClock;                // Typical Pixel Clock in MHz
    
        UINT16 HSyncMaxFreq;              // H Sync Max Freq Unit in 0.1 kHZ
        UINT16 HSyncMinFreq;              // H Sync Min Freq Unit in 0.1 kHZ
        UINT16 VSyncMaxFreq;              // V Sync Max Freq Unit in 0.1 HZ
        UINT16 VSyncMinFreq;              // V Sync Min Freq Unit in 0.1 HZ
    
        UINT8 TTL20;
    
    } PanelType;
    [свернуть]


    Пример описания какой-то матрицы TTL 800x600 из sdk

    Скрытый текст

    Код:
    // 800x600
    code PanelType Panel1 =
    {
    	// Panel Style
        _PANEL_TTL |		//_PANEL_TTL,_PANEL_HZ,_PANEL_LVDS,_PANEL_RSDS
        //_AUTOCALC_PIXCLK |
        _LVDS_MAP1 |		//_LVDS_MAP1,_LVDS_MAP2
        _DISP_24_BIT | 		//_DISP_24_BIT,_DISP_18_BIT
        //_RSDS_GC_SWAP |
        //_RSDS_HL_SWAP |
        //_RSDS_PN_SWAP |
        0x00,                            
    
    	// Panel Configuration
    	//_DHS_MASK |
    	_DISP_EO_SWAP |
    	//_DISP_RB_SWAP |
    	//_DISP_ML_SWAP |
    	_DISP_SINGLE_PORT |	//_DISP_SINGLE_PORT,_DISP_DOUBLE_PORT
    	//_DVS_INVERT |
    	//_DHS_INVERT |
    	//_DEN_INVERT |
    	0x00,
    
    
    	32,         // Display Horizontal Start Position
    	800,        // Display Horizontal Width
    
    	980,        // 1Display Horizontal Total Clock Number in One Display Line
    
    	980,        // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
    	980,        // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC
    
    	16,         // Display Vertical Start Position
    	600,        // Display Vertical Height
    
    	750,        // Display Vertical Total Line Number in One Frame
    
    	16,         // Display H Sync Width
    	3,          // Display V Sync Height
    
    	43,         // Typical Pixel Clock in MHz
    
    	1100,		// H Sync Max Freq Unit in 0.1 kHZ
    	100,		// H Sync Min Freq Unit in 0.1 kHZ
    	880,		// V Sync Max Freq Unit in 0.1 HZ
    	490,		// V Sync Min Freq Unit in 0.1 HZ
    
        // TTL setting   
        (3 << 4) |  // Delay
        (1 << 1) |    // DCLK output enable
        0x00,         // DCLK Polarity
    
    };
    [свернуть]


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

    Скрытый текст

    Код:
    //--------------------------------------------------
    // Definitions for Panel Settings
    //--------------------------------------------------
    // PanelType.PanelStyle Define's
    
    // BIT 0 ~ 2
    #define _PANEL_TTL                     	0
    #define _PANEL_HZ                       1
    #define _PANEL_LVDS                   	2
    #define _PANEL_RSDS                   	3
    
    #define _AUTOCALC_PIXCLK 				_BIT2
    
    #define _LVDS_MAP1						_BIT3   			//LVDS Bit-Mapping Table 1
    #define _LVDS_MAP2						0x00   			    //LVDS Bit-Mapping Table 2
    
    #define _DISP_24_BIT                    0x00
    #define _DISP_18_BIT                    _BIT4
    
    #define _RSDS_GC_SWAP                   _BIT7
    #define _RSDS_HL_SWAP                   _BIT6
    #define _RSDS_PN_SWAP                   _BIT5
    
    #define GET_PNL_OUTPUT_BUS()			(Panel[ucPanelSelect]->PanelStyle & 0x03)
    #define GET_AUTOCALC_PIXCLK()			(Panel[ucPanelSelect]->PanelStyle & _BIT2)
    #define GET_LVDS_MAP()					(Panel[ucPanelSelect]->PanelStyle & _BIT3)
    #define GET_18BIT_EN()					(Panel[ucPanelSelect]->PanelStyle & _BIT4)
    
    //--------------------------------------------------
    // Definitions for Display Single/Double Port, Even/Odd Swap,
    // Red/Blue Swap, MSB/LSB Swap, 24/18 Bit, Green/Clock Swap,
    // High/Low Swap and PN Swap
    //--------------------------------------------------
    #define _DHS_MASK							_BIT7
    #define _DISP_EO_SWAP                   	_BIT6
    #define _DISP_RB_SWAP                   	_BIT5
    #define _DISP_ML_SWAP                   	_BIT4
    
    #define _DISP_SINGLE_PORT               	0x00
    #define _DISP_DOUBLE_PORT               	_BIT3
    
    #define _DVS_INVERT                     	_BIT2
    #define _DHS_INVERT                     	_BIT1
    #define _DEN_INVERT                     	_BIT0
    
    #define GET_DOUBLE_PORT_EN()                (Panel[ucPanelSelect]->PanelConfig & _BIT3)
    [свернуть]
    Последний раз редактировалось valerium; 05.08.2023 в 21:35.

    Этот пользователь поблагодарил valerium за это полезное сообщение:

    duke_yusupov(06.08.2023)

  2. #232

    Регистрация
    09.06.2021
    Адрес
    г. Ярославль
    Сообщений
    64
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё раз спасибо за такую подробную информацию, потому что её не слишком-то много, а перебирать десяток цифровых параметров - это к бесконечности.
    Методом тыка - трогая по одному параметру выявил, что за "срабатывание" матрицы отвечает параметр TTL DCLK - без него ничего вообще не работает. С ним уже получил OSD, но желтый экран. "Желтый" поборол с помощью двух параметров DISP_MSB/LSB_SWAP и DISP_RED/BLUE_SWAP. ZX EVO нормально завелось после подключения её к порту VGA во всех режимах - и VGA и TV. Дельта С тоже завелась, но надо ещё с цветами там разобраться, почему-то тёмные очень. Ну и с разрешением и положением тоже надо понять куда крутить...

    Этот пользователь поблагодарил duke_yusupov за это полезное сообщение:

    valerium(07.08.2023)

  3. #233

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от duke_yusupov Посмотреть сообщение
    TTL DCLK - без него ничего вообще не работает. С ним уже получил OSD, но желтый экран. "Желтый" поборол с помощью двух параметров DISP_MSB/LSB_SWAP и DISP_RED/BLUE_SWAP. ZX EVO нормально завелось после подключения её к порту VGA во всех режимах - и VGA и TV.
    Круто, поздравляю, если все нужные входные режимы поймались, то остальное уже не особо сложно дотянуть до нормальных положений.
    И теперь мы все что-то знаем про матрицы с ttl.

    Формат данных с обратным порядком битов (msb/lsb swap) и видимо из-за этого красный с синим меняются местами (RGB трансформируется в BGR с битами задом наперед) - такое по идее без даташита не найти, как удалось ? За сколько перезаливок прошивки ?
    И на какой частоте DCLK она завелась?
    Последний раз редактировалось valerium; 07.08.2023 в 23:24.

  4. #234

    Регистрация
    09.06.2021
    Адрес
    г. Ярославль
    Сообщений
    64
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Просто перебирал по одному параметру и проверял - что он визуально меняет. RSDS_PN_SWAP, RSDS_HIGH/LOW_SWAP, RSDS_GREEN/CLK_SWAP, DEN_INVERT, DHS_INVERT, DVH_INVERT, DHS_MASK ничего не меняли вообще. Влияли битность дисплея и PORT (CHANNEL) - ну это ожидаемо.
    Все остальные параметры я делал как в выложенных примерах Wally, т.е. PixelClock=75Mhz

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

    Осталась проблема на Дельта-С (на ZX EVO всё нормально) - если RGB брать прямо с выходов платы - то пропадают полутона, т.е. получается повышенная яркость. Добавление резисторов в 50 Ом добавляет эти цвета и вроде бы все хорошо, но на зеленом цвете возникают аналоговые помехи на экране (такое впечатление, что плата "гадит"), смог их уменьшить только заменив 50 Ом на 30 Ом, но всё равно на ровном поле видны. На внешних скандаблерах такого нет, наверное потому что там в схему идёт RGBI, т.е. смешивание на самой плате идёт. А тут получается, что я ей подсовываю уже RGB с яркостью и тут всё зависит от реализации на плате.

    А вторая проблема - это то, что у меня монитор с этой матрицей почему-то верх ногами стоит. В оригинальной "синей" прошивке есть настройка в меню SYS1/SYS2/SYS3/SYS4, которые переворачивают картинку. В этой прошивке, как я понял, такого нет?

    Микросхема с прошивкой на моей синей матрице какая-то специфическая. В ней есть доп.области (3 штуки, 2 заполнены данными) с обозначением Security Register. Прошивку я с этой микросхемы взял, но при заливе в Winbound она не работает - просто желтый экран. Куда писать эти доп. области - непонятно, наверное, нужна именно такая микросхема, как на плате стоит, просто 40x25 не подходит...

  5. #235

    Регистрация
    27.10.2013
    Адрес
    г. Кишинев, Молдова
    Сообщений
    517
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    27 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от duke_yusupov Посмотреть сообщение
    У меня монитор 7" (матрица 1024 на 600, 6 бит) на "народном контроллере" с Алиэкпресс (https://aliexpress.ru/item/1005004670710687.html).
    А никому не попадался такой-же 1 в 1 (с народным контроллером) но с матрицей 10"..12" ? Зрение уже не то чтобы тыкатся в 7". Спасибо.

  6. #236

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    813
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от duke_yusupov Посмотреть сообщение
    Убрал "матрас" на экране, но справа получились пикселей 10 пустоты, т.е. заливаются чем-то обратным об общей заливки. А если сдвигать вправо - то слева возникает полоса. Растягиваешь - появляется "матрас" на шахматке пикселей.
    А можно фото "матраса", "10 пикселей пустоты"?
    Как сдвигаешь?
    Как растягиваешь?
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  7. #237

    Регистрация
    09.06.2021
    Адрес
    г. Ярославль
    Сообщений
    64
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дак тут в теме на 16 странице есть описание алгоритма с шириной обрабатываемой области и сдвигами по горизонтали.
    Последний раз редактировалось duke_yusupov; 16.08.2023 в 10:22. Причина: поправил номер страницы

  8. #238

    Регистрация
    09.06.2021
    Адрес
    г. Ярославль
    Сообщений
    64
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И еще вопрос для понимания: что значат параметры в конфигураторе Horiz Freq Tolerance и Vert Freq Tolerance
    Столкнулся с проблемой конфигурации 7 режимов для ZX EVO. В ней всего 8 режимов: 48, 128, Пентагон, 60Hz и каждый с ТВ и с VGA выходом. Я смог сконфигурировать для ТВ-режима сразу 3 штуки: 48, 128, Пентагон (т.е. для каждой убрал "матрас" - выровнял пиксели, выстроил по вертикали и горизонтали). А вот VGA-режимы почему-то подхватывают те же параметры для ТВ-режима, хотя есть отдельные режимы для VGA в которых прописано 31.5 kHz. Если ТВ-режимы убрать - то VGA работают. Я думал, что такая разница в герцовке не должна давать хватать контроллеру режимы для ТВ, но нет... В итоге экран растягивается в два раза по вертикали.

  9. #239

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эти параметры определяют окно детекции режима. Погрешность, если кому-то так удобнее.
    То есть, например, если в режиме строчная 31,5khz и tolerance=1khz, то окно "попадания" в этот режим будет от 31,5-1=30,5khz до 31,5+1=32,5khz.

    Но откуда 7 режимов ? Это разговор про ту, давно выложенную и не тестированную прошивку с добавкой болванок под еще 4 режима ?

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

    А глупый вопрос: разве VGA-режимы у эвы отображают другие разрешения ? Если нормально работают телевизионные, то для чего нужно то же самое с VGA-частотами ?
    Последний раз редактировалось valerium; 15.08.2023 в 20:02.

  10. #240

    Регистрация
    09.06.2021
    Адрес
    г. Ярославль
    Сообщений
    64
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По параметрам, спасибо, понял. Я и так догадался, просто непонятно было - почему при 31 кгц монитор хватает прошивку в которой указано 15 кгц и просто на экране растягивает изображение по вертикали. Такое впечатление, что там более сложный алгоритм.

    И да, это я экспериментирую с тем вариантом с 7 режимами. Просто интересно - получится ли полностью настроить на Эву, всё-таки она по кругу их все переключает. Разрешения отличаются, потому что в VGA-режиме требуется в два раза больше строк по вертикали, если вместо 15 выставлено 31 килогерц. Я сейчас пробую с 640 на 550 - вот оно в окно хорошо влезает без черных полос слева и справа, но "матрас" убрать нельзя. Но до этого я пока не дошел ещё.
    Надо попробовать сначала VGA режимы поставить, а за ними уже ТВ...

Страница 24 из 31 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее: 11.09.2020, 09:36
  2. Ответов: 60
    Последнее: 19.06.2020, 13:02
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Вывод изображения
    от Shnurkov в разделе Изображение
    Ответов: 5
    Последнее: 10.02.2007, 15:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •