i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍

3e8bdce6fa3a9eea88d6a0ae230f2cc9.gif在正式开始OV7725视频采集实现之前,Bingo不得不先讲解一下OV7725的寄存器配置接口。OV7725上电会默认输出YUV422格式的视频流,但我们希望传感器能够按照我们预期的模式工作,我们需要配置分辨率,配置内部时钟,配置亮度、色差、3A参数等。因此我们需要一个接口,来完成OV7725寄存器的配置——这就是SCCB接口,即Serial Camera Control Bus,串行相机控制总线。OV7725的SCCB总线,实际上就是我们常用的I2C通信总线,这在前文已经提到过,只不过OmniVision针对Camera的控制,专门提供了一个术语。OV7725的SCCB接口有两个信号,即时钟信号SCL、数据信号SDA。OV7725通过这两个信号,完成寄存器的配置,实现预期配置的视频流输出。Bingo曾在2012年的时候写过《从零开始走进OV7670世界》,详细的介绍了OV7725的SSCB(I2C)接口的HDL初始化,介绍了CMOS视频数据的采集,同时介绍了YUV2RGB等内容。由于OV7760与OV7725属于OmniVision的同系列数字相机,驱动方式与时序完全一样,因此SCCB总线的初始化可以参照该手册。I2C/SCCB总线制方式简单,器件封装形式小,主要有一下几个特点:(1) I2C总线只需要两条总线:一条串行数据线SDA,一条串行时钟线SCL(2) I2C总线不需要片选就可以实现多个设备的链接,并且通过从机为唯一地址识别器件,通过地址的响应,完成每一个器件的配置(3) I2C是一个真正的多主机总线,如果多个主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏(4) 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s(5) 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制官方手册给出了SCCB总线8Bit数据串行发送的时序图,如下图所示(其中SCCB_E作为I2C的使能信号,类似于SPI总线的CS信号,这里我们不需要关心):6c0edbeb1a6bf1ea56f8dd76baf7e11d.pngSCCB总线通过串行方式发送8Bit数据,先发送MSB,再发送LSB,与SPI总线协议的数据发送很类似(除了不需要SPI_CS)。在发送完8Bit数据后,通过器件的响应信号,完成一次数据的传输。很久前在《从零开始走进OV7670世界》中,Bingo移植并优化了Terasic的I2C控制器;但是可读性和bug实在太多,因此后面花了九牛二虎之力,自己大淘了一套I2C读写代码,每一个代码都经过苛刻的追求,无数次Modelsim+CMOS测试(虽然完美是没有极限的)。在没个Sensor采集工程中的cmos_i2c_oVxxxx,均可找到i2c_timing_ctrl.v文件,该模块完整的描述了I2C时序,实现了CMOS Sensor的SCCB寄存器读写功能。详情请仔细分析i2c_timing_ctrl.v文件,Bingo在状态机的基础上完美的实现了I2C总线时序的封装,接口及例化如下所示:836d44def1303fe99dd2443490a9d9cf.png从接口例化中可见,Bingo还额外的为OV7725 SCCB初始化配套的设计了寄存器接口,如下表所示(部分参照了Terasic的代码):e8a51b1a24a2f54ce4b568f8bf2ac2b4.png

 2aa18da24d034dbcc2d5c3878f49db92.gif

38b6c5d23f3cdd76603176ba4fbf6ba8.gif

15f219e041205bae8ae2f740018c7df6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

何可欣(为奥运冠军名字作诗)

何可欣(为奥运冠军名字作诗)——代腾飞 2008年8月18日 于成都何妹归来喜外望可儿杠上敢称王欣然前往杠上翻摘得皇冠美名扬转载于:https://www.cnblogs.com/daitengfei/archive/2008/08/25/1276011.html

LeetCode 647. 回文子串(DP/中心扩展)

文章目录1. 题目2. 解题2.1 动态规划2.2 中心扩展法1. 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc…

当我问了ChatGPT 10个程序员最关心的问题,没想到…

源|AfterShip近期 OpenAI 火爆了科技圈。作为一家极客氛围浓厚,60% 都是产研的科技公司,AfterShip 的很多同学也都留意到了这个工具。因此,我们面向工程师征集共创,并筛选出了程序员最关心的十个问题。并将这些问题询问…

ipv6 访问内网_【内网渗透】—— 隐藏通信隧道技术之网络层隧道技术

hidden:是否完全隐藏控制面板,还有很多设置参数,比如也可以设置显示面板,然后设置宽高WIDTH“整数” 和 HIGH“整数”。1. 隐藏通信隧道基础1.1隐藏通信隧道技术概述常用的隧道:网络层:IPv6隧道&#xff0c…

心潮澎湃之胡言乱语

做了很长时间的思想斗争之后决定还是写下这篇文章,从毕业到现在两个月了,明天我将离开了工作两个月的公司,上帝再一次次的考验我然后又再一次次的给我机会,挫折的背后感触更多是我是上帝的宠儿,所以越到挫折时自我陶醉…

LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)

1. 题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。 示例 1: 输入:matrix [[0,1,1,1],[1,1,1,1],[0,1,1,1] ] 输出:15 解释: 边长为 …

抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文

文 | 卖萌酱大家好,我是卖萌酱。前几天,抱抱脸公司(HuggingFace)发表了一篇博客[1],详细讲解了ChatGPT背后的技术原理——RLHF。笔者读过之后,觉得讲解的还是蛮清晰的,因此提炼了一下核心脉络&a…

该文件夹包含名称过长且无法放入回收站的项目_微软复活20年前生产力工具PowerToys,填补Win10缺失功能,开源且免费...

贾浩楠 发自 凹非寺量子位 报道 | 公众号 QbitAI微软PowerToys?如果你是 Win95、XP时代的老用户,可能对这个微软个官方工具集很熟悉。它包含了很多实用的系统功能增强小软件,如TweakUI、虚拟桌面工具等等,但微软在XP之后就不再更新…

SQL Server中常用全局变量介绍

在SQL Server中,全局变量是一种特殊类型的变量,服务器将维护这些变量的值。全局变量以前缀开头,不必进行声明,它们属于系统定义的函数。下表就是SQL Server中一些常用的全局变量。    全局变量名称 描述 CONNECTIONS 返回 SQL Server 自上次启动以来尝试的连接…

ChatGPT终于被缝进了搜索引擎…

文|Alex Pine 发自 凹非寺源|量子位见惯了列表式搜索引擎,你有没有想过给它换种画风?有人脑洞大开,把艳惊四座的ChatGPT和必应搜索结合起来,搞出了一个智能搜索引擎:既有ChatGPT式的问答&#x…

LeetCode 1310. 子数组异或查询(前缀异或)

1. 题目 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li1] xor … xor arr[Ri])作为本次查询的结果。 …

python编程书籍1020python编程书籍_从零单排之玩转Python安全编程(II)

转自:http://www.secpulse.com/archives/35893.html都说Python大法好,作为一名合格的安全从业人员,不会几门脚本语言都不好意思说自己是从事安全行业的。而Python是最容易入门且使用最顺手的脚本语言,为了不引起程序员世界大战&am…

[导入][转]sap学习手册二

SAP学习手册二 作者:sunxufeng 有没有调整IDES4.6的中文包参数的步骤呢? 在导入中文包后直接手工修改有关参数,不要用CZ10去修改假定为D盘,路径为D:usrsapC11sysprofileC11_DVEBMGS00_cpa (后面CPA为我的计算机名),用NOTEPAD手动编辑该文件 SAPSYSTEMNAME C11 INS…

近几年车道线检测领域的SOTA论文复现代码数据集

自动驾驶近些年来大火。有读者朋友给我留言说想做自动驾驶,但是不知道怎么切入。今天就给大家分享一个好出文章的自动驾驶研究方向——车道线检测。车道线检测就是将计算机视觉应用到自动驾驶或辅助驾驶,本质上还是目标检测问题。但车道线检测又不同于目…

python多元线性回归实例_利用Python进行数据分析之多元线性回归案例

线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数…

NTLM

NTLM HTTP认证 过程如下&#xff1a; 1: C --> S GET ... 2: C <-- S 401 Unauthorized WW-Authenticate: NTLM 3: C --> S GET ... Authorization: NTLM <base64-encoded type-1-message> 4: C <-- S 401 Unauthorized WWW-Authenticate: NTLM …

ChatGPT和DALLE-2级联后,输出效果震撼了…

源&#xff5c;机器之心 文&#xff5c;张倩、袁铭怿生成式 AI 正在变革内容的生产方式。在过去的一周&#xff0c;相信大家都被 ChatGPT 刷了屏。这个强大的对话 AI 仅用 5 天时间用户量就突破了 100 万。大家用各种方式测试着它的能力上限&#xff0c;其中一种测试方式就是让…

域用户频繁被锁定怎么解决_Oracle11g用户频繁锁定并且解锁后不允许登录

原因有可能是oracle的密码过期机制导致的&#xff1a;一、由于Oracle中默认在default概要文件中设置了“PASSWORD_LIFE_TIME180天”所导致。解决办法&#xff1a;1、查看用户用的哪种profile策略&#xff0c;一般是default&#xff1a;select username,profile from dba_users;…

LeetCode 1290. 二进制链表转整数

1. 题目 给你一个单链表的引用结点 head。 链表中每个结点的值不是 0 就是 1。 已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1&#xff1a; 输入&#xff1a;head [1,0,1] 输出&#xff1a;5 解释&#xff1a;二进制数 (101…

jmeter性能测试报告_用 JMeter 做接口测试的优劣浅析

2018年由软件质量报道做的调查报告表明&#xff0c;受调查的测试人员中约有40.67%的人使用JMeter作为接口测试的自动化测试工具(排在商业化或者开源工具中的第一)&#xff0c;剩下的为Postman(28%)&#xff0c;以及SoapUI(17.33%)。不过值得关注的是另外还有44.13%的采用了自研…