I’m using an Arduino and through a library working with a CAN controller (MCP2515) over SPI, sending messages to itself over a loopback mode it offers. The IC indicates interrupts by a falling edge.

Components are connected using jumper wires on a breadboard.

  • When a logic analyzer is not attached, the IRQ gets called without end. A pull-up doesn’t help. I’ve tried the internal pullup and an external one.
  • Trying to see if there is a ton of interrupts from the IC, or a software error, I attach my logic analyzer. Now it works perfect.
  • I detached the connection to the IC’s interrupt pin and manually triggered my own interrupts by holding then releasing a jumper to the Arduino’s external interrupts pin. It works fine, only triggering as many interrupts as I cause.

Any idea what might cause such an insanely weird issue? Looking around I haven’t found anything.