cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6: DMA2D is not working with AXISRAM3

akosnagy
Visitor

Hi,

I have a DMA2D issue with a STM32N6 Nucleo-144 board. I can use the DMA2D to blend two framebuffers if the inputs are in the AXISRAM1. However, when one of the framebuffers is in AXISRAM3 (NPU RAM), the DMA2D doesn't copy from the relevant framebuffer. There is no error, but the output is invalid.

I can copy to the AXISRAM3 using HPDMA without any issue. I have configured the RISAF4/5/6; otherwise, I am unable to copy to AXISRAM3. 

This is the code to configure RISAF4/5/6 (NPU RAMs):

  __HAL_RCC_RISAF_CLK_ENABLE();

  RISAF4->REG[0].CFGR = 0x00000000;
  RISAF4->REG[1].CFGR = 0x00000000;
  RISAF4->REG[0].CIDCFGR = 0x000F000F; /* RW for everyone */
  RISAF4->REG[0].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF4->REG[0].CFGR = 0x00000101;     /* enabled, secure, unprivileged for everyone */
  RISAF4->REG[1].CIDCFGR = 0x00FF00FF; /* RW for everyone */
  RISAF4->REG[1].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF4->REG[1].CFGR = 0x00000001;     /* enabled, non-secure, unprivileged*/

  RISAF5->REG[0].CFGR = 0x00000000;
  RISAF5->REG[1].CFGR = 0x00000000;
  RISAF5->REG[0].CIDCFGR = 0x000F000F; /* RW for everyone */
  RISAF5->REG[0].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF5->REG[0].CFGR = 0x00000101;     /* enabled, secure, unprivileged for everyone */
  RISAF5->REG[1].CIDCFGR = 0x00FF00FF; /* RW for everyone */
  RISAF5->REG[1].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF5->REG[1].CFGR = 0x00000001;     /* enabled, non-secure, unprivileged*/

  RISAF6->REG[0].CFGR = 0x00000000;
  RISAF6->REG[1].CFGR = 0x00000000;
  RISAF6->REG[0].CIDCFGR = 0x000F000F; /* RW for everyone */
  RISAF6->REG[0].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF6->REG[0].CFGR = 0x00000101;     /* enabled, secure, unprivileged for everyone */
  RISAF6->REG[1].CIDCFGR = 0x00FF00FF; /* RW for everyone */
  RISAF6->REG[1].ENDR = 0xFFFFFFFF;     /* all-encompassing */
  RISAF6->REG[1].CFGR = 0x00000001;     /* enabled, non-secure, unprivileged*/

Has anyone successfully used DMA2D with AXISRAM3?

Best Regards,

Ákos

0 REPLIES 0