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


von Nobbie (Gast)


Lesenswert?

Hi,

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

Bei der I/O Konfiguration durchlaufe ich folgende Schritte:
1
// PIO disable register value (peripheral select will be used)
2
  uiREG_VAL_PIO_PDR   = ( PIN_TWD_IO_I2C_SDA                  |  //AT91C_PIO_PA3     -> I2C Data Line
3
                          PIN_TWCK_OUT_I2C_SCL                |  //AT91C_PIO_PA4     -> I2C Clock Line
4
                          PIN_MISO_IN_SPI_MISO                |  //AT91C_PIO_PA12    -> SPI MISO line
5
                          PIN_MOSI_OUT_SPI_MOSI               |  //AT91C_PIO_PA13    -> SPI MOSI line
6
                          PIN_SPCK_OUT_SPI_SPCK                  //AT91C_PIO_PA14    -> SPI SCK
7
                          );
8
9
// PIO output enable register 
10
  uiREG_VAL_PIO_OER   = ( PIN_PA0_OUT_STATUS_LED              |  //AT91C_PIO_PA0
11
                          PIN_PA1_OUT_ERROR_LED               |  //AT91C_PIO_PA1
12
                          PIN_PA7_OUT_5V_POWER_DOWN           |  //AT91C_PIO_PA7
13
                          PIN_NPCS2_OUT_SPI_CS2               |  //AT91C_PIO_PA10
14
                          PIN_NPCS0_OUT_SPI_CS0               |  //AT91C_PIO_PA11
15
                          PIN_NPCS3_OUT_SPI_CS3               |  //AT91C_PIO_PA22
16
                          PIN_PA23_OUT_USB_CHARGER_PEN1       |  //AT91C_PIO_PA23
17
                          PIN_PA24_OUT_3_3V_POWER_OFF         |  //AT91C_PIO_PA24
18
                          PIN_PA26_OUT_USB_CHARGER_CEN        |  //AT91C_PIO_PA26
19
                          PIN_NPCS1_OUT_SPI_CS1                  //AT91C_PIO_PA31
20
                          );
21
  AT91C_BASE_PIOA->PIO_PDR    = uiREG_VAL_PIO_PDR;
22
  AT91C_BASE_PIOA->PIO_PER    = uiREG_VAL_PIO_PER;
23
  AT91C_BASE_PIOA->PIO_ODR    = uiREG_VAL_PIO_ODR;
24
  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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.