Skip to main content
Szabi
Associate
November 25, 2019
Solved

STM32F427 DMA transfer error -- why? (not CCM issue)

  • November 25, 2019
  • 1 reply
  • 2907 views

Hi,

I'm getting a DMA transfer error on an STM32F427, but don't know why. I've already ruled out memory areas (ie. CCM) not accessible by DMA. Here are my registers:

0690X00000AsR1iQAF.png

As you can see, S0M0AR is located in SRAM, S0PAR is a GPIO BSRR register. The transfer is triggered periodically by a timer, which seems to work because after the timer fires, I get TEIF0 and TCIF0 set in LISR, indicating a transfer error, but I don't know why. Datasheet doesn't help either.

I'm trying to implement this: https://www.pjrc.com/teensy/td_libs_OctoWS2811.html (scroll all the way down to "OctoWS2811 Technical Details".

Any idea what's happening?

Thanks,

--

Szabi

This topic has been closed for replies.
Best answer by waclawek.jan

> S0PAR is a GPIO BSRR register

If this is DMA1 that explains the error - DMA1 can't access anything but APB1 peripherals on its peripheral port.

You'll need to use DMA2, thus TIM1 or TIM8.

JW

PS. Please change your username to a normal nick.

1 reply

waclawek.jan
waclawek.janBest answer
Super User
November 25, 2019

> S0PAR is a GPIO BSRR register

If this is DMA1 that explains the error - DMA1 can't access anything but APB1 peripherals on its peripheral port.

You'll need to use DMA2, thus TIM1 or TIM8.

JW

PS. Please change your username to a normal nick.

Szabi
SzabiAuthor
Associate
November 25, 2019

Nice catch @Community member​! Thanks, it works now. Updated my nickname.