Camera BSP之GPIO/I2C/PMIC简介
和你一起终身学习,这里是程序员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
MSM GPIO 内部结构
二、I²C 总线概括
I²C 是Inter-Integrated Circuit的缩写,它是一种两线接口,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。
内部结构如下图:
速率:
普通模式:100kHz;
快速模式:400kHz;
高速模式:1.0MHZ,3.4MHz;
I2C协议:
SDA传输数据是大端传输,每次传输8bit,即一字节。
支持多主控(multimastering),任何时间点只能有一个主控。
总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.
系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定。
空闲状态
I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
起始位与停止位的定义:
起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
I2C位传输
SDA传输数据是大端传输,每次传输8bit,即一字节。
地址会左移一位加上读写位发出去。注意停止位(master发送stop)(0:写;1:读)。
数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;(高电平时候数据采样)若SDA发生跳变,则用来表示一个会话的开始或结束。
数据改变:SCL为低电平时,SDA线才能改变传输的bit;
I2C应答信号:
Master每发送完8bit数据后等待Slave的ACK。
即在第9个clock,若从IC发ACK,SDA会被拉低。(写的ACK是0,读的ACK是1)
若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程,如下所示:
两个实践例子
下图为失败时i2c波形,由波形可看出主机端发送完i2c从端地址0x38后,从端未响应。
下面我们再看一下写成功时候的波形,由波形可看出i2c主机端发送从端地址0x38后,从端有ACK, 主机端继续发送要写入的寄存器地址0xA5, 从端ACK; 主机端继续发送写入寄存器的值0x03, 从端ACK。通信完成。
三、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为例,框图如下:
输入电源管理:
双充电和电压保护(OVP)
快速切换充电路径
自主充电
反向升压模块和效率
反向升压开关模式电池充电器(SMBB)架构和总结
SMBB Architecture:
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电路如原理如下:
图中,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电路内部结构
LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与输出的压差只有1.7v,显然是不满足条件的。针对这种情况,才有了LDO类的电源转换芯片。具有成本低,噪音低,静态电流小,需要的外接元件少等优点。缺点是效率偏低。LDO的输入电流基本上是等于输出电流,效率等于输出电压/输入电压,如果压降太大,损耗就很大。
LDO的基本电路如下:该电路由串联调整管VT、取样电阻R1和R2、比较放大器A组成。取样电压加在比较器A的同相输入端,与加在反相输入端的基准电压Uref相比较,两者的差值经放大器A放大后,控制串联调整管的压降,从而稳定输出电压。当输出电压Uout降低时,基准电压与取样电压的差值增加,比较放大器输出的驱动电流增加,串联调整管压降减小,从而使输出电压升高。相反,若输出电压Uout超过所需要的设定值,比较放大器输出的前驱动电流减小,从而使输出电压降低。
General Housekeeping:
HK/XO ADC circuits 如下图:
包括系统时钟和ADC
User interface
Light pulse generators(LPG)
RGB LED driver
flash driver
White LED support
Keypad interface
Vibration motor driver
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
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
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
点击阅读原文,为大佬点赞!
相关文章:

Camera BSP之GPIO/I2C/PMIC简介
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、GPIO介绍二、IC 总线概括三、PMIC 概括四、思考 一、GPIO介绍 GPIO:General Purpose Input Output (通用输入/输出…...
Spring 数据校验:Validation
文章目录 Spring Validation概述实验一:通过Validator接口实现实验二:Bean Validation注解实现实验三:基于方法实现校验实验四:实现自定义校验 Spring Validation概述 在开发中,我们经常遇到参数校验的需求࿰…...

网页构造与源代码
下载google浏览器 设置打开特定网址:www.baidu.com 查看网页或元素源代码 网页右键选择“检查”查看源代码 网页源代码 元素源代码...
辅助驾驶功能开发-功能对标篇(14)-NOA领航辅助系统-集度
1.横向对标参数 厂商集度车型ROBO-01上市时间2023方案12V5R2L+1DMS摄像头前视摄像头3侧视摄像头4后视摄像头1环视摄像头4DMS摄像头1雷达毫米波雷达54D毫米波雷达/超声波雷达12激光雷达</...

论坛介绍 | COSCon'23 云计算(C)
众多开源爱好者翘首期盼的开源盛会:第八届中国开源年会(COSCon23)将于10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是:“开源:川流不息、山海相映”!各位新老朋友们,欢迎到成都&am…...

Spring 国际化:i18n
文章目录 i18n概述Java国际化Spring6国际化MessageSource接口使用Spring6国际化 i18n概述 国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户&…...

【APP源码】基于Typecho博客程序开发的博客社区资讯APP源码
全新博客社区资讯APP源码 Typecho后端 一款功能全面,用户交互良好,数据本地缓存,集成邮箱验证,在线投稿,(内置Mardown编辑器), 快捷评论的的博客资讯APP。同时兼容H5和微信小程序。 …...

Spring Security登录表单配置(3)
1、登录表单配置 1.1、快速入门 理解了入门案例之后,接下来我们再来看一下登录表单的详细配置,首先创建一个新的Spring Boot项目,引入Web和Spring Security依赖,代码如下: <dependency><groupId>org.sp…...

代理模式(初学)
代理模式 一、什么是代理模式 代理模式:为其他对象提供一种代理以控制对这个对象的访问 二、简单例子 这里面的骏骏就起到了代理的身份,而贵贵则是被代理的身份。 三、代码实现 1、用一个接口(GivingGifts)来保存送礼物的动作…...

Spring底层架构核心概念
BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如: class,表示Bean类型scope,表示Bean作用域,单例或原型等lazyInit:表示Bean是否是懒加载initMeth…...

为什么高精度机器人普遍使用谐波减速器而不是普通减速器?
机器人作为一种能够代替人类完成各种工作的智能设备,已经广泛应用于工业生产、医疗卫生、军事防卫等领域。其中,机器人的关节传动系统是机器人运动的核心,而减速器作为关节传动系统中的重要组成部分部分,对机器人的性能和技术水平…...
特殊类的设计
目录 一、设计一个类,不能被拷贝二、设计一个类,只能在堆上创建对象三、设计一个类,只能从栈上创建对象四、设计一个类,不能被继承五、设计一个类,只能创建一个对象(单例模式)5.1 饿汉模式5.2 懒…...

HTTP 协议的基本格式(部分)
要想了解HTTP,得先知道什么是HTTP,那么HTTP是什么呢?HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。那什么是超文本呢?那就是除了文本,还有图片,声音,视频等。 …...
Android 第三方app https 抓包
工具选择 Charles 或 Fiddler 都可以 在PC上安装工具并进行设置 Charles Fiddler 设置按官网说明设置一下好。 Charles设置 Fiddler设置 Android Api Level > 24 SSL特殊设置 当Android 的 Api Level > 24时需要修改一下app的一起配置 1.在项目中添加 Android/src/…...
Linux-gitlab常用命令
gitlab常用命令 1、查看gitlab状态2、gitlab启动3、gitlab关闭 1、查看gitlab状态 gitlab-ctl status2、gitlab启动 gitlab-ctl start3、gitlab关闭 gitlab-ctl stop...
android 13.0 Settings主页动态显示和隐藏设置项(一级菜单显示和隐藏)
1.前言 在13.0定制化开发Settings时,有产品需求要求对主页设置项需要动态控制显示和隐藏,这就需要用定义两个页面来区分加载不同settings页面 接下来分析下相关的实现流程 实现思路: 1.用系统变量控制显示和隐藏某些项 2.增加一个自定义页面来适配不同页面 2.Settings主页动态…...
Android MJPEG播放器
MJPEG Android MJPEG播放 支持http mjpeg直播流播放; 支持编码MP4保存视频; 资源 名字资源jar下载GitHub查看Gitee查看 Maven 1.build.grade allprojects {repositories {...maven { url https://jitpack.io }} }2./app/build.grade dependencies {implementation com.g…...
Ubuntu - 安装 MySQL 8
以下是在 Ubuntu 上安装 MySQL 8 的完整步骤: 步骤 1:更新包列表 首先,打开终端并执行以下命令来确保包列表是最新的: sudo apt update 步骤 2:安装 MySQL 8 服务器 接下来,使用以下命令安装 MySQL 8 …...

谷歌浏览器跨域及--disable-web-security无效解决办法
谷歌浏览器跨域设置 (1)创建一个目录,例如我在C盘创建MyChromeDevUserData文件夹 (2) 在桌面选择谷歌浏览器右键 -> 属性 -> 快捷方式 -> 目标,添加--disable-web-security --user-data-dirC:\M…...

IT售前“楠“知识之这!就是售前-尚文网络xUP楠哥
进Q群11372462领取专属报名福利 !!! # 何为售前工程师 售前工程师在一个IT信息化团队中起到了呈上启下的绝对重要作用!站在销售团队的视角,需要售前工程师从技术维度支持销售业务的开展;站在对立面用户的…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...