注册 登录
查看: 1035|回复: 25

[鹰眼] 警告:SCCB写数据错误

[复制链接]
发表于 2014-3-3 17:15:53 | 显示全部楼层 |阅读模式
今天刚收到摄像头套装,用了论坛提供的LCD+摄像头的例程,可是程序一直卡在摄像头初始化里,不断的打印“警告:SCCB写数据错误”,调试了一下,就是卡在这里
if( 0 == SCCB_WriteByte ( OV7725_COM7, 0x80 ) ) /*复位sensor */
    {
        DEBUG_PRINTF("\n警告:SCCB写数据错误");
        return 0 ;
    }
检查过PTA25和PTA26已经与核心板连接上了,程序也使用的最新的,请问现在这种情况是什么原因造成的呢?
回复

使用道具 举报

发表于 2014-3-3 17:19:09 | 显示全部楼层
你是直接用开发板还是小底板?
这个一般都是接线问题的多
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:22:56 | 显示全部楼层
你好,直接插入到我们的开发板,或者软排线插入到我们的小底板,看看行不行?
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:23:27 | 显示全部楼层
这情况是单片机与摄像头通信失败导致的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-3 17:27:16 | 显示全部楼层
就是用的你们的软排线,都量过了,是通的
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:28:02 | 显示全部楼层
candy 发表于 2014-3-3 17:27
就是用的你们的软排线,都量过了,是通的

降低一下主频试试,是FX吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-3 17:30:10 | 显示全部楼层
就是数据没有写进7725啊,但测试硬件连线都是通的啊
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:30:43 | 显示全部楼层
如果还是不行的话,在board/inc/FIRE_SCCB.h 文件里加大延时试试
  1. #define SCCB_DELAY()    SCCB_delay(400)
改大下面的400,例如改成1000试试
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:32:16 | 显示全部楼层
如果还是不行的话,用示波器看看sccb两个管脚的时序。跟I2C时序一样的,看看是什么问题。
回复 支持 反对

使用道具 举报

发表于 2014-3-3 17:35:42 | 显示全部楼层
如果还是搞不了,加Q:753258889
回复 支持 反对

使用道具 举报

发表于 2014-3-5 11:32:02 | 显示全部楼层
这个是管脚没接好的问题吧,你测测核心板上的管脚到摄像头上的管脚是否接好......
回复 支持 反对

使用道具 举报

发表于 2014-10-11 21:29:03 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-3 17:30
如果还是不行的话,在board/inc/FIRE_SCCB.h 文件里加大延时试试改大下面的400,例如改成1000试试



     山外哥,我也是这个地方很有疑问,为什么是输入参数是400呢。

     是跟SCCB要求的SCL的频率有关吗?我看OV7725的英文数据手册上有说SCL的最大频率是400kHz,跟这个有关吗?

    SCCB的时序还要注意什么问题吗?
回复 支持 反对

使用道具 举报

发表于 2014-10-11 21:31:34 | 显示全部楼层
awindows 发表于 2014-10-11 21:29
山外哥,我也是这个地方很有疑问,为什么是输入参数是400呢。

     是跟SCCB要求的SCL的频率 ...

就是 I2C 时序,时间太短,那么就会容易出错。所以需要调一下时间。
如果你自己用我们代码,那直接调用就好。
回复 支持 反对

使用道具 举报

发表于 2014-10-11 21:43:53 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-11 21:31
就是 I2C 时序,时间太短,那么就会容易出错。所以需要调一下时间。
如果你自己用我们代码,那直接调用 ...



    我用的DN系列,超频到150M,然后用杜邦线连接Y7~Y0、SCL、SDA、PCLK、VSYNC、3V3、GND,其它的全悬空。
    核心代码就是用你们的,然后也是在复位OV7725的那句话就出错了,复位不了,不知道是SCCB时序的问题还是什么。
    我怀疑有可能是:1. 你们那个例程是100M的,我150M就应该把SCCBDELAY里的参数调大一些。
                                2. 杜邦线有干扰,不过可能性不大。
回复 支持 反对

使用道具 举报

发表于 2014-10-11 21:58:13 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-11 21:31
就是 I2C 时序,时间太短,那么就会容易出错。所以需要调一下时间。
如果你自己用我们代码,那直接调用 ...



    我这样连接,硬件上不会有问题吧?应该是软件上的问题吧?
回复 支持 反对

使用道具 举报

发表于 2014-10-11 22:03:03 | 显示全部楼层
awindows 发表于 2014-10-11 21:43
我用的DN系列,超频到150M,然后用杜邦线连接Y7~Y0、SCL、SDA、PCLK、VSYNC、3V3、GND,其它的全 ...

sccb管脚,你有修改过吗?
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-11 22:14:19 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-11 22:03
sccb管脚,你有修改过吗?



    没有改过,就是SDA A25 和 SCL A26,我也怀疑有可能是某些引脚不给力,后来把SDA改成A24也试过,也不行。还是相同的错误。

    话说这个时序真的没问题吗?150M的是不是要把参数加大一些呢?
回复 支持 反对

使用道具 举报

发表于 2014-10-11 22:24:29 | 显示全部楼层
awindows 发表于 2014-10-11 22:14
没有改过,就是SDA A25 和 SCL A26,我也怀疑有可能是某些引脚不给力,后来把SDA改成A24也试过, ...

你的管脚方案跟我们提供的好像不一样吧,需要跟代码匹配的,修改好代码没有?
在 sccb.h 头文件里有宏定义管脚的(如果你是用一天攻破K60 的代码)
回复 支持 反对

使用道具 举报

发表于 2014-10-11 22:32:51 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-11 22:24
你的管脚方案跟我们提供的好像不一样吧,需要跟代码匹配的,修改好代码没有?
在 sccb.h 头文件里有宏定 ...




一模一样的嘞,你们的原代码VCAN_SCCB.h文件里定义如下:


#ifndef _VCAN_SCCB_H_
#define _VCAN_SCCB_H_

//SCCB 管脚配置
#define SCCB_SCL        PTA26
#define SCCB_SDA        PTA25






回复 支持 反对

使用道具 举报

发表于 2014-10-11 22:43:37 | 显示全部楼层
awindows 发表于 2014-10-11 22:32
一模一样的嘞,你们的原代码VCAN_SCCB.h文件里定义如下:

如果你没接错线,用我们原始例程,那么应该不会初始化失败的。


鹰眼 拔掉其他线,然后 万用表打到 测通路那个档
红色表笔 接地 (上螺丝的那个地方就是地),黑色表笔接 SCL和SDA
看看读到值是多少

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-10-12 10:21:44 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-11 22:43
如果你没接错线,用我们原始例程,那么应该不会初始化失败的。



    是对鹰眼摄像头上的SCL和SDA两个引脚进行测量吗?

    顺便问一下山外哥,这个宏定义的函数的意义是不是这样:

SCL_H()                    SCL输出高电平
SCL_L()                     SCL输出低电平
SCL_DDR_OUT()      SCL设置为GPIO输出
SCL_DDR_IN()         SCL设置为GPIO输入

SDA_H()                  SDA输出高电平
SDA_L()                   SDA输出低电平
SDA_IN()                 读SDA引脚上的值(也就是读GPIODIR上的值)
SDA_DDR_OUT()    SDA设置为GPIO输出
SDA_DDR_IN()       SDA设置为GPIO输入
回复 支持 反对

使用道具 举报

发表于 2014-10-12 10:25:59 | 显示全部楼层
awindows 发表于 1413080504
是对鹰眼摄像头上的SCL和SDA两个引脚进行测量吗?

    顺便问一下山外哥,这个宏定义的函数的意义是不是这样:

SCL_H()                    SCL输出高电平
SCL_L()                     SCL输出低电平
SCL_DDR_OUT()      SCL设置为GPIO输出
SCL_DDR_IN()         SCL设置为GPIO输入

SDA_H()         ...
是的,宏定义的好处是可以方便移植。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-19 19:36:09 | 显示全部楼层
楼主问题解决没,我也遇到相同问题
回复 支持 反对

使用道具 举报

发表于 2014-10-19 19:37:21 | 显示全部楼层
zhu 发表于 2014-10-19 19:36
楼主问题解决没,我也遇到相同问题

之前可行的吗?有没有在线调试过?
代码卡死在哪里?




鹰眼 拔掉其他线,然后 万用表打到 测通路那个档
红色表笔 接地 (上螺丝的那个地方就是地),黑色表笔接 SCL和SDA
看看读到值是多少



回复 支持 反对

使用道具 举报

发表于 2014-10-20 18:21:40 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-19 19:37
之前可行的吗?有没有在线调试过?
代码卡死在哪里?

开始试就这样,值从200多开始涨,370+左右稳定了
回复 支持 反对

使用道具 举报

发表于 2014-10-20 18:23:41 | 显示全部楼层
zhu 发表于 2014-10-20 18:21
开始试就这样,值从200多开始涨,370+左右稳定了

那说明没烧的,估计是接线问题,或者核心板有管脚短路。或者代码配置问题。

好好检查一下吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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