This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-F28069M: CAN node is not working as a transceiver

Part Number: LAUNCHXL-F28069M

Respected Sir,

I am trying to communicate three CAN nodes. My 1st node is simple transmitter. My second node is receiving the data sent by 1st node. All this is working good, but when I am trying to send the data from 2nd node to 3rd node then it is not working. I want my 2nd node to work as a receiver as well as transmitter. But it is not transmitting data, why it is not working as a transceiver. I am using 0 to 15 mailboxes as a Tx and 16 to 31 as Rx mailboxes. Is there any bit which I need to set for transceiver operation. 

Regards,

Nisha Gosavi

  • Nisha,
    Every node on the CAN bus is capable of both transmitting and receiving. A node that cannot Receive cannot Transmit, since a transmitter needs to “receive” the ACK bit. Likewise, a node that cannot Transmit cannot Receive, since a receiver needs to “transmit” the ACK bit. So, all nodes are capable of Tx/Rx. It all depends on how you configure the mailboxes. You configure a MBX to be Tx or Rx based on the value you write to the CANME register.

    You use the word “transceiver” in a way that is not intended. I think you are using that word to refer to a node that can transmit as well as receive. In CAN parlance, “transceiver” refers to a chip that interfaces the MCU to the physical layer (like a twisted pair cable). Refer to the figure in my app.note SPRA876 to understand where a transceiver fits in the grand scheme of things.
  • Sir,

    you are right but in my case, my 1st node is transmitting to 2nd node and 2nd node is transmitting to 3rd node and this case is not working. In this case 2nd node is intended to receive the data from 1st as well as to transmit the data to 3rd node but in actual it seems unable to transmit to 3rd node. My question is why this is happening ?? When I have checked only for 2 nodes then my both nodes 1st and 2nd are capable of transmitting as well as receiving the data, this has been worked properly. I have given the following instructions for enabling the mailboxes (0 to 15 as Tx and 16 to 31 as Rx).

    ECanaRegs.CANMD.all = 0xFFFF0000;
    ECanaRegs.CANME.all = 0xFFFFFFFF;
    ECanaRegs.CANMIM.all = 0xFFFFFFFF;

    Waiting for your reply.

    Regards,
    Nisha
  • When you added the third node, did you remove the termination resistor from the middle node? Please go through the Debug Checklist in my app.note SPRA876 carefully. Specifically, 3.3.2 below:

    "...Has the bus been terminated correctly (with 120-Ω) at either ends (only)? The bus must be terminated only at either ends and with a 120-Ω resistor. In other words, no more than two terminator resistors may be present on the bus...."

  • Respected Sir,

    I have already terminated the bus with 120 ohm resistors. There was a problem related to ACK signal. That has been resolved.

    Thank You!

    Nisha Gosavi