www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F1611: DMA und SPI


Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht 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.
// UART1 als SPI
#include <io430.h>
#include "spi.h"

#define PIN_MOSI 0x02
#define PIN_MISO 0x04
#define PIN_SCK  0x08

char spi_sendrecv(char c)
{
  while(!(IFG2&UTXIFG1));
  U1TXBUF=c;
  while(!(IFG2&URXIFG1));
  return U1RXBUF;
}

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

void spi_init(void)
{
  P5DIR|=PIN_MOSI|PIN_SCK;              // Direction
  P5DIR&=~PIN_MISO;
  P5OUT&=~(PIN_MOSI|PIN_MISO|PIN_SCK);  // Output Register
  P5SEL|=PIN_MOSI|PIN_MISO|PIN_SCK;     // Special Func Select
  ME2|=USPIE1;                          // Module Enable
  U1CTL=SWRST|MM|SYNC|CHAR;
  U1TCTL=SSEL1|SSEL0|STC|CKPL;
  U1BR0=2;                              // Bitrate
  U1BR1=0;
  U1MCTL=0;                             // Modulation
  U1CTL&=~SWRST;                        // Reset zurücknehmen
}

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

Wo ist mein Problem?

fchk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.