EFR32 Mighty Gecko 1 Software Documentation  efr32mg1-doc-5.1.2
BOARD module functions

Detailed Description

BOARD driver and support functions.

DO_NOT_INCLUDE_WITH_DOXYGEN

Functions

uint32_t BOARD_envSensEnable (bool enable)
 Enables or disables the environmental sensor group (Pressure, RH/Temp, UV/Ambient light and Hall sensors) More...
 
uint32_t BOARD_envSensEnableIRQ (bool enable)
 Enables or disables the environmental sensor group (Pressure, RH/Temp, UV/Ambient light and Hall sensors) GPIO interrupts. More...
 
void BOARD_flashDeepPowerDown (void)
 Puts the Flash chip in deep power down mode. More...
 
uint32_t BOARD_gasSensorEnable (bool enable)
 Enables or disables the Air Quality / Gas Sensor. More...
 
uint32_t BOARD_gasSensorEnableIRQ (bool enable)
 Enables or disables the Air Quality / Gas Sensor GPIO interrupt. More...
 
uint32_t BOARD_gasSensorWake (bool wake)
 Wakes up the Air Quality / Gas Sensor. More...
 
uint32_t BOARD_imuEnable (bool enable)
 Enables or disables the accelerometer and gyroscope sensor. More...
 
uint32_t BOARD_imuEnableIRQ (bool enable)
 Enables or disables the accelerometer and gyroscope GPIO interrupt. More...
 
uint32_t BOARD_init (void)
 Initializes the Thunderboard Sense board. More...
 
void BOARD_ledSet (uint8_t leds)
 Turns on or off the red and/or green LED. More...
 
uint32_t BOARD_micEnable (bool enable)
 Enables or disables the MEMS microphone. More...
 
uint32_t BOARD_picGetDeviceId (void)
 Reads the device ID of the IO expander. More...
 
uint32_t BOARD_picGetFwRevision (uint8_t *major, uint8_t *minor, uint8_t *patch)
 Reads the firmware revision of the IO expander. More...
 
uint8_t BOARD_picGetHwRevision (void)
 Reads the hardware revision of the IO expander. More...
 
uint32_t BOARD_picIntClear (uint8_t flags)
 Clears the interrupt status flags in the interrupt controller. More...
 
uint32_t BOARD_picIntGet (uint8_t *flags)
 Reads the interrupt status flags from the interrupt controller. More...
 
bool BOARD_picIsLegacyIntCtrl (void)
 Checks if the legacy interrupt control method should be used. More...
 
uint32_t BOARD_picReadReg (uint8_t reg, uint8_t *result)
 Reads a register in the IO expander. More...
 
uint32_t BOARD_picRegBitsSet (uint8_t addr, bool set, uint8_t bitMask)
 Sets the given bit(s) in a register in the IO expander. More...
 
uint32_t BOARD_picWriteReg (uint8_t reg, uint8_t value)
 Writes a register in the IO expander. More...
 
void BOARD_pushButtonEnableIRQ (bool enable)
 Enables or disables the pushbutton GPIO interrupt. More...
 
uint8_t BOARD_pushButtonGetState (void)
 Gets the state of the pushbuttons. More...
 
void BOARD_rgbledEnable (bool enable, uint8_t mask)
 Enables or disables the RGB LED power supply line. More...
 
void BOARD_rgbledPowerEnable (bool enable)
 Enables or disables the RGB LED power supply line. More...
 
void BOARD_rgbledSetColor (uint8_t red, uint8_t green, uint8_t blue)
 Sets the color of the RGB LEDs. The brightness of the LEDs is almost linear to the color value. More...
 
void BOARD_rgbledSetRawColor (uint16_t red, uint16_t green, uint16_t blue)
 Sets the raw color of the RGB LEDs. The brightness is non-linear function of the raw color value. More...
 

Function Documentation

uint32_t BOARD_envSensEnable ( bool  enable)

Enables or disables the environmental sensor group (Pressure, RH/Temp, UV/Ambient light and Hall sensors)

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 492 of file board.c.

References BOARD_PIC_REG_ENV_SENSOR_CTRL, and BOARD_picWriteReg().

Referenced by BMP_init(), SI1133_init(), SI7021_init(), SI7210_deInit(), and SI7210_init().

uint32_t BOARD_envSensEnableIRQ ( bool  enable)

Enables or disables the environmental sensor group (Pressure, RH/Temp, UV/Ambient light and Hall sensors) GPIO interrupts.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 514 of file board.c.

References BOARD_PIC_REG_INT_ENABLE, BOARD_PIC_REG_INT_ENABLE_UV_ALS, and BOARD_picRegBitsSet().

void BOARD_flashDeepPowerDown ( void  )

Puts the Flash chip in deep power down mode.

Returns
Returns none

Definition at line 219 of file board.c.

References BOARD_FLASH_PIN_SPI_CS, BOARD_FLASH_PORT_SPI_CS, BOARD_FLASH_USART, GPIO_PinModeSet(), GPIO_PinOutClear(), GPIO_PinOutSet(), gpioModeDisabled, USART_Reset(), USART_SpiTransfer(), and UTIL_delay().

uint32_t BOARD_gasSensorEnable ( bool  enable)

Enables or disables the Air Quality / Gas Sensor.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 557 of file board.c.

References BOARD_PIC_REG_CCS_CTRL, BOARD_PIC_REG_CCS_CTRL_EN, and BOARD_picWriteReg().

Referenced by CCS811_deInit(), and CCS811_init().

uint32_t BOARD_gasSensorEnableIRQ ( bool  enable)

Enables or disables the Air Quality / Gas Sensor GPIO interrupt.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 609 of file board.c.

References BOARD_PIC_REG_INT_ENABLE, BOARD_PIC_REG_INT_ENABLE_CCS811, and BOARD_picRegBitsSet().

uint32_t BOARD_gasSensorWake ( bool  wake)

Wakes up the Air Quality / Gas Sensor.

Parameters
[in]wakeSet true to wake up, false otherwise
Returns
Returns zero on OK, non-zero otherwise

Definition at line 583 of file board.c.

References BOARD_PIC_REG_CCS_CTRL, BOARD_PIC_REG_CCS_CTRL_EN, BOARD_PIC_REG_CCS_CTRL_WAKE, and BOARD_picWriteReg().

Referenced by CCS811_deInit(), CCS811_getMeasurement(), CCS811_getRawData(), CCS811_init(), CCS811_readMailbox(), CCS811_setEnvData(), CCS811_setMeasureMode(), and CCS811_softwareReset().

uint32_t BOARD_imuEnable ( bool  enable)

Enables or disables the accelerometer and gyroscope sensor.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 448 of file board.c.

References BOARD_PIC_REG_IMU_CTRL, and BOARD_picWriteReg().

Referenced by ICM20648_deInit(), and ICM20648_init().

uint32_t BOARD_imuEnableIRQ ( bool  enable)

Enables or disables the accelerometer and gyroscope GPIO interrupt.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 469 of file board.c.

References BOARD_PIC_REG_INT_ENABLE, BOARD_PIC_REG_INT_ENABLE_IMU, and BOARD_picRegBitsSet().

Referenced by IMU_config().

uint32_t BOARD_init ( void  )

Initializes the Thunderboard Sense board.

Returns
Returns zero on OK, non-zero otherwise

Push button config

PIC Config

Wait for IO-expander to boot up

PIC default register content

RGBLED / LED config

Definition at line 90 of file board.c.

References _TIMER_ROUTELOC0_CC0LOC_SHIFT, _TIMER_ROUTELOC0_CC1LOC_SHIFT, _TIMER_ROUTELOC0_CC2LOC_SHIFT, BOARD_BUTTON_LEFT_PIN, BOARD_BUTTON_LEFT_PORT, BOARD_BUTTON_RIGHT_PIN, BOARD_BUTTON_RIGHT_PORT, BOARD_ERROR_PIC_ID_MISMATCH, BOARD_OK, BOARD_PIC_DEVICE_ID, BOARD_PIC_INT_WAKE_PIN, BOARD_PIC_INT_WAKE_PORT, BOARD_PIC_NUM_APP_REGS, BOARD_picGetDeviceId(), BOARD_picGetFwRevision(), BOARD_picWriteReg(), BOARD_RGBLED_BLUE_CCLOC, BOARD_RGBLED_BLUE_PIN, BOARD_RGBLED_BLUE_PORT, BOARD_RGBLED_CMU_CLK, BOARD_RGBLED_GREEN_CCLOC, BOARD_RGBLED_GREEN_PIN, BOARD_RGBLED_GREEN_PORT, BOARD_RGBLED_RED_CCLOC, BOARD_RGBLED_RED_PIN, BOARD_RGBLED_RED_PORT, BOARD_RGBLED_TIMER, CMU_ClockEnable(), cmuClock_GPIO, cmuClock_PRS, TIMER_Init_TypeDef::debugRun, GPIO_IntConfig(), GPIO_PinModeSet(), gpioModeInput, gpioModePushPull, gpioModeWiredAnd, I2CSPM_Init(), I2CSPM_INIT_DEFAULT, TIMER_InitCC_TypeDef::mode, I2CSPM_Init_TypeDef::port, TIMER_Init_TypeDef::prescale, PRS, PRS_CH_CTRL_SIGSEL_GPIOPIN10, PRS_CH_CTRL_SOURCESEL_GPIOH, PRS_ROUTELOC0_CH0LOC_LOC6, PRS_ROUTEPEN_CH0PEN, PRS_SourceSignalSet(), prsEdgeOff, TIMER_TypeDef::ROUTELOC0, TIMER_TypeDef::ROUTEPEN, TIMER_Init(), TIMER_INIT_DEFAULT, TIMER_InitCC(), TIMER_INITCC_DEFAULT, TIMER_TopSet(), timerCCModePWM, timerPrescale2, and UTIL_delay().

void BOARD_ledSet ( uint8_t  leds)

Turns on or off the red and/or green LED.

Parameters
[in]ledsThe two LSB bits determine the state of the green and red LED. If the bit is 1 then the LED will be turned on.
Returns
None

Definition at line 343 of file board.c.

References BOARD_RGBLED_GREEN_PIN, BOARD_RGBLED_RED_PIN, BOARD_RGBLED_RED_PORT, BOARD_rgbledEnable(), BOARD_rgbledSetRawColor(), GPIO_PinOutClear(), and GPIO_PinOutSet().

Referenced by BOARD_rgbledSetRawColor().

uint32_t BOARD_micEnable ( bool  enable)

Enables or disables the MEMS microphone.

Parameters
[in]enableSet true to enable, false to disable
Returns
Returns zero on OK, non-zero otherwise

Definition at line 536 of file board.c.

References BOARD_PIC_REG_MIC_CTRL, and BOARD_picWriteReg().

Referenced by MIC_deInit(), and MIC_init().

uint32_t BOARD_picGetDeviceId ( void  )

Reads the device ID of the IO expander.

Returns
Returns the device ID read from the device

Definition at line 766 of file board.c.

References BOARD_PIC_REG_DEVICE_ID0, BOARD_PIC_REG_DEVICE_ID1, BOARD_PIC_REG_DEVICE_ID2, BOARD_PIC_REG_DEVICE_ID3, and BOARD_picReadReg().

Referenced by BOARD_init().

uint32_t BOARD_picGetFwRevision ( uint8_t *  major,
uint8_t *  minor,
uint8_t *  patch 
)

Reads the firmware revision of the IO expander.

Parameters
[out]majorThe major version number of the firmware
[out]minorThe minor version number of the firmware
[out]patchThe patch version number of the firmware
Returns
Returns zero on OK, non-zero otherwise

Definition at line 817 of file board.c.

References BOARD_OK, BOARD_PIC_INT_WAKE_PIN, BOARD_PIC_INT_WAKE_PORT, BOARD_PIC_REG_VERSION_MAJOR, BOARD_PIC_REG_VERSION_MINOR, BOARD_PIC_REG_VERSION_PATCH, GPIO_IntClear(), GPIO_IntDisable(), GPIO_IntEnable(), GPIO_PinOutClear(), and GPIO_PinOutSet().

Referenced by BOARD_init().

uint8_t BOARD_picGetHwRevision ( void  )

Reads the hardware revision of the IO expander.

Returns
Returns the HW revision the device

Definition at line 790 of file board.c.

References BOARD_PIC_REG_BOARD_REV, and BOARD_picReadReg().

uint32_t BOARD_picIntClear ( uint8_t  flags)

Clears the interrupt status flags in the interrupt controller.

Parameters
[out]flagsHolds the flags that indicate which events have taken place
Returns
Returns zero on OK, non-zero otherwise

Definition at line 652 of file board.c.

References BOARD_PIC_REG_INT_CLEAR, and BOARD_picWriteReg().

uint32_t BOARD_picIntGet ( uint8_t *  flags)

Reads the interrupt status flags from the interrupt controller.

Parameters
[out]flagsHolds the flags that indicate which events have taken place
Returns
Returns zero on OK, non-zero otherwise

Definition at line 631 of file board.c.

References BOARD_PIC_REG_INT_FLAG, and BOARD_picReadReg().

bool BOARD_picIsLegacyIntCtrl ( void  )

Checks if the legacy interrupt control method should be used.

Returns
Returns true if the legacy method should be used (before board rev A02)

Definition at line 857 of file board.c.

Referenced by IMU_clearDataReadyFlag(), and IMU_isDataReadyFlag().

uint32_t BOARD_picReadReg ( uint8_t  reg,
uint8_t *  result 
)

Reads a register in the IO expander.

Parameters
[in]regThe register address to read
[out]resultThe data read from the device
Returns
Returns zero on OK, non-zero otherwise

Definition at line 702 of file board.c.

Referenced by BOARD_picGetDeviceId(), BOARD_picGetHwRevision(), and BOARD_picIntGet().

uint32_t BOARD_picRegBitsSet ( uint8_t  addr,
bool  set,
uint8_t  bitMask 
)

Sets the given bit(s) in a register in the IO expander.

Parameters
[in]addrThe address of the register
[in]setSpecifies whether the bits selected by the mask should be set or cleared
[in]bitMaskThe mask specifies which bits should be changed
Returns
None

Definition at line 731 of file board.c.

References BOARD_OK.

Referenced by BOARD_envSensEnableIRQ(), BOARD_gasSensorEnableIRQ(), BOARD_imuEnableIRQ(), BOARD_rgbledEnable(), and BOARD_rgbledPowerEnable().

uint32_t BOARD_picWriteReg ( uint8_t  reg,
uint8_t  value 
)

Writes a register in the IO expander.

Parameters
[in]regThe register address to write
[in]valueThe data to write to the register
Returns
Returns zero on OK, non-zero otherwise

Definition at line 676 of file board.c.

Referenced by BOARD_envSensEnable(), BOARD_gasSensorEnable(), BOARD_gasSensorWake(), BOARD_imuEnable(), BOARD_init(), BOARD_micEnable(), BOARD_picIntClear(), IMU_clearDataReadyFlag(), and IMU_config().

void BOARD_pushButtonEnableIRQ ( bool  enable)

Enables or disables the pushbutton GPIO interrupt.

Parameters
[in]enableSet true to enable, false to disable the pushbutton interrupts
Returns
None

Definition at line 277 of file board.c.

References BOARD_BUTTON_LEFT_PIN, BOARD_BUTTON_PORT, BOARD_BUTTON_RIGHT_PIN, and GPIO_IntConfig().

uint8_t BOARD_pushButtonGetState ( void  )

Gets the state of the pushbuttons.

Returns
Returns the state of the buttons

Definition at line 252 of file board.c.

References BOARD_BUTTON_MASK, BOARD_BUTTON_PORT, BOARD_BUTTON_SHIFT, and GPIO_PortInGet().

void BOARD_rgbledEnable ( bool  enable,
uint8_t  mask 
)

Enables or disables the RGB LED power supply line.

Parameters
[in]enableSet true to enable, false to disable
[in]maskMask indicating which bits to modify
Returns
None

Definition at line 317 of file board.c.

References BOARD_PIC_REG_LED_CTRL, BOARD_PIC_REG_LED_CTRL_LED_MASK, BOARD_PIC_REG_LED_CTRL_LED_SHIFT, BOARD_picRegBitsSet(), and BOARD_rgbledPowerEnable().

Referenced by BOARD_ledSet().

void BOARD_rgbledPowerEnable ( bool  enable)

Enables or disables the RGB LED power supply line.

Parameters
[in]enableSet true to enable, false to disable
Returns
None

Definition at line 295 of file board.c.

References BOARD_PIC_REG_LED_CTRL, BOARD_PIC_REG_LED_CTRL_PWR_EN, and BOARD_picRegBitsSet().

Referenced by BOARD_rgbledEnable().

void BOARD_rgbledSetColor ( uint8_t  red,
uint8_t  green,
uint8_t  blue 
)

Sets the color of the RGB LEDs. The brightness of the LEDs is almost linear to the color value.

Parameters
[in]redAn 8-bit value, which determines the brightness of the red channel
[in]greenAn 8-bit value, which determines the brightness of the green channel
[in]blueAn 8-bit value, which determines the brightness of the blue channel
Returns
None

Definition at line 427 of file board.c.

References BOARD_rgbledSetRawColor().

void BOARD_rgbledSetRawColor ( uint16_t  red,
uint16_t  green,
uint16_t  blue 
)

Sets the raw color of the RGB LEDs. The brightness is non-linear function of the raw color value.

Parameters
[in]redA 16-bit value, which determines the PWM value of the red channel
[in]greenA 16-bit value, which determines the PWM value of the green channel
[in]blueA 16-bit value, which determines the PWM value of the blue channel
Returns
None

Definition at line 384 of file board.c.

References BOARD_ledSet(), TIMER_TypeDef::ROUTEPEN, TIMER_CompareBufSet(), TIMER_Enable(), TIMER_ROUTEPEN_CC0PEN, TIMER_ROUTEPEN_CC1PEN, and TIMER_ROUTEPEN_CC2PEN.

Referenced by BOARD_ledSet(), and BOARD_rgbledSetColor().