MAX232 kann nur senden, nicht empfangen

Gast #2777647
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ß
Angehängte Dateien:
Gast #2777707
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
}
Moderator (Firma: Titel) Persönliche Seite #2777747
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...
Moderator (Firma: Titel) Persönliche Seite #2777760
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.
Gast #2777789
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren