智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3094|回复: 9
打印 上一主题 下一主题

可怜可怜我啊....怎么配置OV7620摄像头啊?

[复制链接]

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
跳转到指定楼层
1#
发表于 2013-4-4 17:07:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
K60,系统频率211MHz
SCCB代码和OV7620配置代码如下,为什么就是不行呢!!!到底怎么配置摄像头啊,图像烂死了....

OV7620配置代码:
/////////////////////////////////////////////////////
配置摄像头:初始化函数
void ov7620_init(void)
{
        SIO_D_OUT;//sccb管脚初始化  输入方向
        SIO_C_OUT;//sccb管脚初始化  输入方向
        wrOV7620Reg(0x14, 0x24);//QVGA
        wrOV7620Reg(0x2D, 0x95);//自动亮度 自动适应光频率
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
写 摄像头寄存器 函数
void wrOV7620Reg(uint8 regID, uint8 regDat)
{
  uint8 i;
  uint8 ack;
  for(i=0;i<20;i++)
  {
    startSCCB();
    ack = SCCBwriteByte(0x42);
    if(ack==1){
      stopSCCB();
      continue;
    }
    ack = SCCBwriteByte(regID);
    if(ack==1){
      stopSCCB();
      continue;
    }
    ack = SCCBwriteByte(regDat);
    if(ack==1){
      stopSCCB();
      continue;
    }
    stopSCCB();
    if(ack==0) break;
  }
}
/////////////////////////////////////////////////////!!!!!!!!!!!!!!!!!!!!!!1
/////////////////////////////////////////////////////!!!!!!!!!!!!!!!!!!!!!!!
//功能:读OV7620寄存器         !!!!!!!!!看这函数,感觉有可能错!!!!!!!!!!!
//返回:1-成功 0-失败             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
uint8 rdOV7620Reg(uint8 regID, uint8 *regDat)
{
//通过写操作设置寄存器地址
startSCCB();
if(0==SCCBwriteByte(0x42))
{
  stopSCCB();
  return(0);
}
SCCBdelay();
  if(0==SCCBwriteByte(regID))
{
  stopSCCB();
  return(0);
}
stopSCCB();
SCCBdelay();

//设置寄存器地址后,才是读
startSCCB();
if(0==SCCBwriteByte(0x43))
{
  stopSCCB();
  return(0);
   }
SCCBdelay();
   *regDat=SCCBreadByte();
   SCCBdelay();
   stopSCCB();
   return(1);
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
SCCB:

void SCCBdelay()//  该延时函数测试过了,用它进行延时,然后对一个管脚输出取反,测得该脚输出频率为397KHz
{
    unsigned char a;
    for(a=39;a>0;a--)
      asm("nop");
   
}
/*
-----------------------------------------------
   功能: start命令,SCCB的起始信号
   参数: 无
返回值: 无
-----------------------------------------------
*/
void startSCCB(void)
{
    SIO_D_OUT;
    SIO_D_SET;     //数据线高电平
    SIO_C_SET;    //在时钟线高的时候数据线由高至低
    SCCBdelay();
    SIO_D_CLR;
    SCCBdelay();
    SIO_C_CLR;  //数据线恢复低电平,单操作函数必要
}
/*
-----------------------------------------------
   功能: stop命令,SCCB的停止信号
   参数: 无
返回值: 无
-----------------------------------------------
*/
void stopSCCB(void)
{
    SIO_D_OUT;
    SIO_D_CLR;
    SCCBdelay();
    SIO_C_SET;
    SCCBdelay();
    SIO_D_SET;
    SCCBdelay();
}
void SCCB_SendAck(uint8 ack)
{
  SIO_D_OUT;
  if(ack==1)
    gpio_ctrl (PORTB, 9, 1);
  else gpio_ctrl (PORTB, 9, 0);
  SIO_C_SET;
  SCCBdelay();
  SIO_C_CLR;
}

uint8 SCCBwriteByte(uint8 bytedata)
{
  uint8 i,ack;
  SIO_D_OUT;
  for(i=0;i<8;i++) //循环8次发送数据
  {
    if(bytedata&0x80){
      SIO_D_SET;
    }
    else{
      SIO_D_CLR;
    }
    bytedata<<=1;
    SCCBdelay();
    SIO_C_SET;
    SCCBdelay();
    SIO_C_CLR;
    SCCBdelay();
   }
   SIO_D_SET;
   SIO_D_IN;/*设置SDA为输入*/
   SCCBdelay();
   SIO_C_SET;
   SCCBdelay();
   ack = SIO_D_STATE;
   SIO_C_CLR;
   SCCBdelay();
   return ack;  
}
/*
-----------------------------------------------
   功能: 一个字节数据读取并且返回
   参数: 无
返回值: 读取到的数据
-----------------------------------------------
*/
uint8 SCCBreadByte(void)
{
uint8 read,j;
read=0x00;

SIO_D_IN;/*设置SDA为输入*/
for(j=8;j>0;j--) //循环8次接收数据
{      
  SIO_C_SET;
  SCCBdelay();
  read=read<<1;
  if(SIO_D_STATE)
  {
    read |=0x01;
  }
  SIO_C_CLR;
  SCCBdelay();
}
return(read);
}
/////////////////////////////////////////////////////

求代码........................发份能用的来!!!!
纠结好久了.................................


37

主题

565

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4385
威望
2300
贡献
1251
兑换币
1399
注册时间
2012-9-25
在线时间
417 小时
2#
发表于 2013-4-4 17:08:07 | 只看该作者
回复 支持 反对

使用道具 举报

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
3#
 楼主| 发表于 2013-4-4 20:49:59 | 只看该作者
突然 想起电平转换这回事!
摄像头与K60进行SCCB通信 应该要进行电平转换吧......一个3.3V,一个5V
可是电平转换怎么做呢? 以前都是用与门搞定的,可是现在好像不行的感觉...不过试过才知道!
我觉得不行是因为:
K6O与摄像头之间用74HC08进行电平转换:
1.7408是与门,它应该是单向性的吧?这样摄像头的应答信号怎么传给K60啊?

2.摄像头的信号传回来给K60不需要做5V转3.3的吗? 如果要,那与门根本不能实现啊!
求大神解答...........................急!!!!!!!!!!都快被气到 过清明了!!!
回复 支持 反对

使用道具 举报

48

主题

493

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2947
威望
1774
贡献
469
兑换币
705
注册时间
2012-4-22
在线时间
352 小时
毕业学校
hgd
4#
发表于 2013-4-7 19:56:56 | 只看该作者
尕玍紿 发表于 2013-4-4 20:49
突然 想起电平转换这回事!
摄像头与K60进行SCCB通信 应该要进行电平转换吧......一个3.3V,一个5V
可是电 ...

7620不是兼容3.3V吗?
回复 支持 反对

使用道具 举报

2

主题

30

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1421
威望
699
贡献
434
兑换币
108
注册时间
2012-3-10
在线时间
144 小时
5#
发表于 2013-4-8 09:27:19 | 只看该作者
尕玍紿 发表于 2013-4-4 20:49
突然 想起电平转换这回事!
摄像头与K60进行SCCB通信 应该要进行电平转换吧......一个3.3V,一个5V
可是电 ...

k60 IO口支持5伏输入的呃
回复 支持 反对

使用道具 举报

3

主题

79

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1093
威望
614
贡献
287
兑换币
333
注册时间
2012-7-26
在线时间
96 小时
毕业学校
北方工业大学
6#
发表于 2013-4-8 11:50:51 | 只看该作者
SCCB与I2C一样,需要上拉电阻。
回复 支持 反对

使用道具 举报

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
7#
 楼主| 发表于 2013-4-8 16:32:58 | 只看该作者
pois0n 发表于 2013-4-8 11:50
SCCB与I2C一样,需要上拉电阻。

谢谢....
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

高级会员

Rank: 4

积分
530
威望
213
贡献
107
兑换币
126
注册时间
2012-11-1
在线时间
105 小时
8#
发表于 2013-4-12 14:59:46 | 只看该作者
pois0n 发表于 2013-4-8 11:50
SCCB与I2C一样,需要上拉电阻。

上啦电阻是什么意思?怎么做的
回复 支持 反对

使用道具 举报

3

主题

79

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1093
威望
614
贡献
287
兑换币
333
注册时间
2012-7-26
在线时间
96 小时
毕业学校
北方工业大学
9#
发表于 2013-4-12 15:40:54 | 只看该作者
Likeu 发表于 2013-4-12 14:59
上啦电阻是什么意思?怎么做的

I2C信号线需要上拉电阻。详情百度一下,电阻和电压是有个适配关系的。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
威望
110
贡献
52
兑换币
59
注册时间
2013-3-3
在线时间
23 小时
毕业学校
哈尔滨理工大学
10#
发表于 2013-4-20 18:41:06 | 只看该作者
可以试用5V转3.3V电平转换芯片NLSX4373,转换速度20Mb/s.
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-24 09:26 , Processed in 0.088849 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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