STM32H7 SPI6 not working with DMA
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
Fixed issue with SPI not being able to send more than 65535 bytes.
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.