mQ Branch for NA mote testing

Dependencies:   LoRaWAN-lib SX1272Lib-mQ lib_gps lib_mma8451q lib_mpl3115a2 mbed

Fork of LoRaWAN-NAMote72-Application-Demo by Semtech

Committer:
Benedict_Tizzano
Date:
Fri Mar 30 19:02:45 2018 +0000
Revision:
19:e136bd75eabd
Parent:
18:18408c3c2d0c
mQ Branch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ubhat 0:69f2e28d12c1 1 /*
ubhat 0:69f2e28d12c1 2 / _____) _ | |
ubhat 0:69f2e28d12c1 3 ( (____ _____ ____ _| |_ _____ ____| |__
ubhat 0:69f2e28d12c1 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
ubhat 0:69f2e28d12c1 5 _____) ) ____| | | || |_| ____( (___| | | |
ubhat 0:69f2e28d12c1 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
ubhat 0:69f2e28d12c1 7 (C)2015 Semtech
ubhat 0:69f2e28d12c1 8
ubhat 0:69f2e28d12c1 9 Description: Target board general functions implementation
ubhat 0:69f2e28d12c1 10
ubhat 0:69f2e28d12c1 11 License: Revised BSD License, see LICENSE.TXT file include in the project
ubhat 0:69f2e28d12c1 12
ubhat 0:69f2e28d12c1 13 Maintainer: Miguel Luis and Gregory Cristian
ubhat 0:69f2e28d12c1 14 */
ubhat 0:69f2e28d12c1 15 #ifndef __BOARD_H__
ubhat 0:69f2e28d12c1 16 #define __BOARD_H__
ubhat 0:69f2e28d12c1 17
ubhat 0:69f2e28d12c1 18 #include "Config.h"
ubhat 0:69f2e28d12c1 19 #include "mbed.h"
ubhat 0:69f2e28d12c1 20 #include "system/timer.h"
ubhat 0:69f2e28d12c1 21 #include "debug.h"
ubhat 0:69f2e28d12c1 22 #include "system/utilities.h"
ubhat 0:69f2e28d12c1 23 #include "sx1272-hal.h"
ubhat 0:69f2e28d12c1 24 #include "gps.h"
ubhat 0:69f2e28d12c1 25 #include "mpl3115a2.h"
ubhat 0:69f2e28d12c1 26 #include "mma8451q.h"
ubhat 0:69f2e28d12c1 27
mluis 18:18408c3c2d0c 28 #define LOW_BAT_THRESHOLD 3450 // mV
ubhat 0:69f2e28d12c1 29
ubhat 0:69f2e28d12c1 30 extern DigitalOut RedLed;
ubhat 0:69f2e28d12c1 31 extern DigitalOut GreenLed;
ubhat 0:69f2e28d12c1 32 extern DigitalOut YellowLed;
ubhat 0:69f2e28d12c1 33 extern DigitalOut UsrLed;
ubhat 0:69f2e28d12c1 34 extern GPS Gps;
ubhat 0:69f2e28d12c1 35 extern MPL3115A2 Mpl3115a2;
ubhat 0:69f2e28d12c1 36 extern MMA8451Q Mma8451q;
ubhat 0:69f2e28d12c1 37
ubhat 6:f8194e691dd4 38 extern DigitalIn PC0; // Used for Push button application demo
ubhat 6:f8194e691dd4 39
ubhat 0:69f2e28d12c1 40 extern SX1272MB2xAS Radio;
ubhat 0:69f2e28d12c1 41
mluis 18:18408c3c2d0c 42 /*!
mluis 18:18408c3c2d0c 43 * Board versions
mluis 18:18408c3c2d0c 44 */
ubhat 0:69f2e28d12c1 45 typedef enum
ubhat 0:69f2e28d12c1 46 {
mluis 18:18408c3c2d0c 47 BOARD_VERSION_NONE = 0,
mluis 18:18408c3c2d0c 48 BOARD_VERSION_2,
mluis 18:18408c3c2d0c 49 BOARD_VERSION_3,
mluis 18:18408c3c2d0c 50 }BoardVersion_t;
ubhat 0:69f2e28d12c1 51
mluis 18:18408c3c2d0c 52 /*!
mluis 18:18408c3c2d0c 53 * \brief Disable interrupts
mluis 18:18408c3c2d0c 54 *
mluis 18:18408c3c2d0c 55 * \remark IRQ nesting is managed
mluis 18:18408c3c2d0c 56 */
mluis 18:18408c3c2d0c 57 void BoardDisableIrq( void );
mluis 18:18408c3c2d0c 58
mluis 18:18408c3c2d0c 59 /*!
mluis 18:18408c3c2d0c 60 * \brief Enable interrupts
mluis 18:18408c3c2d0c 61 *
mluis 18:18408c3c2d0c 62 * \remark IRQ nesting is managed
mluis 18:18408c3c2d0c 63 */
mluis 18:18408c3c2d0c 64 void BoardEnableIrq( void );
ubhat 0:69f2e28d12c1 65
ubhat 0:69f2e28d12c1 66 /*!
ubhat 0:69f2e28d12c1 67 * \brief Initializes the target board peripherals.
ubhat 0:69f2e28d12c1 68 */
ubhat 0:69f2e28d12c1 69 void BoardInit( void );
ubhat 0:69f2e28d12c1 70
ubhat 0:69f2e28d12c1 71 /*!
mluis 18:18408c3c2d0c 72 * \brief Measure the Battery voltage
ubhat 0:69f2e28d12c1 73 *
mluis 18:18408c3c2d0c 74 * \retval value battery voltage in millivolts
mluis 18:18408c3c2d0c 75 */
mluis 18:18408c3c2d0c 76 uint32_t BoardGetBatteryVoltage( void );
mluis 18:18408c3c2d0c 77
mluis 18:18408c3c2d0c 78 /*!
mluis 18:18408c3c2d0c 79 * \brief Get the current battery level
mluis 18:18408c3c2d0c 80 *
mluis 18:18408c3c2d0c 81 * \retval value battery level [ 0: USB,
mluis 18:18408c3c2d0c 82 * 1: Min level,
mluis 18:18408c3c2d0c 83 * x: level
mluis 18:18408c3c2d0c 84 * 254: fully charged,
mluis 18:18408c3c2d0c 85 * 255: Error]
ubhat 0:69f2e28d12c1 86 */
ubhat 0:69f2e28d12c1 87 uint8_t BoardGetBatteryLevel( void );
ubhat 0:69f2e28d12c1 88
ubhat 0:69f2e28d12c1 89 /*!
ubhat 0:69f2e28d12c1 90 * Returns a pseudo random seed generated using the MCU Unique ID
ubhat 0:69f2e28d12c1 91 *
ubhat 0:69f2e28d12c1 92 * \retval seed Generated pseudo random seed
ubhat 0:69f2e28d12c1 93 */
ubhat 0:69f2e28d12c1 94 uint32_t BoardGetRandomSeed( void );
ubhat 0:69f2e28d12c1 95
ubhat 0:69f2e28d12c1 96 /*!
mluis 18:18408c3c2d0c 97 * \brief Gets the board 64 bits unique ID
mluis 18:18408c3c2d0c 98 *
mluis 18:18408c3c2d0c 99 * \param [IN] id Pointer to an array that will contain the Unique ID
mluis 18:18408c3c2d0c 100 */
mluis 18:18408c3c2d0c 101 void BoardGetUniqueId( uint8_t *id );
mluis 18:18408c3c2d0c 102
mluis 18:18408c3c2d0c 103 /*!
mluis 18:18408c3c2d0c 104 * \brief Get the board version
mluis 18:18408c3c2d0c 105 *
mluis 18:18408c3c2d0c 106 * \retval value Version [0: MOTE_VERSION_NONE,
mluis 18:18408c3c2d0c 107 * 1: MOTE_VERSION_2,
mluis 18:18408c3c2d0c 108 * 2: MOTE_VERSION_3]
mluis 18:18408c3c2d0c 109 */
mluis 18:18408c3c2d0c 110 BoardVersion_t BoardGetVersion( void );
mluis 18:18408c3c2d0c 111
mluis 18:18408c3c2d0c 112 /*!
ubhat 0:69f2e28d12c1 113 * \brief Generates Lower 32 bits of DEVEUI using 96 bits unique device ID
ubhat 0:69f2e28d12c1 114 *
ubhat 0:69f2e28d12c1 115 * \param [IN] id Pointer to an array that will contain the Unique ID
ubhat 0:69f2e28d12c1 116 */
ubhat 0:69f2e28d12c1 117 void BoardGetDevEUI( uint8_t *id );
ubhat 0:69f2e28d12c1 118
ubhat 0:69f2e28d12c1 119 #endif // __BOARD_H__