OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9262|回复: 6

OV2640+DCMI+DMA双缓冲+外部SRAM的问题

[复制链接]

22

主题

180

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2015-6-29
在线时间
101 小时
发表于 2015-12-2 21:18:02 | 显示全部楼层 |阅读模式
5金钱
使用环境如下:
1、OV2640使用DCMI接口,配置为800*600 RGB 15fps输出,然后开窗口为320*240或者640*480;
2、通过DMA双缓冲方式(因为数据数量超过了65535),将OV2640数据搬运到一个使用外部SRAM的大数组中;
3、捕获一帧后把SRAM的存储数据再显示到LCD上(其实跟直接把OV2640数据搬运到LCD显示差不多,因为后续还要处理,所以中间先放到SRAM中)

问题描述:
1、当开窗为320*240时,将SRAM中收到的数据再显示到LCD上,画面是正常的;
2、当开窗为640*480时,画面显示到LCD上有断层和闪绿点的情况,感觉像是中间某些数据传送到SRAM数组时丢失了;
3、后来我把SRAM的读写速度加快了,其实就是把readWriteTiming.FSMC_DataSetupTime改小了,画面就正常了。

请问,这是因为DCMI数据更新太快,导致传送到SRAM时数据丢失或者错位吗?对F4的DMA双缓冲还不太熟,不知道是不是哪里操作不对。
PS:之前OV2640->DMA->LCD->RAM时也发现过LCD的读写时序太慢时,LCD画面显示会有花屏的现象。

最佳答案

查看完整内容[请看2#楼]

是的,DCMI输出速度,大于SRAM的写入速度,就会出错。 只能提高SRAM速度,或者降低DCMI的输出速度。
我是菜鸟
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-12-2 21:18:03 | 显示全部楼层
是的,DCMI输出速度,大于SRAM的写入速度,就会出错。
只能提高SRAM速度,或者降低DCMI的输出速度。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

22

主题

180

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2015-6-29
在线时间
101 小时
 楼主| 发表于 2015-12-2 22:10:18 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
果然如此,谢谢原子哥
我是菜鸟
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-16
在线时间
3 小时
发表于 2016-4-19 20:06:04 | 显示全部楼层
楼主厉害,正在做,焦头烂额
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-16
在线时间
3 小时
发表于 2016-4-19 20:08:53 | 显示全部楼层
想请教一下DMA的配置
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2016-5-11 11:27:40 | 显示全部楼层
正点原子 发表于 2015-12-2 21:18
是的,DCMI输出速度,大于SRAM的写入速度,就会出错。
只能提高SRAM速度,或者降低DCMI的输出速度。

原子哥,降低DCMI的输出速度就是降低PCLK 的频率吧,怎么降下来?  我的现在也遇到这种问题,后半帧图像丢失
博观而约取,厚积而薄发。
回复

使用道具 举报

11

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
金钱
210
注册时间
2016-7-27
在线时间
60 小时
发表于 2017-3-3 09:23:01 | 显示全部楼层
楼主,能不能发一下你的程序,我和你遇到了同样的问题,我也想用RGB565的方式,通过DMA双缓冲方式(因为数据数量超过了65535),将OV2640数据搬运到一个使用外部SRAM的大数组中,你的第一个问题是怎么解决的,我的不行,求指导!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 07:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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