I’m working on a project involving the CAN Bus Shield, and I’ve recently acquired one for myself. Of course, the shield works perfectly on my Arduino Uno board, but members of the group I’m working with are interested in using it with the STM32F746 Discovery board, as it gives us access to other hardware we’d like to use (e.g. a touchscreen display). The board already has an Arduino shield pinout on it, and I’ve taken pretty good care setting up the configuration in firmware, but I’m not able to get the CAN Bus Shield to respond over SPI.
After getting out a logic analyzer, I noticed that the STM32F746 works on 3.3v logic levels instead of the 5v logic levels of the Arduino Uno. I was curious if this might be the source of the problem; perhaps the MCP2515 on the Shield needs to see the CS pin go from 5V to 0V? Or perhaps the clock never drives voltages high or low enough to look like a proper edge? I could get a level shifter from Sparkfun and run at <1MHz, if that’s what needs to happen.
Anyone tried something like this before? Found a way to get the Shield to operate on boards other than Arduino?