STM32H7 SPI2 I2S Circular RX DMA not running, but TX DMA does, OVR set
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-29 10:56 PM
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 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.
What could prevent DMA1 Stream3 from starting? Any help appreciated! Thanks in advance.
Solved! Go to Solution.
- Labels:
-
DMA
-
I2S
-
SPI
-
STM32H7 Series
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-29 11:29 PM
Resolved: missed to set AudioStreamRxDmaHandle.Init.Request = DMA_REQUEST_SPI2_RX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-29 11:29 PM
Resolved: missed to set AudioStreamRxDmaHandle.Init.Request = DMA_REQUEST_SPI2_RX
