Forum: Mikrocontroller und Digitale Elektronik UART Tutorial Verständnisproblem


von anfänger (Gast)


Lesenswert?

Hallo,

Ich arbeite gerade das Tutorial durch und bin nun bei UART angekommen.
Ich habe das Hyper Terminal eingerichtet und kann wenn ich z.B. das a 
drücke auch ein a sehen. Kryptische Zeichen habe ich nur sehr selten, 
aber das soll ja was mit der Baudrate zu tun haben wie ich gelesen habe.

Nun aber mein Verständnisproblem: Im Tutorial steht, daß in einer 
Endlosschleif die Zeichenkette 'Test!' an den PC übertragen wird. Wo 
genau soll denn diese Zeichenkette stehen? Ich würde ja ganz gerne 
Zeichen übertragen und nicht im Hyper Terminal meine Tastatur testen.

Kann mal bitte jemand Licht in das Dunkel meines Verständnis bringen?

Grüße

anfänger

von Karl H. (kbuchegg)


Lesenswert?

Von welchem Tutorial sprichst du?
Es gibt hier deren zwei

Einmal das AVR-Assembler Tutorial, das andere ist das
C Tutorial

Im Assembler Tutorial ist es diese Sequenz
1
loop:   ldi temp, 'T'
2
        rcall serout                      ; Unterprogramm aufrufen
3
        ldi temp, 'e'
4
        rcall serout                      ; Unterprogramm aufrufen
5
        ldi temp, 's'
6
        rcall serout                      ; ...
7
        ldi temp, 't'
8
        rcall serout
9
        ldi temp, '!'
10
        rcall serout
11
        ldi temp, 10
12
        rcall serout
13
        ldi temp, 13
14
        rcall serout
15
        rjmp loop

die den Text Buchstabe für Buchstabe versendet. Und da das
ganze in einer Schleife passiert, wird der Text immer wieder
wiederholt.

von anfänger (Gast)


Lesenswert?

das assembler tutorial meine ich

und meine frage war wo genau die Zeichenkette Test! zu sehen ist?
Im Hyper Terminal Fenster?

grüße

von Karl H. (kbuchegg)


Lesenswert?

anfänger wrote:
> das assembler tutorial meine ich
>
> und meine frage war wo genau die Zeichenkette Test! zu sehen ist?
> Im Hyper Terminal Fenster?

Ach so.
Ja natürlich. Wo denn sonst?

Dieser ganze Tutorialabschnitt dreht sich doch letztendlich
nur darum, dass das Anzeigegerät am anderen Ende der Leitung
etwas ausgibt, bzw. das das was am anderen Ende der Leitung
getippt wird über die Leitung zum AVR-Programm transferiert
wird.

von anfänger (Gast)


Lesenswert?

ok

dann hab ich das wenigstens richtig verstanden und ich habe das problem, 
daß der Fehler irgendwo anders liegt, denn ich sehe kein Test!.
Ich versuche schon seit 3 Tagen dieses kleine Programm zum laufen zu 
bekommen und bin langsam mit meinem Latein am Ende.

Ich habe die AVR Checkliste 
(http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART)
durchgearbeitet und ich kann einfach den Fehler nicht finden, also werde 
ich wohl weiter suchen müssen.

Grüße

von sechszweifuenf (Gast)


Lesenswert?

Mit dem Scope am TxPin des Prozessors kommt auch nichts ?

von anfänger (Gast)


Lesenswert?

hallo,

doch mit dem Scope kann ich ein Signal messen. Deshalb glaube ich, daß 
das Hyper Terminal nicht so funktioniert wie es wohl soll.
Ich habe hier im Forum gestöbert und alles so eingestellt wie ich es 
machen soll. (Parität, stop.., und flußkontrolle usw.)

Ich weiß echt nicht mehr was ich noch tun soll. Ich werde nochmal ein 
wenig mit der Baudrate rumspielen um sicher zu gehen, daß der Fehler wo 
anders liegt.


Grüße

von Karl H. (kbuchegg)


Lesenswert?

> Deshalb glaube ich, daß
> das Hyper Terminal nicht so funktioniert wie es wohl soll.

Viele schimpfen zwar auf Hyperterminal, aber auf eines
kann man sich verlassen: Das wofür es designed wurde, beherrscht
es.

> doch mit dem Scope kann ich ein Signal messen.
Das ist schon mal gut.
Kannst du das Signal auch noch nach dem RS232 nachweisen?

Es gibt jetzt noch ein paar Fehlermöglichkeiten.
Eine davon ist das Kabel. Vertausch einfach mal auf einer
Seite die Pins 2 und 3.
Hintergrund: Es gibt 2 Arten von Kabel. Die gekreuzten und
die nicht gekreuzten.
Bei einem gekreuztem Kabel ist der Pin 2 mit dem Pin 3 am
anderen Ende des Kabels verbunden (und umgekehrt) bei
einem nicht gekreuzten ist es ein direkter Durchgang.

Wenn du das falsche Kabel hast, dann kann nichts gehen,
weil der Sendeausgang vom AVR mit dem Sendeausgang des PC
verbunden ist und nicht, wie es sein muss, Sendeausgang mit
Empfängereingang.

Sobald du das richtige Kabel hast, sollte sich zumindest
am Hyperterminal irgendwas tun. Wenn du gleich den richtigen
Text siehst: Gratulation.
Wenn da aber wirre Zeichen durchlaufen, dann ist in praktisch
allen Fällen die Prozessorfrequenz nicht dort wo sie sein soll.
zb. Du hast zwar einen Quarz an den AVR angeschlossen, der
ist aber nicht aktiv und der Prozessor arbeitet immer noch mit
seinem werkseitig eingestellten 1Mhz RC-Oszillator.

von Karl H. (kbuchegg)


Lesenswert?

PS:
Ob das Kabel korrekt ist, kann man auch mit einem einfachen
Test prüfen:

Nimm den AVR Prozessor aus seinem Sockel (der ist doch hoffentlich
gesockelt).
Dann verbindest du im Sockel den Tx Pin mit dem Rx Pin laut
Pinbelegung deines Prozessors (über welchen reden wir
eigentlich?) mit einer Drahtbrücke. Wenn du nun im Hyperterminal
auf der Tastatur tippst (nicht vergessen im HT den 'connect
Button zu drücken. Das ist der mit dem Telephon und dem
aufgelegten Hörer) dann müssen die Zeichen von deiner
kastrierten Schaltung zurückkommen. Zum Gegentest mal die
Brücke entfernen: Das Echo muss ausbleiben.

Wenn das so funktioniert, hast du den kompletten Verbindungsweg
Kabel und RS232 geprüft und als funktionsfähig erkannt.
Dann bleibt nur noch die Taktfrequenz als mögliche Ursache.

von anfänger (Gast)


Lesenswert?

hallo,

ES funktioniert!!!!!

Danke für eure Hilfe!

Es lag an dem RS232 Kabel. Am Ende kam nichts mehr an.(Hatte natürlich 
vorher nur am MAX gemessen). Hab mir ein neues Kabel gekauft und nun 
schnurrt die Katze!

Grüße und Danke nochmal

von Falk B. (falk)


Lesenswert?

@ anfänger (Gast)

>Es lag an dem RS232 Kabel. Am Ende kam nichts mehr an.(Hatte natürlich
>vorher nur am MAX gemessen).

Dann war das

>Ich habe die AVR Checkliste
>(http://www.mikrocontroller.net/articles/AVR_Checkl...)
>durchgearbeitet und ich kann einfach den Fehler nicht finden, also werde

eine falsche Aussage. In der Ruhe liegt die Kraft.

MFG
Falk

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.