Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources

This commit is contained in:
2026-07-06 11:30:13 +08:00
commit e76462eeb7
3451 changed files with 1415300 additions and 0 deletions

View File

@@ -0,0 +1,657 @@
#include "lib/lcd/lcd.h"
#if LCD_ST7701S_MIPI_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
#define BOE397_IPS 1
const uint8_t st7701s_register_init_tab[][2] = {
#if BOE397_IPS
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x13),
CMD (0xEF),
DAT (0x08),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x10),
CMD (0xC0),
DAT (0x63),
DAT (0x00),
CMD (0xC1),
DAT (0x09),
DAT (0x02),
CMD (0xC2),
DAT (0x07),
DAT (0x02),
CMD (0xCC),
DAT (0x18),
CMD (0xB0),
DAT (0x00),
DAT (0x12),
DAT (0x19),
DAT (0x0D),
DAT (0x12),
DAT (0x0A),
DAT (0x07),
DAT (0x0B),
DAT (0x08),
DAT (0x23),
DAT (0x06),
DAT (0x14),
DAT (0x13),
DAT (0x25),
DAT (0x2B),
DAT (0x1F),
CMD (0xB1),
DAT (0x00),
DAT (0x0A),
DAT (0x13),
DAT (0x0D),
DAT (0x10),
DAT (0x03),
DAT (0x04),
DAT (0x07),
DAT (0x09),
DAT (0x1F),
DAT (0x04),
DAT (0x11),
DAT (0x0E),
DAT (0x23),
DAT (0x2A),
DAT (0x1F),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x11),
CMD (0xB0),
DAT (0x4D),
CMD (0xB1),
DAT (0x55),
CMD (0xB2),
DAT (0x87),
CMD (0xB3),
DAT (0x80),
CMD (0xB5),
DAT (0x4F),
CMD (0xB7),
DAT (0x85),
CMD (0xB8),
DAT (0x23),
CMD (0xB9),
DAT (0x22),
DAT (0x13),
CMD (0xBB),
DAT (0x03),
CMD (0xBC),
DAT (0x10),
CMD (0xC0),
DAT (0x89),
CMD (0xC1),
DAT (0x78),
CMD (0xC2),
DAT (0x78),
CMD (0xEF),
DAT (0x08),
DAT (0x08),
DAT (0x08),
DAT (0x4C),
DAT (0x3F),
DAT (0x54),
CMD (0xD0),
DAT (0x88),
CMD (0xE0),
DAT (0x00),
DAT (0x00),
DAT (0x02),
CMD (0xE1),
DAT (0x04),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x05),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x10),
DAT (0x10),
CMD (0xE2),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0xE3),
DAT (0x00),
DAT (0x00),
DAT (0x33),
DAT (0x00),
CMD (0xE4),
DAT (0x22),
DAT (0x00),
CMD (0xE5),
DAT (0x03),
DAT (0x34),
DAT (0xAF),
DAT (0xB3),
DAT (0x05),
DAT (0x34),
DAT (0xAF),
DAT (0xB3),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0xE6),
DAT (0x00),
DAT (0x00),
DAT (0x33),
DAT (0x00),
CMD (0xE7),
DAT (0x22),
DAT (0x00),
CMD (0xE8),
DAT (0x04),
DAT (0x34),
DAT (0xAF),
DAT (0xB3),
DAT (0x06),
DAT (0x34),
DAT (0xAF),
DAT (0xB3),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0xEB),
DAT (0x02),
DAT (0x00),
DAT (0x40),
DAT (0x40),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0xEC),
DAT (0x00),
DAT (0x00),
CMD (0xED),
DAT (0xFA),
DAT (0x45),
DAT (0x0B),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xFF),
DAT (0xB0),
DAT (0x54),
DAT (0xAF),
CMD (0xEF),
DAT (0x08),
DAT (0x08),
DAT (0x08),
DAT (0x45),
DAT (0x3F),
DAT (0x54),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x13),
CMD (0xE6),
DAT (0x16),
DAT (0x7c),
CMD (0xe8),
DAT (0x00),
DAT (0x0E),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0x11),
DLY (120),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x13),
CMD (0xe8),
DAT (0x00),
DAT (0x0C),
DLY (10),
CMD (0xe8),
DAT (0x00),
DAT (0x00),
CMD (0xFF),
DAT (0x77),
DAT (0x01),
DAT (0x00),
DAT (0x00),
DAT (0x00),
CMD (0x35),
DAT (0x00),
#if 0 //test pattern
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x12),
CMD(0xD1),
DAT(0x81),
CMD(0xD2),
DAT(0x06),
#endif
CMD(0x36), // //U&D Y-DIR
DAT(0x00), //rotate 0: 0x00 : rotate 180 :0x10
CMD(0x3A),
DAT(0x77),
CMD (0x21),
DLY(100),
CMD (0x29),
DLY(200),
#else
CMD(0x01),
DLY(120),
CMD(0x11),
DLY(120),
//CMD(0xD3),
//DAT(0x07),
//DAT(0x00),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x11),
CMD(0xD1),
DAT(0x11),
CMD(0x55),
DAT(0xb0), // 80 90 b0
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x10),
CMD(0xC0),
DAT(0x63),
DAT(0x00),
CMD(0xC1),
DAT(0x02), //vbp
DAT(0x0A), //vfp
CMD(0xC2),
DAT(0x37),
DAT(0x08),
CMD(0xC3),
DAT(0x00),
DAT(0x00),
DAT(0x08),
CMD(0xC7),//x-dir
DAT(0x04), // rotate 0 : 0x00 rotate 180 :0x04
CMD(0xCC),
DAT(0x38),
CMD(0xB0),
DAT(0x00),
DAT(0x11),
DAT(0x19),
DAT(0x0C),
DAT(0x10),
DAT(0x06),
DAT(0x07),
DAT(0x0A),
DAT(0x09),
DAT(0x22),
DAT(0x04),
DAT(0x10),
DAT(0x0E),
DAT(0x28),
DAT(0x30),
DAT(0x1C),
CMD(0xB1),
DAT(0x00),
DAT(0x12),
DAT(0x19),
DAT(0x0D),
DAT(0x10),
DAT(0x04),
DAT(0x06),
DAT(0x07),
DAT(0x08),
DAT(0x23),
DAT(0x04),
DAT(0x12),
DAT(0x11),
DAT(0x28),
DAT(0x30),
DAT(0x1C),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x11), // enable bk fun of command 2 BK1
CMD(0xB0),
DAT(0x4D),
CMD(0xB1),
DAT(0x60), //0x56 0x4a 0x5b
CMD(0xB2),
DAT(0x07),
CMD(0xB3),
DAT(0x80),
CMD(0xB5),
DAT(0x47),
CMD(0xB7),
DAT(0x8A),
CMD(0xB8),
DAT(0x21),
CMD(0xC1),
DAT(0x78),
CMD(0xC2),
DAT(0x78),
CMD(0xD0),
DAT(0x88),
DLY(100),
CMD(0xE0),
DAT(0x00),
DAT(0x00),
DAT(0x02),
CMD(0xE1),
DAT(0x01),
DAT(0xA0),
DAT(0x03),
DAT(0xA0),
DAT(0x02),
DAT(0xA0),
DAT(0x04),
DAT(0xA0),
DAT(0x00),
DAT(0x44),
DAT(0x44),
CMD(0xE2),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0xE3),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE4),
DAT(0x44),
DAT(0x44),
CMD(0xE5),
DAT(0x01),
DAT(0x26),
DAT(0xA0),
DAT(0xA0),
DAT(0x03),
DAT(0x28),
DAT(0xA0),
DAT(0xA0),
DAT(0x05),
DAT(0x2A),
DAT(0xA0),
DAT(0xA0),
DAT(0x07),
DAT(0x2C),
DAT(0xA0),
DAT(0xA0),
CMD(0xE6),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE7),
DAT(0x44),
DAT(0x44),
CMD(0xE8),
DAT(0x02),
DAT(0x26),
DAT(0xA0),
DAT(0xA0),
DAT(0x04),
DAT(0x28),
DAT(0xA0),
DAT(0xA0),
DAT(0x06),
DAT(0x2A),
DAT(0xA0),
DAT(0xA0),
DAT(0x08),
DAT(0x2C),
DAT(0xA0),
DAT(0xA0),
CMD(0xEB),
DAT(0x00),
DAT(0x01),
DAT(0xE4),
DAT(0xE4),
DAT(0x44),
DAT(0x00),
DAT(0x40),
CMD(0xED),
DAT(0xFF),
DAT(0xF7),
DAT(0x65),
DAT(0x4F),
DAT(0x0B),
DAT(0xA1),
DAT(0xCF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFC),
DAT(0x1A),
DAT(0xB0),
DAT(0xF4),
DAT(0x56),
DAT(0x7F),
DAT(0xFF),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0x36), // //U&D Y-DIR
DAT(0x10), //rotate 0: 0x00 : rotate 180 :0x10
CMD(0x3A),
DAT(0x77),
#if 0 //test pattern
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x12),
CMD(0xD1),
DAT(0x81),
CMD(0xD2),
DAT(0x06),
#endif
CMD(0x29),
// DLY(120),
// CMD(0x23),
// DLY(120),
#endif
END
};
lcddev_t lcdstruct = {
.name = "st7701s_mipi",
.lcd_bus_type = LCD_BUS_MIPI,
.bus_width = LCD_BUS_WIDTH_24,
.color_mode = LCD_MODE_888,
//.red_width = LCD_BUS_WIDTH_6,
//.green_width = LCD_BUS_WIDTH_6,
//.blue_width = LCD_BUS_WIDTH_6,
.osd_scan_mode = LCD_ROTATE_270,
.scan_mode =LCD_ROTATE_270,// LCD_ROTATE_90,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
//f(wr) = source_clk/div/2
//f(wr) >= screen_w * screen_h * clk_per_pixel * 60
.pclk = DEFAULT_SYS_CLK/(DEFAULT_SYS_CLK/24000000),
.even_order = 0,
.odd_order = 0,
.lcd_data_mode = (0<<31)|//data inversion mode
(2<<24)|//data compress mode
(1<<20)|//fifo mode
(0<<17)|//output cycle 2 shift direction
(0<<12)|//output cycle 2 shift bit
(0<<11)|//output cycle 1 shift direction
(0<<6)| //output cycle 1 shift bit
(0<<5)| //output cycle 0 shift direction
(8<<0), //output cycle 0 shift bit
.screen_w = 480,
.screen_h = 800,
.video_x = 0,
.video_y = 0,
.video_w = 480,//480,
.video_h = 800,//800,
.osd_x = 0,
.osd_y = 0,
.osd_w = 480, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 800, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = st7701s_register_init_tab,
.frame_table = NULL,
.clk_per_pixel = 2,
.lane_num = 2,
.pclk_inv = 1,
.vlw = 2,
.vbp = 2,
.vfp = 10,
.hlw = 2,
.hbp = 8,
.hfp = 96,
.de_inv = 0,
.hs_inv = 0,
.vs_inv = 0,
.de_en = 1,
.vs_en = 1,
.hs_en = 1,
.brightness = 1,
.saturation = 7,
.contrast = 7,
.contra_index = 8,
.gamma_red = 3,
.gamma_green=3,
.gamma_blue=3,
};
#endif