本文基于i2c总线,简述了设备树的使用方式 @目录博客说明开发环境1. 如何使用设备树1.1 u-boot支持设备树1.2 Linux内核支持设备树1.3 如何在开发板中使用设备2. 设备树介绍2.1 设备树中的设备驱动节点2.2 设备树匹配流程2.2.1 以i2c匹配为例2.2.2 设备树匹配下的程序模板2.3 设备树中的设备节点转换附录参考资料博客
转载 2023-07-16 22:05:28
355阅读
写在开始,因工作需要,对I2C的spec文档进行研读,主要工作就是将规范翻译为中文并补充自己的理解,根据每个章节内容进行划分,便于以后查阅,如有错误和疑问欢迎指正交流。目录1.规范介绍:INTRODUCTION TO THE I2C-BUS SPECIFICATION2.基本概念:THE I2C-BUS CONCEPT3.一般特征:GENERAL CHARACTERISTICS4.位传输:BIT
Linux I2C设备 Linux操作系统是一种开放源代码的操作系统,广泛应用于各种设备上。它的灵活性和可定制性使其成为了许多嵌入式系统和物联网设备的首选。在Linux系统中,I2C(Inter-Integrated Circuit)总线协议被广泛使用来连接各种外设和传感器。本文将介绍Linux中I2C设备的基本概念和常用操作。 I2C是一种串行通信协议,允许多个设备在同一条总线上进行通信。在
目录1、现象2、原因3、解决方法4、相关博文1、现象        I2C死锁时表现为SCL为高,SDA一直为低。例如:1.1、正常情况该部分数据                       &nbs
一、I2C总线原理        I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成。I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以,而 I2C 是基于multi master机制,一条总线上可允许多个maste
一、简介 两线式串行总线,用于连接微控制器及其外围设备I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。二、技术性能 工作速率有100Kbit/s、400Kbi
当提供I2C设备文件时,用户空间可以通过设备文件直接操作设备。这里需要配置CONFIG_I2C_CHARDEV。static int __init i2c_dev_init(void){ int res; printk(KERN_INFO "i2c /dev entries driver\n"); res = register_chrdev_region(MKDEV(I2C_MAJ
原创 2023-06-01 10:25:59
328阅读
在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – i2c tools。先到lm-sensors下載soure code
转载 2016-11-06 16:51:00
1995阅读
2评论
   Linux I2C驱动体系结构主要由3部分组成,即I2C设备驱动,I2C核心层、I2C总线驱动。设备驱动层主要是针对不同的I2C硬件从设备编写的驱动程序,I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可以理解为软件上抽象出来的i2c接口,这个接口可以对应I2C总线控制器接口,也可以对应用用GPIO模拟的I2C控制器接口。I2C核心层是I2C总线驱动和I2C设备驱动的中
转载 2023-07-11 22:58:10
157阅读
<Android开发> Android开发工具- 之-I2C TOOLS工具使用前言:在底层开发时,有时需要借助一些工具对驱动进行调试验证。这次讲解的使用的工具是I2C_TOOLS,该工具主要是用来调试验证I2C设备的。接下来看看如何使用吧。1、获取I2C工具 下载地址:I2C_TOOLS 可以根据自己的需要下载相应的版本,作者为了在android编译,编写的android.mk文件能使用,选择了
I2CHelperI2CHelper是一个简单的I2C调试工具,它可以用来设置读取、设置相关的寄存器。功能和著名的i2c-tool类似。准备工作在这里主要介绍如何在android里面进行使用。首先,由于涉及到权限问题,我们需要通过adb进行root以及remount,如:adb root adb remount接下来,就可以将I2CHelper push到/system/bin里面了:adb pu
本文分析 mpu6050_drv.cI2C 驱动部分的​module_i2c_driver​()这个宏来注册i2c_driver,这个宏在/include/linux/i2c.h定义,注释上说用它来注册一个i2c_driver,并通过调用它代替module_init() 我们可以看下它的原形:#define module_i2c_driver(__i2c_driver) \module_dr
原创 2022-02-24 16:09:03
1100阅读
本文分析 mpu6050_drv.cI2C 驱动部分的module_i2c_driver()这个宏来注册i2c_driver,这个宏在/include/linux/i2c.h定义,注释上说用它来注册一个i2c_driver,并通过调用它代替module_init()我们可以看下它的原形:#define module_i2c_driver(__i2c_drive...
原创 2021-07-09 13:44:47
4185阅读
Linux I2C设备驱动 在现代计算机系统中,I2C(Inter-Integrated Circuit)是一种广泛应用的串行总线,用于在不同设备之间传输数据。Linux操作系统为开发人员提供了许多I2C设备驱动程序,以支持各种硬件设备的通信。本文将探讨Linux中的I2C设备驱动及其功能。 首先,让我们了解一下I2C是什么。I2C是一种多主多从的通信协议,允许多个设备通过共享两个数据线进行
客户加了一个MCU来控制主板电源,该MCU作为pnx8735的一个i2C设备,接收来自pnx8735的i2C的命令。因此,需要增加一个设备驱动程序,用来控制该MCU工作。. 在stb225/src/open/comps/下增加新的设备驱动模块,phStbMCU. 把该模块加入到linux编译列表中  stb225/etc/roster.mk  增加phStbMCU,_phSt
原创 2010-05-04 17:24:59
4383阅读
手把手教你写i2c驱动注意: i2c_driver里面的probe函数需要实现1 字符设备类的注册2 字符设备文件的生成(需要研究一下)
原创 2022-07-26 14:56:14
136阅读
Linux作为一个开源操作系统,广泛应用于各种设备和系统中。在Linux系统中,设备之间的通信是通过各种接口和协议进行的。其中,I2C(Inter-Integrated Circuit)是一种常见的串行通信协议,用于连接主控制器和各种外设。 在Linux系统中,通过使用相应的驱动程序和工具,可以方便地实现对I2C设备的控制和通信。其中,红帽(Red Hat)作为一家知名的Linux发行版提供商,
原创 5月前
47阅读
i2c设备驱动,在i2c子系统中的实现分为三部分,最上层是i2c驱动,中间层是i2c核心层,底层是i2c的总线,如果细分,底层i2c的总线还可以分离出i2c的适配器,所以也可以将i2c设备驱动的子系统分为四个部分,i2c驱动,i2c核心层,i2c的总线,i2c适配器。在i2c子系统中所有的i2c驱动都挂在i2c的总线上,实现i2c的驱动的时候,分为左右两个部分,左边链表挂i2c设备的客户端即实现了
这几天解决 STM32 MCU的I2C 总线占用(bus BUSY) 问题,觉得是不错的学习,从文中可得知I2C问题的思考逻辑,文末并指出经常出错的问题点,在此分享给大家。问题描述STM32F207 MCU有三组I2CI2C1~I2C3,此项目的初版硬件使用I2C1接三颗chip (DSP/Codec/EEPROM),运作良好。新硬件把Codec/EEPROM移到I2C3,DSP还是留在I2C1
一、粉丝提问i2c设备树和驱动是如何匹配以及何时调用probe的?粉丝手里的I2C外设是ov5640,一个摄像头。粉丝提问,一口君必须安排。二、问题分析设备树信息如下:ov5640: ov5640@3c { compatible = "ovti,ov5640"; reg = <0x3c>; pinctrl-names = "default"; pinctrl-0 =
  • 1
  • 2
  • 3
  • 4
  • 5