LR Initial Publish
Dependencies: X_NUCLEO_IKS01A2 driver_mbed_TH02 mbed LoRaWAN-lib-v1_0_1 SX1272Lib
Fork of Training-Aug2018-SX1272-X-NUCLEO-IKS01A2 by
Diff: board/board.h
- Revision:
- 0:6cc76d70e2a1
- Child:
- 1:428dbf097fe6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/board/board.h Thu Apr 06 21:59:50 2017 +0000 @@ -0,0 +1,88 @@ +/* + / _____) _ | | +( (____ _____ ____ _| |_ _____ ____| |__ + \____ \| ___ | (_ _) ___ |/ ___) _ \ + _____) ) ____| | | || |_| ____( (___| | | | +(______/|_____)_|_|_| \__)_____)\____)_| |_| + (C)2015 Semtech + +Description: Target board general functions implementation + +License: Revised BSD License, see LICENSE.TXT file include in the project + +Maintainer: Miguel Luis and Gregory Cristian +*/ +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include "Config.h" +#include "mbed.h" +#include "system/timer.h" +#include "debug.h" +#include "system/utilities.h" +#include "sx1272-hal.h" + +#ifdef USE_IKS01A1_SENSOR +#include "x_nucleo_iks01a1.h" +#endif + +/*! + * Unique Devices IDs register set ( STM32L1xxx ) + */ +#define ID1 ( 0x1FF800D0 ) +#define ID2 ( 0x1FF800D4 ) +#define ID3 ( 0x1FF800E4 ) + +#define LOW_BAT_THRESHOLD 3.45 +#define AIN_VREF 3.3 // STM32 internal refernce +#define AIN_VBAT_DIV 2 // Resistor divider + +extern SX1272MB2xAS Radio; + +extern DigitalIn UsrButton; + +extern AnalogOut UsrLED; + +#ifdef USE_IKS01A1_SENSOR +extern X_NUCLEO_IKS01A1 *mems_expansion_board; +extern MotionSensor *accelerometer; +extern HumiditySensor *humidity_sensor; +extern PressureSensor *pressure_sensor; +extern TempSensor *temp_sensor1; +extern TempSensor *temp_sensor2; +#endif + +/*! + * \brief Initializes the target board peripherals. + */ +void BoardInit( void ); + +/*! + * \brief Measure the Battery level + * + * \retval value battery level ( 0: very low, 254: fully charged ) + */ +uint8_t BoardGetBatteryLevel( void ); + +/*! + * Returns a pseudo random seed generated using the MCU Unique ID + * + * \retval seed Generated pseudo random seed + */ +uint32_t BoardGetRandomSeed( void ); + +/*! + * \brief Generates Lower 32 bits of DEVEUI using 96 bits unique device ID + * + * \param [IN] id Pointer to an array that will contain the Unique ID + */ +void BoardGetDevEUI( uint8_t *id ); + +/*! + * \brief Gets the board 64 bits unique ID + * + * \param [IN] id Pointer to an array that will contain the Unique ID + */ +void BoardGetUniqueId( uint8_t *id ); + +#endif // __BOARD_H__