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 
 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js判断是否是数字——isNaN()函数

    js判断是否是数字——isNaN()函数isNaN  返回一个Boolean值,指明提供的值是否是保留值NaN(不是数字)。  NaN即NotaNumber  isNaN(numValue)  必选项numvalue参数为要检查是否为NAN的值。  说明  假如值是NaN,那么isNaN函数返回true,否则返回false。使用这个函数的典型情况是检查parseInt

    2022年6月18日
    49
  • Python中的多线程「建议收藏」

    Python中的多线程「建议收藏」什么是多线程:进程:正在运行的程序,QQ360……线程:就是进程中一条执行程序的执行路径,一个程序至少有一条执行路径。(360中的杀毒电脑体检电脑清理同时运行的话就需要开启多条路

    2022年7月3日
    31
  • 简介pid参数整定的基本方法_一阶倒立摆的PID

    简介pid参数整定的基本方法_一阶倒立摆的PID0.前言关于PID参数的整定,网上调节的口诀、原则、方法满天飞,但是并没有具体的到步的教程,作为初学者且非自动化相关专业学生有点看不懂、一脸懵逼,走了不少弯路,呕心沥血才调节好,之后才看得懂那些口诀、原则。为了让大家少走弯路,这里将给出圆周倒立摆直立环PID参数整定的具体步骤。多图预警!圆周倒立摆整体图1.PID编程及理解磨刀不误砍材工,是骡子是马,咱先看看,要想调好PI…

    2022年8月18日
    20
  • Ubuntu18.04下卸载CUDA11.0

    Ubuntu18.04下卸载CUDA11.0由于深度学习部分代码仅支持CUDA11.0版本之前的Pytorch,Pytorch官网也没有提供与CUDA11.0配套的版本,因此决定卸载CUDA11.0,但是网上也都是11.0版本之前的卸载方式,因此按照网上的方法进行卸载,由于本人linux操作系统不熟,只能自己尝试首先在安装完CUDA11.0版本后,进入CUDA官网准备安装CUDA10.2,本来没想卸载CUDA11.0但在安装的最后一步出现:说明,在存在更高版本(11.0)情况下,无法正常安装,于是进行卸载:为什么不按照网.

    2022年6月17日
    43
  • qt tabwidget切换_qtabwidget tab样式

    qt tabwidget切换_qtabwidget tab样式感谢https://blog.csdn.net/skyztttt/article/details/52448992QTabWidget默认的Tab方向是水平的,从属性设置更改tabPosition=west后的效果如下图最终效果图#ifndefMH1_H#defineMH1_H#include<QMainWindow>#include<QPainter&gt…

    2022年9月16日
    0
  • linux 渗透工具_适用于Linux的十大最佳渗透测试工具[通俗易懂]

    linux 渗透工具_适用于Linux的十大最佳渗透测试工具[通俗易懂]linux渗透工具ThisarticlecoverssomeofthebestpenetrationtestingtoolsforLinuxCybersecurityisabigconcernforbothsmallandbigorganizations.Inanagewheremoreandmorebusinessesaremov…

    2022年8月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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