cancel
Showing results for 
Search instead for 
Did you mean: 

stm32H753 spi6 BDMA interrupt

togsin
Associate II

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.

 

1 ACCEPTED SOLUTION

Accepted Solutions
SofLit
ST Employee

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.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

3 REPLIES 3
Imen.D
ST Employee

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.

 

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

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.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
SofLit
ST Employee

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.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.