前面imx290的帧率不对,13fps。
通过和文档比对发现,多了一些寄存器配置。注释掉了就正常了。
sensor_write_register(0x3000, 0x01); /* standby */
sensor_write_register(0x3002, 0x01); /* XTMSTA */
sensor_write_register(0x3005,0x01);//12bit
sensor_write_register(0x3007,0x00);
sensor_write_register(0x3009,0x02);
//sensor_write_register(0x300c,0x00);
//sensor_write_register(0x300f,0x00);
//sensor_write_register(0x3010,0x21);
sensor_write_register(0x3012,0x64);
sensor_write_register(0x3013,0x00);
//sensor_write_register(0x3016,0x09);
//sensor_write_register(0x3017,0x00);
sensor_write_register(0x3018,0x65);
sensor_write_register(0x3019,0x04);
sensor_write_register(0x301A,0x00);
sensor_write_register(0x301C,0xA0);
sensor_write_register(0x301D,0x14);
//sensor_write_register(0x3020,0x02);
//sensor_write_register(0x3045,0x01);
//sensor_write_register(0x3046,0x01);
sensor_write_register(0x305c,0x18);
sensor_write_register(0x305d,0x03);
sensor_write_register(0x305e,0x20);
sensor_write_register(0x305f,0x01);
//sensor_write_register(0x3070,0x02);
//sensor_write_register(0x3071,0x11);
//sensor_write_register(0x309b,0x10);
//sensor_write_register(0x309c,0x22);
//sensor_write_register(0x30a2,0x02);
//sensor_write_register(0x30a6,0x20);
//sensor_write_register(0x30a8,0x20);
//sensor_write_register(0x30aa,0x20);
//sensor_write_register(0x30ac,0x20);
//sensor_write_register(0x30b0,0x43);
//sensor_write_register(0x3106,0x9e);
//sensor_write_register(0x3119,0x9e);
//sensor_write_register(0x311c,0x1e);
//sensor_write_register(0x311e,0x08);
//sensor_write_register(0x3128,0x05);
sensor_write_register(0x3129,0x00);//12bit
//sensor_write_register(0x313d,0x83);
//sensor_write_register(0x3150,0x03);
sensor_write_register(0x315E,0x1A);
sensor_write_register(0x3164,0x1A);
sensor_write_register(0x317C,0x00);//12bit
//sensor_write_register(0x317E,0x00);
sensor_write_register(0x31EC,0x0E);//12bit
/*
sensor_write_register(0x32b8,0x50);
sensor_write_register(0x32b9,0x10);
sensor_write_register(0x32ba,0x00);
sensor_write_register(0x32bb,0x04);
sensor_write_register(0x32c8,0x50);
sensor_write_register(0x32c9,0x10);
sensor_write_register(0x32ca,0x00);
sensor_write_register(0x32cb,0x04);
sensor_write_register(0x332c,0xd3);
sensor_write_register(0x332d,0x10);
sensor_write_register(0x332e,0x0d);
sensor_write_register(0x3358,0x06);
sensor_write_register(0x3359,0xe1);
sensor_write_register(0x335a,0x11);
sensor_write_register(0x3360,0x1e);
sensor_write_register(0x3361,0x61);
sensor_write_register(0x3362,0x10);
sensor_write_register(0x33b0,0x50);
sensor_write_register(0x33b2,0x1a);
sensor_write_register(0x33b3,0x04);
*/
sensor_write_register(0x3405,0x20);
sensor_write_register(0x3407,0x03);
sensor_write_register(0x3414,0x0A);
//sensor_write_register(0x3415,0x01);
sensor_write_register(0x3418,0x49);
sensor_write_register(0x3419,0x04);
sensor_write_register(0x3441,0x0c);//12bit
sensor_write_register(0x3442,0x0c);//12bit
sensor_write_register(0x3443,0x03);
sensor_write_register(0x3444,0x20);
sensor_write_register(0x3445,0x25);
sensor_write_register(0x3446,0x47);
sensor_write_register(0x3447,0x00);
sensor_write_register(0x3448,0x1F);
sensor_write_register(0x3449,0x00);
sensor_write_register(0x344A,0x17);
sensor_write_register(0x344B,0x00);
sensor_write_register(0x344C,0x0F);
sensor_write_register(0x344D,0x00);
sensor_write_register(0x344E,0x17);
sensor_write_register(0x344F,0x00);
sensor_write_register(0x3450,0x47);
sensor_write_register(0x3451,0x00);
sensor_write_register(0x3452,0x0F);
sensor_write_register(0x3453,0x00);
sensor_write_register(0x3454,0x0F);
sensor_write_register(0x3455,0x00);
sensor_write_register(0x3472,0x9C);
sensor_write_register(0x3473,0x07);
//sensor_write_register(0x3480,0x49);
sensor_write_register(0x3000, 0x00); /* standby */
sensor_write_register(0x3002, 0x00); /* master mode start */
delay_ms(20);
sensor_write_register(0x304b, 0x0a); /* XVSOUTSEL XHSOUTSEL */
printf("===IMX290 MIPI 1080P 30fps 12bit LINE Init OK!===
");