Skip to main content
Explorer
June 9, 2025
Solved

STM32F767 Trouble with certain DMA channel/stream selections

  • June 9, 2025
  • 1 reply
  • 410 views

I'm trying to get the DMA engine to trigger transfers on TIM8_CH1 (DMA Request Mapping:  Channel 7, Stream 2). However, it's not working. I verified that the TIM8_CC1 looked good by driving it to an alternate function output. 

Then, all I changed was the DMA Request Mapping stream number: Channel 7, Stream 3, to select TIM8_CH2, and setup TIM8_CC2 instead of TIM8_CC1. Surprisingly this worked, and DMA is running as expected.

I then setup both TIM8_CC1 and TIM8_CC2 with the same settings, routed both to GPIO pins using alternate function outputs, and looked at both signals on an oscope: They are completely identical.

The only difference is setting up the DMA for TIM8_CH1 (stream 2) vs TIM8_CH2 (stream 3). For whatever reason, TIM8_CH1 (stream 2) doesn't work even though TIM8_CC1 is running.

Any ideas?

    This topic has been closed for replies.
    Best answer by stmcoder

    Hello, I found the issue. I wasn't setting up TIMx_DIER correctly per CC channel. All is working now. Thanks!

    1 reply

    Super User
    June 9, 2025

    > STM32F67 

    ??

    Something in the code is wrong. If you show the code, it may be possible to spot it.

    stmcoderAuthorAnswer
    Explorer
    June 10, 2025

    Hello, I found the issue. I wasn't setting up TIMx_DIER correctly per CC channel. All is working now. Thanks!