Cause of Overrun Error (OVR) in DCMI
So I want to briefly explain my project. I am using STM32F746 MCU for my smart home project. In this project I have to include live stream from a PAL camera. I am using a TW9912 to get 8 bit progressive YCbCr after which I convert to RGB and display it on screen. My display resolution is 800x480 pixels. I am using the crop feature to get 720x480 window to display the video. I am fairly experienced with STM32MCUs and especially DCMI as I have used digital cameras for my system which work fine.
The problem is that when I run the program the DCMI is capturing just one frame or sometimes a fraction of a frame before it disables DMA due to an overrun error. I tried getting the same resolution with a digital camera, progressive YCbCr 8 bit, it works fine without any problem. Same program, same hardware connections to DCMI but one causes an error and the other doesnt. I verified the signals from the decoder chip, and all are normal. Infact an interesting thing I found out is when I choose to capture alternative bytes from the data received, the video plays normally, albeit its divided into 4 lower resolution windows due to the lost bytes. This has had me baffled on what maybe causing the overrun. The AN5020 on DCMI for STM32MCUs does not give clear explanation on what may cause the overru or how to avoid it. And on forums there is just one thread related to DCMI overrun in which the OVR cause was unanswered.
Could Someone please help on the probable cuases of the OVR and guide me on where I may be doing wrong.
Many Thanks