DS90UB964问题咨询
ds90ub964-q1有1280×960的像素宽高限制,现在我们拿到的摄像头是1280×720(但实际964接收到的传输数据是1630×744,左右上下有黑色填充区域,宽度已经超过1280了),传输的图像通过ds90ub964-q1的寄存器0x73-0x74 0x75-0x76读出来的值,line count是744,line len是3260(uyvy格式的) 然后ds90ub964-q1通过CSI2传出来的数据好像被压缩成了768×744,如下图
这种情况是不是964还有寄存器没有设置好,要怎么设置才能得到正确的图像呢?
2.还有个问题8.5.5 Timestamp - Video Skew Detection这个功能具体是什么作用,没看太明白,不知道上个问题是否与此功能相关的寄存器配置有关系
附上我们964寄存器的设置:
ds90ub964_write_reg(0x0C,0x0F);//RX_PORT_CTL
msleep(sleep_delay);
//ds90ub964_write_reg(0xBC,0x00);//FV_MIN_TIME 5 pclk
msleep(sleep_delay);
ds90ub964_write_reg(0x1E,0x10);//max frame num
msleep(sleep_delay);
ds90ub964_write_reg(0x1f,0x00);//CSI_PLL_CTL 1600M
msleep(sleep_delay);
ds90ub964_write_reg(0x20,0xE0);//FWD_CTL1 fwd Enable 0xE0
msleep(sleep_delay);
//ds90ub964_write_reg(0x21,0x44);//FWD_CTL2 base sync fwd
msleep(sleep_delay);
ds90ub964_write_reg(0x25,0x02);//FreeRun mode
msleep(sleep_delay);
//CSI port 0 config
ds90ub964_write_reg(0x32,0x01);//CSI port select
msleep(sleep_delay);
ds90ub964_write_reg(0x33,0x01);//enable skew - calibration,continuous mode result to CRC error
msleep(sleep_delay);
//ds90ub964_write_reg(0x34,0x01);
msleep(sleep_delay);
//964_RX0_init_CSI0
ds90ub964_write_reg(0x4c,0x01);//rx port select
msleep(sleep_delay);
ds90ub964_write_reg(0x58,0x58);//enable pass throu
msleep(sleep_delay);
ds90ub964_write_reg(0x5c,0xB0);/r id alias
msleep(sleep_delay);
ds90ub964_write_reg(0x5d,0x6C);//slave id
msleep(sleep_delay);
ds90ub964_write_reg(0x65,0x6C);//slave id alias
msleep(sleep_delay);
ds90ub964_write_reg(0x70,0x1E);//cid and dt
msleep(sleep_delay);
//ds90ub964_write_reg(0x71,0x2C);//cid and dt
msleep(sleep_delay);
ds90ub964_write_reg(0x7c,0x80);//FrameValid Polarity
msleep(sleep_delay);
Mark,您好!
根据视频数据的格式基础来看,1280×960的像素输入,因为前肩和后肩,还有场同步的关系,数据的大小为1630×744。
您的视频数据输入FPDlink中,是否正确,请查看您的视频数据的行同步,场同步信号。