This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Are CAN messages continuously sent by hardware if there is no ACK?

I am using T89C51CC03 UA right now. while debugging I found out that even if I wanna send a message once ( via interrupt ), the CAN bus is full of the same message with a period of 1.5ms.

I am sure that other messages are not sent by the interrrupt routine by placing some debugging code inside it.

My question is : Are the other messages sent automatically by the hardware itself if there are no other CAN nodes on the bus to receive them?

If so, how could I solve this problem?

Parents
  • I guess I don't really understand your question? So are you asking how to stop a CAN message once you transmit it? Your software should recognize this type of error (AckError) and then take whatever appropriate failsafe action you need. I am not familiar with your CAN peripheral so I would recommend that you follow the procedure in the user's manual to stop a message in this case.

    The transmitter will leave the bit in the ACK slot as a recessive bit and the receiver(s) will drive a dominant bit in the ACK slot when they receive the data correctly. This is totally done by the CAN hardware peripheral in the microcontrollers.

    Perhaps you could have a look to this web site for more information or download the CAN specification from Bosch.

    http://www.can-cia.org/can/protocol

    http://www.semiconductors.bosch.de/pdf/can2spec.pdf

Reply
  • I guess I don't really understand your question? So are you asking how to stop a CAN message once you transmit it? Your software should recognize this type of error (AckError) and then take whatever appropriate failsafe action you need. I am not familiar with your CAN peripheral so I would recommend that you follow the procedure in the user's manual to stop a message in this case.

    The transmitter will leave the bit in the ACK slot as a recessive bit and the receiver(s) will drive a dominant bit in the ACK slot when they receive the data correctly. This is totally done by the CAN hardware peripheral in the microcontrollers.

    Perhaps you could have a look to this web site for more information or download the CAN specification from Bosch.

    http://www.can-cia.org/can/protocol

    http://www.semiconductors.bosch.de/pdf/can2spec.pdf

Children