Text über Uart und FT232 an PC

Gast #1645468
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"
Gast #1645604
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
Gast #1646823
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

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