mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit MAX232


Autor: Aleksej Kiselev (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal die Logikpegel am Ausgang mit Oszilloskop überprüft ?

Autor: Aleksej Kiselev (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Aleksej Kiselev (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Midnight (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Midnight (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.