当前位置: 首页 > news >正文

Camera BSP之GPIO/I2C/PMIC简介

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

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

相关文章:

Camera BSP之GPIO/I2C/PMIC简介

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、GPIO介绍二、IC 总线概括三、PMIC 概括四、思考 一、GPIO介绍 GPIO:General Purpose Input Output (通用输入/输出&#xf…...

Spring 数据校验:Validation

文章目录 Spring Validation概述实验一:通过Validator接口实现实验二:Bean Validation注解实现实验三:基于方法实现校验实验四:实现自定义校验 Spring Validation概述 在开发中,我们经常遇到参数校验的需求&#xff0…...

网页构造与源代码

下载google浏览器 设置打开特定网址:www.baidu.com 查看网页或元素源代码 网页右键选择“检查”查看源代码 网页源代码 元素源代码...

辅助驾驶功能开发-功能对标篇(14)-NOA领航辅助系统-集度

1.横向对标参数 厂商集度车型ROBO-01上市时间2023方案12V5R2L+1DMS摄像头前视摄像头3侧视摄像头4后视摄像头1环视摄像头4DMS摄像头1雷达毫米波雷达54D毫米波雷达/超声波雷达12激光雷达</...

论坛介绍 | COSCon'23 云计算(C)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&am…...

Spring 国际化:i18n

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

【APP源码】基于Typecho博客程序开发的博客社区资讯APP源码

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

Spring Security登录表单配置(3)

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

代理模式(初学)

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

Spring底层架构核心概念

BeanDefinition BeanDefinition表示Bean定义&#xff0c;BeanDefinition中存在很多属性用来描述一个Bean的特点。比如&#xff1a; class&#xff0c;表示Bean类型scope&#xff0c;表示Bean作用域&#xff0c;单例或原型等lazyInit&#xff1a;表示Bean是否是懒加载initMeth…...

为什么高精度机器人普遍使用谐波减速器而不是普通减速器?

机器人作为一种能够代替人类完成各种工作的智能设备&#xff0c;已经广泛应用于工业生产、医疗卫生、军事防卫等领域。其中&#xff0c;机器人的关节传动系统是机器人运动的核心&#xff0c;而减速器作为关节传动系统中的重要组成部分部分&#xff0c;对机器人的性能和技术水平…...

特殊类的设计

目录 一、设计一个类&#xff0c;不能被拷贝二、设计一个类&#xff0c;只能在堆上创建对象三、设计一个类&#xff0c;只能从栈上创建对象四、设计一个类&#xff0c;不能被继承五、设计一个类&#xff0c;只能创建一个对象&#xff08;单例模式&#xff09;5.1 饿汉模式5.2 懒…...

HTTP 协议的基本格式(部分)

要想了解HTTP&#xff0c;得先知道什么是HTTP&#xff0c;那么HTTP是什么呢&#xff1f;HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。那什么是超文本呢&#xff1f;那就是除了文本&#xff0c;还有图片&#xff0c;声音&#xff0c;视频等。 …...

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 的完整步骤&#xff1a; 步骤 1&#xff1a;更新包列表 首先&#xff0c;打开终端并执行以下命令来确保包列表是最新的&#xff1a; sudo apt update 步骤 2&#xff1a;安装 MySQL 8 服务器 接下来&#xff0c;使用以下命令安装 MySQL 8 …...

谷歌浏览器跨域及--disable-web-security无效解决办法

谷歌浏览器跨域设置 &#xff08;1&#xff09;创建一个目录&#xff0c;例如我在C盘创建MyChromeDevUserData文件夹 &#xff08;2&#xff09; 在桌面选择谷歌浏览器右键 -> 属性 -> 快捷方式 -> 目标&#xff0c;添加--disable-web-security --user-data-dirC:\M…...

IT售前“楠“知识之这!就是售前-尚文网络xUP楠哥

进Q群11372462领取专属报名福利 &#xff01;&#xff01;&#xff01; # 何为售前工程师 售前工程师在一个IT信息化团队中起到了呈上启下的绝对重要作用&#xff01;站在销售团队的视角&#xff0c;需要售前工程师从技术维度支持销售业务的开展&#xff1b;站在对立面用户的…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...