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