MultiTech / Mbed OS Dot-AT-Firmware

Fork of mDot_AT_firmware by MultiTech

Dot Library Not Included!

Because these example programs can be used for both mDot and xDot devices, the LoRa stack is not included. The libmDot library should be imported if building for mDot devices. The libxDot library should be imported if building for xDot devices. Check the commit messages of the Dot library version used to find the correct mbed-os version to use with it. The mbed-os version must match the version used in that version of Dot library or it will likely cause it to fail to compile or have unexpected problems while running.

Dot Library Version 3 Updates

Dot Library versions 3.x.x require a channel plan to be injected into the stack. The Dot-Examples and Dot-AT-Firmware do this by defining a macro called "CHANNEL_PLAN" that controls the channel plan that will be used in the examples. Available channel plans will be in the Dot Library repository in the plans folder.

Revision 20 and earlier of Dot-Examples and revision 15 and earlier of Dot-AT-Firmware should be used with Dot Library versions prior to 3.0.0.

Fota Library

Th Fota Library must be added to compile for mDot 3.1.0 with Fota support. Latest dev libraries and 3.2.0 release will include Fota with libmDot/libxDot.

AT Firmware Description

This AT Firmware is what ships on mDot and xDot devices. It provides an AT command interface for using the mDot or xDot for LoRa communication.

AT command documentation can be found on Multitech.com.

The firmware changelog can be found here. The library changelog can be found here.

Dot Libraries

Dot Library Limitations

The commit messages in libmDot-mbed5 and libmDot-dev-mbed5 specify the version of the Dot library the commit contains and the version of mbed-os it was compiled against. We recommend building your application with the version of mbed-os specified in the commit message of the version of the Dot library you're using. This will ensure that you don't run into any runtime issues caused by differences in the mbed-os versions.

Stable and development libraries are available for both mDot and xDot platforms. The library chosen must match the target platform. Compiling for the mDot platform with the xDot library or vice versa will not succeed.

mDot Library

Development library for mDot.

libmDot-dev

Stable library for mDot.

libmDot

xDot Library

Development library for xDot.

libxDot-dev

Stable library for xDot.

libxDot

Committer:
mfiore
Date:
Thu Jun 25 14:52:56 2015 +0000
Revision:
0:e2b8246361bc
Child:
1:e52ae6584f1c
initial commit, main, debug, version, wakeup, doc

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfiore 0:e2b8246361bc 1 #ifndef __WAKEUP_H__
mfiore 0:e2b8246361bc 2 #define __WAKEUP_H__
mfiore 0:e2b8246361bc 3
mfiore 0:e2b8246361bc 4 #include <inttypes.h>
mfiore 0:e2b8246361bc 5
mfiore 0:e2b8246361bc 6 uint32_t RTC_ReadBackupRegister(uint32_t RTC_BKP_DR);
mfiore 0:e2b8246361bc 7
mfiore 0:e2b8246361bc 8 void RTC_WriteBackupRegister(uint32_t RTC_BKP_DR, uint32_t Data);
mfiore 0:e2b8246361bc 9
mfiore 0:e2b8246361bc 10 static RTC_HandleTypeDef RtcHandle;
mfiore 0:e2b8246361bc 11
mfiore 0:e2b8246361bc 12 uint32_t wakeup_init(uint32_t seconds);
mfiore 0:e2b8246361bc 13
mfiore 0:e2b8246361bc 14 void wakeup_clear(void);
mfiore 0:e2b8246361bc 15
mfiore 0:e2b8246361bc 16
mfiore 0:e2b8246361bc 17 #ifndef TM_WATCHDOG_H
mfiore 0:e2b8246361bc 18 #define TM_WATCHDOG_H 110
mfiore 0:e2b8246361bc 19 /**
mfiore 0:e2b8246361bc 20 * * @addtogroup TM_STM32F4xx_Libraries
mfiore 0:e2b8246361bc 21 * * @{
mfiore 0:e2b8246361bc 22 * */
mfiore 0:e2b8246361bc 23
mfiore 0:e2b8246361bc 24 /**
mfiore 0:e2b8246361bc 25 * * @defgroup TM_WATCHDOG
mfiore 0:e2b8246361bc 26 * * @brief Independent Watchdog timer for STM32F4xx - http://stm32f4-discovery.com/2014/07/library-20-independent-watchdog-timer-on-stm32f4xx/
mfiore 0:e2b8246361bc 27 * * @{
mfiore 0:e2b8246361bc 28 * *
mfiore 0:e2b8246361bc 29 * * \par Changelog
mfiore 0:e2b8246361bc 30 * *
mfiore 0:e2b8246361bc 31 * @verbatim
mfiore 0:e2b8246361bc 32 * Version 1.1
mfiore 0:e2b8246361bc 33 * - March 10, 2015
mfiore 0:e2b8246361bc 34 * - Support for STD/HAL drivers
mfiore 0:e2b8246361bc 35 * Version 1.0
mfiore 0:e2b8246361bc 36 * - First release
mfiore 0:e2b8246361bc 37 * @endverbatim
mfiore 0:e2b8246361bc 38 * *
mfiore 0:e2b8246361bc 39 * * \par Dependencies
mfiore 0:e2b8246361bc 40 * *
mfiore 0:e2b8246361bc 41 * @verbatim
mfiore 0:e2b8246361bc 42 * - STM32F4xx
mfiore 0:e2b8246361bc 43 * - defines.h
mfiore 0:e2b8246361bc 44 * @endverbatim
mfiore 0:e2b8246361bc 45 * */
mfiore 0:e2b8246361bc 46
mfiore 0:e2b8246361bc 47 /**
mfiore 0:e2b8246361bc 48 * * @defgroup TM_WATCHDOG_Typedefs
mfiore 0:e2b8246361bc 49 * * @brief Library Typedefs
mfiore 0:e2b8246361bc 50 * * @{
mfiore 0:e2b8246361bc 51 * */
mfiore 0:e2b8246361bc 52
mfiore 0:e2b8246361bc 53 /**
mfiore 0:e2b8246361bc 54 * * @brief Watchdog timeout settings
mfiore 0:e2b8246361bc 55 * */
mfiore 0:e2b8246361bc 56 typedef enum {
mfiore 0:e2b8246361bc 57 TM_WATCHDOG_Timeout_5ms, /*!< System reset called every 5ms */
mfiore 0:e2b8246361bc 58 TM_WATCHDOG_Timeout_10ms, /*!< System reset called every 10ms */
mfiore 0:e2b8246361bc 59 TM_WATCHDOG_Timeout_15ms, /*!< System reset called every 15ms */
mfiore 0:e2b8246361bc 60 TM_WATCHDOG_Timeout_30ms, /*!< System reset called every 30ms */
mfiore 0:e2b8246361bc 61 TM_WATCHDOG_Timeout_60ms, /*!< System reset called every 60ms */
mfiore 0:e2b8246361bc 62 TM_WATCHDOG_Timeout_120ms, /*!< System reset called every 120ms */
mfiore 0:e2b8246361bc 63 TM_WATCHDOG_Timeout_250ms, /*!< System reset called every 250ms */
mfiore 0:e2b8246361bc 64 TM_WATCHDOG_Timeout_500ms, /*!< System reset called every 500ms */
mfiore 0:e2b8246361bc 65 TM_WATCHDOG_Timeout_1s, /*!< System reset called every 1s */
mfiore 0:e2b8246361bc 66 TM_WATCHDOG_Timeout_2s, /*!< System reset called every 2s */
mfiore 0:e2b8246361bc 67 TM_WATCHDOG_Timeout_4s /*!< System reset called every 4s */
mfiore 0:e2b8246361bc 68 } TM_WATCHDOG_Timeout_t;
mfiore 0:e2b8246361bc 69
mfiore 0:e2b8246361bc 70 /**
mfiore 0:e2b8246361bc 71 * * @}
mfiore 0:e2b8246361bc 72 * */
mfiore 0:e2b8246361bc 73
mfiore 0:e2b8246361bc 74 /**
mfiore 0:e2b8246361bc 75 * * @defgroup TM_WATCHDOG_Functions
mfiore 0:e2b8246361bc 76 * * @brief Library Functions
mfiore 0:e2b8246361bc 77 * * @{
mfiore 0:e2b8246361bc 78 * */
mfiore 0:e2b8246361bc 79
mfiore 0:e2b8246361bc 80 /**
mfiore 0:e2b8246361bc 81 * * @brief Initialize Watchdog timer
mfiore 0:e2b8246361bc 82 * * @note After you initialize it, you can't disable it unless reset occur.
mfiore 0:e2b8246361bc 83 * * @param timeout. Timeout value when watchdog reset happen if not reset by user.
mfiore 0:e2b8246361bc 84 * * This parameter can be a value of @ref TM_WATCHDOG_Timeout_t enumeration
mfiore 0:e2b8246361bc 85 * * @retval Value if system was reset because of watchdog timer
mfiore 0:e2b8246361bc 86 * * - 1: Reset happen because of watchdog
mfiore 0:e2b8246361bc 87 * * - 0: Otherwise
mfiore 0:e2b8246361bc 88 * *
mfiore 0:e2b8246361bc 89 * */
mfiore 0:e2b8246361bc 90 uint8_t TM_WATCHDOG_Init(uint16_t reloa);
mfiore 0:e2b8246361bc 91
mfiore 0:e2b8246361bc 92 /**
mfiore 0:e2b8246361bc 93 * * @brief Reset Watchdog timer
mfiore 0:e2b8246361bc 94 * * @note This function have to be called periodically to reset watchdog timer, or your system will reset
mfiore 0:e2b8246361bc 95 * * @param None
mfiore 0:e2b8246361bc 96 * * @retval None
mfiore 0:e2b8246361bc 97 * */
mfiore 0:e2b8246361bc 98 void TM_WATCHDOG_Reset(void);
mfiore 0:e2b8246361bc 99
mfiore 0:e2b8246361bc 100 /**
mfiore 0:e2b8246361bc 101 * * @}
mfiore 0:e2b8246361bc 102 * */
mfiore 0:e2b8246361bc 103
mfiore 0:e2b8246361bc 104 /**
mfiore 0:e2b8246361bc 105 * * @}
mfiore 0:e2b8246361bc 106 * */
mfiore 0:e2b8246361bc 107
mfiore 0:e2b8246361bc 108 /**
mfiore 0:e2b8246361bc 109 * * @}
mfiore 0:e2b8246361bc 110 * */
mfiore 0:e2b8246361bc 111
mfiore 0:e2b8246361bc 112 #endif
mfiore 0:e2b8246361bc 113
mfiore 0:e2b8246361bc 114 #endif // __WAKEUP_H__