Here's another avenue to validate the hardware before diving deeper into the Linux OS.
Connect a Particle Photon or a 3.3V Arduino to the CAN simulator board directly and see if the board responds to a SPI request.
Here's the pinout
Photon -> Pi GPIO
CS: A2 -> 24
SCK: A3 -> 23
MISO: A4 -> 21
MOSI: A5 -> 19
3.3V: 3V3 -> 1
Ground: GND -> 39
Flash this program to the Photon.
#define WRITE_COMMAND 0x02
#define READ_COMMAND 0x03
#define REGISTER_CNF2 0x29
#define INITIAL_CNF2 ((1 << 7) | (2 << 3))
void setup() {
Serial.begin();
Serial.printlnf("Write %02x to MCP2515 register CNF2 and reading back", INITIAL_CNF2);
SPI.begin(SS);
digitalWrite(SS, LOW);
SPI.transfer(WRITE_COMMAND);
SPI.transfer(REGISTER_CNF2);
SPI.transfer(INITIAL_CNF2);
digitalWrite(SS, HIGH);
delay(1);
digitalWrite(SS, LOW);
SPI.transfer(READ_COMMAND);
SPI.transfer(REGISTER_CNF2);
uint8_t result = SPI.transfer(0);
digitalWrite(SS, HIGH);
if (result == INITIAL_CNF2) {
Serial.println("MCP2515 responded with expected result.");
} else {
Serial.println("MCP2515 did not respond. Check wiring.");
}
}
I see this output with the setup pictured above:
Write 90 to MCP2515 register CNF2 and reading back
MCP2515 responded with expected result