Forum: Mikrocontroller und Digitale Elektronik MAX232 kann nur senden, nicht empfangen


von NickNack (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Habe ein Problem mit einer neuen Schaltung mit MAX232 und Atmega16:
Ich kann nur Zeichen an den PC senden (kommen auch richtig an), jedoch 
weigert sich die Schaltung Zeichen zu empfangen.
Das Programm hierfür habe ich vorhher an einer anderen Platine(auch 
atmega16+max232)erfolgreich getestet.
Die Verdrahtung und deren Durchgang sind geprüft: OK
Auch der Einbau eines neuen Max 232(diesmal von ST-micro...) hat keinen 
Unterschied gemacht.

Kann es sein das am Atmega die RX-Leitung defekt ist oder was könnte 
eine andere Ursache hierfür sein und vorallem wie kann ich dies 
herausfinden?

Gruß

von holger (Gast)


Lesenswert?

>Kann es sein das am Atmega die RX-Leitung defekt ist oder was könnte
>eine andere Ursache hierfür sein und vorallem wie kann ich dies
>herausfinden?

Mit ner Lupe.

von Thomas E. (thomase)


Lesenswert?

NickNack schrieb:
> Kann es sein das am Atmega die RX-Leitung defekt ist oder was könnte
> eine andere Ursache hierfür sein und vorallem wie kann ich dies
> herausfinden?
Verbinde Rx und Tx direkt am Controller. Dann kann er sich selbst was 
ins Ohr flüstern.

mfg.

von Michael A. (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Dann kann er sich selbst was ins Ohr flüstern.

Aber nur, wenn der Max232 nicht dazwischen quatscht oder auch an der 
Empfangsleitung zerrt.

von Ingo (Gast)


Lesenswert?

Einfach mal oszillographieren wenn möchlich...

Ingo

von NickNack (Gast)


Lesenswert?

Habe RX und TX am Atmega zusammen gelötet und wie es scheint kann er 
sich selbst etwas senden (also auch empfangen).

Anschließend habe ich die Brücke wieder entfernt und eine hinter den 
MAX232 gehängt und es scheint auch zu funktionieren.

Danach wieder USB<->RS232-Wandler angeschlossen aber es kommt nur einmal 
das Zeichen "A" an und danach ist funkstille, egal was ich sende.

Anderen USB<->RS232-Wandler angeschlossen: Selbes Problem-.-
1
/*
2
 * UART_TEST.cpp
3
 *
4
 * Created: 01.08.2012 19:24:17
5
 *  Author: NICK-DESKTOP
6
 */ 
7
8
#define F_CPU 3686400UL
9
#include <avr/io.h>
10
#define BAUD 9600
11
#include <util/setbaud.h>
12
13
void  uartinit  (void)
14
{
15
  UBRRH = UBRRH_VALUE;
16
  UBRRL = UBRRL_VALUE;
17
  UCSRB |= (1<<RXEN)|(1<<TXEN);  // UART TX einschalten
18
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N
19
}  
20
21
int main(void)
22
{  
23
  uint8_t VAR = 'A';
24
  uartinit();
25
    while(1)
26
    {  
27
    while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich */
28
    {
29
    }
30
    UDR = VAR;                      /* sende Zeichen */
31
    while (!(UCSRA & (1<<RXC)))   // warten bis Zeichen verfuegbar
32
    {
33
    }
34
    uint8_t VAR = UDR;                   // Zeichen aus UDR an Aufrufer zurueckgeben
35
    }
36
}

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Welchen Zweck haben C3 und C4 ???

kopfkratz

von NickNack (Gast)


Lesenswert?

ähm beim Probieren haben sich in den Code ein paar ungereimtheiten 
eingeschlichen, sry

von NickNack (Gast)


Lesenswert?

@Magnus Müller
falsch beschriftet: sind 10kOhm Widerstände

von holger (Gast)


Lesenswert?

>falsch beschriftet: sind 10kOhm Widerstände

Die gehören da nicht hin.

von NickNack (Gast)


Lesenswert?

@Holger
so hat man es mir mal gezeigt(Lehrer: Kurzschlussschutz) und bisher mit 
Erfolg in jeder Schaltung so betrieben!

von holger (Gast)


Lesenswert?

>so hat man es mir mal gezeigt(Lehrer: Kurzschlussschutz) und bisher mit
>Erfolg in jeder Schaltung so betrieben!

MAX232 ist am Ausgang schon strombegrenzt. Der braucht die 10k nicht.
Die stören nur.

von NickNack (Gast)


Lesenswert?

Gut zu wissen und du hattest recht:
ausgelötet und durch Drahtbrücken ersetzt und er empfängt etwas, ABER es 
kommt Bullshit an!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

NickNack schrieb:
> @Holger
> so hat man es mir mal gezeigt(Lehrer: Kurzschlussschutz) und bisher mit
> Erfolg in jeder Schaltung so betrieben!
Halte dich ans Datenblatt, nicht an überschlägige Faustformeln...

Und zudem: 10k sind weit jenseits von Gut und Böse. Da kann ja nicht mal 
ein läppisches mA fliessen. Sobald da die kapazitive Last ein wenig 
grösser wird (Leitungslänge)  ist bei 300Baud Schluss...

von NickNack (Gast)


Lesenswert?

wenn ich "B" sende kommt ein "/" zurück
wenn ich "C" sende kommt ein "^" zurück
wenn ich "Z" sende kommt eine ")" zurück

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

"Ich mach 2 Schritt auf einmal und fall aufs Maul."

Probiers doch erst mal 1 Schritt: Sende mit dem uC dauernd das selbe 
Zeichen und mach dazwischen 100ms Pause. Kannst du das Zeichen 
empfangen?

Dann kannst du den 2. Schritt machen: sende ein Zeichen mit dem PC und 
zeig das auf Leds an.

Und dann kommt das, was du jetzt schon machen willst.

BTW: die Klammern in deinem Code sind sehr verwirrend platziert.

von holger (Gast)


Lesenswert?

Kurzschluss zwischen Pin9 und Pin10?

von NickNack (Gast)


Lesenswert?

Habe jetzt nochmals den anderen USB-rs232-wandler angeschlossen, dann 
geht es-.-
Bovor ich mich daran weiter aufrege belasse ich es für heute dabei und 
mache morgen die Platine neu (ohne die 10kOhm-Widerstände;))

Danke und bis bald

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.