- UID
- 1029342
- 性别
- 男
|
数据口:PD0~PD15------------------------------------
调试SCCB有几个是我认为比较重要的,
一是一定要给摄像头系统时钟,你可以用stm32输出一个8M的时钟接到XCK1,太快了不行,我觉得SCCB工作的时候也是需要系统时钟提供的。
二是SCCB的data脚要上拉,在STM32io口设置的时候,要设置成上拉。设置成输入的时候上拉,我测试过,不上拉就不成功。
三是有个延时函数,时间不能够太短,还要小心你的延时代码不要被编译器优化掉了。
SCCB的代码我没有仔细看,是直接拿 wangguanfu 的AVR的代码来改的,只改了io口操作的部分,直接就成功了。
请直接看代码。
要有数据输出的话,首先要提供时钟,一定要提供时钟。我觉得不用配置也能有数据输出,没有实测,你就先把SCCB调好了再进行下一步吧。
----------------------------------------------
直接写BSRR会比GPIO_SetBits()快很多倍,在要求速度的情况下,我喜欢直接写BSRR
----------------------------------------------
我把它再初始化成了普通IO口了,然后由自己控制时钟。
它已经没有时钟输出了,除非你自己去控制io口输出时钟。
我就是想自己输出时钟,所以在sccb配置好了以后,把它改成了普通io
-----------------------------------------------
我专门把stm32f103的时钟频率从72M调到了16M,再自拍,除了图像反应变慢,其他没有区别
-----------------------------------------------
我已经把stm32f103的时钟频率从72M调到了16M了,图像还是可以采集正常,效果没法比较,因为我也还没有调节好
C8051f020的22M的晶振会比16M的stm32f103差很远么,这个我也不知道,
我的感觉是,频率慢一点也能够采集,当然是cpu越快越好了
stm32f103在16M的时候,我的程序已经差不多是10us采集一个点了,100k的频率这样子。
-------------------------------------------------
对啊,就是一个PCLK读一次数据,所以速度就是局限于stm32的中断响应速度,我现在是没有缓冲,读一个点数据,写一个点到屏
-------------------------------------------------
首先是是给摄像头提供时钟,然后通过SCCB初始化摄像头,然后依据时序每次pclk读一次数据,然后把数据组合成你想要的rgb数据。
同时必须处理的是行同步信号和帧同步信号,这直接关系到你所采的数据的x,y坐标,还有每个点的rgb数据的前后组合顺序。
具体看数据手册的时序图。最好你能够有逻辑分析仪,分析摄像头的数据输出,知道到底有没有数据。逻辑分析仪armok也有卖了,几百块。
用示波器也可以看一下信号。
先把SCCB调试好先吧,读取ov7660的id数据,能够读取和写入SCCB的话,基本上就完全成功了,剩下的都是些小事情。
---------------------------------------------------
ov7660是8位的 可以用16位的tft LCD(不支持8位)显示吗??
答:我用也是用的tft的16位模式。ili9320
回:【40楼】 money32
楼主你好,请问一下提供给系统的时钟一定要8M吗?低一点可以吗?
答:可以,但是对摄像头效果的影响未知……
我的程序里面是先用PA8输出8M的时钟,好初始化SCCB;初始化完成后,我把PA8改成了普通GPIO口模式,自己翻转来产生时钟。
----------------------------------------------
再请问一下,OV7600本身一般工作在什么频率范围内?
答:
典型值:24M
最小值:10M
最大值:48M
数据上面有
------------------------------------
下载:
http://download.ourdev.cn/bbs_upload245682/files_16/ourdev_453650.rar
相关帖子地址1:
18元摄像头(OV7660)+27元TFT液晶+M16显示成功!! 全套资料
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3401782&bbs_page_no=1&search_mode=1&search_text=ov7660&bbs_id=9999
地址二:
ATmega32L接ILI9325 320*240 TFT 驱动 OV7660摄像头,放图放资料
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3433467&bbs_page_no=1&search_mode=1&search_text=ov7660&bbs_id=9999
---------------------------------------
http://www.baidu.com/s?wd=SCCB++0x42
ov7660 数据手册里面搜索 42,有这么一句
The device slave addresses are 42 for write and 43 for read
---------------------------------------------
我也是飞线的,可是图像不怎么好,RGB高低BIT也颠倒试过,可是颜色总是不行,LZ可否指点一下
---------------------------------------------
这么夸张的图像应该是RGB 字节的对应问题。
两个方面:
1.ov7660 读回来是两个字节的,这两个字节的顺序你换下看看
2. r g b 565的位数还有顺序再核对一下
还有可能,你接摄像头的数据线有误?
-----------------------------------------------
我无聊在刷屏看阿莫发的模特照片,所以回复快
76 01110110
ec 11101100
60 01100000
c0 11000000
所以你的sccb 错位了 一位
---------------------------------
阿客,为什么7660要用模拟时钟呢,用系统时钟不行吗?
可以啊,我用模拟时钟是为了在cpu处理中断的时候停掉时钟信号,以免丢失数据,也可以说是为了同步。
wangguanfu 有个帖子 直接用模拟时钟做到了20帧每秒 320*240. |
|