← index #6257Issue #3851
Related · medium · value 0.628
QUERY · ISSUE

STM32H7 SPI6 not working with DMA

openby rcordeauopened 2020-07-19updated 2026-01-14
port-stm32

Hi,
I was trying this out on a custom board as well as the Nucleo STM32H743SZI board, and while SPI3 works when sending multiple bytes (default behavior when sending more than 1 byte seems to be to use DMA per spi.c), when it comes to SPI6, it uses a different DMA engine (DMA2) and goes through a mux BDMA_REQUEST_SPI6_TX/RX. I keep getting a ETIMEDOUT error due to waiting for the interrupt to come back from the DMA transaction. Any advice, or could this be a bug?

Thanks,
Rob

CANDIDATE · ISSUE

Fixed issue with SPI not being able to send more than 65535 bytes.

closedby kwagyemanopened 2018-06-09updated 2018-06-18

See the github commit here:

https://github.com/kwagyeman/micropython/commit/d841047f9ac9ce33dd211d031dd42358903b615b

Basically, when you transmit (send/receive) using SPI on any STM32 board the STM32 HAL DMA Transmit receive method doesn't handle more than 65535 bytes at a time so you need to issue multiple DMA requests to fix the issue. A user found this problem on the OpenMV forums.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied