linux_驱动_IIC_BLSP

linux_驱动_IIC_BLSP原文链接:http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原文链接:http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/
笔记:
1. 每一块BLSP对应六位,每一位对应一个GPIO,每一位的GPIO都可以作为UART、SPI、IIC的链接线
2. 需要通过平台的数据手册 来确定用哪块BLSP的哪个QUP链接是哪个GPIO,这些个GPIO支持的是什么类型的总线(三大总线之一),每一位又是作为三大总线的哪一条
3. BAM中断与外设中断:BAM中断意味着数据读取/写入完成 外设状态和错误的等级会引发外设中断

应用实例:

1.基础概念

(1)   Bus Access Module (BAM),总线访问模块

BAM is used to move data to/from the peripheral buffers.

(2)   BAM Low-Speed Peripheral (BLSP),低速接口的总线访问模块

(3)   QUP:Qualcomm Universal Peripheral,高通统一的外设

 

2.Msm8937 BLSP

linux_驱动_IIC_BLSP

linux_驱动_IIC_BLSP

BLSP是高通对于低速接口的一种管理方式,8937 平台含有两个BLSP(BAM Low-Speed Peripheral) 块,对应于12个BLSP端口。 每一个BLSP块含有最多六个Qualcomm Universal Peripheral (QUP)和六个UART cores、其中SPI和IC2核心集成到一个名字为QUP核心,并且共享同一个FIFO,而UART_DM单独集成并有自己的FIFO,所有的这3个core共享同一个总线接口,也就是对外共用相同的I/O接口,比如:

linux_驱动_IIC_BLSP

但是对于只使用两个UART引脚的UART_DM,比如只用到GPIO_4(TX)和GPIO_5(RX),也是使用两个引脚的I2C接口这时也可以同时使用:

linux_驱动_IIC_BLSP

通过相关手册查询到每个外设属于BLSP多少。

 

3. 确认我们使用的I2C对应哪个BLSP和QUP

比如我们采用SDA—GPIO6,SCL—GPIO7,

(1)   到msm8937-pinctrl.dsti确认GPIO6和GPIO7对应设备树中是哪组I2C

linux_驱动_IIC_BLSP

其实从上图可知道是第1个BLSP的第2个QUDP,但我们从设备树上找到相关的

(2)   通过i2c_2_active找到msm8937.dtsi下有引用

linux_驱动_IIC_BLSP

这里可知是采用BLSP1的QUP2,I2C核基准地址是0x78b6000

(3)   Lk部分确定所用的I2C对应的BLSP和QUP

来看bootable\bootloader\lk\platform\msm_shared\include\blsp_qup.h下的定义

linux_驱动_IIC_BLSP

从这里可以看出QUP是从QUP_ID_0开始,那么我们的使用的GPIO6和GPIO7的I2C对应QUP_ID_1,使用示例如下:

linux_驱动_IIC_BLSP

4. QUP基地址和IRQs

linux_驱动_IIC_BLSP

BLSP routes the following interrupts from its subcores:

BAM_IRQ – Indicates that a BAM operation has completed

PERIPHERAL_IRQ – Driven by UART or QUP; shared at the peripheral level for status updates and errors of the peripheral; a status register in the peripheral core allows software to distinguish between interrupt sources

 

参考:

高通无人机8074 BLSP接口说明

http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/

高通APQ8074 spi 接口配置

https://blog.csdn.net/jumper511/article/details/25622833
——————— 

原文:https://blog.csdn.net/LoongEmbedded/article/details/83070030 
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180262.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • docker容器的启动(docker容器启动时间)

    在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。1、attach命令attach命令是Docker自带的命令,命令格式为:dockerattach[–detach-keys[=[]]][–no-stdin][–sig-prox

  • 单片机毕业设计196例「建议收藏」

    单片机毕业设计196例「建议收藏」单片机本科毕业设计——心率计(脉搏测量仪)系统设计与实现(源代码+protues仿真+PCB+开题报告+讲解视频).zip,相关下载链接:https://download.csdn.net/download/dwf1354046363/72630770单片机本科毕业设计——声控灯(继电器)控制系统设计与实现(源代码+protues仿真+PCB+开题报告+讲解视频).zip,相关下载链接:https://download.csdn.net/download/dwf1354046363/72620013单片

  • C++和java的区别和联系「建议收藏」

    C++和java的区别和联系「建议收藏」最近在看C++和java的基础知识,对它们面向对象编程的概念还不是很了解,但觉得它们之间有很多相通的地方,现在java比较热门,觉得使用java的框架可以做很多很多事情,而对C++的认识只知道在游戏开发上面用的比较多,自己接触编程还是太少,想要一点一点地积累进步,需要向很多大神和牛人学习经验。

  • max3221工作原理_max3232ese芯片发烫

    max3221工作原理_max3232ese芯片发烫TTL电平逻辑1为+5V,逻辑0为0V。RS232电平逻辑1为+3V~+15V,逻辑0为-3V~-15V。也就是说我们所转换的数据电平+5V->(+3V~+15V),0V->(-3V~-15V)即可。我们的MAX232是5V供电的,+5V->(+3V~+15V)的转换是很容易满足的,0V->(-3V~-15V)就需要内部产生一个负压电源然后去转换输出。MAX232的一般

  • SecureCRT的使用教程( 过程非常详细!!值得查看)

    SecureCRT的使用教程( 过程非常详细!!值得查看)SecureCRT的使用教程(过程非常详细!!值得查看)下载和安装简单的介绍一、SecureCRT的使用二、SecureFX的使用下载和安装SecureCRT和SecureFX的下载和安装我这里就不多说了,详细的安装下载教程请参考:SecureCRT的下载、安装(过程非常详细!!值得查看)简单的介绍SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是…

  • java反射机制的作用是什么_java反射常用的类有哪些

    java反射机制的作用是什么_java反射常用的类有哪些运行时类型识别(Run-timeTypeIdentification,RTTI)主要有两种方式,一种是我们在编译时和运行时已经知道了所有的类型,另外一种是功能强大的“反射”机制。要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class对象”完成的,它包含了与类有关的信息。类是程序的重要组成部分,每个类都有一个Class对象,每当编写并编译了一个…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号