I have a need to put together a test/simulation setup for sending CAN messages on a bus. The bus will consist solely of the simulating transmitter and one other receiving node (the DUT). However, the receiving node is designed to be a passive listen-only node, and thus will never ACK any of the messages it receives.
The test setup I was thinking of putting together would consist of an Arduino board with a CAN shield that uses an MCP2515 controller. I have been looking the MCP2515 datasheet, but I cannot seem to see an explicit way of telling it to ignore when a transmitted message goes un-ACKed. Otherwise, I believe that if I just went ahead and started sending out messages, it would not only continuously try to re-send the unacknowledged messages, but also after a short period it would start sending error frames and then eventually go to bus-off mode and stop. Obviously not very useful for my situation.
Can I use the 'one-shot' mode for my needs? I gather this turns off the retry mechanism, but will it result in complete messages being transmitted on the bus? That is, will my passive-listening DUT node still receive them as complete, error-free frames?
Also, how rigorous do I need to be with bus termination in a small test setup? The MCP2515 shield has built-in termination, but my DUT does not have any, as it is designed to only be a spur node on a bus with termination already existent at both ends. Should I just whack a resistor on a breadboard, have the shield connected to the breadboard, and put my DUT connections just before the resistor? Also, how critical is the exact resistor value? I don't think I have any 120R resistors, but I can probably series/parallel some up for something close (maybe ±10R).