Skip to main content
juliantbrown
Visitor II
July 16, 2015
Question

STM32F401: One DMA Stream Per PWM Channel on Timer3

  • July 16, 2015
  • 4 replies
  • 1167 views
Posted on July 16, 2015 at 08:37

The original post was too long to process during our migration. Please click on the attachment to read the original post.
    This topic has been closed for replies.

    4 replies

    waclawek.jan
    Super User
    July 16, 2015
    Posted on July 16, 2015 at 10:48

    > Is it possible to set up four DMA streams, each carrying the data for a different strip, and assign each of these DMA streams to different a PWM channel of timer 3?

    No.

    What prevents you to use 4 timers? There are plenty of them in each STM32.

    The real solution though is to use the DMA burst transfer, see TIMx_DCR/TIMx_DMAR. Don't expect many ready-made solutions out in the wild. The Reference Manual is your best friend.

    JW

    Tesla DeLorean
    Guru
    July 16, 2015
    Posted on July 16, 2015 at 20:10

    Wow a lot of WS2812B posts in recent weeks.

    Several people have been looking at using DMA-to-GPIO, and creating a pattern buffer.

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    Tesla DeLorean
    Guru
    July 16, 2015
    Posted on July 16, 2015 at 20:24

    > Is it possible to set up four DMA streams, each carrying the data for a different strip, and assign each of these DMA streams to different a PWM channel of timer 3?

     

     

    No.

     

    Are you sure? Is the F401 crippled in some fashion, because the table suggests each channel associates with it's own stream, and each TIM channel DMA is separately enabled.

    TIM3_CH1 DMA1 Stream4 Channel5

    TIM3_CH2 DMA1 Stream5 Channel5

    TIM3_CH3 DMA1 Stream7 Channel5

    TIM3_CH4 DMA1 Stream2 Channel5

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    waclawek.jan
    Super User
    July 24, 2015
    Posted on July 24, 2015 at 11:34

    >>> Is it possible to set up four DMA streams, each carrying the data for a different strip, and assign each of these DMA streams to different a PWM channel of timer 3?

     

    >> No.

     

    > Are you sure? Is the F401 crippled in some fashion, because the table suggests each channel associates with it's own stream, and each TIM channel DMA is separately enabled.

    Indeed. I stand corrected.

    Still, I see this as a great opportunity to talk someone into trying the TIMx_DMA/TIMx_DMAR mechanism... :)

    JW