Test Commit

Dependencies:   sx126x

Committer:
lorgei
Date:
Thu Aug 20 23:47:07 2020 +0000
Revision:
2:5e2bc143df58
Parent:
1:ce312fc7dd18
Test Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wayne Roberts 1:ce312fc7dd18 1 #include "sx12xx.h"
Wayne Roberts 1:ce312fc7dd18 2
Wayne Roberts 1:ce312fc7dd18 3 DigitalOut myled(LED1);
Wayne Roberts 0:a64836ef007e 4
Wayne Roberts 0:a64836ef007e 5 #ifdef TARGET_FF_ARDUINO /* pins of SX126xDVK1xAS board */
Wayne Roberts 0:a64836ef007e 6 SPI spi(D11, D12, D13); // mosi, miso, sclk
Wayne Roberts 1:ce312fc7dd18 7 //spi, nss, busy, dio1
Wayne Roberts 1:ce312fc7dd18 8 SX126x radio(spi, D7, D3, D5);
Wayne Roberts 1:ce312fc7dd18 9
Wayne Roberts 0:a64836ef007e 10 #define CHIP_TYPE_SX1262 0
Wayne Roberts 0:a64836ef007e 11 #define CHIP_TYPE_SX1261 1
Wayne Roberts 0:a64836ef007e 12 DigitalIn chipType(A2);
Wayne Roberts 0:a64836ef007e 13 AnalogIn xtalSel(A3);
Wayne Roberts 0:a64836ef007e 14 DigitalOut antswPower(D8);
Wayne Roberts 0:a64836ef007e 15 #endif /* TARGET_FF_ARDUINO */
Wayne Roberts 0:a64836ef007e 16
Wayne Roberts 0:a64836ef007e 17 /**********************************************************************/
Wayne Roberts 1:ce312fc7dd18 18
Wayne Roberts 1:ce312fc7dd18 19 void rx_done(uint8_t size, float rssi, float snr)
Wayne Roberts 1:ce312fc7dd18 20 {
Wayne Roberts 1:ce312fc7dd18 21 unsigned i;
Wayne Roberts 0:a64836ef007e 22
Wayne Roberts 1:ce312fc7dd18 23 myled.write(!myled.read()); // toggle LED
Wayne Roberts 1:ce312fc7dd18 24
Wayne Roberts 1:ce312fc7dd18 25 printf("rssi:%.1fdBm, snr:%.1fdB ", rssi, snr);
Wayne Roberts 1:ce312fc7dd18 26 for (i = 0; i < size; i++) {
Wayne Roberts 1:ce312fc7dd18 27 printf("%02x ", radio.rx_buf[i]);
Wayne Roberts 1:ce312fc7dd18 28 }
Wayne Roberts 1:ce312fc7dd18 29 printf("\r\n");
Wayne Roberts 0:a64836ef007e 30 }
Wayne Roberts 0:a64836ef007e 31
Wayne Roberts 1:ce312fc7dd18 32
Wayne Roberts 0:a64836ef007e 33 int main()
Wayne Roberts 1:ce312fc7dd18 34 {
Wayne Roberts 1:ce312fc7dd18 35 printf("\r\nreset-rx\r\n");
Wayne Roberts 0:a64836ef007e 36
Wayne Roberts 0:a64836ef007e 37 radio.setStandby(STBY_XOSC);
Wayne Roberts 0:a64836ef007e 38 radio.setPacketType(PACKET_TYPE_LORA);
Wayne Roberts 0:a64836ef007e 39 radio.setMHz(915.0);
Wayne Roberts 0:a64836ef007e 40
Wayne Roberts 0:a64836ef007e 41 {
Wayne Roberts 0:a64836ef007e 42 ModulationParams_t mp;
Wayne Roberts 0:a64836ef007e 43
Wayne Roberts 0:a64836ef007e 44 mp.lora.spreadingFactor = 7;
Wayne Roberts 0:a64836ef007e 45 mp.lora.bandwidth = LORA_BW_125;
Wayne Roberts 0:a64836ef007e 46 mp.lora.codingRate = LORA_CR_4_5;
Wayne Roberts 0:a64836ef007e 47 mp.lora.LowDatarateOptimize = 0;
Wayne Roberts 0:a64836ef007e 48
Wayne Roberts 0:a64836ef007e 49 radio.xfer(OPCODE_SET_MODULATION_PARAMS, 4, mp.buf);
Wayne Roberts 0:a64836ef007e 50 }
Wayne Roberts 0:a64836ef007e 51
Wayne Roberts 0:a64836ef007e 52 {
Wayne Roberts 0:a64836ef007e 53 PacketParams_t p;
Wayne Roberts 0:a64836ef007e 54
Wayne Roberts 0:a64836ef007e 55 p.lora.PreambleLengthHi = 0;
Wayne Roberts 0:a64836ef007e 56 p.lora.PreambleLengthLo = 8;
Wayne Roberts 0:a64836ef007e 57 p.lora.HeaderType = HEADER_TYPE_VARIABLE_LENGTH;
Wayne Roberts 1:ce312fc7dd18 58 p.lora.PayloadLength = 0x40; // max limit in rx
Wayne Roberts 0:a64836ef007e 59 p.lora.CRCType = CRC_ON;
Wayne Roberts 0:a64836ef007e 60 p.lora.InvertIQ = STANDARD_IQ;
Wayne Roberts 0:a64836ef007e 61
Wayne Roberts 0:a64836ef007e 62 radio.xfer(OPCODE_SET_PACKET_PARAMS, 6, p.buf);
Wayne Roberts 0:a64836ef007e 63 }
Wayne Roberts 1:ce312fc7dd18 64
Wayne Roberts 0:a64836ef007e 65 antswPower = 1;
Wayne Roberts 0:a64836ef007e 66 radio.SetDIO2AsRfSwitchCtrl(1);
Wayne Roberts 1:ce312fc7dd18 67
Wayne Roberts 1:ce312fc7dd18 68 radio.rxDone = rx_done;
Wayne Roberts 1:ce312fc7dd18 69
Wayne Roberts 1:ce312fc7dd18 70 radio.start_rx(RX_TIMEOUT_CONTINUOUS);
Wayne Roberts 0:a64836ef007e 71
lorgei 2:5e2bc143df58 72 for (;;) {
lorgei 2:5e2bc143df58 73
lorgei 2:5e2bc143df58 74 // PacketParams_t p;
lorgei 2:5e2bc143df58 75
lorgei 2:5e2bc143df58 76 // p.lora.PreambleLengthHi = 0;
lorgei 2:5e2bc143df58 77 // p.lora.PreambleLengthLo = 8;
lorgei 2:5e2bc143df58 78 // p.lora.HeaderType = HEADER_TYPE_VARIABLE_LENGTH;
lorgei 2:5e2bc143df58 79 // p.lora.PayloadLength = 0x40; // max limit in rx
lorgei 2:5e2bc143df58 80 // p.lora.CRCType = CRC_ON;
lorgei 2:5e2bc143df58 81 // p.lora.InvertIQ = STANDARD_IQ;
lorgei 2:5e2bc143df58 82
lorgei 2:5e2bc143df58 83 // radio.xfer(OPCODE_SET_PACKET_PARAMS, 6, p.buf);
lorgei 2:5e2bc143df58 84
lorgei 2:5e2bc143df58 85
lorgei 2:5e2bc143df58 86
Wayne Roberts 1:ce312fc7dd18 87 radio.service();
lorgei 2:5e2bc143df58 88 uint8_t buf[2];
lorgei 2:5e2bc143df58 89 buf[0] = 0; // TX base address
lorgei 2:5e2bc143df58 90 buf[1] = 0; // RX base address
lorgei 2:5e2bc143df58 91 radio.xfer(OPCODE_SET_BUFFER_BASE_ADDR, 2, buf);
Wayne Roberts 0:a64836ef007e 92 }
Wayne Roberts 0:a64836ef007e 93 }