mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe: RS232 Problem


Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mit einer RS232 Schaltung Probleme (Atmega) . Auf dem 
Steckbrett funktioniert alles wunderbar, nur mit der geätzten Platine 
bekomme ich keine Ausgabe.

Schaltung: Atmega16 mit Max233 und der uart lib von Peter Fleury.

Wie kann man überprüfen, ob der Max233 auch funktioniert ?

Ich messe verschiedene Spannungen an den jeweiligen Pins, allerdings 
habe ich kein Oszi und kann daher kein Protokoll debuggen.

Physikalische Verbindungen habe ich soweit möglich überprüft. Max233 
auch mal gegen AD203 ausgetauscht, ohne Erfolg.
Beschaltung gemäß Datenblatt.

Die Funktion des Micro kan ich mit LEDs testen, wie gesagt, auf dem 
Steckbrett funktioniert es wunderbar.

Kann es am 16Mhz Quarz liegen ? Ist ja auch kein Baudratenquarz, aber 
auf dem Steckbrett gehts.

Wen ich die Pins 2+3 des seriellen Anschusses verbinde, kommt das Echo 
wieder im PC an. Verbindung zum PC ist also ok.

Baudrate ist 9600.

Irgendeine Idee zum Debuggen ?

Autor: Exodus155 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
poste mal deine platine hier rein?

Mike

Autor: Newbie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein Bild sagt mehr, als tausend Worte ...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wen ich die Pins 2+3 des seriellen Anschusses verbinde

Wo verbindest du die:
Am RS232 Stecker am PC
Am RS232 Stecker am µC
An den Eingängen zum MAX232
Auf den Ausgängen des MAX232
An den Eingängen zum Mega16

Um die physikalische Verbindung komplett zu testen,
nimmst du den Mega16 aus dem Sockel und verbindest drekt
an diesem Sockel mal Tx mit RX. Kommt das Echo immer noch?

Autor: Newbie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und nun das Board ...

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl heinz Buchegger:

Am RS232 Stecker am µC

Ich werde dann mal am Sockel testen.

Autor: Michael S. (mst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm, vielleicht war das Bier zu Mittag zu viel, aber wo bitte sind die 
Charge-Pump-C's des Max233?!?

Gruß Micha,

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der  233 braucht keine ...

Autor: Michael S. (mst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ok, wieder was gelernt... :-) hab ich auch grad im Datenblatt 
gesehen!

Autor: Mario Schrenk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob es das Problem löst weiß ich auch nicht, aber die rechte 
Befestigungsbohrung des RS-232 Steckerst durchtrennt eine GND-Leitung!

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ob die 16mhz ok sind müßtest du nach Formel Datenblatt Seite 166 mal 
rechnen, sollte nicht über 0,2% Errorlevel liegen.

du solltest bei zügigem Datensenden auch mit dem Multimeter einen Wert 
verschieden 0V messen auf der TXD (TTL) Strecke.

Davon abgesehen, falls du selber fertigst würde ich die Leiterbahnen 
etwas großzügiger wählen und Masseflächen reinnehmen.

...nehm den 233 und den mega16 auch ....


Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, da ist ein Pad drunter.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das "Nö" bezog sich auf Marios Posting von 14:19...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast einen female-RS232 verbaut.
Ist dann da nicht Pin 2 und Pin 3 falsch
rum angeschlossen. OK. Ist kein Problem
wenn dein Kabel richtig rum gekreuzt ist.

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut Datenblatt sind es bei 16 Mhz und 9600 Baud 0,2% Fehlerrate. Das 
sieht doch ok aus. (Auf dem Steckbrett funktionierts ja auch)

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja, die letzte Tabelle hatt ich übersehen.
Hm.

Obiges Posting...hm. Sollte man nicht TXD und RXD kreuzen ? Weil 
Empfänger des einen Sender des anderen.

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, hast ja Femal Buchse, da hast du die Kreuzung ja dann im Kabel

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hat denn jetzt das Verbinden direkt am Mega16
erbracht? Hast du ein Echo?

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich leider erst heute abend prüfen ... Ich gebe dann Bescheid.

Vielen Dank auf jeden Fall für die Tipps !!!

Female Buchse, gekreutztes Kabel ? Ähem, da muss ich wohl auch noch 
einmal nachschauen ..

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Female Buchse, gekreutztes Kabel ? Ähem, da muss ich wohl auch noch
> einmal nachschauen ..

Da kommst du sofort drauf, wenn du am µC-Sockel die
Brücke jumperst. Wenns nicht geht, ist entweder der
MAX233 hinüber oder das Kabel muss gekreuzt (oder
nicht gekreuzt) werden. Bin jetzt zu faul um
darüber nachzudenken was es denn sein muss.
Im Zweifelsfall nimmst du ein Voltmeter und misst
die Spannungen nach:
  Kabel vom µC abziehen.
  An einem Pin von der µC Buchse (entweder 2 oder 3) liegt
  -9 Volt (oder -10, egal) an.
  Am entsprechenden Pin vom Kabel wirst du ca. 0V messen.
  Und vice versa: Am anderen Pin am Kabel lieget negative
  Spannung, der entsprechende Pin an der µC ist wieder ca. 0

  Kommt beim Einstecken negativ zu negativ, dann musst du
  das Kabel noch mal (aus-)kreuzen.

Persönlich würde ich es allerdings nicht so umständlich machen:
Kabel aufmachen. Pin 2 und 3 kreuzen. Probieren.

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Aussage das die Kreuzung im Kabel ist war auch nicht so ganz richtig 
von mir, denn es ist ja ein 1:1 Kabel (Modemkabel) was du benutzt. Die 
"Kreuzung" kommt gewissermaßen durch die unterschiedliche Pinbelegung 
zustande.

Im Endeffekt mach ichs aber auch wie kbucheg :-). Einfach tauschen und 
probieren.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise kreuzt man RX/TX zwischen dem MAX232 (MAX233) und dem 
Lötanschluss der RS232-Buchse.

Dann kommt TX vom PC (Pin 3 der RS232 Buchse oder des RS232 Steckers) 
auf RxIN des MAX... kommt und RX vom PC entsprechend auf TxOUT.

Und dann kann man ein normales 1:1 verbundenes Kabel mit Stecker (µC 
Seite) und Buchse (PC Seite) benutzen. Normales Kabel, weil man es prima 
zun Verbinden von PC und Modem oder anderen RS232 Geräten etc. benutzen 
kann. Baut man alle seine Geräte mit RS232-Buchse auf kann man alle 
Verbindungen zum PC mit so einem 1:1 Kabel machen. Hat man zwei Kabel 
kann man auch super eine Verlängerung bauen.

Wenn man vermutet, dass man trotz aller Vorsicht ein sog. Nullmodemkabel 
erwischt hat, stöpselt man das Kabel an den PC und misst die Spannung 
zwischen Pin 3 und Pin 5 (GND). Wenn da eine neg. Spannung -3 V bis -15 
V vorhanden sind, ist alles gut, dann ist es ein normales 1:1 Kabel und 
kein Nullmodemkabel.

Liegt die neg. Spannung zwischen Pin 2 und GND, ist es ein 
Nullmodemkabel. Kennzeichnen und ins Regal legen für den Fall, dass man 
mal zwei PCs miteinander verbinden will, bei denen man ja schlecht im 
Gerät die Leitung zwischen RS232-Anschluss und RS232-IC kreuzen kann.

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt habe ich die Schaltung vor mir.

Das Brücken der Pins 4+5 des RS233 im Sockel bringt ein prima Echo auf 
dem PC. Alles sauber.

Zwischen Pin 2 und 5 des Verbindungskabels liegen -10V an. Also ist es 
ein 1:1 kabel. Auch ok.

Ich habe mal in einer Endlosschleife ein String ausgegeben.

Am Prozessor (TXD, Pin15) sowie im Sockel des 233 an Pin2 (TXD) messe 
ich mit dem Multimeter 2,2V.

Das ist etwas wenig, oder ist das bedingt durch die 9600 baud ?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Zwischen Pin 2 und 5 des Verbindungskabels liegen -10V an. Also ist es
ein 1:1 kabel. Auch ok."

Nein. Wenn du es so getestet hast, wie ich vorgeschlagen habe, ist es 
ein Kabel mit gekreuzten Leitungen. Da dein Schaltbild keine gekreuzten 
Leitungen hat, passt es aber wieder.

Hast du schon Vcc vom µC kontrolliert? Durch eine schlechte GND 
Verbindung oder andere grosse Verbraucher kann der zuwenig Saft 
reinbekommen. Dann geht natürlich auch wenig raus...

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spannung am Controller ist 4,97, dito am max233. Eingangsspannung kommt 
über Schaltnetzteil mit 8V zum 7805 (kein Batteriebetrieb).

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setze den TX-Pin vom µC testweise auf high und auf low (sekundentakt 
oder so), NICHT im USART-Modus! Dann kannst du am Ausgang des MAX233 
(SUB-D-Buchse) anmessen ob auch das Richtige 'rauskommt! Desweiteren am 
RS232-Kabel Pin 2 und 3 gegen 5 messen, da wo keine Spannung ist muss 
die TX-Leitung vom µC hin! Dort wo -8V oder +8V sind ist die TX-Leitung 
vom PC zum µC.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja - der MAX muss die Eingangs- und Ausgangssignale invertieren, 
sonst wird's nix!

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es klappt !!!!

Pin2 und Pin3 waren nicht gekreuzt. Das wars.

Ich danke allen, die mir bei der Lösung geholfen haben !!!

VIELEN DANK !!!

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, dass ich euch schon wieder nerve ...

Jetzt klappt das mit I2C nicht so richtig.

Pull-Ups liegen an, ich messe 4k7 bei beiden Pins am IC gegen Vcc.

Ich messe auf allen Pins P0-P7 des PFC8574A nach dem Init eine Spannung 
von 5V, auch wenn ich in einer leeren While-Schleife bin.

Init mit:
*****
void i2c_init(void)
{
  /* initialize TWI clock: 100 kHz clock, TWPS = 0 => prescaler = 1 */
  TWSR = 0;
  TWBR = ((F_CPU/SCL_CLOCK)-16)/2; // ist >10, SCL_CLOCK = 100000L
}/* i2c_init */
*****

SDA liegt auf 5V, SCL auf 0,16V. Ist das nicht verkehrt herum ?




Autor: Problemlöser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand eine Idee ?

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.