Forum: Mikrocontroller und Digitale Elektronik RS232 Control geht, Spare nicht


von Ralf S. (schepperle)


Lesenswert?

Hi Leute,

ich hab hier ein ziemlich komisches Problem:

Kofig ist folgende:
XP Pro
STK500
Prolific USB-RS232 Adapter
ATMEGA 8151L
RS232 = 9600-8-E-1

Ich hab ein kleines Programm geschrieben, das nur ein Echo machen soll. 
Also das was ich im Hyperterminal ein tipp, soll auch wieder zurück 
gegeben werden.

Das Programmieren über den Adapter geht einwandfrei... sogar über ne 
ziemlich schnelle Frequenz. Komischerweise hängt der CodeVision oft 
dabei, aber das AVRStudio brennt wie ne Eins. Das freut mich schon mal 
ungemein ;-)

Komischerweise geht die Kommunikation über die Spare nicht. Am richtigen 
RS232 Port am PC geht's, mit dem Adapter nicht.
Auch das Oszi zeigt mir die richtige Bit-Breite.

Wie kann es denn sein, dass der RS232-USB Adapter an der Spare nicht 
geht, dafür aber an der Control?

Danke schonmal für Eure Hilfe :-)

Grüßle,
Ralf

von Michael H* (Gast)


Lesenswert?

hardwarehandshake ausgeschaltet?

von Ralf S. (schepperle)


Lesenswert?

jepp

von Michael H* (Gast)


Lesenswert?

auf seite 7 vom schaltplan sieht man, dass die beiden schnittstellen 
exakt identisch beschaltet sind.
das problem liegt also an deiner selbstgebauten hard- und/oder software.

von Otto (Gast)


Lesenswert?

für die "spare" müssen aber Kabel auf dem STK gesteckt werden...

Otto

von Ralf S. (schepperle)


Lesenswert?

hi,

die nötigen kabel sind gesteckt und an der software liegts auch nicht. 
das is ja das merkwürdige.

wenn ich das board so wie es ist an den pc häng mit der echten rs232 
schnittstelle, gehts ja. nur mit dem adapter nicht. komischerweise funzt 
der adapter aber zum programmieren.

die spare und die ctrl sind gleich beschaltet, na klar... kommen ja aus 
dem selben baustein.

also leute... mir gehen echt die ideen aus... :-(

von Ralf S. (schepperle)


Lesenswert?

Nachtrag:

wenn man das Terminal auf 9600 8-N-1 stellt funzen folgende Buchstaben

abdghkmnpsuvyzCEFIJLOQRTWX

ich kann dabei weder einen sinnvollen zusammenhang zu den einzelnen 
bits, noch zu was anderem sehen.

wenn ich den ATMEL auf 9600 8-n-1 programmier und das terminal auch so 
einstell, geht alles.

es sieht auch so aus, dass das RXD-Signal am Chip an kommt (mit dem Oszi 
gemessen) aber er sendet bei den Buchstaben die in der Liste oben fehlen 
einfach nix raus.

woran kanns liegen? verhaspelt sich der atmel vielleicht beim berechnen 
der Parity? Auf jeden Fall gibts keine Übertragungsfehler.. soviel ich 
mit dem Hyperterm fest machen kann.

Also? Wer hat noch Latein übrig?

Grüßle!

von Ralf S. (schepperle)


Lesenswert?

Ich habs gefunden...

schuld war natürlich nicht der gute Atmel, sondern das Profitool 
schlechthin: das Hyperterminal. Den Atmel hab ich auf even eingestellt. 
da geht das Hyperterm mit none und odd.

D.h. das Hyperterm verwechselt even und odd... habt ihr ähnliche 
Erfahrungen gemacht?

Ich hab das Bit auch mit dem Oszi ausgemessen.

ein "U" = 0x55 = 10101010 sieht so aus:

low(start) hi low hi low hi low hi low low(parity) hi(stop)

stimmt schon so oder hab ich nen denkfehler?

von Stefan S. (energizer)


Lesenswert?

Vielleicht ist Dein USB-RS232 Adapter etwas anspruchsvoller mit der 
Bitrate als Deine PC-Schnittstelle; welche Taktquelle benutzt du für den 
AVR ?

von Falk B. (falk)


Lesenswert?

@ Ralf Seibert (schepperle)

>ein "U" = 0x55 = 10101010 sieht so aus:

>low(start) hi low hi low hi low hi low low(parity) hi(stop)

>stimmt schon so oder hab ich nen denkfehler?

Ja, du hast schon wieder einen Denkfehler. RS232 sendet das LSB 
zuerst. ;-)

MFG
Falk

von Ralf S. (schepperle)


Lesenswert?

hmpf ja klar...
habs mit 0xAA verwechselt (die zwei benutz ich zum bitbreite messen... 
gibt auch an nem nichtspeicheroszi ein konstantes bild)

d.h. 01010101 ist der bitstrom. rückwärts gegessen stimmts dann aber am 
oszi bild... :-)

aber vielen dank für den hinweis... :-) hab das schon wieder verdrängt.

aber das mit dem hyperterm? also dass es even und odd verwechselt? ich 
mein das parity bit muss ja 0 sein oder ned?

grüßle!

von Falk B. (falk)


Lesenswert?

@ Ralf Seibert (schepperle)

>aber das mit dem hyperterm? also dass es even und odd verwechselt? ich
>mein das parity bit muss ja 0 sein oder ned?

Bei 0x55 oder 0xAA muss das Parity Bit 0 sein für even und 1 für odd.

google rs232 parity, 1. Treffer

http://de.wikipedia.org/wiki/EIA-232

Parity Even(gerade)  = D0 ^ D1 ^ D2 ^ D3 ^ D4 ^ D5 ^ D6 ^ D7;
Parity Odd(ungerade) = ~(D0 ^ D1 ^ D2 ^ D3 ^ D4 ^ D5 ^ D6 ^ D7);

MFg
Falk

von Ralf S. (schepperle)


Lesenswert?

eben sag ich ja... also funzt das hyperterm falsch...

hat jemand von euch ne alternative zum hyperterm? das terminal im 
codevision is fürn a* das interessiert sich null für das parity bit.

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.