东芝MIPI解码TC358746AXBG和OV6211使用及配置
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
) & (temp2 == 0x4401))
return 0xff;
SCCB_WriteWord_MIPI(0x0002, 0x0001); //bit[0] software reset ,bit[1]sleep
Delay_ms();
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满足设计需求。
OV6211 config
#if 1
//OV6211
{0x0103, 0x01}, //software reset :0 off; 1 on
{0x0100, 0x00},
{0x3001, 0x02}, // output drive capability control bit[6:5]
{0x3005, 0x08}, //strobe bit3 io_strobe_oen control input/output :0 input ; 1 output
{0x3013, 0x12},
{0x3014, 0x04},
{0x3016, 0x10},
{0x3017, 0x00},
{0x3018, 0x00},
{0x301a, 0x00},
{0x301b, 0x00},
{0x301c, 0x00},
{0x3037, 0xf0},
{0x3080, 0x01},
{0x3081, 0x00},
{0x3082, 0x01},
//PLL2 sys_clk = 80M,ADC_CLK = 240M
{0x3098, 0x04},
{0x3099, 0x28},
{0x309a, 0x06},
{0x309b, 0x04},
{0x309c, 0x00},
{0x309d, 0x00},
{0x309e, 0x01},
{0x309f, 0x00},
//PLL1 pix_clk = 30M ,mipi_clk = 300M
{0x30b0, 0x0a},
{0x30b1, 0x02},
{0x30b2, 0x00},
{0x30b3, 0x32},
{0x30b4, 0x02},
{0x30b5, 0x05},
{0x3106, 0xd9},
//Manual exposure time control
{0x3500, 0x00},
{0x3501, 0x00},
{0x3502, 0x80},
{0x3503, 0x03}, //bit[0]:manual exposure enable; bit[1]:manual AGC enable
//Manual exposure Gain
{0x3504, 0x00}, //sensor gain H
{0x3505, 0x00}, //sensor gain L
{0x3509, 0x10}, //AEC AGC ADJ ,bit[4] = 1 use real gain ,bit[4] = 0 use sensor gain
{0x350a, 0x00}, //real gain H
{0x350b, 0x30}, //real gain L ; real gain = 2^n(16+x)/16,n is {0x350a,0x350b} bit[9:4] ,x is 0x350b's low bit[3:0]
{0x3600, 0xfc},
{0x3620, 0xb7},
{0x3621, 0x05},
{0x3626, 0x31},
{0x3627, 0x40},
{0x3632, 0xa3},
{0x3633, 0x34},
{0x3634, 0x40},
{0x3636, 0x00},
{0x3660, 0x80},
{0x3662, 0x01}, //bit[1]=0 raw10
{0x3664, 0xf0},
{0x366a, 0x10},
{0x366b, 0x06},
{0x3680, 0xf4},
{0x3681, 0x50},
{0x3682, 0x00},
{0x3708, 0x20},
{0x3709, 0x40},
{0x370d, 0x03},
{0x373b, 0x02},
{0x373c, 0xe8},
{0x3742, 0x00},
{0x3744, 0x16},
{0x3745, 0x08},
{0x3781, 0xfc},
{0x3788, 0x00},
{0x3800, 0x00},
{0x3801, 0x00},
{0x3802, 0x00},
{0x3803, 0x00},
{0x3804, 0x01},
{0x3805, 0x9f},
{0x3806, 0x01},
{0x3807, 0x9f},
{0x3808, 0x00}, //windows width H
{0x3809, 0xc8}, //windows width L
{0x380a, 0x00}, //windows height H
{0x380b, 0xc8}, //windows height L
{0x380c, 0x05},
{0x380d, 0x78},
{0x380e, 0x00},
{0x380f, 0xee},
{0x3810, 0x00},
{0x3811, 0x04},
{0x3812, 0x00},
{0x3813, 0x04},
{0x3814, 0x31},
{0x3815, 0x31},
//HSYNC start point
{0x3816, 0x00},
{0x3817, 0x00},
//HSYNC end point
{0x3818, 0x00},
{0x3819, 0x00},
//HSYNC first active row start position
{0x381a, 0x00},
{0x381b, 0x00},
//subsampling 2:1
{0x3820, 0x02}, //bit[1]: vertical binning 2; bit[2]:vertical flip
{0x3821, 0x01}, //bit[0] horizontal binning 1; bit[2]:horizontal mirror
{0x382b, 0xfa},
{0x382f, 0x04},
{0x3832, 0x00},
{0x3833, 0x05},
{0x3834, 0x00},
{0x3835, 0x05},
{0x3882, 0x04},
{0x3883, 0x00},
{0x38a4, 0x10},
{0x38a5, 0x00},
{0x38b1, 0x03},
{0x3b80, 0x00},
{0x3b81, 0xff},
//PWM registers PWM frequency = 24M /(0x3b82+0x3b83)
{0x3b82, 0x10}, //divider_H
{0x3b83, 0x00}, //divider_L
{0x3b84, 0x08}, //duty_H
{0x3b85, 0x00}, //duty_H
{0x3b86, 0x01},
{0x3b87, 0x00},
//strobe control
{0x3b88, 0x00},
{0x3b89, 0x00},
{0x3b8a, 0x00},
{0x3b8b, 0x00}, //control strobe shift
{0x3b8c, 0x00},
{0x3b8d, 0x00},
{0x3b8e, 0x00},
{0x3b8f, 0x08},//control strobe pulse width
{0x3b90, 0x01},
{0x3b91, 0xb4},
{0x3b92, 0x00},
{0x3b93, 0x10},
{0x3b94, 0x05},
{0x3b95, 0xf2},
{0x3b96, 0xc8},
{0x3033, 0xf0},
{0x4004, 0x02}, //Black level calibration(BLC)
{0x404e, 0x01},
{0x4801, 0x0f},
{0x4806, 0x0f},
{0x4837, 0x43},
{0x5a08, 0x00},
{0x5a01, 0x00},
{0x5a03, 0x00},
{0x5a04, 0x10},
{0x5a05, 0xa0},
{0x5a06, 0x0c},
{0x5a07, 0x78},
{0x0100, 0x01}, //software standby - LOW POWER control
#endif
东芝MIPI解码TC358746AXBG和OV6211使用及配置的更多相关文章
- 使用FFmpeg解码H264-2016.01.14
使用jni方式调用FFmepg项目中接口,对H264裸码进行解码. 该Demo主要实现从文件中读取H264编码的视频流,然后使用FFmpeg解码,将解码后的码流保存到文件. 工程目录结构如图所示: A ...
- FFmpeg 学习(五):FFmpeg 编解码 API 分析
在上一篇文章 FFmpeg学习(四):FFmpeg API 介绍与通用 API 分析 中,我们简单的讲解了一下FFmpeg 的API基本概念,并分析了一下通用API,本文我们将分析 FFmpeg 在编 ...
- RK3288 mipi屏参数配置文件
RK3288 Android 5.1系统 Linux 3.10 mipi屏参数配置文件所在的路径:kernel/arch/arm/boot/dts/xxx_mipi.dtsi 屏参数配 ...
- 海思3519 qt ffmpeg 软解码播放avi
在海思3519上基于qt采用ffmpeg对avi进行解码显示,其中ffmpeg的配置,qt的配置在前文中已经说明,在此不再赘述. 解码 解码在单独的线程中进行,具体的代码如下: void VideoP ...
- LcdTools如何编写MIPI指令(初始化代码)
在LcdTools帮助文档中查看MIPI读写指令描述,如下图 编写LCM初始化代码就是配置LCM Driver IC寄存器值,一般只需用MipiWrite()指令写参数即可:下面介绍MipiWrite ...
- 学习jsp(3)
HttpServletRequest和HttpServletResponse: response.setContentType("text/html;charset=UTF-8") ...
- Mac上好用的视频播放器有哪些?
首页发现话题 提问 登录加入知乎 Mac 上好用的视频播放器有哪些? 关注问题写回答 OS X 应用 多媒体播放器(软件) Mac 上好用的视频播放器有哪些? 关注者 2680 被浏览 981770 ...
- 微言netty:不在浮沙筑高台
1. 写作缘起 几年前,我在一家农业物联网公司,负责解决其物联网产品线.我们当时基于.net平台打造了一套实时数据采集系统,可以把数以百万级的传感器传送回来的数据采集入库并根据这些数据进行建模.在搭建 ...
- 芯灵思Sinlinx A33开发板boa与CGI移植
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 641395230 在嵌入式设备的管理与交互中,基于W ...
随机推荐
- Masonry的一些等间距布局
控件之间的间距相等,但是控件的宽度是不定的. 下列的代码:定义间距为10,yellowview的宽度是由redView的宽度计算出来的. UIView *redView = [[UIView allo ...
- yii2.0 面包屑的使用
yii2中面包屑是yii2自带的小部件,类似本网站的导航栏应该就是采用面包屑来完成的 例子如下,需要引入 yii\widgets\Breadcrumbs echo Breadcrumbs::widge ...
- hdu1664 bfs+余数判重
input n 不超过50个例子,n==0结束输入 Sample Input 7 15 16 101 0 output 最少个不同数字的n的倍数的x,若不同数字个数一样,输出最小的x Sample O ...
- 嗅探js css 文件是否加载成功示例
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- Mysql 基础语法1
MySQL的软件架构 1.开启MySQL服务器:以windows服务的形式开启,在cmd下net startmysql|net stop mysql,在cmd下使用mysqld –default-fi ...
- Busy Beavers(暴力模拟)
由于排版问题,题目无法显示,可以到 http://7xjob4.com1.z0.glb.clouddn.com/e4872a15819b6bf9d1e5250bacc2a30b 查看 题目大意是有只 ...
- j2ee tomcat 部署学习
J2EE基础实例demo http://www.cnblogs.com/javabin/p/3809954.html J2EE 数据库JDBC(Java Data Base Connectivity, ...
- PAT 团体程序设计天梯赛-练习集L1-011. A-B
本题要求你计算A-B.不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B. 输入格式: 输入在2行中先后给出字符串A和B.两字符串的长度 ...
- java 读取excel 正常 xls
package com.sun.test; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInpu ...
- 二维小波包重构wprec2\wprcoef
clc,clear all,close all; load woman; t=wpdec2(X,2,'haar');%小波包2层分解 r_X=wprec2(t);%重构小波包 r_X10=wprcoe ...