Camera Sensor常见的接口类型:
1、有并口信号(D0~D7、PCLK、HSYNC、VSYNC),一般的处理器有DCMI接口,如ST32F207x系列,直接相连就可以使用。
2、MIPI接口信号DCN/DCP、D0N/D0P~D4N/D4P,需解码芯片将MIPI信号解出并口信号,再送给处理器。MIPI芯片东芝TC358746AXBG, Sensor用的OV6211。
调试的时候注意I2C器件地址,一开始用的是0x0e(write)/0x1f(red)就是不通,后面改成0x1c(write)/0x1d(red)就可以了,后续这名字上也有点区别TC358746AXBG和TC358746XBG,一个带A,一个不带A,带A的估计是新产品,不带A的应属旧产品。主要在以前公司用的旧产品用的是0x0e,就没仔细看,搞了半天才知道这地方有鬼。
24M RAW10 1Line 解码参数配置:
#if 1 //TC358746AXBG config // PLL_CLK = input_clk *[(PLL_FBD+1) / (PLL_PRD+1)] * [1/2^FRS] // PLL_CLK = 24M * [(191+1)/(2+1)] * [1/2^3] = 192M // sys_clk = pclk = PLL_CLK /8 = 192/8 = 24M // MclkRef = PLL_CLK/2 = 192/2 = 96M // ppi_clk = PLL_CLK/2 =192/2 = 96M // MCLK = MclkRef /[(1+1)+(1+1)] = 96/4 = 24M //mipi chip ID 0x4401 if((DCMI_SingleRandomRead_MIPI(0x0000,&temp2)!=0) & (temp2 == 0x4401)) return 0xff; SCCB_WriteWord_MIPI(0x0002, 0x0001); //bit[0] software reset ,bit[1]sleep Delay_ms(10); SCCB_WriteWord_MIPI(0x0002, 0x0000); SCCB_WriteWord_MIPI(0x0016, 0x20bf); //PLL_PRD[15:12] = 0x02 + 1 = 2 + 1 =3 ; PLL_FBD[8:0] = 0xbf + 1 = 191 + 1 = 192 SCCB_WriteWord_MIPI(0x0018, 0x0c03); SCCB_WriteWord_MIPI(0x0018, 0x0c13);//bit[0] PLL en,bit[1]PLL normal operaion,bit[4] pll clk en,bit[11:10] HSCK range SCCB_WriteWord_MIPI(0x0020, 0x0028);//bit[1:0] sys_clk=pclk= PLL_CLK /8 = 24M,bit[3:2] MclkRef = PLL_CLK/2 = 96M,bit[5:4]ppi_clk =PLL_CLK/2=96M SCCB_WriteWord_MIPI(0x0022, 0x0500); //word count SCCB_WriteWord_MIPI(0x0060, 0x000f); //MIPI PHY Time Delay Register SCCB_WriteWord_MIPI(0x0006, 0x0000); //FiFo Control Register SCCB_WriteWord_MIPI(0x0008, 0x0011); //Data Format Control Register.bit[7:4] :0-RAW8;1-RAW10 SCCB_WriteWord_MIPI(0x0004, 0x8040); //Configuration Control Register(pclk¡¢VS¡¢HS¡) SCCB_WriteWord_MIPI(0x000c, 0x0101); //output MCLK = MclkRef /[(mclk_high + 1) + (mclk_low + 1)] = 96/[(1+1)+(1+1)]=24M SCCB_WriteWord_MIPI(0x000e, 0xfff0); //GPIO ENBALE SCCB_WriteWord_MIPI(0x0010, 0x0000); //GPIO Direction #endif
TC358746AXBG-SCH:格式输出设置的是RAW10,实际使用的时候只需高8bit,最低2bit可以不接,GPIO0输出时钟XVCLK(就是MCLK)给Sensor。
OV6211-SCH:
1、Sensor的输入时钟可有两个选择:
(a)、要么同MIPI IC 同一路时钟,也就是说一时钟上挂两个设备,虽然实验测试没问题,但建议不这样做,防止两个设备互相干扰,倘若两个设备工作时钟需同步,那么从源时钟输出分别到两个设备时钟输入口的路径还得严格控制等长。
(b)、要么由TC358746AXBG芯片的GPIO0输出时钟给Sensor,本例用的就是这个方式。
注意图中的MOS管不能用普通的三极管(如S9013)替代,因为红外LED的瞬间脉冲电流比较大,其瞬间电流取决于Strobe的脉冲及限流电阻R2。
实际使用中瞬间电流达到500mA,S9013的集电极Ic电流最大也只能到500mA,S9014更小,仅有100mA,IRLM2402 脉冲电流范围可达7.4A,持续电流1.2A。
所以IRLM2402满足设计需求。