Test Commit

Dependencies:   sx126x

Committer:
lorgei
Date:
Thu Aug 20 23:51:54 2020 +0000
Revision:
4:754731cf2f66
Parent:
3:e28fe0f0c51e
Test Commit

Who changed what in which revision?

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