mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Data overrun bei LPC1768


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich wollte mal fragen ob sich jemand mit dem Data overrun vom LPC1768 
auskennt.
Korrigiert mich bitte aberMeinung nach ist es so, dass bei diesem 
Controller beim Empfang ein zweifacher Buffer zur Verfügung steht, 
hierbei kann eine Nachricht verarbeitet werden während eine weitere noch 
empfangen wird. Tritt nun eine dritte auf handelt es sich um einen Data 
overrun.

Weiß jemand wie sich ein Dataoverrun äußert und wie man diesen 
verhindern kann ( Reicht das löschen des Buffers nach jeder Verarbeitung 
indem mal "0" hineinschreibt)

Ich danke euch

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir niemand sagen wie er seinen Empfangsbuffer löscht?

Autor: Frank Bär (f-baer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um welche Schnittstelle handelt es sich denn?
Allgemein: Nutze Dummy-Reads auf das Input-Register der Schnittstelle.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CAN schnittstelle

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und das senden und empfangen funtkioniert alles ne weile und dann geht 
gar nichts mehr aber es liegen auch keien Fehler auf dem Bus und 
aufgrund der beschreibung im Datenblatt vermute ich, liegt es am Data 
overrun jetzt überschreibe ich den empfnagbuffer nach dem abspeichern 
der daten mit 0 und ich wüsst halt gern ob jemand schon erfahrungen 
diesbezüglich gemacht hat und evtl. tipps hat was ich vergesse/falsch 
mache
pDest = (uint32_t *)&MsgBuf_RX1;
  *pDest = LPC_CAN1->RFS;  /* Frame  */

  pDest++;
  *pDest = LPC_CAN1->RID; /* ID  */
  

  pDest++;
  *pDest =  LPC_CAN1->RDA; /* Data A */


  pDest++;
  *pDest = LPC_CAN1->RDB; /* Data B  */
  
  CAN1RxDone = TRUE;

  data[0]=MsgBuf_RX1.DataA;
  data[1]=MsgBuf_RX1.DataB;

  LPC_CAN1->CMR |= (1<<2);

  LPC_CAN1->RFS = 0;
  LPC_CAN1->RID= 0;
  LPC_CAN1->RDA= 0;
  LPC_CAN1->RDB= 0;
  return;

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:
> Weiß jemand wie sich ein Dataoverrun äußert und wie man diesen
> verhindern kann

Finde doch erstmal raus, ob es überhaupt wirklich einen Data Overrun 
gegeben hat. Steht im Register CANxGSR im Bit DOS.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist definitiv ein Data overrun, ich kann beim debuggen in die 
Register schauen und sobald ich eine Nachricht empfange, die in meine 
LUT den passenden Identifier besitzt, wird ein Data Overrun ausgelöst.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nachtrag:
sobald ich die nachrichten einzeln schicke also nicht hintereinander weg 
geht auch alles ... hm keiner sonst Erfahrungen mit dem Dataoverrun bzw. 
CAN beim LPC1768

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann kann es eigentlich nur noch daran liegen, daß Du die Nachrichten 
nicht schnell genug aus dem Buffer holst.
Oder Du gibst den Buffer nicht frei (bit RRB in CANxCMR), wenn Du den 
Frame darin fertig verarbeitet hast.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den zweiten Punkt ignorieren, da ja sonst bei Einzelsendung auch beim 
Dritten Frame Schluß gewesen wäre.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.