Test Commit

Dependencies:   sx126x

Committer:
lorgei
Date:
Sat Aug 22 00:35:04 2020 +0000
Revision:
2:72f1cb514754
Parent:
1:28d4b59feaf3
Test Commit

Who changed what in which revision?

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