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

readme.txt « BLE_p2pClient « BLE « Applications « NUCLEO-WB15CC « Projects - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0e404a828e29276fae342387c432b5534f46bf51 (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
/**
  @page BLE_p2pClient Application

  @verbatim
  ******************************************************************************
  * @file    BLE/BLE_p2pClient/readme.txt 
  * @author  MCD Application Team
  * @brief   Description of the BLE_p2pClient application
  ******************************************************************************
  *
  * Copyright (c) 2019-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 Application Description

How to demonstrate Point-to-Point communication using BLE component (as GATT client). 

Two STM32WB15xx boards are used, one acting as GATT client, and one as GATT server.
For example, BLE_P2PClient application is downloaded in a Nucleo board (MB1641) and BLE_p2pServer_ota application in a Nucleo board (MB1641).
The client could be located in a phone also, using the ST BLE Sensor application instead of the MB1641 board. 


@par Keywords

Connectivity, BLE, IPCC, HSEM, RTC, UART, PWR, BLE protocol, BLE pairing, BLE profile, Dual core

@par Directory contents 
  
  - BLE/BLE_p2pClient/Core/Inc/stm32wbxx_hal_conf.h		HAL configuration file
  - BLE/BLE_p2pClient/Core/Inc/stm32wbxx_it.h          	Interrupt handlers header file
  - BLE/BLE_p2pClient/Core/Inc/main.h                  	Header for main.c module
  - BLE/BLE_p2pClient/STM32_WPAN/App/app_ble.h          Header for app_ble.c module
  - BLE/BLE_p2pClient/Core/Inc/app_common.h            	Header for all modules with common definition
  - BLE/BLE_p2pClient/Core/Inc/app_conf.h              	Parameters configuration file of the application
  - BLE/BLE_p2pClient/Core/Inc/app_entry.h            	Parameters configuration file of the application
  - BLE/BLE_p2pClient/STM32_WPAN/App/ble_conf.h         BLE Services configuration
  - BLE/BLE_p2pClient/STM32_WPAN/App/ble_dbg_conf.h     BLE Traces configuration of the BLE services
  - BLE/BLE_p2pClient/STM32_WPAN/App/p2p_client_app.h   Header for p2p_lcient_app.c module
  - BLE/BLE_p2pClient/Core/Inc/hw_conf.h           		Configuration file of the HW
  - BLE/BLE_p2pClient/Core/Inc/utilities_conf.h    		Configuration file of the utilities
  - BLE/BLE_p2pClient/Core/Src/stm32wbxx_it.c          	Interrupt handlers
  - BLE/BLE_p2pClient/Core/Src/main.c                  	Main program
  - BLE/BLE_p2pClient/Core/Src/system_stm32wbxx.c      	stm32wbxx system source file
  - BLE/BLE_p2pClient/STM32_WPAN/App/app_ble.c      	BLE Profile implementation
  - BLE/BLE_p2pClient/Core/Src/app_entry.c      		Initialization of the application
  - BLE/BLE_p2pClient/STM32_WPAN/App/p2p_client_app.c   P2P Client Application Implementation
  - BLE/BLE_p2pClient/STM32_WPAN/Target/hw_ipcc.c      	IPCC Driver
  - BLE/BLE_p2pClient/Core/Src/stm32_lpm_if.c			Low Power Manager Interface
  - BLE/BLE_p2pClient/Core/Src/hw_timerserver.c 		Timer Server based on RTC
  - BLE/BLE_p2pClient/Core/Src/hw_uart.c 				UART Driver
  
@par Hardware and Software environment

  - This example runs on STM32WB15xx devices.
  
  - This example has been tested with an STMicroelectronics STM32WB15CC-Nucleo
    board and can be easily tailored to any other supported device 
    and development board.
    
    - Nucleo board (MB1641) Set-up    
       - Connect the Nucleo Board to your PC with a USB cable type A to mini-B to ST-LINK connector (USB_STLINK).
       - Please ensure that the ST-LINK connectors and jumpers are fitted.

@par How to use it ? 

This application requires having the stm32wb15_BLE_Stack_full_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 :
 - Open your preferred toolchain 
 - Rebuild all files and load the image into Target memory
 - OR use the BLE_p2pClient_reference.hex from Binary directory
 - This must be done for BLE_p2pServer and BLE_p2pClient.

 - BLE_p2pServer may be connected by BLE_p2pClient.
 - Once the code (BLE_p2pServer & BLE_p2pClient) is downloaded into the two STM32WB15xx boards and executed, the modules are initialized. 

 - The Peripheral device (BLE_p2pServer) starts advertising (during 1 minute), the green led blinks for each advertising event.
 - The Central device (BLE_p2pClient) starts scanning when pressing the User button (SW1) 
   - BLE_p2pClient blue led becomes on. 
   - Scan req takes about 5 seconds.
   - Make sure BLE_p2pServer advertises, if not press reset button or switch off/on to restart advertising.
 - Then, it automatically connects to the BLE_p2pServer. 
   - Blue led turns off and green led starts blinking as on the MB1641. Connection is done.
 - When pressing SW1 on a board, the blue led toggles on the other one.
   - The SW1 button can be pressed independently on the GATT Client or on the GATT Server.
 - When the server is located on a MB1641, the connection interval can be modified from 50ms to 1s and vice-versa using SW2. 
 - The green led on the 2 boards blinks for each advertising event, it means quickly when 50ms and slowly when 1s. 
 - Passing from 50ms to 1s is instantaneous, but from 1s to 50ms takes around 10 seconds.
 - The SW1 event, switch on/off blue led, depends on the connection Interval event. 
   - So the delay from SW1 action and blue led change is more or less fast.
  
For more details refer to the Application Note: 
  AN5289 - Building a Wireless application 
 
 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
 */