board.h File Reference

Common board specific configuration for the Particle Mesh. More...

Detailed Description

Common board specific configuration for the Particle Mesh.

Author
Alexandre Abadie alexa.nosp@m.ndre.nosp@m..abad.nosp@m.ie@i.nosp@m.nria..nosp@m.fr

Definition in file board.h.

#include "cpu.h"
#include "board_common.h"
+ Include dependency graph for board.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Bootloader configuration options

#define PARTICLE_MONOFIRMWARE
 Build a firmware suitable for the Particle bootloader. More...
 
#define PARTICLE_MONOFIRMWARE_CHECKSUMLIMIT
 Limit Particle bootloader checksumming to the binary start. More...
 
#define PARTICLE_PLATFORM_ID
 Platform ID of the board for the Particle bootloader. More...
 

LED pin configuration

#define LED0_PIN   GPIO_PIN(0, 13)
 
#define LED1_PIN   GPIO_PIN(0, 14)
 
#define LED2_PIN   GPIO_PIN(0, 15)
 
#define LED_PORT   (NRF_P0)
 
#define LED0_MASK   (1 << 13)
 
#define LED1_MASK   (1 << 14)
 
#define LED2_MASK   (1 << 15)
 
#define LED_MASK   (LED0_MASK | LED1_MASK | LED2_MASK)
 
#define LED0_ON   (LED_PORT->OUTCLR = LED0_MASK)
 
#define LED0_OFF   (LED_PORT->OUTSET = LED0_MASK)
 
#define LED0_TOGGLE   (LED_PORT->OUT ^= LED0_MASK)
 
#define LED1_ON   (LED_PORT->OUTCLR = LED1_MASK)
 
#define LED1_OFF   (LED_PORT->OUTSET = LED1_MASK)
 
#define LED1_TOGGLE   (LED_PORT->OUT ^= LED1_MASK)
 
#define LED2_ON   (LED_PORT->OUTCLR = LED2_MASK)
 
#define LED2_OFF   (LED_PORT->OUTSET = LED2_MASK)
 
#define LED2_TOGGLE   (LED_PORT->OUT ^= LED2_MASK)
 

Button pin configuration

#define BTN0_PIN   GPIO_PIN(0, 11)
 
#define BTN0_MODE   GPIO_IN_PU
 

Antenna selection configuration

#define VCTL1_PIN   GPIO_PIN(0, 24)
 The GPIO pin used to drive the VCTL1 pin of antenna switch. More...
 
#define VCTL2_PIN   GPIO_PIN(0, 25)
 The GPIO pin used to drive the VCTL2 pin of antenna switch. More...
 
enum  board_nrfantenna_selection { BOARD_NRFANTENNA_BUILTIN , BOARD_NRFANTENNA_EXTERNAL }
 Choices in antenna outputs for the board's nRF radio. More...
 
void board_nrfantenna_select (enum board_nrfantenna_selection choice)
 Antenna output selection. More...
 

Macro Definition Documentation

◆ PARTICLE_MONOFIRMWARE

#define PARTICLE_MONOFIRMWARE

Build a firmware suitable for the Particle bootloader.

If this is defined, additional metadata about the firmware is included in the firmware (called the module_info in Particle), and additional code is inserted in board setup.

Do not define this manually; instead, set PARTICLE_MONOFIRMWARE=1 as an variable in the build scripts like BOARD is defined, and the particle common make file defines it and configures suitable postprocessing of the binary.

See also
Particle Mesh common

Definition at line 50 of file board.h.

◆ PARTICLE_MONOFIRMWARE_CHECKSUMLIMIT

#define PARTICLE_MONOFIRMWARE_CHECKSUMLIMIT

Limit Particle bootloader checksumming to the binary start.

If this define is set in the Makefile, the binary size announced to the bootloader is limited to the reset vector and the firmware metadata, and only that part is checksummed.

This is useful when Flash page driver is used, as otherwise the firmware's writes on itself would invalidate its checksum.

See also
Particle Mesh common

Definition at line 65 of file board.h.

◆ PARTICLE_PLATFORM_ID

#define PARTICLE_PLATFORM_ID

Platform ID of the board for the Particle bootloader.

This is set by the individual board's build configuration, and gets used when building with PARTICLE_MONOFIRMWARE; then, it is put into the module information for the board bootloader to verify that the firmware was built for the right device.

The individual values are documented in the Particle DeviceOS source code in build/platform-id.mk.

Definition at line 79 of file board.h.

◆ VCTL1_PIN

#define VCTL1_PIN   GPIO_PIN(0, 24)

The GPIO pin used to drive the VCTL1 pin of antenna switch.

Rather than actuating this directly, consider using the board_nrfantenna_select function.

Definition at line 151 of file board.h.

◆ VCTL2_PIN

#define VCTL2_PIN   GPIO_PIN(0, 25)

The GPIO pin used to drive the VCTL2 pin of antenna switch.

This definition is left out for boards whose VCTL2 is driven by an inverter from VCTL1.

Rather than actuating this directly, consider using the board_nrfantenna_select function.

Definition at line 160 of file board.h.

Enumeration Type Documentation

◆ board_nrfantenna_selection

Choices in antenna outputs for the board's nRF radio.

See also
board_nrfantenna_select
Enumerator
BOARD_NRFANTENNA_BUILTIN 

The board's built-in antenna.

BOARD_NRFANTENNA_EXTERNAL 

The board's uFL connector.

Definition at line 127 of file board.h.

Function Documentation

◆ board_nrfantenna_select()

void board_nrfantenna_select ( enum board_nrfantenna_selection  choice)

Antenna output selection.

Drive the on-board antenna switch to connect the nRF radio to a given choice of antenna output.

This can be called to change the antenna selection at runtime; for the default configuration that gets set during board initialization, see Particle Mesh common.