Test Commit

Dependencies:   sx126x

Committer:
Wayne Roberts
Date:
Fri May 18 10:59:53 2018 -0700
Revision:
0:a64836ef007e
Child:
1:ce312fc7dd18
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wayne Roberts 0:a64836ef007e 1 #include "sx126x.h"
Wayne Roberts 0:a64836ef007e 2
Wayne Roberts 0:a64836ef007e 3 #ifdef TARGET_FF_ARDUINO /* pins of SX126xDVK1xAS board */
Wayne Roberts 0:a64836ef007e 4 SPI spi(D11, D12, D13); // mosi, miso, sclk
Wayne Roberts 0:a64836ef007e 5 // spi, nss, busy, dio1
Wayne Roberts 0:a64836ef007e 6 SX126x radio(spi, D7, D3, D5 );
Wayne Roberts 0:a64836ef007e 7 #define CHIP_TYPE_SX1262 0
Wayne Roberts 0:a64836ef007e 8 #define CHIP_TYPE_SX1261 1
Wayne Roberts 0:a64836ef007e 9 DigitalIn chipType(A2);
Wayne Roberts 0:a64836ef007e 10 AnalogIn xtalSel(A3);
Wayne Roberts 0:a64836ef007e 11 DigitalOut antswPower(D8);
Wayne Roberts 0:a64836ef007e 12 #endif /* TARGET_FF_ARDUINO */
Wayne Roberts 0:a64836ef007e 13
Wayne Roberts 0:a64836ef007e 14 /**********************************************************************/
Wayne Roberts 0:a64836ef007e 15 volatile bool txDone;
Wayne Roberts 0:a64836ef007e 16
Wayne Roberts 0:a64836ef007e 17 void txDone_callback()
Wayne Roberts 0:a64836ef007e 18 {
Wayne Roberts 0:a64836ef007e 19 txDone = true;
Wayne Roberts 0:a64836ef007e 20 }
Wayne Roberts 0:a64836ef007e 21
Wayne Roberts 0:a64836ef007e 22 int main()
Wayne Roberts 0:a64836ef007e 23 {
Wayne Roberts 0:a64836ef007e 24 uint8_t seq = 0;
Wayne Roberts 0:a64836ef007e 25
Wayne Roberts 0:a64836ef007e 26 printf("\r\nreset-tx ");
Wayne Roberts 0:a64836ef007e 27
Wayne Roberts 0:a64836ef007e 28 radio.setStandby(STBY_XOSC);
Wayne Roberts 0:a64836ef007e 29 radio.setPacketType(PACKET_TYPE_LORA);
Wayne Roberts 0:a64836ef007e 30 radio.setMHz(915.0);
Wayne Roberts 0:a64836ef007e 31
Wayne Roberts 0:a64836ef007e 32 {
Wayne Roberts 0:a64836ef007e 33 ModulationParams_t mp;
Wayne Roberts 0:a64836ef007e 34
Wayne Roberts 0:a64836ef007e 35 mp.lora.spreadingFactor = 7;
Wayne Roberts 0:a64836ef007e 36 mp.lora.bandwidth = LORA_BW_125;
Wayne Roberts 0:a64836ef007e 37 mp.lora.codingRate = LORA_CR_4_5;
Wayne Roberts 0:a64836ef007e 38 mp.lora.LowDatarateOptimize = 0;
Wayne Roberts 0:a64836ef007e 39
Wayne Roberts 0:a64836ef007e 40 radio.xfer(OPCODE_SET_MODULATION_PARAMS, 4, mp.buf);
Wayne Roberts 0:a64836ef007e 41 }
Wayne Roberts 0:a64836ef007e 42
Wayne Roberts 0:a64836ef007e 43 if (chipType == CHIP_TYPE_SX1262)
Wayne Roberts 0:a64836ef007e 44 radio.set_tx_dbm(true, 20);
Wayne Roberts 0:a64836ef007e 45 else
Wayne Roberts 0:a64836ef007e 46 radio.set_tx_dbm(false, 14);
Wayne Roberts 0:a64836ef007e 47
Wayne Roberts 0:a64836ef007e 48
Wayne Roberts 0:a64836ef007e 49 {
Wayne Roberts 0:a64836ef007e 50 PacketParams_t p;
Wayne Roberts 0:a64836ef007e 51
Wayne Roberts 0:a64836ef007e 52 p.lora.PreambleLengthHi = 0;
Wayne Roberts 0:a64836ef007e 53 p.lora.PreambleLengthLo = 8;
Wayne Roberts 0:a64836ef007e 54 p.lora.HeaderType = HEADER_TYPE_VARIABLE_LENGTH;
Wayne Roberts 0:a64836ef007e 55 /* constant payload length of one byte */
Wayne Roberts 0:a64836ef007e 56 p.lora.PayloadLength = 1;
Wayne Roberts 0:a64836ef007e 57 p.lora.CRCType = CRC_ON;
Wayne Roberts 0:a64836ef007e 58 p.lora.InvertIQ = STANDARD_IQ;
Wayne Roberts 0:a64836ef007e 59
Wayne Roberts 0:a64836ef007e 60 radio.xfer(OPCODE_SET_PACKET_PARAMS, 6, p.buf);
Wayne Roberts 0:a64836ef007e 61 }
Wayne Roberts 0:a64836ef007e 62
Wayne Roberts 0:a64836ef007e 63
Wayne Roberts 0:a64836ef007e 64 antswPower = 1;
Wayne Roberts 0:a64836ef007e 65 radio.SetDIO2AsRfSwitchCtrl(1);
Wayne Roberts 0:a64836ef007e 66
Wayne Roberts 0:a64836ef007e 67 radio.txDone = txDone_callback;
Wayne Roberts 0:a64836ef007e 68
Wayne Roberts 0:a64836ef007e 69 for (;;) {
Wayne Roberts 0:a64836ef007e 70 radio.tx_buf[0] = seq; /* set payload */
Wayne Roberts 0:a64836ef007e 71 txDone = false;
Wayne Roberts 0:a64836ef007e 72 radio.start_tx(1); /* begin transmission */
Wayne Roberts 0:a64836ef007e 73
Wayne Roberts 0:a64836ef007e 74 printf("sent\r\n");
Wayne Roberts 0:a64836ef007e 75 while (!txDone) {
Wayne Roberts 0:a64836ef007e 76 radio.service();
Wayne Roberts 0:a64836ef007e 77 }
Wayne Roberts 0:a64836ef007e 78
Wayne Roberts 0:a64836ef007e 79 printf("got-tx-done\r\n");
Wayne Roberts 0:a64836ef007e 80
Wayne Roberts 0:a64836ef007e 81 wait(0.5); /* throttle sending rate */
Wayne Roberts 0:a64836ef007e 82 seq++; /* change payload */
Wayne Roberts 0:a64836ef007e 83 }
Wayne Roberts 0:a64836ef007e 84 }
Wayne Roberts 0:a64836ef007e 85