Camera BSP之GPIO/I2C/PMIC简介

news2024/11/17 15:32:16

3b154f0a282cfafcaddf09a2228f66d2.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、GPIO介绍
二、I²C 总线概括
三、PMIC 概括
四、思考

一、GPIO介绍

  • GPIO:General Purpose Input Output (通用输入/输出)

  • GPIOs are I/O pins that provide peripheral connections to the MSM™ chipset.

  • GPIOs can be configured as a general purpose I/O pin or alternative functions.

  • GPIOs can act as an interrupt source.

  • In a multiprocessor MSM, GPIO pins can be controlled by any master

b82c2b2a882af3872e5b3c8097ffe80f.jpeg

  • MSM GPIO 内部结构

a6d29d875b8c91c67c47159bbb0090d5.jpeg

二、I²C 总线概括

  • I²C 是Inter-Integrated Circuit的缩写,它是一种两线接口,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。

    • 内部结构如下图:

c02b97ff4d256042e5a120c8d8d11adb.jpeg

  • 速率:

  • 普通模式:100kHz;

  • 快速模式:400kHz;

  • 高速模式:1.0MHZ,3.4MHz;

  • I2C协议:

  • SDA传输数据是大端传输,每次传输8bit,即一字节。

  • 支持多主控(multimastering),任何时间点只能有一个主控。

  • 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.

  • 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定。

  • 空闲状态

  • I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

  • 起始位与停止位的定义:

5525779eb7f9085047ca1fadae8c4624.jpeg

  • 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。

  • 停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

81c163ea42823cfc37cb617da50ab442.jpeg

  • I2C位传输

  • SDA传输数据是大端传输,每次传输8bit,即一字节。

  • 地址会左移一位加上读写位发出去。注意停止位(master发送stop)(0:写;1:读)。

  • 数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;(高电平时候数据采样)若SDA发生跳变,则用来表示一个会话的开始或结束。

  • 数据改变:SCL为低电平时,SDA线才能改变传输的bit;

6bfd7c13f38bfb29fe8b39971a2eda1b.jpeg

  • I2C应答信号:

  • Master每发送完8bit数据后等待Slave的ACK。

  • 即在第9个clock,若从IC发ACK,SDA会被拉低。(写的ACK是0,读的ACK是1)

  • 若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程,如下所示:

  • 9d76ff1ecd5cd7a128326e6f4731cb41.jpeg

  • 两个实践例子

  • 下图为失败时i2c波形,由波形可看出主机端发送完i2c从端地址0x38后,从端未响应。

8936bf365e2424d7c6d8be929dc8299b.jpeg

  • 下面我们再看一下写成功时候的波形,由波形可看出i2c主机端发送从端地址0x38后,从端有ACK, 主机端继续发送要写入的寄存器地址0xA5, 从端ACK; 主机端继续发送写入寄存器的值0x03, 从端ACK。通信完成。

2eccedfcb511560bb119ab8a000864de.jpeg

三、PMIC 概括

  • PMIC:Power Management IC(电源管理芯片)

  • 包括以下主要功能

  • 1) Input Power Management

  • 2) Output Power Management

  • 3) General Housekeeping

  • 4) User Interfaces

  • 5) IC-level Interfaces

  • 6) PMIC Configurable I/Os

  • 以PM8941为例,框图如下:

1b6fbb37eed0996cbb6388d184a7d98b.jpeg

  • 输入电源管理:

  • 双充电和电压保护(OVP)

  • 快速切换充电路径

  • 自主充电

  • 反向升压模块和效率

  • 反向升压开关模式电池充电器(SMBB)架构和总结

c49808a23e5f05e92215cb926143f9e2.jpeg

  • SMBB Architecture:

71d54089d960108f1b0db127fb5fba7e.jpeg

  • SMBB的结构和特性总结

  • 快速自动充电路径切换的双充电路径

  • USB充电的OVP是+30V,充电电压范围是4.35~9.5V。

  • DC充电路径集成了+15V的OVP,充电电压范围是4.5V~9.5V,还可以外扩OVP的FET达到+30V的保护

  • 完全集成高效的开关模式充电器

  • 高达3A的充电电流。

  • 3.2MHz的开关频率。

  • 1A时效率90%,2.5A时效率85%。

  • 高电流压降补偿。

  • 升压电路可提供2A的电流到Vchg

  • 支持USB OTG,HDMI开关,LED,flash LED。

  • Output Power Management Content:

  • 输出包括多路降压BUCK和LDO供给不同的模块使用

  • BUCK电路如原理如下:

7f45df3ac429b5326a74ab8efcad2b8c.jpeg

  • 图中,VIN为输入电压,VOUT为输出电压,L为储能电感,VD为续流二极管,C为滤波电容,R1、R2为分压电阻,经分压后产生误差反馈信号FB,用以稳定输出电压和调输出电压的高低。电源开关管V既可采用N沟道绝缘栅场效应管(MOSFET),也可采用P沟道场效应管,当然也可用NPN型晶体管或PNP型晶体管,实际应用中,一般采用P沟道场效应管居多。

  • 降压式DC/DC变换器的基本工作原理是:V开关管在控制电路的控制下工作在开关状态。开关管导通时,VIN电压经开关管S、D极、储能电感L和电容C构成回路,充电电流不但在C两端建立直流电压,而且在储能电感L上产生左正、右负的电动势;开关管截止期间,由于储能电感L中的电流不能突变,所以,L通过自感产生右正、左负的脉冲电压。于是,L右端正的电压→滤波电容C一续流二极管VD→L左端构成放电回路,放电电流继续在C两端建立直流电压,C两端获得的直流电压为负载供电。因此,降压式DC/DC变换器产生的输出电压不但波纹小,而且开关管的反峰电压低。

  • 高通PMU采用同步整流技术,利用导通电阻很低的专用功率MOS管来取代整流二极管,可以降低整流损耗,能大大提高DC/DC的效率。要求MOS管的G极电压和被整流的电压相位要同步,所以称为同步整流。当输出电压降低时,二极管的正向压降就变得很重要,因为这个电压很难降到0.3V以下,会大大影响转换效率。采用导通电阻很低的功率MOS管,在MOS管上损耗的压降会比二极管小很多,大大提高转换效率。

  • 高通BUCK电路内部结构

78c4022b3e1c93716cce3def36718e69.jpeg

  • LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与输出的压差只有1.7v,显然是不满足条件的。针对这种情况,才有了LDO类的电源转换芯片。具有成本低,噪音低,静态电流小,需要的外接元件少等优点。缺点是效率偏低。LDO的输入电流基本上是等于输出电流,效率等于输出电压/输入电压,如果压降太大,损耗就很大。

  • LDO的基本电路如下:该电路由串联调整管VT、取样电阻R1和R2、比较放大器A组成。取样电压加在比较器A的同相输入端,与加在反相输入端的基准电压Uref相比较,两者的差值经放大器A放大后,控制串联调整管的压降,从而稳定输出电压。当输出电压Uout降低时,基准电压与取样电压的差值增加,比较放大器输出的驱动电流增加,串联调整管压降减小,从而使输出电压升高。相反,若输出电压Uout超过所需要的设定值,比较放大器输出的前驱动电流减小,从而使输出电压降低。

1f6559c16c1fc7b46d657cbda7f27ca2.jpeg

  • General Housekeeping:

  • HK/XO ADC circuits 如下图:

  • 包括系统时钟和ADC

c96a0c5f1b58415061d32d614667425a.jpeg

  • User interface

  • Light pulse generators(LPG)

  • RGB LED driver

  • flash driver

  • White LED support

  • Keypad interface

  • Vibration motor driver

e2202c7c85a8bef5b6332b8620d1d3cf.jpeg

  • IC-level Interfaces:

  • OPT hardware configuration controls

  • programmable boot sequence (PBS)

  • Poweron/poweroff sequence

  • Reset

  • Under-voltage lockout

  • Sudden momentary power loss (SMPL)

  • SPMI and interrupt managers

  • Modem power management support

665ee63a4c41642a2125690414184f5d.jpeg

  • PMIC Configurable I/Os

  • GPIO

  • MPP


四、思考

1、 高通的处理器GPIO可以设置成哪些模式?
2 、I2C的起始信号在什么时候发生?
3 、I2C完整传传输一个字节有多少bit?
4 、PMIC的主要作用是什么?
5、 请说明BUCK和LDO的优缺点。

来源: 影像技术栈
文章作者: Abalone
文章链接: https://camerastacker.com/2022/071028925.html

参考文献:

【腾讯文档】Camera学习知识库
https://docs.qq.com/doc/DSWZ6dUlNemtUWndv

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

a0b0734b364ac25bf62759334987b70d.jpeg

点击阅读原文,为大佬点赞!

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

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

相关文章

修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库,k8s)

一:安装docker。(所有服务器都要安装) 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/cent…

RemObjects Elements 12.0 Crack

Elements 是一个现代多功能软件开发工具链。 它支持六种流行的编程语言:Oxygene (Object Pascal)、C#、Java、Mercury (Visual Basic.NET™)、Go 和 Swift,适用于所有现代平台。 使用 Elements,您可以为您喜欢的任何平台进行编程- 无论是单…

VR全景广告:让消费者体验沉浸式交互,让营销更有趣

好的产品都是需要广告宣传的,随着科技的不断发展,市面上的广告也和多年前的传统广告不同,通过VR技术,可以让广告的观赏性以及科技感更加强烈,并且相比于视频广告,成本也更低。 在广告营销中,关键…

Python中Numpy的应用技巧

目录 1. 什么是 NumPy?2. NumPy 中的数组2.1. 创建数组2.2. 用Numpy的数据2.2.1. OpenCV2.2.2. Pandas 3. 数学计算3.1. 四则计算3.1.1. 矩阵乘法3.1.2. 点乘 3.2. 求逆矩阵与伪逆矩阵3.3. 判断矩阵相等3.4. np.eye()函数生成对角阵 4. 统计4.1. 最大值、最小值、均值条件4.2.…

混凝土基础的智能设计:VisualFoundation 12.0 Crack

实现混凝土基础的智能设计:工程师依靠 VisualFoundation:使用这个专注的工具可以更轻松、更强大地对基础进行建模。通用 FEA 工具(如VisualAnalysis)可以做很多事情,但对于特定于基础的工程来说,这更快、更智能。 草图边界 快速绘…

2023系统架构师---信息系统基础知识

目录 信息系统基础知识 信息系统概述 信息系统开发方法 1.结构化方法 2,原型法 3.面向对象方法 4.面向服务的方法 信息系统基础知识 信息系统是一个由人、计算机等组成的能进行信息的收集、传递、存储、加工、维护和使用的系统,它是一门综合了经济…

混凝土和砖石设计:IES Quick Suite Crack

工IES Quick Suite程师凭借快速产品取得成功:用于混凝土和砖石设计的四个独立工具。这些实用程序体积小,功能强大且速度极快。它们在检查现有结构或设计新结构方面具有许多共同的优点。 为了方便起见,这些产品捆绑在一个安装程序中。单独使用…

基于安卓Android的人在旅途旅行出行APP

项目介绍 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库…

Disruptor在流程编排中的应用与探索

作者姓名:邓泽波 文章简介:Disruptor是一种高性能的异步事件处理框架,它通过无锁的方式实现了高效的并发处理,通过本文为大家介绍将优秀的框架引入流程编排中并落地 文章内容: 金融事业部同学为大家介绍将Disruptor…

目标检测应用场景和发展趋势

参考: 目标检测的未来是什么? - 知乎 (zhihu.com)https://www.zhihu.com/question/394900756/answer/32489649815大应用场景 1 行人检测: 遮挡问题:行人之间的互动和遮挡是非常常见的,这给行人检测带来了挑战。非刚性…

Linux篇 五、Ubuntu与Linux板卡建立NFS服务

Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 四、Linux修改用户名 文章目录 Linux系列文章目录前言一、连接到局域网互ping测试 二、安装NFS服务配置NFS更新exports配置三、板卡安装NFS客户端四、板卡临时…

解码yakit 适配中国的 只要base64加密直接yakit

中国版的bp 浏览器上代理 文件 服务器 yakit yakit 劫持启动 配置代理 报错 爆破 模糊字典 选择admin 选择 第一步 第二步 成功

【Linux】在Ubuntu下安装Zotero

【Linux】在Ubuntu下安装Zotero 文章目录 【Linux】在Ubuntu下安装Zotero1. Debian InstallationReference 1. Debian Installation 直接使用下面三条语句进行安装即可 wget -qO- https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash su…

C# 取消一个不带CancellationToken的任务?

在异步函数中&#xff0c;一般使用CancellationToken来控制函数的执行。这个Token需要作为参数传递到异步函数中&#xff1a; public staic Task<T> DoAsync(CancellationToken token) {... } 那么如果一个异步函数没有这个Token参数&#xff0c;如何取消呢? 之前看到一…

Upload-labs(1-20关保姆级教程)

靶场下载链接 https://github.com/c0ny1/upload-labs 话不多说&#xff0c;直接喂饭 lab-1 上传php木马&#xff0c;发现弹出提示框&#xff0c;查看源码可知是前端过滤&#xff1a; bp抓包&#xff0c;先上传一张正常的jpg图片 修改文件内容和后缀&#xff0c;大概就是想…

python栈和队列

python栈和队列 一、栈1. 栈的基本介绍2. 代码3. 基本操作4. 括号匹配问题5. 删除字符串所有相邻的重复项6. 出栈顺序是否合法 二、队列1. 队列基本介绍2. 队列代码3. 队列基本操作4. 约瑟夫环-循环嵌套5. 约瑟夫环-队列16. 约瑟夫环-队列2 一、栈 1. 栈的基本介绍 特点&…

接口测试经验合集

一 、接口测试常见问题 前景提要&#xff1a;由于本人测试小白&#xff0c;可能所遇问题都较为基础&#xff0c;测试小白可以参考 1.1 postman会报 connect ECONNREFUSED jemeter会报 org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refus…

ASEMI-GBJ5010电源控制柜所用整流桥

编辑-Z 电源控制柜是一种常用的电力设备&#xff0c;广泛应用于工业生产过程中。在电源控制柜中&#xff0c;整流桥起着重要的作用。 整流桥是一种用于变流的电器元件&#xff0c;由4个二极管组成。它能够将交流电转换为直流电&#xff0c;并提供稳定的电源给控制柜中的其他设…

07 创建型模式-单例模式

1.单例模式介绍 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一&#xff0c;此模式保证 某个类在运行期间&#xff0c;只有一个实例对外提供服务&#xff0c;而这个类被称为单例类。 2.使用单例模式要做的两件事 保证一个类只有一个实例…

C语言实现:有 5 个人坐在一起,问第 5 个人多少岁?

完整代码&#xff1a; /*有 5 个人坐在一起&#xff0c;问第 5 个人多少岁?他说比第 4 个人大两岁。间第 4 个人岁 数&#xff0c;他说比第 3 个人大两岁。问第 3 个人&#xff0c;又说比第 2 个人大两岁。问第 2 个人&#xff0c; 说比第 1 个人大两岁。最后问第 1 个人&…