-3
\$\begingroup\$

I'm using "Arduino MCP2515 CAN bus Module TJA1050 receiver" for sending and receiving frames. I connect the bus of 2 modules and send frame from one and receive from the other. I got the correct frame on the serial monitor of Arduino but when I check the bus signal on the oscilloscope but I can't see the frame. This is the picture of my setup:enter image description here and here is the answer I got:enter image description here this is the link of send and receive code that I used:http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-can-bus-module-1st-network-tutorial/ Can someone please help me How can I see the frame? Thanks in advance.

\$\endgroup\$

closed as unclear what you're asking by PlasmaHH, Olin Lathrop, Lundin, awjlogan, Dmitry Grigoryev Sep 26 '18 at 12:32

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    \$\begingroup\$ " but I can't see the frame." Can you get any more unspecific? \$\endgroup\$ – PlasmaHH Sep 25 '18 at 12:11
  • 6
    \$\begingroup\$ "Can't see the frame" is a useless description. Does that mean you are seeing the bits, but don't know how to interpret them into frames? Can't make out individual bits? All you see is flat line? We have no idea how exactly you connected the scope, how you set it up, and how much you know about interpreting the result. This really should have been obvious. \$\endgroup\$ – Olin Lathrop Sep 25 '18 at 12:43
  • 1
    \$\begingroup\$ This is effectively a duplicate of your previous question from yesterday - except there you gave more details. Duplicating questions on this site is not allowed, there is even a specific closure reason for this. As you have received an answer on this question, and not on yesterday's question, I'm going to start the closure process on yesterday's question as a duplicate of this one. Please don't duplicate questions here again. If you don't get a reply to a question, do this. Thanks \$\endgroup\$ – SamGibson Sep 25 '18 at 13:18
  • 1
    \$\begingroup\$ It's still unclear to me what you intend to mean by frame, or specifically what you expect to see on the scope. The TDS2024B does not have CAN bus (or any) protocol decoding. All you'll get is the raw bitstream. You can zoom out (select a longer time base on horizontal) and manually decode each bit visually, but you'll never see decoded text with that scope. \$\endgroup\$ – Phil C Sep 25 '18 at 22:34
  • 1
    \$\begingroup\$ One can export the data from the TDS2024B (e.g. with the API or manually via a USB stick), somehow convert it (say, by a series of Perl scripts) to the format expected by the free Sigrok (say, for CSV import) and use the (now fixed) CAN protocol decoder. I have done it... A blog post is coming, but I can not promise when. \$\endgroup\$ – Peter Mortensen Oct 7 '18 at 21:00
3
\$\begingroup\$

To measure CAN bus on an oscilloscope, connect it as follows:

  • CH1 to Can H
  • CH2 to Can L
  • GND to Can GND

Use the MATH channel in subtract mode to view the frames.
Trigger on MATH, or if that is unavailable, one of the channels rising edge with a hold-off time similar to the frame length.

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Thank you. I did it but when I change the ID or data, the result on oscilloscope isn't change. Would you please help me?@Jeroen3 \$\endgroup\$ – mtp Sep 25 '18 at 12:33
  • 1
    \$\begingroup\$ Measuring the bus differentially is completely overkill. It should be sufficient just to watch CAN H. As for what a certain scope needs in order to decode raw CAN with a signal decoder feature, that's another story entirely. \$\endgroup\$ – Lundin Sep 25 '18 at 14:27
  • 1
    \$\begingroup\$ An alternative trigger scheme is a negative pulse longer than 5.5 bit times (26 µsec for 250 kbit/s). Similary, a positive pulse longer than 5.5 bit times for triggering on CAN error frames. \$\endgroup\$ – Peter Mortensen Oct 7 '18 at 21:08

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