cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB55 QSPI and DMA

I have a custom board with a quadSPI chip installed. I can program a 256-byte page just fine using HAL_QSPI_Transmit(), which I'm monitoring with a logic analyzer. But when I try to do this with HAL_QSPI_Transmit_DMA(), nothing happens on the lines when I run that command, even though I have enabled and configured DMA for QSPI in the CubeMX, every QSPI and DMA register seems right to me, and when I step through the HAL_QSPI_Transmit_DMA() code, there are no errors. It just gets to the end of the function with no activity on the SPI lines. I'm using STM32CubeIDE v 1.90, and all my firmware packages say they're up to date.

I would appreciate any ideas to check.

By the way, I was able to speed up the HAL_QSPI_Transmit() function by a factor of two for my 256 byte page program by having it send words to the qspi rather than bytes, but in my application I have a lot of data processing to do in addition to fairly high-speed data logging, so I'd really rather not tie up the core for 160 usec (370 usec before my mod) for every flash page write.

I tried using the example DMA read/write, but the QSPI pins don't line up with my custom board, and my WB55 nucleo board doesn't have flash, so it doesn't get very far.

This discussion is locked. Please start a new topic to ask your question.
1 ACCEPTED SOLUTION

Accepted Solutions

Thanks for responding. Agreed, changing pins on the example to work with my board in hopes that I might find a difference is the next step I can take.

View solution in original post

2 REPLIES 2
TDK
Guru

Is DMA initialized before QSPI?

Hard to know without seeing code. HAL return codes should provide a clue. Inspecting registers can also help.

Shouldn't be too hard to port the QSPI examples to different pins by modifying the pin initialization.

If you feel a post has answered your question, please click "Accept as Solution".

Thanks for responding. Agreed, changing pins on the example to work with my board in hopes that I might find a difference is the next step I can take.