* 描述 :读取达到eeprom的末尾时,会读取最开头的字节 */inti2c_nbytes_read(intfd,unsignedcharaddr,unsignedcharreg,unsignedchar*val,intlen){intret =0;unsignedcharoutbuf;structi2c_rdwr_ioctl_datapackets;structi2c_msgmessages[2];/* 数据帧类型有2种 * 写要发送起始信号,进行写寄存器操作,再发送起始信号...
在通信协议-I2C小节,我们已经对I2C协议进行了详细的介绍,并在Mini2440裸机开发之I2C(AT24C08)小节中介绍了通过I2C协议去读写AT24C08 EEPROM。在这一节将会学习I2C总线设备驱动模型。 回到顶部 一、I2C驱动框架 1.1 I2C框架 I2C总线设备驱动模型由I2C核心、I2C总线驱动(或者说I2C适配器驱动、I2C控制器驱动)、I2C设备驱动...
笔者在开发过程中使用设备型号为AT24C01A的EEPROM 来测试I2C总线驱动。 1工作原理概述 在介绍I2C总线结构之前。要搞清楚两个概念:I2C总线控制器和I2C设备。I2C总线控制器为微控制器或微处理器提供控制I2C总线的接口,它控制所有I2C总线的特殊序列、协议、仲裁、时序,这里指MPC8250提供的I2C总线控制接口。I2C设备是指通...
说到I2C总线第一个想到的还是EEPROM存储芯片,例如AT24C02这个芯片有256字节的存储空间,使用范围较广。 AT24C02芯片采用I2C总线与主机通信,具体细节参见数据手册。Linux的I2C设备为/dev/i2c-0和/dev/i2c-1,不同的板子可能不一样。使用I2C设备只需要简单的打开文件即可,十分的方便,使用ioctl函数控制I2C总线的一些参数,详...
I2C主机驱动也就是SoC的I2C控制器对应的驱动程序,I2C设备驱动其实就是挂在I2C总线下的具体设备对应的驱动程序,例如eeprom、触摸屏IC、传感器IC等;对于主机驱动来说,一旦编写完成就不需要再做修改,其他的I2C设备直接调用主机驱动提供的API函数完成读写操作即可。这个正好符合Linux的驱动分离与分层的思想,因此Linux内核也将...
I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。具有冲突检测和仲裁功能,每一个连接设备都是可编址的,每个器件可以处于主机或者从机的模式。 本实验通过CPU控制IIC,对EEPROM芯片AT24C08(容量有256 byte)进行读写。 2 “用法解释”及“连接错误指示”的函数源代码在eeprog.c 24cXX.c两个C...
我的上篇文章《Linux下使用I2C总线读写EEPROM(读写i2c从设备通用程序)》给出了通过IIC总线,如何读写EEPROM相应位置的内容。但是有一些功能没有实现:比如: 只能单独操作一个寄存器地址,不能一次性写入大量内容; 只能读一个寄存器的数值,不能可选择性地一次读出大量内容;这是由于为了做到通用化,我们的i2c没有一次性...
定义描述具体I2C总线适配器的i2c_adapter数据结构、实现在具体I2C适配器上的I2C总线通信方法,并由i2c_algorithm数据结构进行描述。经过I2C总线驱动的的代码,可以为我们控制I2C产生开始位、停止位、读写周期以及从设备的读写、产生ACK等。I2C总线驱动具体实现在/drivers/i2c目录下busses文件夹。
51CTO博客已为您找到关于linux i2c读写测试的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及linux i2c读写测试问答内容。更多linux i2c读写测试相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
1,本文给出了linux 下使用IIC总线读写EEPROM 的实现程序。 2, 本文给出了在编程中遇到的几种非常隐蔽的错误的解决方法。 3,本文的读写程序非常通用: i2c -d /dev/i2c-1 -s 0x51 0x05 18 ---Write 18 to the register: 0x05 of the i2c-slave address: 0x51 i2c -d /dev/i2c-10 0x57 0x05 -...