MCP2515 CAN-Controller

Zur Kommunikation mit der MCU (Micro-Controller-Unit) bietet der Chip eine SPI-Schnittstelle mit bis zu 10 MHz Taktrate an. Hierüber wird der Beistein parametrisiert, Register ausgelesen und geschrieben, sowie Statusinformationen abgefragt.

Hierzu stehen folgende SPI-Kommandos zur Verfügung:

Kommando Codierung HEX (BIN) Parameter Antwort
WRITE 0x02 (0000 0010) 1. Byte = Adresse des zu beschreibenden Registers. 2. und weitere Bytes = zu schreibende Daten -keine-
READ 0x03 (0000 0011) 1. Byte = Adresse des auszulesenden Registers Inhalt des Registers. Jeder weitere Leseaufruf liefert das nachfolgende Register.
BIT MODIFY 0x05 (0000 0101) 1. Byte = Adresse des zu modifizierenden Registers. 2. Byte = Maske, 3. Byte = Wert -keine-
READ STATUS 0xA0 (1010 0000) -keine- 1 Byte: Flags div. Puffer und Register.
Empfang
uC            MCP
|---- 0xA0 --->|
|<--- 0x01 ----|

|---- 0x03 --->|
|---- 0x61 --->|
|<--- 0x40 ----|
|<--- 0x00 ----|
|<--- 0x4F ----|
|<--- 0x68 ----|

|---- 0x03 --->|
|---- 0x60 --->|
|<--- 0x66 ----|

|---- 0x03 --->|
|---- 0x65 --->|
|<--- 0x08 ----|

|---- 0x03 --->|
|---- 0x66 --->|
|<---  CD1 ----|
|<---  CD2 ----|
|<---  CD3 ----|
|<---  CD4 ----|
|<---  CD5 ----|
|<---  CD6 ----|
|<---  CD7 ----|
|<---  CD8 ----|

|---- 0x05 --->|
|---- 0x2C --->|
|---- 0x01 --->|
|---- 0x00 --->|
Senden
uC            MCP
|---- 0x03 --->|
|---- 0x30 --->|
|---- 0x00 --->|

|---- 0x02 --->|
|---- 0x36 --->|
|---- CD1  --->|
...
|---- CD8  --->|

|---- 0x02 --->|
|---- 0x35 --->|
|---- 0x08 --->|

|---- 0x02 --->|
|---- 0x31 --->|
|---- 0x40 --->|
|---- 0x00 --->|
|---- 0x00 --->|
|---- 0x00 --->|

|---- 0x05 --->|
|---- 0x30 --->|
|---- 0x08 --->|
|---- 0x08 --->|