Xmega usart Problem

Gast #2003109
Lesenswert?

Hallo an alle

ich versuche geade an einem xmega den USART zum laufen zu bringen um 
einen GPS Empfänger auszulesen. Leider funst das aber nicht. Was mache 
ich da falsch?
CPU 32000000
Baudrate 9600
8 Datenbits
1 Stoppbit
No Parity

  // Initialisierung der Seriellen Schnittstelle

PORTF.DIRSET = PIN3_bm;    // PORTF3 (TXD0)
PORTF.DIRCLR = PIN2_bm;   // PORTF2 (RXD0)

USARTF0.BAUDCTRLA = 0x7B;  F_CPU 32000000 9600 bps 0x7B / 0xD6
USARTF0.BAUDCTRLB = 0xD6;

USARTF0.CTRLA = 0x30;       //RX high level interrupt 0x30
USARTF0.CTRLC = 0x03;       // Async, No Parity, 1 stop bit, 8 data bits
USARTF0.CTRLB = 0x10;       // Enable RX and TX Disable // kein CLK2X

  // Initialisierung der Seriellen Schnittstelle ende

Danke Egon
Gast #2003442
Lesenswert?

Mahlzeit,
ohne es ausprobiert zu haben würde ich in etwa so anfangen:
1
#define BAUD       9600
2
#define BSEL       3317         // mit der xls aus AVR1307.zip
3
#define BSCALE     -4           // berechnet
4

5
PORTC.DIRSET      = PIN3_bm;   // TX = OUT
6
PORTC.DIRCLR      = PIN2_bm;   // RX = IN
7

8
USARTC0.BAUDCTRLA = (uint8_t)BSEL;
9
USARTC0.BAUDCTRLB = (BSCALE << USART_BSCALE0_bp)|(BSEL >> 8);
10
USARTC0.CTRLA     = USART_RXCINTLVL0_bm;
11
USARTC0.CTRLC     = USART_CMODE_ASYNCHRONOUS_gc |USART_PMODE_DISABLED_gc |
12
                    USART_CHSIZE_8BIT_gc;
13

14
USARTC0.CTRLB     = USART_RXEN_bm | USART_TXEN_bm;
15
PMIC.CTRL        |= PMIC_LOLVLEX_bm;

und den Interrupthandler nicht vergessen!

MfG
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren