cancel
Showing results for 
Search instead for 
Did you mean: 

CAN communication between 3 Nucleo boards

Srivatsan
Associate III

Hi,

I am trying to establish CAN communication between three different MCUs: NUCLEO-H723ZG, NUCLEO-H755ZIQ, and NUCLEO-G474RE. However, I am unable to successfully communicate between the boards, even though the same baud rate has been configured on all MCUs. I have also connected an external CAN transceiver to each board for proper CAN bus operation.

On the NUCLEO-G474RE, I have enabled UART4 to send command data, using the following pins:

  • PC11 – UART4_RX

  • PC10 – UART4_TX


Clock Frequency [SYSCLK] & Baud Rate [CAN]:

1. NUCLEO-H723ZG: 550 MHz

    Baud Rate: 500000 Bit/s

Srivatsan_2-1770723670441.png

 

Srivatsan_3-1770723803277.png

 


2. NUCLEO-H755ZIQ: 480 MHz

    Baud Rate: 500000 Bit/s

Srivatsan_0-1770723567676.png

 

Srivatsan_4-1770723922733.png

 


3. NUCLEO-G474RE: 170 MHz

    Baud Rate: 500000 Bit/s

Srivatsan_1-1770723624279.png

 

Srivatsan_5-1770723986124.png

 

31 REPLIES 31
LCE
Principal II

That's a bad configuration.TSEG1 =TSEG2 = Tq!

... and giving an interesting nominal bit rate of 5 Mbit/s :D

Which might be an interesting experiment if the STM32 can handle this. But TDC should be enabled.


@LCE wrote:

... and giving an interesting nominal bit rate of 5 Mbit/s :D

 

 LOL! nice catch. I didn't notice that. I saw it 500kb/s.. Classic mode @5Mb/s :D

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.
Ben11
Associate II

Murged threads for the same subject..

Hi,

I have connected three MCU boards on a CAN bus with proper termination using two 120 Ω resistors at each end of the bus, resulting in an effective bus resistance of approximately 60 Ω. The grounds of all boards are connected together.

The three boards used are:

  • NUCLEO-G474RE (2 boards)

  • NUCLEO-H723ZG (1 board)

Each MCU board is interfaced with a TJA1050 CAN transceiver for CAN communication.

Hardware setup:

Ben11_3-1770876073330.png

 

I am using STM32CubeIDE version 1.19.0 and have flashed the CAN firmware onto each board. An external CAN bus monitor/analyzer is connected to observe the CAN traffic.

I am able to successfully monitor CAN data from the two G474RE boards (the data is attached below), but I do not see any CAN messages from the H723ZG board on the bus monitor.

All boards are configured with the same CAN baud rate of 500 kbit/s.

CAN Identifiers Used:

  • G474RE Board 1: 0x123

  • G474RE Board 2: 0x124

  • H723ZG Board: 0x125

 

Clock configuration:

G474RE (2 boards):-


SYSCLK:
170 MHz
FD CAN :
170 MHz

Ben11_0-1770875241589.png

H723ZG (1 board):-


SYSCLK:
550 MHz 
FD CAN :
 137.5 MHz

Ben11_1-1770875302048.png

Bus Monitor Data:

Ben11_2-1770875360419.png

Pins details:

NUCLEO-G474RE:

PA12 - FDCAN1_TX 

PA11 - FDCAN1_RX

 

NUCLEO-H723ZG:

PD1 - FDCAN1_TX 

PD0 - FDCAN1_RX

How you establish the communication in the H723ZG board?

Hello,

I think this post is similar to this one

Are you colleagues? if yes, please avoid duplications and continue in the same discussion. We already provided you answers there!

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.

No. I need some guidance to resolve the issue. Could you guide me to resolve it ? 

What do you mean by "No"?

It's the same thread. So please clarify..

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.

sorry for the inconvenience made. I just now clarified with this. We'll make sure to avoid duplications. 

sorry for the miscommunication made

Srivatsan
Associate III

I have connected three MCU boards on a CAN bus with proper termination using two 120 Ω resistors at each end of the bus, resulting in an effective bus resistance of approximately 60 Ω. The grounds of all boards are connected together.

The three boards used are:

  • NUCLEO-G474RE (2 boards)

  • NUCLEO-H723ZG (1 board)

Each MCU board is interfaced with a TJA1050 CAN transceiver for CAN communication.

Hardware setup:

Srivatsan_0-1770881774198.png

 

 

I am using STM32CubeIDE version 1.19.0 and have flashed the CAN firmware onto each board. An external CAN bus monitor/analyzer is connected to observe the CAN traffic.

I am able to successfully monitor CAN data from the two G474RE boards (the data is attached below), but I do not see any CAN messages from the H723ZG board on the bus monitor.

All boards are configured with the same CAN baud rate of 500 kbit/s.

CAN Identifiers Used:

  • G474RE Board 1: 0x123

  • G474RE Board 2: 0x124

  • H723ZG Board: 0x125

 

Clock configuration:

G474RE (2 boards):-


SYSCLK:
 170 MHz
FD CAN :
170 MHz

Srivatsan_1-1770881774357.png

 

H723ZG (1 board):-


SYSCLK: 
550 MHz 
FD CAN :
 137.5 MHz

Srivatsan_2-1770881773928.png

 

Bus Monitor Data:

Srivatsan_3-1770881773788.png

 

Pins details:

NUCLEO-G474RE:

PA12 - FDCAN1_TX 

PA11 - FDCAN1_RX

 

NUCLEO-H723ZG:

PD1 - FDCAN1_TX 

PD0 - FDCAN1_RX

How you establish the communication in the H723ZG board?


mƎALLEm
ST Employee

@Srivatsan and @Ben11 ,

I've merged the threads. Please continue the discussion here and please provide a status about what we have provided as answers previously.

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.