cancel
Showing results for 
Search instead for 
Did you mean: 

CAN FD multiple MCUs

Arjun_Bansal
Associate III

I am trying to connect 2 NUCLEO-G0B1RET6 boards,using CAN FD. I previously did it using CAN, But now i am trying to connect these boards using CAN FD. So far no success,I want to know if it is possible to do it using CANFD.Kindly help me in this regard.

1 ACCEPTED SOLUTION

Accepted Solutions

Issue solved. 

  • I upload the updated code,with exact desired output.
  • This project was built using 2nos. G0B1RE, BD41041FJ-C CAN Transceiver
  • Solution:There is need of typeCasting,configure filter id carefully to do this.

View solution in original post

27 REPLIES 27
SofLit
ST Employee

Hello,

Sure you can do it but you should add a FDCAN transceiver to each board.

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.

i am using ROHM41041 transceiver on both boards.please let me know if there is any tutorial for this.I am trying since 3days with no success.

Sorry I didn't find that transceiver on internet. Do you have its datasheet?

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.

Thanks for the attention, I have attached the datasheet.

Thanks for the sharing.

Now there are three points to check:

1- If you are using HSI as source of clock please change it and use STLINK-MCO  as source clock (precise clock) and configure HSE in bypass mode.

2- According to the transceiver datasheet it cannot exceed 1M/s as CAN bitrate. So if you are exceeding this bitrate with FDCAN you will surely face issues.

SofLit_0-1699444769658.png

3- Check the state of STB pin. STB pin should be at 0 level otherwise it will be in standby mode so the node will be offline.

SofLit_1-1699444842459.png

 

Hope it helps.

 

 

 

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.

I will look into it,and try configuring IOC file again.I hope this works.I will let you know about result.Sigining out now.Thanks for insight.

SofLit
ST Employee

Another important point to consider:

From your tranceiver datasheet: it's a 5V one (VCC Min: 4.75V, Max: 5.25V)

SofLit_0-1699450022991.png

If I consider you supply it with around 5V, you have an issue with TxD pin minimum 'High level input voltage': 

VIHmin = 0.7 x VCC = 3.5V > IO voltage level provided by the STM32G0 pin (@3.3V).

Even with VCCmin: VIHmin = 0.7 x 4.75 = 3,325V really at the limit!

 

 

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.

What would be your suggestion to overcome this problem?

Simply use 3.3V transceiver or use voltage level shifter for the final project.

But for testing I think there is an internal pull-up resistor connected to the transceiver TxD pin:

SofLit_0-1699456414453.png

Try to configure CAN_Tx pin in Open Drain. But I cannot guarantee this workaround.

 

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.