1

I want to setup an application, where a single trigger-factor (compare-match of a timer) shall request mutliple DMA streams (I.e. set new timer-value and send data to SPI)

Is this possible with the STM32F2x µC or have you got an idea for a µC with the following properties:

  1. compare-match free running uint16 timer
  2. ~8 DMA channels
  3. SPI HW unit (best would be with 9 chipselects, but these could be simulated via further DMA channels.
  4. clock-frequency >= 80MHz
  5. <=64 pins (I want to set my own layout and >64 is expected to be to complicate
  6. ~128kB RAM
  7. ~256kB ROM
  8. cheep (developer board ~20-100 EUR, "easy to use" toolchain, complete with JTAG or other programmer (best would be connection via USB)
Sergey Kalinichenko
  • 714,442
  • 84
  • 1,110
  • 1,523
  • I don't think you're going to be able to have multiple DMA streams pushing to the same SPI peripheral. – rjp Jun 19 '14 at 20:53

1 Answers1

1

I'm not sure if I understand what you're asking here, but a single timer channel can be used to trigger two different DMA streams. See Table 22 in Section 9.3.3 of the manual: for instance, TIM2_CH4 can be used to trigger both stream 6 and stream 7. Also, you can configure a timer to be a slave to a second timer, which I believe could be used to make them fire simultaneously, and then you could use the two different timers as a trigger to the DMA peripheral.

Sorry if I'm unable to elaborate further, as I'm more familiar with the STM32F1xx series which doesn't have the concept of streams, only channels.

swineone
  • 2,296
  • 1
  • 18
  • 32
  • The first part of this answer is incorrect. While TIM2_CH4 can indeed be used as a trigger to either stream 6 or stream 7, it can't be used simultaneously for both, and attempting to do so will result in one of the streams to be locked permanently. Guess how I know. – wek Sep 02 '23 at 13:33