diff --git a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos.c b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos.c index 23eac27bf..039f97331 100644 --- a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos.c +++ b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos.c @@ -92,7 +92,7 @@ static CVI_S32 cmos_get_ae_default(VI_PIPE ViPipe, AE_SENSOR_DEFAULT_S *pstAeSns pstAeSnsDft->u32FullLinesStd = pstSnsState->u32FLStd; pstAeSnsDft->u32FlickerFreq = 50 * 256; pstAeSnsDft->u32FullLinesMax = SC035GS_FULL_LINES_MAX; - pstAeSnsDft->u32HmaxTimes = (1000000) / (pstSnsState->u32FLStd * 120); + pstAeSnsDft->u32HmaxTimes = (1000000) / (pstSnsState->u32FLStd * 240); pstAeSnsDft->stIntTimeAccu.enAccuType = AE_ACCURACY_LINEAR; pstAeSnsDft->stIntTimeAccu.f32Accuracy = 0.0625; /* unit = 1/16 line */ @@ -109,7 +109,7 @@ static CVI_S32 cmos_get_ae_default(VI_PIPE ViPipe, AE_SENSOR_DEFAULT_S *pstAeSns pstAeSnsDft->u32MaxISPDgainTarget = 2 << pstAeSnsDft->u32ISPDgainShift; if (g_au32LinesPer500ms[ViPipe] == 0) - pstAeSnsDft->u32LinesPer500ms = pstSnsState->u32FLStd * 120 / 2; + pstAeSnsDft->u32LinesPer500ms = pstSnsState->u32FLStd * 240 / 2; else pstAeSnsDft->u32LinesPer500ms = g_au32LinesPer500ms[ViPipe]; pstAeSnsDft->u32SnsStableFrame = 0; @@ -714,7 +714,7 @@ static CVI_S32 cmos_set_image_mode(VI_PIPE ViPipe, ISP_CMOS_SENSOR_IMAGE_MODE_S u8SensorImageMode = pstSnsState->u8ImgMode; pstSnsState->bSyncInit = CVI_FALSE; - if (pstSensorImageMode->f32Fps <= 120) { + if (pstSensorImageMode->f32Fps <= 240) { if (pstSnsState->enWDRMode == WDR_MODE_NONE) { if (SC035GS_RES_IS_480P(pstSensorImageMode->u16Width, pstSensorImageMode->u16Height)) { u8SensorImageMode = SC035GS_MODE_640X480P120; diff --git a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos_param.h b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos_param.h index 70f3f7b7a..90a59609e 100644 --- a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos_param.h +++ b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_cmos_param.h @@ -38,14 +38,18 @@ static const SC035GS_MODE_S g_astSC035GS_mode[SC035GS_MODE_NUM] = { .u32Height = 480, }, }, - .f32MaxFps = 120, - .f32MinFps = 1.25, /* 515 * 120 / 0xFFFF */ + .f32MaxFps = 240, + .f32MinFps = 0.31, /* 515 * 120 / 0xFFFF */ .u32HtsDef = 1136, // 0x320c/d 036b=878 0470=1136 - .u32VtsDef = 528, // 0x320e/f 02ab=683 0210=528 + .u32VtsDef = 86, // 0x320e/f 02ab=683 0210=528 + // .u32VtsDef = 68, // 0x320e/f 02ab=683 0210=528 + // .u32VtsDef = 512, // 0x320e/f 30fps + // .u32VtsDef = 256, // 0x320e/f 60fps + // .u32VtsDef = 128, // 0x320e/f 120fps .stExp[0] = { .u16Min = 1, - .u16Max = 677 << 4,// (vts - 6) * 16 - .u16Def = 400 << 4, + .u16Max = 80 << 4,// (vts - 6) * 16 + .u16Def = 40 << 4, .u16Step = 1, }, .stAgain[0] = { @@ -101,7 +105,7 @@ struct combo_dev_attr_s sc035gs_rx_attr = { .mac_clk = RX_MAC_CLK_600M, .mipi_attr = { .raw_data_type = RAW_DATA_10BIT, - .lane_id = {4, 3, 2, -1, -1}, + .lane_id = {4, 3, -1, -1, -1}, .pn_swap = {0, 0, 0, 0, 0}, .wdr_mode = CVI_MIPI_WDR_MODE_NONE, .dphy = { diff --git a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_sensor_ctl.c b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_sensor_ctl.c index c362404c3..5647f08b5 100644 --- a/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_sensor_ctl.c +++ b/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs/sc035gs_sensor_ctl.c @@ -208,138 +208,135 @@ void sc035gs_exit(VI_PIPE ViPipe) /* 1296P30 and 1296P25 */ static void sc035gs_linear_1296P30_init(VI_PIPE ViPipe) { - printf("########### PinMux #######################################################################\n"); - system("devmem 0x0300116C 32 0x3"); - system("devmem 0x03001170 32 0x3"); - system("devmem 0x03001174 32 0x3"); - system("devmem 0x03001178 32 0x3"); - system("devmem 0x0300117C 32 0x3"); - system("devmem 0x03001180 32 0x3"); - system("devmem 0x03001184 32 0x3"); - system("devmem 0x03001188 32 0x3"); - system("devmem 0x0300118C 32 0x5"); - system("devmem 0x03001190 32 0x3"); - printf("########### PinMux End #######################################################################\n"); - //============================================================================================================================================= - // MTK6739 - 60FPS - sc035gs_write_register(ViPipe, 0x0103, 0x01); + // 180FPS + sc035gs_write_register(ViPipe, 0x0103, 0x01); delay_ms(33); - sc035gs_write_register(ViPipe, 0x0100, 0x00); - sc035gs_write_register(ViPipe, 0x3000, 0x00); - sc035gs_write_register(ViPipe, 0x3001, 0x00); - sc035gs_write_register(ViPipe, 0x300f, 0x0f); - sc035gs_write_register(ViPipe, 0x3018, 0x33); - sc035gs_write_register(ViPipe, 0x3019, 0xfc); - sc035gs_write_register(ViPipe, 0x301c, 0x78); - sc035gs_write_register(ViPipe, 0x301f, 0xa2); - sc035gs_write_register(ViPipe, 0x3031, 0x0a); - sc035gs_write_register(ViPipe, 0x3037, 0x20); - sc035gs_write_register(ViPipe, 0x303f, 0x01); - - // MTK6739 - 60FPS - sc035gs_write_register(ViPipe, 0x320c, 0x03); // 852 - sc035gs_write_register(ViPipe, 0x320d, 0x54); - sc035gs_write_register(ViPipe, 0x320e, 0x02); // 2112 - sc035gs_write_register(ViPipe, 0x320f, 0x0e); - sc035gs_write_register(ViPipe, 0x3252, 0x02); - sc035gs_write_register(ViPipe, 0x3253, 0x08); - sc035gs_write_register(ViPipe, 0x3217, 0x00); - sc035gs_write_register(ViPipe, 0x3218, 0x00); - sc035gs_write_register(ViPipe, 0x3220, 0x10); - sc035gs_write_register(ViPipe, 0x3223, 0x48); - sc035gs_write_register(ViPipe, 0x3226, 0x74); - sc035gs_write_register(ViPipe, 0x3227, 0x07); - sc035gs_write_register(ViPipe, 0x323b, 0x00); - sc035gs_write_register(ViPipe, 0x3250, 0xf0); - sc035gs_write_register(ViPipe, 0x3251, 0x02); - sc035gs_write_register(ViPipe, 0x3254, 0x02); - sc035gs_write_register(ViPipe, 0x3255, 0x07); - sc035gs_write_register(ViPipe, 0x3304, 0x48); - sc035gs_write_register(ViPipe, 0x3305, 0x00); - sc035gs_write_register(ViPipe, 0x3306, 0x60); - sc035gs_write_register(ViPipe, 0x3309, 0x50); - sc035gs_write_register(ViPipe, 0x330a, 0x00); - sc035gs_write_register(ViPipe, 0x330b, 0xc0); - sc035gs_write_register(ViPipe, 0x330c, 0x18); - sc035gs_write_register(ViPipe, 0x330f, 0x40); - sc035gs_write_register(ViPipe, 0x3310, 0x10); - sc035gs_write_register(ViPipe, 0x3314, 0x1e); - sc035gs_write_register(ViPipe, 0x3315, 0x30); - sc035gs_write_register(ViPipe, 0x3316, 0x68); - sc035gs_write_register(ViPipe, 0x3317, 0x1b); - sc035gs_write_register(ViPipe, 0x3329, 0x5c); - sc035gs_write_register(ViPipe, 0x332d, 0x5c); - sc035gs_write_register(ViPipe, 0x332f, 0x60); - sc035gs_write_register(ViPipe, 0x3335, 0x64); - sc035gs_write_register(ViPipe, 0x3344, 0x64); - sc035gs_write_register(ViPipe, 0x335b, 0x80); - sc035gs_write_register(ViPipe, 0x335f, 0x80); - sc035gs_write_register(ViPipe, 0x3366, 0x06); - sc035gs_write_register(ViPipe, 0x3385, 0x31); - sc035gs_write_register(ViPipe, 0x3387, 0x39); - sc035gs_write_register(ViPipe, 0x3389, 0x01); - sc035gs_write_register(ViPipe, 0x33b1, 0x03); - sc035gs_write_register(ViPipe, 0x33b2, 0x06); - sc035gs_write_register(ViPipe, 0x33bd, 0xe0); - sc035gs_write_register(ViPipe, 0x33bf, 0x10); - sc035gs_write_register(ViPipe, 0x3621, 0xa4); - sc035gs_write_register(ViPipe, 0x3622, 0x05); - sc035gs_write_register(ViPipe, 0x3624, 0x47); - sc035gs_write_register(ViPipe, 0x3630, 0x4a); - sc035gs_write_register(ViPipe, 0x3631, 0x58); - sc035gs_write_register(ViPipe, 0x3633, 0x52); - sc035gs_write_register(ViPipe, 0x3635, 0x03); - sc035gs_write_register(ViPipe, 0x3636, 0x25); - sc035gs_write_register(ViPipe, 0x3637, 0x8a); - sc035gs_write_register(ViPipe, 0x3638, 0x0f); - sc035gs_write_register(ViPipe, 0x3639, 0x08); - sc035gs_write_register(ViPipe, 0x363a, 0x00); - sc035gs_write_register(ViPipe, 0x363b, 0x48); - sc035gs_write_register(ViPipe, 0x363c, 0x86); - sc035gs_write_register(ViPipe, 0x363d, 0x00); - sc035gs_write_register(ViPipe, 0x363e, 0xf8); - sc035gs_write_register(ViPipe, 0x3640, 0x00); - sc035gs_write_register(ViPipe, 0x3641, 0x01); - sc035gs_write_register(ViPipe, 0x36e9, 0x80); - sc035gs_write_register(ViPipe, 0x36ea, 0x37); - sc035gs_write_register(ViPipe, 0x36eb, 0x0e); - sc035gs_write_register(ViPipe, 0x36ec, 0x1e); - sc035gs_write_register(ViPipe, 0x36ed, 0x23); - sc035gs_write_register(ViPipe, 0x36f9, 0x80); - sc035gs_write_register(ViPipe, 0x36fa, 0x37); - sc035gs_write_register(ViPipe, 0x36fb, 0x00); - sc035gs_write_register(ViPipe, 0x36fc, 0x02); - sc035gs_write_register(ViPipe, 0x36fd, 0x03); - sc035gs_write_register(ViPipe, 0x3908, 0x91); - sc035gs_write_register(ViPipe, 0x391b, 0x81); - sc035gs_write_register(ViPipe, 0x3d08, 0x01); - sc035gs_write_register(ViPipe, 0x3e01, 0x83); - sc035gs_write_register(ViPipe, 0x3e02, 0x80); - sc035gs_write_register(ViPipe, 0x3e03, 0x2b); - sc035gs_write_register(ViPipe, 0x3e06, 0x0c); - sc035gs_write_register(ViPipe, 0x3f04, 0x03); - sc035gs_write_register(ViPipe, 0x3f05, 0x34); - sc035gs_write_register(ViPipe, 0x4500, 0x59); - sc035gs_write_register(ViPipe, 0x4501, 0xc4); - sc035gs_write_register(ViPipe, 0x4603, 0x00); - sc035gs_write_register(ViPipe, 0x4800, 0x64); - sc035gs_write_register(ViPipe, 0x4809, 0x01); - sc035gs_write_register(ViPipe, 0x4810, 0x00); - sc035gs_write_register(ViPipe, 0x4811, 0x01); - sc035gs_write_register(ViPipe, 0x4837, 0x26); - sc035gs_write_register(ViPipe, 0x5011, 0x00); - sc035gs_write_register(ViPipe, 0x5988, 0x02); - sc035gs_write_register(ViPipe, 0x598e, 0x03); - sc035gs_write_register(ViPipe, 0x598f, 0x01); - sc035gs_write_register(ViPipe, 0x36e9, 0x24); - sc035gs_write_register(ViPipe, 0x36f9, 0x20); - sc035gs_write_register(ViPipe, 0x0100, 0x01); + sc035gs_write_register(ViPipe, 0x0100, 0x00); + + sc035gs_write_register(ViPipe, 0x36e9, 0x80); + sc035gs_write_register(ViPipe, 0x36f9, 0x80); + sc035gs_write_register(ViPipe, 0x3000, 0x00); + sc035gs_write_register(ViPipe, 0x3001, 0x00); + + sc035gs_write_register(ViPipe, 0x300f, 0x0f); + sc035gs_write_register(ViPipe, 0x3018, 0x13); + + sc035gs_write_register(ViPipe, 0x3019, 0xfc); + sc035gs_write_register(ViPipe, 0x301c, 0x78); + + sc035gs_write_register(ViPipe, 0x301f, 0x87); + sc035gs_write_register(ViPipe, 0x3031, 0x0a); + sc035gs_write_register(ViPipe, 0x3037, 0x20); + sc035gs_write_register(ViPipe, 0x303f, 0x01); + + sc035gs_write_register(ViPipe, 0x320c, 0x03); + sc035gs_write_register(ViPipe, 0x320d, 0x6e); + sc035gs_write_register(ViPipe, 0x320e, 0x02); + sc035gs_write_register(ViPipe, 0x320f, 0x00); + + sc035gs_write_register(ViPipe, 0x3217, 0x00); + sc035gs_write_register(ViPipe, 0x3218, 0x00); + sc035gs_write_register(ViPipe, 0x3220, 0x10); + sc035gs_write_register(ViPipe, 0x3223, 0x48); + sc035gs_write_register(ViPipe, 0x3226, 0x74); + sc035gs_write_register(ViPipe, 0x3227, 0x07); + sc035gs_write_register(ViPipe, 0x323b, 0x00); + + sc035gs_write_register(ViPipe, 0x3250, 0xf0); + sc035gs_write_register(ViPipe, 0x3251, 0x02); + sc035gs_write_register(ViPipe, 0x3252, 0x02); + sc035gs_write_register(ViPipe, 0x3253, 0x08); + sc035gs_write_register(ViPipe, 0x3254, 0x02); + sc035gs_write_register(ViPipe, 0x3255, 0x07); + + sc035gs_write_register(ViPipe, 0x3304, 0x48); + sc035gs_write_register(ViPipe, 0x3305, 0x00); + sc035gs_write_register(ViPipe, 0x3306, 0x60); + sc035gs_write_register(ViPipe, 0x3309, 0x50); + sc035gs_write_register(ViPipe, 0x330a, 0x00); + sc035gs_write_register(ViPipe, 0x330b, 0xc0); + sc035gs_write_register(ViPipe, 0x330c, 0x18); + sc035gs_write_register(ViPipe, 0x330f, 0x40); + sc035gs_write_register(ViPipe, 0x3310, 0x10); + sc035gs_write_register(ViPipe, 0x3314, 0x1e); + sc035gs_write_register(ViPipe, 0x3315, 0x30); + sc035gs_write_register(ViPipe, 0x3316, 0x68); + sc035gs_write_register(ViPipe, 0x3317, 0x1b); + sc035gs_write_register(ViPipe, 0x3329, 0x5c); + sc035gs_write_register(ViPipe, 0x332d, 0x5c); + sc035gs_write_register(ViPipe, 0x332f, 0x60); + sc035gs_write_register(ViPipe, 0x3335, 0x64); + sc035gs_write_register(ViPipe, 0x3344, 0x64); + sc035gs_write_register(ViPipe, 0x335b, 0x80); + sc035gs_write_register(ViPipe, 0x335f, 0x80); + sc035gs_write_register(ViPipe, 0x3366, 0x06); + sc035gs_write_register(ViPipe, 0x3385, 0x31); + sc035gs_write_register(ViPipe, 0x3387, 0x39); + sc035gs_write_register(ViPipe, 0x3389, 0x01); + sc035gs_write_register(ViPipe, 0x33b1, 0x03); + sc035gs_write_register(ViPipe, 0x33b2, 0x06); + sc035gs_write_register(ViPipe, 0x33bd, 0xe0); + sc035gs_write_register(ViPipe, 0x33bf, 0x10); + sc035gs_write_register(ViPipe, 0x3621, 0xa4); + sc035gs_write_register(ViPipe, 0x3622, 0x05); + sc035gs_write_register(ViPipe, 0x3624, 0x47); + sc035gs_write_register(ViPipe, 0x3630, 0x4a); + sc035gs_write_register(ViPipe, 0x3631, 0x58); + sc035gs_write_register(ViPipe, 0x3633, 0x52); + sc035gs_write_register(ViPipe, 0x3635, 0x03); + sc035gs_write_register(ViPipe, 0x3636, 0x25); + sc035gs_write_register(ViPipe, 0x3637, 0x8a); + sc035gs_write_register(ViPipe, 0x3638, 0x0f); + sc035gs_write_register(ViPipe, 0x3639, 0x08); + sc035gs_write_register(ViPipe, 0x363a, 0x00); + sc035gs_write_register(ViPipe, 0x363b, 0x48); + sc035gs_write_register(ViPipe, 0x363c, 0x86); + + sc035gs_write_register(ViPipe, 0x363d, 0x10); + sc035gs_write_register(ViPipe, 0x363e, 0xf8); + sc035gs_write_register(ViPipe, 0x3640, 0x00); + sc035gs_write_register(ViPipe, 0x3641, 0x01); + sc035gs_write_register(ViPipe, 0x36ea, 0x37); + sc035gs_write_register(ViPipe, 0x36eb, 0x0e); + sc035gs_write_register(ViPipe, 0x36ec, 0x0e); // + sc035gs_write_register(ViPipe, 0x36ed, 0x23); + sc035gs_write_register(ViPipe, 0x36fa, 0x37); + sc035gs_write_register(ViPipe, 0x36fb, 0x00); + sc035gs_write_register(ViPipe, 0x36fc, 0x02); + sc035gs_write_register(ViPipe, 0x36fd, 0x03); + sc035gs_write_register(ViPipe, 0x3908, 0x91); + sc035gs_write_register(ViPipe, 0x391b, 0x81); + sc035gs_write_register(ViPipe, 0x3d08, 0x01); + + sc035gs_write_register(ViPipe, 0x3e01, 0x02); + sc035gs_write_register(ViPipe, 0x3e02, 0xD2); + sc035gs_write_register(ViPipe, 0x3e03, 0x2b); + sc035gs_write_register(ViPipe, 0x3e06, 0x0c); + sc035gs_write_register(ViPipe, 0x3e08, 0x00); + sc035gs_write_register(ViPipe, 0x3e09, 0x10); + sc035gs_write_register(ViPipe, 0x3f04, 0x03); + sc035gs_write_register(ViPipe, 0x3f05, 0x34); + sc035gs_write_register(ViPipe, 0x4500, 0x59); + sc035gs_write_register(ViPipe, 0x4501, 0xc4); + sc035gs_write_register(ViPipe, 0x4603, 0x00); + sc035gs_write_register(ViPipe, 0x4800, 0x64); + sc035gs_write_register(ViPipe, 0x4809, 0x01); + sc035gs_write_register(ViPipe, 0x4810, 0x00); + sc035gs_write_register(ViPipe, 0x4811, 0x01); + + sc035gs_write_register(ViPipe, 0x4837, 0x13); + sc035gs_write_register(ViPipe, 0x5011, 0x00); + sc035gs_write_register(ViPipe, 0x5988, 0x02); + sc035gs_write_register(ViPipe, 0x598e, 0x03); // + sc035gs_write_register(ViPipe, 0x598f, 0x20); // + sc035gs_write_register(ViPipe, 0x36e9, 0x24); + sc035gs_write_register(ViPipe, 0x36f9, 0x20); + sc035gs_write_register(ViPipe, 0x0100, 0x01); delay_ms(20); - sc035gs_write_register(ViPipe, 0x4418, 0x0a); - sc035gs_write_register(ViPipe, 0x363d, 0x10); - sc035gs_write_register(ViPipe, 0x4419, 0x80); + sc035gs_write_register(ViPipe, 0x4418, 0x0a); + sc035gs_write_register(ViPipe, 0x4419, 0x80); - printf("ViPipe:%d,===SC035GS 480P 120fps 12bit LINE Init OK!===\n", ViPipe); + printf("ViPipe:%d,===SC035GS 480P 180fps 10bit LINE Init OK!===\n", ViPipe); }