共 16 篇文章
显示摘要每页显示  条
主机发送数据时SDA由主机驱动,check ack时主机检测由设备驱动的1bit数据。如果主机驱动SDA未及时释放,SCL为低时产生冲突,SCL为高时检测ack出错,甚至会出现SCL为高时SDA的跳变产生错误Start/Stop标志,尤其是在主机发送数据最后1bit为高的情况下。主机接收数据时SDA由设备驱动,之后设备会释放SDA,由主机驱动SDA发送ack,发送ack之后要及时...
#define GPIO_SCL S3C2410_GPF3#define GPIO_SDA S3C2410_GPF0#define GPIO_SDA_OUTP S3C2410_GPF0_OUTP //设定SDA输出#define GPIO_SDA_INP S3C2410_GPF0_INP //设定SDA输入#define GPIO_SCL_OUTP S3C2410_GPF3_OUTP //设定SCL输出。if(v_mode) { ...
先通过对i2c-gpio所定义的结构体初始化(包括初始化i2c的2条线,频率,timeout等)并将i2c-gpio模块编译进内核,实现用GPIO_X,GPIO_Y 2条GPIO线注册新的i2c总线。其中sda_pin和scl_pin分别是i2c总线的数据线和时钟线,在i2c-gpio中会通过gpio_request函数对这2个口进行申请,udelay和timeout如果不设初值,i2c-gpio中会自动将其设为默认值。注册i...
1. static int try_address(struct i2c_adapter *i2c_adap, 2. unsigned char addr, int retries) 3. { 4. struct i2c_algo_bit_data *adap = i2c_adap->algo_data;dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);#ifdef CONFIG_I2C_COMPAT res = class_compat_cr...
linux gpio模拟i2c的使用/用GPIO模拟I2C总线。1. static int i2c_bit_prepare_bus(struct i2c_adapter *adap) 2. { 3. struct i2c_algo_bit_data *bit_adap = adap->algo_data;#define setsda(adap, val) adap->setsda(adap->data, val) #define setscl(adap, val) adap->setscl(adap->data, val) #define ge...
linux gpio模拟i2c的使用/用GPIO模拟I2C总线。这里看到了系统中有了两个i2c了,这里platform_device注册的时候id则使用了2,device name则是和i2c gpio的driver中的name是一致的,即i2c-gpio.c中的name。直接用GPIO口模拟I2C时序和利用内核模块i2c-gpio虚拟i2c总线的区别:用i2c-gpio模块虚拟i2c总线需要在系统启动时注册新的I2C总线,并将i2c设...
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部