www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Initialisierung auf AT91SAM7S


Autor: Peter Pippinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo NG,

kann mir bitte jemand sage, der schon mal SPI auf dem AT91SAM7S
verwendet hat, ob die SPI-Initialisierung so passt (Die Pins vom 
SD-Kartenleser sollen zugewiesen werden)? Oder habe ich noch was 
vergessen?

Vielen Dank!
Peter

init_spi:

  // verwendete Register auf Stack legen
  PUSH  {r0, r1}

  // Basisadresse setzen
  LDR  r0, =PIO_BASE

  // den entsprechenden PINS die Funktion zuweisen
  LDR  r1, =BIT11 | BIT12 | BIT13 | BIT14
  STR  r1, [r0, #PIO_PDR]
  STR  r1, [r0, #PIO_ASR]
  LDR  r1, =0
  STR  r1, [r0, #PIO_BSR]

  // Basisadresse setzen
  LDR  r0, =PIO_BASE

  // enable SPI-Clock (ID=5)
  LDR  r1, =1 << 5
  STR  r1, [r0, #PMC_PCER]

  // Basisadresse setzen
  LDR  r0, =SPI_BASE

  // SPI-MODE: fixed
  LDR  r1, =0x81;    // SPI Enable, Software Reset
  STR  r1, [r0, #SPI_CR]
  LDR  r1, =0x01;    // SPI Enable
  STR  r1, [r0, #SPI_CR]
  LDR  r1, =0xE0011;    // Master Mode, Fixed Select
  STR  r1, [r0, #SPI_MR]
  LDR  r1, =0x4A02;    // 8bit, CPOL: 0, ClockPhase: 1,
  STR  r1, [r0, #SPI_CSR0]  // SCLK: 200kHz

  // Basisadresse setzen
  LDR  r0, =PDC_BASE
  LDR  r1, =AT91C_PDC_TXTEN | AT91C_PDC_RXTEN
  STR  r1, [r0, #PDC_PTCR]

  // Basisadresse setzen
  LDR  r0, =SPI_BASE
  STR  r1, [r0, #SPI_PTCR]

  // urspruengliche Register vom Stack holen
  POP  {r0, r1}

  // Zurueck aus Subroutine
  MOV  pc, r14

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.