Forum: Mikrocontroller und Digitale Elektronik MCP2515 RXB0 Interrupt


von Killroymenzel (Gast)


Lesenswert?

Hallo......

Ich habe ein Verständnisproblem mit dem Datenblatt bezüglich der 
Interruptsteuerung mit RX0IE.

Im Datenblatt steht unter 7.3 (S.49) daß ein Interrupt ausgelöst wird 
wenn eine Nachricht empfangen worden ist und im Buffer abgelegt ist.

In der Registerbeschreibung allerdings steht, der Interrupt wird 
ausgelöst wenn der Buffer "voll" ist.

Wenn aber nun eine Nachricht mit 3Bytes "Nutzlast" ankommt, wird der 
Interrupt jetzt ausgelöst, oder nicht?

Ich bräuchte für meinen Fall einen Interrupt der auslöst sobalt eine 
gültige Nachricht angekommen ist bei der es egal ist wie viele Nutzbytes 
es hat.
Die Anzahl der Bytes kann ich ja schließlich im RXB0DLC erfahren.

Nach meinem Verständnis wird der Buffer ja auch bei jeder Nachricht ab 
RXB0D0 beschrieben - so daß die vorherige Nachricht überschriben wird.

Leider ist es mir derzeit nicht möglich, es einfach auszuprobieren, da 
ich noch keine Hardware komplett habe. Aber schon anfange zu 
programmieren.

André

von (prx) A. K. (prx)


Lesenswert?

Killroymenzel schrieb:
> Wenn aber nun eine Nachricht mit 3Bytes "Nutzlast" ankommt, wird der
> Interrupt jetzt ausgelöst, oder nicht?

Er wird. CAN überträgt Frames und CAN Controller verarbeiten Frames. 
Keine Bytestreams.

von (prx) A. K. (prx)


Lesenswert?

Killroymenzel schrieb:
> Nach meinem Verständnis wird der Buffer ja auch bei jeder Nachricht ab
> RXB0D0 beschrieben - so daß die vorherige Nachricht überschriben wird.

In der Standardeinstellung sind RXB0 und RXB1 abhängig vom jeweiligen 
Filter für verschiedene Messages zuständig. Der MCP kann aber auch so 
konfiguriert werden, dass ein zweiter über die Filter von RXB0 
einlaufender Frame nach RBX1 geschrieben wird, wenn RXB0 voll ist.

von Killroymenzel (Gast)


Lesenswert?

A. K. schrieb:
> Er wird. CAN überträgt Frames und CAN Controller verarbeiten Frames.
> Keine Bytestreams.

Danke.... Genau das wollte ich lesen... ;-)

A. K. schrieb:
> In der Standardeinstellung sind RXB0 und RXB1 abhängig vom jeweiligen
> Filter für verschiedene Messages zuständig. Der MCP kann aber auch so
> konfiguriert werden, dass ein zweiter über die Filter von RXB0
> einlaufender Frame nach RBX1 geschrieben wird, wenn RXB0 voll ist.

Ja, wenn ich den "Rollover" (BUK-bit) setze, aber ich möchte erst mal 
nur mit einem Buffer arbeiten.




Danke......

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.