Skip to main content
h p
Associate III
March 30, 2022
Solved

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

  • March 30, 2022
  • 1 reply
  • 1217 views

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.

This topic has been closed for replies.
Best answer by h p

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

1 reply

h p
h pAuthorBest answer
Associate III
March 30, 2022

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