I'm designing a CAN circuit that will connect a series string of 12V batteries together. The first battery will be tied to a common ground (think vehicle chassis) that will connect to the CAN ground which is shared separately across the batteries.

I'm trying to design a circuit that will activate a GPIO pin if CAN activity is detected. At it's simplest, I believe this is achievable with the use of a differential amplifier with low gain - such that the inputs are buffered and summarised independent of the amplifier circuit's ground.

What happens however if the CAN voltages are offset - i.e. if we consider CAN to be +2.5V and -2.5V relative to the source ground - in the 4th battery in the string the difference becomes 38.5 and 33.5 relative to that batteries ground (and well above rail voltage)

Is an instrumentation amplifier or differential the right circuit for this application? Ideally I want a buffered circuit where if the difference between Vin(A) and Vin(B) > 4V, an output gets pulled high.

enter image description here

  • \$\begingroup\$ What you want to achieve isn't clear. To what is the can referenced ? are you trying to connect/disconnect each of the batteries? Try to add a schematic. \$\endgroup\$
    – Damien
    Apr 12 at 3:48
  • \$\begingroup\$ Thanks @Damien - done :) \$\endgroup\$ Apr 12 at 4:25
  • \$\begingroup\$ How about the two other questions? \$\endgroup\$
    – Damien
    Apr 12 at 6:12

What you are asking isn't clear, and the schematic isn't clear either.

Regardless, using an instrumentation op-amp in this type of voltage is probably not the best solution.

Instead of detecting voltage levels, you could detect pulses by using a capacitor as a decoupling mean, so you don't need to care about the voltage levels or referencing.


simulate this circuit – Schematic created using CircuitLab

When data will pass, you will detect the pulses on the line, then have an MCU or some analog circuit to do what you'd like. The voltage divider (use 10k res) will set the threshold of the detection.

C1 has to be small enough to get the edges, this depends on the can speed. You can start with perhaps 1nF. You only need to detect in one of the line.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.