Forum: Mikrocontroller und Digitale Elektronik Stellaris LM4F120: UART über PIN Header in ASM


von an.schall (Gast)


Lesenswert?

Hi zusammen,

ich möchte gerne UART auf meinem Stellaris Launchpad (LM4F120) nutzen, 
sodass ich Daten über die PIN header ausgeben kann. Und das ganze in 
ASM.

Referenzcode für UART0 habe ich hier gefunden:
http://users.ece.utexas.edu/~valvano/arm/UART2.s

Jedoch wird dabei PORTA genutzt (und somit über USB ausgegeben). Jedoch 
möchte ich die Daten über die PIN header auf dem Board ausgeben. Also 
wollte ich UART1 über PORTB (PB0 - Rx, PB1, Tx; siehe 
http://www.element14.com/community/servlet/JiveServlet/downloadBody/52915-102-1-267376/User_Manual_1.pdf, 
Tabelle 2-3) nutzen. Dazu habe ich lediglich die Konstantenbelegung 
folgendermaßen geändert:

[asm]NVIC_EN0_INT5      EQU 0x00000020   ; Interrupt 5 enable
NVIC_EN0_R         EQU 0xE000E100   ; IRQ 0 to 31 Set Enable Register
NVIC_PRI1_R        EQU 0xE000E404   ; IRQ 4 to 7 Priority Register
GPIO_PORTB_AFSEL_R EQU 0x40005420
GPIO_PORTB_DEN_R   EQU 0x4000551C
GPIO_PORTB_AMSEL_R EQU 0x40005528
GPIO_PORTB_PCTL_R  EQU 0x4000552C
UART1_DR_R         EQU 0x4000D000
UART1_FR_R         EQU 0x4000D018
UART1_IBRD_R       EQU 0x4000D024
UART1_FBRD_R       EQU 0x4000D028
UART1_LCRH_R       EQU 0x4000D02C
UART1_CTL_R        EQU 0x4000D030
UART1_IFLS_R       EQU 0x4000D034
UART1_IM_R         EQU 0x4000D038
UART1_RIS_R        EQU 0x4000D03C
UART1_ICR_R        EQU 0x4000D044
UART_FR_RXFF       EQU 0x00000040   ; UART Receive FIFO Full
UART_FR_TXFF       EQU 0x00000020   ; UART Transmit FIFO Full
UART_FR_RXFE       EQU 0x00000010   ; UART Receive FIFO Empty
UART_LCRH_WLEN_8   EQU 0x00000060   ; 8 bit word length
UART_LCRH_FEN      EQU 0x00000010   ; UART Enable FIFOs
UART_CTL_UARTEN    EQU 0x00000001   ; UART Enable
UART_IFLS_RX1_8    EQU 0x00000000   ; RX FIFO >= 1/8 full
UART_IFLS_TX1_8    EQU 0x00000000   ; TX FIFO <= 1/8 full
UART_IM_RTIM       EQU 0x00000040   ; UART Receive Time-Out Interrupt
                                    ; Mask
UART_IM_TXIM       EQU 0x00000020   ; UART Transmit Interrupt Mask
UART_IM_RXIM       EQU 0x00000010   ; UART Receive Interrupt Mask
UART_RIS_RTRIS     EQU 0x00000040   ; UART Receive Time-Out Raw
                                    ; Interrupt Status
UART_RIS_TXRIS     EQU 0x00000020   ; UART Transmit Raw Interrupt
                                    ; Status
UART_RIS_RXRIS     EQU 0x00000010   ; UART Receive Raw Interrupt
                                    ; Status
UART_ICR_RTIC      EQU 0x00000040   ; Receive Time-Out Interrupt Clear
UART_ICR_TXIC      EQU 0x00000020   ; Transmit Interrupt Clear
UART_ICR_RXIC      EQU 0x00000010   ; Receive Interrupt Clear
SYSCTL_RCGC1_R     EQU 0x400FE104
SYSCTL_RCGC2_R     EQU 0x400FE108
SYSCTL_RCGC1_UART1 EQU 0x00000002   ; UART1 Clock Gating Control
SYSCTL_RCGC2_GPIOA EQU 0x00000002   ; port A Clock Gating Control[asm]


Leider kommt bei mir auf dem Terminal nix an, obwohl ab und zu die grüne 
Rx LED  auf dem USB-seriell-Konverter zuckt.

Habt ihr eine Ahnung, wo das Problem liegen könnte?

Danke

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.