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"
OK es ist mir zu peinlich ^^ Statt UDR1 = "A"; muss es natürlich UDR1 = 'A'; heißen
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
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 ^^
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.