Forum: Mikrocontroller und Digitale Elektronik max232 mit stk500 ansteuern funktioniert nicht


von Markus Reichert (Gast)


Lesenswert?

Hallo zusammen,

folgende Schaltung funktioniert einfach nicht, und ich bin schon total
am verzweifeln:

Ich habe einen ATTiny2313 programmiert und auf einem STK500 sitzen
lassen. Über die RS232-Schnittstelle des Boards funktioniert das
Programm einwandfrei.

Jetzt soll das ganze eine externe Schaltunge werden und mein nächster
Schritt war, einen MAX232N anzusteuern: ich greife RX/TX von PD0/1 ab
und steuere damit den MAX an (PD0 => R1out, PD1 => T1in). Alles schön
laut Datenblatt: ich benutze 1uF Kondensatoren (Polung schon x-Mal
überprüft) und auch schon mit 22uF-Kondesatoren ausgetauscht.

Die Spannungsversorgung hole ich mir mit 5V vom STK500.

An V+ liegen "nur" 9V an und an V- "nur" 8,9V.

Mehr habe ich nicht gebaut, und es will einfach nicht funktionieren.
Wie gesagt, die Schaltung ist eigentlich die gleiche wie im Tutorial.

Kann mir irgendjemand einen Tip geben, woran es noch liegen könnte? Ich
habe schon das Forum durchsucht, aber nichts gefunden.

Achja: ich habe den Max auch schon ausgetauscht gegen einen anderen Max
und gegen 2 ST202CN. Ich glaube nicht, dass alle vier kaputt sind.

Wäre super, wenn jemand mir helfen könnte!!!

Danke und einen verzweifelten Gruß
Markus

von Christoph Kessler (Gast)


Lesenswert?

Ist die eingebaute Schnittstelle abgetrennt?

von Christoph Kessler (Gast)


Lesenswert?

Ich hab nur das STK200, und laut Schaltplan läßt sich die eingebaute
RxD-Verbindung zum AVR nicht unterbrechen, da gibts keinen Jumper

von Markus Reichert (Gast)


Lesenswert?

die eingebaute Schnittstelle auf dem STK?

Ja die ist abgetrennt - und zwar standardmäßg - man muss mit einem
Kabel PD0/1 mit zwei Steckverbindern auf dem Board verbinden, damit die
verbaute RS232-Schnittstelle funktioniert.

von Markus Reichert (Gast)


Lesenswert?

noch eine Frage dazu:

kann ich das Kabel zu dem steuerden Gerät direkt an den MAX
anschliessen oder muss ich noch Widerstände und Kondesatoren zwischen
den Max und das Kabel einbauen?

von Anton W. (antonwert)


Lesenswert?

@markus
zu deiner Frage:
direkt - ohne alles

sonst bin ich aber ratlos - sorry...

von Markus Reichert (Gast)


Lesenswert?

@anton

dann habe ich es richtig gemacht - alles direkt...

Nachtrag: an TX liegen nach Multimeter-Angaben -8,4V an - ist das
richtig?

von Rahul (Gast)


Lesenswert?

negative Spannungen stellen eine loghische 1 dar, positive eine 0...

von Hannes L. (hannes)


Lesenswert?

Kann es sein, dass es nicht am MAX232 liegt, sondern am Takt für den
Tiny2313?
Das STK500 versorgt die Target-AVRs mit einem "Baudratentakt" von
3,6864MHz. Das ist optimal für RS232. Mit welchem Takt läuft der AVR in
deiner eigenen Schaltung?

Es könnte aber auch Hardware-Ursachen haben. Ist die Stromversorgung
stabil und störungsfrei? Sind alle üblichen Abblock-Kondensatoren
(100nF Keramik) vorhanden? Diese werden oft in
Prinzip-Schaltzeichnungen nicht eingezeichnet weil sie
selbstverständlich sind und einen Übersichts-Schaltplan unübersichtlich
machen.

...

von Markus Reichert (Gast)


Lesenswert?

@HanneS

Der AVR läuft mit 3,6864 Mhz - die Geschwindigkeit beträgt 9600 Baud,
der AVR sendet einwandfrei: auf dem Board und in einer externen
Schaltung. Die Daten werden aber nur richtig gesendet, wenn ich die
RS232-Schnittstelle auf dem STK benutze: egal ob der AVR auf dem Board
sitzt oder in einer externen Schaltung, beides habe ich getestet.
Das einzige was an meiner Schaltung nicht funktioniert ist der MAX232N.
Und da finde ich den Fehler einfach nicht. :-(

Wo würden denn bei der Beschaltung des MAX noch 100nF-Kondensatoren
hingehören? Ich habe ihn genau wie im Datenblatt mit Kondesatoren (5x
1uF) bestückt. Ist im Prinzip genauso wie die Beschaltung im Tutorial -
welche ich auch schon getestet habe, d.h. mit 22uF bestückt - aber es
funktioniert nicht.
Kommen noch extra Kondensatoren dazu?

von Anton W. (antonwert)


Lesenswert?

@Markus

also 5x 1uF reicht beim Max232
bist du dir 100%ig sicher dass auch keine Lötbrücke o.ä. vorhanden ist?

von Markus Reichert (Gast)


Lesenswert?

@Anton

da kann ich mir 100%ig sicher sein, da ich die Schaltung auf einem
Testboard gesteckt habe... an 3 verschiedenen Stellen inzwischen. Und
ich habe natürlich darauf geachtet, dass keine Kurzschlüsse etc.
auftreten...

ich weiß absolut nicht mehr weiter... :-(

von Hubert.G (Gast)


Lesenswert?

Schon mal probiert ob die RS232 grundsätzlich funktioniert?
RX/TX an der SubD brücken, Über einen Widerstand 5V an Txin legen auf
Rxout messen ob sich was tut, Wenn das passt kann eingentlich nur mehr
RX/TX vertauscht sein. Wenn du den AVR aus dem STK nimmst und die
Messung am Sockel machst hast du den Weg auch gleich mitgemessen.

Hubert

von Hannes L. (hannes)


Lesenswert?

> Wo würden denn bei der Beschaltung des MAX noch 100nF-Kondensatoren
> hingehören?

An die Betriebsspannung (Vcc-GND). An jeden Digitalschaltkreis gehört
ein Abblock-Kondensator von 100nF Keramik. Sieh ihn nicht als Teil der
Schaltung, sondern als Teil der Platine. Er soll den Widerstand und die
Induktivität der Leiterzüge kompensieren und die (extrem kurzen)
Stromspitzen bei jedem Umschaltvorgang im IC abfangen. Daher ist es
auch nicht möglich, die vielen kleinen Cs durch einen großen zu
ersetzen. Auch ein Elko kann diesen C nicht ersetzen, dazu ist er zu
langsam.

...

von Hannes L. (hannes)


Lesenswert?

Achja, hier kamen auch schon andere Verwechselungen vor.

Beachte die "Datenflussrichtung".
RX ist Empfangen, der Ausgang des MAX232 gehört zum AVR,
TX ist Senden, der Eingang des MAX232 gehört zum AVR.

...

von TravelRec. (Gast)


Lesenswert?

Foto machen (oder auf´n Scanner legen), reinstellen. Schaltplan, so wie
Du´s aufgebaut hast, malen und reinstellen. Sonst raten wir hier ewig
rum!

von Markus Reichert (Gast)


Angehängte Dateien:

Lesenswert?

@all

so sieht die Schaltung aus, welche nicht funktioniert...

von Hubert.G (Gast)


Lesenswert?

TX auf 2, RX auf 3 in der SubD Buchse

von Markus Reichert (Gast)


Lesenswert?

Sorry, das ist ein Beschriftungsfehler. TX liegt auf 2 und RX auf 3.

von Hubert.G (Gast)


Lesenswert?

Schon mal durchgecheckt wie im anderen Thread beschrieben?  Mit Oszi
wärs natürlich einfacher.

von Schoaschi (Gast)


Lesenswert?

Kann es sein das du die Pins 2 und 3 verdreht hast?

schau mal hier wie die belegung hier ist:
http://home.vrweb.de/~lotharstolz/stolz.de.be/icd/gfx/schematics.gif

von Markus Reichert (Gast)


Lesenswert?

@schoaschi

nein, die Belegung stimmt, sonst würde das ganze ja nicht mit dem STK
funktionieren. D.h. die Kabel sind in Ordnung, die Programmierung
stimmt - was nicht stimmt ist die Beschaltung des MAX232N... aber ich
finde den Fehler einfach nicht. :-(


@Huber.G

im Prinzip weiß ich ja, wo der Fehler liegt: die Daten kommen richtig
beim MAX an, werden aber falsch bzw. gar nicht weitergeleitet...


@all

auch wenn der Fehler bis jetzt noch nicht gefunden wurde: ersteinmal
danke an euch alle für die vielen Tips und Ratschläge.

von Hubert.G (Gast)


Lesenswert?

Schritt für Schritt jede Leitung testen und nicht sagen das muss
stimmen, es sind oft das Unwahrscheinlichste der Fehler.

von Unbekannter (Gast)


Lesenswert?

Der "C4" ist verkehrt. Der muss mit seinem Minus-Anschluss an Masse
und nicht an +5V.

von Markus Reichert (Gast)


Lesenswert?

@unbekannter

C4 ist laut Datenblatt korrekt angeschlossen.


@all

danke für eure Hilfe, ich habe mir einen kompletten Satz neuer Bauteile
bestellt und hoffe, dass es dann mit denen geht.

Bis dahin danke + Gruß
Markus

von Matthias Gratl (Gast)


Lesenswert?

Habe ein ähnliches Problem wie Markus.
Habe auf meinem ATmega16 die Uart programmiert wie im Tutorial
beschrieben. Das Ganze funktioniert auf dem Stk500 einwandfrei und ich
erhalte im Hyperterminal den Text.
Wenn ich das ganze auf meine Platine transferiere, funktioniert es
nicht mehr. Der Mikrocontroller sendet zwar weiterhin, aber beim Max232
ist Endstation für das Signal. Der Max232 ist aber exakt nach Datenblatt
beschalten. Kann es sein, dass kaputte Elkos an dem ganzen Dilemma
schuld sind?

Kann mir hier irgendwer weiterhelfen?

@Markus
Hast du dein Problem gelöst?

Mit freundlichen Grüßen
Matthias Gratl

von Markus Reichert (Gast)


Lesenswert?

Hallo Matthias,

bei wir tatsächlich ein Elko defekt. Als ich die Schaltung komplett mit
neuen Bauteilen bestückt hatte, hat alles auf Anhieb funktioniert.

Gruß
Markus

von Matthias Gratl (Gast)


Lesenswert?

Danke für die rasche Antwort

Hoffe bei mir ist der Fehler der gleiche

Mfg
Matthias

von Matthias Gratl (Gast)


Lesenswert?

Habe jetzt alle Kondensatoren getauscht. Hab dann am MAX232 LOW und HIGH
angelegt und mit dem Oszi am Ausgang die richtigen Pegel gemessen.
Dann hab ich mit einem FG am Eingang einen Rechteck angelegt.
Funktioniert auch.
Dann Mikrocontroller in die Schaltung und wieder gemessen. Funktioniert
wieder.
Dann an den Pc angesteckt und dann brechen die Pegel ein. Wenn eine
Verbindung über Hyperterminal besteht nur mehr positive Pegel und wenn
keine Verbindung besteht nur mehr negative Pegel.

Woran kann das Ganze liegen? Benötige ich noch irgendwelche
Widerstände?

Weiß mir echt nimmer zu helfen!!!

MFG
Matthias

von Hannes L. (hannes)


Lesenswert?

Hast du das falsche Kabel? (z.B. Nullmodem)

...

von Matthias Gratl (Gast)


Angehängte Dateien:

Lesenswert?

@Hannes: Habe RX und TX vertauscht, fast das selbe Ergebnis

Habe jetzt mal die Screencopys vom Oszi angehängt.

Links das Signal ohne angeschlossenes Kabel
Rechts mit angeschlossenem Kabel

Mfg Matthias

von Matthias Gratl (Gast)


Lesenswert?

Das Ganze funktioniert jetzt
Bin auf anderen PC, muss irgendwelche Probleme mit der seriellen
Schnittstelle am PC gewesen sein.

Vielen Dank für die Hilfe
Matthias

von Klaus (Gast)


Lesenswert?

Hallo,
ich lese diesen Thread, weil ich mir auch auch STK500 bestellt habe und
demnächst damit beginne.
Zum Thema "Hyperterminal" und PC habe ich jedoch schon jetzt folgende
beizutragen:
"Hyperterminal" eignet sich definitiv NICHT um "einfache"
ASCII-Terminalemulation etc. zu machen. Je neuer das PC Betriebssystem
ist, umso weniger funktioniert daran ; ältere Version von Win98 gingen
evtl. noch.
Es ist wesentlich besser, das "Term95" oder "Term90" vom uralten
Norton Commander einzusetzen ; da kann man sehr viel einfacher alles
einstellen und das funktioniert.
Diese Info betrifft alle PCs die noch "richtige" serielle
Schnittstellen haben ; Erfahrungen mit USB --> RS232 Wandlern liegen
bei mir nicht vor.

Grundtest mit Terminalprogramm:
Eine 9pol. DSUB Buchse am PC aufstecken , bei der die Pins  2 + 3
verbunden sind (Lötbrücke).
Dann muß jede Tasteneingabe in Terminalprogramm als "Echo" am
Bildschirm kommen.

Als weitere Teststufe könnte man dann die Verbindung zum MAX232
herstellen und die Brückung auf der "Target" Seite des Maximbausteins
durchführen. Erst dannach diese Pins mit dem uP verbinden.

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.