|
| 1 | +.. zephyr:board:: mini_stm32h7b0 |
| 2 | +
|
| 3 | +Overview |
| 4 | +******** |
| 5 | + |
| 6 | +The MiniSTM32H7B0 Core board is a compact development board equipped with |
| 7 | +an STM32H7B0VBT6 microcontroller. It features a variety of peripherals, |
| 8 | +including a user LED and button, a display, and external SPI and QuadSPI |
| 9 | +NOR flash memory. |
| 10 | + |
| 11 | +Key Features |
| 12 | + |
| 13 | +- STM32 microcontroller in LQFP100 package |
| 14 | +- USB OTG or full-speed device |
| 15 | +- 1 user LED |
| 16 | +- User, boot, and reset push-buttons |
| 17 | +- 32.768 kHz and 25MHz HSE crystal oscillators |
| 18 | +- External NOR Flash memories: 64-Mbit Quad-SPI and 64-Mbit SPI |
| 19 | +- Board connectors: |
| 20 | + |
| 21 | + - Camera (8 bit) connector |
| 22 | + - ST7735 TFT-LCD 160 x 80 pixels (RGB565 3-SPI) |
| 23 | + - microSD |trade| card |
| 24 | + - USB Type-C Connector |
| 25 | + - SWD header for external debugger |
| 26 | + - 2x 40-pin GPIO connector |
| 27 | + |
| 28 | + |
| 29 | +More information about the board can be found on the `Mini_STM32H7B0 website`_. |
| 30 | + |
| 31 | +Hardware |
| 32 | +******** |
| 33 | + |
| 34 | +The MiniSTM32H7B0 Core board provides the following hardware components: |
| 35 | + |
| 36 | +- STM32H7B0VBT6 in LQFP100 package |
| 37 | +- ARM 32-bit Cortex-M7 CPU with FPU |
| 38 | +- Chrom-ART Accelerator |
| 39 | +- Hardware JPEG Codec |
| 40 | +- 280 MHz max CPU frequency |
| 41 | +- VDD from 1.62 V to 3.6 V |
| 42 | +- 128 KB Flash |
| 43 | +- 1.4 MB SRAM |
| 44 | +- High-resolution timer (2.1 ns) |
| 45 | +- 32-bit timers(2) |
| 46 | +- 16-bit timers(10) |
| 47 | +- SPI(5) |
| 48 | +- I2C(4) |
| 49 | +- I2S (4) |
| 50 | +- USART(5) |
| 51 | +- UART(5) |
| 52 | +- USB OTG Full Speed and High Speed(1) |
| 53 | +- CAN FD(2) |
| 54 | +- SAI(4) |
| 55 | +- SPDIF_Rx(4) |
| 56 | +- HDMI_CEC(1) |
| 57 | +- Dual Mode Quad SPI(1) |
| 58 | +- Camera Interface |
| 59 | +- GPIO (up to 80) with external interrupt capability |
| 60 | +- 16-bit ADC(2) with 16 channels |
| 61 | +- 12-bit DAC with 2 channels(2) |
| 62 | +- True Random Number Generator (RNG) |
| 63 | +- 16-channel DMA |
| 64 | +- LCD-TFT Controller with XGA resolution |
| 65 | + |
| 66 | +More information about STM32H7BO can be found here: |
| 67 | + |
| 68 | +- `STM32H7B0VB on www.st.com`_ |
| 69 | +- `STM32H7B0VB reference manual`_ |
| 70 | +- `STM32H7B0VB datasheet`_ |
| 71 | + |
| 72 | +Supported Features |
| 73 | +================== |
| 74 | + |
| 75 | +The ``mini_stm32h7b0`` board target supports the following hardware features: |
| 76 | + |
| 77 | ++-----------+------------+-------------------------------------+ |
| 78 | +| Interface | Controller | Driver/Component | |
| 79 | ++===========+============+=====================================+ |
| 80 | +| NVIC | on-chip | nested vector interrupt controller | |
| 81 | ++-----------+------------+-------------------------------------+ |
| 82 | +| WDT | on-chip | watchdog | |
| 83 | ++-----------+------------+-------------------------------------+ |
| 84 | +| PINMUX | on-chip | pinmux | |
| 85 | ++-----------+------------+-------------------------------------+ |
| 86 | +| FLASH | on-chip | flash memory | |
| 87 | ++-----------+------------+-------------------------------------+ |
| 88 | +| GPIO | on-chip | gpio | |
| 89 | ++-----------+------------+-------------------------------------+ |
| 90 | +| SPI | on-chip | spi | |
| 91 | ++-----------+------------+-------------------------------------+ |
| 92 | +| QSPI NOR | on-chip | off-chip flash | |
| 93 | ++-----------+------------+-------------------------------------+ |
| 94 | +| SDMMC | on-chip | disk access | |
| 95 | ++-----------+------------+-------------------------------------+ |
| 96 | +| DISPLAY | on-chip | display | |
| 97 | ++-----------+------------+-------------------------------------+ |
| 98 | + |
| 99 | +Other hardware features have not been enabled yet for this board. |
| 100 | + |
| 101 | +The default configuration per core can be found in the defconfig file: |
| 102 | +:zephyr_file:`boards/weact/mini_stm32h7b0/mini_stm32h7b0_defconfig` |
| 103 | + |
| 104 | +Pin Mapping |
| 105 | +=========== |
| 106 | + |
| 107 | +MiniSTM32H7B0 Core board has 5 GPIO controllers. These controllers are responsible for pin muxing, |
| 108 | +input/output, pull-up, etc. |
| 109 | + |
| 110 | +For more details please refer to `Mini_STM32H7B0 website`_. |
| 111 | + |
| 112 | +Default Zephyr Peripheral Mapping: |
| 113 | +---------------------------------- |
| 114 | + |
| 115 | +The MiniSTM32H7B0 Core board is configured as follows |
| 116 | + |
| 117 | +- USER_LED : PE3 |
| 118 | +- USER_PB : PC13 |
| 119 | +- SPI1 SCK/MISO/MOSI/NSS : PB3/PB4/PD7/PD6 (NOR Flash memory) |
| 120 | +- SPI4 SCK/MOSI/NSS : PE12/PE14/PE11 (LCD) |
| 121 | +- QuadSPI CLK/NCS/IO0/IO1/IO2/IO3 : PB2/PB6/PD11/PD12/PE2/PD13 (NOR Flash memory) |
| 122 | +- SDMMC1 CLK/DCMD/CD/D0/D1/D2/D3 : PC12/PD2/PD4/PC8/PC9/PC10/PC11 (microSD card) |
| 123 | +- USB DM/DP : PA11/PA12 (USB CDC ACM) |
| 124 | + |
| 125 | +System Clock |
| 126 | +============ |
| 127 | + |
| 128 | +The STM32H7B0VB System Clock can be driven by an internal or external oscillator, |
| 129 | +as well as by the main PLL clock. By default, the System clock is driven |
| 130 | +by the PLL clock at 280MHz. PLL clock is fed by a 25MHz high speed external clock. |
| 131 | + |
| 132 | +Serial Port (USB CDC ACM) |
| 133 | +========================= |
| 134 | + |
| 135 | +The Zephyr console output is assigned to the USB CDC ACM virtual serial port. |
| 136 | +Virtual COM port interface. Default communication settings are 115200 8N1. |
| 137 | + |
| 138 | +Programming and Debugging |
| 139 | +************************* |
| 140 | + |
| 141 | +The MiniSTM32H7B0 Core board facilitates firmware flashing via the USB DFU |
| 142 | +bootloader. This method simplifies the process of updating images, although |
| 143 | +it doesn't provide debugging capabilities. However, the board provides header |
| 144 | +pins for the Serial Wire Debug (SWD) interface, which can be used to connect |
| 145 | +an external debugger, such as ST-Link. |
| 146 | + |
| 147 | +Flashing |
| 148 | +======== |
| 149 | + |
| 150 | +To activate the bootloader, follow these steps: |
| 151 | + |
| 152 | +1. Press and hold the BOOT0 key. |
| 153 | +2. While still holding the BOOT0 key, press and release the RESET key. |
| 154 | +3. Wait for 0.5 seconds, then release the BOOT0 key. |
| 155 | + |
| 156 | +Upon successful execution of these steps, the device will transition into |
| 157 | +bootloader mode and present itself as a USB DFU Mode device. You can program |
| 158 | +the device using the west tool or the STM32CubeProgrammer. |
| 159 | + |
| 160 | +Flashing an application to MiniSTM32H7B0 |
| 161 | +---------------------------------------- |
| 162 | + |
| 163 | +Here is an example for the :zephyr:code-sample:`hello_world` application. |
| 164 | + |
| 165 | +First, put the board in bootloader mode as described above. Then build and flash |
| 166 | +the application in the usual way. Just add ``CONFIG_BOOT_DELAY=5000`` to the |
| 167 | +configuration, so that USB CDC ACM is initialized before any text is printed, |
| 168 | +as below: |
| 169 | + |
| 170 | +.. zephyr-app-commands:: |
| 171 | + :zephyr-app: samples/hello_world |
| 172 | + :board: mini_stm32h7b0 |
| 173 | + :goals: build flash |
| 174 | + :gen-args: -DCONFIG_BOOT_DELAY=5000 |
| 175 | + |
| 176 | +Run a serial host program to connect with your board: |
| 177 | + |
| 178 | +.. code-block:: console |
| 179 | +
|
| 180 | + $ minicom -D <tty_device> -b 115200 |
| 181 | +
|
| 182 | +Then, press the RESET button, you should see the following message after few seconds: |
| 183 | + |
| 184 | +.. code-block:: console |
| 185 | +
|
| 186 | + Hello World! mini_stm32h7b0 |
| 187 | +
|
| 188 | +Replace :code:`<tty_device>` with the port where the board XIAO BLE |
| 189 | +can be found. For example, under Linux, :code:`/dev/ttyACM0`. |
| 190 | + |
| 191 | +Debugging |
| 192 | +--------- |
| 193 | + |
| 194 | +This current Zephyr port does not support debugging. |
| 195 | + |
| 196 | +Testing the LEDs in the MiniSTM32H7B0 |
| 197 | +************************************* |
| 198 | + |
| 199 | +There is a sample that allows to test that LED on the board are working |
| 200 | +properly with Zephyr: |
| 201 | + |
| 202 | +.. zephyr-app-commands:: |
| 203 | + :zephyr-app: samples/basic/blinky |
| 204 | + :board: mini_stm32h7b0 |
| 205 | + :goals: build flash |
| 206 | + :gen-args: -DCONFIG_BOOT_DELAY=5000 |
| 207 | + |
| 208 | +You can build and flash the examples to make sure Zephyr is running correctly on |
| 209 | +your board. The LED definitions can be found in |
| 210 | +:zephyr_file:`boards/weact/mini_stm32h7b0/mini_stm32h7b0.dts`. |
| 211 | + |
| 212 | +Testing shell over USB in the MiniSTM32H7B0 |
| 213 | +******************************************* |
| 214 | + |
| 215 | +There is a sample that allows to test shell interface over USB CDC ACM interface |
| 216 | +with Zephyr: |
| 217 | + |
| 218 | +.. zephyr-app-commands:: |
| 219 | + :zephyr-app: samples/subsys/shell/shell_module |
| 220 | + :board: mini_stm32h7b0 |
| 221 | + :goals: build flash |
| 222 | + :gen-args: -DCONFIG_BOOT_DELAY=5000 |
| 223 | + |
| 224 | +.. _Mini_STM32H7B0 website: |
| 225 | + https://github.com/WeActStudio/WeActStudio.MiniSTM32H7B0 |
| 226 | + |
| 227 | +.. _STM32H7B0VB on www.st.com: |
| 228 | + https://www.st.com/en/microcontrollers-microprocessors/stm32h7b0vb.html |
| 229 | + |
| 230 | +.. _STM32H7B0VB reference manual: |
| 231 | + https://www.st.com/resource/en/reference_manual/rm0455-stm32h7a37b3-and-stm32h7b0-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf |
| 232 | + |
| 233 | +.. _STM32H7B0VB datasheet: |
| 234 | + https://www.st.com/resource/en/datasheet/stm32h7b0vb.pdf |
0 commit comments