Ethernet and CAN on STM32 #can #ethernet


Erwan Gouriou
 

Hi Michael,

When available, peripheral drivers of one SoC series should work with all boards using SoC of this series.
Peripheral configuration is not done systematically on all the boards, as it requires time and having the boards to test the change.
To get a peripheral driver working on a board, it only requires to configure the board dts file: enable matching node and configure pinctrl.
In most cases you would not need to touch the Kconfig configuration:
CONFIG_CAN will be set by application and thanks to Kconfig mechanisms, requested STM32_CAN config will be enabled.

HIH

Erwan



On Fri, 15 Jan 2021 at 02:52, <schmid.enterprise@...> wrote:
Dear all,

I am new to Zephyr, I would like to use it on a STM32 for a Ethernet-to-CAN converter. While looking on the list of supported boards, and the supported feature, I can not find a single STM32 board what is listed to support both interfaces. Ether is only CAN supported, or Ethernet. The only board what is listed to support both is the K64.

Now I wonder, why for several STM32 boards CAN is listed, but for others of the same chip family is not. For example, the waveshare_open103z, stm32f3_disco, stm32f4_disco, nucleo_l432, nucleo_l433, nucleo_l452 and black_f407 are listed to support CAN, but other STM32 boards with F1xx, F3xx, F4xx L4xx not show support of CAN. As is understand, the IP of the CAN inferface is the same on all F1, for example. So all boards with an F1xx mcu should have an identical MCU interface, from software point of view. I understand, that not all boards have a CAN driver chip, as such difficult to test the CAN feature on a stock Nucleo or disco  board.

How difficult is it, to make CAN working on a STM32 board, what not explicit shows CAN as supported on the Zephyr documentation, but have a sibling what is listed as support CAN? For example, make CAN working on a STM32F412 board (the STM32F407 support CAN). Is it just enable the SM32_CAN in the configuration and then recompile? Or are there bigger problems to expect?  The same goes for other features like DAC, ADC, ect.

Best regards,
Michael 


schmid.enterprise@...
 

Dear all,

I am new to Zephyr, I would like to use it on a STM32 for a Ethernet-to-CAN converter. While looking on the list of supported boards, and the supported feature, I can not find a single STM32 board what is listed to support both interfaces. Ether is only CAN supported, or Ethernet. The only board what is listed to support both is the K64.

Now I wonder, why for several STM32 boards CAN is listed, but for others of the same chip family is not. For example, the waveshare_open103z, stm32f3_disco, stm32f4_disco, nucleo_l432, nucleo_l433, nucleo_l452 and black_f407 are listed to support CAN, but other STM32 boards with F1xx, F3xx, F4xx L4xx not show support of CAN. As is understand, the IP of the CAN inferface is the same on all F1, for example. So all boards with an F1xx mcu should have an identical MCU interface, from software point of view. I understand, that not all boards have a CAN driver chip, as such difficult to test the CAN feature on a stock Nucleo or disco  board.

How difficult is it, to make CAN working on a STM32 board, what not explicit shows CAN as supported on the Zephyr documentation, but have a sibling what is listed as support CAN? For example, make CAN working on a STM32F412 board (the STM32F407 support CAN). Is it just enable the SM32_CAN in the configuration and then recompile? Or are there bigger problems to expect?  The same goes for other features like DAC, ADC, ect.

Best regards,
Michael