cancel
Showing results for 
Search instead for 
Did you mean: 

Why DCMI DMA in STM32H7A3 can not transmit the image data to external memories either through FMC or OCTOSPI HYPER memory?

MSale.1
Senior

I always need to use the internal memory for the incoming image buffer

@Imen DAHMEN​ 

1 ACCEPTED SOLUTION

Accepted Solutions

I understand now your problem.

This is a known issue with CubeMx v6.3.0 : the MX_DMA_Init() shall be called BEFORE any other peripheral initialization when DMA is used.

and this will be fixed in the next release of CubeMx (see this post for more details).

Thanks for your contribution and don't hesitate to come back to the Community if you have issues.

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

View solution in original post

3 REPLIES 3
Imen.D
ST Employee

Hello @Community member​ 

The DCMI is not mapped and cannot write there, please refer to the RM0455 in System architecture figure, or the Bus Matrix.

0693W00000FD8LIQA1.jpgAs described in the RM0455:

The data are packed into a 32-bit data register (DCMI_DR) and then transferred through a general-purpose DMA channel.

The image buffer is managed by the DMA, not by the camera interface.

So, in this case I advise you to use GPDMA feature.

Hope that I've answered your question.

If this the case, please close this post by clicking the "Select as Best" button on my reply. This will help other members of the community find this response more quickly :)

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

@Imen DAHMEN​ 

Hi,

I know that the DCMI has no DMA and it must be linked with either DMA1 or 2.

the problem with in my code but other problem related to the CUBE IDE is that sometimes it initialize DCMI before the DMA which cause that DMA can not transfer any data.

Regards

Mahmoud

I understand now your problem.

This is a known issue with CubeMx v6.3.0 : the MX_DMA_Init() shall be called BEFORE any other peripheral initialization when DMA is used.

and this will be fixed in the next release of CubeMx (see this post for more details).

Thanks for your contribution and don't hesitate to come back to the Community if you have issues.

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen