This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5438A Timer + DMA Operation



Need suggestions on my applcation:

I’ve been working with is developing a timing application that requires a bit more deeper knowledge of how the MSP430 DMA engine works in conjunction with TIMER A and TIMER B. I'm using the 5438A device with 16k of RAM; the limiting factor is memory, and I need to operate in a very low power state. Here’s what I'm trying to do: 

  • Generate a 12-bit 10us pulse in ½ second increments
  • Use the DMA to trigger the Timer
  • The timer count sequence is stored in RAM
    • At 500ms refresh rates, I runs out of memory (would need upwards of 200k of RAM to store the values)

 Can you point me in a direction that will give him me a better understanding of how I can work around his memory limitation?

-David

  • Hi David,

    It sounds a little bit like an application I have where I have a queue of timer compare values in RAM, and the DMA keeps feeding the Timer from this queue.  The CPU has to keep the queue stuffed, ahead of the DMA controller.  Because the complete sequence is quite long, the DMA controller operates in repeated single transfer mode, and the queue is implemented as a circular buffer.

    However, I'm not totally following some of your descriptions.  What is a "12-bit 10us pulse"?  Is each timer count 10us?  Like a 100kHz spreading sequence or something?  Note that Timer B can operate in 8-bit mode which can help reduce your memory requirements if no leg is longer than 256 timer counts.

    Also when you say "DMA to trigger the Timer" is it possible you mean it the other way around?  The timer triggers the next DMA transfer to the timer?

    Jeff

**Attention** This is a public forum