1.. zephyr:board:: stm32h7b3i_dk
2
3Overview
4********
5
6The STM32H7B3I-DK Discovery kit is a complete demonstration and development
7platform for STMicroelectronics Arm® Cortex®-M7 core-based STM32H7B3LIH6QU
8microcontroller.
9
10The STM32H7B3I-DK Discovery kit is used as a reference design for user
11application development before porting to the final product, thus simplifying
12the application development.
13
14The full range of hardware features available on the board helps users enhance
15their application development by an evaluation of almost all peripherals (such as
16USB OTG_HS, microSD, USART, FDCAN, audio DAC stereo with audio jack input and output,
17camera, SDRAM, Octo-SPI Flash memory and RGB interface LCD with capacitive touch
18panel). ARDUINO® Uno V3 connectors provide easy connection to extension shields or
19daughterboards for specific applications.
20
21Important board features include:
22
23- STM32H7B3LIH6Q microcontroller featuring 2 Mbytes of Flash memory and 1.4 Mbyte of RAM in BGA225 package
24- 4.3" (480x272 pixels) TFT color LCD module including a capacitive touch panel with RGB interface
25- Wi-Fi |reg| module compliant with 802.11 b/g/n
26- USB OTG HS
27- Audio codec
28- 512-Mbit Octo-SPI NOR Flash memory
29- 128-Mbit SDRAM
30- 2 user LEDs
31- User and Reset push-buttons
32- Fanout daughterboard
33- 1x FDCAN
34- Board connectors:
35   - Camera (8 bit)
36   - USB with Micro-AB
37   - Stereo headset jack including analog microphone input
38   - Audio jack for external speakers
39   - microSD |trade| card
40   - TAG-Connect 10-pin footprint
41   - Arm |reg| Cortex |reg| 10-pin 1.27mm-pitch debug connector over STDC14 footprint
42   - ARDUINO |reg| Uno V3 expansion connector
43   - STMod+ expansion connector
44   - Audio daughterboard expansion connector
45   - External I2C expansion connector
46- Flexible power-supply options:
47   - ST-LINK USB VBUS, USB OTG HS connector, or external sources
48- On-board STLINK-V3E debugger/programmer with USB re-enumeration capability
49
50More information about the board can be found at the `STM32H7B3I-DK website`_.
51
52Hardware
53********
54
55The STM32H7B3I Discovery kit provides the following hardware components:
56
57- STM32H7B3LIH6Q in BGA225 package
58- ARM |reg| 32-bit Cortex |reg| -M7 CPU with FPU
59- 280 MHz max CPU frequency
60- VDD from 1.62 V to 3.6 V
61- 2 MB Flash
62- ~1.4 Mbytes SRAM
63- 32-bit timers(2)
64- 16-bit timers(15)
65- SPI(6)
66- I2C(4)
67- I2S (4)
68- USART(5)
69- UART(5)
70- USB OTG Full Speed and High Speed(1)
71- CAN FD(2)
72- 2xSAI (serial audio interface)
73- SPDIFRX interface(1)
74- HDMI-CEC(1)
75- Octo-SPI memory interfaces with on-the-fly decryption(2)
76- 8- to 14-bit camera interface (1)
77- 8-/16-bit parallel synchronous data input/output slave interface (PSSI)
78- GPIO (up to 168) with external interrupt capability
79- 16-bit ADC(2) with 24 channels / 3.6 MSPS
80- 1x12-bit single-channel DAC + 1x12-bit dual-channel DAC
81- True Random Number Generator (RNG)
82- 5 DMA controllers
83- LCD-TFT Controller with XGA resolution
84- Chrom-ART graphical hardware Accelerator (DMA2D)
85- Hardware JPEG Codec
86- Chrom-GRC™ (GFXMMU)
87
88More information about STM32H7B3 can be found here:
89
90- `STM32H7A3/7B3 on www.st.com`_
91- `STM32H7A3/7B3/7B0 reference manual`_
92- `STM32H7B3xI datasheet`_
93
94Supported Features
95==================
96
97The current Zephyr stm32h7b3i_dk board configuration supports the following hardware features:
98
99+-----------+------------+-------------------------------------+
100| Interface | Controller | Driver/Component                    |
101+===========+============+=====================================+
102| NVIC      | on-chip    | nested vector interrupt controller  |
103+-----------+------------+-------------------------------------+
104| UART      | on-chip    | serial port-polling;                |
105|           |            | serial port-interrupt               |
106+-----------+------------+-------------------------------------+
107| PINMUX    | on-chip    | pinmux                              |
108+-----------+------------+-------------------------------------+
109| GPIO      | on-chip    | gpio                                |
110+-----------+------------+-------------------------------------+
111| I2C       | on-chip    | i2c                                 |
112+-----------+------------+-------------------------------------+
113| SDMMC     | on-chip    | disk access                         |
114+-----------+------------+-------------------------------------+
115| SPI       | on-chip    | spi                                 |
116+-----------+------------+-------------------------------------+
117| OSPI NOR  | on-chip    | off-chip flash                      |
118+-----------+------------+-------------------------------------+
119| FLASH     | on-chip    | flash memory                        |
120+-----------+------------+-------------------------------------+
121| FMC       | on-chip    | memc (SDRAM)                        |
122+-----------+------------+-------------------------------------+
123| LTDC      | on-chip    | display                             |
124+-----------+------------+-------------------------------------+
125| CANFD     | on-chip    | can                                 |
126+-----------+------------+-------------------------------------+
127
128
129Other hardware features have not been enabled yet for this board.
130
131The default configuration can be found in the defconfig file:
132:zephyr_file:`boards/st/stm32h7b3i_dk/stm32h7b3i_dk_defconfig`
133
134Pin Mapping
135===========
136
137STM32H7B3I Discovery kit has 11 GPIO controllers. These controllers are responsible for pin muxing,
138input/output, pull-up, etc.
139
140For more details please refer to `STM32H7B3I-DK board User Manual`_.
141
142Default Zephyr Peripheral Mapping:
143----------------------------------
144
145The STM32H7B3I Discovery kit features an Arduino Uno V3 connector. Board is
146configured as follows
147
148- UART_1 TX/RX : PA9/PA10 (ST-Link Virtual Port Com)
149- UART_4 TX/RX : PH13/PH14 (Arduino Serial)
150- I2C4 SCL/SDA : PD12/PD13 (Arduino I2C, Touchscreen FT5336 with PH2 Interrupt Pin)
151- SPI2 SCK/MISO/MOSI/NSS : PA12/PB14/PB15/PI0 (Arduino SPI)
152- LD1 : PG11
153- LD2 : PG2
154- USER_PB : PC13
155- SDMMC D0/D1/D2/D3/CK/CMD/CD : PC8/PC9/PC10/PC11/PC12/PD2/PI8
156- CANFD RX/TX/WAKE [#]_ : PA11/PA12/PH8
157- FMC SDRAM :
158
159    - D0-D15 : PD14/PD15/PD0/PD1/PE7/PE8/PE9/PE10/PE11/PE12/PE13/PE14/PE15/PD8/PD9/PD10
160    - A0-A11 : PF0/PF1/PF2/PF3/PF4/PF5/PF12/PF13/PF14/PF15/PG0/PG1
161    - A14/A15 : PG4/PG5
162    - SDNRAS/SDNCAS : PF11/PG15
163    - NBL0/NBL1 : PE0/PE1
164    - SDCLK/SDNWE/SDCKE1/SDNE1 : PG8/PH5/PH7/PH6
165
166- LTDC :
167
168    - R0-R7 : PI15/PJ0/PJ1/PJ2/PJ3/PJ4/PJ5/PJ6
169    - G0-G7 : PJ7/PJ8/PJ9/PJ10/PJ11/PK0/PK1/PK2
170    - B0-B7 : PJ12/PJ13/PJ14/PJ15/PK3/PK4/PK5/PK6
171    - DE/CLK/HSYNC/VSYNC : PK7/PI14/PI12/PI13
172
173
174System Clock
175============
176
177The STM32H7B3I System Clock can be driven by an internal or external oscillator,
178as well as by the main PLL clock. By default, the System clock is driven
179by the PLL clock at 280MHz. PLL clock is fed by a 24MHz high speed external clock.
180
181Serial Port
182===========
183
184The STM32H7B3I Discovery kit has up to 10 UARTs. The Zephyr console output is assigned
185to UART1 which is connected to the onboard STLINK-V3E. Virtual COM port interface
186default communication settings are 115200 8N1.
187
188
189Programming and Debugging
190*************************
191
192STM32H7B3I Discovery kit includes an STLINK-V3E embedded debug tool interface.
193
194Applications for the ``stm32h7b3i_dk`` board configuration can be built and
195flashed in the usual way (see :ref:`build_an_application` and
196:ref:`application_run` for more details).
197
198Flashing
199========
200
201The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
202so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
203
204Alternatively, OpenOCD or JLink can also be used to flash the board using
205the ``--runner`` (or ``-r``) option:
206
207.. code-block:: console
208
209   $ west flash --runner openocd
210   $ west flash --runner jlink
211
212Flashing may depend on the SoC option bytes configuration, which can be checked and
213updated using `STM32CubeProgrammer`_.
214
215Flashing an application to STM32H7B3I
216-------------------------------------
217
218First, connect the STM32H7B3I Discovery kit to your host computer using
219the USB port to prepare it for flashing. Then build and flash your application.
220
221Here is an example for the :zephyr:code-sample:`hello_world` application.
222
223.. zephyr-app-commands::
224   :zephyr-app: samples/hello_world
225   :board: stm32h7b3i_dk
226   :goals: build flash
227
228Run a serial host program to connect with your board:
229
230.. code-block:: console
231
232   $ minicom -D /dev/ttyACM0
233
234You should see the following message on the console:
235
236.. code-block:: console
237
238   Hello World! arm
239
240Debugging
241=========
242
243You can debug an application in the usual way.  Here is an example for the
244:zephyr:code-sample:`hello_world` application.
245
246.. zephyr-app-commands::
247   :zephyr-app: samples/hello_world
248   :board: stm32h7b3i_dk
249   :goals: debug
250
251
252.. _STM32H7B3I-DK website:
253   https://www.st.com/en/evaluation-tools/stm32h7b3i-dk.html
254
255.. _STM32H7B3I-DK board User Manual:
256   https://www.st.com/resource/en/user_manual/um2569-discovery-kit-with-stm32h7b3li-mcu-stmicroelectronics.pdf
257
258.. _STM32H7A3/7B3 on www.st.com:
259   https://www.st.com/en/microcontrollers-microprocessors/stm32h7a3-7b3.html
260
261.. _STM32H7A3/7B3/7B0 reference manual:
262   https://www.st.com/resource/en/reference_manual/rm0455-stm32h7a37b3-and-stm32h7b0-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
263
264.. _STM32H7B3xI datasheet:
265   https://www.st.com/resource/en/datasheet/stm32h7b3ai.pdf
266
267.. _STM32CubeProgrammer:
268   https://www.st.com/en/development-tools/stm32cubeprog.html
269
270.. _STM32H7B3I_DK board schematics:
271   https://www.st.com/resource/en/schematic_pack/mb1332-h7b3i-c02_schematic.pdf
272
273.. [#] To use CAN, solder bridges SB3, SB4 and SB5 need to be connected.
274       Take note that CANFD pins are shared with STMOD+ connector (P1), so please check
275       `STM32H7B3I_DK board schematics`_ for possible collisions if using that connector.
276