nRF5 SDK v15.0.0
Modules | Data Structures | Macros | Typedefs | Enumerations | Functions
Board Support Package

BSP module. More...

Modules

 BSP: ANT Button Module
 Module for controlling ANT behavior through button actions.
 
 BSP: BLE Button Module
 Module for controlling BLE behavior through button actions.
 
 BSP over CLI Module
 Module for sending BSP events over CLI.
 
 NFC BSP Module
 Module for setting the NFCT peripheral as a wakeup source.
 

Data Structures

struct  bsp_button_event_cfg_t
 

Macros

#define BSP_BUTTON_ACTION_PUSH   (APP_BUTTON_PUSH)
 
#define BSP_BUTTON_ACTION_RELEASE   (APP_BUTTON_RELEASE)
 
#define BSP_BUTTON_ACTION_LONG_PUSH   (2)
 
#define BSP_INDICATIONS_LIST
 
#define BSP_BUTTON_ACTION_PUSH   (APP_BUTTON_PUSH)
 
#define BSP_BUTTON_ACTION_RELEASE   (APP_BUTTON_RELEASE)
 
#define BSP_BUTTON_ACTION_LONG_PUSH   (2)
 
#define BSP_MS_TO_TICK(MS)   (m_app_ticks_per_100ms * (MS / 100))
 
#define BUTTON_ERASE_BONDING   BSP_BUTTON_0_MASK
 
#define BUTTON_ERASE_ALL   BSP_BUTTON_1_MASK
 
#define BUTTON_ADVERTISE   BSP_BUTTON_0_MASK
 
#define BUTTON_CLEAR_EVT   BSP_BUTTON_1_MASK
 
#define BUTTON_CAPSLOCK   BSP_BUTTON_2_MASK
 
#define BSP_BUTTONS_ALL   0xFFFFFFFF
 
#define BSP_BUTTONS_NONE   0
 
#define BSP_LONG_PUSH_TIMEOUT_MS   (1000)
 
#define ADVERTISING_LED_ON_INTERVAL   200
 Types of BSP initialization.
 
#define ADVERTISING_LED_OFF_INTERVAL   1800
 
#define ADVERTISING_DIRECTED_LED_ON_INTERVAL   200
 
#define ADVERTISING_DIRECTED_LED_OFF_INTERVAL   200
 
#define ADVERTISING_WHITELIST_LED_ON_INTERVAL   200
 
#define ADVERTISING_WHITELIST_LED_OFF_INTERVAL   800
 
#define ADVERTISING_SLOW_LED_ON_INTERVAL   400
 
#define ADVERTISING_SLOW_LED_OFF_INTERVAL   4000
 
#define BONDING_INTERVAL   100
 
#define SENT_OK_INTERVAL   100
 
#define SEND_ERROR_INTERVAL   500
 
#define RCV_OK_INTERVAL   100
 
#define RCV_ERROR_INTERVAL   500
 
#define ALERT_INTERVAL   200
 
#define BSP_LED_INDICATE_SENT_OK   BSP_BOARD_LED_1
 
#define BSP_LED_INDICATE_SEND_ERROR   BSP_BOARD_LED_1
 
#define BSP_LED_INDICATE_RCV_OK   BSP_BOARD_LED_1
 
#define BSP_LED_INDICATE_RCV_ERROR   BSP_BOARD_LED_1
 
#define BSP_LED_INDICATE_CONNECTED   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_BONDING   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_ADVERTISING_DIRECTED   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_ADVERTISING_SLOW   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_ADVERTISING_WHITELIST   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_INDICATE_ADVERTISING   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_USER_LED1   BSP_BOARD_LED_0
 
#define BSP_LED_INDICATE_USER_LED2   BSP_BOARD_LED_1
 
#define BSP_LED_INDICATE_USER_LED3   BSP_BOARD_LED_2
 
#define BSP_LED_INDICATE_USER_LED4   BSP_BOARD_LED_3
 
#define BSP_LED_ALERT   BSP_BOARD_LED_2
 

Typedefs

typedef uint8_t bsp_button_action_t
 
typedef void(* bsp_event_callback_t )(bsp_event_t)
 BSP module event callback function type. More...
 

Enumerations

enum  bsp_indication_t {
  BSP_INDICATE_FIRST = 0,
  BSP_INDICATE_IDLE = BSP_INDICATE_FIRST,
  BSP_INDICATE_SCANNING,
  BSP_INDICATE_ADVERTISING,
  BSP_INDICATE_ADVERTISING_WHITELIST,
  BSP_INDICATE_ADVERTISING_SLOW,
  BSP_INDICATE_ADVERTISING_DIRECTED,
  BSP_INDICATE_BONDING,
  BSP_INDICATE_CONNECTED,
  BSP_INDICATE_SENT_OK,
  BSP_INDICATE_SEND_ERROR,
  BSP_INDICATE_RCV_OK,
  BSP_INDICATE_RCV_ERROR,
  BSP_INDICATE_FATAL_ERROR,
  BSP_INDICATE_ALERT_0,
  BSP_INDICATE_ALERT_1,
  BSP_INDICATE_ALERT_2,
  BSP_INDICATE_ALERT_3,
  BSP_INDICATE_ALERT_OFF,
  BSP_INDICATE_USER_STATE_OFF,
  BSP_INDICATE_USER_STATE_0,
  BSP_INDICATE_USER_STATE_1,
  BSP_INDICATE_USER_STATE_2,
  BSP_INDICATE_USER_STATE_3,
  BSP_INDICATE_USER_STATE_ON,
  BSP_INDICATE_LAST = BSP_INDICATE_USER_STATE_ON
}
 BSP indication states. More...
 
enum  bsp_event_t {
  BSP_EVENT_NOTHING = 0,
  BSP_EVENT_DEFAULT,
  BSP_EVENT_CLEAR_BONDING_DATA,
  BSP_EVENT_CLEAR_ALERT,
  BSP_EVENT_DISCONNECT,
  BSP_EVENT_ADVERTISING_START,
  BSP_EVENT_ADVERTISING_STOP,
  BSP_EVENT_WHITELIST_OFF,
  BSP_EVENT_BOND,
  BSP_EVENT_RESET,
  BSP_EVENT_SLEEP,
  BSP_EVENT_WAKEUP,
  BSP_EVENT_SYSOFF,
  BSP_EVENT_DFU,
  BSP_EVENT_KEY_0,
  BSP_EVENT_KEY_1,
  BSP_EVENT_KEY_2,
  BSP_EVENT_KEY_3,
  BSP_EVENT_KEY_4,
  BSP_EVENT_KEY_5,
  BSP_EVENT_KEY_6,
  BSP_EVENT_KEY_7,
  BSP_EVENT_KEY_LAST = BSP_EVENT_KEY_7
}
 BSP events. More...
 

Functions

uint32_t bsp_init (uint32_t type, bsp_event_callback_t callback)
 Function for initializing BSP. More...
 
bool bsp_button_is_pressed (uint32_t button)
 Function for checking button states. More...
 
uint32_t bsp_event_to_button_action_assign (uint32_t button, bsp_button_action_t action, bsp_event_t event)
 Function for assigning a specific event to a button. More...
 
uint32_t bsp_indication_set (bsp_indication_t indicate)
 Function for configuring indicators to required state. More...
 
uint32_t bsp_buttons_enable (void)
 Function for enabling all buttons. More...
 
uint32_t bsp_buttons_disable (void)
 Function for disabling all buttons. More...
 
uint32_t bsp_wakeup_button_enable (uint32_t button_idx)
 Function for enabling wakeup from SYSTEM OFF for given button. More...
 
uint32_t bsp_wakeup_button_disable (uint32_t button_idx)
 Function for disabling wakeup for the given button. More...
 

Detailed Description

BSP module.

This module provides a layer of abstraction from the board. It allows the user to indicate certain states on LEDs in a simple way. Module functionality can be modified by defining BSP_SIMPLE to reduce functionality of this module to enable and read state of the buttons.

This module provides a layer of abstraction from the board. It allows the user to indicate certain states on LEDs in a simple way. Module functionality can be modified by additional defines:

Macro Definition Documentation

#define BSP_BUTTON_ACTION_LONG_PUSH   (2)

Represents pushing and holding a button for BSP_LONG_PUSH_TIMEOUT_MS milliseconds. See also bsp_button_action_t.

#define BSP_BUTTON_ACTION_LONG_PUSH   (2)

Represents pushing and holding a button for BSP_LONG_PUSH_TIMEOUT_MS milliseconds. See also bsp_button_action_t.

#define BSP_BUTTON_ACTION_PUSH   (APP_BUTTON_PUSH)

Represents pushing a button. See bsp_button_action_t.

#define BSP_BUTTON_ACTION_PUSH   (APP_BUTTON_PUSH)

Represents pushing a button. See bsp_button_action_t.

#define BSP_BUTTON_ACTION_RELEASE   (APP_BUTTON_RELEASE)

Represents releasing a button. See bsp_button_action_t.

#define BSP_BUTTON_ACTION_RELEASE   (APP_BUTTON_RELEASE)

Represents releasing a button. See bsp_button_action_t.

#define BSP_INDICATIONS_LIST
Value:
{ \
"BSP_INDICATE_IDLE", \
"BSP_INDICATE_SCANNING", \
"BSP_INDICATE_ADVERTISING", \
"BSP_INDICATE_ADVERTISING_WHITELIST", \
"BSP_INDICATE_ADVERTISING_SLOW", \
"BSP_INDICATE_ADVERTISING_DIRECTED", \
"BSP_INDICATE_BONDING", \
"BSP_INDICATE_CONNECTED", \
"BSP_INDICATE_SENT_OK", \
"BSP_INDICATE_SEND_ERROR", \
"BSP_INDICATE_RCV_OK", \
"BSP_INDICATE_RCV_ERROR", \
"BSP_INDICATE_FATAL_ERROR", \
"BSP_INDICATE_ALERT_0", \
"BSP_INDICATE_ALERT_1", \
"BSP_INDICATE_ALERT_2", \
"BSP_INDICATE_ALERT_3", \
"BSP_INDICATE_ALERT_OFF", \
"BSP_INDICATE_USER_STATE_OFF", \
"BSP_INDICATE_USER_STATE_0", \
"BSP_INDICATE_USER_STATE_1", \
"BSP_INDICATE_USER_STATE_2", \
"BSP_INDICATE_USER_STATE_3", \
"BSP_INDICATE_USER_STATE_ON" \
}

See BSP indication states for a list of how these states are indicated for the PCA10028/PCA10040 board and the PCA10031 dongle.

#define BSP_LONG_PUSH_TIMEOUT_MS   (1000)

The time to hold for a long push (in milliseconds).

Typedef Documentation

typedef uint8_t bsp_button_action_t

The different actions that can be performed on a button.

typedef void(* bsp_event_callback_t)(bsp_event_t)

BSP module event callback function type.

Upon an event in the BSP module, this callback function will be called to notify the application about the event.

Parameters
[in]bsp_event_tBSP event type.

Enumeration Type Documentation

BSP events.

Note
Events from BSP_EVENT_KEY_0 to BSP_EVENT_KEY_LAST are by default assigned to buttons.
Enumerator
BSP_EVENT_NOTHING 

Assign this event to an action to prevent the action from generating an event (disable the action).

BSP_EVENT_DEFAULT 

Assign this event to an action to assign the default event to the action.

BSP_EVENT_CLEAR_BONDING_DATA 

Persistent bonding data should be erased.

BSP_EVENT_CLEAR_ALERT 

An alert should be cleared.

BSP_EVENT_DISCONNECT 

A link should be disconnected.

BSP_EVENT_ADVERTISING_START 

The device should start advertising.

BSP_EVENT_ADVERTISING_STOP 

The device should stop advertising.

BSP_EVENT_WHITELIST_OFF 

The device should remove its advertising whitelist.

BSP_EVENT_BOND 

The device should bond to the currently connected peer.

BSP_EVENT_RESET 

The device should reset.

BSP_EVENT_SLEEP 

The device should enter sleep mode.

BSP_EVENT_WAKEUP 

The device should wake up from sleep mode.

BSP_EVENT_SYSOFF 

The device should enter system off mode (without wakeup).

BSP_EVENT_DFU 

The device should enter DFU mode.

BSP_EVENT_KEY_0 

Default event of the push action of BSP_BUTTON_0 (only if this button is present).

BSP_EVENT_KEY_1 

Default event of the push action of BSP_BUTTON_1 (only if this button is present).

BSP_EVENT_KEY_2 

Default event of the push action of BSP_BUTTON_2 (only if this button is present).

BSP_EVENT_KEY_3 

Default event of the push action of BSP_BUTTON_3 (only if this button is present).

BSP_EVENT_KEY_4 

Default event of the push action of BSP_BUTTON_4 (only if this button is present).

BSP_EVENT_KEY_5 

Default event of the push action of BSP_BUTTON_5 (only if this button is present).

BSP_EVENT_KEY_6 

Default event of the push action of BSP_BUTTON_6 (only if this button is present).

BSP_EVENT_KEY_7 

Default event of the push action of BSP_BUTTON_7 (only if this button is present).

BSP indication states.

See BSP indication states for a list of how these states are indicated for the PCA10028/PCA10040 board and the PCA10031 dongle.

Enumerator
BSP_INDICATE_IDLE 

See BSP_INDICATE_IDLE.

BSP_INDICATE_SCANNING 

See BSP_INDICATE_SCANNING.

BSP_INDICATE_ADVERTISING 

See BSP_INDICATE_ADVERTISING.

BSP_INDICATE_ADVERTISING_WHITELIST 

See BSP_INDICATE_ADVERTISING_WHITELIST.

BSP_INDICATE_ADVERTISING_SLOW 

See BSP_INDICATE_ADVERTISING_SLOW.

BSP_INDICATE_ADVERTISING_DIRECTED 

See BSP_INDICATE_ADVERTISING_DIRECTED.

BSP_INDICATE_BONDING 

See BSP_INDICATE_BONDING.

BSP_INDICATE_CONNECTED 

See BSP_INDICATE_CONNECTED.

BSP_INDICATE_SENT_OK 

See BSP_INDICATE_SENT_OK.

BSP_INDICATE_SEND_ERROR 

See BSP_INDICATE_SEND_ERROR.

BSP_INDICATE_RCV_OK 

See BSP_INDICATE_RCV_OK.

BSP_INDICATE_RCV_ERROR 

See BSP_INDICATE_RCV_ERROR.

BSP_INDICATE_FATAL_ERROR 

See BSP_INDICATE_FATAL_ERROR.

BSP_INDICATE_ALERT_0 

See BSP_INDICATE_ALERT_0.

BSP_INDICATE_ALERT_1 

See BSP_INDICATE_ALERT_1.

BSP_INDICATE_ALERT_2 

See BSP_INDICATE_ALERT_2.

BSP_INDICATE_ALERT_3 

See BSP_INDICATE_ALERT_3.

BSP_INDICATE_ALERT_OFF 

See BSP_INDICATE_ALERT_OFF.

BSP_INDICATE_USER_STATE_OFF 

See BSP_INDICATE_USER_STATE_OFF.

BSP_INDICATE_USER_STATE_0 

See BSP_INDICATE_USER_STATE_0.

BSP_INDICATE_USER_STATE_1 

See BSP_INDICATE_USER_STATE_1.

BSP_INDICATE_USER_STATE_2 

See BSP_INDICATE_USER_STATE_2.

BSP_INDICATE_USER_STATE_3 

See BSP_INDICATE_USER_STATE_3.

BSP_INDICATE_USER_STATE_ON 

See BSP_INDICATE_USER_STATE_ON.

Function Documentation

bool bsp_button_is_pressed ( uint32_t  button)

Function for checking button states.

This function checks if the button is pressed. If the button ID is out of range, the function returns false.

Parameters
[in]buttonButton ID to check.
Return values
trueIf the button is pressed.
falseIf the button is not pressed.
uint32_t bsp_buttons_disable ( void  )

Function for disabling all buttons.

After calling this function, no buttons will generate events when pressed, and no buttons will be able to wake the system up from sleep mode.

Return values
NRF_SUCCESSIf the buttons were successfully disabled.
NRF_ERROR_NOT_SUPPORTEDIf the board has no buttons or BSP_SIMPLE is defined.
Returns
A propagated error.
uint32_t bsp_buttons_enable ( void  )

Function for enabling all buttons.

After calling this function, all buttons will generate events when pressed, and all buttons will be able to wake the system up from sleep mode.

Return values
NRF_SUCCESSIf the buttons were successfully enabled.
NRF_ERROR_NOT_SUPPORTEDIf the board has no buttons or BSP_SIMPLE is defined.
Returns
A propagated error.
uint32_t bsp_event_to_button_action_assign ( uint32_t  button,
bsp_button_action_t  action,
bsp_event_t  event 
)

Function for assigning a specific event to a button.

This function allows redefinition of standard events assigned to buttons. To unassign events, provide the event BSP_EVENT_NOTHING.

Parameters
[in]buttonButton ID to be redefined.
[in]actionButton action to assign event to.
[in]eventEvent to be assigned to button.
Return values
NRF_SUCCESSIf the event was successfully assigned to button.
NRF_ERROR_INVALID_PARAMIf the button ID or button action was invalid.
uint32_t bsp_indication_set ( bsp_indication_t  indicate)

Function for configuring indicators to required state.

This function indicates the required state by means of LEDs (if enabled).

Note
Alerts are indicated independently.
Parameters
[in]indicateState to be indicated.
Return values
NRF_SUCCESSIf the state was successfully indicated.
NRF_ERROR_NO_MEMIf the internal timer operations queue was full.
NRF_ERROR_INVALID_STATEIf the application timer module has not been initialized, or internal timer has not been created.
uint32_t bsp_init ( uint32_t  type,
bsp_event_callback_t  callback 
)

Function for initializing BSP.

The function initializes the board support package to allow state indication and button reaction. Default events are assigned to buttons.

Note
Before calling this function, you must initiate the following required modules:
Parameters
[in]typeType of peripherals used.
[in]callbackFunction to be called when button press/event is detected.
Return values
NRF_SUCCESSIf the BSP module was successfully initialized.
NRF_ERROR_INVALID_STATEIf the application timer module has not been initialized.
NRF_ERROR_NO_MEMIf the maximum number of timers has already been reached.
NRF_ERROR_INVALID_PARAMIf GPIOTE has too many users.
NRF_ERROR_INVALID_STATEIf button or GPIOTE has not been initialized.
uint32_t bsp_wakeup_button_disable ( uint32_t  button_idx)

Function for disabling wakeup for the given button.

Parameters
[in]button_idxindex of the button.
Return values
NRF_SUCCESSIf the button was successfully disabled.
NRF_ERROR_NOT_SUPPORTEDIf the board has no buttons or BSP_SIMPLE is defined.
uint32_t bsp_wakeup_button_enable ( uint32_t  button_idx)

Function for enabling wakeup from SYSTEM OFF for given button.

After calling this function, button can be used to wake up the chip. This function should only be called immediately before going into sleep.

Parameters
[in]button_idxIndex of the button.
Return values
NRF_SUCCESSIf the button was successfully enabled.
NRF_ERROR_NOT_SUPPORTEDIf the board has no buttons or BSP_SIMPLE is defined.

Documentation feedback | Developer Zone | Subscribe | Updated