mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Xmega usart Problem


Autor: Egon 64 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BAUDCTRLB ist in den oberen 4Bit ein fraktionaler Teiler. Ich bin mir 
nicht sicher, ob Du den wirklich nutzen willst. Für den Baudratenteiler 
bekomme ich 207dez // CFhex heraus. BAUDCTRLH ist also $CF und BAUDCTRLB 
ist $00 Fcpu/(Baud*16)-1 war glaub ich die Formel. Musst Du nochmal 
überprüfen.

Autor: Sauger (Gast)
Datum:
Angehängte Dateien:

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

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

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

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

und den Interrupthandler nicht vergessen!

MfG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.