boards: add support for IAR STM32F429II-ACA
Adds support for the IAR STM32F429II-ACA evaluation board Signed-off-by: Ivar Bjerling <ivar@ivarbjerling.com>
This commit is contained in:
parent
826ac55454
commit
4344b8bc05
11 changed files with 490 additions and 0 deletions
10
boards/iar/index.rst
Normal file
10
boards/iar/index.rst
Normal file
|
@ -0,0 +1,10 @@
|
|||
.. _boards-iar:
|
||||
|
||||
IAR
|
||||
###
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
**/*
|
6
boards/iar/stm32f429ii_aca/Kconfig.stm32f429ii_aca
Normal file
6
boards/iar/stm32f429ii_aca/Kconfig.stm32f429ii_aca
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Copyright (c) 2016 Linaro Limited.
|
||||
# Copyright (c) 2025 IAR Systems.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_STM32F429II_ACA
|
||||
select SOC_STM32F429XX
|
10
boards/iar/stm32f429ii_aca/board.cmake
Normal file
10
boards/iar/stm32f429ii_aca/board.cmake
Normal file
|
@ -0,0 +1,10 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=STM32F429II" "--speed=4000")
|
||||
board_runner_args(pyocd "--target=stm32f429xi")
|
||||
board_runner_args(pyocd "--flash-opt=-O reset_type=hw")
|
||||
board_runner_args(pyocd "--flash-opt=-O connect_mode=under-reset")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
|
6
boards/iar/stm32f429ii_aca/board.yml
Normal file
6
boards/iar/stm32f429ii_aca/board.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
board:
|
||||
name: stm32f429ii_aca
|
||||
full_name: STM32F429II-ACA
|
||||
vendor: iar
|
||||
socs:
|
||||
- name: stm32f429xx
|
BIN
boards/iar/stm32f429ii_aca/doc/img/stm32f429ii_aca.webp
Normal file
BIN
boards/iar/stm32f429ii_aca/doc/img/stm32f429ii_aca.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
138
boards/iar/stm32f429ii_aca/doc/index.rst
Normal file
138
boards/iar/stm32f429ii_aca/doc/index.rst
Normal file
|
@ -0,0 +1,138 @@
|
|||
.. zephyr:board:: stm32f429ii_aca
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The IAR STM32F429II-ACA evaluation board features an ARM Cortex-M4 based STM32F429II MCU.
|
||||
Here are some highlights of the STM32F429II-ACA board:
|
||||
|
||||
- STM32 microcontroller in LQFP144 package
|
||||
- JTAG/SWD debugger/programmer interface
|
||||
- Flexible board power supply
|
||||
|
||||
- JTAG/SWD connector
|
||||
- USB HS connector
|
||||
|
||||
- 3x user push-buttons and 1x RESET push-button
|
||||
- Open-close switch and on-auto-off switch
|
||||
- 2x capacitive touch panels
|
||||
- USB OTG with mini-USB connector
|
||||
- Small speaker
|
||||
- Trimmer potentiometer
|
||||
- Nine LEDs
|
||||
|
||||
- 1x power LED
|
||||
- 3x car traffic light LEDs
|
||||
- 2x pedestrian traffic light LEDs
|
||||
- 1x car interior light LED
|
||||
- 2x user LEDs
|
||||
|
||||
Schematics for the board can be found `here <stm32f429ii-aca-schematics_>`_
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
The STM32F429II-ACA evaluation board provides the following hardware components:
|
||||
|
||||
- STM32F429II in LQFP144 package
|
||||
- ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
|
||||
- 180 MHz max CPU frequency
|
||||
- VDD from 1.8 V to 3.6 V
|
||||
- 2 MB Internal Flash
|
||||
- 4 Mbit External Flash
|
||||
- 256+4 KB SRAM including 64-KB of core coupled memory
|
||||
- GPIO with external interrupt capability
|
||||
- 12-bit ADC
|
||||
- 12-bit DAC
|
||||
- RTC
|
||||
- General Purpose Timers
|
||||
- I2C
|
||||
- SPI
|
||||
- USB 2.0 OTG HS/FS with dedicated DMA, on-chip full-speed PHY and ULPI
|
||||
- CRC calculation unit
|
||||
- True random number generator
|
||||
- DMA Controller
|
||||
|
||||
More information about STM32F429II can be found here:
|
||||
|
||||
- `STM32F429II on www.st.com`_
|
||||
- `STM32F429 Reference Manual`_
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
.. zephyr:board-supported-hw::
|
||||
|
||||
Default Zephyr Peripheral Mapping:
|
||||
----------------------------------
|
||||
- I2C_1_SCL : PB8
|
||||
- I2C_1_SDA : PB7
|
||||
- I2C_2_SCL : PH4
|
||||
- I2C_2_SDA : PH5
|
||||
- SPI_5_NSS : PF6
|
||||
- SPI_5_SCK : PF7
|
||||
- SPI_5_MISO : PF8
|
||||
- SPI_5_MOSI : PF9
|
||||
- OTG_HS_ID : PB12
|
||||
- OTG_HS_DM : PB14
|
||||
- OTG_HS_DP : PB15
|
||||
|
||||
Serial Port
|
||||
===========
|
||||
|
||||
By default, the STM32F429II-ACA evaluation board has no physical serial port available.
|
||||
The board has up to 8 UARTs, of which none are used.
|
||||
|
||||
USB Port
|
||||
========
|
||||
|
||||
The STM32F429II-ACA evaluation board has a USB HS capable Mini-USB port. It is connected to the on-chip
|
||||
OTG_HS peripheral.
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Applications for the ``stm32f429ii_aca`` board configuration can be built
|
||||
and flashed in the usual way (see :ref:`build_an_application` and
|
||||
:ref:`application_run` for more details).
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
In order to flash this board using west, an external debug probe such as a Segger J-Link
|
||||
has to be connected through the JTAG/SWD connector on the board.
|
||||
By default, the board is set to be flashed using the jlink runner.
|
||||
Alternatively, openocd, or pyocd can also be used as runners to flash the board using
|
||||
the ``--runner`` (or ``-r``) option:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ west flash --runner openocd
|
||||
$ west flash --runner pyocd
|
||||
|
||||
First, connect the STM32F429II-ACA evaluation board to your host computer using
|
||||
your debug probe through the JTAG/SWD connector to prepare it for flashing.
|
||||
Then build and flash your application.
|
||||
|
||||
Here is an example for the :zephyr:code-sample:`blinky` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/basic/blinky
|
||||
:board: stm32f429ii_aca
|
||||
:goals: build flash
|
||||
|
||||
LED0 should then begin to blink continuously with a 1-second delay.
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _stm32f429ii-aca-schematics:
|
||||
https://iar.my.salesforce.com/sfc/p/#30000000YATY/a/Qx000000vZVh/EzlIqYKIBVXN8PN4Q8MgtowSZrR_vZarwLiNJXw7UJw
|
||||
|
||||
.. _STM32F429II on www.st.com:
|
||||
https://www.st.com/en/microcontrollers-microprocessors/stm32f429ii.html
|
||||
|
||||
.. _STM32F429 Reference Manual:
|
||||
https://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf
|
277
boards/iar/stm32f429ii_aca/stm32f429ii_aca.dts
Normal file
277
boards/iar/stm32f429ii_aca/stm32f429ii_aca.dts
Normal file
|
@ -0,0 +1,277 @@
|
|||
/*
|
||||
* Copyright (c) 2017 Linaro Limited
|
||||
* Copyright (c) 2024 STMicroelectronics
|
||||
* Copyright (c) 2025 IAR Systems
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <st/f4/stm32f429Xi.dtsi>
|
||||
#include <st/f4/stm32f429iitx-pinctrl.dtsi>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "IAR STM32F429II-ACA board";
|
||||
compatible = "iar,stm32f429ii-aca";
|
||||
|
||||
chosen {
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,ccm = &ccm0;
|
||||
};
|
||||
|
||||
sdram2: sdram@d0000000 {
|
||||
compatible = "zephyr,memory-region", "mmio-sram";
|
||||
device_type = "memory";
|
||||
reg = <0xd0000000 DT_SIZE_M(8)>;
|
||||
zephyr,memory-region = "SDRAM2";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
traffic_red_led: led_0 {
|
||||
gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
|
||||
label = "LED0";
|
||||
};
|
||||
|
||||
traffic_yellow_led: led_1 {
|
||||
gpios = <&gpiod 4 GPIO_ACTIVE_LOW>;
|
||||
label = "LED1";
|
||||
};
|
||||
|
||||
traffic_green_led: led_2 {
|
||||
gpios = <&gpiod 5 GPIO_ACTIVE_LOW>;
|
||||
label = "LED2";
|
||||
};
|
||||
|
||||
car_led: led_3 {
|
||||
gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
|
||||
label = "LED3";
|
||||
};
|
||||
|
||||
pedestrian_red_led: led_4 {
|
||||
gpios = <&gpiod 7 GPIO_ACTIVE_LOW>;
|
||||
label = "LED4";
|
||||
};
|
||||
|
||||
pedestrian_green_led: led_5 {
|
||||
gpios = <&gpiod 11 GPIO_ACTIVE_LOW>;
|
||||
label = "LED5";
|
||||
};
|
||||
|
||||
user_led_1: led_6 {
|
||||
gpios = <&gpiod 12 GPIO_ACTIVE_LOW>;
|
||||
label = "LED6";
|
||||
};
|
||||
|
||||
user_led_2: led_7 {
|
||||
gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
|
||||
label = "LED7";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
button0: button_0 {
|
||||
label = "BUT0";
|
||||
gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
|
||||
button1: button_1 {
|
||||
label = "BUT1";
|
||||
gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_1>;
|
||||
};
|
||||
|
||||
button2: button_2 {
|
||||
label = "BUT2";
|
||||
gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_2>;
|
||||
};
|
||||
|
||||
open_close_switch: switch_0 {
|
||||
label = "OPEN/CLOSE SWITCH";
|
||||
gpios = <&gpioi 11 GPIO_ACTIVE_HIGH>;
|
||||
zephyr,code = <INPUT_KEY_3>;
|
||||
};
|
||||
|
||||
interior_light_switch_on: switch_1 {
|
||||
label = "ON";
|
||||
gpios = <&gpioi 10 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_4>;
|
||||
};
|
||||
|
||||
interior_light_switch_auto: switch_2 {
|
||||
label = "AUTO";
|
||||
gpios = <&gpioi 9 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_5>;
|
||||
};
|
||||
|
||||
interior_light_switch_off: switch_3 {
|
||||
label = "OFF";
|
||||
gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_6>;
|
||||
};
|
||||
|
||||
cap_button0: cap_button_0 {
|
||||
label = "CAP_BUT0";
|
||||
gpios = <&gpioh 6 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_7>;
|
||||
};
|
||||
|
||||
cap_button1: cap_button_1 {
|
||||
label = "CAP_BUT1";
|
||||
gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
|
||||
zephyr,code = <INPUT_KEY_8>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &traffic_red_led;
|
||||
led1 = &traffic_yellow_led;
|
||||
led2 = &traffic_green_led;
|
||||
led3 = &car_led;
|
||||
led4 = &pedestrian_red_led;
|
||||
led5 = &pedestrian_green_led;
|
||||
led6 = &user_led_1;
|
||||
led7 = &user_led_2;
|
||||
sw0 = &button0;
|
||||
sw1 = &button1;
|
||||
sw2 = &button2;
|
||||
sw3 = &open_close_switch;
|
||||
sw4 = &interior_light_switch_on;
|
||||
sw5 = &interior_light_switch_auto;
|
||||
sw6 = &interior_light_switch_off;
|
||||
sw7 = &cap_button0;
|
||||
sw8 = &cap_button1;
|
||||
};
|
||||
};
|
||||
|
||||
&clk_lsi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clk_hse {
|
||||
clock-frequency = <DT_FREQ_M(8)>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pll {
|
||||
div-m = <8>;
|
||||
mul-n = <336>;
|
||||
div-p = <2>;
|
||||
div-q = <7>;
|
||||
clocks = <&clk_hse>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rcc {
|
||||
clocks = <&pll>;
|
||||
clock-frequency = <DT_FREQ_M(168)>;
|
||||
ahb-prescaler = <1>;
|
||||
apb1-prescaler = <4>;
|
||||
apb2-prescaler = <2>;
|
||||
};
|
||||
|
||||
&rtc {
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
|
||||
<&rcc STM32_SRC_LSI RTC_SEL(2)>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb7>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
pinctrl-0 = <&i2c2_scl_ph4 &i2c2_sda_ph5>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
};
|
||||
|
||||
|
||||
&spi5 {
|
||||
pinctrl-0 = <&spi5_nss_pf6 &spi5_sck_pf7
|
||||
&spi5_miso_pf8 &spi5_mosi_pf9>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
cs-gpios = <&gpioc 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&fmc {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1
|
||||
&fmc_sdclk_pg8 &fmc_sdnwe_pc0 &fmc_sdcke0_pc3
|
||||
&fmc_sdne0_pc2 &fmc_sdnras_pf11 &fmc_sdncas_pg15
|
||||
&fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3
|
||||
&fmc_a4_pf4 &fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13
|
||||
&fmc_a8_pf14 &fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1
|
||||
&fmc_a12_pg2 &fmc_a13_pg3 &fmc_a14_pg4 &fmc_a15_pg5
|
||||
&fmc_d0_pd14 &fmc_d1_pd15 &fmc_d2_pd0 &fmc_d3_pd1
|
||||
&fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9 &fmc_d7_pe10
|
||||
&fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13 &fmc_d11_pe14
|
||||
&fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9 &fmc_d15_pd10>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
sdram {
|
||||
status = "okay";
|
||||
|
||||
power-up-delay = <100>;
|
||||
num-auto-refresh = <1>;
|
||||
mode-register = <0>;
|
||||
refresh-rate = <1386>;
|
||||
|
||||
bank@1 {
|
||||
reg = <1>;
|
||||
|
||||
st,sdram-control = <STM32_FMC_SDRAM_NC_8
|
||||
STM32_FMC_SDRAM_NR_12
|
||||
STM32_FMC_SDRAM_MWID_16
|
||||
STM32_FMC_SDRAM_NB_4
|
||||
STM32_FMC_SDRAM_CAS_2
|
||||
STM32_FMC_SDRAM_SDCLK_PERIOD_3
|
||||
STM32_FMC_SDRAM_RBURST_DISABLE
|
||||
STM32_FMC_SDRAM_RPIPE_1>;
|
||||
st,sdram-timing = <2 7 4 7 2 2 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&adc2 {
|
||||
compatible = "st,stm32f4-adc", "st,stm32-adc";
|
||||
pinctrl-0 = <&adc2_in6_pa6>;
|
||||
pinctrl-names = "default";
|
||||
st,adc-prescaler = <2>;
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
};
|
||||
|
||||
&dac1 {
|
||||
pinctrl-0 = <&dac_out2_pa5>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
zephyr_udc0: &usbotg_hs {
|
||||
pinctrl-0 = <&usb_otg_hs_dm_pb14 &usb_otg_hs_dp_pb15 &usb_otg_hs_id_pb12>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
15
boards/iar/stm32f429ii_aca/stm32f429ii_aca.yaml
Normal file
15
boards/iar/stm32f429ii_aca/stm32f429ii_aca.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
identifier: stm32f429ii_aca
|
||||
name: IAR STM32F429II ACA
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- iar
|
||||
ram: 192
|
||||
flash: 2048
|
||||
supported:
|
||||
- counter
|
||||
- i2c
|
||||
- spi
|
||||
vendor: iar
|
10
boards/iar/stm32f429ii_aca/stm32f429ii_aca_defconfig
Normal file
10
boards/iar/stm32f429ii_aca/stm32f429ii_aca_defconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable HW stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
17
boards/iar/stm32f429ii_aca/support/openocd.cfg
Normal file
17
boards/iar/stm32f429ii_aca/support/openocd.cfg
Normal file
|
@ -0,0 +1,17 @@
|
|||
source [find interface/cmsis-dap.cfg]
|
||||
|
||||
set CHIPNAME STM32F429IITx
|
||||
set BOARDNAME STM32F429II-ACA
|
||||
|
||||
source [find target/stm32f4x.cfg]
|
||||
|
||||
$_TARGETNAME configure -event gdb-attach {
|
||||
echo "Debugger attaching: halting execution"
|
||||
reset halt
|
||||
gdb_breakpoint_override hard
|
||||
}
|
||||
|
||||
$_TARGETNAME configure -event gdb-detach {
|
||||
echo "Debugger detaching: resuming execution"
|
||||
resume
|
||||
}
|
|
@ -303,6 +303,7 @@ hynitron Hynitron
|
|||
hyundai Hyundai Technology
|
||||
hzgrow Hangzhou Grow Technology Co., Ltd.
|
||||
i2se I2SE GmbH
|
||||
iar IAR Systems AB
|
||||
ibm International Business Machines (IBM)
|
||||
icplus IC Plus Corp.
|
||||
idt Integrated Device Technologies, Inc.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue