STM32U575 DCMI GPDMA Vertical Blanking
- July 11, 2026
- 0 replies
- 5 views
Hiya.
I’m currently trying to capture an image from the OV7670 camera module over DCMI + GPDMA. I’ve been able to capture images, but I’ve run into an odd issue with vertical blanking. Using the STM32U575RIT3. I have the module configured for RGB565 in QVGA and I can fully confirm that it is outputting what it is meant to, the issue is just with GPDMA and getting it into memory.
In GPDMA=Standard Request, I only get ¾ of the image, with the first ¼ being blanked.

In Linked List mode, I can only seem to get up to ½ of the image. I get ¼ with a single node, ½ with two nodes, but no more when introducing more nodes.

I can confirm that the GPDMA_CxDAR register shows that it has indexed by an entire image and reached the FrameEvent callback in StandardRequest Mode. In LinkedList mode, it seems to just lost the second half of the image as I do not get the callback and the DAR register records an increment of half the image.
Some notes:
- I’ve seen mention about the 64 kB boundary of LinkedList mode, but I’m not sure how to work around this if it really is the underlying issue.
- When I incorrectly configure the camera I receive an entire frame’s worth of information, no vertical blanking (in standard request mode).
- I have tinkered with the camera config to get a full frame in standard request mode, but the output image is stretched (as if it was stretched vertically to cover up the blanking).

- I have aligned the buffer:
ALIGN_32BYTES(uint32_t pBuffer[MAX_PICTURE_BUFF]); -
I have configured the GPDMA (and LL) to use words, increment on destination and not source.
-
I am using the memory browser to verify that the vertical blanking is a result of 0s and not a post-processing issue.
-
The image is QVGA (320x240), which is 76,800 pixels. In RGB565 for this camera, one pixel occupies two bytes, so the total size should be approximately 153.6 kB. It is also less than the max image size in Table 11: https://www.st.com/content/ccc/resource/technical/document/application_note/group0/c0/ef/15/38/d1/d6/49/88/DM00373474/files/DM00373474.pdf/jcr:content/translations/en.DM00373474.pdf
Since I’m getting most of the image, I’m assuming this isn’t a camera issue, rather an issue with configuring the GPDMA. I’m very new to GPDMA though, so the problem could be quite obvious!
Moving forward I’m hoping to understand the underlying issue behind both approaches (standard request and linked list) so I can better understand GPDMA and choose the better approach :).
