Commit 0d538447 authored by Tom Owen's avatar Tom Owen Committed by Christopher Friedt
Browse files

board: Added board support package for Nucleo_F446ZE



Includes support for USB, CAN, ADC, DAC, and Arduino GPIO Map.
Future could support: ETM Trace (if Zephyr supports it), QSPI, FMC, DCMI

Initially based on closest BSP for the same SoC: nucleo_f446re
Extra peripherals added based on closest BSP for nucleo-144 board:
 nucleo_f429zi
Checked against nucleo-144 schematic
Documentation updated as best as I could
Arduino compatible pinmux for SPI, UART and I2C via Zio header

Tested:
  USB Device mode (samples/subsys/usb/console)
  Console via ST-link usart3 (samples/hello_world)
  user LEDs (samples/basic/blinky)
  scripts/twister --device-tests -p nucleo_f446ze
Not tested but should work: SPI, I2C, CAN, ADC, DAC
Not working yet: Quad-SPI (missing in dts/arm/st/f4/stm32f4.dtsi)

Co-authored-by: Alexandre Bourdiol
 <50730894+ABOSTM@users.noreply.github.com>
Signed-off-by: default avatarTom Owen <tom.owen@zepler.net>
parent 981d10f2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
# STM32F446ZE Nucleo board configuration

# Copyright (c) 2021 Tom Owen
# SPDX-License-Identifier: Apache-2.0

config BOARD_NUCLEO_F446ZE
	bool "Nucleo F446ZE Development Board"
	depends on SOC_STM32F446XX
+15 −0
Original line number Diff line number Diff line
# STM32F446ZE Nucleo board configuration

# Copyright (c) 2021 Tom Owen
# SPDX-License-Identifier: Apache-2.0

if BOARD_NUCLEO_F446ZE

config BOARD
	default "nucleo_f446ze"

config SPI_STM32_INTERRUPT
	default y
	depends on SPI

endif # BOARD_NUCLEO_F446ZE
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2021, Tom Owen
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpioa 3 0>,	/* A0 */
			   <1 0 &gpioc 0 0>,	/* A1 */
			   <2 0 &gpioc 3 0>,	/* A2 */
			   <3 0 &gpiof 3 0>,	/* A3 */
			   <4 0 &gpiof 5 0>,	/* A4 */
			   <5 0 &gpiof 10 0>,	/* A5 */
			   <6 0 &gpiog 9 0>,	/* D0 */
			   <7 0 &gpiog 14 0>,	/* D1 */
			   <8 0 &gpiof 15 0>,	/* D2 */
			   <9 0 &gpioe 13 0>,	/* D3 */
			   <10 0 &gpiof 14 0>,	/* D4 */
			   <11 0 &gpioe 11 0>,	/* D5 */
			   <12 0 &gpioe 9 0>,	/* D6 */
			   <13 0 &gpiof 13 0>,	/* D7 */
			   <14 0 &gpiof 12 0>,	/* D8 */
			   <15 0 &gpiod 15 0>,	/* D9 */
			   <16 0 &gpiod 14 0>,	/* D10 */
			   <17 0 &gpioa 7 0>,	/* D11 */
			   <18 0 &gpioa 6 0>,	/* D12 */
			   <19 0 &gpioa 5 0>,	/* D13 */
			   <20 0 &gpiob 9 0>,	/* D14 */
			   <21 0 &gpiob 8 0>;	/* D15 */
	};
};

arduino_i2c: &i2c1 {};
arduino_spi: &spi1 {};
arduino_serial: &usart6 {};
+6 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: Apache-2.0

board_runner_args(jlink "--device=STM32F446ZE" "--speed=4000")

include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
+13.5 KiB
Loading image diff...
Loading