MAX20361 Demo with LoRa Module on LP1 mode
Dependencies: SX1276GenericLib USBDevice
Fork of NonPingPong_PICO_LoRa_LP1 by
main.h@3:85fc843a9d7d, 2020-10-12 (annotated)
- 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?
User | Revision | Line number | New 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); |