MSP430F1611: DMA und SPI

OP #1724620
Lesenswert?
• ▲
▼
Hallo!

Ich benutze bei einem MSP430F1611 UART1 als SPI. Geht soweit auch. Jetzt 
will ich den DMA-Controller einsetzen, aber der legt nicht los. Am Logic 
Analyzer sehe ich, dass nichts am SPI passiert.
1
// UART1 als SPI
2
#include <io430.h>
3
#include "spi.h"
4

5
#define PIN_MOSI 0x02
6
#define PIN_MISO 0x04
7
#define PIN_SCK  0x08
8

9
char spi_sendrecv(char c)
10
{
11
  while(!(IFG2&UTXIFG1));
12
  U1TXBUF=c;
13
  while(!(IFG2&URXIFG1));
14
  return U1RXBUF;
15
}
16

17
void spi_senddma(char* p, unsigned short n)
18
{
19
  DMACTL0=DMA0TSEL_10; // UTXIFG1 bit
20
  DMA0SA=(unsigned short)p;
21
  DMA0DA=(unsigned short)&U1TXBUF;
22
  DMA0SZ=n;
23
  DMA0CTL=DMADT_1+DMASRCINCR_3+DMADSTINCR_0+DMASBDB+DMAEN;
24
  // Block Transfer+Src incr+Dst const+Src/Dst Bytes+DMA Enable
25
}
26

27
void spi_init(void)
28
{
29
  P5DIR|=PIN_MOSI|PIN_SCK;              // Direction
30
  P5DIR&=~PIN_MISO;
31
  P5OUT&=~(PIN_MOSI|PIN_MISO|PIN_SCK);  // Output Register
32
  P5SEL|=PIN_MOSI|PIN_MISO|PIN_SCK;     // Special Func Select
33
  ME2|=USPIE1;                          // Module Enable
34
  U1CTL=SWRST|MM|SYNC|CHAR;
35
  U1TCTL=SSEL1|SSEL0|STC|CKPL;
36
  U1BR0=2;                              // Bitrate
37
  U1BR1=0;
38
  U1MCTL=0;                             // Modulation
39
  U1CTL&=~SWRST;                        // Reset zurücknehmen
40
}

Wie gesagt, spi_init() und spi_sendrecv() funktionieren soweit.

Wo ist mein Problem?

fchk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.