cancel
Showing results for 
Search instead for 
Did you mean: 

The CAN TX cannot recognize if it sends the frame correctly or not (Please read the description of the problem)

ZMoha.1
Associate II

I am doing my thesis on Bernina SPC58NN84x and I am trying to implement a CAN bus between the two CAN Subsystems, so that one of them is receiving and the other is sending, but when I do this the CAN TX doesn't recognize the success of the sending and always returns that the value of TXBTO register = 0 (the register responsible for indicating the success of sending)

I have two questions in my case:

1- how does the transmitter know that he has sent a message successfully? is it hardware or software or something else combined between them?

2- does CAN TX knows automatically if the message is sent correctly or should I make some code (e.g if condition) that makes it realize that the message is sent correctly?

Note1: the Register TXBTO is a Read-only register and I didn't find any register that can tell CAN that its message is successfully sent.

Note2: I am using a logic analyzer and the messages (at least part of them) are successfully received, however, the CAN TX still doesn't recognize this.

This discussion has been locked for participation. If you have a question, please start a new topic in order to ask your question
1 REPLY 1
DCARR
Associate III

Hi,

the transmitter understand that he has sent a frame with success when the transmitted message receive the acknoledge from other nodes in the network.

below a brief description of what happen:

1 - The message sender sends his message having the ack message field at recessive value (1)

2 - All the nodes connected to the same network reads the message while it is transmitted and evaluate his goodness.

3 - If the message is good (it is a valid can frame) then these nodes overwrite the ack field of the message with dominant value (0).

4 - The sender read back the transmitting message through his RX pin and if it read back a dominant value (instead of the transmitted recessive value) in the message ack field, then the transmitter understand that his message has been acknoledged by other nodes and consider the transmission as completed.Once the transmission can be considered as completed and the TXBTO bit will be set.

For what I wrote above, I think that you also have to connect your can to another can controller (having the same baudrate configuration) and not only to the logic analyzer.

Best regards

Domenico