Forum: Mikrocontroller und Digitale Elektronik Atmel 8051 mit CAN - wie Fehler behandeln?


von Maik S. (Firma: Elektro-Automatik) (mstaberock)


Lesenswert?

Hallo!

Ich hoffe, mir kann jemand helfen. Ich habe hier einen Atmel AT89C51CC03 
mit CAN-Controller. Alles läuft, schon seit Jahren. Was wir nie 
betrachtet haben: wie verhält sich der Controller, wenn man ihn zu sehr 
stresst?

Das habe ich nun getan, ihn zu sehr gestresst mit Anfragen in 
1ms-Intervall. Nach kurzer Zeit passiert dann folgendes:
1. Der Controller generiert ständig die Interrupts OVRBUF und OVRTIM, 
also Pufferüberlauf und Timerüberlauf
2. Da wir das dem Anwender, der mit dem Controller vom PC aus 
kommuniziert, mitteilen, wird in so einem Fall eine Fehlermeldung 
gesendet. Dann werden die Interrupts gelöscht.

Leider sendet der MC ab da ständig die Fehlermeldung, weil er irgendwie 
in einem Zustand festhängt. Ich weiß nun nicht, wie ich ihn sinnvoll 
behandle, diesen Fehler, denn es gibt viele Möglichkeiten:
1. CAN-Controller resetten (wirkungsvoll, erfordert aber komplette 
Neuinitialisierung aller betroffenen CAN-Register)
2. Interrupt bedienen und löschen (reicht nicht, tritt sofort wieder 
auf)
3. Controller abschalten (hilft nur solange bis er wieder eingeschaltet 
wird)
4. Messageboxen sperren (hilft das was? Ich weiß nicht, ob das Problem 
überhaupt mit den Messageboxen zusammenhängt)
5. Interrupt sperren (hilft nur solange, bis er wieder freigegeben wird)
6. Alle Messageboxen leeren (siehe Punkt 4)

Was würdet ihr tun bzw. habt ihr auch schon mal das Problem gehabt und 
es gelöst? Ich möchte erreichen, daß der MC bei einem Pufferüberlauf 
zwar eine Fehlermeldung absetzt, danach aber wieder einsatzbereit ist. 
Wenn der Anwender dann wieder zu schnell aufeinanderfolgende Nachrichten 
sendet, wiederholt sich das Ganze halt. Aber der MC soll sich nicht in 
der Routine aufhängen, daß er nur noch Fehler-Interrupts generiert.

Danke schonmal!

Maik

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.