Forum: Mikrocontroller und Digitale Elektronik US0 IRQ auf AT91SAM7256 einschalten


von USART (Gast)


Lesenswert?

Hallo zusammen,
ich habe hier seit 2 Tagen ein Problemchen, das mich mittlerweile 
verzweifeln lässt:
Ich möchte an die RX-Leitung des Uart 0 am ARM ein Gerät hängen, das mir 
in unregelmäßigen Abständen Daten an den ARM schickt.
Das Lesen von RX soll über einen UART-Interrupt getriggert werden. Ich 
initialisiere diesen wie folgt:
1
//Config IOs
2
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, AT91C_PA05_RXD0 );
3
4
// enable clock of USART
5
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US1 ) ;
6
7
uart.rdPos = 0;
8
/* Disable the DMA */
9
AT91F_PDC_DisableRx( AT91C_BASE_PDC_US0 ); //Disable the DMA
10
11
/* Reset transmitter and receiver */
12
AT91C_BASE_US0->US_CR =  AT91C_US_RSTRX; //rx and tx are then disabled
13
  
14
// config USART
15
AT91F_US_Configure( AT91C_BASE_US0, MCK, mode, baud_rate, 0 );
16
   
17
// enable rx 
18
AT91C_BASE_US1->US_CR = AT91C_US_RXEN;
19
   
20
AT91F_PDC_DisableRx( AT91C_BASE_PDC_US1 ); //Disable the DMA for receive
21
   
22
/* Set DMA Rx buffer*/
23
AT91C_BASE_US0->US_RPR = (uint)uart.rxBuf;
24
AT91C_BASE_US0->US_RCR = sizeof(uart.rxBuf);
25
AT91C_BASE_US0->US_RNPR = (uint)uart.rxBuf;
26
AT91C_BASE_US0->US_RNCR = 0;
27
   
28
AT91F_PDC_EnableRx( AT91C_BASE_PDC_US0 ); //Enable the DMA for receive
29
30
AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_US0, IRQ_PRIORITY_PIO, AT91C_AIC_SRCTYPE_INT_LOW_LEVEL, isrUART );
31
32
//Enable IRQ on US0
33
AT91C_BASE_US0->US_IER = AT91C_US_RXRDY;
34
AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_US0 );

Leider funktioniert die Sache nicht so recht --> Unknown Instruction, 
oder watchdog.
Kann mir jemand sagen, wo der Fehler zu suchen ist?

von USART (Gast)


Lesenswert?

1
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US1 ) ;
soll natürlich lauten:
1
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US0 ) ;

Da hab ich mich wohl vertippt...

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.