ST Nucleo F767ZI
Overview
This is a set of Bridle’s extension to the original Zephyr upstream board ST Nucleo F767ZI with some adaptions and improvement on Kconfig and Devicetree level.
List of extensions
Kconfig
activate self powered USB explicitly and set the maximum of electrical current consumption to 0㎃:
ST Nucleo F767ZI
Kconfig.defconfigconfig USB_SELF_POWERED default y depends on USB_DEVICE_STACK && BOARD_NUCLEO_F767ZI config USB_MAX_POWER default 0 if BOARD_NUCLEO_F767ZI # 0mA (self powered) depends on USB_DEVICE_STACK && BOARD_NUCLEO_F767ZI
change log level and startup delay only in case of use the native USB device port
st,stm32-otgfs
with CDC-ACM UARTzephyr,cdc-acm-uart
as Zephyr console:CONFIG_USB_CDC_ACM_LOG_LEVEL_CHOICE
:=CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF
CONFIG_USB_DEVICE_LOG_LEVEL_CHOICE
:=CONFIG_USB_DEVICE_LOG_LEVEL_ERR
ST Nucleo F767ZI
Kconfig.defconfig# Workaround for not being able to have commas in macro arguments DT_CHOSEN_Z_CONSOLE := zephyr,console DT_COMPAT_Z_CDC_ACM_UART := zephyr,cdc-acm-uart DT_COMPAT_STM32_USB := st,stm32-otgfs # Macros to shorten Kconfig expressions DT_CHOSEN_CONSOLE_NODE := $(dt_chosen_path,$(DT_CHOSEN_Z_CONSOLE)) DT_CHOSEN_CONSOLE_PARENT := $(dt_node_parent,$(DT_CHOSEN_CONSOLE_NODE)) if BOARD_NUCLEO_F767ZI && \ $(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE)) && \ $(dt_compat_on_bus,$(DT_COMPAT_Z_CDC_ACM_UART),usb) && \ $(dt_node_has_compat,$(DT_CHOSEN_CONSOLE_PARENT),$(DT_COMPAT_STM32_USB)) # Logger cannot use itself to log choice USB_CDC_ACM_LOG_LEVEL_CHOICE default USB_CDC_ACM_LOG_LEVEL_OFF depends on LOG endchoice # Set USB log level to error only choice USB_DEVICE_LOG_LEVEL_CHOICE default USB_DEVICE_LOG_LEVEL_ERR depends on LOG endchoice # Wait 4000ms at startup for logging config LOG_PROCESS_THREAD_STARTUP_DELAY_MS default 4000 depends on LOG # Wait 4000ms at startup for USB enumeration on host side config BOOT_DELAY default 4000 endif # zephyr,cdc-acm-uart
Devicetree
set default entries for
model
andcompatible
of the boards:ST Nucleo F767ZI
nucleo_f767zi.overlay/ { model = "STMicroelectronics STM32F767ZI-NUCLEO board @ UART Concole"; compatible = "st,stm32f767zi-nucleo", "st,stm32f767zi-nucleo-uartcons"; };