Forum: Mikrocontroller und Digitale Elektronik MAX232 defekt oder nicht ?


von Equinox (Gast)


Angehängte Dateien:

Lesenswert?

Hallo werte µC-Gemeinde

ich hatte gehofft, dass ich durch die große Anzahl an Threads zu meinem 
Problem dieses lösen kann, aber leider will es immer noch nicht so wie 
ich möchte.

Ich möchte eine USART-Verbindung realisieren, zwischen PC und einem 
ATmega8. Das Ganze soll über ein RS232 Kabel laufen, und dafür ist eben 
ein MAX232ECWE-Baustein in der Schaltung, dieser gibt mir aber sehr 
seltsame Werte an.
Zum Testen hab ich den TXD-Pin (PD1) des µC einfach im 
Zwei-Sekunden-Takt getogglet, um dann mit dem Multimeter die Spannungen 
abzulesen, dabei kam raus:
  V+     4,3V
  V-     0,4V
  Vcc    5V
  T1Out  zwischen 0,3V und 0,6V wenn TXD HIGH war, 0,0014V wenn TXD LOW 
war

Dazu muss ich aber noch sagen, dass schon der High-Pegel von TXD nur 
3,4V war (obwohl ich den Mega mit 5V betreibe).

Mein Anliegen, mit dem ich mich nun an euch wende, ist also: Ist der 
MAX232 hinüber, oder ist der Fehler eher in der Beschaltung zu suchen ?

Ich denke bis jetzt, dass es vielleicht doch an den Kondensatoren am MAX 
hängt, die erscheinen mit unterdimensioniert. Seltsam erscheint mir 
jedoch, dass der Pegel an meinem TXD-Pin einbricht, das deutet doch eher 
auf einen Kurzschluss hin, oder ?

Noch ein paar allgemeine Infos - ich mache das alles im Rahmen eines 
Praktikums, die Platine auf der das alles drauf ist, war schon fertig 
und ich programmiere eigentlich nur noch den µC. Mein Arbeitsplatz ist 
leider sehr spärlich eingerichtet, ich hab kein Oszi, keinen 
Funktionsgenerator, nichtmal ein Netzteil steht hier, und für ein 
Multimeter muss ich einen Kollegen fragen ob ich es mir leihen kann... 
Meh..
Auf der Platine sind noch ein paar andere Bausteine drauf, aber die sind 
nicht mit dem MAX232 verbunden, und ich weiß nicht ob ich die einfach so 
zeigen kann. Deshalb hab ich das nicht mit abgebildet.
Zu meinem Wissenstand -> 3 Semester C, C++ und Assembler an der Uni und 
ein kurzes Praktikum, in dem ich mit einem ATTiny gearbeitet habe, also 
ich bin kein blutiger Anfänger.

Achso, eine Lötstation hab ich natürlich auch nicht. Deshalb wende ich 
mich auch zuerst an euch, damit ich mein Problem eingrenzen kann und 
dann nicht die Kollegen die ganze Zeit stören muss, sonst hät ich da 
schon andere Kondensatoren + Blockkondensatoren drin.

Vielen Dank fürs lesen dieser Wand aus Text, ich hoffe das ich nichts 
vergessen habe und mein Problem nachvollziehbar ist.

Grüße, Matthias

von Wusel D. (stefanfrings_de)


Lesenswert?

Einfachster Test: Verbinde den Max232 mit dem PC und auf der 
Mikrocontroller Seite verbindest Du TxD mit TxD. Dann sendest Du mit dem 
PC irgendwelche Zeichen und schaust, ob sie als Echo zurück kommen.

Die von Dir gemessenen pegel sind jedenfalls schrott. Entweder ahst DU 
falsch gemessen, oder der Chip funktioniert nicht. Bist Du sicher, dass 
er korrekt beschaltet wurde? Fehlt vielleicht die Stromversorgung VCC?

von Equinox (Gast)


Lesenswert?

Die Beschaltung des Max232 ist so wie im Schaltbild oben, die Pins hab 
ich gestern alle mit einem Multimeter durchgeklingelt, nachdem ich die 
seltsamen Messwerte aufgenommen hab und mir schon dachte das da was 
nicht koscher ist.

So, dann hab ich eben mit der Drahtbrücke rumgespielt. Danke für den 
Tipp.
TXD und RXD am µC zu überbrücken bringt nichts, ebenso R1in und T1out 
(gut, das die sich genau so Verhalten war zu erwarten, sind ja nur ein 
paar Zentimeter Leiterbahn dazwischen). Da empfängt HTerm garnichts von 
dem was ich sende.

Wenn ich T1out und R1in brücke, dann empfange ich Kauderwelsch (TXD und 
RXD waren als Ausgang und mit Low-Pegel geschaltet). Immerhin ists immer 
der selbe Kauderwelsch (aus "123\r\n" wird " 'L', 0xA6, 0xA6, 'H', 0xF8 
"). Das selbe empfängt er, wenn ich die Brücke direkt am Stecker 
anbringe, während die Kabel von der Platine noch dran sind. Auch ein 
High-Pegel ändert nichts an der Ausgabe.

Ich habe mal noch spaßenshalber die Masse von Pin5 abgezogen, Brücke 
steckt nach wie vor zwischen Pin2 und 3 am Sub-D9-Stecker. Jetzt 
empfängt er bei der selben gesendeten Zeichenkette ein " 0x93, 0xD3, 
'S', 'H', 0xF8 ".

Wenn die Platine keinen Strom bekommt (USB-Stecker also gezogen ist), 
dann empfange ich auch wieder "123" ... phew, wenigstens das 
funktioniert...

von Hans H. (hanshi)


Lesenswert?

Hallo,

wenn du wirklich einen MAX232 eingesetzt hast sind die Kondensatoren zu 
klein. C1 - C4 = 1µF

Gruesse
  Hans

von Thomas P. (topla)


Lesenswert?

Ich denke, der C1 sollte gegen Vcc liegen, nicht gegen Masse.

Thomas

von Equinox (Gast)


Lesenswert?

@Hans: Das bestätigt auch meine Vermutung (und mein Blick ins Datenblatt 
^^), und das werde ich definitiv ankreiden. Ich kann nur nicht 
einschätzen, ob mein Problem dadurch gelöst wird, oder eben nicht. Wenn 
man das anhand meiner Angaben überhaupt einschätzen kann, ihr sitzt ja 
leider nicht neben mir ^^

@Thomas: Hab ich erst auch gedacht, habe dann aber ein MAX232-Datenblatt 
von TI gesehen. Die schalten C1 gegen Masse. Anscheinend (so ein paar 
ältere Threads hier im Forum) wirkt sich das nur auf die Spannung, die 
am Kondensator abfällt, aus. Wenn man gegen Vcc schaltet, dann kann die 
Spannungsfestigkeit des Kondensators 5V niedriger ausfallen.
Im Maxim-Datenblatt (meiner hier ist von Maxim, hätte ich oben erwähnen 
müssen, sorry) ist es allerdings gegen Vcc verschaltet.

Ich hab das schon bei meinem Ansprechpartner angeprangert, er meinte 
dass dieses Bauteil hier immer so verschaltet wird (auch mit den 
Kondensatoren), und es funktioniert. Aber in der nächsten Version der 
Platine wirds berücksichtigt.

von Soul E. (Gast)


Lesenswert?

Solange V+ und V- fehlen und nicht bei +9V und -9V liegen (VDD/2 - 0,7V) 
brauchst Du gar nicht weitermachen. Dann ist ein Kondensator defekt oder 
der MAX ist hinüber.

Mit zu kleinen Kondensatoren stimmen die Spannungen im Leerlauf, brechen 
aber bei Datenverkehr ein.


Wie C1 geschaltet wird ist einigermassen egal. Im einen Fall muss er 4V, 
im andern 9V aushalten. Früher war das ein Preisunterschied, heute 
können die alle 50V.

von Wusel D. (stefanfrings_de)


Lesenswert?

> Ich habe mal noch spaßenshalber die Masse von Pin5 abgezogen,
> Brücke steckt nach wie vor zwischen Pin2 und 3 am Sub-D9-Stecker.
> Jetzt empfängt er bei der selben gesendeten Zeichenkette ein " 0x93,
> 0xD3, 'S', 'H', 0xF8 ".


Moment mal. Wenn Du eine Brücke zwischen Rxd und TxD baust (egal an 
welcher Stelle in der Kette) musst Du die Leitungen zu anderen 
Signalquellen unterbrechen. Sonst baust Du einen Kurzschluss.

Also z.B. verbindest Du direkt am 0 Poligen Sub-D Anschluss des PC die 
Pins 2 und 3. Die ganze Schaltung klemmst Du aber ab (nicht nur die 
Masse). Wenn Du dann im Terminal nicht das Empfängst, was Du gesendet 
hast, ist dein PC defekt.

In den folgenden Zeichnungen ist // eine Unterbrechung.

Test, ob der PC funktioniert:
Das Terminal Programm muss zeigen, dass jhedes gesendete Zeichen als 
Echo zurück kommt.
1
PC     RxD o--<--+----//----<--o RxD  Deine Schaltung
2
RS232            |
3
       TxD o-->--+----//---->--o TxD
4
5
       GND o-------------------o GND

Wenn das geklappt hat, dann Test ob der MAX232 funktioniert:
Das Terminal Programm muss zeigen, dass jhedes gesendete Zeichen als 
Echo zurück kommt.
1
      
2
                  MAX232              Mikrocontroller
3
                   ____                      _______
4
                  |    |                    |       |
5
PC     RxD o--<---|  < |---<---+---//---<---| TxD   |
6
RS232             |    |       |            |       |
7
       TxD o-->---|  > |--->---+---//--->---| RxD   |
8
                  |____|                    |_______|
9
                     |                          |
10
       GND o---------+--------------------------+-----o GND vom Netzteil

Wenn das geklappt hat, dann Test ob der Mikrocontroller funktioniert:
Das Test-Programm im Mikrocontroller prüft, ob jedes gesendete Zeichen 
wieder empfangen wird. Ergebnis mittel Status-LED oder LCD Display 
anzeigen.
1
      
2
                  MAX232              Mikrocontroller
3
                   ____                      _______
4
                  |    |                    |       |
5
PC     RxD o--<---|  < |---<---//---+---<---| TxD   |
6
RS232             |    |            |       |       |
7
       TxD o-->---|  > |--->---//---+--->---| RxD   |
8
                  |____|                    |_______|
9
                     |                          |
10
       GND o---------+--------------------------+-----o GND vom Netzteil


Nichtsdesto Trotz sind die von Die gemessenen Spannung ganz unerwartet, 
also muss irgendwo um den MAX232 herum auch noch etwas falsch sein.

von Equinox (Gast)


Lesenswert?

Ups, okay. Ich dachte eben weil ich einen Kurzschluss mache stört der 
Rest der Schaltung nicht >.>
Naja, also mein Rechner funktioniert, das kann ich problemlos 
ausprobieren, bzw. habe ich problemlos probiert.
Ich werde mal sehen, wann ich mir einen Lötkolben ergattern kann, und 
dann einen neuen Max232 mit C's versorgen und dann wie Stefan 
beschrieben hat testen ob der richtig funktioniert. Ist das der Fall und 
er spinnt nach dem Aufbau auf der Platine wieder rum, dann ist etwas an 
der Platine faul.
Wenn der aktuelle Max232 erstmal runter ist, kann ich auch testen ob die 
Signale richtig aus dem µC raus kommen. Beziehungsweise, ich kann auch 
mal ihn durch testen, ob er so die vermutete Fehlfunktion hat.

Danke nochmals an alle für die Hinweise und Tipps. Ich war mir halt 
unsicher, ob ich meine Ergebnisse nur falsch deute, und wollte nicht 
wegen nichts angerannt kommen.
Ich meld mich dann spätestens noch mal, wenn ich alles ausgetauscht habe 
(und es funktioniert ^^), in der Hoffnung das mein Max wirklich einen 
Schlag weg hat.
Wenn das dann immer noch nicht funktioniert... hmm... naja, vielleicht 
seht ihr dann etwas mehr von der Schaltung xD

von Equinox (Gast)


Lesenswert?

Fragt nicht, warum es so lang gedauert hat, bis ich mich wieder melde...

Aber ich kann zufrieden sagen, dass der MAX defekt war. Ich habe die 
Platine gerade wieder bekommen, und mein Prozessor spricht mit mir. Nun 
muss ich ihm nur noch beibringen, mich zu verstehen.

Danke nochmal für die Hilfe und die Erklärungen ^^

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.