cancel
Showing results for 
Search instead for 
Did you mean: 

I would like to know the acknowledge sending condition of STM32F103CBT6. Does STM32F103CBT6 send ACK for all CAN frame messages even if it use filtering function? Or is there any specific configuration that we can manage ACK sending?

MUchi.1
Associate II
 
6 REPLIES 6
Nikita91
Lead II

The accknowledge is a feature of the CAN bus protocol, it is not specific to STM32F103.

All nodes that receive a correct message acknowledge receipt of the message. The sender may retry to send the message if it is not acknowledged by at least one node.

The ack is a very low level feauture, executed before filtering.

You can put a node in silent mode: this node can receive messages but can't be active on the bus (send message or ack received messages).

Read the ref manual CAN chapter, silent mode paragraph.

Thank you for your reply.

Yes, my understanding is same as you.

All nodes should send the acknowledge as CAN rule, so this is not depend on STM32F103.

Of course, if it is configured as in silent mode, STM32F103 cannot send the acknowledge to CAN bus.

But our supplier said STM32F103 can send the acknowledge for only filtering CAN frames.

It means,

  • Acceptable CAN frame that are defined in filter function -> Send the acknowledge and receive the CAN frame into micro controller.
  • NOT acceptable CAN frame that are NOT defined in filter function -> NOT send the acknowledge and discard the CAN frame by micro controller.

But this is very strange for me and this is out of the rule from CAN-bus protocol that is defined as ISO11898.

Is my understanding correct?

Thanks,

Nikita91
Lead II

According to the F103 RM (Rev 17, page 663) you are right, the STM32 have a special behaviour:

"A received message is considered as valid when it has been received correctly according to

the CAN protocol (no error until the last but one bit of the EOF field) and It passed through

the identifier filtering successfully"

As I have always used only 2 nodes, I did not notice this peculiarity.

​Thank you for your reply.

Let me confirm just in case.

Is the following meaning STM32 can send ACK only for filtering CAN frames?

There is no mention about ACK in the manual and I could not understand this behaviour.

------------------------------------

"A received message is considered as valid when it has been received correctly according to

the CAN protocol (no error until the last but one bit of the EOF field) and It passed through

the identifier filtering successfully"

-----------------------------------

Thanks,

Nikita91
Lead II

Humm... I am a bit confused.

After careful reading of the RM, it seems that there is no mention of the conditions for acknowledging a frame.

IMO the frame is acknowledged when it has been received correctly according to the CAN protocol (before the filter test).

I don't have a CAN at the moment, but I don't think we can manage the acknowledge.

I just quickly checked. Stm32f103 does in fact ack any message despite set up filters.