Hallo, ich hab gestern mein (schon funkionierendes) Programm (vom Atmega2560) auf einen Atmega328P portiert und dabei glaube ich einen Fehler gemacht: Vor dem Flashen hab ich die Fuses richig gesetzt (zum Testen mal interner kalibrierter 8Mhz) und die CKDIV8-Fuse (Clock/8) gelöscht (war werksmäßig gesetzt). Den ATmega328P hab ich mit 3.7V versorgt, aber mein USB-UART-Interface vor dem Testen nicht auf 3.3V gesteckt. Hab ich dadurch vielleicht das UART-Interface des Atmega geschossen? Die Baudratenberechnung wird auch mit 8Mhz durchgeführt, so dass ich schon langsam nur mehr die obige Vermutung in Betracht ziehe. MfG Fabian
Miss doch mal die internen Schutzdioden der Pins mit einem Multimeter nach (Diodentestmodus).
Mit internem Oszillator kann die UART-Verbindung schon mal in die Hose gehen ... nimm einen Quarz! Gruß Jobst
Du kannst die Funktion der Schnittstelle mit simplen LED's testen. Sende irgendwas, dann muss die LED flackern. Entferne das UART Interface, verbinde RxD mit TXd, sende irgendwas und prüfe, ob die gleichen Bytes zurück kommen. Dafür brauchts nur wenige Zeilen Programmcode.
Sorry, für die späte Antwort. Danke für die ganzen Tipps, leider geht aber noch immer nicht alles problemlos. Das Testprogramm, dass die empfangenen Zeichen mit den Gesendeten vergleicht war erfolgreich, brachte mich aber nicht weiter. Weil ich einfach skeptisch genenüber der Vermutung war, dass ich zum ersten Mal einen AVR in ein Stück "Deko" verwandelt habe, hab ich die Baudrate mal auf eine niedrigeren Wert eingestellt (9600). Siehe da, alles funktioniert (: Auch andere Baudraten wie 19200 und sogar 128000 haben funktioniert. Blöd nur, dass ich 115200 Baud brauche, an was kanns jetzt noch liegen? MfG Fabian
Hi >Siehe da, alles funktioniert (: >Auch andere Baudraten wie 19200 und sogar 128000 haben funktioniert. >Blöd nur, dass ich 115200 Baud brauche, an was kanns jetzt noch liegen? Welche Taktfrequenz hat dein Controller? MfG Spess
8Mhz, so wie's aussieht macht das auch Anderen Probleme bzw. ist gar nicht möglich (Google).
Bei 8Mhz und 115kBaud liegt der Fehler bei 3%. Da ist es eher Glückssache wenn der Datenaustausch gelingt. Bei 19200 liegt der Fehler im grünen Bereich mit 0,2%. 38400 Baud sollten auch noch funktionieren. Gruß Jay
Wie oben schon angeraten wurde, du wirst um einen Quarz nicht herumkommen, gerade wenn du genau diese Baudrate brauchst. Die Seite dürfte dir dabei helfen: http://www.gjlay.de/helferlein/avr-uart-rechner.html . Die 115.200 Baud lassen sich z.b. mit einem 9,216 MHz Baudquarz ohne Fehler erreichen ^^
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.