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.

Transmit Acknowledge problem

Other Parts Discussed in Thread: TMS320F28335

Hi there,

I'm trying to implement CAN interface software module for TMS320F28335.

And I ran into problem.

Even if my modle works well in Self Test Mode, it doesn't work in normal operation mode.

In detail, even if TRS bit is set, I can't acquire appropriate TA bit.

In this case, do I have to look into my hardware?

  1. I connected CAN_A and CAN_B module each other via external tranceiver chip.

  2. I also confirmed that termination resistor is connected. (120ohm for CAN_A, 120ohm for CAN_B)

  3. Baud rate is set by default. (1Mbps, 150MHz System Clock)

What else, do I have to check?

 

P.S

This is my  STM test result. (in normal mode, program stays at while loop (that is, "while( until TA is set)").

CAN_A: Message was sent by Mailbox_1 , Message was received in Mailbox_0

CAN_B: Message was sent by Mailbox_1  , Message was received in Mailbox_0

 

  • There can be many reasons for not getting the TA - bit. A missing TA indicates that the transmit message was not seen by any other CAN - node as a non corrupted message.

    You already mentioned that you used 2 CAN Transceivers (which one?) and a correct termination between CAN_H and CAN_L.

    I would first use a CAN analyzer to see if it monitors a correct outgoing CAN - frame. There are some reasonable priced USB - CAN devices available at the market. If you don't have one, then also an oscilloscope shot of the lines CAN_H and CAN_L could do it.  If you see a valid traffic, then the cause of the malfunction is in your receiver setup code or in the hardware of the CAN channel, which you use as receiver. 

    Without any further inside in your hard/software setup it is difficult to recommend next steps.

     

     

     

     

     

  • I'm so sorry for for causing you so much trouble.

    I realized that my port configuration was wrong.

    Our hardware designer did not assigned CAN port as default GPIO port. (assigned to GPIO12,13,18,19)

    Anyhow, it's so curious that why self-test mode works well even though basic port configuration was wrong!

    I really appreciate your help!