Skip to main content
Visitor II
June 27, 2024
Solved

stm32H753 spi6 BDMA interrupt

  • June 27, 2024
  • 3 replies
  • 1211 views

hi ALL

I use stm32h753.

1) SPI1 , DMA , DMA1_Stream0 

2) HAL_SPI_Transmit_DMA(&hspi1, gAudioTxBuffer, VS1063_DMA_TX_LEN);

3) void SPI1_IRQHandler(void) interrrupt 

==> Very well

but

1) SPI6 , BDMA , BDMA_Channel0

2) HAL_SPI_Transmit_DMA(&hspi6, gAudioTxBuffer, VS1063_DMA_TX_LEN);

3) void SPI6_IRQHandler(void) not interrrupt 

=> not interrupt

I don't know why spi6 doesn't get interrupt. Do you know why? Please tell me how to solve it

 

Thanks.

 

    This topic has been closed for replies.
    Best answer by mƎALLEm

    Hello,

    I'm quite sure,  your audio buffer gAudioTxBuffer is located in one of the SRAMs in D2 domain. since you succeeded with the first case.

    But BDMA can't access to these SRAMs and has access only to the resources in D3 domain as shown in the Table 3 from RM0433:

    SofLit_0-1719846352636.png

    So in your case, to use BDMA, you need to relocate your audio buffer to SRAM4.

    SofLit_1-1719846802007.png

    Hope it does answer your question.

    3 replies

    Technical Moderator
    July 1, 2024

    Hello @togsin ,

    It maybe the issue is related to the memory location of the AudioTx buffers in case the linker of your project maps your audio Tx buffers to DTCM-RAM (which is not accessible by BDMA).

    BDMA does not have access to resources located outside of the D3 domain.

    So, the audio buffers need to be remapped to SRAM4, which is accessible by BDMA.

    This information is provided in the reference manual RM0433 in section 2.4 Embedded SRAM and in the application note AN4891 in section 2.4 STM32H72x/73x/74x/75x interconnect matrix.

    I hope that I've answered your question.

     

    mƎALLEmAnswer
    Technical Moderator
    July 1, 2024

    Hello,

    I'm quite sure,  your audio buffer gAudioTxBuffer is located in one of the SRAMs in D2 domain. since you succeeded with the first case.

    But BDMA can't access to these SRAMs and has access only to the resources in D3 domain as shown in the Table 3 from RM0433:

    SofLit_0-1719846352636.png

    So in your case, to use BDMA, you need to relocate your audio buffer to SRAM4.

    SofLit_1-1719846802007.png

    Hope it does answer your question.

    Technical Moderator
    July 15, 2024

    Hello @togsin ,

    Please close this thread if one of the comments answered your question.

    Please click on "Accept as Solution" the answer you feel it answered your question.

    Thank you.