Я правильно понимаю вопрос: хочется, чтоб были какие-то "основные" параметры, чтобы "что-то было на экране", а потом уже настраивать "менее важное" ?
Так не получится, некоторые "неважные" параметры могут также приводить к тому, что матрица будет молчать.
Режим интерфейса важен, флаги инверсии синхронизации, пиксельклок. При несоответствии между собой 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)[свернуть]




Ответить с цитированием