首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux系统驱动之I2C协议

资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 I2C协议 参考资料: i2c_spec.pdf 1....硬件连接 I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。 2....传输数据类比 怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。...下图:白色背景表示"主→从",灰色背景表示"从→主" 3.3 I2C信号 I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux I2C驱动入门,建议收藏!

    Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...形如: i2c_device_match会管理I2C设备和I2C总线匹配规则,这将和如何编写I2C驱动程序息息相关。 2....Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter, i2c_adapter 结构体定义在 include/linux/i2c.h 文件中,结构体内容如下: /*...I2C驱动:对应的就是I2C设备的驱动程序I2C设备:是具体硬件设备的一个抽象。 I2C适配器:用于I2C驱动和I2C设备间的通用,是SOC上I2C控制器的一个抽象。...0; } /* i2c 驱动的 remove 函数 */ static int xxx_remove(struct i2c_client *client) { /* 函数具体程序 */

    3.1K20

    Linux系统驱动之使用GPIO模拟I2C的驱动程序分析

    视频观看 百问网驱动大全 使用GPIO模拟I2C的驱动程序分析 参考资料: i2c_spec.pdf Linux文档 Linux-5.4\Documentation\devicetree\bindings...\i2c\i2c-gpio.yaml Linux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txt Linux驱动源码 Linux...-5.4\drivers\i2c\busses\i2c-gpio.c Linux-4.9.88\drivers\i2c\busses\i2c-gpio.c 1....回顾I2C协议 1.1 硬件连接 I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。...驱动程序分析 3.1 平台总线设备驱动模型 3.2 设备树 对于GPIO引脚的定义,有两种方法: 老方法:gpios 新方法:sda-gpios、scl-gpios 3.3 驱动程序分析 1.

    3.2K32

    Linux系统驱动之I2C视频介绍

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...I2C软件框架 以I2C接口的存储设备AT24C02为例: APP: 提出要求:把字符串"www.100ask.net"写入AT24C02地址16开始的地方 它是大爷,不关心底层实现的细节 它只需要调用设备驱动程序提供的接口...我们讲什么 3.1 对于Linux 从上到下: 先讲I2C协议 APP可以通过两类驱动程序访问设备 I2C设备自己的驱动程序 内核自带的i2c-dev.c驱动程序,它是i2c控制器驱动程序暴露给用户空间的驱动程序...(i2c-dev.c) I2C Device Driver I2C设备自己的驱动程序 内核自带的i2c-dev.c驱动程序,它是i2c控制器驱动程序暴露给用户空间的驱动程序(i2c-dev.c)...I2C Controller Driver 芯片I2C控制器的驱动程序(称为adapter) 使用GPIO模拟的I2C控制器驱动程序(i2c-gpio.c) 3.2 对于单片机/裸机 从上到下

    2.3K40

    Linux I2C 驱动入门,建议收藏!!!

    第一时间看干货文章 1 Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...形如: i2c_device_match会管理I2C设备和I2C总线匹配规则,这将和如何编写I2C驱动程序息息相关。 2....Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter, i2c_adapter 结构体定义在 include/linux/i2c.h 文件中,结构体内容如下: /*...I2C驱动:对应的就是I2C设备的驱动程序I2C设备:是具体硬件设备的一个抽象。 I2C适配器:用于I2C驱动和I2C设备间的通用,是SOC上I2C控制器的一个抽象。...0; } /* i2c 驱动的 remove 函数 */ static int xxx_remove(struct i2c_client *client) { /* 函数具体程序 */

    2.7K20

    LinuxI2C驱动框架分析

    Linux总线设备框架的工作原理 如果想要弄清楚I2C驱动框架,必须深刻的理解Linux的总线设备框架。之所以会形成这样的框架,很重要的原因是为了代码的复用性。...因为驱动和设备的关系是一对多的,对于相同类型的不同的设备,可共用同一套驱动程序接口。为了提高驱动的可移植性,Linux抽象出一套管理资源的函数。...3.LinuxI2C驱动程序的体系结构 ---- 对于Linux下的I2C驱动,其体系结构的组成主要分为三个部分 (1)I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法...底层的操作 4.GC0328摄像头I2C实例分析 ---- 对于摄像头驱动程序,首先要知道如何让摄像头能够正常工作。...到这里,一个I2C完整的传输流程就完成了。 5.总结 ---- 对于I2C完整的传输协议,最重要的是弄清楚总线驱动程序的框架,因为I2C也是属于总线框架。

    4.8K11

    Linux驱动之I2C子系统剖析

    I2C从机的驱动程序 给用户提供调用接口 内核提供两种方式来实现设备驱动: 第一种是内核默认实现的通用型的I2C设备驱动,位于drivers/i2c/i2c-dev.c中。...这种方式仅仅只是封装了I2C的基本操作,相当于只是封装了I2C的基本时序,向应用层只提供了I2C基本操作的接口,该接口通用于所有的I2C设备。...I2C核心层 注册I2C总线 由内核开发人员编写的,不涉及具体硬件 给驱动编程人员提供编程接口 I2C总线驱动层 是I2C主机适配器的驱动程序 初始化I2C适配器(控制器) 实现操作方法:根据I2C操作时序进行操作...= i2c_device_remove, .shutdown = i2c_device_shutdown, .pm = &i2c_device_pm_ops, }; 根据Linux...核心层分析可知,I2C总线是根据id_table进行匹配,所以这里并不会按照常规的Linux驱动模型进行match后probe,况且这个驱动里也没有probe方法。

    6.6K20

    第019课 I2C协议详解及裸机程序分析

    我们现在来讲I2C控制器怎么写,它是I2C程序中最核心的地方,我们要先构造几个结构体,这几个结构体放在i2c_controller.h里面。...初始化完成后,就可以调用do_master_tx写I2C从机了,这个函数仅仅启动I2C传输,然后等待,直到数据在中断服务程序中传输完毕后再返回。...IICCON = (1<<7) | (0<<6) | (1<<5) | (30<<0); 第006节_EEPROM编程和测试代码 从设备程序,只涉及到两个函数分别是:从设备的写函数,从设备的读函数。...i2c_transfer */ err = i2c_transfer(&msg, 2); if (err) return err; return 0; } I2c_test测试程序如下所示...第007节_测试测试中,出现问题和解决办法: a 中断没产生 : 未配置GPIO用于IIC功能 解决方法: 配置引脚用于I2C b.

    1.4K20

    【分享】i2c地址0x80导致Linux i2c驱动的probe函数不能被执行

    作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0 在给Xilinx Versal的Linux...检查编译过程,i2c驱动被编译成了ko文件。 检查编单板的文件系统,i2c驱动已经在文件系统中。 手动加载ko文件,linux报告驱动已经存在。...卸载驱动后,再手动加载ko文件,执行正常,linux没有报告错误。检查内核输出,没有probe里的printk打印,即使是err级别的打印信息。...交换能正常加载的i2c驱动和新驱动的i2c地址,新驱动的probe函数能被执行,原来能正常加载的i2c驱动的probe函数也不能被执行。这说明probe和地址有关。...检查linux内核信息,由警告说0x80是无效地址。 原来设备树根据厂商的手册,把i2c的地址设置成了0x80。0x80可能是计算了r/w位的值,真实地址是0x40。

    1.9K30

    程序测试

    接触过前后端分离的Web 或 App 项目的测试人员,在小程序产品的测试中是很容易上手的。3. 测试过程中的问题定位发现问题时,需要快速判断是前端,后端,又或是第三方组件的问题。...异常测试网络测试可以参考APP的测试,比如网络状态和环境的切换,断网,通过设置代理进行弱网的测试等等。主要是考察小程序在各种网络状况下的运行情况8....所有行为都必须经过用户授权或有明显提示9.接口测试目前大部分都是微服务的架构,所以前端的小程序调用的是后台的接口,所以要对接口进行测试,这里的接口测试和平时的接口测试是一样的,没有特别之处。...12.渗透测试在进行小程序渗透测试,通过模拟黑客攻击的形式,对小程序业务系统进行渗透测试,发现可导致业务数据泄露,资产受损、数据被篡改等各类安全风险。...小程序需要经过几轮的循环测试和修复,开发人员每次修复Bug完成之后会添加新的程序包给到测试人员,测试人员则需要通过微信Web开发者工具删除旧版本的项目程序,重新添加新版本的程序包,然后编译调试

    1.7K20

    Linux测试必备

    Linux有三种网络方式:Bridged桥接模式,nat,Host-Only仅主机模式 修改了网络方式需要重启 远程登录工具:xshell,secureCRT,putty logout – 退出 reboot...这个目录存放着最经常使用的命令,例如cp、mv、ls等 /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。 /dev dev是Device(设备)的缩写。...该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...几乎所有的应用程序都需要用到这些共享库。...下开发和编译应用程序所需要的头文件 /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序 /sbin, /usr/sbin 则是给 root 使用的指令 /usr/bin 系统用户使用的应用程序

    1.6K10

    Linux TWI开发指南

    、数据结构 │   ├── i2c-sunxi-test.c // Sunxi平台的i2c设备测试代码,5.4下暂未适配 ├── i2c-core.c // I2C子系统核心文件,提供相关的接口函数 ├...用户空间,包括所有使用I2C 设备的应用程序;2. 内核,也就是驱动部分;3. 硬件,指实际物理设备,包括了 I2C 控制器和 I2C 外设。...其中,Linux 内核中的 I2C 驱动程序从逻辑上又可以分为 6 个部分: I2C framework 提供一种 “访问 I2C slave devices” 的方法。...I2C framework 也通过字符设备向用户空间提供类似的接口,用户空间程序可以通过该接口访问从设备信息。...下面这个程序直接读取 /dev/i2c-* 来读写 i2c 设备: #include #include #include <linux/i2c-dev.h

    2.5K30

    Linux应用开发【第十二章】I2C编程应用开发

    简述I2Clinux驱动 1) I2C核心层: 2) I2C总线驱动层: 3) I2C总线驱动层: 12.3 在linux应用层使用I2C 12.3.1 如何使用I2C tools测试I2C外设 1...在内核中,驱动程序对下要完成I2C总线上的I2C通信协议,收集硬件传感器的I2C数据并封装成标准的linux操作接口供用户空间的应用程序操作。...对上要实现可以通过linux程序把数据流组织成I2C协议下发到硬件层的相应的外设传感器中。 ​ 在用户空间的应用程序中,应用工程师完全可以不必理会I2C协议的详细规定。...答案是有的,而且这个测试工具的代码还是开源的,它被广泛的应用在linux应用层来快速验证I2C外设是否可用,为我们测试I2C设备提供了很好的捷径。...12.3.1 如何使用I2C tools测试I2C外设 1) I2C tools概述: ​ I2C tools包含一套用于Linux应用层测试各种各样I2C功能的工具。

    3.7K31
    领券