Nordic Semiconductor nRF5 AirFuel SDK
version 2.2.0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
ptu_config.h
Go to the documentation of this file.
1
/* Copyright (c) Nordic Semiconductor. All Rights Reserved.
2
*
3
* The information contained herein is property of Nordic Semiconductor ASA.
4
* Terms and conditions of usage are described in detail in NORDIC
5
* SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
6
*
7
* Licensees are granted free, non-transferable use of the information. NO
8
* WARRANTY of ANY KIND is provided. This heading must NOT be removed from
9
* the file.
10
*
11
*/
12
20
#ifndef __PTU_CONFIG_H__
21
#define __PTU_CONFIG_H__
22
23
#include "
ptu_hw_config.h
"
24
25
/******************************************************************************
26
* Misc. parameters
27
******************************************************************************/
28
29
#define PTU_MAX_CONNECTIONS 8
30
#define PTU_MAX_DEVICES 8
31
#define PTU_OUTPUT_TX_POWER 0
32
#define PTU_HW_REVISION 0
33
#define PTU_FW_REVISION 0
34
#define PTU_PROTOCOL_REVISION 1
35
#define PTU_MAX_APP_TIMERS 3
36
#define PTU_SENSORS_READ_INTERVAL_MS 30
37
#define PTU_PRU_DYN_READ_INTERVAL_MS 50
38
#define PTU_CONFIG_TIMEOUT_MS 10
39
#define PTU_SEC_MIN_KEYSIZE 7
40
#define PTU_SEC_MAX_KEYSIZE 16
41
#define PTU_P_ADJ_CMD_COOLDOWN_MS 2000
42
#define PTU_ADJUSTED_POWER_BIT_TIMEOUT_MS 2000
43
#define PTU_POWER_TRANSFER_HYSTERISIS 100
44
#define PTU_RECONNECT_TIMEOUT_MS 1100
45
#define PTU_DISTANT_LIST_LEN 30
46
#define PTU_MS_FROM_BEACON_STOP_TO_ACTIVATE_DISTANT_LIST 100
48
#define PTU_ALLOWED_REDUCED_POSITIVE_ITX_COIL_ADJUSTMENT_MULTIPLIER 0.95
50
#define PTU_ALLOWED_REDUCED_NEGATIVE_ITX_COIL_ADJUSTMENT_MULTIPLIER 1.05
52
#define PTU_DOMINANT_PRU_UPPER_LIMIT_VRECTSET_MULTIPLIER_FOR_REDUCTION_IN_STEP_SIZE 1.0/0.95
55
#define PTU_DOMINANT_PRU_LOWER_LIMIT_VRECTSET_MULTIPLIER_FOR_REDUCTION_IN_STEP_SIZE 1.0/1.05
59
/******************************************************************************
60
* Load detection
61
******************************************************************************/
62
63
#define PTU_LOAD_VARIATION_DETECT_LIFETIME_MS 1500
64
#define PTU_Z_TX_IN_NO_LOAD 100
65
#define PTU_Z_TX_IN_LOAD_DETECT 50
66
#define PTU_P_TX_IN_LOAD_DETECT 50
72
#define PTU_Z_MEAS_BUF_LENGTH ((100 / PTU_SENSORS_READ_INTERVAL_MS) + 1)
73
74
/******************************************************************************
75
* Cross connection
76
******************************************************************************/
77
78
#define PTU_CCA_RSSI_ENABLE true
79
#define PTU_CCA_TIME_SET_ENABLE true
80
#define PTU_CCA_REBOOT_BIT_ENABLE false
81
#define PTU_TIME_SET_VAL_MS 80
82
#define PTU_TIME_SET_VAL_MS_MARGIN 4
83
#define PTU_TIME_SET_CHECK_INTERVAL_MS 2
84
#define PTU_TIME_SET_500_MS_OF_SAMPLES \
85
(500 / PTU_TIME_SET_CHECK_INTERVAL_MS)
86
#define PTU_TIME_SET_LOWER_LIMIT_MS \
87
(PTU_TIME_SET_VAL_MS - \
88
PTU_TIME_SET_VAL_MS_MARGIN - \
89
PTU_TIME_SET_CHECK_INTERVAL_MS)
90
#define PTU_TIME_SET_UPPER_LIMIT_MS \
91
(PTU_TIME_SET_VAL_MS + \
92
PTU_TIME_SET_VAL_MS_MARGIN)
93
#define PTU_TIME_SET_VAL_LOW_LOAD_MS 20
94
#define PTU_MAX_DISTANT_PRUS 3
95
#define PTU_ADV_PRE_CONNECT_ALLOW 11
97
#define PTU_ADV_IGNORE_TIMEOUT_MS 1700
100
/******************************************************************************
101
* Scan parameters
102
******************************************************************************/
103
104
#define PTU_POWER_SAVE_STATE_SCAN_INTERVAL 160
105
#define PTU_POWER_SAVE_STATE_SCAN_WINDOW PTU_POWER_SAVE_STATE_SCAN_INTERVAL
106
#ifdef WDBGPTU
107
#define PTU_NORMAL_SCAN_INTERVAL 100
108
#else
109
#define PTU_NORMAL_SCAN_INTERVAL 80
110
#endif
111
#define PTU_NORMAL_SCAN_WINDOW 48
113
/******************************************************************************
114
* Connection parameters
115
******************************************************************************/
116
117
#define PTU_MIN_CONN_INTERVAL 40
118
#define PTU_MAX_CONN_INTERVAL 40
119
#define PTU_SLAVE_LATENCY 0
120
#define PTU_CONN_SUP_TIMEOUT 100
121
#define PTU_MAX_BLE_CONN_ATTEMPTS 2
122
#define PTU_MAX_REG_ATTEMPTS 2
123
#define PTU_REG_TIMEOUT_MS 500
140
#define PTU_REVOKE_ACCEPTED_STATE true
141
145
#define PTU_REVOKE_ACCEPTED_STATE_NON_POWER_SAVE_MS \
146
(PTU_REVOKE_ACCEPTED_STATE_RETRIES * PTU_BEACON_DURATION_LONG_MS)
147
151
#define PTU_REVOKE_ACCEPTED_STATE_POWER_SAVE_MS \
152
(PTU_REVOKE_ACCEPTED_STATE_RETRIES * ((PTU_BEACON_CYCLES_LONG * PTU_BEACON_CYCLE_PERIOD_MS) + PTU_BEACON_DURATION_LONG_MS))
153
159
#define PTU_REVOKE_ACCEPTED_STATE_RETRIES 3
160
161
162
/******************************************************************************
163
* Rogue object detection
164
******************************************************************************/
165
166
#define PTU_ROGUE_OBJECT_DETECT_THRESHOLD 30
167
#define PTU_CCA_ROGUE_DETECT_ENABLE true
169
/******************************************************************************
170
* Beacon parameters (Power Save and Latching Fault state)
171
******************************************************************************/
172
173
#define PTU_BEACON_CYCLE_PERIOD_MS 250
174
#define PTU_BEACON_CYCLES_LONG 10
175
#define PTU_BEACON_DURATION_SHORT_MS 10
177
/* Verify that beacon cycles and durations are BSS compliant (section 5.2.3.3 and 5.2.3.4) */
178
#if PTU_BEACON_CYCLE_PERIOD_MS != 250
179
#error PTU_BEACON_CYCLE_PERIOD_MS MUST be 250
180
#endif
181
182
#if (PTU_BEACON_CYCLES_LONG * PTU_BEACON_CYCLE_PERIOD_MS) < 850
183
#error PTU_BEACON_CYCLES_LONG * PTU_BEACON_CYCLE_PERIOD_MS can not be smaller than 850
184
#elif (PTU_BEACON_CYCLES_LONG * PTU_BEACON_CYCLE_PERIOD_MS) > 3000
185
#error PTU_BEACON_CYCLES_LONG * PTU_BEACON_CYCLE_PERIOD_MS can not be larger than 3000
186
#endif
187
188
#if PTU_BEACON_DURATION_SHORT_MS > 30
189
#error PTU_BEACON_DURATION_SHORT_MS can not be larger than 30
190
#endif
191
192
/******************************************************************************
193
* Latching fault parameters
194
******************************************************************************/
195
196
#define PTU_LATCH_FAULT_ENTRY_DELAY_MS 1000
197
#define PTU_LATCH_FAULT_EXIT_ATTEMPT_DELAY_MS 5000
198
#define PTU_LATCH_FAULT_MAX_AUTO_CLR_ATTEMPTS 3
199
#define PTU_LATCH_FAULT_NO_ERR_CLR_TIMEOUT_SEC (5 * 60)
200
#define PTU_LATCH_FAULT_NO_ERR_CLR_TIMEOUT_MS PTU_LATCH_FAULT_NO_ERR_CLR_TIMEOUT_SEC * 1000
201
#define PTU_LATCH_FAULT_NO_LOAD_VAR_NO_DEVICES_MS 5000
204
/******************************************************************************
205
* PTU Static characteristic default values
206
******************************************************************************/
207
208
#define BLE_WPTS_PTU_STATIC_MAX_SOURCE_IMPEDANCE_VAL BLE_WPTS_PTU_STATIC_MAX_SOURCE_IMPEDANCE_100_VAL
209
#define BLE_WPTS_PTU_STATIC_MAX_SOURCE_IMPEDANCE_VALID 0
210
#define BLE_WPTS_PTU_STATIC_MAX_LOAD_RESISTANCE_VAL BLE_WPTS_PTU_STATIC_MAX_LOAD_RESISTANCE_55_VAL
211
#define BLE_WPTS_PTU_STATIC_MAX_LOAD_RESISTANCE_VALID 0
212
#define BLE_WPTS_PTU_POWER BLE_WPTS_PTU_POWER_9_9W
215
/******************************************************************************
216
* PTU DFU parameters
217
******************************************************************************/
218
#define PTU_BUTTON_PRESS_LENGTH_DFU_MS 5 * 1000
222
/******************************************************************************
223
* PTU Beacon parameters
224
******************************************************************************/
225
#define PTU_BEACON_DURATION_LONG_MS 105
226
#define PTU_BEACON_DURATION_EXTENDED_MS 3000
227
#define PTU_POWER_SAVE_LONG_BEACON_PTX_READ_INTERVAL_MS 2
230
#if(PTU_MAX_DEVICES == 0)
231
#error PTU_MAX_DEVICES can not be 0
232
#elif(PTU_MAX_DEVICES == 1)
233
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_1_VAL
234
#elif(PTU_MAX_DEVICES == 2)
235
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_2_VAL
236
#elif(PTU_MAX_DEVICES == 3)
237
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_3_VAL
238
#elif(PTU_MAX_DEVICES == 4)
239
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_4_VAL
240
#elif(PTU_MAX_DEVICES == 5)
241
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_5_VAL
242
#elif(PTU_MAX_DEVICES == 6)
243
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_6_VAL
244
#elif(PTU_MAX_DEVICES == 7)
245
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_7_VAL
246
#elif(PTU_MAX_DEVICES == 8)
247
#define BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL BLE_WPTS_PTU_STATIC_NUM_DEVICES_8_VAL
248
#else
249
#error BLE_WPTS_PTU_STATIC_NUM_DEVICES_BITVAL must be in range [1, 8]
250
#endif
251
252
#if(PTU_TIME_SET_VAL_MS == 0)
253
#error PTU_MAX_CONNECTIONS can not be 0
254
#elif(PTU_TIME_SET_VAL_MS == 10)
255
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_10MS
256
#elif(PTU_TIME_SET_VAL_MS == 20)
257
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_20MS
258
#elif(PTU_TIME_SET_VAL_MS == 30)
259
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_30MS
260
#elif(PTU_TIME_SET_VAL_MS == 40)
261
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_40MS
262
#elif(PTU_TIME_SET_VAL_MS == 50)
263
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_50MS
264
#elif(PTU_TIME_SET_VAL_MS == 60)
265
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_60MS
266
#elif(PTU_TIME_SET_VAL_MS == 70)
267
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_70MS
268
#elif(PTU_TIME_SET_VAL_MS == 80)
269
#define BLE_WPTS_TIME_SET_BITVAL CTL_TIME_SET_80MS
270
#else
271
#error PTU_TIME_SET_VAL_MS must be in range [10, 80] in steps of 10.
272
#endif
273
274
#if(PTU_CLASS == BLE_WPTS_PTU_CLASS_1)
275
#if(PTU_PTX_IN_MAX < 20)
276
#warning PTU Class 1 requires PTU_PTX_IN_MAX >= 20
277
#endif
278
#elif(PTU_CLASS == BLE_WPTS_PTU_CLASS_2)
279
#if(PTU_PTX_IN_MAX < 100)
280
#warning PTU Class 2 requires PTU_PTX_IN_MAX >= 100
281
#endif
282
#elif(PTU_CLASS == BLE_WPTS_PTU_CLASS_3)
283
#if(PTU_PTX_IN_MAX < 160)
284
#warning PTU Class 3 requires PTU_PTX_IN_MAX >= 160
285
#endif
286
#elif(PTU_CLASS == BLE_WPTS_PTU_CLASS_4)
287
#if(PTU_PTX_IN_MAX < 330)
288
#warning PTU Class 4 requires PTU_PTX_IN_MAX >= 330
289
#endif
290
#elif(PTU_CLASS == BLE_WPTS_PTU_CLASS_5)
291
#if(PTU_PTX_IN_MAX < 500)
292
#warning PTU Class 5 requires PTU_PTX_IN_MAX >= 500
293
#endif
294
#elif(PTU_CLASS == BLE_WPTS_PTU_CLASS_6)
295
#if(PTU_PTX_IN_MAX < 700)
296
#warning PTU Class 6 requires PTU_PTX_IN_MAX >= 700
297
#endif
298
#endif
299
300
#if(PTU_SENSORS_READ_INTERVAL_MS > (PTU_TIME_SET_VAL_MS / 2))
301
#error PTU_TIME_SET_VAL_MS must be <= (PTU_TIME_SET_VAL_MS / 2)
302
#endif
303
304
#endif
/* __PTU_CONFIG_H__ */
305
ptu_hw_config.h
Copyright ©
Nordic Semiconductor
. All Rights Reserved.
Disclaimer