Data overrun bei LPC1768

Gast #1934392
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
Gast #1934635
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
1
pDest = (uint32_t *)&MsgBuf_RX1;
2
  *pDest = LPC_CAN1->RFS;  /* Frame  */
3

4
  pDest++;
5
  *pDest = LPC_CAN1->RID; /* ID  */
6
  
7

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

11

12
  pDest++;
13
  *pDest = LPC_CAN1->RDB; /* Data B  */
14
  
15
  CAN1RxDone = TRUE;
16

17
  data[0]=MsgBuf_RX1.DataA;
18
  data[1]=MsgBuf_RX1.DataB;
19

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

22
  LPC_CAN1->RFS = 0;
23
  LPC_CAN1->RID= 0;
24
  LPC_CAN1->RDA= 0;
25
  LPC_CAN1->RDB= 0;
26
  return;
Gast #1937315
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.
Gast #1944572
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.

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