cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 SPI2 I2S Circular RX DMA not running, but TX DMA does, OVR set

h p
Associate III

Hello, I ported wokring code from STM32F4 to STM32H7 (STM32H7A3NI). So far most is working as expected, however on SPI2 used as I2S the circular RX DMA1 Stream3 does not start. NTD remains on its initial value 0x800. The SPI2 has RXP and OVR set. The TX DMA1 Stream4 works as expected. The DMA buffers are aligned and in DMA-reachable memory.

HAL_I2SEx_TransmitReceive_DMA (1.9.1) is used. The init order is not as described in the Reference Manual RM0455 Rev 7, page 2115. I also tried the Ref.M. order without success.

The following image shows the SPI2 registers after start 0693W00000LwDpgQAF.png The following 2 image show the state of the DMA1 Steam3 (RX) and Stream4 (TX) about a second from each other. The Stream3 NDT stays on 0x800 whereas Stream4 counts.

0693W00000LwDqPQAV.png0693W00000LwDqUQAV.png 

What could prevent DMA1 Stream3 from starting? Any help appreciated! Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
h p
Associate III

Resolved: missed to set AudioStreamRxDmaHandle.Init.Request = DMA_REQUEST_SPI2_RX

View solution in original post

1 REPLY 1
h p
Associate III

Resolved: missed to set AudioStreamRxDmaHandle.Init.Request = DMA_REQUEST_SPI2_RX