194 lines
16 KiB
Plaintext
194 lines
16 KiB
Plaintext
/**
|
|
@page Sigfox_AT_Slave Readme file
|
|
|
|
@verbatim
|
|
******************************************************************************
|
|
* @file Applications/Sigfox/Sigfox_AT_Slave/readme.txt
|
|
* @author MCD Application Team
|
|
* @brief This application is a simple demo application software of a Sigfox
|
|
* modem controlled though AT command interface over UART by an
|
|
* external host
|
|
******************************************************************************
|
|
*
|
|
* Copyright (c) 2020-2021 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
@endverbatim
|
|
|
|
@par Description
|
|
|
|
This directory contains a set of source files that implements a Sigfox application
|
|
modem that is controlled though AT command interface over UART by an external host,
|
|
like a computer executing a terminal.
|
|
|
|
This application is targeting the B-WL5M-SUBG1 Connectivity Expansion Board embedding the STM32WL5Mxx.
|
|
******************************************************************************
|
|
|
|
@par Keywords
|
|
|
|
Applications, SubGHz_Phy, Sigfox, AT_Slave, SingleCore
|
|
|
|
@par Directory contents
|
|
|
|
|
|
- Sigfox_AT_Slave/Core/Inc/adc.h This file contains all the function prototypes for
|
|
the adc.c file
|
|
- Sigfox_AT_Slave/Core/Inc/adc_if.h Header for ADC interface configuration
|
|
- Sigfox_AT_Slave/Core/Inc/dma.h This file contains all the function prototypes for
|
|
the dma.c file
|
|
- Sigfox_AT_Slave/Core/Inc/flash_if.h This file contains definitions for FLASH Interface functionalities.
|
|
- Sigfox_AT_Slave/Core/Inc/gpio.h This file contains all the function prototypes for
|
|
the gpio.c file
|
|
- Sigfox_AT_Slave/Core/Inc/lptim.h This file contains all the function prototypes for
|
|
the lptim.c file
|
|
- Sigfox_AT_Slave/Core/Inc/main.h : Header for main.c file.
|
|
This file contains the common defines of the application.
|
|
- Sigfox_AT_Slave/Core/Inc/mn_lptim_if.h Header for between Sigfox monarch and lptim
|
|
- Sigfox_AT_Slave/Core/Inc/platform.h Header for General HW instances configuration
|
|
- Sigfox_AT_Slave/Core/Inc/rtc.h This file contains all the function prototypes for
|
|
the rtc.c file
|
|
- Sigfox_AT_Slave/Core/Inc/stm32wlxx_hal_conf.h HAL configuration file.
|
|
- Sigfox_AT_Slave/Core/Inc/stm32wlxx_it.h This file contains the headers of the interrupt handlers.
|
|
- Sigfox_AT_Slave/Core/Inc/stm32_lpm_if.h Header for Low Power Manager interface configuration
|
|
- Sigfox_AT_Slave/Core/Inc/subghz.h This file contains all the function prototypes for
|
|
the subghz.c file
|
|
- Sigfox_AT_Slave/Core/Inc/sys_app.h Function prototypes for sys_app.c file
|
|
- Sigfox_AT_Slave/Core/Inc/sys_conf.h Applicative configuration, e.g. : debug, trace, low power, sensors
|
|
- Sigfox_AT_Slave/Core/Inc/sys_debug.h Configuration of the debug.c instances
|
|
- Sigfox_AT_Slave/Core/Inc/timer_if.h configuration of the timer_if.c instances
|
|
- Sigfox_AT_Slave/Core/Inc/usart.h This file contains all the function prototypes for
|
|
the usart.c file
|
|
- Sigfox_AT_Slave/Core/Inc/usart_if.h Header for USART interface configuration
|
|
- Sigfox_AT_Slave/Core/Inc/utilities_conf.h Header for configuration file to utilities
|
|
- Sigfox_AT_Slave/Core/Inc/utilities_def.h Definitions for modules requiring utilities
|
|
- Sigfox_AT_Slave/Sigfox/App/app_sigfox.h Header of application of the Sigfox Middleware
|
|
- Sigfox_AT_Slave/Sigfox/App/app_version.h Definition the version of the application
|
|
- Sigfox_AT_Slave/Sigfox/App/ee.h Header of the EEPROM emulator
|
|
- Sigfox_AT_Slave/Sigfox/App/ee_conf.h Header for eeprom configuration
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_app.h provides code for the application of the SIGFOX Middleware
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_at.h Header for driver at.c module
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_command.h Header for sgfx_command.c
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_cstimer.h Interface for cstimer.c driver
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_eeprom_if.h eeprom interface to the upper module.
|
|
- Sigfox_AT_Slave/Sigfox/App/sigfox_data.h provides encrypted data
|
|
- Sigfox_AT_Slave/Sigfox/Target/mcu_api.h defines the interface to mcu_api.c
|
|
- Sigfox_AT_Slave/Sigfox/Target/mn_api.h monarch library interface
|
|
- Sigfox_AT_Slave/Sigfox/Target/mw_log_conf.h Configure (enable/disable) traces
|
|
- Sigfox_AT_Slave/Sigfox/Target/radio_board_if.h Header for Radio interface configuration
|
|
- Sigfox_AT_Slave/Sigfox/Target/radio_conf.h Header of Radio configuration
|
|
- Sigfox_AT_Slave/Sigfox/Target/rf_api.h interface to rf_api.c
|
|
- Sigfox_AT_Slave/Sigfox/Target/se_nvm.h header to emulated SE nvm data
|
|
- Sigfox_AT_Slave/Sigfox/Target/sgfx_credentials.h interface to key manager and encryption algorithm
|
|
- Sigfox_AT_Slave/Sigfox/Target/timer.h Wrapper to timer server
|
|
|
|
- Sigfox_AT_Slave/Core/Src/adc.c This file provides code for the configuration
|
|
of the ADC instances.
|
|
- Sigfox_AT_Slave/Core/Src/adc_if.c Read status related to the chip (battery level, VREF, chip temperature)
|
|
- Sigfox_AT_Slave/Core/Src/dma.c This file provides code for the configuration
|
|
of all the requested memory to memory DMA transfers.
|
|
- Sigfox_AT_Slave/Core/Src/flash_if.c This file provides set of firmware functions to manage Flash
|
|
Interface functionalities.
|
|
- Sigfox_AT_Slave/Core/Src/gpio.c This file provides code for the configuration
|
|
of all used GPIO pins.
|
|
- Sigfox_AT_Slave/Core/Src/lptim.c This file provides code for the configuration
|
|
of the LPTIM instances.
|
|
- Sigfox_AT_Slave/Core/Src/main.c : Main program body
|
|
- Sigfox_AT_Slave/Core/Src/mn_lptim_if.c Interface between Sigfox monarch and lptim
|
|
- Sigfox_AT_Slave/Core/Src/rtc.c This file provides code for the configuration
|
|
of the RTC instances.
|
|
- Sigfox_AT_Slave/Core/Src/stm32wlxx_hal_msp.c This file provides code for the MSP Initialization
|
|
and de-Initialization codes.
|
|
- Sigfox_AT_Slave/Core/Src/stm32wlxx_it.c Interrupt Service Routines.
|
|
- Sigfox_AT_Slave/Core/Src/stm32_lpm_if.c Low layer function to enter/exit low power modes (stop, sleep)
|
|
- Sigfox_AT_Slave/Core/Src/subghz.c This file provides code for the configuration
|
|
of the SUBGHZ instances.
|
|
- Sigfox_AT_Slave/Core/Src/system_stm32wlxx.c CMSIS Cortex Device Peripheral Access Layer System Source File
|
|
- Sigfox_AT_Slave/Core/Src/sys_app.c Initializes HW and SW system entities (not related to the radio)
|
|
- Sigfox_AT_Slave/Core/Src/sys_debug.c Configure probes pins RealTime debugging and JTAG/SerialWires for LowPower
|
|
- Sigfox_AT_Slave/Core/Src/timer_if.c Configure RTC Alarm, Tick and Calendar manager
|
|
- Sigfox_AT_Slave/Core/Src/usart.c This file provides code for the configuration
|
|
of the USART instances.
|
|
- Sigfox_AT_Slave/Core/Src/usart_if.c Configuration of UART driver interface for hyperterminal communication
|
|
- Sigfox_AT_Slave/Sigfox/App/app_sigfox.c Application of the Sigfox Middleware
|
|
- Sigfox_AT_Slave/Sigfox/App/ee.c Implementation of the EEPROM emulator
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_app.c provides code for the application of the sigfox Middleware
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_at.c Header for driver sgfx_at.c module
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_command.c main command driver dedicated to command AT
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_cstimer.c manages carrier sense timer.
|
|
- Sigfox_AT_Slave/Sigfox/App/sgfx_eeprom_if.c eeprom interface to the sigfox component
|
|
- Sigfox_AT_Slave/Sigfox/Target/mcu_api.c mcu library interface
|
|
- Sigfox_AT_Slave/Sigfox/Target/mn_api.c monarch library interface implementation
|
|
- Sigfox_AT_Slave/Sigfox/Target/radio_board_if.c This file provides an interface layer between MW and Radio Board
|
|
- Sigfox_AT_Slave/Sigfox/Target/rf_api.c rf library interface
|
|
- Sigfox_AT_Slave/Sigfox/Target/se_nvm.c manages SE nvm data
|
|
- Sigfox_AT_Slave/Sigfox/Target/sgfx_credentials.c manages keys and encryption algorithm
|
|
- Sigfox_AT_Slave/STM32CubeIDE/Application/User/Core/syscalls.c STM32CubeIDE Minimal System calls file
|
|
- Sigfox_AT_Slave/STM32CubeIDE/Application/User/Core/sysmem.c STM32CubeIDE System Memory calls file
|
|
|
|
|
|
@par Hardware and Software environment
|
|
|
|
- This example runs on the B-WL5M-SUBG1 Connectivity Expansion Board.
|
|
|
|
- B-WL5M-SUBG1 Connectivity Expansion Board Set-up
|
|
- Connect the Connectivity Expansion Board to your PC with an external STLINK-V3SET.
|
|
- Please ensure that the B-WL5M-SUBG1 is supplied.
|
|
|
|
- Configure the software via the configuration files:
|
|
- sys_conf.h, radio_conf.h, mw_log_conf.h, main.h, etc
|
|
|
|
-Set Up:
|
|
|
|
-------------------------- V V --------------------------
|
|
| Sigfox Object | | | | Sigfox Network |
|
|
| | | | | |
|
|
ComPort<--| |--| |--| |-->Web Server
|
|
| | | |
|
|
-------------------------- --------------------------
|
|
|
|
@par How to use it ?
|
|
In order to make the program work, you must do the following :
|
|
- Open your preferred toolchain
|
|
- Rebuild all files and load your image into target memory
|
|
- Run the example
|
|
- Open a Terminal, connected the Sigfox Object
|
|
- UART Config = 9600, 8b, 1 stopbit, no parity, no flow control
|
|
- Terminal Config: Select 'CR+LF' for Transmit New-Line and switch 'Local echo' on
|
|
- Reset the board
|
|
- type AT? to get all available commands
|
|
- Send your AT commands by typing them in the terminal
|
|
|
|
@par How to debug ?
|
|
- make sure the flag DEBUGGER_ENABLED to 1 in sys_conf.h
|
|
- simpler to define the flag LOW_POWER_DISABLE to 1 as well
|
|
- compile, download and attach
|
|
|
|
@par How to use MX to modify some RF middleware and application settings
|
|
This example is compatible (with some problems/limitations) with STM32CubeMX
|
|
and the RF application and middleware configuration can be modified via GUI. Few warnings and guidelines:
|
|
- ioc file is provided in the project directory and can be opened with STM32CubeMX v6.7.0 or higher.
|
|
- warning: when regenerating with the provided ioc file,
|
|
the IDE projects are regenerated and paths to HAL and MWs files from STM32Cube/Repository location are erroneously added; to avoid that,
|
|
user shall uncheck the "Use Default Firmware Location" in the GUI "Project-Manager" panel
|
|
and shall replace "Firmware Relative Path" with the root directory of the STM32CubeWL firmware package (e.g. C:\myDir\STM32Cube_FW_WL_V1.3.0\);
|
|
problem will be fixed in next STM32CubeMX version.
|
|
- .extSettings file allows to add to the generated IDE projects additional files not generated natively by MX (e.g. BSP files).
|
|
- when regenerating on existing code and existing linker files:
|
|
- STM32CubeMX updates the existing project content and preserves linker files.
|
|
- STM32CubeMX does not update the USER CODE sections (lines between /* USER CODE BEGIN Xxx */ and /* USER CODE END Xxx */).
|
|
- when regenerating after copying only the ioc file in an empty directory:
|
|
- STM32CubeMX generates default project files and default linker files. (Please check original linker file from project directory)
|
|
- it is up to the user to to fill the USER CODE sections with his application code.
|
|
|
|
@par How to use it with Azure ThreadX RTOS?
|
|
This example can be combined with Azure ThreadX RTOS via STM32CubeMX. The video tutorial:
|
|
"STM32WL - How to port an existing RF application on Azure ThreadX RTOS"
|
|
is available on https://www.youtube.com/playlist?list=PLnMKNibPkDnE2eaR-ZGM3ZJXadyQLtTpX
|
|
|
|
* <h3><center>© COPYRIGHT STMicroelectronics</center></h3>
|
|
*/ |