Forum: Mikrocontroller und Digitale Elektronik UART RS 232 mega 16


von Achim (Gast)


Lesenswert?

Hallo zusammen,
ich habe einen Mega16 mit einem Pegelwandler Schnittstellentreiber
verlötet.Der Treiber ist der MAX233 er kommt ohne Externe Kapazitäten
aus.Ich habe die Schaltung kurz getesetet mit eine Terminal Programm
und es hat alles geklappt.Nun wollte ich heute die Serielle
Schnittstelle wieder nutzen und siehe da es kommt nur Datenmüll an(am
PC).So ala "@@@!!!" usw. das allerdings regelmässig.Egal welche
Baudrate.
Ich denke damit muss man sich abfinden.
Wenn trozdem jemand eine ernstgemeinte Idee hat wäre ich sehr Dankbar.

gruss

Achim

von Matthias Friedrich (Gast)


Lesenswert?

mein erster test ist dann immer:

verbinde txd und rxd auf der ttl-seite des max233 und benutze hyperterm
o.ä. um zu sehen ob dieser baustein richtig arbeitet.
ist das der fall, liegt es am mega16 oder an deiner software, dann
würde ich zuerst die baudrate auf korrektheit überprüfen.

von Stefan Kleinwort (Gast)


Lesenswert?

Benutzt Du einen Quarz oder den internen RC-Oszillator? Der RC ist sehr
temperaturabhängig, das könnte erklären, warum es mal tat und jetzt
nicht mehr.
Stimmen die Fuses zur gewählten Taktversorgung?

Wenn Du ein Oszi hast: schau mal den UART-Output an.

Stefan

von Achim (Gast)


Lesenswert?

Hi,
Ich habe einen Oszilator(wie hier im Tutorial).
Wie gesgat der Chip arbeitet normal,das einzige ist das er beim Senden
sich so Verhält als wäre Die Baudarte Falsch gewählt.Ist aber nicht bzw
wenn ich am m16 9600 wähle und am PC zwischn 600 und 115000 alles
anwähle, kann doch nicht sein oder?

Ich denke die Fuses Stimmen weil der M16 in einer Quarz Schaltung
"TOT" ist.
Qoute
Wenn Du ein Oszi hast: schau mal den UART-Output an.
Quote
Tsculdigung das verstehe ich nicht.

mfg

von Stefan Kleinwort (Gast)


Lesenswert?

>>Wenn Du ein Oszi hast: schau mal den UART-Output an.
>Tsculdigung das verstehe ich nicht.

Gib auf den UART-TXD ständig z.B. 0AA hex (= 1010 1010 binär) aus. Dann
kannst Du am Oszilloskop ziemlich gut die Baudrate ablesen, weil sich
mit jedem Bit die Polarität ändert.

Was stellst Du denn im Baudratenregister ein? Welche Frequenz hat der
Oszillator? Hast Du die gemessen / verifiziert?

Stefan

von Achim (Gast)


Lesenswert?

Hi,
achso jetzt verstehe ich.Ein Oszi habe ich nicht.
Der Taktgeber hat 8mhz.Ich benutze Bascom.Die Frequenz habe überprüft
mit dem Wait Befehl.
Mit bem Bascom Befehl $Baud=9600 stelle ich die Baudrate ein(habe auch
schon andere probiert,insbesondere 1200 weil ja langsamer
Fehlertoleranter sein soll,hat aber trozdem nicht geklappt).

mfg

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.