simple typeABZ test with continuous carrier option

Dependencies:   SX127x LPS22HB sx12xx_hal

Committer:
Wayne Roberts
Date:
Wed Feb 20 13:04:57 2019 -0800
Revision:
0:77fa30d1c6b5
Child:
1:48040edc5d0f
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wayne Roberts 0:77fa30d1c6b5 1 #include "radio.h"
Wayne Roberts 0:77fa30d1c6b5 2 #include "LPS22HBSensor.h"
Wayne Roberts 0:77fa30d1c6b5 3
Wayne Roberts 0:77fa30d1c6b5 4 #define BW_KHZ 125
Wayne Roberts 0:77fa30d1c6b5 5 #define SPREADING_FACTOR 7
Wayne Roberts 0:77fa30d1c6b5 6 #define CF_HZ 915000000
Wayne Roberts 0:77fa30d1c6b5 7 #define TX_DBM 20
Wayne Roberts 0:77fa30d1c6b5 8
Wayne Roberts 0:77fa30d1c6b5 9 /*
Wayne Roberts 0:77fa30d1c6b5 10 DevI2C devI2c(I2C_SDA, I2C_SCL);
Wayne Roberts 0:77fa30d1c6b5 11 LPS22HBSensor press_temp(&devI2c);
Wayne Roberts 0:77fa30d1c6b5 12 */
Wayne Roberts 0:77fa30d1c6b5 13 AnalogIn pa0(PA_0);
Wayne Roberts 0:77fa30d1c6b5 14 DigitalIn test_in_pin(PB_5, PullDown);
Wayne Roberts 0:77fa30d1c6b5 15 DigitalOut ext_led(PB_2);
Wayne Roberts 0:77fa30d1c6b5 16 #define EXT_LED_ON 0
Wayne Roberts 0:77fa30d1c6b5 17 #define EXT_LED_OFF 1
Wayne Roberts 0:77fa30d1c6b5 18
Wayne Roberts 0:77fa30d1c6b5 19
Wayne Roberts 0:77fa30d1c6b5 20 /**********************************************************************/
Wayne Roberts 0:77fa30d1c6b5 21 volatile bool txDone;
Wayne Roberts 0:77fa30d1c6b5 22
Wayne Roberts 0:77fa30d1c6b5 23 void txDoneCB()
Wayne Roberts 0:77fa30d1c6b5 24 {
Wayne Roberts 0:77fa30d1c6b5 25 txDone = true;
Wayne Roberts 0:77fa30d1c6b5 26 }
Wayne Roberts 0:77fa30d1c6b5 27
Wayne Roberts 0:77fa30d1c6b5 28 void rxDoneCB(uint8_t size, float rssi, float snr)
Wayne Roberts 0:77fa30d1c6b5 29 {
Wayne Roberts 0:77fa30d1c6b5 30 }
Wayne Roberts 0:77fa30d1c6b5 31
Wayne Roberts 0:77fa30d1c6b5 32 const RadioEvents_t rev = {
Wayne Roberts 0:77fa30d1c6b5 33 /* Dio0_top_half */ NULL,
Wayne Roberts 0:77fa30d1c6b5 34 /* TxDone_topHalf */ NULL,
Wayne Roberts 0:77fa30d1c6b5 35 /* TxDone_botHalf */ txDoneCB,
Wayne Roberts 0:77fa30d1c6b5 36 /* TxTimeout */ NULL,
Wayne Roberts 0:77fa30d1c6b5 37 /* RxDone */ rxDoneCB,
Wayne Roberts 0:77fa30d1c6b5 38 /* RxTimeout */ NULL,
Wayne Roberts 0:77fa30d1c6b5 39 /* RxError */ NULL,
Wayne Roberts 0:77fa30d1c6b5 40 /* FhssChangeChannel */NULL,
Wayne Roberts 0:77fa30d1c6b5 41 /* CadDone */ NULL
Wayne Roberts 0:77fa30d1c6b5 42 };
Wayne Roberts 0:77fa30d1c6b5 43
Wayne Roberts 0:77fa30d1c6b5 44 int main()
Wayne Roberts 0:77fa30d1c6b5 45 {
Wayne Roberts 0:77fa30d1c6b5 46 printf("\r\nreset-tx ");
Wayne Roberts 0:77fa30d1c6b5 47
Wayne Roberts 0:77fa30d1c6b5 48 Radio::Init(&rev);
Wayne Roberts 0:77fa30d1c6b5 49
Wayne Roberts 0:77fa30d1c6b5 50 Radio::Standby();
Wayne Roberts 0:77fa30d1c6b5 51 Radio::LoRaModemConfig(BW_KHZ, SPREADING_FACTOR, 1);
Wayne Roberts 0:77fa30d1c6b5 52 Radio::SetChannel(CF_HZ);
Wayne Roberts 0:77fa30d1c6b5 53
Wayne Roberts 0:77fa30d1c6b5 54 Radio::set_tx_dbm(TX_DBM);
Wayne Roberts 0:77fa30d1c6b5 55
Wayne Roberts 0:77fa30d1c6b5 56 // preambleLen, fixLen, crcOn, invIQ
Wayne Roberts 0:77fa30d1c6b5 57 Radio::LoRaPacketConfig(8, false, true, false);
Wayne Roberts 0:77fa30d1c6b5 58
Wayne Roberts 0:77fa30d1c6b5 59 for (;;) {
Wayne Roberts 0:77fa30d1c6b5 60
Wayne Roberts 0:77fa30d1c6b5 61 uint16_t samp = pa0.read_u16();
Wayne Roberts 0:77fa30d1c6b5 62 if (test_in_pin) {
Wayne Roberts 0:77fa30d1c6b5 63 ext_led = EXT_LED_ON;
Wayne Roberts 0:77fa30d1c6b5 64 printf("continuous-tx\r\n");
Wayne Roberts 0:77fa30d1c6b5 65 #ifdef SX127x_H
Wayne Roberts 0:77fa30d1c6b5 66 Radio::radio.set_opmode(RF_OPMODE_SLEEP);
Wayne Roberts 0:77fa30d1c6b5 67 Radio::fsk.enable(false);
Wayne Roberts 0:77fa30d1c6b5 68 Radio::radio.write_u16(REG_FSK_FDEVMSB, 0);
Wayne Roberts 0:77fa30d1c6b5 69 Radio::radio.write_u16(REG_FSK_PREAMBLEMSB, 0xffff);
Wayne Roberts 0:77fa30d1c6b5 70 Radio::fsk.start_tx(8);
Wayne Roberts 0:77fa30d1c6b5 71 #else
Wayne Roberts 0:77fa30d1c6b5 72 #error tx_carrier
Wayne Roberts 0:77fa30d1c6b5 73 #endif /* SX127x_H*/
Wayne Roberts 0:77fa30d1c6b5 74 }
Wayne Roberts 0:77fa30d1c6b5 75
Wayne Roberts 0:77fa30d1c6b5 76 ext_led = EXT_LED_ON;
Wayne Roberts 0:77fa30d1c6b5 77 Radio::radio.tx_buf[0] = samp;
Wayne Roberts 0:77fa30d1c6b5 78 samp >>= 8;
Wayne Roberts 0:77fa30d1c6b5 79 Radio::radio.tx_buf[1] = samp;
Wayne Roberts 0:77fa30d1c6b5 80 txDone = false;
Wayne Roberts 0:77fa30d1c6b5 81 Radio::Send(2, 0, 0, 0); /* begin transmission */
Wayne Roberts 0:77fa30d1c6b5 82
Wayne Roberts 0:77fa30d1c6b5 83 printf("Sent %04x\r\n", samp);
Wayne Roberts 0:77fa30d1c6b5 84 while (!txDone) {
Wayne Roberts 0:77fa30d1c6b5 85 Radio::service();
Wayne Roberts 0:77fa30d1c6b5 86 }
Wayne Roberts 0:77fa30d1c6b5 87 printf("got-tx-done\r\n");
Wayne Roberts 0:77fa30d1c6b5 88 ext_led = EXT_LED_OFF;
Wayne Roberts 0:77fa30d1c6b5 89
Wayne Roberts 0:77fa30d1c6b5 90 wait(1.0); /* throttle sending rate */
Wayne Roberts 0:77fa30d1c6b5 91 }
Wayne Roberts 0:77fa30d1c6b5 92 }
Wayne Roberts 0:77fa30d1c6b5 93