Hy zusammen, ich bin so langsam am ende mit meinem Nerven. Ich versuche auf einem ATmega1284P beide UART am laufen zubekommen, "soweit" klappt es auch. Das Ganze soll später so ablaufen. PC(srting einlesen am UART1)->Atgema1284P->über UART0 zurück zum PC. das ganze läuft mit Teraterm, am UART0 habe ich das STK500(RS232) und am UART1 (ein FTDI RS232 to USB). Zum Versuchen habe ich teraterm 2 mal offen und wenn den AtMega1284P Spannung anschliessen soll "Start" auf beiden terminals erscheinen. dies Passiert aber nur 100% mit UART1(FTDI) am UART0 kommt "CTaBt". Ich habe anschließent ein paar worte eingetippt um zu prüfen ob es ein einmaliger fehler ist oder ein Systematischer. Mit UART1 senden und UART0 empfangen->anzeigen Masse (UART1) => MAcse (UART0) Start (UART1) => CTabt (UART0) Was geht ab in dir (UART1) => Gie gehd ec dib (UART0) Ich finde aber nicht den fehler. Wenn mir jemand auf die sprünge helfen könnte wäre super. MfG Rolf
Hi >#warning "F_CPU war noch nicht definiert, wird nun mit 8000000 definiert" >#define F_CPU 20000000UL /* Quarz mit 3.6864 Mhz */ Nettes Durcheinander. Was stimmt denn nun? MfG Spess
UBBR stimmt wohl nicht. Wenn dein Oszi 20 MHz hat ist UBBR=10 115200 Baud mit 1.4% Fehler. Wenn der Oszi aber 3.6864 MHz hat dann solltest du
1 | UART1_Init(11); |
2 | UART0_Init(11); |
schreiben um genau auf 19200 Baud zu kommen. Für 9600 Baud 23. Also kläre uns auf
Timmo H. schrieb: > UBBR stimmt wohl nicht. > Wenn dein Oszi 20 MHz hat ist UBBR=10 115200 Baud mit 1.4% Fehler. > > Wenn der Oszi aber 3.6864 MHz hat dann solltest du >
1 | > UART1_Init(11); |
2 | > UART0_Init(11); |
3 | >
|
> schreiben um genau auf 19200 Baud zu kommen. Für 9600 Baud 23.
Und am besten setzt man F_CPU richtig und lässt das den Compiler
ausrechnen. Der soll schliesslich auch was tun.
Danke, für die Hinweisse mit so einer schnellen antwort habe ich nicht gerechnet. Habe baud runter gesetzt auf 9600 (UBRR auf 129), daran lag der fehler. Und Sorry für die schlechte kommentierung Vorallem mit dem OSZI (20MHz,8MHz und 3.864MHz). Ich benutzt ein 20 MHz oszi. Aber der Fehler war die fehler Rate von -1.4%. Daher auch die falschen Buchstaben.
Hi >Aber der Fehler >war die fehler Rate von -1.4%. Daher auch die falschen Buchstaben. Unwahrscheinlich. Datenblatt: Max Total Error (%) Recommended Max Receiver Error (%) +4.58/-4.54 ±2.0 MfG Spess
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.