0
\$\begingroup\$

I'm trying to set a CAN Communication between an MCU (Inside Renesas board that have a CAN interface inside) and CAN Transceiver (Vector CANcase) which is connected to my laptop via USB.

I want to check if the communication is passing (If frame messages are being transmitted / received) in the bus.

I found that I have to check the CAN_H / CAN_L signals using an oscilloscope but i need to know the circuit / wiring.

Since i have to measure the differential : Do i need to use a separate channel for each and then use the oscilloscope to substruct one from the other (I have Tektronic MSO 2024B wich is supporting Math function) ? enter image description here

From what I have understand when a communication is running I should read CAN_H = 3.5V and CAN_L should be 1.5 and when not the difference should be 2.5 .

I have another question: the MCU gives the possibility to output CAN Tx/Rx signals in GPIO pins: How can I measure them in this case : should be the same as CAN_H and CAN_L (Altough I don't know the difference between CAN Tx/Rx and CAN High/Low)

Please share your suggestions on how to do this :) Many thanks.

\$\endgroup\$
2
\$\begingroup\$

Since you own an MSO oscilloscope, feel free to use two channels, one for H and one for L (like the blue and the red channel in your image).

The low-tech alternative would be measuring just one channel and trusting the other to be the way it's supposed to be (maybe not the way to go with an MSOscilloscope), or to hook the ground-clip to the low channel while probing the high channel. You then only see a difference in voltage of 3.5V - 1.5V = 2V when H is high and L is low.

However, if you have the option, use two separate channels. Maybe your scope even does debugging!

\$\endgroup\$
  • \$\begingroup\$ Yes It does debugging too ... I should search for the user manual :) However do you know when using two channels if the ground has to be connected too ? \$\endgroup\$ – The Beast Dec 4 '16 at 22:02
  • \$\begingroup\$ TL;DR: Yes. You should connect the scope's ground terminal to some reference on the board (preferably GND (or SGND) of course). The scope has to use some reference to 'plot' the signals against, e.g. if your CAN_H voltage shows 3.5V, it is 3.5V higher than your PCB's "signal return" (GND). If - in reference to your board - the scope's ground terminal is not connected ('floating' at some undefined voltage level), your CAN_H voltage has no reference. \$\endgroup\$ – m00wn Sep 4 '18 at 15:02
2
\$\begingroup\$

To check if there's communication, merely check that there's some binary data on both CAN high and CAN low. There's no reason why you would need to measure the differential voltage between them, unless you are trouble-shooting some hardware error.

If you need to manually decode the CAN frame, just pick either CAN high or low. Same thing if you need to measure baud rate.

\$\endgroup\$

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.