Test Commit

Dependencies:   sx126x

Committer:
Wayne Roberts
Date:
Tue May 22 14:27:12 2018 -0700
Revision:
1:ce312fc7dd18
Parent:
0:a64836ef007e
Child:
2:5e2bc143df58
replace main.cpp with RX example

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
Wayne Roberts 1:ce312fc7dd18 72 for (;;) {
Wayne Roberts 1:ce312fc7dd18 73 radio.service();
Wayne Roberts 0:a64836ef007e 74 }
Wayne Roberts 0:a64836ef007e 75 }