免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11418 | 回复: 1
打印 上一主题 下一主题

i2c eeprom driver [复制链接]

论坛徽章:
0
1 [报告]
发表于 2009-01-05 17:05 |显示全部楼层
原帖由 studyboy_3w 于 2008-12-30 15:31 发表
在linux/drivers/i2c/chips 下有eeprom.c driver, 本人想试着锻炼i2c driver编写能力。但是遇到问题了。 望高手赐教。
我的步骤
1. 在arch/arm/mach-s3c2410/mach-smdk2410.c
static struct i2c_board_info ...



你设备的地址是0x50吗?
I2C核心会根据你提供的这个地址去呼叫你的设备,如果收到设备返回的ACK,这是才会调用eeprom_detect函数来向sys子系统注册接口。

尝试一下不同的地址,记得I2C核心吧设备地址做偏移。

论坛徽章:
0
2 [报告]
发表于 2009-01-06 09:05 |显示全部楼层
原帖由 studyboy_3w 于 2009-1-6 08:37 发表
对, 我加多一个地址,就会调用那个函数。如:
在eeprom.c上修改
/* Addresses to scan */
static unsigned short normal_i2c[] = { 0x50, 0x51,I2C_CLIENT_END };

为什么0x50不可以呢? 这个0x50地址是如 ...


配合电路图,你看器件手册上是怎么说的,一般I2C设备根据外部一两个引脚的高低电平选择不同的地址,避免和总线上其它设备地址冲突。

怀疑你的地址是0X51,可以试试把0X50去掉,只要0x51来验证一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP