cancel
Showing results for 
Search instead for 
Did you mean: 

can bus ack signal

YPark.5
Associate II

I want to scan (acquire) data from a vehicle can bus.
1. Is it possible to prevent the ACK bit from occurring in CAN communication in the MCU?
2. If I set the ID to receive all data, won't an ack occur?

1 ACCEPTED SOLUTION

Accepted Solutions
SofLit
ST Employee

Hello,

You can't prevent the ACK bit to occur even if the receiver is not the right recipient.

The ACK bit is generated automatically by the CAN cell when at least one CAN node received the frame correctly. By "received the frame" I mean a correct frame not necessarily passing the CAN filters

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

3 REPLIES 3
SofLit
ST Employee

Hello,

You can't prevent the ACK bit to occur even if the receiver is not the right recipient.

The ACK bit is generated automatically by the CAN cell when at least one CAN node received the frame correctly. By "received the frame" I mean a correct frame not necessarily passing the CAN filters

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

thank you for the reply!!

(example)
There are 3 nodes A/B/C, B/C ID (0x1234) is set to the same,
Node A transmits -> Set to receive simultaneously from B/C.
(question)
1. After receiving the B/C frame, B/C will each generate an ACK. Isn’t this a problem with the A node or the CAN bus?
2. If an OBDii product is developed and installed in a vehicle, the situation will be the same as question 1. Will it have any effect on the CAN bus?

SofLit
ST Employee

Hello,

At least one of the nodes B or C will acknowledge the reception. It can be B or C or both. This is valid where node B and C are in normal mode. In silent mode, the behavior is different and B and C still receive CAN frames but they are sending recessive bits on the bus and the ACK bit is sent internally in their respective CAN cell.

From RM:

SofLit_1-1702458475101.png

An OBDxx should follow the CAN spec but I don't know if it's in Normal or in silent mode.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.