高通GPIO寄存器值参数意义和设置(深度理解)

news2024/11/24 19:21:10

目录

1、GPIO寄存器参数值及含义

2、读写寄存器地址

3、施密特触发器引起的滞后

4、高通设备树pinctrl的定义及配置

5、高通设备树GPIO的msmxxxx-pinctrl.dtsi结构定义


本文主要介绍基于高通的gpio配置,其中最少见的就是配置gpio的滞后效应引起的电压偏移对实际使用产生一定的影响,在以往的嵌入式芯片中只配置过上拉、下拉、浮空、但是在高通芯片中,由于高通芯片的管理,对引脚还加内置的施密特电路导致gpio还有一定的滞后效应,但是在高通的代码配置文档中说的并不是很清楚,而且写的很模糊,在尝试后也无效,最后还是之间在gpio的初始化中,按照高通的寄存器说明,对gpio进行寄存器的配置后才生效!

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主

1、GPIO寄存器参数值及含义

寄存器参数值

GPIO寄存器地址

2、读写寄存器地址

读取

寄存器地址

例如读取gpio141,其中141是十进制的表示,转换成16进制是0x8D

/system/bin # ./r 0x0108D000

0108d000: 00000001

返回值是0x0000001 其中1是第0 bit位的参数值,表示0x1 即 Pull Down

再读取gpio141内核的定义

/system/bin # cat /sys/kernel/debug/gpio | grep 141

GPIOs 0-141, platform/1000000.pinctrl, 1000000.pinctrl:

 gpio141 : in  0 2mA pull down

如果改成 no pull 则将需要将寄存器值改成0x00000000

./r 【寄存器地址】【寄存器值】

/system/bin # ./r 0x0108D000 0x000000000

0108d000: 00000000

/system/bin # cat /sys/kernel/debug/gpio | grep 141

GPIOs 0-141, platform/1000000.pinctrl, 1000000.pinctrl:

 gpio141 : in  0 2mA no pull

3、施密特触发器引起的滞后

上述配置中,针对第10位bit的参数GPIO_HIHYS_EN 描述的比较少,其实际是影响gpio的滞后反应,大致有100~300mv的电压差

施密特

施密特触发器是一种具有正反馈的电路,它可以将输入信号转换为稳定的输出信号。当输入信号的幅度超过一定的阈值时施密特触发器会产生一个输出信号,并将其保持在高电平状态。当输入信号的幅度低于另一个阈值时,施密特触发器会将输出信号切换回低电平状态。

施密特触发器的作用是消除输入信号中的噪声和抖动,并产生一个稳定的输出信号。由于施密特触发器具有正反馈,因此它可以在输入信号的幅度变化较小的情况下产生一个明确的输出信号。这使得施密特触发器非常适合用于数字电路中的信号处理和时序控制。

施密特触发器还可以用于消除开关反弹和消除瞬态噪声。在关电路中,当开关打开或关闭时,会产生反弹现象,这可能会导致错误的信号传输。通过使用施密特触发器,可以消除这种反弹现象,并确保正确的信号传输。

总之,施密特触发器是一种非常有用的电路,可以将输入信号转换为稳定的输出信号,并消除噪声和抖动。它在数字电路中的应用非常广泛,特别是在信处理和时序控制方面。

滞后

效应

这种滞后反应是由施密特触发器的正反馈机制引起的。当信号处于高电平状态时,它会通过反馈回路影响输入信号。这使得输入信号的幅度必须降低到下降阈值以下的一定程度,才能使输出信号切换回低电平状态。因此,施密特触发器具有一定的滞后效应。

滞后反应可以使施密特触发器更加稳定,并且可以消除输入信号中的噪声和抖动。然而,在某些应用中,滞后反应可能会导致不必要的延迟或误差。因此,在设计电路时,需要仔细考虑施密特触发器的滞后反应,并选择适当的阈值和反馈电路来满足特定的应用需求。

4、高通设备树pinctrl的定义及配置

引脚定义

Optional Properties (for standard pins):

- function:

String. Specifies the pin mux selection. Values must be one of: "alt1", "alt2", "alt3", "alt4"

- input-schmitt-enable: No arguments. Enable schmitt-trigger mode.

- input-schmitt-disable: No arguments. Disable schmitt-trigger mode.

- bias-pull-up: No arguments. Pull up on pin.

- bias-pull-down:        No arguments. Pull down on pin.

- bias-disable: No arguments. Disable pin bias.

- slew-rate:  Integer. Meaning depends on configured pin mux:

*_SCL or *_SDA:

0: Standard(100kbps)& Fast(400kbps) mode

1: Highspeed (3.4Mbps) mode

IC_DM or IC_DP:

0: normal slew rate

1: fast slew rate

Otherwise:

0: fast slew rate

1: normal slew rate

- input-enable: No arguments. Enable input (does not affect output.)

- input-disable: No arguments. Disable input (does not affect output.)

- drive-strength: Integer. Drive strength in mA.  Valid values are

2, 4, 6, 8, 10, 12, 14, 16 mA.

5、高通设备树GPIO的msmxxxx-pinctrl.dtsi结构定义

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

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

相关文章

基于Helm快速部署私有云盘NextCloud

1. 添加源 helm repo add nextcloud https://nextcloud.github.io/helm/2. 编写values.yaml 为了解决通过不被信任的域名访问。请联系您的管理员。如果您就是管理员,请参照 config.sample.php 中的示例编辑 config/config.php 中的“trusted_domains”设置。 nex…

Vue中使用uuid生成(脚手架创建自带的)

1.utils 说明:一般封装工具函数。 // 单例模式 import { v4 as uuidv4 } from uuid; // 要生成一个随机的字符串,且每次执行不能发生变化 // 游客身份还要持久存储 function getUUID(){// 先从本地获取uuid,本地存储里面是否有let uuid_tok…

【OpenCV常用函数:轮廓检测+外接矩形检测】cv2.findContours()+cv2.boundingRect()

文章目录 1、cv2.findContours()2、cv2.boundingRect() 1、cv2.findContours() 对具有黑色背景的二值图像寻找白色区域的轮廓,因此一般都会先经过cvtColor()灰度化和threshold()二值化后的图像作为输入。 cv2.findContous(image, mode, method[, contours[, hiera…

Chapter 13: Network Programming | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Network ProgrammingNetworked programsHypertext Transfer Protocol - HTTPThe world’s simplest web browserRetrieving an image over HTTPRetrieving web pages with urllibReading binary files using urllibParsing HTML and scra…

【DP+矩阵加速】CF691 E

Problem - 691E - Codeforces 题意&#xff1a; 思路&#xff1a; 有人只会暴力DP忘记矩阵快速幂怎么写了 Code&#xff1a; #include <bits/stdc.h>#define int long longusing i64 long long;using namespace std;const int N 1e2 10; const int mod 1e9 7;int…

【Transformer】自注意力机制Self-Attention

1. Transformer 由来 & 特点 1.1 从NLP领域内诞生 "Transformer"是一种深度学习模型&#xff0c;首次在"Attention is All You Need"这篇论文中被提出&#xff0c;已经成为自然语言处理&#xff08;NLP&#xff09;领域的重要基石。这是因为Transfor…

Oracle单实例升级补丁

目录 1.当前DB环境2.下载补丁包和opatch的升级包3.检查OPatch的版本4.检查补丁是否冲突5.关闭数据库实例&#xff0c;关闭监听6.应用patch7.加载变化的SQL到数据库8.ORACLE升级补丁查询 oracle19.3升级补丁到19.18 1.当前DB环境 [oraclelocalhost ~]$ cat /etc/redhat-releas…

[LeetCode - Python]69. x 的平方根(Easy);367. 有效的完全平方数(Easy)

1.题目&#xff1a; 69. x 的平方根(Easy) 1.代码&#xff1a; class Solution:def mySqrt(self, x: int) -> int:# 思路&#xff1a;二分法&#xff0c;左闭右开# 额外添加1&#xff1a;判断0&#xff0c;1是否符合&#xff1b;if x 0 or x 1 :return xleft , right ,…

基于微信小程序的传染病酒店隔离平台设计与实现(Java+spring boot+MySQL+微信小程序)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于微信小程序的传染病酒店隔离平台设计与实现&#xff08;Javaspring bootMySQL微信小程序&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;…

使用线性回归预测票房收入 -- 机器学习项目基础篇(10)

当一部电影被制作时&#xff0c;导演当然希望最大化他/她的电影的收入。但是我们能通过它的类型或预算信息来预测一部电影的收入会是多少吗&#xff1f;这正是我们将在本文中学习的内容&#xff0c;我们将学习如何实现一种机器学习算法&#xff0c;该算法可以通过使用电影的类型…

# ⛳ Docker 安装、配置和详细使用教程-Win10专业版

目录 ⛳ Docker 安装、配置和详细使用教程-Win10专业版&#x1f69c; 一、win10 系统配置&#x1f3a8; 二、Docker下载和安装&#x1f3ed; 三、Docker配置&#x1f389; 四、Docker入门使用 ⛳ Docker 安装、配置和详细使用教程-Win10专业版 &#x1f69c; 一、win10 系统配…

20230808在WIN10下使用python3将TXT文件转换为DOCX

20230808在WIN10下使用python3将TXT文件转换为DOCX 2023/8/8 19:30 缘起&#xff0c;由于google的文档翻译不支持SRT/TXT格式的字幕&#xff0c;因此需要将SRT格式的字幕转为DOCX。 Ch4.Unreported.World.2022.Mexicos.Psychedelic.Toads.1080p.HDTV.x265.AAC.MVGroup.org.mkv …

FK-坦克大战制作(一)菜单制作

1、Cocos Creator新建2d项目 2.在资源管理器中新建场景menu 新建scences文件夹》新建场景》改名为menu 3.在层级管理器的Canvas下新建Layout节点&#xff0c;并在此节点下新建Label标签 4.双击Label&#xff0c;在属性检查器中进行编辑 5. 添加动画&#xff1a;(对文本进行放大…

代码随想录算法训练营day57

文章目录 Day57回文子串题目思路代码 最长回文子序列题目思路代码 Day57 回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。…

JavaWeb学习|JSP相关内容

1.什么是JSP Java Server Pages: Java服务器端页面&#xff0c;也和Servlet一样&#xff0c;用于动态Web技术! 最大的特点: 。写JSP就像在写HTML 。区别: 。HTML只给用户提供静态的数据 。JSP页面中可以嵌入JAVA代码&#xff0c;为用户提供动态数据 JSP最终也会被转换成为一…

使用Python和wxPython将图片转换为草图

导语: 将照片转换为艺术风格的草图是一种有趣的方式&#xff0c;可以为您的图像添加独特的效果。在本文中&#xff0c;我们将介绍如何使用Python编程语言和wxPython图形用户界面库来实现这一目标。我们将探讨如何使用OpenCV库将图像转换为草图&#xff0c;并使用wxPython创建一…

科研热点|5本Scopus期刊不再被收录,Scopus期刊目录更新(附下载)!

此次Scopus期刊目录更新后&#xff0c;有5本期刊不再被收录&#xff08;Discontinued titles July 2023&#xff09;&#xff0c;同上次更新时相比&#xff0c;此次又新增139本期刊(Accepted titles)进入Scopus数据库。目前Scopus 来源出版物列表&#xff08;Scopus Sources&am…

[Java]JDK新特性

目录 一、JDK新特性 1.1Java Record 1.1.1Record的使用 1.1.2Instance Methods 1.1.3静态方法 Static Method 1.1.4Record构造方法 1.1.5Record与Lombok 1.1.6Record实现接口 1.1.7Local Record 1.1.8嵌套Record 1.1.9instanceof判断Record类型 1.1.10总结 1.2Swit…

std::string 的append方法 存放文本和非文本数据

今天在用std::string来拼接数据 有文本数据 也有 非文本数据 如果是文本数据那么append方法参数为 ( char *data, int len&#xff09; 将data的前len个字节附加到 string中 如果是非文本数据 则参数为&#xff08;int size, char data&#xff09;; 重复size个data 附加…

【IMX6ULL驱动开发学习】02.hello驱动程序之cdev注册字符设备驱动程序和设置次设备号

目录 ​编辑 一、register_chrdev 二、解决方法 2.1 alloc_chrdev_region函数&#xff1a;注册一系列字符设备编号 2.2 cdev_init函数&#xff1a;初始化cdev结构体 2.3 cdev_add函数&#xff1a;将字符设备添加到系统中 三、驱动程序 一、register_chrdev major reg…