Hilfe: RS232 Problem

Gast #450645
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 ?
#450660
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?
Gast #450697
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 ....

Gast #450739
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 ..
#450744
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.
Gast #450758
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.
Gast #450761
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.
Gast #450861
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 ?
Gast #450880
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...
Gast #450894
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.
Gast #451495
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 ?



Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.