boards/st/nucleo_wba52cg/doc/nucleo_wba52cg.html · boards/st/nucleo_wba52cg/doc/nucleo_wba52cg.rst 공식 원문 ↗

Zephyr 3.7.0 · Boards · ST · BLE 5.3

ST Nucleo WBA52CG

100MHz Cortex-M33과 +10dBm BLE 5.3 radio의 저전력·보안 구성을 읽습니다.

Official pathboards/st/nucleo_wba52cg/doc/nucleo_wba52cg.html
Source fileboards/st/nucleo_wba52cg/doc/nucleo_wba52cg.rst
Source versionZephyr 3.7.0
TranslationFull · reviewed

본문 기준: Zephyr 3.7.0 LTS3 · 이후 유지보수 패치는 별도입니다.

Part 1

요약·해설

지원표 9행, BLE radio와 35개 I/O, 전체 pin mapping, OpenOCD·CubeIDE workflow 및 잘못 적힌 WB55RG 참고 문구를 보존했습니다.

MCU

STM32WBA52CG

Wireless

BLE 5.3

Clock

100MHz

Memory

1MB / 128KB

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 DFD4511820E699FBBE859F3D4E8ED70A9A154D602F084409E904B9B893EFDB02
.. _nucleo_wba52cg_board:

ST Nucleo WBA52CG
#################

Overview
********

NUCLEO-WBA52CG is a Bluetooth® Low Energy wireless and ultra-low-power board
embedding a powerful and ultra-low-power radio compliant with the Bluetooth®
Low Energy SIG specification v5.3.

The ARDUINO® Uno V3 connectivity support and the ST morpho headers allow the
easy expansion of the functionality of the STM32 Nucleo open development
platform with a wide choice of specialized shields.

- Ultra-low-power wireless STM32WBA52CG microcontroller based on the Arm®
  Cortex®‑M33 core, featuring 1 Mbyte of flash memory and 128 Kbytes of SRAM in
  a UFQFPN48 package

- MCU RF board (MB1863):

  - 2.4 GHz RF transceiver supporting Bluetooth® specification v5.3
  - Arm® Cortex® M33 CPU with TrustZone®, MPU, DSP, and FPU
  - Integrated PCB antenna

- Three user LEDs
- Three user and one reset push-buttons

- Board connectors:

  - USB Micro-B
  - ARDUINO® Uno V3 expansion connector
  - ST morpho headers for full access to all STM32 I/Os

- Flexible power-supply options: ST-LINK USB VBUS or external sources
- On-board STLINK-V3MODS debugger/programmer with USB re-enumeration capability:
  mass storage, Virtual COM port, and debug port

.. image:: ../../../../../../../boards/st/nucleo_wba52cg/doc/img/nucleowba52cg.jpg
   :align: center
   :alt: Nucleo WBA52CG

More information about the board can be found at the `Nucleo WBA52CG website`_.

Hardware
********

The STM32WBA52xx multiprotocol wireless and ultralow power devices embed a
powerful and ultralow power radio compliant with the Bluetooth® SIG Low Energy
specification 5.3. They contain a high-performance Arm Cortex-M33 32-bit RISC
core. They operate at a frequency of up to 100 MHz.

- Includes ST state-of-the-art patented technology

- Ultra low power radio:

  - 2.4 GHz radio
  - RF transceiver supporting Bluetooth® Low Energy 5.3 specification
  - Proprietary protocols
  - RX sensitivity: -96 dBm (Bluetooth® Low Energy at 1 Mbps)
  - Programmable output power, up to +10 dBm with 1 dB steps
  - Integrated balun to reduce BOM
  - Suitable for systems requiring compliance with radio frequency regulations
    ETSI EN 300 328, EN 300 440, FCC CFR47 Part 15 and ARIB STD-T66

- Ultra low power platform with FlexPowerControl:

  - 1.71 to 3.6 V power supply
  - - 40 °C to 85 °C temperature range
  - Autonomous peripherals with DMA, functional down to Stop 1 mode
  - 140 nA Standby mode (16 wake-up pins)
  - 200 nA Standby mode with RTC
  - 2.4 µA Standby mode with 64 KB SRAM
  - 16.3 µA Stop mode with 64 KB SRAM
  - 45 µA/MHz Run mode at 3.3 V
  - Radio: Rx 7.4 mA / Tx at 0 dBm 10.6 mA

- Core: Arm® 32-bit Cortex®-M33 CPU with TrustZone®, MPU, DSP, and FPU
- ART Accelerator™: 8-Kbyte instruction cache allowing 0-wait-state execution
  from flash memory (frequency up to 100 MHz, 150 DMIPS)
- Power management: embedded regulator LDO supporting voltage scaling

- Benchmarks:

  - 1.5 DMIPS/MHz (Drystone 2.1)
  - 407 CoreMark® (4.07 CoreMark/MHz)

- Clock sources:

  - 32 MHz crystal oscillator
  - 32 kHz crystal oscillator (LSE)
  - Internal low-power 32 kHz (±5%) RC
  - Internal 16 MHz factory trimmed RC (±1%)
  - PLL for system clock and ADC

- Memories:

  - 1 MB flash memory with ECC, including 256 Kbytes with 100 cycles
  - 128 KB SRAM, including 64 KB with parity check
  - 512-byte (32 rows) OTP

- Rich analog peripherals (independent supply):

  - 12-bit ADC 2.5 Msps with hardware oversampling

- Communication peripherals:

  - Three UARTs (ISO 7816, IrDA, modem)
  - Two SPIs
  - Two I2C Fm+ (1 Mbit/s), SMBus/PMBus®

- System peripherals:

  - Touch sensing controller, up to 20 sensors, supporting touch key, linear,
     rotary touch sensors
  - One 16-bit, advanced motor control timer
  - Three 16-bit timers
  - One 32-bit timer
  - Two low-power 16-bit timers (available in Stop mode)
  - Two Systick timers
  - Two watchdogs
  - 8-channel DMA controller, functional in Stop mode

- Security and cryptography:

  - Arm® TrustZone® and securable I/Os, memories, and peripherals
  - Flexible life cycle scheme with RDP and password protected debug
  - Root of trust thanks to unique boot entry and secure hide protection area (HDP)
  - SFI (secure firmware installation) thanks to embedded RSS (root secure services)
  - Secure data storage with root hardware unique key (RHUK)
  - Secure firmware upgrade support with TF-M
  - Two AES co-processors, including one with DPA resistance
  - Public key accelerator, DPA resistant
  - HASH hardware accelerator
  - True random number generator, NIST SP800-90B compliant
  - 96-bit unique ID
  - Active tampers
  - CRC calculation unit

- Up to 35 I/Os (most of them 5 V-tolerant) with interrupt capability

- Development support:

  - Serial wire debug (SWD), JTAG

- ECOPACK2 compliant package

More information about STM32WB55RG can be found here:

- `STM32WBA52CG on www.st.com`_
- `STM32WBA52CG datasheet`_
- `STM32WBA52CG reference manual`_

Supported Features
==================

The Zephyr nucleo_wba52cg board configuration supports the following hardware features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+
| PINMUX    | on-chip    | pinmux                              |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| I2C       | on-chip    | i2c                                 |
+-----------+------------+-------------------------------------+
| SPI       | on-chip    | spi                                 |
+-----------+------------+-------------------------------------+
| ADC       | on-chip    | adc                                 |
+-----------+------------+-------------------------------------+
| WATCHDOG  | on-chip    | independent watchdog                |
+-----------+------------+-------------------------------------+
| RNG       | on-chip    | True Random number generator        |
+-----------+------------+-------------------------------------+

Other hardware features are not yet supported on this Zephyr port.

The default configuration can be found in the defconfig file:
:zephyr_file:`boards/st/nucleo_wba52cg/nucleo_wba52cg_defconfig`

Connections and IOs
===================

Nucleo WBA52CG Board has 4 GPIO controllers. These controllers are responsible for pin muxing,
input/output, pull-up, etc.

Default Zephyr Peripheral Mapping:
----------------------------------

.. rst-class:: rst-columns

- USART_1 TX/RX : PB12/PA8
- I2C_1_SCL : PB2
- I2C_1_SDA : PB1
- USER_PB : PC13
- LD1 : PB4
- SPI_1_NSS : PA12 (arduino_spi)
- SPI_1_SCK : PB4 (arduino_spi)
- SPI_1_MISO : PB3 (arduino_spi)
- SPI_1_MOSI : PA15 (arduino_spi)

System Clock
------------

Nucleo WBA52CG System Clock could be driven by internal or external oscillator,
as well as main PLL clock. By default System clock is driven by HSE+PLL clock at 100MHz.

Serial Port
-----------

Nucleo WBA52CG board has 1 U(S)ARTs. The Zephyr console output is assigned to USART1.
Default settings are 115200 8N1.


Programming and Debugging
*************************

Nucleo WBA52CG board includes an ST-LINK/V3 embedded debug tool interface.
It could be used for flash and debug using either OpenOCD or STM32Cube ecosystem tools.

Flashing
========

STM32CubeProgrammer is configured as flashing tool by default.
If available, OpenOCD could be used. Same process applies with both tools.

Flashing an application to Nucleo WBA52CG
-----------------------------------------

Here is an example for the :zephyr:code-sample:`blinky` application.

.. zephyr-app-commands::
   :zephyr-app: samples/basic/blinky
   :board: nucleo_wba52cg
   :goals: build flash

You will see the LED blinking every second.

Debugging
=========

Debugging using OpenOCD
-----------------------

You can debug an application in the usual way using OpenOCD. Here is an example for the
:zephyr:code-sample:`blinky` application.

.. zephyr-app-commands::
   :zephyr-app: samples/basic/blinky
   :board: nucleo_wba52cg
   :maybe-skip-config:
   :goals: debug

Debugging using STM32CubeIDE
----------------------------

You can debug an application using a STM32WBA compatible version of STM32CubeIDE.

For that:

- Create an empty STM32WBA project by going to File > New > STM32 project
- Select your MCU, click Next, and select an Empty project.
- Right click on your project name, select Debug as > Debug configurations
- In the new window, create a new target in STM32 Cortex-M C/C++ Application
- Select the new target and enter the path to zephyr.elf file in the C/C++ Application field
- Check Disable auto build
- Run debug

.. _Nucleo WBA52CG website:
   https://www.st.com/en/evaluation-tools/nucleo-wba52cg.html

.. _STM32WBA52CG on www.st.com:
   https://www.st.com/en/microcontrollers-microprocessors/stm32wba52cg.html

.. _STM32WBA52CG datasheet:
   https://www.st.com/resource/en/datasheet/stm32wba52cg.pdf

.. _STM32WBA52CG reference manual:
   https://www.st.com/resource/en/reference_manual/rm0493-multiprotocol-wireless-bluetooth-lowenergy-armbased-32bit-mcu-stmicroelectronics.pdf

.. _OpenOCD official Github mirror:
   https://github.com/openocd-org/openocd/commit/870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06

Part 3

한국어 전문 번역

Nucleo WBA52CG

개요

NUCLEO-WBA52CG는 Bluetooth Low Energy SIG 5.3 규격 radio를 내장한 ultra-low-power wireless board입니다. Arduino Uno V3와 ST morpho header를 통해 다양한 shield로 기능을 확장할 수 있습니다.

  • UFQFPN48 package의 Cortex-M33 기반 STM32WBA52CG: flash 1MB, SRAM 128KB
  • MB1863 MCU RF board
    • Bluetooth 5.3용 2.4GHz RF transceiver
    • TrustZone·MPU·DSP·FPU Cortex-M33
    • integrated PCB antenna
  • User LED 3개, user button 3개와 reset button 1개
  • USB Micro-B, Arduino Uno V3, 모든 STM32 I/O용 ST morpho connector
  • ST-LINK USB VBUS 또는 external source 전원
  • Mass storage·Virtual COM·debug port로 USB re-enumeration하는 STLINK-V3MODS

Hardware

STM32WBA52xx family는 Bluetooth LE 5.3 compliant radio와 최대 100MHz Cortex-M33을 통합합니다.

  • ST의 patented technology
  • Ultra-low-power radio
    • 2.4GHz Bluetooth Low Energy 5.3와 proprietary protocol
    • 1Mbps BLE RX sensitivity -96dBm
    • 1dB step으로 programmable한 최대 +10dBm output
    • BOM을 줄이는 integrated balun
    • ETSI EN 300 328/300 440, FCC CFR47 Part 15, ARIB STD-T66 대응 시스템에 적합
  • FlexPowerControl platform
    • 1.71~3.6V supply, -40~85°C
    • DMA autonomous peripheral은 Stop 1까지 동작
    • wake-up pin 16개의 Standby 140nA
    • RTC 포함 Standby 200nA
    • SRAM 64KB 유지 Standby 2.4µA
    • SRAM 64KB 유지 Stop 16.3µA
    • 3.3V run 45µA/MHz
    • Radio RX 7.4mA, 0dBm TX 10.6mA
  • TrustZone·MPU·DSP·FPU를 갖춘 32-bit Cortex-M33
  • Flash 0-wait-state 실행용 8KB instruction cache ART Accelerator: 최대 100MHz, 150DMIPS
  • Voltage scaling을 지원하는 embedded LDO
  • Benchmark
    • Dhrystone 2.1 1.5DMIPS/MHz
    • 407 CoreMark, 4.07 CoreMark/MHz
  • Clock
    • 32MHz crystal
    • 32kHz LSE crystal
    • 32kHz low-power RC ±5%
    • factory-trimmed 16MHz RC ±1%
    • system·ADC용 PLL
  • Memory
    • ECC 1MB flash, 이 중 256KB는 원문 표기대로 100 cycles
    • parity 64KB를 포함한 SRAM 128KB
    • 32-row 512-byte OTP
  • Hardware oversampling이 있는 independent-supply 2.5MSPS 12-bit ADC
  • ISO 7816·IrDA·modem UART 3개, SPI 2개, 1Mbit/s FM+·SMBus·PMBus I2C 2개
  • System peripheral
    • Touchkey·linear·rotary sensor용 touch controller 최대 20개
    • advanced motor-control 16-bit 1개, 16-bit 3개, 32-bit 1개
    • Stop mode용 low-power 16-bit timer 2개
    • SysTick 2개와 watchdog 2개
    • Stop mode에서도 동작하는 8-channel DMA
  • Security·cryptography
    • TrustZone과 secure I/O·memory·peripheral
    • RDP·password-protected debug lifecycle
    • unique boot entry와 secure HDP root of trust
    • embedded RSS 기반 SFI
    • RHUK 기반 secure data storage
    • TF-M secure firmware upgrade
    • DPA-resistant 1개를 포함한 AES coprocessor 2개
    • DPA-resistant public-key accelerator
    • HASH accelerator
    • NIST SP800-90B true RNG
    • 96-bit unique ID, active tamper, CRC
  • Interrupt-capable I/O 최대 35개, 대부분 5V tolerant
  • SWD·JTAG development support와 ECOPACK2 package

원문 주의: Hardware 뒤의 참고 문단은 보드와 무관한 STM32WB55RG라고 적지만, 실제로 연결하는 세 링크는 모두 STM32WBA52CG 자료입니다. 번역에서 이 오기를 자동 수정하지 않고 기록합니다.

Zephyr 지원 기능

InterfaceControllerDriver/Component
NVICon-chipnested vector interrupt controller
UARTon-chipserial port-polling; serial port-interrupt
PINMUXon-chippinmux
GPIOon-chipgpio
I2Con-chipi2c
SPIon-chipspi
ADCon-chipadc
WATCHDOGon-chipindependent watchdog
RNGon-chipTrue Random number generator

표 밖 기능은 아직 지원하지 않습니다. 기본 설정은 boards/st/nucleo_wba52cg/nucleo_wba52cg_defconfig입니다.

Connection과 I/O

GPIO controller 4개가 pin muxing, input/output, pull-up 등을 담당합니다.

기본 Zephyr peripheral mapping

  • USART_1 TX/RX : PB12/PA8
  • I2C_1_SCL : PB2
  • I2C_1_SDA : PB1
  • USER_PB : PC13
  • LD1 : PB4
  • SPI_1_NSS : PA12 (arduino_spi)
  • SPI_1_SCK : PB4 (arduino_spi)
  • SPI_1_MISO : PB3 (arduino_spi)
  • SPI_1_MOSI : PA15 (arduino_spi)

Clock과 serial

기본 system clock은 HSE와 PLL이 구동하는 100MHz입니다. U(S)ART 1개 중 console은 USART1, 115200 8N1입니다.

Programming and debugging

On-board ST-LINK/V3는 OpenOCD 또는 STM32Cube ecosystem tool로 flash·debug할 수 있습니다. 기본 flasher는 STM32CubeProgrammer이며 OpenOCD에서도 같은 절차를 사용합니다.

Flashing

blinky를 build·flash하면 LED가 1초마다 깜빡입니다.

west build -b nucleo_wba52cg samples/basic/blinky
west flash

OpenOCD debugging

west build -b nucleo_wba52cg samples/basic/blinky
west debug

STM32CubeIDE debugging

STM32WBA-compatible STM32CubeIDE에서는 다음 순서로 Zephyr ELF를 연결합니다.

  • File > New > STM32 project에서 빈 STM32WBA project 생성
  • MCU를 고르고 Next를 누른 뒤 Empty project 선택
  • Project 이름을 right-click하고 Debug as > Debug configurations 선택
  • STM32 Cortex-M C/C++ Application에 새 target 생성
  • C/C++ Application field에 zephyr.elf 경로 입력
  • Disable auto build를 선택하고 debug 실행

참고 자료

Source

출처

영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.