东芝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 ...
随机推荐
- linux 命令展示该目录下的所有子目录及文件结构 tree
1. apt-get install tree 2. tree -d -L 1 解释: tree :显示目录树: -d : 只显示目录: -L 1 : 选择显示的目录深度为1 , 只显示一层深度. 目 ...
- freemarker(FTL)常见语法大全
[转载]freemarker(FTL)常见语法大全 FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${boo ...
- XOR and Favorite Number(莫队算法+分块)
E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...
- L3-002. 堆栈
L3-002. 堆栈 题目链接:https://www.patest.cn/contests/gplt/L3-002 线段树 线段树的数据修改和查询都是O(lgn)的,此题只需维护各个区间内的数的个数 ...
- Windows上安装MongoDB步骤
事前准备: 1.在mongoDB官网下载.msi文件,我下的是社区版,下载地址:https://www.mongodb.com/download-center#community 2.点击msi文件安 ...
- javascript中的事件处理
事件处理:http://www.cnblogs.com/polk6/archive/2016/02/19/5154470.html#Menu2-DOMEventSpecification addEve ...
- 【Sort】希尔排序
希尔排序(ShellSort),缩小增量排序,使用希尔增量时最坏运行时间O(n^2),不同的增量会对运行时间产生显著影响. void shellsort(int *nums,int n) { int ...
- Talking Ben App砸壳记
需求: 导出Talking Ben app的头文件 实施: 1)准备材料: 越狱IOS设备一部,并安装Talking Ben游戏 IOS设备上安装open SSH IOS设备的/usr/bin 中安装 ...
- Android 安装镜像
1. 关机 2. 按住音量减键和电源键,直到进入fastboot模式 3. 连接上PC 4. PC端输入sudo fastboot devices验证已识别到设备 5. PC端输入sudo fastb ...
- Rancher安装使用
官网 http://docs.rancher.com/rancher/latest/en/quick-start-guide/#add-hosts 安装步骤: 1 Start up a Linux m ...