1.. zephyr:board:: stm32f411e_disco
2
3Overview
4********
5
6The STM32F411E Discovery kit features an ARM Cortex-M4 based STM32F411VE MCU
7with a wide range of connectivity support and configurations.
8Here are some highlights of the STM32F411E-DISCO board:
9
10- STM32F411VET6 microcontroller featuring 512 KB of Flash memory, 128 KB of RAM in an LQFP100 package
11- On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone STLINK/V2 (with SWD connector for programming and debugging)
12- Board power supply: through USB bus or from an external 5 V supply voltage
13- External application power supply: 3 V and 5 V
14- L3GD20(rev B) or I3G4250D(rev D): ST MEMS motion sensor, 3-axis digital output gyroscope.
15- LSM303DLHC(rev B) or LSM303AGR(rev D): ST MEMS system-in-package featuring a 3D digital linear acceleration sensor and a 3D digital magnetic sensor.
16- MP45DT02(rev B) or IMP34DT05(rev D), ST MEMS audio sensor, omnidirectional digital microphone
17- CS43L22, audio DAC with integrated class D speaker driver
18- Eight LEDs:
19    - LD1 (red/green) for USB communication
20    - LD2 (red) for 3.3 V power on
21    - Four user LEDs:
22        LD3 (orange), LD4 (green), LD5 (red) and LD6 (blue)
23    - Two USB OTG LEDs:
24        LD7 (green) VBus and LD8 (red) over-current
25- Two pushbuttons (user and reset)
26- USB OTG with micro-AB connector
27- Extension header for LQFP100 I/Os for a quick connection to the prototyping board and an easy probing
28
29More information about the board can be found at the `32F411EDISCOVERY website`_.
30
31Hardware
32********
33
34STM32F411E-DISCO Discovery kit provides the following hardware components:
35
36- STM32F411VET6 in LQFP100 package
37- ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
38- 100 MHz max CPU frequency
39- VDD from 1.7 V to 3.6 V
40- 512 KB Flash
41- 128 KB SRAM
42- GPIO with external interrupt capability
43- 1x12-bit, 2.4 MSPS ADC with 16 channels
44- DMA Controller
45- Up to 11 Timers (six 16-bit, two 32-bit, two watchdog timers and a SysTick timer)
46- USART/UART (3)
47- I2C (3)
48- SPI/I2S (5)
49- SDIO
50- USB 2.0 full-speed device/host/OTG controller with on-chip PHY
51- CRC calculation unit
52- 96-bit unique ID
53- RTC
54
55More information about STM32F411VE can be found here:
56       - `STM32F411VE website`_
57       - `STM32F411x reference manual`_
58
59Supported Features
60==================
61
62The Zephyr stm32f411e_disco board configuration supports the following
63hardware features:
64
65+-----------+------------+-------------------------------------+
66| Interface | Controller | Driver/Component                    |
67+===========+============+=====================================+
68| NVIC      | on-chip    | nested vector interrupt controller  |
69+-----------+------------+-------------------------------------+
70| UART      | on-chip    | serial port-polling;                |
71|           |            | serial port-interrupt               |
72+-----------+------------+-------------------------------------+
73| PINMUX    | on-chip    | pinmux                              |
74+-----------+------------+-------------------------------------+
75| GPIO      | on-chip    | gpio                                |
76+-----------+------------+-------------------------------------+
77| PWM       | on-chip    | pwm                                 |
78+-----------+------------+-------------------------------------+
79
80Other hardware features are not yet supported on Zephyr porting.
81
82The default configuration can be found in
83:zephyr_file:`boards/st/stm32f411e_disco/stm32f411e_disco_defconfig`
84
85
86Pin Mapping
87===========
88
89STM32F411E-DISCO Discovery kit has 5 GPIO controllers. These controllers are
90responsible for pin muxing, input/output, pull-up, etc.
91
92For more details please refer to `32F411EDISCOVERY board User Manual`_.
93
94Default Zephyr Peripheral Mapping:
95----------------------------------
96- UART_2_TX : PA2
97- UART_2_RX : PA3
98- LD3 : PD13 (PWM4 CH2)
99- LD4 : PD12 (PWM4 CH1)
100- LD5 : PD14 (PWM4 CH3)
101- LD6 : PD15 (PWM4 CH4)
102
103System Clock
104============
105
106STM32F411E-DISCO System Clock could be driven by an internal or external
107oscillator, as well as the main PLL clock. By default, the System clock is
108driven by the PLL clock at 100MHz, driven by the internal oscillator.
109
110Serial Port
111===========
112
113The STM32F411G Discovery kit has up to 3 UARTs. The Zephyr console output is
114assigned to UART2. Default settings are 115200 8N1.
115
116
117Programming and Debugging
118*************************
119
120STM32F411E-DISCO Discovery kit includes an ST-LINK/V2 embedded debug tool interface.
121
122Applications for the ``stm32f411e_disco`` board configuration can be built and
123flashed in the usual way (see :ref:`build_an_application` and
124:ref:`application_run` for more details).
125
126Flashing
127========
128
129The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
130so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
131
132Alternatively, OpenOCD or JLink can also be used to flash the board using
133the ``--runner`` (or ``-r``) option:
134
135.. code-block:: console
136
137   $ west flash --runner openocd
138   $ west flash --runner jlink
139
140Flashing an application to STM32F411E-DISCO
141-------------------------------------------
142
143Connect the STM32F411E-DISCO Discovery kit to your host computer using the
144USB port. Then build and flash an application.
145
146Here is an example for the :zephyr:code-sample:`blinky` application.
147
148.. zephyr-app-commands::
149   :zephyr-app: samples/basic/blinky
150   :board: stm32f411e_disco
151   :goals: build flash
152
153In case you are using PCB revision B, you have to use an
154adapted board definition as the default PCB rev here is D:
155
156.. zephyr-app-commands::
157   :zephyr-app: samples/basic/blinky
158   :board: stm32f411e_disco@B
159   :goals: build flash
160
161You should see the orange led (LD3) blinking every second.
162
163Debugging
164=========
165
166You can debug applications in the usual way. Here is an example for
167the :zephyr:code-sample:`blinky` application.
168
169.. zephyr-app-commands::
170   :zephyr-app: samples/basic/blinky
171   :board: stm32f411e_disco
172   :maybe-skip-config:
173   :goals: debug
174
175References
176**********
177
178.. target-notes::
179
180.. _32F411EDISCOVERY website:
181   https://www.st.com/en/evaluation-tools/32f411ediscovery.html
182
183.. _32F411EDISCOVERY board User Manual:
184   https://www.st.com/resource/en/user_manual/dm00148985.pdf
185
186.. _STM32F411VE website:
187   https://www.st.com/en/microcontrollers/stm32f411ve.html
188
189.. _STM32F411x reference manual:
190   https://www.st.com/resource/en/reference_manual/dm00119316.pdf
191
192.. _STM32CubeProgrammer:
193   https://www.st.com/en/development-tools/stm32cubeprog.html
194