Phy_Cli Application Description
A dedicated application allows the control and the test of the 802_15_4 radio via a command line interface or STM32CubeMonitorRF.
Keywords
Connectivity, 802.15.4, Commands
Directory contents
- Phy_802_15_4/Phy_Cli/Core/Inc/app_common.h Header of App Common application configuration file for STM32WPAN Middleware
- Phy_802_15_4/Phy_Cli/Core/Inc/app_conf.h Header of Application configuration file for STM32WPAN Middleware
- Phy_802_15_4/Phy_Cli/Core/Inc/app_entry.h Header of Application Entry
- Phy_802_15_4/Phy_Cli/Core/Inc/main.h Header of Main program
- Phy_802_15_4/Phy_Cli/Core/Inc/stm32wbaxx_hal_conf.h Header of HAL configuration
- Phy_802_15_4/Phy_Cli/Core/Inc/stm32wbaxx_it.h Header of the interrupt handlers
- Phy_802_15_4/Phy_Cli/Core/Inc/utilities_conf.h Header for configuration file to utilities
- Phy_802_15_4/Phy_Cli/Core/Inc/stm32wbaxx_nucleo_conf.h
- Phy_802_15_4/Phy_Cli/Core/Src/app_entry.c Application Entry
- Phy_802_15_4/Phy_Cli/Core/Src/main.c Main program
- Phy_802_15_4/Phy_Cli/Core/Src/stm32wbaxx_hal_msp.c This file provides code for the MSP Initialization and de-Initialization codes
- Phy_802_15_4/Phy_Cli/Core/Src/stm32wbaxx_it.c This file provides all exceptions handler and peripherals interrupt service routine
- Phy_802_15_4/Phy_Cli/Core/Src/system_stm32wbaxx.c
- Phy_802_15_4/Phy_Cli/STM32_WPAN/App/app_cli_runner.c Entry point for the 802.15.4 CLI
- Phy_802_15_4/Phy_Cli/STM32_WPAN/App/app_cli_runner_ex.c Entry point for the PHY CLI
- Phy_802_15_4/Phy_Cli/STM32_WPAN/App/app_phy_cli.h Header for the 802.15.4 PHY CLI application
- Phy_802_15_4/Phy_Cli/STM32_WPAN/App/app_cli_runner.h Header for the 802.15.4 PHY CLI application
- Phy_802_15_4/Phy_Cli/STM32_WPAN/Target/linklayer_plat.c
- Phy_802_15_4/Phy_Cli/STM32_WPAN/Target/ll_sys_if.c
- Phy_802_15_4/Phy_Cli/STM32_WPAN/Target/ll_sys_if.h
- Phy_802_15_4/Phy_Cli/STM32_WPAN/Target/power_table.c
- Phy_802_15_4/Phy_Cli/System/Config/Debug_GPIO/app_debug.c
- Phy_802_15_4/Phy_Cli/System/Config/Debug_GPIO/app_debug.h
- Phy_802_15_4/Phy_Cli/System/Config/Debug_GPIO/app_debug_signal_def.h
- Phy_802_15_4/Phy_Cli/System/Config/Debug_GPIO/debug_config.h
- Phy_802_15_4/Phy_Cli/System/Config/Flash/simple_nvm_arbiter_conf.h
- Phy_802_15_4/Phy_Cli/System/Config/LowPower/app_sys.h
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw.h
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw_aes.h
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw_if.h Header of Hardware Interface
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw_otp.c
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw_pka.c
- Phy_802_15_4/Phy_Cli/System/Interfaces/hw_rng.c
- Phy_802_15_4/Phy_Cli/System/Interfaces/pka_p256.c
- Phy_802_15_4/Phy_Cli/System/Interfaces/stm32_lpm_if.c Source of Low layer function to enter/exit low power modes (stop, sleep)
- Phy_802_15_4/Phy_Cli/System/Interfaces/stm32_lpm_if.h Header for stm32_lpm_if.c module (device specific LP management)
- Phy_802_15_4/Phy_Cli/System/Interfaces/timer_if.c Source file configuration of RTC Alarm, Tick and Calendar manager
- Phy_802_15_4/Phy_Cli/System/Interfaces/timer_if.h Header for configuration of the timer_if.c instances
- Phy_802_15_4/Phy_Cli/System/Interfaces/usart_if.c Source file for interfacing the stm32_adv_trace to hardware
- Phy_802_15_4/Phy_Cli/System/Interfaces/usart_if.h Header file for stm32_adv_trace interface file
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/flash_driver.c
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/flash_driver.h
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/flash_manager.c
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/flash_manager.h
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/rf_timing_synchro.c
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/rf_timing_synchro.h
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/simple_nvm_arbiter.c
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/simple_nvm_arbiter.h
- Phy_802_15_4/Phy_Cli/System/Modules/Flash/simple_nvm_arbiter_common.h
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/debug_signals.h
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/local_debug_tables.h
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/RTDebug.c
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/RTDebug.h
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/RTDebug_dtb.c
- Phy_802_15_4/Phy_Cli/System/Modules/RTDebug/RTDebug_dtb.h
- Phy_802_15_4/Phy_Cli/System/Modules/adc_crtl.c
- Phy_802_15_4/Phy_Cli/System/Modules/adc_crtl.h
- Phy_802_15_4/Phy_Cli/System/Modules/app_sys.c Source of of system and radio low power mode configuration
- Phy_802_15_4/Phy_Cli/System/Modules/app_sys.h Header of system and radio low power mode configuration
- Phy_802_15_4/Phy_Cli/System/Modules/dbg_trace.h
- Phy_802_15_4/Phy_Cli/System/Modules/otp.c
- Phy_802_15_4/Phy_Cli/System/Modules/otp.h
- Phy_802_15_4/Phy_Cli/System/Modules/rtc.c
- Phy_802_15_4/Phy_Cli/System/Modules/rtc.h
- Phy_802_15_4/Phy_Cli/System/Modules/scm.c Functions for the System Clock Manager.
- Phy_802_15_4/Phy_Cli/System/Modules/scm.h Header for scm.c module
- Phy_802_15_4/Phy_Cli/System/Modules/stm32wbaxx_ResetHandler.s
- Phy_802_15_4/Phy_Cli/System/Modules/utilities_common.h
- Phy_802_15_4/Phy_Cli/System/Startup/stm32wbaxx_ResetHandler_EWARM.s
- Phy_802_15_4/Phy_Cli/System/Startup/stm32wbaxx_ResetHandler_GCC.s
- Phy_802_15_4/Phy_Cli/System/Startup/stm32wbaxx_ResetHandler_MDK-ARM.s
How to use it?
This example runs on STM32WBA55xx devices.
This example has been tested with an STMicroelectronics STM32WBA55xx board and can be easily tailored to any other supported device and development board.
You can either run it as standalone tool, or with STM32CubeMonitorRF
STM32CubeMonitorRF
- Please refer to the STM32CubeMonitorRF user guide
Standalone binary
Full PHY certification and dynamic RX printing
- In order to perform a fully exhaustive PHY certification, it may be necessary to enable the “dynamic RX printing” using the rx_start 1 command. This option enables print on the UART the payload of the frames received as they arrive. ST does not guarantee that all frames will be displayed using default baudrate of 115200.
- By setting FULL_CERTIFICATION_CAPABLE to 1 the following features are enabled:
- the Baud rate increases to 576000, where it has been verified that the application can display 1000 frames with a payload of 12 bytes with no delay inbetween.
- SMPS is enabled at init (ensure the board used is SMPS compatible)
- The tx_on signal is readable at the PA1 GPIO, required for turnaround times certification tests.
- Keep in mind this flag disables the STM32CubeMonitorRF compatibility, which explains why it is not enabled by default.
Examples of commands
- Help
- Version
- Set_channel Select the 15.4 channel
- Set_power Select TX power in dbm*
- Set_CCA_threshold Set CCA threshold in dbm
- TX_start 0x0C,0x01,0x08,0x01,0x22,0x11,0xFF,0xFF,0xB5,0xB6,0xB7 Send a frame (first byte here 0x0C is the size of the payload + 2 to account for the CRC)
- TX_start 0x0C,0x01,0x08,0x01,0x22,0x11,0xFF,0xFF,0xB5,0xB6,0xB7 Send a frame number time with delay in ms between each packet
- TX_start 0x0C,0x01,0x08,0x01,0x22,0x11,0xFF,0xFF,0xB5,0xB6,0xB7 0 Send the frame infinitely until TX_stop is called
- TX_stop Stop an ongoing transmission
- TX_start 0x0C,0x21,0x08,0x01,0x22,0x11,0xFF,0xFF,0xB5,0xB6,0xB7 Send a frame with ACK request (requires another CLI with Rx_start)
- RX_start Start a reception
- RX_start 1 Start a reception, prints paylaod of frames as they arrive
- RX_stop Stop a reception