www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7 - Problem SPI und Chip Select


Autor: Nobbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe aktuell Probleme mit dem AT91SAM7 und den SPI Interface.

Bei der I/O Konfiguration durchlaufe ich folgende Schritte:
// PIO disable register value (peripheral select will be used)
  uiREG_VAL_PIO_PDR   = ( PIN_TWD_IO_I2C_SDA                  |  //AT91C_PIO_PA3     -> I2C Data Line
                          PIN_TWCK_OUT_I2C_SCL                |  //AT91C_PIO_PA4     -> I2C Clock Line
                          PIN_MISO_IN_SPI_MISO                |  //AT91C_PIO_PA12    -> SPI MISO line
                          PIN_MOSI_OUT_SPI_MOSI               |  //AT91C_PIO_PA13    -> SPI MOSI line
                          PIN_SPCK_OUT_SPI_SPCK                  //AT91C_PIO_PA14    -> SPI SCK
                          );

// PIO output enable register 
  uiREG_VAL_PIO_OER   = ( PIN_PA0_OUT_STATUS_LED              |  //AT91C_PIO_PA0
                          PIN_PA1_OUT_ERROR_LED               |  //AT91C_PIO_PA1
                          PIN_PA7_OUT_5V_POWER_DOWN           |  //AT91C_PIO_PA7
                          PIN_NPCS2_OUT_SPI_CS2               |  //AT91C_PIO_PA10
                          PIN_NPCS0_OUT_SPI_CS0               |  //AT91C_PIO_PA11
                          PIN_NPCS3_OUT_SPI_CS3               |  //AT91C_PIO_PA22
                          PIN_PA23_OUT_USB_CHARGER_PEN1       |  //AT91C_PIO_PA23
                          PIN_PA24_OUT_3_3V_POWER_OFF         |  //AT91C_PIO_PA24
                          PIN_PA26_OUT_USB_CHARGER_CEN        |  //AT91C_PIO_PA26
                          PIN_NPCS1_OUT_SPI_CS1                  //AT91C_PIO_PA31
                          );
  AT91C_BASE_PIOA->PIO_PDR    = uiREG_VAL_PIO_PDR;
  AT91C_BASE_PIOA->PIO_PER    = uiREG_VAL_PIO_PER;
  AT91C_BASE_PIOA->PIO_ODR    = uiREG_VAL_PIO_ODR;
  AT91C_BASE_PIOA->PIO_OER    = uiREG_VAL_PIO_OER;


Mein Problem ist jetzt, sobald ich das Register AT91C_BASE_PIOA->PIO_OER 
setze, also die Pins auf Output schalte kriege ich sofort einen Reset 
Impuls auf NRST und der Controller läuft neu an. Das ganze ist dann 
natürlich eine Endless Loop, da er ständig I/O Init --> Reset 
durchläuft.

Ich bin absolut ratlos, woran kann das liegen?

Danke
Nobbie

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.