OV5640+STM32F429实现拍照10%几率出现图片断层

2019-07-20 02:20发布

微信图片_20190308192345.jpg 微信图片_20190308192354.png 微信图片_20190308192358.jpg 微信图片_20190308192405.jpg 微信图片_20190308192408.jpg

如图实物图和图片。通过按键触发拍照,然后STM32F429通过DMA将OV5640生成的JPEG图像(2592x1944 pixels)搬运至外部SDRAM,然后再直接通过USB HS (外置phy USB3300)虚拟串口(CDC)传输到PC进行显示。MCU会在拍照完成得到DCMI_Frame中断后去检索图片头FF D8 和 图片尾FF D9, 如果同时检索到收尾再将整个图片发送出去。在出现的10%的断层图片里面,USB并没有丢包。
本人更倾向于是OV5640的软件控制这块出了问题但不排除USB传输,MCU 数据搬运时或者其余硬件异常比如摄像头是否排线过长等。所以希望有做过类似项目的朋友如果有遇到类似问题给点指导。感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
几何物联
1楼-- · 2019-07-21 18:28
把jpeg_line_size从2K改为了8K。测了半小时。仍然有5-6次断层显示。看了下,大部分时间都是分为3块。而这3块调下顺序也是一张完整的图片,所以估计图像刚拍照时是OK的。可能是DMA传输时的bug或者USB传输到PC时的bug。明天继续测试。。。 QQ截图20190319233250.png QQ截图20190319233030.png QQ截图20190319232854.png QQ截图20190319232807.png 2019-3-19---2.png QQ截图20190319232112.png 2019-3-19——1.png
几何物联
2楼-- · 2019-07-22 00:09
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-22 02:58
 精彩回答 2  元偷偷看……
几何物联
4楼-- · 2019-07-22 03:58
正点原子 发表于 2019-3-23 03:16
剪短和摄像头的连线,加大缓冲区

摄像头线改为了短线,5cm。500W像素的时候一样地存在断层而且也存在出现概率不确定性。然后像素输出改为100W之后有所改善,但断层问题仍然存在。测试了1000次出现2次断层。而且现象也一致。都是分为3块。最上面应该是正常的,然后底部左右被调换。视觉上调换过来之后整个3块是一张完整的图片。

buffer size 尝试往8k以上12K,16K,20k上加的话基本出现抓不到图片包头(FF D8)包尾(FF D9).

短线摄像头.jpg 断层100W short 2.png 断层100W short 1.png


几何物联
5楼-- · 2019-07-22 07:47
原因是图片在USB发送时丢包了。我是用的USB HS, 按512Byte为一个packet发送的。后面发现丢的都是512的倍数。原子的例程是用的UART,是否一样存在丢包问题没有去验证。反正我最终设计在上位机每收到一个packet后都主动给设备应答,然后设备再发下一个包。反正实测ST自己的USB HS 发送函数while(CDC_Transmit_HS(ppbuf,512)!=USBD_OK) 当得到USBD_OK后再发下一个包不是百分百稳定。 QQ截图20190410194446.png USB HS code.jpg

一周热门 更多>