Forum: Mikrocontroller und Digitale Elektronik [AVR] UART geschossen?


von Fabian K. (fabian_k)


Lesenswert?

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

von Bla (Gast)


Lesenswert?

Miss doch mal die internen Schutzdioden der Pins mit einem Multimeter 
nach (Diodentestmodus).

von Jobst M. (jobstens-de)


Lesenswert?

Mit internem Oszillator kann die UART-Verbindung schon mal in die Hose 
gehen ... nimm einen Quarz!


Gruß

Jobst

von Stefan (Gast)


Lesenswert?

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.

von Fabian K. (fabian_k)


Lesenswert?

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

von Spess53 (Gast)


Lesenswert?

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

von Fabian K. (fabian_k)


Lesenswert?

8Mhz, so wie's aussieht macht das auch Anderen Probleme bzw. ist gar 
nicht möglich (Google).

von Jay W. (jayway)


Lesenswert?

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

von Equinox (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.