Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_Boards.h File Reference
#include <protocol/cs_Typedefs.h>
#include <protocol/cs_UicrPacket.h>
#include <stdbool.h>
#include <stdint.h>
Include dependency graph for cs_Boards.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  boards_config_t
 Board configuration. More...
 

Macros

#define PCA10036   40
 We use part of the UICR to store information about the hardware board. More...
 
#define PCA10040   41
 
#define PCA10100   42
 
#define PCA10056   43
 
#define GUIDESTONE   100
 
#define CS_USB_DONGLE   200
 
#define ACR01B1A   1000
 
#define ACR01B1B   1001
 
#define ACR01B1C   1002
 
#define ACR01B1D   1003
 
#define ACR01B1E   1004
 
#define ACR01B10B   1007
 
#define ACR01B10D   1008
 
#define ACR01B13B   1009
 
#define ACR01B15A   1010
 
#define ACR01B2A   1500
 
#define ACR01B2B   1501
 
#define ACR01B2C   1502
 
#define ACR01B2E   1503
 
#define ACR01B2G   1504
 
#define ACR01B11A   1505
 
#define CR01R02v4   1100
 
#define PIN_NONE   0xFF
 

Enumerations

enum  GainIndex {
  GAIN_LOW = 0 , GAIN_MIDDLE = 1 , GAIN_HIGH = 2 , GAIN_COUNT = 3 ,
  GAIN_SINGLE = 0
}
 
enum  ButtonIndex {
  BUTTON0 = 0 , BUTTON1 = 1 , BUTTON2 = 2 , BUTTON3 = 3 ,
  BUTTON_COUNT = 4
}
 
enum  GpioIndex {
  GPIO_INDEX0 = 0 , GPIO_INDEX1 = 1 , GPIO_INDEX2 = 2 , GPIO_INDEX3 = 3 ,
  GPIO_INDEX4 = 4 , GPIO_INDEX5 = 5 , GPIO_INDEX6 = 6 , GPIO_INDEX7 = 7 ,
  GPIO_INDEX8 = 8 , GPIO_INDEX9 = 9 , GPIO_INDEX_COUNT = 10
}
 
enum  LedIndex {
  LED0 = 0 , LED1 = 1 , LED2 = 2 , LED3 = 3 ,
  LED_COUNT = 4 , LED_RED = 0 , LED_GREEN = 1
}
 
enum  Chipset { CHIPSET_NRF52832 = 0 , CHIPSET_NRF52833 = 1 , CHIPSET_NRF52840 = 2 }
 

Functions

uint8_t GpioToAinOnChipset (uint8_t gpio, uint8_t chipset)
 Maps GPIO pins to AIN pins. More...
 
uint8_t GpioToAin (uint8_t gpio)
 
uint8_t GetGpioPin (uint8_t major, uint8_t minor)
 
void init (boards_config_t *config)
 initializes a board config to default values. More...
 
cs_ret_code_t configure_board (boards_config_t *p_config)
 Configure board. More...
 
cs_ret_code_t configure_board_from_hardware_board (uint32_t hardwareBoard, boards_config_t *config)
 
cs_ret_code_t configure_board_from_uicr (const cs_uicr_data_t *uicrData, boards_config_t *config)
 

Macro Definition Documentation

◆ ACR01B10B

#define ACR01B10B   1007

◆ ACR01B10D

#define ACR01B10D   1008

◆ ACR01B11A

#define ACR01B11A   1505

◆ ACR01B13B

#define ACR01B13B   1009

◆ ACR01B15A

#define ACR01B15A   1010

◆ ACR01B1A

#define ACR01B1A   1000

◆ ACR01B1B

#define ACR01B1B   1001

◆ ACR01B1C

#define ACR01B1C   1002

◆ ACR01B1D

#define ACR01B1D   1003

◆ ACR01B1E

#define ACR01B1E   1004

◆ ACR01B2A

#define ACR01B2A   1500

◆ ACR01B2B

#define ACR01B2B   1501

◆ ACR01B2C

#define ACR01B2C   1502

◆ ACR01B2E

#define ACR01B2E   1503

◆ ACR01B2G

#define ACR01B2G   1504

◆ CR01R02v4

#define CR01R02v4   1100

◆ CS_USB_DONGLE

#define CS_USB_DONGLE   200

◆ GUIDESTONE

#define GUIDESTONE   100

◆ PCA10036

#define PCA10036   40

We use part of the UICR to store information about the hardware board.

So the firmware is independent on the hardware board (we don't need to know the board at compile time). Instead the firmware reads the hardware board type at runtime from the UICR and assigns the

◆ PCA10040

#define PCA10040   41

◆ PCA10056

#define PCA10056   43

◆ PCA10100

#define PCA10100   42

◆ PIN_NONE

#define PIN_NONE   0xFF

Enumeration Type Documentation

◆ ButtonIndex

Enumerator
BUTTON0 
BUTTON1 
BUTTON2 
BUTTON3 
BUTTON_COUNT 

◆ Chipset

enum Chipset
Enumerator
CHIPSET_NRF52832 
CHIPSET_NRF52833 
CHIPSET_NRF52840 

◆ GainIndex

enum GainIndex
Enumerator
GAIN_LOW 
GAIN_MIDDLE 
GAIN_HIGH 
GAIN_COUNT 
GAIN_SINGLE 

◆ GpioIndex

enum GpioIndex
Enumerator
GPIO_INDEX0 
GPIO_INDEX1 
GPIO_INDEX2 
GPIO_INDEX3 
GPIO_INDEX4 
GPIO_INDEX5 
GPIO_INDEX6 
GPIO_INDEX7 
GPIO_INDEX8 
GPIO_INDEX9 
GPIO_INDEX_COUNT 

◆ LedIndex

enum LedIndex
Enumerator
LED0 
LED1 
LED2 
LED3 
LED_COUNT 
LED_RED 
LED_GREEN 

Function Documentation

◆ configure_board()

cs_ret_code_t configure_board ( boards_config_t p_config)

Configure board.

This function reads a board type id from UICR. This is a dedicated part in memory that is preserved across firmware updates and set only once in the factory. Using this board type id, the p_config parameter is filled with the relevant values. If the UICR has not been written before it will read 0xFFFFFFFF and a default board is chosen, see implementation.

Parameters
p_configconfiguration to be populated
Returns
error value (NRF_SUCCESS or NRF_ERROR_INVALID_PARAM)

◆ configure_board_from_hardware_board()

cs_ret_code_t configure_board_from_hardware_board ( uint32_t  hardwareBoard,
boards_config_t config 
)

◆ configure_board_from_uicr()

cs_ret_code_t configure_board_from_uicr ( const cs_uicr_data_t uicrData,
boards_config_t config 
)

◆ GetGpioPin()

uint8_t GetGpioPin ( uint8_t  major,
uint8_t  minor 
)

◆ GpioToAin()

uint8_t GpioToAin ( uint8_t  gpio)

◆ GpioToAinOnChipset()

uint8_t GpioToAinOnChipset ( uint8_t  gpio,
uint8_t  chipset 
)

Maps GPIO pins to AIN pins.

nRF52832

◆ init()

void init ( boards_config_t config)

initializes a board config to default values.