CAN & SPI gleichzeitig an Raspberry

#6693607
Lesenswert?

Guten Tag,

ich versuche aktuell zwei Raspberry Pi's über den CAN-Bus miteinander 
kommunizieren zu lassen(dafür nutze ich ein mcp2515-Board der Firma 
Mikroelektronika). Dazu möchte ich an jeden Raspberry einen Arduino Uno 
anschließen. Die empfangenen CAN-Botschaften auf den Pi's möchte ich 
dann über den SPI-Bus an den angeschlossenen Arduino übermitteln und 
ausgeben. Allerdings finde ich nichts dazu wie ich mit einem MCP2515 CAN 
& SPI gleichzeitig betreiben kann.

Ich bin für jeden Tipp dankbar.

Vielen Dank schonmal im Voraus.



Liebe Grüße
#6693622
Lesenswert?

Ich denke schon. Über den CS lässt sich vom Master aus ein Slave 
ansprechen. Allerdings weiß ich nicht genau wie ich das auf CAN und SPI 
aufteilen würde. Ich bin bisher wie folgt vorgegangen:

Vom Raspberry pi habe ich:
MOSI auf eine Leitung am Breadboard
MISO "
SCK "
Spannung "
Masse "

Dann habe ich mir sozusagen alle Leitungen an den MCP2515 gelegt und von 
da aus an den anderen Raspberry Pi.
Für due SPI Verbindung habe ich mir dann auch alle Leitungen abgegriffen 
und über einen Pegelwandler an den Arduino angeschlossen.
Allerdings bin ich damit jetzt nicht weiter gekommen.
Vielleicht erkennst du ja meinen Fehler.
#6693646
Lesenswert?

Luca E. schrieb:
> Wenn du SocketCAN nutzt, ist es meines Wissens nicht möglich, den
> SPI-Bus noch für andere Geräte zu verwenden. Du kannst in diesem Fall
> den MCP an SPI0 und den Arduino an SPI1 anschließen.

Über Simulink lässt sich nur SPI0_CE0 und SPI0_CE1 ansteuern. Ich hatte 
sonst noch überlegt überlegt:

MISO, MOSI und SLCK an MCP und Arduino anzuschließen.
Für CE0 dann den MCP2515 und für CE1 den Arduino.
#6694196
Lesenswert?

Henrik W. schrieb:
> Vom Raspberry pi habe ich:
> MOSI auf eine Leitung am Breadboard
> MISO "
> SCK "
> Spannung "
> Masse "

Und wo ist CS?


> Für due SPI Verbindung habe ich mir dann auch alle Leitungen abgegriffen
> und über einen Pegelwandler an den Arduino angeschlossen.

Alle bis auf CS?

> Allerdings bin ich damit jetzt nicht weiter gekommen.

Wenn man mehrere SPI-Slaves an einem SPI-Bus hat so braucht jeder Slave 
eine eigene CS-Leitung vom Master. Mit den CS-Leitungen schaltet man vom 
Master aus dann um mit welchem Slave man gerade kommunizieren will.
Persönliche Seite #6694216
Lesenswert?

Henrik W. schrieb:
> Die empfangenen CAN-Botschaften auf den Pi's möchte ich
> dann über den SPI-Bus an den angeschlossenen Arduino übermitteln und
> ausgeben.

Warum schließt du nicht den CAN direkt an den Arduino an und lässt den 
R-PI weg? Oder du verwendest direkt ein Arduino-ähnliches Board mit 
integriertem CAN, sodass du alles auf einer Platine hast und auch 
überhaupt keinen SPI mehr brauchst, wie z.B. das OLIMEXINO-STM32.
#6699550
Lesenswert?

Niklas G. schrieb:
> Henrik W. schrieb:
>> Die empfangenen CAN-Botschaften auf den Pi's möchte ich
>> dann über den SPI-Bus an den angeschlossenen Arduino übermitteln und
>> ausgeben.
>
> Warum schließt du nicht den CAN direkt an den Arduino an und lässt den
> R-PI weg? Oder du verwendest direkt ein Arduino-ähnliches Board mit
> integriertem CAN, sodass du alles auf einer Platine hast und auch
> überhaupt keinen SPI mehr brauchst, wie z.B. das OLIMEXINO-STM32.

Ja würde ich auch gerne so machen. Allerdings ist der Raspi eine Vorgabe 
des Dozenten.

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