Lora support for the STM B_L072Z_LRWAN1 board out of the box. Also supports HopeRF RFM95, Murata CMWX1ZZABZ and Semtech SX1276MB1MAS/SX1276MB1LAS modules.

Dependencies:   BufferedSerial SX1276GenericLib mbed USBDeviceHT

Committer:
Helmut64
Date:
Sun Jun 03 19:25:37 2018 +0000
Revision:
20:a1029437adca
Parent:
19:992eda680d91
When USB is active we keep a Timer running to avoid deepsleep.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:c43b6919ae15 1 /*
Helmut64 17:98f2528e8399 2 * Copyright (c) 2018 Helmut Tschemernjak
Helmut64 0:c43b6919ae15 3 * 30826 Garbsen (Hannover) Germany
Helmut64 0:c43b6919ae15 4 * Licensed under the Apache License, Version 2.0);
Helmut64 0:c43b6919ae15 5 */
Helmut64 0:c43b6919ae15 6
Helmut64 0:c43b6919ae15 7
Helmut64 0:c43b6919ae15 8
Helmut64 0:c43b6919ae15 9 #ifdef TARGET_NUCLEO_L476RG
Helmut64 16:675f4d0ee9e9 10 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 11
Helmut64 9:2f9e4be4d046 12 #elif TARGET_DISCO_L072CZ_LRWAN1
Helmut64 16:675f4d0ee9e9 13 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 14
Helmut64 16:675f4d0ee9e9 15 #elif TARGET_STM32L432KC
Helmut64 16:675f4d0ee9e9 16 #define HELTEC_STM32L4
Helmut64 16:675f4d0ee9e9 17 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 18 #define FEATURE_USBSERIAL
Helmut64 0:c43b6919ae15 19 #endif
Helmut64 0:c43b6919ae15 20
Helmut64 0:c43b6919ae15 21
Helmut64 0:c43b6919ae15 22
Helmut64 13:5a32a1922fbc 23 #if defined(TARGET_DISCO_L072CZ_LRWAN1)
Helmut64 17:98f2528e8399 24 #define LED LED2
Helmut64 0:c43b6919ae15 25
Helmut64 0:c43b6919ae15 26 #define LORA_SPI_MOSI PA_7
Helmut64 0:c43b6919ae15 27 #define LORA_SPI_MISO PA_6
Helmut64 0:c43b6919ae15 28 #define LORA_SPI_SCLK PB_3
Helmut64 0:c43b6919ae15 29 #define LORA_CS PA_15
Helmut64 0:c43b6919ae15 30 #define LORA_RESET PC_0
Helmut64 0:c43b6919ae15 31 #define LORA_DIO0 PB_4
Helmut64 0:c43b6919ae15 32 #define LORA_DIO1 PB_1
Helmut64 0:c43b6919ae15 33 #define LORA_DIO2 PB_0
Helmut64 13:5a32a1922fbc 34 #define LORA_DIO3 PC_13
Helmut64 0:c43b6919ae15 35 #define LORA_DIO4 PA_5
Helmut64 0:c43b6919ae15 36 #define LORA_DIO5 PA_4
Helmut64 0:c43b6919ae15 37 #define LORA_ANT_RX PA_1
Helmut64 0:c43b6919ae15 38 #define LORA_ANT_TX PC_2
Helmut64 0:c43b6919ae15 39 #define LORA_ANT_BOOST PC_1
Helmut64 0:c43b6919ae15 40 #define LORA_TCXO PA_12 // 32 MHz
Helmut64 0:c43b6919ae15 41
Helmut64 0:c43b6919ae15 42
Helmut64 0:c43b6919ae15 43
Helmut64 0:c43b6919ae15 44 #elif defined(TARGET_NUCLEO_L476RG) // using the RFM95 board
Helmut64 0:c43b6919ae15 45
Helmut64 0:c43b6919ae15 46 #define LORA_SPI_MOSI PC_12
Helmut64 0:c43b6919ae15 47 #define LORA_SPI_MISO PC_11
Helmut64 0:c43b6919ae15 48 #define LORA_SPI_SCLK PC_10
Helmut64 0:c43b6919ae15 49 #define LORA_CS PA_0
Helmut64 0:c43b6919ae15 50 #define LORA_RESET PA_1
Helmut64 0:c43b6919ae15 51 #define LORA_DIO0 PD_2 // DIO0=TxDone/RXDone
Helmut64 0:c43b6919ae15 52 #define LORA_DIO1 PB_7 //
Helmut64 0:c43b6919ae15 53 #define LORA_DIO2 PC_14 // DIO2=FhssChangeChannel
Helmut64 0:c43b6919ae15 54 #define LORA_DIO3 PC_15 // DIO3=CADDone
Helmut64 0:c43b6919ae15 55 #define LORA_DIO4 PH_0 // ????
Helmut64 0:c43b6919ae15 56 #define LORA_DIO5 NC // unused?
Helmut64 0:c43b6919ae15 57
Helmut64 16:675f4d0ee9e9 58 #elif defined (HELTEC_STM32L4)
Helmut64 16:675f4d0ee9e9 59
Helmut64 17:98f2528e8399 60 #define USER_BUTTON PH_3 // boot pin
Helmut64 19:992eda680d91 61 #define LED PB_1 // green
Helmut64 18:d5527ce82e6b 62 #define LED1 LED
Helmut64 19:992eda680d91 63 #define LED2 PB_0 // red
Helmut64 17:98f2528e8399 64
Helmut64 16:675f4d0ee9e9 65 #define POWER_VEXT PA_3
Helmut64 16:675f4d0ee9e9 66 #define POWER_VEXT_ON 0
Helmut64 16:675f4d0ee9e9 67 #define POWER_VEXT_OFF 1
Helmut64 16:675f4d0ee9e9 68
Helmut64 17:98f2528e8399 69
Helmut64 16:675f4d0ee9e9 70 #define LORA_SPI_MOSI PA_7
Helmut64 16:675f4d0ee9e9 71 #define LORA_SPI_MISO PA_6
Helmut64 18:d5527ce82e6b 72 #define LORA_SPI_SCLK PA_5
Helmut64 16:675f4d0ee9e9 73 #define LORA_CS PA_4
Helmut64 16:675f4d0ee9e9 74 #define LORA_RESET PA_1
Helmut64 16:675f4d0ee9e9 75 #define LORA_DIO0 PA_0 // DIO0=TxDone/RXDone/CADDone
Helmut64 16:675f4d0ee9e9 76 #define LORA_DIO1 NC //
Helmut64 16:675f4d0ee9e9 77 #define LORA_DIO2 NC //
Helmut64 16:675f4d0ee9e9 78 #define LORA_DIO3 NC //
Helmut64 16:675f4d0ee9e9 79 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 80 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 81
Helmut64 15:c70f65d606c4 82 #elif defined(TARGET_NUCLEO_L432KC) // using the RFM95 board
Helmut64 15:c70f65d606c4 83
Helmut64 17:98f2528e8399 84 // #define LED PB_3 // green
Helmut64 17:98f2528e8399 85 #define LED PB_5 // green
Helmut64 15:c70f65d606c4 86
Helmut64 17:98f2528e8399 87 #define LORA_SPI_MOSI PA_7
Helmut64 17:98f2528e8399 88 #define LORA_SPI_MISO PA_6
Helmut64 17:98f2528e8399 89 #define LORA_SPI_SCLK PB_5
Helmut64 17:98f2528e8399 90 #define LORA_CS PA_4
Helmut64 15:c70f65d606c4 91 #define LORA_RESET PA_1
Helmut64 17:98f2528e8399 92 #define LORA_DIO0 PA_0 // DIO0=TxDone/RXDone/CADDone
Helmut64 15:c70f65d606c4 93 #define LORA_DIO1 NC //
Helmut64 15:c70f65d606c4 94 #define LORA_DIO2 NC //
Helmut64 15:c70f65d606c4 95 #define LORA_DIO3 NC //
Helmut64 15:c70f65d606c4 96 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 97 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 98
Helmut64 17:98f2528e8399 99
Helmut64 16:675f4d0ee9e9 100 #else
Helmut64 16:675f4d0ee9e9 101
Helmut64 16:675f4d0ee9e9 102 #error "unknown board"
Helmut64 16:675f4d0ee9e9 103
Helmut64 0:c43b6919ae15 104 #endif