window下怎么访问主板的i2c设备。 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 50%
Bbs6
本版专家分:9949
Blank
红花 2015年8月 硬件/嵌入开发大版内专家分月排行榜第一
2015年7月 VC/MFC大版内专家分月排行榜第一
2015年5月 VC/MFC大版内专家分月排行榜第一
2015年4月 VC/MFC大版内专家分月排行榜第一
2015年3月 VC/MFC大版内专家分月排行榜第一
2015年1月 硬件/嵌入开发大版内专家分月排行榜第一
2013年12月 VC/MFC大版内专家分月排行榜第一
2013年11月 VC/MFC大版内专家分月排行榜第一
2013年6月 VB大版内专家分月排行榜第一
2013年5月 VB大版内专家分月排行榜第一
2013年1月 VB大版内专家分月排行榜第一
2012年12月 VB大版内专家分月排行榜第一
Blank
黄花 2015年9月 VC/MFC大版内专家分月排行榜第二
2015年7月 硬件/嵌入开发大版内专家分月排行榜第二
2014年5月 VC/MFC大版内专家分月排行榜第二
2014年3月 VC/MFC大版内专家分月排行榜第二
2013年10月 VB大版内专家分月排行榜第二
2013年7月 VB大版内专家分月排行榜第二
2012年5月 VB大版内专家分月排行榜第二
2012年4月 VB大版内专家分月排行榜第二
2012年2月 VB大版内专家分月排行榜第二
2011年11月 VB大版内专家分月排行榜第二
Blank
蓝花 2015年11月 VC/MFC大版内专家分月排行榜第三
2015年6月 VC/MFC大版内专家分月排行榜第三
2015年2月 VC/MFC大版内专家分月排行榜第三
2014年1月 VC/MFC大版内专家分月排行榜第三
2012年3月 VB大版内专家分月排行榜第三
2011年12月 VB大版内专家分月排行榜第三
2011年10月 VB大版内专家分月排行榜第三
Bbs4
本版专家分:1119
Blank
Github 绑定github第三方账户获取
I2C设备的无驱访问
做中间件,最首要的原则就是内聚,由于驱动程序的特殊性,不可避免的要开源,这对知识产权与中间件的可移植性都有负面的影响。但很多情况下,Kernel对于通用<em>设备</em>都提供了User Space的<em>访问</em>接口,可以在应用程序中直接<em>访问</em><em>设备</em>,例如,本文将要提到的<em>i2c</em>-dev,就避免的在中间件发布时,提供驱动程序的问题。 <em>i2c</em>-dev提供了<em>i2c</em><em>设备</em>的/dev接口,该用户层接口基于<em>i2c</em> adapter<em>访问</em>连接
字符设备驱动之I2C设备驱动(1)
一、概述         谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C<em>设备</em>当作一个普通的字符<em>设备</em>来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。 第一种方法的好处(对应第二种方法的劣势)有:         ●
IIC设备驱动程序(九)————用户态直接访问IIC设备
用户态直接<em>访问</em>IIC<em>设备</em>实例
在Linux内核模块中操作I2C设备
近期公司项目较为空闲,抽空做了一些学习性质的研发内容,其中涉及到在Linux内核模块中使用I2C对外部器件进行控制的操作。虽然在Linux中操作使用I2C<em>设备</em>并不复杂,但本人接触Linux内核驱动开发时间并不算长,此次学习中也算较为系统的了解了Linux中对I2C<em>设备</em>的操控方式,谨在此做下记录。 通过Linux内核文档中关于操作I2C<em>设备</em>的文章后不难看出Linux中注册使用I2C<em>设备</em>一般
Linux应用程序直接调用I2C控制器实现的设备驱动
参考内核源码里的dev-interface文档. 在linux内核里<em>i2c</em>控制器驱动好后, <em>i2c</em><em>设备</em>驱动方式通常由<em>设备</em>驱动通过控制器读写<em>i2c</em><em>设备</em>数据、再提供应用程序调用和<em>访问</em>的接口. 除此<em>设备</em>驱动方工外,驱动好的<em>i2c</em>控制器也可提供应用程序直接调用控制器收发<em>i2c</em><em>设备</em>数据的接口(dev-interface).这接口适用于一些没涉及到中断的简单<em>设备</em>,如dht12, eeprom等<em>设备</em>...
Linux系统中用户空间访问I2C接口设备
嵌入式Linux系统中,用户空间<em>访问</em>I2C接口<em>设备</em>代码示例,有需要的可以参考。
Linux下i2c设备的注册过程
在linux内核下,我们通过<em>i2c</em>_add_driver注册<em>i2c</em><em>设备</em>,注册成功之后会调用我们写好的probe函数,下面就来梳理一下<em>i2c</em><em>设备</em>从注册到调用probe的过程。 注册<em>i2c</em><em>设备</em>,传入的参数是<em>i2c</em>_driver结构体指针。 static int __init bq24296_battery_init(void) { int ret; ret = <em>i2c</em>_add_
Linux I2C从设备树信息查看与添加方法
下面介绍如何查看一个<em>i2c</em>-adapter对应的<em>设备</em>树文件,<em>i2c</em>-client对应的<em>设备</em>树文件 我们知道I2C-client的信息和adapter的一些信息如寄存器等信息是放在<em>设备</em>树里面的,那么在<em>设备</em>树的什么位置呢?在arch/arm/boot/dts/xxx.dts 在默认的文件系统中查看默认只提供了一个,也是第0组的I2C,我们需要的其他组需要自己添加。   实际上,我们从S...
在kernel里添加一个i2c外围设备
在kernel里添加一个已知芯片地址的外围<em>设备</em>的驱动,主要包含申请注册使用等 1. 定义主要变量: static struct <em>i2c</em>_client *key_ic_client; static struct <em>i2c</em>_board_info key_ic_info = { /* 0x11 is the slave ic addr */ I2C_BOARD_INFO("carpl
linux 驱动调试时在线读写I2C寄存器的方法
调试I2C<em>设备</em>时经常需要修改寄存器的值,通常的方法是修改-》编译-》烧写-》重启,哪怕改一个寄存器也要这样折腾一下,很消耗时间,下面提供一种在线修改寄存器的方法,在终端中敲命令就可以写寄存器,不要上面那些步骤.       这个方法的基础是读写/proc文件系统,不熟悉这个的可以自行学习,下面分步骤说明一下这种方法,注意这只是一个框架如果相拥在自己的系统上可能还有一些细要适配。 1.创建/pr
如何在两个Arduino开发板之间使用I2C总线进行通信
在之前的文章中,我们介绍了Arduino之间的SPI通信。今天我们将学习另一种串行通信协议:I2C(内部集成电路)。比较I2C和SPI,I2C只有两条线,而SPI使用四条,I2C可以有多个主机和从机,而SPI只能有一个主机和多个从机。因此,如果项目中有多个微控制器需要作为主机,那么就采用I2C。 I2C通信通常用于与陀螺仪、加速度计、气压传感器、LED显示器等进行通信。 在本篇文章中,我们将使用I...
Android平台读写i2c设备开发笔记
在android开发和移植过程中,有时需要对某<em>设备</em>进行读写,但系统可能并未提供相应的服务。我们就需要自己开发硬件<em>访问</em>服务来控制<em>设备</em>。下面的例子是读写最简单的<em>i2c</em><em>设备</em>eeprom的流程, <em>i2c</em>的驱动编写有两种方式,一种是利用系统提供的<em>i2c</em>-dev.c来实现一个<em>i2c</em>适配器的<em>设备</em>文件,然后通过在应用层操作I2C适配器来控制I2C<em>设备</em>;另一种是为I2C从<em>设备</em>独立编写一个<em>设备</em>驱动,不需要<em>i2c</em>-de
I2C设备地址详解
转自:http://blog.csdn.net/zhijianjingling00/article/details/9294785 结论: I2C<em>设备</em>的写地址 = I2C<em>设备</em>地址 I2C<em>设备</em>的读地址 = (I2C<em>设备</em>地址 例如: #define     MAX_17040_BATTERY_I2C_ADDR        (0x36) #define     MAX_
应用层读写i2c设备寄存器
在配置<em>i2c</em>从<em>设备</em>寄存器时往往需要修改驱动中的初始化函数来修改寄存器的值,这样往往需要重新编译内核,其实可以使用<em>i2c</em>驱动提供给应用层的接口函数ioctl来在命令行修改寄存器,只需要编写一个类似<em>i2c</em>测试程序的程序文件,使用int main(int argc, char **argv) 来向程序传递参数即可实时读写从<em>设备</em>的寄存器,工作队列(workqueue)可以实现多个寄存器的取值。 #inc
获得Windows主机的主机序列号
获得Windows主机的主机序列号
应用层读写取i2c设备代码可读写8位,16位设备地址小工具
应用层读写取<em>i2c</em><em>设备</em>代码可读写8位,16位<em>设备</em>地址小工具及源码 平常的I2C只能读8位,此工具可读写8,16位寄存器地址
amlogic平台android uboot中添加i2c设备实现i2c的读写
最近因为项目项目需求,要把MTK平台的一个<em>设备</em>移植到amlogic平台。需要分别在uboot阶段和android系统起来以后的阶段,使用<em>i2c</em>来通知这个<em>设备</em>进行操作。这其中就涉及到两点: 1. 在uboot阶段初始化<em>i2c</em>。 2. 对<em>i2c</em>读写接口的移植。 接下来我会用最简单的语言来描述,如何在uboot中添加<em>i2c</em>的<em>设备</em>。我不会用大量的使用代码来讲解,因为这没用意义,不同平台之间,相关文件、
Linux用户空间增加i2c设备
每个<em>i2c</em>总线目录下面会提供两个文件节点: new_device, delete_device 内核必须要知道在<em>设备</em>挂在哪个总线和<em>设备</em>地址才能实例化该<em>设备</em>。 具体的做法如下: 增加“eeprom”<em>设备</em>,地址为0x50:echo eeprom 0x50 > /sys/bus/<em>i2c</em>/devices/<em>i2c</em>-3/new_device删除 “eeprom”<em>设备</em>:echo 0x50 > /sys/bu
LinuxI2C驱动--从两个访问eeprom的例子开始
本小节介绍两个在linux应用层<em>访问</em>eeprom的方法,并给出示例代码方便大家理解。第一个方法是通过sysfs文件系统对eeprom进行<em>访问</em>,第二个方法是通过eeprom的<em>设备</em>文件进行<em>访问</em>。这两个方法分别对应了<em>i2c</em><em>设备</em>驱动的两个不同的实现,在后面的小结会详细的分析。 1. 通过sysfs文件系统<em>访问</em>I2C<em>设备</em> eeprom的<em>设备</em>驱动在/sys/bus/<em>i2c</em>/devices/0-0050/目
I2C设备地址(7位地址左移)
鹏程万里--扬帆起航 目录视图 摘要视图 订阅 从创业到再就业,浅述对程序员职业生涯的看法    征文 | 你会为 AI 转型么?    赠书:7月大咖新书机器学习/Android/python I2C<em>设备</em>地址 2013-04-16 09:10 10925人阅读 评论(0) 收藏 举
amlogic平台android 系统linux内核中添加i2c设备实现i2c的读写
上一篇,我介绍了如何在uboot中添加<em>i2c</em><em>设备</em>,以及移植<em>i2c</em>的读写接口。简单来说uboot阶段使用<em>i2c</em><em>设备</em>和平台关联性比较大,但不同平台套路是差不多的。你可以将uboot阶段看作是引导android系统起来的另外一个系统。而系统起来后在kenerl中添加<em>i2c</em><em>设备</em>就和uboot阶段差别非常大,内容要多很多。我仍然不会贴一大段一大段的代码上来,这没什么意义。我的目的更多的是给没玩过<em>i2c</em>的小伙伴
Linux i2c子系统应用之Linux ARM嵌入式i2c通信(用i2c设备总线完成i2c设备寄存器的配置)
一、前言 本文主要分为三个部分,第一部分,介绍<em>i2c</em>总线应用的背景以及本文编译测试需要的开发环境;第二部分,介绍主要的源码及相关函数接口;第三部分,测试方法以及详细测试结果,<em>i2c</em>从<em>设备</em>的7bit器件地址可以在<em>设备</em>的datasheet查找。文章的最后会给大家分享本文的所有源码。 二、开发背景和环境 在做嵌入式相关工作时,需要配置<em>i2c</em>从<em>设备</em>的寄存器是常有的事...
android驱动i2c器件的设备树配置
做驱动的要经常配置<em>i2c</em>,而配置<em>i2c</em>无非就是确定<em>i2c</em>器件挂在哪一个<em>i2c</em>总线上,以及<em>i2c</em>的具体地址.下面以高通8909平台为例子说一下   确定<em>i2c</em>机器挂在哪一个<em>i2c</em>总线上 从原理图得到SDA,SCL对应的gpio,我这个gpio为gpio6,gpio7 在msm8909-pinctrl.dtsi文件中找到该gpio对应的<em>i2c</em>总线,如下,可见其对应的<em>i2c</em>总线是<em>i2c</em>_1 ...
18 i2c控制器之应用程序的调用
通常情况下,<em>i2c</em><em>设备</em>驱动里应是通过调用已驱动好的<em>i2c</em>控制器来实现<em>i2c</em><em>设备</em>的操作的。但<em>i2c</em>控制器驱动里也直接提供应用程序调用的接口,可用于实现应用程序直接读写操作的<em>设备</em>。 //注意这种方法只适用于仅需读写操作的简单<em>设备</em>. 如eeprom, dht12这些<em>设备</em>.使用这种方法前,除<em>i2c</em>控制器需要驱动好外,内核里也需要选上:make menuconfig ARCH=arm64 CROSS_CO
I2C设备地址注意
我们在调I2C<em>设备</em>驱动的时候,datasheet里会给出8bit I2C地址,但是这个地址一般是带读写位的(最低位)。我们在编写驱动时往往是使用实际的<em>设备</em>地址(不带读写位),所以我们在编程时需要对地址进行右移一位,即去掉最后一位读写位。
I2C驱动及设备节点使用讲解
装载于:http://blog.csdn.net/yhf19881015/article/details/8188809
i2c 驱动四:sysfs文件系统
sysfs 介绍和 <em>i2c</em> 与 sysfs 结合使用
linux shell通过i2cget命令获取I2C器件寄存器的值
以下内容为原创,欢迎转载,转载请说明来源:http://blog.csdn.net/masterbee/article/details/78676040 最近在写一段linux shell脚本,通过I2C控制一颗IC,获取它寄存器的值,它寄存器的值即表示想要获取的电压。 先解释一下: sudo <em>i2c</em>get -y -f 0 0x2a 0x10表示用root权限通过<em>i2c</em>get命令获取地址为0...
I2C设备地址查询
cd  /sys/class/<em>i2c</em>-dev/<em>i2c</em>-2/device/2-0018 //不同的系统路径略有差异   0x18一般为该<em>设备</em>地址. cat name//显示<em>i2c</em><em>设备</em>名称    /sys/class/<em>i2c</em>-dev   //目录显示系统拥有的<em>i2c</em>总线<em>i2c</em>-0 <em>i2c</em>-1 <em>i2c</em>-2 等 /sys/class/<em>i2c</em>-dev/<em>i2c</em>-2/device   //目录下显示i
I2C总线被占用
转发网易DP先生关于I2C的博文,便于学习时查找 最近发现<em>访问</em>I2C<em>设备</em>时,主<em>设备</em>复位可能会引起i2C死锁,表现为SCL为高,SDA一直为低,后发现是从<em>设备</em>拉死<em>i2c</em>总线,从<em>设备</em>断电之后,SDA变高,上电后通 信正常。后来通过拉低SCL信号线,SDA就会自动变成高电平,<em>i2c</em>总线恢复。     在正常情况下,I2C总线协议能够保证总线正常的读写操作。但是,当I2C主<em>设备</em>异常复位时(看门狗动
树莓派与i2c设备的通信
最近搞树莓派,这里对学习过程中遇到的问题加以记录,感谢网上各位大神们的贡献: 首先,需要开启I2C,这里,我使用的是树莓派B+,开启方法比较简单,参考:http://www.embed-net.com/thread-140-1-1.html 开启后,安装一个用于测试<em>i2c</em><em>设备</em>的工具,<em>i2c</em> tools, 安装命令: sudo apt-get install <em>i2c</em>-tools 将i
I2C 总线原理与架构(转)
一、I2C总线原理        I2C是一种常用的串行总线,由串行数据线SDA 和串线时钟线SCL组成。I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何<em>设备</em>的通信必须由主机发起才可以,而 I2C 是基于multi master机制,一条总线上可允许多个master。       系统的I2C模块分为I2C总线控制器和I2C<em>设备</em>。I2C总线控制器是CP...
在mt6737 M0上添加一个I2C驱动的全套流程(3)------android 5.1之后如何修改设备节点权限
android 5.1之后<em>设备</em>节点权限需要修改如下7个文件,才能让上层的apk应用读到底层的<em>设备</em>节点: //更改te文件里面的<em>设备</em>名:eg:rt5651xctx cljcc@szhxc:~/satellite6737/trunk$ grep -rn &quot;rt5651xctx_device&quot;   1.device/mediatek/common/sepolicy/app.te:21:allow a...
I2C总线设备注册过程
转自 http://lhsblog01.blog.163.com/blog/static/1020045192010221103944423/<em>i2c</em> bus <em>i2c</em>总线使用 platform_device实现, 总线驱动用platform_driver实现. 在注册<em>i2c</em>_bus时,会把与这个BUS相连的所有<em>设备</em>记录到全局变量中,再配置 mux register打开sda, scl .最
怎么写一个i2c设备设备
在上一次的博客中我们在<em>设备</em>树文件中写入了Mpu6050的<em>设备</em>信息,那么这个<em>设备</em>是信息是怎样来的呢,现在先来补充一下怎样从数据手册得到我们需要的数据。 首先看看内核源码中已经写好的别的<em>i2c</em><em>设备</em>树是<em>怎么</em>写,了解我们需要找的数据: <em>i2c</em>@13860000 { #address-cells = &amp;lt;1&amp;gt;; #size-cells = &amp;...
i2c ko 加载成功但是设备树没有能创建
编译kernel之前勾选如下几项
I2c设备初始化方法--通过总线编号初始化i2c设备
(本文的部分内容来源自Documentation/<em>i2c</em>/instantiating-devices) I2c不像PCI或是USB<em>设备</em>,它不能在硬件层被枚举,软件部分必须明确了解哪些<em>i2c</em><em>设备</em>连接到总线上了,以及哪些地址可用。因此,内核代码必须明确初始化<em>i2c</em><em>设备</em>。I2c初始化方式有4种: a)       通过总线编号初始化<em>i2c</em><em>设备</em>; b)       直接初始化<em>设备</em>; c)     
I2C总线协议和控制器解析
I2C总线协议 1.1 I2C总线知识 1.1.1  I2C总线物理拓扑结构       I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。 1.1.2
Linux i2c设备驱动添加
添加Linux 的 <em>i2c</em><em>设备</em>驱动 1、<em>设备</em>树的添加 一般添加在kernel/arch/arm64/boot/dts/xxx.dts文件中 &amp;amp;hs<em>i2c</em>_1 {                //这里的hs<em>i2c</em>_1的意思是该<em>设备</em>挂载在<em>i2c</em> 1总线上,该值需要由硬件的spec查询的来     status = &quot;okay&quot;;     testdevices@48{           ...
应用层读写I2C代码
可在应用层读写 8位,或者16位地址的I2C<em>设备</em>
设备树学习之(七)I2C设备的注册过程分析
开发板:tiny4412SDK + S702 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 busybox版本:busybox 1.25 目标: <em>设备</em>树中普通的节点都被注册为平台<em>设备</em>驱动中的“<em>设备</em>”,也是注册到 platform_bus_type 的,但是 <em>i2c</em>
android访问I2C接口
转载地址:http://my.oschina.net/f839903061/blog/134205 Java部分的代码:  package xxxxxxx.xx;  import android.app.Activity;  import android.os.Bundle;  import android.util.Log;  public c
I2C器件的从设备地址的设置
刚开始接触单片机,很多不懂,今天看到一条语句: #define WriteDeviceAddress 0xa0      //写器件地址 #define ReadDviceAddress 0xa1        //读器件地址 不明白这个0xa0与0xa1是<em>怎么</em>确定的,然后翻了一些资料以及上网搜索了相关问题。自己总结了关于从器件地址的确定的原理:      举个例子,如芯片
i2c adapter、i2c总线控制器、I2C bus(帖子)
<em>i2c</em> adapter是软件上抽象出来的<em>i2c</em>总线控制器接口 物理上一条<em>i2c</em>总线可以挂接多个硬件<em>设备</em>(slave),一个CPU可以挂接多条<em>i2c</em>总线(想象一下PCI总线) <em>i2c</em>总线控制器就是CPU<em>访问</em>I2C总线的硬件接口,也就是你说的那几个寄存器 Linux I2C框架搞那么复杂是为了通用性及为了符合Linux内核驱动模式而制定的。 简单点了, 你的开发板上有几个I2C接口
Linux 设备驱动模型,I2C驱动,sys文件系统(1)
Linux sys文件系统和驱动模型是紧密相关的,本系列以I2C驱动为例总结整理。
如何判断I2C从机的设备地址?
大家在使用Ginkgo USB-I2C适配器,有个非常重要的信息就是所控制的从机地址必须要知道,否则就无法正确的和I2C从机进行通信,一般来说,在I2C<em>设备</em>的数据手册中都会明确提出这个<em>设备</em>的I2C地址是多少,不过在有的时候,可能手边没有这个<em>设备</em>的地址信息,但是也想和它建立通信,这种情况<em>怎么</em>办呢?下面我们就可以用我们的适配器并配合我们提供的一个小工具来找到这个<em>设备</em>的地址。实现的基本原理,我们先假设这...
i2c 设备注册简易架构
已aw9523b 为例 模块初始化,卸载入口 module_init(aw9523b_init); module_exit(aw9523b_exit); static int __init aw9523b_init(void) { char ret=0; ret=<em>i2c</em>_add_driver(&amp;amp;aw9523b_driver); if(ret==0){ ...
应用层(用户模式)I2C驱动支持
应用层(用户模式)I2C驱动支持Linux下I2C<em>设备</em>控制方式分为driver层和应用层两种方式。driver层实现I2C<em>设备</em>控制要求了解I2C机制,调试和调用不方便。Linux还提供了应用层方式(ioctl)控制,这里简单介绍如何配置内核和支持I2C控制:要使用用户模式I2C,首先配置内核选项,选中I2C device inerface 详细参考(https://www.kernel.or
I2C从器件地址
指南针芯片和加速度、角加速度芯片用到了I2C通信。其中I2C的从器件地址(我只用到了7位的)的组成如下: 1byte = 7bit地址 + 1bit读写标志 注:1bit读写标志中,0-发送数据(写),1-请求数据(读)。   有的芯片手册上给的地址包括了1bit读写标志,有的数据手册上给的地址不包括1bit读写标志。举例如下: (1) 3轴数字指南针芯片HMC588
(4)LinuxI2C驱动--从两个访问eeprom的例子开始
本小节介绍两个在linux应用层<em>访问</em>eeprom的方法,并给出示例代码方便大家理解。第一个方法是通过sysfs文件系统对eeprom进行<em>访问</em>,第二个方法是通过eeprom的<em>设备</em>文件进行<em>访问</em>。这两个方法分别对应了<em>i2c</em><em>设备</em>驱动的两个不同的实现,在后面的小结会详细的分析。
i2c设备注册(动态注册和静态注册)以及i2c驱动注册过程
一、<em>i2c</em><em>设备</em>驱动注册 <em>i2c</em><em>设备</em>驱动注册的调用流程为:xxx_init(<em>设备</em>驱动里所定义)—–&amp;gt;<em>i2c</em>_add_driver—–&amp;gt;<em>i2c</em>_register_driver 下面直接看源码,xxx_init(<em>设备</em>驱动里所定义)源码如下: static int egalax_<em>i2c</em>_ts_init(void) { int result; result = misc_...
arduino读取I2C总线上连接设备的地址
这两天研究了一下I2C总线,发现有好多I2C<em>设备</em>的地址并不知道,当然有的可以在网上查的到,但是如果遇到用过的I2C器件,<em>设备</em>地址被修改过,那么通过下面的代码可以检测出<em>设备</em>的地址。 操作步骤 :     1、将一个I2C器件连接至arduino的SDA、SCL引脚(UNO R3 连接A4、A5)     2、将如下代码烧入arduino,打开串口界面即可得到I2C<em>设备</em>的地址。 #includ
轻松学ARM系列之I2C总线
作者:熊老师,华清远见嵌入式学院讲师。 今天我们来一起学习,arm裸机中对I2C<em>设备</em>学习。包括GPIO,IIC控制器学习。 一、总体架构图 二、I2C操作的一般步骤 2.1  查看s5pv210开发板的I2C相关的硬件原理图 开发板上IIC实际连接电路,AT24C02为EEPROM,大小为2k位,256字节 核心板对应的原理图 2.2  设置GPIO寄存器为I2C功能
Linux I2C工具查看配置I2C设备
在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – <em>i2c</em> tools。先到lm-sensors下載soure code,然後cross compile成arm的執行檔,就可以放到板子來試試看了。 <em>i2c</em>-tools中含有四個執行檔 <em>i2c</em>detect – 用來列舉I2C bus和上面所有的裝置 <em>i2c</em>dump – 顯示
查看树莓派I2C设备是否正常
前言在进行II2相关程序的开发时候,很多时候我们必须要确认硬件是否连接征程,<em>设备</em>是否按照我们的设想正常工作,<em>设备</em>地址多少。因此我们需要一个I2C tools来帮助我们linux下安装在控制台输入:sudo apt-get install <em>i2c</em>-tools等待安装成功,需要我们使用sudo <em>i2c</em>detect -l命令来查看是否安装成功。使用I2C<em>设备</em>查询:sudo <em>i2c</em>detect -y 1命令
win8 i2c设备访问
各位:rnrn 在Win8上,我想写一个驱动,用来<em>访问</em><em>i2c</em><em>设备</em>,现在已经下载到SkeletonI2C Sample Driver,rnrn 在该例子中需要更改HWID,该HWID是指哪个ID呢?rnrn 该例子应该<em>怎么</em>进行更改,才能<em>访问</em>到指定的<em>设备</em>。rnrn 或者有可正常工作的I2C驱动供我参考。rnrn 谢谢!rn
i2c驱动调试经验
http://blog.csdn.net/cmm20071020/article/details/7179958
2.6内核下写I2C设备驱动
        I2C核心是内核自带的,一般不需要修改,它提供了I2C总线驱动和<em>设备</em>驱动的注册、注销方法,I2C通信方法上层的、与具体适配器无关的代码以及探测<em>设备</em>、检测<em>设备</em>地址的上层代码等。        adapter驱动是硬件相关的,不同的soc有不同的adapter驱动,它操作IIC控制器,adapter的<em>i2c</em>_algorithm成员实现了一套通信方法,adapter利用<em>i2c</em>_algor...
I2C设备初始化方式4--从用户空间初始化I2C设备
(本文的部分内容翻译自Documentation/<em>i2c</em>/instantiating-devices) 方式4:从用户空间初始化I2C<em>设备</em> 在一般情况下,内核应该知道哪些I2C<em>设备</em>被连接以及他们的地址是什么。 然而,在某些情况下,它没有,所以sysfs接口用作让用户提供信息。这接口是由2属性组成,在每一个I2C总线上创建的文件目录:new_device和delete_device。这
i2c-tools使用及调试
<em>i2c</em>-tools工具是一个专门调试<em>i2c</em>的,开源,可获取挂载的<em>设备</em>及<em>设备</em>地址,还可以在对应的<em>设备</em>指定寄存器设置值或者获取值等功能。 一、下载<em>i2c</em>-tools,交叉编译 1、从开源网站http://dl.lm-sensors.org/<em>i2c</em>-tools/releases/下载<em>i2c</em>-tools, a. 解压后: b. 修改makefile文件。 c.然后保存退出。直接...
树莓派启用i2c设备
原文地址::http://www.cnblogs.com/hangxin1940/archive/2013/04/02/2997077.html 相关文章 1、  树莓派学习笔记——Linux I2C驱动说明----http://blog.csdn.net/xukai871105/article/details/19841191 2、  树莓派学习笔记——I2
Linux Kernel 设备驱动之I2C之client读写数据API
发送数据 int <em>i2c</em>_master_send(const struct <em>i2c</em>_client *client, const char *buf, int count) 接收数据 int <em>i2c</em>_master_recv(const struct <em>i2c</em>_client *client, char *buf, int count)   当然还有: <em>i2c</em>_smbus_xfer_emula
基于i2c子系统的驱动分析-设备
基于<em>i2c</em>子系统的驱动分析 和<em>i2c</em>有关的代码都在源码drivers/<em>i2c</em>目录下。内核提供了两种<em>i2c</em>的实现方法: 第一种叫<em>i2c</em>_dev,对应drivers/<em>i2c</em>/<em>i2c</em>-dev.c,这种方法仅仅封装了soc的<em>i2c</em>控制器操作,并向应用层提供操作接口。其本质是为应用层提供了一个库,驱动功能由应用层实现,不是主流的做法第二种是驱动层实现所有驱动功能,是比较主流的做法 第二种可以认为是
标准I2C设备工作流程
I2C读写流程          系统中相机输出视频信号通过BNC接口流向TVP5146,TVP5146完成模拟信号向数字信号的转换过程。而TVP5146参数的设置需要通过I2C总线完成。以下是对I2C简单的说明,主要从I2C总线特点、常用命令和工作时序三方面来说明。 一 I2C总线特点 1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL; 2、每个连接到总线的器件都可
I2C软件模拟主设备和从设备例程
IIC.h文件 #ifndef __BSP_IIC_H__ #define __BSP_IIC_H__ #include &amp;amp;amp;quot;stm32f10x_conf.h&amp;amp;amp;quot; #define PIN_IIC_SCL GPIO_Pin_6 #define PIN_IIC_SDA GPIO_Pin_7 #define ...
21 使用设备树的i2c设备驱动
在内核里表示<em>i2c</em><em>设备</em>驱动的结构体有点小变化:struct <em>i2c</em>_driver { int (*probe)(struct <em>i2c</em>_client *, const struct <em>i2c</em>_device_id *); //当使用id_table进行匹配时, 会把匹配上的<em>i2c</em>_device_id变量地址传过来. int (*remove)(struct <em>i2c</em>_cli
I2c设备初始化方法1--通过总线编号初始化i2c设备
(本文的部分内容来源自Documentation/<em>i2c</em>/instantiating-devices) I2c不像PCI或是USB<em>设备</em>,它不能在硬件层被枚举,软件部分必须明确了解哪些<em>i2c</em><em>设备</em>连接到总线上了,以及哪些地址可用。因此,内核代码必须明确初始化<em>i2c</em><em>设备</em>。I2c初始化方式有4种: a)       通过总线编号初始化<em>i2c</em><em>设备</em>; b)       直接初始化<em>设备</em>; c)
如何实例化一个i2c设备(struct i2c_client)
之前写的<em>i2c</em>驱动程序对应的linux-2.6的内核,在移植到linux-3.4时,发现好多API不一样了。让我们打开/linux-3.4.2/Documentation/<em>i2c</em>/instantiating-devices,一探究竟。不像PCI或USB<em>设备</em>,I2C<em>设备</em>不在硬件级枚举。相反,软件必须知道连接在每个I2C总线段的<em>设备</em>,以及这些<em>设备</em>正在使用什么地址。因为这个原因,内核代码必须显式地实例化...
关于i2c设备树下的匹配注册过程
<em>i2c</em>在<em>设备</em>树下的匹配注册过程
I2C器件的从设备地址的设置(以AT24C02为例)
1 AT24C02的硬件连接电路图 2 从<em>设备</em>地址   在进行I2C通信时,主机发送启动信号后,再发送寻址信号。器件的地址有7位和10位,以7为地址寻址为例,寻址信号由一个字节 构成,高7位为地址位,最低位为方向位,用来表示主机与从器件的数据传输方向,方向位0代表主机接下来对从器件进行写操作, 方向位为1,表明主机接下来对器件进行读操作。    AT24C02的高4位是固定的,为
同时使用两片I2C同型号设备时地址怎样设置 (如何更改器件地址)
同时使用两片I2C同型号<em>设备</em>时地址怎样设置 有时候 可能需要同时使用多个同型号i2C的器件,这就需要我们更改器件的物理地址。 同时使用两片pcf8591时地址怎样设置,也就是如何更改器件地址。以pcf8591为例子 以下为PCF8591的引脚图可以根据引脚图对比实物图找到对应的3个地址引脚A0、A1和A2用于编程硬件地址。 如右...
使用GPIO口模拟I2C总线并挂载设备
[c-sharp] view plaincopy 前言:   在许多情况下,我们并没有足够的I2C总线,本文主在介绍如何利用Linux内核中的<em>i2c</em>-gpio模块,利用2条GPIO线模拟<em>i2c</em>总线,并挂载<em>设备</em>。   思路:   先通过对<em>i2c</em>-gpio所定义的结构体初始化(包括初始化<em>i2c</em>的2条线,频率,timeout等)并将<em>i2c</em>-gpio模块编译进内核,实现
Linux驱动开发05:【I2C驱动】I2C总线驱动和设备驱动
介绍 这里实现一种不涉及硬件的I2C总线和<em>设备</em>驱动,然后分析I2C驱动在系统中的注册过程。这里实现的驱动类似于之前的FIFO字符<em>设备</em>驱动,与之不同的是这里使用了I2C驱动框架,<em>设备</em>文件写入和读取将通过<em>i2c</em>_client传递到指定的<em>i2c</em>_adaper,然后在<em>i2c</em>_adapter中操作一段内存。这个驱动非常简单,甚至没有使用FIFO这种硬件结构,只能进行读和写,毕竟内存的操作不是中断,重点是熟...
linux-i2c驱动 之 i2c设备层的注册过程probe函数如何被调用分析
Linux下<em>i2c</em>驱动的加载过程,分为<em>i2c</em><em>设备</em>层、<em>i2c</em> adapter层与<em>i2c</em>核心层 <em>i2c</em><em>设备</em>驱动层也就是我们为特定<em>i2c</em><em>设备</em>编写的驱动,下面是我自己理解的<em>i2c</em>驱动的注册过程 在我们写的<em>i2c</em><em>设备</em>驱动中,我们会调用<em>i2c</em>_add_driver()开始<em>i2c</em><em>设备</em>驱动的注册,该函数调用<em>i2c</em>_register_driver完成所有注册操作     [plain] v
linux驱动开发之i2c设备驱动at24c02的编程
编译从<em>设备</em>驱动编程的前奏: 1, 将<em>i2c</em> core层和<em>i2c</em> adapter控制器层编译进内核 make menuconfig Device Drivers —> I2C support —> // <em>i2c</em>-core.c I2C Hardware Bus support —>
I2C从机挂死分析和解决方法
I2C几乎是嵌入系统中最为通用串行总线,MCU周边的各种器件只要对速度要求不高都可以使用。优点是兼容性好(几乎所有MCU都有I2C主机控制器,没有也可以用IO模拟),管脚占用少,芯片实现简单。I2C协议虽然简单,实际使用过程中小毛病还不少。今天先来看一个平日最为常见的问题:I2C从机挂死。 很多事情不难而且经常碰到,每次自认为懂了但最终让你站出来说清楚的时候却总是不能自圆其说,很难受。所
读取windows上的硬件信息
需要读取<em>window</em>s上所有的硬件信息,本来打算直接使用python的wmi实现,但是发现wmi是无法直接读取显卡的,所以使用了最简单的方案,直接用dxdiag来读取 例子: dxdiag /t d:\tmp.txt 注意事项: 1.生成的txt必须是全路径 2.生成的过程有延时,需要等待 生成硬件统计信息之后,直接解析文件即可
Linux驱动开发07:【设备树】分析nanopi设备树,添加I2C子节点
介绍 本节简单介绍一下<em>设备</em>树,然后对nanopi的<em>设备</em>树文件进行分析。为了真正地体会<em>设备</em>树的用法,我们在现有<em>设备</em>树的I2C节点中尝试添加一个mpu6050的子节点,然后在nanopi的文件系统中尝试<em>访问</em>该节点,以验证是否添加成功。下一节会修改mpu6050的I2C驱动,使之支持该节点。 <em>设备</em>树简介 <em>设备</em>树文件是一种板级描述文件,该文件由一系列的节点和子节点组成,用于描述CPU内部资源和板...
串口/I2C调试工具
很好用的串口通信软件,小而强大, 还有I2C调试功能
i2c设备驱动的四种构造方法
<em>i2c</em><em>设备</em>驱动属于字符<em>设备</em>驱动,其构造自然是跟字符<em>设备</em>的结构一样了,字符<em>设备</em>:1、 分配字符<em>设备</em>号(主次<em>设备</em>号),设置为0,表示自动分配<em>设备</em>号  2、构造file_operatios 3、注册<em>设备</em>,register_chrdev(1,2,3),三个参数分别是<em>设备</em>号,名称(不重要,随便起),构造的file_operations。 <em>i2c</em>总线驱动:核心层:提供统一的接口函数。适配器:提供硬件接
应用层读写i2c设备可读写8位,16位设备地址小工具及源码
 #include "standard_<em>i2c</em>.h" #include #include #include #include #include #include #include #include #include #include #if 0 #include #include #else #define I2C_M_WT    0x
应用程序和驱动中使用I2C的流程
应用程序和驱动中使用I2C的流程 编写I2C<em>设备</em>驱动有两种方法。一种是利用系统给我们提供的<em>i2c</em>-dev.c来实现一个<em>i2c</em>适配器的<em>设备</em>文件。然后通过在应用层操作<em>i2c</em>适配器来控制<em>i2c</em><em>设备</em>。另一种是为<em>i2c</em><em>设备</em>,独立编写一个<em>设备</em>驱动。注意:在后一种情况下,是不需要使用<em>i2c</em>-dev.c的。 前一种方法也就是说只要系统实现了I2C适配器的驱动并生成了<em>设备</em>文件, 那么挂在其上面的I2C<em>设备</em>也可以
人机接口设备(HID)
目前市场上USB<em>设备</em>的种类繁多,但是这些<em>设备</em>会有一些共同的特性,根据这些特性可以把USB<em>设备</em>划分为不同的类,如显示<em>设备</em>、通信<em>设备</em>、音频<em>设备</em>、大容量存储<em>设备</em>、人机接口<em>设备</em>(HID)。这里介绍如何实现HID类<em>设备</em>,以及如何在应用程序中对HID类<em>设备</em>进行<em>访问</em>。从Windows98操作系统开始,为HID类<em>设备</em>提供了通用的驱动程序,所以只要按照HID<em>设备</em>类的规范编写<em>设备</em>的固件程序,就能够让Windows系统
Linux系统I2C设备驱动编写方法
硬件平台:飞思卡尔IMX6 内核版本:kernel3.0.35 Linux的I2C子系统分为三层,I2C核心层,I2C总线驱动层和I2C<em>设备</em>驱动层。I2C核心层由内核开发者提供,I2C总线驱动层有芯片厂商提供,而I2C<em>设备</em>驱动层由于<em>设备</em>的差异性,就只能是具体的开发需求具体实现了。而本实例是拿eeprom芯片AT24C02进行的具体分析。 I2C核心层管理所有关于I2C的数据结
Arduino 快速 寻找设备的I2C地址
这篇有点累赘,因为之前在介绍LCD1602的时候,就已经提到寻找<em>设备</em>的I2C地址 不过,除了LCD1602还有很多<em>设备</em>都可以应用到这个功能。 凡I2C连接的都可以使用这样的代码,找到<em>设备</em>的I2C地址 效果 把模块按接线接好,上传这段代码后,打开端口监视器,就能找到在I2C上的<em>设备</em>地址,大家可以试试哦 (这里就不上图了) 接线 根据模块的I2C接线就可以了
linux I2C 设备驱动学习笔记
linux下的驱动思路:内核态驱动和用户态驱动 一是把I2C<em>设备</em>当作一个普通的字符<em>设备</em>来处理,用<em>i2c</em>-dev.c文件提供的API,封装<em>设备</em>时序数据,直接操作<em>i2c</em>适配器驱动对应的<em>设备</em>文件,实现与<em>设备</em>的通讯。属于用户态驱动。 二是利用linux下I2C子系统框架体系来实现。属于内核态度驱动,用户空间的应用程序直接操作从器件对应的<em>设备</em>文件,既可用通用的API实现与从器件的数据交互。
linux驱动-I2C设备
UART 硬件 I2C<em>设备</em> 硬件 I2C驱动框架 I2C驱动编写 进入内核源码修改<em>设备</em>树dts文件添加如下内容 修改驱动程序 SPI 硬件UART全双工,异步, **U**niversual **A**sync **R**eceive **T**ransport.硬件 1根 发送线Tx; 1根 接收线Rx; I2C<em>设备</em>硬件: CLK —– 1根时钟线: 标准的时钟方波 DATA —– 1根数据线:
misc设备i2c设备创建的节点路径
misc<em>设备</em>: ./sys/class/misc/sim_<em>i2c</em>_port/sim_<em>i2c</em>_addr ./sys/devices/virtual/misc/sim_<em>i2c</em>_port/sim_<em>i2c</em>_addr <em>i2c</em><em>设备</em>: ./sys/bus/<em>i2c</em>/drivers/sim_<em>i2c</em>_port/1-0010/sim_<em>i2c</em>_addr ./sys/devices/soc.0/78b
读取Linux中I2C数据——c程序
关于在Linux下读取I2C数据。该程序主要是在树莓派中读取AMG8833传感器中的64个温度数据,借鉴了一些网上的方法,然后参考芯片的数据手册,数据的存储格式,本芯片是2个字节存放一个数据。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;sys/types.h&amp;gt;#include &amp;lt;sys/stat.h&amp;gt;...
Linux I2C设备读写应用程序
在linux中,I2C总线被做为一个标准总线加进内核,所有的I2C<em>设备</em>都被挂到该总线上,通过I2c core进行管理,<em>设备</em>驱动通过调用I2c core中的注册函数将I2C驱动注册到I2C总线上,在probe到相应I2C<em>设备</em>时为之创建一个adapter,并将其添加到adapter总线上。请情请参考本blog,Linux内核驱动--platform device和platform driver注册过程
Linux读写I2C设备I2C_RDWR用法
<em>i2c</em>注册<em>设备</em>知识点: kernel/msm-4.9/drivers/<em>i2c</em>/<em>i2c</em>-dev.c为每个<em>i2c</em><em>设备</em>创建设节点,所以我们不用创建。 /dev/<em>i2c</em>-0是在注册<em>i2c</em>-dev.c后产生的,代表一个可操作的适配器。 如果不使用<em>i2c</em>-dev.c的方式,就没有,也不需要这个节点。 需要找到你要操作的<em>i2c</em><em>设备</em>在哪一根<em>i2c</em>总线上,如/dev/<em>i2c</em>-2上挂着,找到<em>i2c</em><em>设备</em>地址,...
[RK3399][Android7.1]Rockchip I2C的使用(设备树配置及使用)
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83gn I2C 驱动参数配置 <em>i2c</em>-rk3x.c 驱动的配置都在 DTS,参考文件Documentation/devicetree/bindings/<em>i2c</em>/<em>i2c</em>-rk3x.txt。 重点说明其中 配置项,<em>i2c</em>-scl-rising-time-ns,<em>i2c</em>-scl-falling-time-n...
在Android手机中通过i2c读取芯片寄存器(含i2c-tools)
在Android手机中通过<em>i2c</em>读取芯片寄存器(含<em>i2c</em>-tools)tags: Android Linux <em>i2c</em> driver需求:同事甩来一个某品牌的手机,Android系统,需要把里面某个芯片的寄存器配置参数值读出来。折腾了两天(坑爹的网络以及……xxx墙),记录一下,以备今后查询思路: 在Android下运行一个C语言程序 用这个c语言程序去<em>访问</em><em>i2c</em> bus 利用lin
Linux I2C设备驱动编写(二)
在(一)中简述了Linux I2C子系统的三个主要成员<em>i2c</em>_adapter、<em>i2c</em>_driver、<em>i2c</em>_client。三者的关系也在上一节进行了描述。应该已经算是对Linux I2C子系统有了初步的了解。下面再对他们之间的关系进行代码层的深入分析,我认为对他们的关系了解的越好,越有助于I2C<em>设备</em>的驱动开发及调试。 带着问题去分析可能会更有帮助吧,通过对(一)的了解后,可能会产生以下的
IIC总线最多能接几个设备
————————转————————— IIC总线 一般串行数据通讯都有时钟和数据之分,有异步和同步之别. 有单线,双线和三线等. I2C肯定是2线的(不算地线). I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了. I2C的原则是: 在SCL=1(高电平)时,SDA千万别忽悠!!! 否则,SDA下跳则&quot;判罚&quot;为&quot;起始信号S&quot;,SDA上跳则&quot;判罚&quot;为&quot;停止信号P&quot;...
VxWorks上设备的管理
VxWorks使用一个双向链表管理所有的<em>设备</em>,每个节点包含以下内容 typedef struct dev_hdr { DL_NODE node; /* device linked list node */ const char *name; /* device name */ int drvRefCount;/* cou...
I2C总线(一)硬件结构 及 IIC时序
一、电器特性 概念:I2C中心是 两线式 串行总线,用于连接微控制器及其外围<em>设备</em>。 I2C总线只有两根双向信号线: SDA:数据线     SCL:时钟线 控制原理:通过控制SCL和SDA线高低电平时序,产生I2C总线协议所需的信号进行数据传输。在总线空闲状态,这两根线一般被上面所接的上拉电阻拉高,保持高电平。 I2C传输速率:100kbit/s ~ 3.4Mbit/s 二、总线寻...
VS下生成与配置静态库与动态库(一)
此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。 本文仅供初学者参考,如果有问题欢迎大家指正。        首先简单地理解一下静态库与动态库,以及两者的区别。 静态库(*.lib): 将*.cpp文件中的函数的地址和定义,以及函数之间的链接关系通通打包,生成的一个二进制文件; 动态库(*.lib+*.dll):
High.Performance.MySQL_Second.Edition下载
mysql High.Performance.MySQL_Second.Edition 相关下载链接:[url=//download.csdn.net/download/weskycn/2078099?utm_source=bbsseo]//download.csdn.net/download/weskycn/2078099?utm_source=bbsseo[/url]
BIOS inside II 源码 part III下载
BIOS inside II 源码 part III 如果喜欢,请您支持正版图书市场 相关下载链接:[url=//download.csdn.net/download/songtao001/2152523?utm_source=bbsseo]//download.csdn.net/download/songtao001/2152523?utm_source=bbsseo[/url]
oracle10g经典实战下载
适合刚接触Oracle数据库的新手.从数据库的安装到基本操作都有详细说明. 相关下载链接:[url=//download.csdn.net/download/wyw1213/2165592?utm_source=bbsseo]//download.csdn.net/download/wyw1213/2165592?utm_source=bbsseo[/url]
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 云计算设备价格 物联网设备价格
我们是很有底线的