mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [SAM7X] SPI mit SCC/PDC


Autor: digital (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich sitze hier vor einem kleinen Problem mit meinem AT91SAM7X512, dass 
ich alleine nicht gelöst bekomme. Ich möchte über SPI pro Frame 7 mal 2 
Bytes übertragen. Das ganze mit SCC/PDC.
Grundsätzlich funktioniert das auch, allerdings sind die einzelnen 
Datenblöcke um je 2 Bytes verschoben. Das heißt wenn ich mir anschaue, 
was empfangen wurde, dann habe ich WERT7, WERT1, WERT2 WERT3, WERT4, 
WERT5, WERT6 statt WERT1, WERT2, WERT3, WERT4, WERT5, WERT6, WERT7. Ich 
denke ich habe da an einer Stelle noch nicht ganz durchschaut, wie das 
Ganze funktioniert, obwohl ich die entsprechenden Stellen im Datenblatt 
nun schon mehrmals gelesen habe. Hat hier vielleicht jemand einen Tipp 
für mich?
*AT91C_PMC_PCER = (1 << AT91C_ID_SSC);
*AT91C_SSC_CR = AT91C_SSC_SWRST;
*AT91C_SSC_CMR = 3;
*AT91C_SSC_TCMR = AT91C_SSC_CKO_DATA_TX;
*AT91C_SSC_TFMR = AT91C_SSC_FSOS_LOW |
        (15) |
        (6 << 8) |
        AT91C_SSC_MSBF;
*AT91C_PIOA_PDR = (1 << 22) | (1 << 21) | (1 << 23);
*AT91C_SSC_CR = AT91C_SSC_TXEN;
if (*AT91C_SSC_TNCR == 0 && *AT91C_SSC_TCR == 0)
{
  if (*AT91C_SSC_RNCR == 0 && *AT91C_SSC_RCR == 0)
  {
    *AT91C_SSC_RPR = (unsigned int)&data;
    *AT91C_SSC_RCR = sizeof(data) / 2;
    *AT91C_SSC_RNCR = 0;
    *AT91C_SSC_PTCR = AT91C_PDC_RXTEN;
  }
}
typedef struct  _data {
  unsigned short value1;
  unsigned short value2;
  short value3;
  short value4;
  short value5;
  short value6;
  unsigned short value7;
} data, *pData;

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.