MSM8937-MSM8953 I2C 配置调试指南

MSM8937-MSM8953 I2C 配置调试指南 一、I2C配置(硬件描述)1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO10作为I2C_SDA,GPIO11作为I2C_SCL为例。查找GPIO10与GPIO11对应的BLSP,以及检查GPIO10与GPIO11是否可以作为I2C来使用。根据文档,GPIO10对应BLSP3_1,GPIO11对应BLSP3_0。GPIOFUNCTIONGPIO_6,GP1…

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

Jetbrains全系列IDE稳定放心使用

 

一、I2C配置(硬件描述)

1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO10作为I2C_SDA,GPIO11作为I2C_SCL为例。

\

查找GPIO10与GPIO11对应的BLSP,以及检查GPIO10与GPIO11是否可以作为I2C来使用。根据文档,GPIO10对应BLSP3_1,GPIO11对应BLSP3_0。

GPIOFUNCTION

GPIO_6,GP1O_7BLSP2

GPIO_10,GOIO_11BLSP3

GPIO_14,GP1O_15BLSP4

GPIO_18,GP1O_19BLSP5

GPIO_22,GP1O_23BLSP6

GPIO_87,GP1O_88BLSP7

3.查找I2C部分BLSP3_0与BLSP3_1对应内容,包括其物理地址、reg size、中断号……

对应内容如下:

\

\

二、I2C配置(软件概述)

1.进入kernel/msm-3.18/arch/arm/boot/dts/qcom/路径下修改msm8937-pinctrl.dtsi文件

GPIO配置如下:

\

注意:1. MSM8917 的 pinctrl 文件为 msm8917-pinctrl.dtsi.

2. MSM8953 的 pinctrl 文件为 msm8953-pinctrl.dtsi

2.进入kernel/msm-3.18/arch/arm/boot/dts/qcom/路径下修改msm8937.dtsi文件

添加一个新的设备树节点

\

\

注意:1.红色方框中的内容需根据第三步内容进行修改

2. MSM8917 对应的文件为 msm8917.dtsi.

3. MSM8953 对应的文件为 msm8953.dtsi

3.进入kernel/msm-3.18/drivers/clk/msm路径下修改clock-gcc-8952.c文件

添加时钟节点如下图所示:

\

注意:1. MSM8917 对应的文件为 clock-gcc-8952.c

2. MSM8953 对应的文件为 clock-gcc-8953.c

4.编译kernel,在顶层目录下make bootimage –j12,在out目录下生成boot.img文件

路径为 LA.UM.5.6 /out/target/product/msm8937_64/boot.img

在DOS命令下,adb reboot bootloader

fastboot flash boot d:\\xxx\boot.img

若显示okay,执行 fastboot reboot。

注意:1.MSM8917 对应的路径为 LA.UM.5.6 /out/target/product/msm8937_32/boot.img

2.MSM8953 对应的路径为 LA.UM.5.6 /out/target/product/msm8953_64/boot.img

三、I2C BUS验证

配置好I2C后,我们需保证I2C BUS被注册

验证过程如下:

adb shell //——-> Get adb shell

cd /dev/

ls i2c* //——–> to list all the i2c buses

如果显示i2c-3,则表示I2C BUS已被注册

四、I2C调试检查

1、检查I2C配置的相关内容,是否存在错误,或者漏配。

2、确保SDA和SCL所配置的GPIO没有被其他设备所配置,否则硬件配置会出问题或者GPIO设置无效。

3、若I2C配置无误后,检查相关硬件问题

使用万用表测量I2C_SDA以及I2C_SCL的供电电压,如果与原理图中所示供电电压相差无几,则表示I2C供电电压没有问题。反之,则代表供电电压存在问题。

4、添加从设备

(1)、 通过设备树来注册一个从设备

如果I2C总线正常工作,我们就可以创建一个从设备驱动程序并注册到i2c总线上

我们使用st1663i触摸屏的驱动注册作为范例,引用文件:

kernel/drivers/input/touchscreen/st1663i/sitronix_i2c_touch.c

(2)、创建一个设备树节点

文件修改:

/kernel/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5.dtsi

添加一个新的设备树节点:

\

(3)、编译完成后,利用示波器测量I2C_SDA以及I2C_SCL波形

测试流程如下

adb root

adb remount

adb push i2c_test system/bin

adb shell

cd system/bin

chmod 777 i2c_test

./i2c_test /dev/i2c-3 0xaddr(从设备物理地址) 0(读) 0xaddr(寄存器地址)

如果I2C没有问题,所示I2C_SDA波形应为以下形式

I2C start > 0xE0 (write of 0x70) > 0x1 (reg offset ) > I2C stop > delay > I2C start > 0xE1 (read of 0x70) > > 8 bytes > I2C stop

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

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

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


相关推荐

  • java代码质量检查工具_jvm问题排查

    java代码质量检查工具_jvm问题排查wJa是一款结合DAST、SAST、IAST的综合性应用程序安全分析工具,支持对javaweb程序的安全性进行分析,含有反编译,代码审计,调试jar包,代理追踪等用于分析软件安全的功能。

    2022年9月12日
    0
  • malloc函数实现过程

    malloc函数实现过程在C语言中,要进行动态内存的开辟就需要使用到malloc函数,在C++中使用的new关键字的基层也是调用了malloc函数,可见malloc函数的重要性,这个就浅析一下malloc的实现过程。本文的测试环境是win10+vs2015。首先先看看malloc函数怎么去调用//malloc函数原型//void*malloc(size_tsize);//(MSDN中的定义)type

    2022年5月7日
    48
  • mysql分页查询倒序_【Mysql笔记】MySQL实现分页查询[通俗易懂]

    limit基本实现方式一般情况下,客户端通过传递pageNo(页码)、pageSize(每页条数)两个参数去分页查询数据库中的数据,在数据量较小(元组百/千级)时使用MySQL自带的limit来解决这个问题:收到客户端{pageNo:1,pagesize:10}select*fromtablelimit(pageNo-1)*pageSize,pageSize;收到客户端{pa…

    2022年4月15日
    198
  • javaScript学习笔记(一)js基础

    javaScript学习笔记(一)js基础=================================公众号关注一波(一叶知秋博客)不定期分享视频资料一、简介1、概述:JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。诞生于1995年,当时的主要目的是验证表单的数据是否合法。Java…

    2022年7月25日
    6
  • 监控流媒体服务器的搭建和使用_rtmp推流服务器

    监控流媒体服务器的搭建和使用_rtmp推流服务器当我们从网络摄像头上接收视频时,首先要了解协议(RTSP/RTMP/HTTP),然后是解码格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步到流媒体平台(比如视频直播点播平台EasyDSS)播放。本文和大家讲一下视频流媒体服务器中RTMP和RTSP区别是什么?大家都知道我们研发的不同视频流媒体服务器是接入不同协议的,国标流媒体服务器接入GB28181协议,而视频直播点播流媒体服务器就是接入RTSP和RTMP协

    2022年10月20日
    0
  • python找出肇事者_犯交通肇事罪的量刑级

    python找出肇事者_犯交通肇事罪的量刑级抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年7月30日
    19

发表回复

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

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