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

