MAX20361 Demo with LoRa Module on LP1 mode

Dependencies:   SX1276GenericLib USBDevice

Fork of NonPingPong_PICO_LoRa_LP1 by Walter Luu

Committer:
walterluu
Date:
Mon Oct 12 21:55:22 2020 +0000
Revision:
3:85fc843a9d7d
Parent:
0:664d9df11a00
Child:
7:6264bc5b6421
MAX20361 Demo Firmware version 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
walterluu 3:85fc843a9d7d 1 #include "mbed.h"
walterluu 3:85fc843a9d7d 2 #include "PinMap.h"
walterluu 3:85fc843a9d7d 3 //#include "GenericPingPong2.h"
walterluu 3:85fc843a9d7d 4 //#include "support.h"
walterluu 3:85fc843a9d7d 5 #include "sx1276-mbed-hal.h"
walterluu 3:85fc843a9d7d 6 #include "global_buffers.h" //adding this for development
walterluu 3:85fc843a9d7d 7
walterluu 3:85fc843a9d7d 8 #define FEATURE_LORA
walterluu 3:85fc843a9d7d 9
walterluu 3:85fc843a9d7d 10
walterluu 3:85fc843a9d7d 11 #ifdef FEATURE_LORA // in main.cpp
walterluu 3:85fc843a9d7d 12
walterluu 3:85fc843a9d7d 13 /* Set this flag to '1' to display debug messages on the console */
walterluu 3:85fc843a9d7d 14 #define DEBUG_MESSAGE 1
walterluu 3:85fc843a9d7d 15
walterluu 3:85fc843a9d7d 16 /* Set this flag to '1' to use the LoRa modulation or to '0' to use FSK modulation */
walterluu 3:85fc843a9d7d 17 #define USE_MODEM_LORA 1
walterluu 3:85fc843a9d7d 18 #define USE_MODEM_FSK !USE_MODEM_LORA
walterluu 3:85fc843a9d7d 19 #define RF_FREQUENCY RF_FREQUENCY_915_0 // Hz
walterluu 3:85fc843a9d7d 20 #define TX_OUTPUT_POWER 14 // 14 dBm
walterluu 3:85fc843a9d7d 21
walterluu 3:85fc843a9d7d 22 #if USE_MODEM_LORA == 1
walterluu 3:85fc843a9d7d 23
walterluu 3:85fc843a9d7d 24 #define LORA_BANDWIDTH 125000 // LoRa default, details in SX1276::BandwidthMap
walterluu 3:85fc843a9d7d 25 #define LORA_SPREADING_FACTOR LORA_SF7
walterluu 3:85fc843a9d7d 26 #define LORA_CODINGRATE LORA_ERROR_CODING_RATE_4_5
walterluu 3:85fc843a9d7d 27
walterluu 3:85fc843a9d7d 28 #define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
walterluu 3:85fc843a9d7d 29 #define LORA_SYMBOL_TIMEOUT 5 // Symbols
walterluu 3:85fc843a9d7d 30 #define LORA_FIX_LENGTH_PAYLOAD_ON false
walterluu 3:85fc843a9d7d 31 #define LORA_FHSS_ENABLED false
walterluu 3:85fc843a9d7d 32 #define LORA_NB_SYMB_HOP 4
walterluu 3:85fc843a9d7d 33 #define LORA_IQ_INVERSION_ON false
walterluu 3:85fc843a9d7d 34 #define LORA_CRC_ENABLED true
walterluu 3:85fc843a9d7d 35
walterluu 3:85fc843a9d7d 36 #elif USE_MODEM_FSK == 1
walterluu 3:85fc843a9d7d 37
walterluu 3:85fc843a9d7d 38 #define FSK_FDEV 25000 // Hz
walterluu 3:85fc843a9d7d 39 #define FSK_DATARATE 19200 // bps
walterluu 3:85fc843a9d7d 40 #define FSK_BANDWIDTH 50000 // Hz
walterluu 3:85fc843a9d7d 41 #define FSK_AFC_BANDWIDTH 83333 // Hz
walterluu 3:85fc843a9d7d 42 #define FSK_PREAMBLE_LENGTH 5 // Same for Tx and Rx
walterluu 3:85fc843a9d7d 43 #define FSK_FIX_LENGTH_PAYLOAD_ON false
walterluu 3:85fc843a9d7d 44 #define FSK_CRC_ENABLED true
walterluu 3:85fc843a9d7d 45
walterluu 3:85fc843a9d7d 46 #else
walterluu 3:85fc843a9d7d 47 #error "Please define a modem in the compiler options."
walterluu 3:85fc843a9d7d 48 #endif
walterluu 3:85fc843a9d7d 49
walterluu 3:85fc843a9d7d 50
walterluu 3:85fc843a9d7d 51 #define RX_TIMEOUT_VALUE 3500 // in ms
walterluu 3:85fc843a9d7d 52
walterluu 3:85fc843a9d7d 53 #endif
walterluu 3:85fc843a9d7d 54
walterluu 3:85fc843a9d7d 55 /*
walterluu 3:85fc843a9d7d 56 * Global variables declarations
walterluu 3:85fc843a9d7d 57 */
walterluu 3:85fc843a9d7d 58 //typedef enum
walterluu 3:85fc843a9d7d 59 //{
walterluu 3:85fc843a9d7d 60 // LOWPOWER = 0,
walterluu 3:85fc843a9d7d 61 // IDLE,
walterluu 3:85fc843a9d7d 62 //
walterluu 3:85fc843a9d7d 63 // RX,
walterluu 3:85fc843a9d7d 64 // RX_TIMEOUT,
walterluu 3:85fc843a9d7d 65 // RX_ERROR,
walterluu 3:85fc843a9d7d 66 //
walterluu 3:85fc843a9d7d 67 // TX,
walterluu 3:85fc843a9d7d 68 // TX_TIMEOUT,
walterluu 3:85fc843a9d7d 69 //
walterluu 3:85fc843a9d7d 70 // CAD,
walterluu 3:85fc843a9d7d 71 // CAD_DONE
walterluu 3:85fc843a9d7d 72 //} AppStates_t;
walterluu 3:85fc843a9d7d 73
walterluu 3:85fc843a9d7d 74 //const uint8_t PingMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'I', 'N', 'G'};// "PING";
walterluu 3:85fc843a9d7d 75 //const uint8_t PongMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'O', 'N', 'G'};// "PONG";
walterluu 3:85fc843a9d7d 76
walterluu 3:85fc843a9d7d 77 extern void dump(const char *title, const void *data, int len, bool dwords = false);
walterluu 3:85fc843a9d7d 78 int SX1276PingPongSetup(uint8_t *BufferTxFromMain, uint8_t *BufferRxFromMain);