找回密码
 注册
搜索
查看: 9750|回复: 1

[讨论] WINCE下I2C读写问题

[复制链接]
发表于 2014-8-7 14:51:35 | 显示全部楼层 |阅读模式
最近在做一个WINCE下的800万MIPI接口摄像头驱动,在初始化参数写入这一步遇到了问题。用I2C写数据不成功,错误原因的打印信息如下:
[31m[IIC_IST:E] SLAVE(0x20) DETECTION IS FAILED & RECOVERY STAGE
[0m[31m[XXX] IOCTL_I2C_GENERAL_WRITE ERROR: 31
[0m[31m[IIC_IST:E] SLAVE(0x20) DETECTION IS FAILED & RECOVERY STAGE
[0m[31m[XXX] IOCTL_I2C_GENERAL_WRITE ERROR: 31
[0m[31m[IIC_IST:E] SLAVE(0x20) DETECTION IS FAILED & RECOVERY STAGE
[0m[31m[XXX] IOCTL_I2C_GENERAL_WRITE ERROR: 31

在网上找了找相似的问题,回答之一是可能是由硬件的连接引起的,硬件部分连接不正确。于是想测试一下由I2C来对芯片内部的寄存器进行一次读写,看看是否读写正常。
但是在编写测试代码时还是遇到了问题。本人对I2C了解不是很彻底,使用的是MINI210开发板,核心处理器是S5PV210,打算从用户手册里任意找一个可读写的寄存器进行测试。但是在I2C地址这部分有些问题。
以寄存器GPD1为例,用户手册中提供的内容为GPD1CON, R/W, Address = 0xE020_00C0)。我了解到I2C地址是由7位地址加1位读写位构成的,假如我想要通过I2C对这个寄存器进行读写操作,我的地址应该写多少呢?这个0xE020_00C0地址我如何利用?或者有使用过MINI210开发板的人来指导我一下最简单的I2C的读写测试如何进行。我是参考开发板附带的BSP中的WINCE下的代码,其中有一个I2C的OPEN函数是用来打开I2C的。还有WRITEREGISTERS函数是用来写数据的,此函数有2个参数分别是地址与数据。望大神给予指点。
发表于 2016-10-21 08:41:01 | 显示全部楼层
[em05][em05]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-13 14:38 , Processed in 0.046452 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表