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

2019-07-20 16:34发布

使用环境如下:
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画面显示会有花屏的现象。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。