3
\$\begingroup\$

I am using the MFC5253 controller. It has two CAN channels, CAN 1 and CAN 2. In my project, I am using both of them. Their registers are the same, except for the name (1 and 2).

I can transmit and receive data correctly from CAN1 but not from CAN 2.... How do I fix this problem?

\$\endgroup\$
5
  • \$\begingroup\$ link to datasheet? \$\endgroup\$
    – vicatcu
    Commented Jan 19, 2011 at 14:53
  • \$\begingroup\$ How have you verified that you are transmitting and receiving correctly from one? You would need atleast two working nodes. If you can give me a bit more detail I can help. \$\endgroup\$
    – Kortuk
    Commented Jan 19, 2011 at 19:48
  • \$\begingroup\$ Agreed, Kortuk; there is not enough information here for us to even begin to help. I've done a lot of CAN work (not specifically with this part) and without a testcase and a comparison of what happens with CAN1 and CAN2 we can only speculate. \$\endgroup\$
    – akohlsmith
    Commented Jan 19, 2011 at 20:13
  • \$\begingroup\$ @Kortuk and @Andrew Kohlsmith Yeah.... I am transmitting and Receiving correctcly from CAN 1. If I just my connector from CAN 1 to CAN 2, It receives data being broadcasted on the bus.... Means it is receiving correctly. But I can't spot any frame coming out of CAN 2 (i.e. Transmission is not Working!).... Sorry for inadequate information!! \$\endgroup\$
    – Swanand
    Commented Jan 20, 2011 at 4:28
  • \$\begingroup\$ Microchip CAN products shut off transmission if they detect more than n errors. I think this is part of the CAN spec. These could be anything from bit timing errors on up, so the maximum allowed number of errors can be reached really quickly. While debugging, make sure that you are re-initializing everything each time you perform a test, to minimize the chances that the chip is locking out transmissions. (Of course, you may be able to simply read the status registers to determine if that's happening.) \$\endgroup\$
    – Isaac
    Commented Jan 20, 2011 at 19:43

1 Answer 1

5
\$\begingroup\$

It seems that you have a situation where one node can RX/TX, but the other cannot TX, but still RXs. This is relatively common failure mode.

RX can work without TX working, but TX must have RX feedback, so if only RX is working, you have isolated it to your TX line.

I start with easy, which involves checking for cold joints and for disconnected pins. Do connectivity checks towards from the device sending the signal.

If this is your issue, it seems you may have a problem. Also, if you have a slope control pin, make sure that it has the required signal.

\$\endgroup\$

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