关于【野火】OV7725例程移植【OV7670】总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于OV7725程序移植OV7670总结

用了三天的时间,终于搞定了程序的移植。也是第一次移植stm32程序。

最终的移植成功版本,改了SCCB通信、FIFO读写时序、寄存器配置、引脚修改的一些地方。

一、移植过程中SCCB通信遇到的问题

1.由于野火的OV7725摄像头内置上拉电阻,所以在配置时SDA和SDL都被设置成了Mode_OD (开漏模式),但是战舰带的OV7670摄像头并没有内置上拉电阻,所以不能用开漏模式,否则不能正常输出高电平,SDA线也不会被主机拉高。

于是参考了战舰的例程。战舰对SCL线设置为了PP(推挽输出模式),SDA线的输出则需要切换。如下:

在战舰的例程上进行修改时,由于需要修改一些IO口,所以需要把这句改掉。我尝试用这样的手法修改:

发现并不可行。查询网络,原因可能是在运行中途修改管脚模式时,由于32的LCKK:锁密钥,并不能直接修改管脚工作模式。我们选择对底层寄存器进行操作。。

于是乎这样改:

*注:SDA为PC7口。

2. 还有需要修改的地方就是:在需要读取SDA电平状态的时候,要用SCCB_SDA_IN 这个语句把替换掉SDA_H,而不是先SDA_H 然后再SCCB_SDA_IN 。否则不能正确读取到SDA线的电平。

3.最后一步,器件ID:

在这一段代码用到:

二、FIFO读数据时序的修改

1.由于每个人选择的数据口可能不同,有的是0-7位,有的是8-15位,所以我这里给出了两种不同的读取时序。

H_MY_READ_FIFO_PIXEL(YUV)是当数据位选择的是8-15位时候用的;

L_MY_READ_FIFO_PIXEL(YUV)是当数据位选择的是0-7位时候用的。

*注:因为我要的二值化的图像,所以只读取了YUV 分量中的Y分量。

下面这段代码是读取RGB565的:

三、寄存器的配置

1. 我用的YUV,没有给每位寄存器重定义。所以要结合Datasheet自行查看。 /*以下为 YUV参数设置*/

{0x12, 0x10},

{0x3a, 0x14},

{0x3d, 0x80},

//0 0 : Y U Y V (3a:14 3d:80)

//0 1 : Y V Y U (3a:14 3d:81)

//1 0 : U Y V Y (3a:18 3d:80)

//1 1 : V Y U Y (3a:18 3d:81)

{0x67, 0x11}, //手工设置 U

{0x68, 0xFF}, //手工设置 V

{0x40, 0xC0}, //YUV输出

//输出窗口设置

{0x32, 0x80}, //HREF

{0x17, 0x16}, //HSTART

{0x18, 0x04},//HSTOP

{0x19, 0x02},//VSTRT

{0x1a, 0x7a},//0x7a, VSTOP

{0x03, 0x0a},//0x0a, VREF

{0x0c, 0x0c},

{0x15, 0x00},

{0x3e, 0x00},//10

{0x70, 0x00},

{0x71, 0x01},

{0x72, 0x11},

{0x73, 0x09},//

{0xa2, 0x02},//15

{0x11, 0x00},//时钟分频设置,0,不分频.

{0x7a, 0x20},

{0x7b, 0x1c},

{0x7c, 0x28},

{0x7d, 0x3c},//20

{0x7e, 0x55},

{0x7f, 0x68},

{0x80, 0x76},

{0x81, 0x80},

{0x82, 0x88},

{0x83, 0x8f},

{0x84, 0x96},

{0x85, 0xa3},

{0x86, 0xaf},

{0x87, 0xc4},//30

{0x88, 0xd7},

{0x89, 0xe8},

{0x13, 0xe0},

{0x00, 0x00},//AGC

{0x10, 0x00},

{0x0d, 0x00},

{0x14, 0x20},//0x38, limit the max gain {0xa5, 0x05},

{0xab, 0x07},

{0x24, 0x75},//40

{0x25, 0x63},

{0x26, 0xA5},

{0x9f, 0x78},

{0xa0, 0x68},

{0xa1, 0x03},//0x0b,

{0xa6, 0xdf},//0xd8,

{0xa7, 0xdf},//0xd8,

{0xa8, 0xf0},

{0xa9, 0x90},

{0xaa, 0x94},//50

{0x13, 0xe5},

{0x0e, 0x61},

{0x0f, 0x4b},

{0x16, 0x02},

{0x1e, 0x27},//图像输出镜像控制.0x07, {0x21, 0x02},

{0x22, 0x91},

{0x29, 0x07},

{0x33, 0x0b},

{0x35, 0x0b},//60

{0x37, 0x1d},

{0x38, 0x71},

{0x39, 0x2a},

{0x3c, 0x78},

{0x4d, 0x40},

{0x4e, 0x20},

{0x69, 0x5d},

{0x6b, 0x40},//PLL*4=48Mhz

{0x74, 0x19},

{0x8d, 0x4f},

{0x8e, 0x00},//70

{0x8f, 0x00},

{0x90, 0x00},

{0x91, 0x00},

{0x92, 0x00},//0x19,//0x66

相关文档
最新文档