Controller stürzt ab, wenn RS232-Kabel (länger) entfernt ist

Gast #2958201
Lesenswert?

Woran liegt es, daß ein Atmega8 abstürzt, wenn das RS232 Kabel länger 
entfernt wird?

Programmiert ist der Chip mit Bascom. Es wird 1x pro Sekunde über die 
UART Schnittstelle etwas gesendet. Ist der Chip am RS232 Port vom 
Computer angeschlossen, funktioniert er Tagelang. Wird er nur wenige 
Minuten abgezogen, geht er danach auch noch. Wird er aber für einige 
Stunden abgezogen, geht danach gar nichts mehr wie es soll.

Manchmal kommt nur noch Unsinn über RS232 rein. Heute war das Problem, 
daß der Chip zwar noch lief, aber einzelne Unterfunktionen scheinbar 
nicht aufgerufen wurden.

Beispiel:
1
Temperatur = 0 
2
print Temperatur
3
Temperatur = Messe_temperatur(id) // Aktuell Raumtemperatur                    
4
print Temperatur

Hier wurde die Funktion "Messe_temperatur" nur manchmal korrekt 
ausgeführt, manchmal wurde sie komplett übersprungen. Am Computer wurde 
zwei mal die "0" gesendet. Obwohl die Funktion 20° zurückgeben müsste. 
Je nachdem, welche Zahl bei "id" verwendet wird, ging es mal und mal 
nicht. (Eine schleife zählt von 1 bis 5).

Wenn dann kurz der Strom weg genommen wird, geht der Chip wieder.

Woran könnte so ein Fehlverhalten liegen? Versucht Bascom die Daten 
irgendwie zu Puffern, wenn kein Kabel angeschlossen ist, und dieser 
Puffer spinnt? Ich habe in Bascom die RS232 Schnittstelle nicht 
gesondert aktiviert, ich verwende aktuell einfach Print.
Gast #2958211
Lesenswert?

Dennis schrieb:
> Versucht Bascom die Daten irgendwie zu Puffern, wenn kein Kabel
> angeschlossen ist, und dieser Puffer spinnt?

Woran soll der µC merken, ob ein Kabel angeschlossen ist, oder nicht.
Das ließe sich nur über entsprechende Programmierung erreichen, indem 
man auf Schnittstelleprotokollebene festlegt, dass der Empfänger der 
Daten immer eine Quittung senden soll.

Was dein Programm macht - keine Ahnung. Vielleicht stimmt mit deinen 
Signalpegeln etwas nicht und/oder der fängt sich über die lange Leitung 
Störungen ein, die das Programm nicht wohlgeordnet verarbeiten kann.
Gast #2959448
Lesenswert?

Dennis schrieb:
...
> Woran könnte so ein Fehlverhalten liegen?

Da gibt es x Möglichkeiten. Wenn nach einem Reset alles wieder läuft ist 
z.B. eine unterschiedliche Baudrate eine Möglichkeit (von vielen).

Das würde auch den "Unsinn" besser erklären wie falsche Pegel (was bei 
digitalen Daten eher unwahrscheinlich ist).

Falls keine Pause zwischen den "Print" Befehlen ist, eine einfügen. Dann 
hat die Schnittstelle Zeit sich neu zu syncen.

Dennis schrieb:
> Versucht Bascom die Daten  irgendwie zu Puffern, wenn kein Kabel
> angeschlossen ist,

Kaum, woher soll der Puffer denn kommen? Beim RS232 Standard gibt es nur 
die Möglichkeit über die Statusleitungen (RTS CTS ..) festzustellen ob 
die Verbindung vorhanden ist, was aber kaum noch einer macht. Sonst wird 
ins leere gesendet.

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