Initial Commit

Dependencies:   SX127x sx12xx_hal

Committer:
LoRaToolbox
Date:
Thu Mar 21 08:51:01 2019 +0000
Revision:
1:8cd5f8492271
Parent:
0:f843ca4a8e98
Include updated comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
LoRaToolbox 0:f843ca4a8e98 1 #include "radio.h"
LoRaToolbox 0:f843ca4a8e98 2
LoRaToolbox 1:8cd5f8492271 3 // Semtech radio definitions for SX127x, SX126x and SX128x
LoRaToolbox 1:8cd5f8492271 4
LoRaToolbox 0:f843ca4a8e98 5 #if defined(SX127x_H)
LoRaToolbox 0:f843ca4a8e98 6 #define BW_KHZ 500
LoRaToolbox 1:8cd5f8492271 7 #define SPREADING_FACTOR 11
LoRaToolbox 1:8cd5f8492271 8 #define CF_HZ 912000000
LoRaToolbox 0:f843ca4a8e98 9 #elif defined(SX126x_H)
LoRaToolbox 0:f843ca4a8e98 10 #define BW_KHZ 500
LoRaToolbox 0:f843ca4a8e98 11 #define SPREADING_FACTOR 10
LoRaToolbox 0:f843ca4a8e98 12 #define CF_HZ 913000000
LoRaToolbox 0:f843ca4a8e98 13 #elif defined(SX128x_H)
LoRaToolbox 0:f843ca4a8e98 14 #define BW_KHZ 200
LoRaToolbox 0:f843ca4a8e98 15 #define SPREADING_FACTOR 7
LoRaToolbox 0:f843ca4a8e98 16 #define CF_HZ 2487000000
LoRaToolbox 0:f843ca4a8e98 17 #endif
LoRaToolbox 0:f843ca4a8e98 18
LoRaToolbox 0:f843ca4a8e98 19 DigitalOut myled(LED1);
LoRaToolbox 0:f843ca4a8e98 20
LoRaToolbox 0:f843ca4a8e98 21 /**********************************************************************/
LoRaToolbox 0:f843ca4a8e98 22
LoRaToolbox 0:f843ca4a8e98 23 void txDoneCB()
LoRaToolbox 0:f843ca4a8e98 24 {
LoRaToolbox 0:f843ca4a8e98 25 }
LoRaToolbox 0:f843ca4a8e98 26
LoRaToolbox 0:f843ca4a8e98 27 void rxDoneCB(uint8_t size, float rssi, float snr)
LoRaToolbox 0:f843ca4a8e98 28 {
LoRaToolbox 0:f843ca4a8e98 29 unsigned i;
LoRaToolbox 0:f843ca4a8e98 30 printf("%.1fdBm snr:%.1fdB\t", rssi, snr);
LoRaToolbox 0:f843ca4a8e98 31
LoRaToolbox 0:f843ca4a8e98 32 myled.write(!myled.read()); // toggle LED
LoRaToolbox 0:f843ca4a8e98 33
LoRaToolbox 1:8cd5f8492271 34 // Display payload packet information
LoRaToolbox 1:8cd5f8492271 35
LoRaToolbox 0:f843ca4a8e98 36 for (i = 0; i < size; i++) {
LoRaToolbox 0:f843ca4a8e98 37 printf("%02d ", Radio::radio.rx_buf[i]); // Changed to "%02d \n"
LoRaToolbox 0:f843ca4a8e98 38 }
LoRaToolbox 0:f843ca4a8e98 39 printf("\r\n\n");
LoRaToolbox 0:f843ca4a8e98 40 }
LoRaToolbox 0:f843ca4a8e98 41
LoRaToolbox 0:f843ca4a8e98 42 const RadioEvents_t rev = {
LoRaToolbox 0:f843ca4a8e98 43 /* Dio0_top_half */ NULL,
LoRaToolbox 0:f843ca4a8e98 44 /* TxDone_topHalf */ NULL,
LoRaToolbox 0:f843ca4a8e98 45 /* TxDone_botHalf */ txDoneCB,
LoRaToolbox 0:f843ca4a8e98 46 /* TxTimeout */ NULL,
LoRaToolbox 0:f843ca4a8e98 47 /* RxDone */ rxDoneCB,
LoRaToolbox 0:f843ca4a8e98 48 /* RxTimeout */ NULL,
LoRaToolbox 0:f843ca4a8e98 49 /* RxError */ NULL,
LoRaToolbox 0:f843ca4a8e98 50 /* FhssChangeChannel */NULL,
LoRaToolbox 0:f843ca4a8e98 51 /* CadDone */ NULL
LoRaToolbox 0:f843ca4a8e98 52 };
LoRaToolbox 0:f843ca4a8e98 53
LoRaToolbox 0:f843ca4a8e98 54 int main()
LoRaToolbox 0:f843ca4a8e98 55 {
LoRaToolbox 1:8cd5f8492271 56
LoRaToolbox 1:8cd5f8492271 57 // POR & Reset debug message
LoRaToolbox 1:8cd5f8492271 58
LoRaToolbox 0:f843ca4a8e98 59 printf("\r\nreset-rx\r\n");
LoRaToolbox 0:f843ca4a8e98 60
LoRaToolbox 0:f843ca4a8e98 61 Radio::Init(&rev);
LoRaToolbox 0:f843ca4a8e98 62
LoRaToolbox 1:8cd5f8492271 63 // Radio Start
LoRaToolbox 1:8cd5f8492271 64
LoRaToolbox 0:f843ca4a8e98 65 Radio::Standby();
LoRaToolbox 0:f843ca4a8e98 66 Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1);
LoRaToolbox 0:f843ca4a8e98 67 Radio::SetChannel(CF_HZ);
LoRaToolbox 0:f843ca4a8e98 68
LoRaToolbox 1:8cd5f8492271 69 // preambleLen, fixLen, crcOn, invIQ
LoRaToolbox 1:8cd5f8492271 70
LoRaToolbox 0:f843ca4a8e98 71 Radio::LoRaPacketConfig(8, false, true, false);
LoRaToolbox 1:8cd5f8492271 72
LoRaToolbox 1:8cd5f8492271 73 // Start radio receiver, wait for packets from transmitter
LoRaToolbox 0:f843ca4a8e98 74
LoRaToolbox 0:f843ca4a8e98 75 Radio::Rx(0);
LoRaToolbox 0:f843ca4a8e98 76
LoRaToolbox 0:f843ca4a8e98 77 for (;;) {
LoRaToolbox 0:f843ca4a8e98 78 Radio::service();
LoRaToolbox 0:f843ca4a8e98 79 }
LoRaToolbox 0:f843ca4a8e98 80 }