mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Text über Uart und FT232 an PC


Autor: Massa-Master (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ich sitze gerade wieder mal an meinem Testboard.

Ich habe mir heute meinen FT232RL aufgelötet und wollte mir zum Test von 
meinem Atmega128 zum PC ein paar Zeichen senden. Ich fahre momentan mit 
38kbaud.

Folgendes Problem:
Sende ich mit UDR1 = "A"; ein "A" dann komt am PC ein "E" an
Sende ich mit UDR1 = "B"; ein "B" dann komt am PC ein "G" an
Sende ich mit UDR1 = "C"; ein "C" dann komt am PC ein "I" an

Sende ich mit UDR1 = 65; ein ASCII-"A" dann kommt auch ein "A" an.

Meine Uart Config sieht so aus:
  UCSR1A = (1 << U2X );
  UCSR1B = (1 << RXEN) | (1 << TXEN);
     UCSR1C = (0<<USBS1)|(1 << UCSZ11) | (1 << UCSZ10);
     UBRR1L = 25;     //38 kBaud bei 8 Mhz U2X = 1
     UBRR1H = 0;

Mein Testboard kenn ihr schon aus diesem Beitrag:
Beitrag "Hoher Strom bei Taster am Eingan"

Autor: Massa-Master (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK es ist mir zu peinlich ^^
Statt

UDR1 = "A";

muss es natürlich

UDR1 = 'A';

heißen

Autor: gtf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1)TX und RX- Leitungen vom FT232RL miteinander verbinden, und prüfen ob 
die vom Terminalprogramm gesendete Zeichen auch richtig ankommen.
Treten keine Fehler auf, so kann man den FTDI als funktionsfähig 
abstempeln.
2)Wozu schaltest du UART double speed ein?
  UCSR1A = (1 << U2X );
Hab’s noch nie gebraucht, also zuerst mal abschalten.
  UCSR1A = (0 << U2X );

3)   UBRR1L = 25;     //38 kBaud bei 8 Mhz U2X = 1
Diese Zeile deutet darauf hin, dass du als Clocksource den Internen RC- 
Oszillator verwendest. Ist keine so gute Idee. Für Testzwecke sollte man 
die Baudrate sehr klein wählen(bsp. =<600Baud/s), somit dürfte es 
vielleicht noch klappen. Für höhere Baudraten sollte ein Baudratenquarz 
oder überhaupt ein Quarz verwendet werden.

Hast du schon dieses Tutorial gelesen?
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
ist echt spitze.

Weitere nützliche Informationen über die UART gibt’s im jeweiligen 
Datenblatt.

Gruß gtf

Autor: Massa-Master (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.
Ähm ich muss ehrlich sagen mit meinem zweiten Beitrag wollte ich 
mitteilen daß ich das Problem gefunden habe. Es waren einfach nur die 
doppelten Gänsefüße ^^. Wollte ja keinen String übergeben sondern nur 
ein einziges zeichen. Es funktioniert jetzt jedenfalls ^^

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.