sony sensor 初始化
(以 185sensor 为例)
对于 sensor 的初始化寄存器设置,可以利用 datasheet 描述来进行相关寄存器设置。也可以向 sony 要相关的寄存器设置文档,比如此次就跟 sony 要到了imx185 sensor LvDs 的寄存器设置 EXCEL 文档。整个初始化序列可以按照寄存器顺序进行(除个别寄存器,如 STANDBY,SVSOUTSEL,XMSTA 需要在初始化完成后进行设置,使 sensor 进入正常工作模式)。
sensor初始化关键寄存器设置
文章作者: apostle
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 apostle的数字花园!
相关推荐

2024-11-14
【1】海思MIPI接口学习
知识介绍1.1 MIPI与LVDS知识点 了解MIPI与LVDS是什么。 了解MIPI与LVDS的相关协议 了解MIPI与LVDS的协议内容 1.2 MIPI与LVDS 相关简介MIPI与LVDS简介MIPI联盟下面针对不同硬件设备定义了不同的硬件设备内部接口,摄像头串行接口CSI2,显示串行接口DSI,射频接口DigRF,麦克风/喇叭接口SLIMbus等。其中海思支持MIPI为MIPI Rx。MIPI规范由不同的工作组负责开发和维护,涵盖了不同的应用需求,分别面向不同领域的应用。MIPI Rx支持D-PHY和CSI-2(Camera Serial Interface)。D-PHY规定了物理层传输规范,CSI-2规定了Camera输出数据包的格式和协议。(1)D-PHYD-PHY是MIPI联盟发布的高速物理层标准,规定了主机和外设的物理层的物理特性及传输协议。D-PHY采用200mV源同步的低压差分信令技术,每个通道的频率范围为80MHz~1GHz。一般每路时钟最多可支持4个数据通道,4个通道共可以达到4Gbps的传输速率。D-PHY可以工作在低功耗(Low Power, LP)和高速(High Speed, HS)两种模式下。(2)CSI-2CSI-2是针对摄像头的数据协议,规定了主机与外设通信的数据包格式。CSI-2可以支持不同像素格式的图像应用,数据传输的最小粒度是字节。为增加CSI-2性能,可以选择数据通道的数量,CSI-2协议规定了发送端将像素数据打包成字节的机制,并指明多个数据通道分配和管理的方式。字节数据以数据包的形式组织,数据包在SoT和EoT之间传输。接收端根据协议解析相应的数据包,恢复出原始的像素数据。MIPI Rx支持RAW10/RAW12/RAW14格式的像素数据解析。Figure 1 CSI-2...

2024-11-14
【2】针对于海思接口配置学习【重点】
配置思路1. 如何分析视频接口选择使用MIPI还是LVDS,所需要做的工作有:1) 硬件配置正确,即配置正确的公模电压,差分电路,正确的接口。2) 配置相关的MIPI上层抽象接口。3) 配置相关的寄存器操作。注:1、上层硬件配置,此处硬件工作较多,不做深入研究。2、相关寄存器操作主要集中在XXX_cmos.c与XXX_ctrl.c中,具体配置以另外叙述。3、Mipi上层抽象接口为海思抽象出来的接口,此层自行配置了相关寄存器,本文主要基于HI3516D芯片进行配置,这也是本次研究的重点。 2. 如何配置上层抽象接口此处只针对于配置上层抽象接口。主要为LVDS配置,MIPI方式配置较为简单,不做叙述。 查看sensor支持LVDS还是mipi接口。实际操作为查看datasheet,一般前几页会有支持的接口名称,或者搜索LVDS,然后搜索DOP1或者DOM1。LVDS的接口使用名称叫做DOPX/DOMX,而MIPI的接口一般为DMOXP/DMOXN。 查看硬件配置是否为LVDS接口,实际操作为查看硬件电路图。 根据硬件电路图,确定LVDS的lane对接方式。实际操作为对接方式,例如OV4689操作。 根据sensor,查看是否支持宽动态,支持宽动态的方式,配置HI_WDR_MODE。 确定同步方式。实际操作为搜索LVDS,查看是为SOL方式还是SAV方式。 搜寻同步码。实际操作为搜寻sync_code。 3. 视频上层抽象接口配置海思接口配置,结构体如下所示: 123456789101112typedef struct{/* input mode:MIPI/LVDS/SUBLVDS/HISPI/DC */input_mode_t input_mode; union{/* for MIPI configuration */ mipi_dev_attr_t mipi_attr; /* for LVDS/SUBLVDS/HISPI configuration */ ...

2024-11-19
tmux配置
基本配置tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,快捷键可以自定义,但是ctrl+b在vim中已经有快捷键了,而且ctrl使用的快捷键太多,所以我们使用alt+b,按如下所示修改~/.tmux.conf文件: 123456789101112set -g prefix 'm-v'unbind-key c-bbind r source-file ~/.tmux.conf \; display "Reloaded!"set-window-option -g mode-keys vi # 复制模式中的默认键盘布局使用 vibind h select-pane -L # h 等于向左移动光标bind j select-pane -D # j 向下移动光标bind k select-pane -U # k 向上移动光标bind l select-pane -R # l 向右移动光标bind Up resize-pane -U 5 # 窗口往上移动5个像素bind Down resize-pane -D 5 # 窗口往下移动5个像素bind Left resize-pane -L 5 # 窗口往左移动5个像素bind Right resize-pane -R 5 # 窗口往右移动5个像素 然后执行生效: 1:source-file ~/.tmux.conf 常用按键12345678910111213141516/*会话打开*/tmux new # 创建默认会话tmux new -s mysession # 创建名为mysession的会话tmux a ...

2024-11-19
vim配置
作为曾经自认为使用vim还不错,并且自己也写了很多插件的程序员,记录一下vimrc的配置。欢迎使用我的vimrc配置,曾经自己编写的插件,都在plugin里。 1234" ASL_AutoFunName.vim---------------自定义函数:自动生成函数" ASL_comments.vim------------------自定义函数:自动注释" ASL_COMMON.vim--------------------自定义函数:自定义公共函数,包括当下应该设置的注释" ASL_PRIVATE_FUN.vim---------------自定义函数:自动自身logo Git clone1git clone -b develop https://github.com/maohong1989/vim.git 初始化vimrc12345mv vim ~/.vimmv ~/.vim/vimrc ~/.vimrc# 添加ctags和cscope的搜索sudo apt-get install ctagssudo apt-get install cscope vimrc...

2024-11-14
【1】uboot启动流程
这个项目其实是2017年做的项目了,基于海思3519芯片,如何在3519中启动tftp,让uboot可以开机启动搜索tftp server,避免因为摄像机升级失控导致变成搬砖。本次的使用到的项目规格如下: board hi3519v101 C020 arch hi3519 uboot version 2010.06 1 编译uboot流程1.1 配置与编译配置编译环境当启动介质是 eMMC、 SPI-Nor Flash 或 SPI-NAND Flash 时,使用编译命令: 1make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- hi3519v101_config 当启动介质是 NAND Flash 时,使用编译命令: 1make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- hi3519v101_nand_config 编译成功后,将在U-boot目录下生成u-boot.bin。由于项目使用EMMC作为存储,默认使用hi3519_config配置 编译 U-boot1make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- 生产海思uboot镜像完成配置表格的修改后,保存表格。单击表格第一个标签页上的按钮【 Generage regbin file】 (只能点此按钮),生成临时文件 reg_info.bin。将临时文件 reg_info.bin 和编译 u-boot 得到的 u-boot.bin 都拷贝到 SDK 中的“ osdrv/tools/pc/uboot_tools/”目录下,执行命令: 1./mkboot.sh reg_info.bin u-boot-hi3519v101.bin 其中 u-boot-hi3519v101.bin 就是能够在单板上运行的 U-boot 镜像。 1.2 uboot源码流程解析...

2024-11-14
【2】uboot启动流程
本文主要是将如何将tftp嵌入到uboot中,开机启动。使用规格如下: board hi3519v101 C020 arch hi3519 uboot version 2010.06 1 添加tftp步骤上一章更新了uboot的启动流程。而在uboot下做tftp升级,因为海思本身支持ftfp升级,(可以查看main.c 372 行CONFIG_UPDATE_TFTP)。 故需要做的工作如下:1234561. 在/include/configs/hi3519v101.h中增加 #define UPDATE_TFTP,则在common/main.c中可寻找到关于tftp的升级代码。2. 编写common/下update.c代码,当tftp收到代码以后进行升级。3. 由于update.c使用fit文件,需要学习解析FIT文件。4. 用于update.c使用flash擦写,而3519使用EMMC,需学习擦写EMMC文件。5. 重新编写update.c6. tftp等待时间有点长,需要修改net/tftp.c中关于tftp的等待时间。 其中有几个注意点: *common下的cmd_XXX.c都是在uboot下使用命令实现的。tftp就是在cmd_net.c中实现,如果不会,可以参考cmd下的代码* 前章节已经说明,但是重新说明一下,3519的存储初始化采用广撒网操作,即定义了nor,nand,emmc的三种存储器初始化,哪个操作成功就算是成功了。 针对于存储的操作,都采用hisi自己写的操作。具体查看drivers/mtd/中hi开头的di驱动。 关于EMMC的驱动,都在drivers/mmc/himciv200.c中。可以查看common/cmd_mmc.c参考mmc工作方式123#define CONFIG_CMD_SF //354行,nor flash操作#define CONFIG_CMD_NAND //358行,nand flash操作#define...
评论