Overrun Error, M16C

Gast #1351547
Hallo.

Ich arbeite mit Segger embOS V3.20g für M16C62P mit der Tasking IDE 
3.1r1 Patch5. (Leider wird diese Kombination von den Herstellern nicht 
mehr unterstützt.)

Die Applikation benutzt alle 3 UART-Schnittstellen des M16C mit einer 
Geschwindigkeit von 115,2KBaud. UART1 und 2 arbeiten dabei als Slave, 
UART0 als Master. Es werden ca. alle 200ms Pakete (max. 32Byte) auf den 
Schnittstellen mit der "Aussenwelt" ausgetauscht.
Senden und Empfangen läuft Interrupt-getrieben. UART0 hat dabei als 
einzige Quelle im System eine Interruptprio von 7.
Alle Interrupts sind "Nestable". (__I-Flag wird am Anfang der ISR wieder 
gesetzt.)
Die Last im Gesamtsystem beträgt ca. 15%.

Trotz (oder vielleicht wegen) all der obigen Randbedingungen tritt ab 
und zu ein Overrun Error bei UART0 auf. Die Behandlung des Fehlers hilft 
meistens. Die Kommunikation läuft dann stundenlang problemlos. Plötzlich 
bricht sie aber total zusammen und lässt sich auch softwaremäßig nicht 
mehr in Gang bringen, nur noch ein SW-Reset hilft.
Interessanterweise passiert das ganz aber nicht wenn nur über UART0 
kommuniziert wird.

Anmerkung:
Ich habe die Baudrate schon auf 57,6KBaud reduziert, die UARTs 
getauscht.
Leider ohne Ergebnis.


Kennt/hat jemand ein ähnliches Problem?
Könnte das Ganze am OS liegen oder hat evtl. sogar der M16C hier ein 
Hardwareproblem.


Nebenbei gefragt:
Wie setzt man am Besten einen Overrun Error zurück?
Alle Beispiele setzen einen Summenfehler in der RX-ISR zurück.
Leider wird aber gerade bei einem Overrun Error die ISR nicht 
getriggert.


Hermann

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.