cancel
Showing results for 
Search instead for 
Did you mean: 

No CAN Communication on STM32H723ZG-E01 (A230801274)

mani9989
Associate II

Dear STMicroelectronics Support,

I am working with the STM32H723ZG-E01 board (Serial: A230801274) and encountering an issue where CAN communication is not functioning as expected.

Based on the documentation, I have configured the FDCAN1 interface to use PD0 (FDCAN1_RX) and PD1 (FDCAN1_TX). The FDCAN peripheral clock is set to 20 MHz. The external transceiver is correctly connected and powered, and the rest of the board appears to function normally.

Despite this setup, no CAN or CAN FD communication is taking place. I would appreciate your help with the following:

  1. Could you please confirm whether PD0 and PD1 are valid and officially supported pins for FDCAN1 on this specific board?

  2. Are there any known limitations, errata, or special configuration requirements for using these pins?

  3. Could you kindly share a sample .ioc configuration file and example code (bare metal or HAL-based) for basic CAN or CAN FD communication on the STM32H723ZG-E01 board?

This would greatly help us verify our setup and ensure we're not missing any critical configuration steps.

Thank you for your assistance.

Best regards,
Kasani Manikanta 

20 REPLIES 20

Hello,

Are you sure this is the only hardware you are using?

mALLEm_0-1747299305094.png

 

Where is the CAN transceiver? where is the second node that needs to be connected to the CAN bus? where are the terminating resistors?

And this is what you need as a minimal hardware to establish a successful CAN communication in Normal mode. You need at least two CAN nodes connected together. This is what you need for CAN communication in Normal mode:

Figure 1.png

This is already explained in the section 3. Hardware setup in the mentioned article. The two nodes should have the same CAN bitrate and you must use an external accurate clock source (example: Crystal). HSI and other internal clock sources are not recommended for CAN operation in Normal mode.

CAN is not SPI or UART to probe the Tx with only one device. You need at least two CAN nodes to ensure the successful operation of the acknowledgement mechanism.

Or simply use External Loopback mode and probe the CAN_Tx pin. In that case you are not obliged to use a second CAN node.

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

WIth the terminator resistor it works. I can now see the Transmission. 

But I dont see the reception. I am sending the can frame and dont get the inteerupt hit. ANy idea what can be the problem. 

Hello,

Please be more specific and provide more details. We cannot help you if you don't share enough information with us:

1 - Please provide a clear sketch of the complete CAN bus: the two nodes + their transceivers + the two terminating resistors.

2 - Share your project, a minimal but with a complete software that can be run from our side.

Without the requested information, I cannot help you further.

Thank you for your understanding.

 

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.

>>But I don't see the reception

It's not listening to itself.. beyond looking for contention, ie where something else steps on the transmission

You really need TWO nodes to transmit between, and acknowledge reception.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mani9989
Associate II

Thanks for your support @mƎALLEm  & @Tesla DeLorean   - I got the RX interrupt running. 

Can you please let me know the clock settings I am using are correct. I have attached the ioc file here. 

We will soon work on ADC, SPI & I2c.

What about the Hardware and the sketch? I cannot go further with you if I don't have a clear view of your hardware. 

So please provide a complete view of your CAN bus.

I've attached the ioc file with the correct settings in RCC section.

Did you check if you have 5MHz at the output of STLINK V3 like described in the article How to use STLINK-V3 MCO output on Nucleo boards as a precise clock source for STM32 / section 2. How to get MCU target HSE fed by STLINK-V3 MCO with an accurate clock source ?

 

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.

Hello @mƎALLEm ,

 

I have attached the HW sketch and the IOC file. 

Can you please let me know if the clock settings are right. 

I am looking for can clock 8Mhhz


BR

Mani

Hello,

Are you sure this is the hardware you've adopted?

mALLEm_0-1747748982865.png

Tx/Rx transceiver side need to be connected to the STM32, while CAN_H and CAN_L need to be connected to the "CANoe"

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.

That looks entirely backward.

The CAN_H / CAN_L are the **BUS** side of the interface, the TX/RX is the STM32 side.

 

CAN_High to CAN_H

CAN_Low to CAN_L

GND to GND, ie common, like to the chassis of the vehicle.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mani9989
Associate II

hello @mƎALLEm 

Yes you  are coorect. So you go the picture of the setup.

CAn you check ioc for the clock config where I am looking for can clk with 8Mhz and Input Freq 24Mhz