Easily add all supported connectivity methods to your mbed OS project

Dependencies:   type-yd-driver

Committer:
MACRUM
Date:
Wed Jul 12 10:52:58 2017 +0000
Revision:
0:615f90842ce8
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:615f90842ce8 1 /*
MACRUM 0:615f90842ce8 2 * Copyright (c) 2012, STMicroelectronics.
MACRUM 0:615f90842ce8 3 * All rights reserved.
MACRUM 0:615f90842ce8 4 *
MACRUM 0:615f90842ce8 5 * Redistribution and use in source and binary forms, with or without
MACRUM 0:615f90842ce8 6 * modification, are permitted provided that the following conditions
MACRUM 0:615f90842ce8 7 * are met:
MACRUM 0:615f90842ce8 8 * 1. Redistributions of source code must retain the above copyright
MACRUM 0:615f90842ce8 9 * notice, this list of conditions and the following disclaimer.
MACRUM 0:615f90842ce8 10 * 2. Redistributions in binary form must reproduce the above copyright
MACRUM 0:615f90842ce8 11 * notice, this list of conditions and the following disclaimer in the
MACRUM 0:615f90842ce8 12 * documentation and/or other materials provided with the distribution.
MACRUM 0:615f90842ce8 13 * 3. Neither the name of the Institute nor the names of its contributors
MACRUM 0:615f90842ce8 14 * may be used to endorse or promote products derived from this software
MACRUM 0:615f90842ce8 15 * without specific prior written permission.
MACRUM 0:615f90842ce8 16 *
MACRUM 0:615f90842ce8 17 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
MACRUM 0:615f90842ce8 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
MACRUM 0:615f90842ce8 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
MACRUM 0:615f90842ce8 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
MACRUM 0:615f90842ce8 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
MACRUM 0:615f90842ce8 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
MACRUM 0:615f90842ce8 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
MACRUM 0:615f90842ce8 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
MACRUM 0:615f90842ce8 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
MACRUM 0:615f90842ce8 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
MACRUM 0:615f90842ce8 27 * SUCH DAMAGE.
MACRUM 0:615f90842ce8 28 *
MACRUM 0:615f90842ce8 29 * This file is part of the Contiki operating system.
MACRUM 0:615f90842ce8 30 *
MACRUM 0:615f90842ce8 31 */
MACRUM 0:615f90842ce8 32 /*---------------------------------------------------------------------------*/
MACRUM 0:615f90842ce8 33 #ifndef __SPIRIT_H__
MACRUM 0:615f90842ce8 34 #define __SPIRIT_H__
MACRUM 0:615f90842ce8 35 /*---------------------------------------------------------------------------*/
MACRUM 0:615f90842ce8 36 #include "radio.h"
MACRUM 0:615f90842ce8 37 #include "SPIRIT_Config.h"
MACRUM 0:615f90842ce8 38 #include "spirit1-config.h"
MACRUM 0:615f90842ce8 39 //#include "spirit1_appli.h"
MACRUM 0:615f90842ce8 40 #include "spirit1-const.h"
MACRUM 0:615f90842ce8 41 /*---------------------------------------------------------------------------*/
MACRUM 0:615f90842ce8 42 extern const struct radio_driver spirit_radio_driver;
MACRUM 0:615f90842ce8 43 void spirit1_interrupt_callback(void);
MACRUM 0:615f90842ce8 44
MACRUM 0:615f90842ce8 45 /* exported from spirit1appli.h */
MACRUM 0:615f90842ce8 46
MACRUM 0:615f90842ce8 47 #include "radio_shield_config.h"
MACRUM 0:615f90842ce8 48 #include "MCU_Interface.h"
MACRUM 0:615f90842ce8 49 #include "SPIRIT_Config.h"
MACRUM 0:615f90842ce8 50 // betzw - WAS: #include "SPIRIT1_Util.h"
MACRUM 0:615f90842ce8 51
MACRUM 0:615f90842ce8 52
MACRUM 0:615f90842ce8 53 #if defined(X_NUCLEO_IDS01A3)
MACRUM 0:615f90842ce8 54 #define USE_SPIRIT1_433MHz
MACRUM 0:615f90842ce8 55 #elif defined(X_NUCLEO_IDS01A4)
MACRUM 0:615f90842ce8 56 #define USE_SPIRIT1_868MHz
MACRUM 0:615f90842ce8 57 #elif defined(X_NUCLEO_IDS01A5)
MACRUM 0:615f90842ce8 58 #define USE_SPIRIT1_915MHz
MACRUM 0:615f90842ce8 59 #else
MACRUM 0:615f90842ce8 60 #error SPIRIT1 Nucleo Shield undefined or unsupported
MACRUM 0:615f90842ce8 61 #endif
MACRUM 0:615f90842ce8 62
MACRUM 0:615f90842ce8 63 /* Uncomment the Link Layer features to be used */
MACRUM 0:615f90842ce8 64 // #define USE_AUTO_ACK
MACRUM 0:615f90842ce8 65 // #define USE_AUTO_ACK_PIGGYBACKING
MACRUM 0:615f90842ce8 66 // #define USE_AUTO_RETRANSMISSION
MACRUM 0:615f90842ce8 67
MACRUM 0:615f90842ce8 68 #if defined(USE_AUTO_ACK)&& defined(USE_AUTO_ACK_PIGGYBACKING)&& defined(USE_AUTO_RETRANSMISSION)
MACRUM 0:615f90842ce8 69 #define USE_STack_PROTOCOL
MACRUM 0:615f90842ce8 70
MACRUM 0:615f90842ce8 71 /* LLP configuration parameters */
MACRUM 0:615f90842ce8 72 #define EN_AUTOACK S_ENABLE
MACRUM 0:615f90842ce8 73 #define EN_PIGGYBACKING S_ENABLE
MACRUM 0:615f90842ce8 74 #define MAX_RETRANSMISSIONS PKT_N_RETX_2
MACRUM 0:615f90842ce8 75
MACRUM 0:615f90842ce8 76 #else
MACRUM 0:615f90842ce8 77 #define USE_BASIC_PROTOCOL
MACRUM 0:615f90842ce8 78
MACRUM 0:615f90842ce8 79 #endif
MACRUM 0:615f90842ce8 80
MACRUM 0:615f90842ce8 81 /* Uncomment the system Operating mode */
MACRUM 0:615f90842ce8 82 //#define USE_LOW_POWER_MODE
MACRUM 0:615f90842ce8 83
MACRUM 0:615f90842ce8 84 #if defined (USE_LOW_POWER_MODE)
MACRUM 0:615f90842ce8 85 #define LPM_ENABLE
MACRUM 0:615f90842ce8 86 #define MCU_STOP_MODE
MACRUM 0:615f90842ce8 87 //#define MCU_SLEEP_MODE
MACRUM 0:615f90842ce8 88 //#define RF_STANDBY
MACRUM 0:615f90842ce8 89 #endif
MACRUM 0:615f90842ce8 90
MACRUM 0:615f90842ce8 91
MACRUM 0:615f90842ce8 92 /* Exported constants --------------------------------------------------------*/
MACRUM 0:615f90842ce8 93
MACRUM 0:615f90842ce8 94 /* Radio configuration parameters */
MACRUM 0:615f90842ce8 95 #define XTAL_OFFSET_PPM 0
MACRUM 0:615f90842ce8 96 #define INFINITE_TIMEOUT 0.0
MACRUM 0:615f90842ce8 97
MACRUM 0:615f90842ce8 98 #ifdef USE_SPIRIT1_433MHz
MACRUM 0:615f90842ce8 99 #define BASE_FREQUENCY 433.0e6
MACRUM 0:615f90842ce8 100 #endif
MACRUM 0:615f90842ce8 101
MACRUM 0:615f90842ce8 102 #ifdef USE_SPIRIT1_868MHz
MACRUM 0:615f90842ce8 103 #define BASE_FREQUENCY 868.0e6
MACRUM 0:615f90842ce8 104 #endif
MACRUM 0:615f90842ce8 105
MACRUM 0:615f90842ce8 106 #ifdef USE_SPIRIT1_915MHz
MACRUM 0:615f90842ce8 107 //#define BASE_FREQUENCY 915.0e6
MACRUM 0:615f90842ce8 108 #define BASE_FREQUENCY 902.0e6
MACRUM 0:615f90842ce8 109 #endif
MACRUM 0:615f90842ce8 110
MACRUM 0:615f90842ce8 111
MACRUM 0:615f90842ce8 112 /* Addresses configuration parameters */
MACRUM 0:615f90842ce8 113 #define EN_FILT_MY_ADDRESS S_DISABLE
MACRUM 0:615f90842ce8 114 #define MY_ADDRESS 0x24
MACRUM 0:615f90842ce8 115 #define EN_FILT_MULTICAST_ADDRESS S_DISABLE
MACRUM 0:615f90842ce8 116 #define MULTICAST_ADDRESS 0xEE
MACRUM 0:615f90842ce8 117 #define EN_FILT_BROADCAST_ADDRESS S_DISABLE
MACRUM 0:615f90842ce8 118 #define BROADCAST_ADDRESS 0xFF
MACRUM 0:615f90842ce8 119 #define DESTINATION_ADDRESS 0x44
MACRUM 0:615f90842ce8 120 #define EN_FILT_SOURCE_ADDRESS S_DISABLE
MACRUM 0:615f90842ce8 121 #define SOURCE_ADDR_MASK 0xf0
MACRUM 0:615f90842ce8 122 #define SOURCE_ADDR_REF 0x37
MACRUM 0:615f90842ce8 123
MACRUM 0:615f90842ce8 124 #define APPLI_CMD 0x11
MACRUM 0:615f90842ce8 125 #define NWK_CMD 0x22
MACRUM 0:615f90842ce8 126 #define LED_TOGGLE 0xff
MACRUM 0:615f90842ce8 127 #define ACK_OK 0x01
MACRUM 0:615f90842ce8 128 #define MAX_BUFFER_LEN 96
MACRUM 0:615f90842ce8 129 #define TIME_TO_EXIT_RX 3000
MACRUM 0:615f90842ce8 130 #define DELAY_RX_LED_TOGGLE 200
MACRUM 0:615f90842ce8 131 #define DELAY_TX_LED_GLOW 1000
MACRUM 0:615f90842ce8 132 #define LPM_WAKEUP_TIME 100
MACRUM 0:615f90842ce8 133 #define DATA_SEND_TIME 30
MACRUM 0:615f90842ce8 134
MACRUM 0:615f90842ce8 135 #define PREAMBLE_LENGTH PKT_PREAMBLE_LENGTH_04BYTES
MACRUM 0:615f90842ce8 136 #define SYNC_LENGTH PKT_SYNC_LENGTH_4BYTES
MACRUM 0:615f90842ce8 137 #define CONTROL_LENGTH PKT_CONTROL_LENGTH_0BYTES
MACRUM 0:615f90842ce8 138 #define EN_ADDRESS S_DISABLE
MACRUM 0:615f90842ce8 139 #define EN_FEC S_DISABLE
MACRUM 0:615f90842ce8 140 #define CHANNEL_NUMBER 1 // betzw - WAS: 0
MACRUM 0:615f90842ce8 141 #define LENGTH_TYPE PKT_LENGTH_VAR
MACRUM 0:615f90842ce8 142 #define POWER_INDEX 7
MACRUM 0:615f90842ce8 143 #define RECEIVE_TIMEOUT 2000.0 /*change the value for required timeout period*/
MACRUM 0:615f90842ce8 144 #define RSSI_THRESHOLD -120
MACRUM 0:615f90842ce8 145
MACRUM 0:615f90842ce8 146
MACRUM 0:615f90842ce8 147
MACRUM 0:615f90842ce8 148 #define POWER_DBM 11.6
MACRUM 0:615f90842ce8 149 #define CHANNEL_SPACE 100e3
MACRUM 0:615f90842ce8 150 #define FREQ_DEVIATION 127e3
MACRUM 0:615f90842ce8 151 #define BANDWIDTH 540.0e3
MACRUM 0:615f90842ce8 152 #define MODULATION_SELECT GFSK_BT1
MACRUM 0:615f90842ce8 153 #define DATARATE 250000
MACRUM 0:615f90842ce8 154 #define XTAL_OFFSET_PPM 0
MACRUM 0:615f90842ce8 155 #define SYNC_WORD 0x88888888
MACRUM 0:615f90842ce8 156 #define LENGTH_WIDTH 8 // betzw - NOTE: only 255 bytes for payload!!!
MACRUM 0:615f90842ce8 157 #define CRC_MODE PKT_CRC_MODE_16BITS_2
MACRUM 0:615f90842ce8 158 #define EN_WHITENING S_DISABLE
MACRUM 0:615f90842ce8 159 #define INFINITE_TIMEOUT 0.0
MACRUM 0:615f90842ce8 160
MACRUM 0:615f90842ce8 161 // extern volatile FlagStatus xRxDoneFlag, xTxDoneFlag;
MACRUM 0:615f90842ce8 162 // extern volatile FlagStatus PushButtonStatusWakeup;
MACRUM 0:615f90842ce8 163 extern uint16_t wakeupCounter;
MACRUM 0:615f90842ce8 164 extern uint16_t dataSendCounter ;
MACRUM 0:615f90842ce8 165 // extern volatile FlagStatus PushButtonStatusData, datasendFlag;
MACRUM 0:615f90842ce8 166
MACRUM 0:615f90842ce8 167 typedef struct
MACRUM 0:615f90842ce8 168 {
MACRUM 0:615f90842ce8 169 uint8_t Cmdtag;
MACRUM 0:615f90842ce8 170 uint8_t CmdType;
MACRUM 0:615f90842ce8 171 uint8_t CmdLen;
MACRUM 0:615f90842ce8 172 uint8_t Cmd;
MACRUM 0:615f90842ce8 173 uint8_t DataLen;
MACRUM 0:615f90842ce8 174 uint8_t* DataBuff;
MACRUM 0:615f90842ce8 175 }AppliFrame_t;
MACRUM 0:615f90842ce8 176
MACRUM 0:615f90842ce8 177 /*---------------------------------------------------------------------------*/
MACRUM 0:615f90842ce8 178 #endif /* __SPIRIT_H__ */
MACRUM 0:615f90842ce8 179 /*---------------------------------------------------------------------------*/