Forum: Mikrocontroller und Digitale Elektronik Probleme mit MAX232


von Aleksej Kiselev (Gast)


Lesenswert?

Ich hab ein Problem mit USART von Mega16. Bisher hab ich mit Classics
und Mega8 gearbeitet, da hat es prima geklappt. Jetzt will ich eine
Verbindung zum Rechner mit Mega16 schaffen, und es scheint so zu sein,
das es nicht so leicht sein wird ;) Also, mit dem Controller ist ja
alles in Ordnung. Fürs Programmieren verwende ich STK500, da bin ich
auch in der Lage die Verbindung zu testen. Da funktioniert es
einwandfrei (ich hab da ein Echo eingebaut). Aber wenn ich was mit
meiner Platine mache, dann bekomme ich ständig verschiedene Probleme
mit der Verbindung. Also, erstens: eigentlich wollte ich 115200 baud
haben, mit STK klappt es, und meine Platine meint, dass da nur 57600
baud drine sind. Die Einstellungen von dem UCSR sind eindeutig richtig!
Mit den niedrigeren Frequenzen klappt es, aber da gibt's ein weiteres
Problem - ich kriege zwar Echo, aber Bestätigungsbyte (nach jedem
Befehl) geht verloren. Mit dem STK ist es nicht so, da kriege ich diese
Bestätigung. Es wird auch nichts resetet, das habe ich festgestellt,
der nächste Befehl nach dem OUT UDR, TEMP wird ausgeführt, also es
stimmt was mit dem MAX232 nicht.
Habt ihr schon so was getroffen? Also, es funktioniert mit dem höchen
bitrate und es stimmt irgendwas mit der Übertragung nicht.
Mit freundlichen Grüßen!

von mmerten (Gast)


Lesenswert?

Schon mal die Logikpegel am Ausgang mit Oszilloskop überprüft ?

von Aleksej Kiselev (Gast)


Lesenswert?

Ja, und es geht doch irgendwas shiff mit dem Controller, er sendet diese
Bestätigungsbytes nicht. Aber nur mit meiner Platine.
   ....
   sbi PORTD, 3
   cbi PORTD, 4
   cbi PORTD, 5
   ldi TEMP, 0b00000101
   mov portd_copy, TEMP
   rcall delaer
   ldi TEMP, error_mes
   out UDR, TEMP
   sbi PORTD, led_red
   ....
alle Befehle wurden ausgeführt (ich kriege leuchtende led), aber
error_mes kommt nicht raus. Und Echo funktioniert einwandfrei, also
vermute ich, dass Einstellungen von USART doch richtig sind.
delaer macht ja eine passende Pause...

von thkaiser (Gast)


Lesenswert?

Wie sieht Deine Platine aus? Drahtverhau auf Lochraster oder nach
EMV-gesichtspunkten geroutetes Layout? 100nF Kondensatoren an GND/VCC
jedes Bausteins (Sowohl Atmel als auch Max232)? Auf dem Oszilloskop zu
sehen, ob er die Bestätigungsbytes überhaupt sendet? Schonmal versucht,
der PC-Schnittstelle einen Fehlercode zu entlocken (falls das
Bestätigungsbyte nicht richtig erkannt wird).
Gleiches Quarz auf Deiner Platine wie auf dem STK? Kondensatoren am
Quarz? Spiel evtl mal mit dem UBR rum, vielleicht ist das Quarz etwas
"verstimmt" und die Baudrate ist daneben.

von crazy horse (Gast)


Lesenswert?

-hast du auf deiner Platine wirklich einen MAX232? Ich hatte von
Reichelt mal eine Stange HIN232 bekommen, angeblich kompatibel (aber
nicht bei hohen Baudraten!)
-den Wandler korrekt beschaltet? Es kursieren seit Unzeiten
Schaltungen, bei denen der Kondensator an V+ gegen Masse liegt, er
gehört aber gegen Vcc

von Simon Faller (Gast)


Lesenswert?

Mit den MAX232 hatte ich auch schon verschiedentlich Ärger. Oft spielt
das Layout einem einen Streich. Eigentlich half mir in diesen Fällen
immer eine Reihenschaltung aus einem 4,7nF Kondensator mit einem 100
Ohm Widerstand vom Ausgang der V24-Treiber (auf der +-12V Seite - also
zum PC hin) gegen GND. Dieses RC-Glied habe ich noch in keinem
Datenbuch für den MAX 232 gefunden, man findet es aber eigentlich immer
am Ausgang von NF-Leistungsverstärker und wie gesagt hat es mir schon
oft einen MAX 232 in Schwung gebracht. Da der Treiber des MAX232
eigentlich nichts anderes als so eine kleine Leistungsstufe ist, ist es
vielleicht nicht ganz verkehrt. Falls es funktionieren sollte, musst du
möglicherweise mit den Bauteilwerten etwas spielen, es geht vielleicht
auch schon mit einem viel kleineren Kondensator.

Viel Erfolg

Simon

von Aleksej Kiselev (Gast)


Lesenswert?

Das war wirklich ein HIN232, also das Problem mit den hochen Bitraten
ist gelöst. Mit der Schaltung soll auch alles stimmen, sonst hätte ich
kein Echo gekriegt oder? ;) Ich vermute nur, das es eine sehr lange
Pause gebraucht wird bis ein weiterer Byte übertragen sein kann. Aber
wieso passiert so was verstehe ich nicht.

von thkaiser (Gast)


Lesenswert?

@Crazy horse: Die Geschichte mit dem Kondensator ist ne interessante
Sache. Um der ganzen Sache auf den Grund zu gehen, habe ich mal beides
ausprobiert und keinerlei Unterschied feststellen können. Jetzt würde
mich mal interessieren, warum der Kondensator an VCC ran soll, in den
Datenblättern ist es tatsächlich so drin. Da V+ und V- symmetrisch sind
(sein sollten), ist ein Anschluß an GND doch eigentlich logischer, als
den V+ an VCC. Kann mir das mal jemand erklären?

von Midnight (Gast)


Lesenswert?

@thkaiser: die Spannungen sind auch symetrisch... allerdings mit
unterschiedlicher Polarität. Die Kondensatoren werden benötigt, damit
der Max/Hin und wie auch immer 232 aus +5V die RS-232 Pegel machen kann
(+/- 12V). Im Datenblatt erkennt man auch das Ground positiver als V-
und +5V negativer als V+ ist....

von Midnight (Gast)


Lesenswert?

Sorry vergessen...
@ crazy horse: hatte bis dato mit den Hin und auch anderen Typen nie
Probleme, auch bei hohen Baudraten. Allerdings brauchen die noch wie
die alten MAX232 die 10µ Elkos, und kommen nicht mit den 100n aus....

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.