UC3C SPI UNDES trotz master

Gast #3013234
Lesenswert?
• ▲
▼
Hallo,

ich verzweifle langsam bei dem Versuch den SPI meines AT32UC3C0512C als 
Master zum Laufen zu bekommen.

Ich verwende die Pins PB10-PB13 in ihre Peripheral function B:
spi_port->pmr2c = (1 << (AVR32_PIN_PB10 & 0x1F));
spi_port->pmr1c = (1 << (AVR32_PIN_PB10 & 0x1F));
spi_port->pmr0s = (1 << (AVR32_PIN_PB10 & 0x1F));
spi_port->gperc = (1 << (AVR32_PIN_PB10 & 0x1F));

und initialisiere den SPI0 als Master exakt so wie es der SPI Master 
driver des ASF es vorgibt:

//Reset SPI0
AVR32_SPI0.cr = AVR32_SPI_CR_SWRST_MASK;
//Set Master-Mote of SPI0
AVR32_SPI0.MR.mstr = 1;
//Disable Modfault of SPI0
AVR32_SPI0.MR.modfdis = 1;
//Disable Loopback
AVR32_SPI0.MR.llb = 0;
//Set Chip Select of SPI0
AVR32_SPI0.MR.pcs = 0b1111;
//Disable Variable Chip Select of SPI0
AVR32_SPI0.MR.ps = 0;
//Disable Chip Select Decoding of SPI0
AVR32_SPI0.MR.pcsdec = 0;
//Set Chip Select Delay of SPI0
AVR32_SPI0.MR.dlybcs = 0;
//Set Transfer-Delay of SPI0->NPCS0
AVR32_SPI0.CSR0.dlybct = 0;
//Set SPCK-Delay of SPI0->NPCS0
AVR32_SPI0.CSR0.dlybs = 0;
//Set 8Bit-Transfer of SPI0->NPCS0
AVR32_SPI0.CSR0.bits = 0;
//Set Serial Clock Baud Rate of SPI0->NPCS0
AVR32_SPI0.CSR0.scbr = 0b110;
//Set Active After Transfer of SPI0->NPCS0
AVR32_SPI0.CSR0.csaat = 1;
//Set SPI-Mode of SPI0->NPCS0
AVR32_SPI0.CSR0.cpol = 0;
AVR32_SPI0.CSR0.ncpha = 1;
//Enable SPI0
AVR32_SPI0.cr = AVR32_SPI_CR_SPIEN_MASK;

Auch der PBC treibt das SPI0 Modul korrekt an da das Statusregister 
werte enthält.

Jedoch leider die falschen.
Direkt nach der Aktivierung enthält das Statusregister des SPI0 
folgenden wert:
0x10202 ->
1 in SPIENS (SPI Enable Status)
1 in UNDES (Underrun Error Status (Slave Mode Only))
1 in TDRE (Transmit Data Register Empty)

Ich verstehe nicht weshalb UNDES gesetzt ist obwohl der SPI0 sich 
nachweislich im Master Mode befindet.
Selbstverständlich verweigert das Modul jegliche Kommunikation.

Ich gucke nun schon seit na Stunde auf den Code und finde den Fehler 
nicht.

Hat jemand eine Vorahnung woran es liegen könnte und was ich noch prüfen 
könnte?

Gruß Denis

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.