|
| 1 | +.. zephyr:board:: nucleo_u385rg |
| 2 | +
|
| 3 | +Overview |
| 4 | +******** |
| 5 | + |
| 6 | +The Nucleo U385RG board, featuring an ARM Cortex-M33 with Trust Zone based STM32U385RG MCU, |
| 7 | +provides an affordable and flexible way for users to try out new concepts and |
| 8 | +build prototypes by choosing from the various combinations of performance and |
| 9 | +power consumption features. Here are some highlights of the Nucleo U385RG |
| 10 | +board: |
| 11 | + |
| 12 | + |
| 13 | +- STM32U385RG microcontroller in an LQFP64 or LQFP48 package |
| 14 | +- Two types of extension resources: |
| 15 | + |
| 16 | + - Arduino Uno V3 connectivity |
| 17 | + - ST morpho extension pin headers for full access to all STM32U3 I/Os |
| 18 | + |
| 19 | +- On-board STLINK-V2EC debugger/programmer with USB re-enumeration |
| 20 | + capability: mass storage, Virtual COM port, and debug port |
| 21 | +- Flexible board power supply: |
| 22 | + |
| 23 | + - USB VBUS or external source(3.3V, 5V, 7 - 12V) |
| 24 | + |
| 25 | +- Two push-buttons: USER and RESET |
| 26 | +- 32.768 kHz crystal oscillator |
| 27 | +- Second user LED shared with ARDUINO |reg| Uno V3 |
| 28 | +- External or internal SMPS to generate Vcore logic supply |
| 29 | +- 24 MHz or 48 MHz HSE |
| 30 | +- User USB Device full speed, or USB SNK/UFP full speed |
| 31 | +- Cryptography |
| 32 | +- CAN FD transceiver |
| 33 | +- Board connectors: |
| 34 | + |
| 35 | + - External SMPS experimentation dedicated connector |
| 36 | + - USB Type-C |reg| , Micro-B, or Mini-B connector for the ST-LINK |
| 37 | + - USB Type-C |reg| user connector |
| 38 | + - MIPI |reg| debug connector |
| 39 | + - CAN FD header |
| 40 | + |
| 41 | +More information about the board can be found at the `NUCLEO_U385RG website`_. |
| 42 | + |
| 43 | +Hardware |
| 44 | +******** |
| 45 | + |
| 46 | +The STM32U385xx devices are an ultra-low-power microcontrollers family (STM32U3 |
| 47 | +Series) based on the high-performance Arm |reg| Cortex |reg|-M33 32-bit RISC core. |
| 48 | +They operate at a frequency of up to 96 MHz. |
| 49 | + |
| 50 | +- Includes ST state-of-the-art patented technology |
| 51 | +- Ultra-low-power with FlexPowerControl: |
| 52 | + |
| 53 | + - 1.71 V to 3.6 V power supply |
| 54 | + - -40 °C to +105 °C temperature range |
| 55 | + - VBAT mode: supply for RTC, 32 x 32-bit backup registers |
| 56 | + - 1.6 μA Stop 3 mode with 8-Kbyte SRAM |
| 57 | + - 2.2 μA Stop 3 mode with full SRAM |
| 58 | + - 3.8 μA Stop 2 mode with 8-Kbyte SRAM |
| 59 | + - 4.5 μA Stop 2 mode with full SRAM |
| 60 | + - 9.5 μA/MHz Run mode @ 3.3 V (While(1) SMPS step-down converter mode) |
| 61 | + - 13 μA/MHz Run mode @ 3.3 V/48 MHz (CoreMark |reg| SMPS step-down converter mode) |
| 62 | + - 16 μA/MHz Run mode @ 3.3 V/96 MHz (CoreMark |reg| SMPS step-down converter mode) |
| 63 | + - Brownout reset |
| 64 | + |
| 65 | +- Core: |
| 66 | + |
| 67 | + - 32-bit Arm |reg| Cortex |reg|-M33 CPU with TrustZone |reg| and FPU |
| 68 | + |
| 69 | +- ART Accelerator: |
| 70 | + |
| 71 | + - 8-Kbyte instruction cache allowing 0-wait-state execution from flash and external memories: |
| 72 | + frequency up to 96 MHz, MPU, 144 DMIPS and DSP instructions |
| 73 | + |
| 74 | +- Power management: |
| 75 | + |
| 76 | + - Embedded regulator (LDO) and SMPS step-down converter supporting switch on-the-fly and voltage scaling |
| 77 | + |
| 78 | +- Benchmarks: |
| 79 | + |
| 80 | + - 1.5 DMIPS/MHz (Drystone 2.1) |
| 81 | + - 387 CoreMark |reg| (4.09 CoreMark/MHz at 56 MHz) |
| 82 | + - 500 ULPMark™-CP |
| 83 | + - 117 ULPMark™-CM |
| 84 | + - 202000 SecureMark™-TLS |
| 85 | + |
| 86 | +- Memories: |
| 87 | + |
| 88 | + - 1-Mbyte flash memory with ECC, 2 banks read-while-write |
| 89 | + - 256 Kbytes of SRAM including 64 Kbytes with hardware parity check |
| 90 | + - OCTOSPI external memory interface supporting SRAM, PSRAM, NOR, NAND, and FRAM memories |
| 91 | + |
| 92 | +- General-purpose input/outputs: |
| 93 | + |
| 94 | + - Up to 82 fast I/Os with interrupt capability most 5 V-tolerant and up to 14 I/Os with independent supply down to 1.08 V |
| 95 | + |
| 96 | +- Clock management: |
| 97 | + |
| 98 | + - 4 to 50 MHz crystal oscillator |
| 99 | + - 32.768 kHz crystal oscillator for RTC (LSE) |
| 100 | + - Internal 16 MHz factory-trimmed RC (±1 %) |
| 101 | + - Internal low-power RC with frequency 32 kHz or 250 Hz (±5 %) |
| 102 | + - 2 internal multispeed 3 MHz to 96 MHz oscillators |
| 103 | + - Internal 48 MHz with clock recovery |
| 104 | + - Accurate MSI in PLL-mode and up to 96 MHz with 32.768 kHz, 16 MHz, or 32 MHz crystal oscillator |
| 105 | + |
| 106 | +- Security and cryptography: |
| 107 | + |
| 108 | + - Arm |reg| TrustZone |reg| and securable I/Os, memories, and peripherals |
| 109 | + - Flexible life cycle scheme with RDP and password protected debug |
| 110 | + - Root of trust due to unique boot entry and secure hide protection area (HDP) |
| 111 | + - Secure firmware installation (SFI) from embedded root secure services (RSS) |
| 112 | + - Secure data storage with hardware unique key (HUK) |
| 113 | + - Secure firmware upgrade |
| 114 | + - Support of Trusted firmware for Cortex |reg| M (TF-M) |
| 115 | + - Two AES coprocessors, one with side channel attack resistance (SCA) (SAES) |
| 116 | + - Public key accelerator, SCA resistant |
| 117 | + - Key hardware protection |
| 118 | + - Attestation keys |
| 119 | + - HASH hardware accelerator |
| 120 | + - True random number generator, NIST SP800-90B compliant |
| 121 | + - 96-bit unique ID |
| 122 | + - 512-byte OTP (one-time programmable) |
| 123 | + - Antitamper protection |
| 124 | + |
| 125 | +- Up to 15 timers and 2 watchdogs : |
| 126 | + |
| 127 | + - 1x 16-bit advanced motor-control, 3x 32-bit and 3x 16-bit general purpose, |
| 128 | + 2x 16-bit basic, 4x low-power 16-bit timers (available in Stop mode), |
| 129 | + 2x watchdogs, 2x SysTick timer |
| 130 | + - RTC with hardware calendar, alarms, and calibration |
| 131 | + |
| 132 | +- Up to 19 communication peripherals: |
| 133 | + |
| 134 | + - 1 USB 2.0 full-speed controller |
| 135 | + - 1 SAI (serial audio interface) |
| 136 | + - 3 I2C FM+(1 Mbit/s), SMBus/PMBus™ |
| 137 | + - 2 I3C (SDR), with support of I2C FM+ mode |
| 138 | + - 2 USARTs and 2 UARTs (SPI, ISO 7816, LIN, IrDA, modem), 1 LPUART |
| 139 | + - 3 SPIs (6 SPIs including 1 with OCTOSPI + 2 with USART) |
| 140 | + - 1 CAN FD controller |
| 141 | + - 1 SDMMC interface |
| 142 | + - 1 audio digital filter with sound-activity detection |
| 143 | + |
| 144 | +- 12-channel GPDMA controller, functional in Sleep and Stop modes (up to Stop 2) |
| 145 | +- Up to 21 capacitive sensing channels: |
| 146 | + |
| 147 | + - Support touch key, linear, and rotary touch sensors |
| 148 | + |
| 149 | +- Rich analog peripherals (independent supply): |
| 150 | + |
| 151 | + - 2x 12-bit ADC 2.5 Msps, with hardware oversampling |
| 152 | + - 12-bit DAC module with 2 D/A converters, low-power sample and hold, autonomous in Stop 1 mode |
| 153 | + - 2 operational amplifiers with built-in PGA |
| 154 | + - 2 ultralow-power comparators |
| 155 | + |
| 156 | +- CRC calculation unit |
| 157 | +- Debug: |
| 158 | + |
| 159 | + - Development support: serial-wire debug (SWD), JTAG, Embedded Trace Macrocell™ (ETM) |
| 160 | + |
| 161 | +- ECOPACK2 compliant packages |
| 162 | + |
| 163 | +More information about STM32U385RG can be found here: |
| 164 | + |
| 165 | +- `STM32U385RG on www.st.com`_ |
| 166 | +- `STM32U385RG reference manual`_ |
| 167 | + |
| 168 | +Supported Features |
| 169 | +================== |
| 170 | + |
| 171 | +.. zephyr:board-supported-hw:: |
| 172 | +
|
| 173 | +Connections and IOs |
| 174 | +=================== |
| 175 | + |
| 176 | +Nucleo U385RG Board has 14 GPIO controllers. These controllers are responsible |
| 177 | +for pin muxing, input/output, pull-up, etc. |
| 178 | + |
| 179 | +For more details please refer to `STM32U385 User Manual`_. |
| 180 | + |
| 181 | +Default Zephyr Peripheral Mapping: |
| 182 | +---------------------------------- |
| 183 | + |
| 184 | +- DAC1_OUT1 : PA4 |
| 185 | +- LD1 : PA5 |
| 186 | +- LPUART_1_TX : PA9 |
| 187 | +- LPUART_1_RX : PA10 |
| 188 | +- UART_4_TX : PA0 |
| 189 | +- UART_4_RX : PA1 |
| 190 | +- UART_5_TX : PC12 |
| 191 | +- UART_5_RX : PD2 |
| 192 | +- USER_PB : PC13 |
| 193 | + |
| 194 | +System Clock |
| 195 | +------------ |
| 196 | + |
| 197 | +Nucleo U385RG System Clock could be driven by internal or external oscillator, |
| 198 | +as well as main PLL clock. By default System clock is driven by PLL clock at |
| 199 | +48MHz, driven by 4MHz medium speed internal oscillator. |
| 200 | + |
| 201 | +Serial Port |
| 202 | +----------- |
| 203 | + |
| 204 | +Nucleo U385RG board has 4 U(S)ARTs, 1 LPUART. The Zephyr console output is assigned to |
| 205 | +USART1. Default settings are 115200 8N1. |
| 206 | + |
| 207 | + |
| 208 | +Programming and Debugging |
| 209 | +************************* |
| 210 | + |
| 211 | +.. zephyr:board-supported-runners:: |
| 212 | +
|
| 213 | +Nucleo U385RG board includes an ST-LINK/V3 embedded debug tool interface. |
| 214 | +This probe allows to flash the board using various tools. |
| 215 | + |
| 216 | +Flashing |
| 217 | +======== |
| 218 | + |
| 219 | +The board is configured to be flashed using west `STM32CubeProgrammer`_ runner, |
| 220 | +so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required. |
| 221 | + |
| 222 | +Alternatively, JLink or pyOCD can also be used to flash the board using |
| 223 | +the ``--runner`` (or ``-r``) option: |
| 224 | + |
| 225 | +.. code-block:: console |
| 226 | +
|
| 227 | + $ west flash --runner pyocd |
| 228 | + $ west flash --runner jlink |
| 229 | +
|
| 230 | +For pyOCD, additional target information needs to be installed |
| 231 | +by executing the following pyOCD commands: |
| 232 | + |
| 233 | +.. code-block:: console |
| 234 | +
|
| 235 | + $ pyocd pack --update |
| 236 | + $ pyocd pack --install stm32u3 |
| 237 | +
|
| 238 | +
|
| 239 | +Flashing an application to Nucleo U385RG |
| 240 | +------------------------------------------ |
| 241 | + |
| 242 | +Connect the Nucleo U385RG to your host computer using the USB port. |
| 243 | +Then build and flash an application. Here is an example for the |
| 244 | +:zephyr:code-sample:`hello_world` application. |
| 245 | + |
| 246 | +Run a serial host program to connect with your Nucleo board: |
| 247 | + |
| 248 | +.. code-block:: console |
| 249 | +
|
| 250 | + $ minicom -D /dev/ttyACM0 |
| 251 | +
|
| 252 | +Then build and flash the application. |
| 253 | + |
| 254 | +.. zephyr-app-commands:: |
| 255 | + :zephyr-app: samples/hello_world |
| 256 | + :board: nucleo_u385rg |
| 257 | + :goals: build flash |
| 258 | + |
| 259 | +You should see the following message on the console: |
| 260 | + |
| 261 | +.. code-block:: console |
| 262 | +
|
| 263 | + Hello World! nucleo_u385rg |
| 264 | +
|
| 265 | +Debugging |
| 266 | +========= |
| 267 | + |
| 268 | +Default flasher for this board is openocd. It could be used in the usual way. |
| 269 | +Here is an example for the :zephyr:code-sample:`blinky` application. |
| 270 | + |
| 271 | +.. zephyr-app-commands:: |
| 272 | + :zephyr-app: samples/basic/blinky |
| 273 | + :board: nucleo_u385rg |
| 274 | + :goals: debug |
| 275 | + |
| 276 | +Note: Check the ``build/tfm`` directory to ensure that the commands required by these scripts |
| 277 | +(``readlink``, etc.) are available on your system. Please also check ``STM32_Programmer_CLI`` |
| 278 | +(which is used for initialization) is available in the PATH. |
| 279 | + |
| 280 | +.. _NUCLEO_U385RG website: |
| 281 | + https://www.st.com/en/evaluation-tools/nucleo-u385rg.html |
| 282 | + |
| 283 | +.. _STM32U385 User Manual: |
| 284 | + https://www.st.com/resource/en/user_manual/um3261-stm32u3-series-safety-manual-stmicroelectronics.pdf |
| 285 | + |
| 286 | +.. _STM32U385RG on www.st.com: |
| 287 | + https://www.st.com/en/microcontrollers-microprocessors/stm32u385rg |
| 288 | + |
| 289 | +.. _STM32U385RG reference manual: |
| 290 | + https://www.st.com/resource/en/reference_manual/rm0503-stm32u3-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf |
| 291 | + |
| 292 | +.. _STM32CubeProgrammer: |
| 293 | + https://www.st.com/en/development-tools/stm32cubeprog.html |
0 commit comments