主题 : Tiny210开发板如何读取OV9650寄存器的值 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 76670
精华: 0
发帖: 9
金钱: 65 两
威望: 13 点
综合积分: 18 分
注册时间: 2012-08-28
最后登录: 2017-09-13
楼主  发表于: 2012-09-20 14:48

 Tiny210开发板如何读取OV9650寄存器的值

如何,我想知道9650寄存器的值是多少,但是因为没有源码,要在外部通过什么样的接口来读取,我自己写了个接口(linux不是很熟,随便抄了一个)
int ov9650_readreg(struct device *dev, unsigned char reg,
        unsigned char *value)
{
    struct i2c_client *client = to_i2c_client(dev);
    u8 data = reg;
    struct i2c_msg msg;
    int ret;

    /*
     * Send out the register address...
     */
    msg.addr = client->addr;
    msg.flags = 0;
    msg.len = 1;
    msg.buf = &data;
    ret = i2c_transfer(client->adapter, &msg, 1);
    if (ret < 0) {
        printk(KERN_ERR "Error %d on register write\n", ret);
        return ret;
    }
    /*
     * ...then read back the result.
     */
    msg.flags = I2C_M_RD;
    ret = i2c_transfer(client->adapter, &msg, 1);
    if (ret >= 0) {
        *value = data;
        ret = 0;
    }
    return ret;
}

然后在fimc_open里调用
    ov9650_readreg(ctrl->dev,0x12,reg_value);
    printk(" 0v9650 Reg12 =0x%x\n",*reg_value);

进入摄像头就重启,请问高手该如何读取,谢谢
级别: 新手上路
UID: 76670
精华: 0
发帖: 9
金钱: 65 两
威望: 13 点
综合积分: 18 分
注册时间: 2012-08-28
最后登录: 2017-09-13
1楼  发表于: 2012-09-20 14:56

 回 楼主(youshanl) 的帖子

补充下,我这个接口是仿照OV7670里ov7670_read函数,完全依葫芦画瓢,友善的210开发板没有提供9650的源码,这点真是让人很失望。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2012-09-20 15:01
可以参考6410的2.6.28内核,里面有ov9650的驱动
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 76670
精华: 0
发帖: 9
金钱: 65 两
威望: 13 点
综合积分: 18 分
注册时间: 2012-08-28
最后登录: 2017-09-13
3楼  发表于: 2012-09-20 15:23
或者谁能告诉我下0x12和0x3A寄存器的值,我想知道sensor输出的格式是什么
级别: 侠客
UID: 86171
精华: 0
发帖: 102
金钱: 520 两
威望: 104 点
综合积分: 204 分
注册时间: 2013-01-14
最后登录: 2015-11-16
4楼  发表于: 2013-01-21 16:46

 回 2楼(mindee) 的帖子

请提供连接啊
谢谢。