Welcome to mirror list, hosted at ThFree Co, Russian Federation.

readme.txt « Thread_SED_Coap_Multicast « Thread « Applications « P-NUCLEO-WB55.Nucleo « Projects - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5e399d59839ac2a59a9a5709107a019a84b02d61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/**
  @page Thread_SED_Coap_Multicast application
  
  @verbatim
  ******************************************************************************
  * @file    Thread/Thread_SED_Coap_Multicast/readme.txt 
  * @author  MCD Application Team
  * @brief   Description of the Thread Coap Multicast application
  ******************************************************************************
  *
  * Copyright (c) 2019 STMicroelectronics. All rights reserved.
  *
  * This software component is licensed by ST under Ultimate Liberty license 
  * SLA0044, the "License"; You may not use this file except in compliance with 
  * the License. You may obtain a copy of the License at:
  *                               www.st.com/SLA0044
  *
  ******************************************************************************
  @endverbatim

@par Application Description 

How to exchange a Coap message using the Thread protocol.

This application requires two STM32WB55xx boards.

In a Thread network, nodes are split into two forwarding roles: Router or End Device.
The Thread Leader is a Router that is responsible for managing the set of Routers in a 
Thread network. An End Device communicates primarily with a single Router. 

An MTD device can only have the following roles: 
 - End Device, Sleepy End Device
An FTD device can have the following roles: 
 - End Device, Sleepy End Device, REED, Router, Leader 

In our Application which uses two devices, one device will act as a Leader (Router) in FTD mode
and the other one will act as a SleepyEndDevice in MTD mode.

The device that will act as a Leader must be flashed with the FTD application: 
use the Thread FTD application Thread_FTD_Coap_Multicast. 
The other device that will act as a SleepyEndDevice can be flashed with this MTD application. 
 
After the reset of the 2 boards, one board (Device 1) will automatically reach the 
Leader mode (Green LED2 ON) and the other one (Device 2) will automatically reach the
Sleepy End Device mode (Red LED3 ON*) after a few seconds.

At this stage, these two boards belong to the same Thread network and Device 2 will 
send every second a Coap request to Device 1 in order to light on/off its blue LED.

  ___________________________                       ___________________________
  |  Device 2 (MTD)         |                       | Device 1 (FTD)          |
  |_________________________|                       |_________________________|  
  |                         |                       |                         |
  |                         |                       |                         |
  |        Timer [1sec]     |======> COAP =========>|    BLUE LED ON/OFF      |
  |                         |    Resource "light"   |                         |
  |                         |    Mode : Multicast   |                         |
  |                         |                       |                         |
  |                         |                       |                         |
  ---------------------------                       ---------------------------
  | Role : SleepyEndDevice  |                       | Role : Leader           |
  |                         |                       |                         |
  | LED : Red*              |                       | LED : Green             |
  |                         |                       |                         |
  |_________________________|                       |_________________________|


(*)Note:
Thread_SED_Coap_Multicast application is compiled with default following configuration in app_conf.h: #define CFG_FULL_LOW_POWER 1
The define CFG_FULL_LOW_POWER when set to 1 will not configure resources that have impact on consumption (LED, Traces, Access to Debugger, etc...)  
If you set CFG_FULL_LOW_POWER 0 and recompile, then you should see Red LED switching on.
       
@par Keywords

COAP,Thread

@par Directory contents 
  
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/app_common.h            Header for all modules with common definition
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/app_conf.h              Parameters configuration file of the application 
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/app_entry.h             Parameters configuration file of the application
  - Thread/Thread_SED_Coap_Multicast/STM32_WPAN/App/app_thread.h      Header for app_thread.c module
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/hw_conf.h               Configuration file of the HW 
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/main.h                  Header for main.c module
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/stm_logging.h           Header for stm_logging.c module
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/stm32wbxx_hal_conf.h    HAL configuration file
  - Thread/Thread_SED_Coap_Multicast/Core/Src/stm32wbxx_it.h          Interrupt header file
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/system_infra.h          System infrastructure header file
  - Thread/Thread_SED_Coap_Multicast/Core/Inc/utilities_conf.h        Configuration file of the utilities
  - Thread/Thread_SED_Coap_Multicast/Core/Src/app_entry.c             Initialization of the application
  - Thread/Thread_SED_Coap_Multicast/STM32_WPAN/App/app_thread.c      Thread application implementation
  - Thread/Thread_SED_Coap_Multicast/STM32_WPAN/Target/hw_ipcc.c      IPCC Driver
  - Thread/Thread_SED_Coap_Multicast/Core/Src/stm32_lpm_if.c          Low Power Manager Interface
  - Thread/Thread_SED_Coap_Multicast/Core/Src/hw_uart.c               UART driver
  - Thread/Thread_SED_Coap_Multicast/Core/Src/main.c                  Main program
  - Thread/Thread_SED_Coap_Multicast/Core/Src/stm_logging.c           Logging module for traces
  - Thread/Thread_SED_Coap_Multicast/Core/Src/stm32xx_it.c            Interrupt handlers
  - Thread/Thread_SED_Coap_Multicast/Core/Src/system_stm32wbxx.c      stm32wbxx system source file


@par Hardware and Software environment

  - This application uses two STM32WB55xx devices (Nucleo board and Dongle)
  
  - This example has been tested with an STMicroelectronics STM32WB55 Nucleo or Dongle
    board and can be easily tailored to any other supported device 
    and development board.
    
  - On STM32WB55RG_Nucleo, the jumpers must be configured as described
    in this section. Starting from the top left position up to the bottom 
    right position, the jumpers on the Board must be set as follows:

     CN11:    GND         [OFF]
     JP4:     VDDRF       [ON]
     JP6:     VC0         [ON]
     JP2:     +3V3        [ON] 
     JP1:     USB_STL     [ON]   All others [OFF]
     CN12:    GND         [OFF]
     CN7:     <All>       [OFF]
     JP3:     VDD_MCU     [ON]
     JP5:     GND         [OFF]  All others [ON]
     CN10:    <All>       [OFF]


@par How to use it ? 

For Device 1 (FTD), this application requests having the stm32wb5x_Thread_FTD_fw.bin binary flashed on the Wireless Coprocessor.
For Device 2 (MTD), this application requests having the stm32wb5x_Thread_MTD_fw.bin binary flashed on the Wireless Coprocessor.
If it is not the case, you need to use STM32CubeProgrammer to load the appropriate binary.
All available binaries are located under /Projects/STM32_Copro_Wireless_Binaries directory.
Refer to UM2237 to learn how to use/install STM32CubeProgrammer.
Refer to /Projects/STM32_Copro_Wireless_Binaries/ReleaseNote.html for the detailed procedure to change the
Wireless Coprocessor binary. 


In order to make the program work, you must do the following: 
 - Connect 2 STM32WB55xx boards to your PC

    One Board (Device 1) must be configured in FTD.
    -> Refer to the Thread/Thread_FTD_Coap_Multicast application example and follow the associated readme.txt

    The second Board (Device 2) must be configured in MTD 
    -> Open your preferred toolchain 
    -> Rebuild all files of Thread/Thread_SED_Coap_Multicast application 
         and load your image into the other target memory

 - Run the application
 
 Note: when LED1, LED2 and LED3 are toggling it is indicating an error has occurred on application.
 
 If you want to control this application, you can directly send and
 retrieve Cli commands connecting an HyperTerminal with the ST_Link cable.
 (Refer to the Thread_Cli_Cmd application for more details) 
    
To get the traces in real time, you can connect an HyperTerminal to the STLink Virtual Com Port.
 
 For the Cli control and for the traces, the UART must be configured as follows:
    - BaudRate = 115200 baud  
    - Word Length = 8 Bits 
    - Stop Bit = 1 bit
    - Parity = none
    - Flow control = none

**** EXTPA ****

The STM32WB is not able to transmit with a power higher than 5 dbm. As such it is
possible to use the EXT PA as an additional supply source.

Signals:
The EXTPA consists of three signals.

- Analogic signal : power supply, constant value.
- Enable/Disable: 0 when the RF is in Sleep/not initialized, 1 otherwise.
- RX/TX : 1 during a transmission, 0 otherwise.
___________________________________________________
|   RF status:    | Sleep mode | RX mode | TX mode |
|_________________|____________|_________|_________|
| Enable/Disable: |     0      |    1    |    1    |
|_________________|____________|_________|_________|
|    RX/TX:	      |    N/A     |    0    |    1    |
|_________________|____________|_________|_________|
|Analogic signal: |	             N/A               |
|_________________|________________________________|

NOTE: The RX/TX signal must be wired on the PB0 I/O (C10-22 on Nucleo).

The Enable/Disable signal by default is mapped on PB9 (C10-5 on Nucleo).
You can change this setting in app_conf.h, by editing GPIO_EXT_PA_EN_PIN and GPIO_EXT_PA_EN_PORT.

Power setting:
The firmware is not aware of the power brought by the ExtPA. It is up to the system integrator to
configure the application to get the desired power.

For instance, if the ExtPA provides an additional power of 10dbm and the desired power for a TX is 12dbm.
The application must be configured to set the power at 2dbm.

M0 firmware:
The M0 firmware remains unchanged. It has been tested with the binary listed above.

EXTPA enabling:
The EXTPA support is not enabled by default.
In hw_conf.h, set CFG_HW_EXTPA_ENABLED to 1.

 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
 */