operate LoRa radio over I2C

Dependencies:   TimeoutAbs lib_i2c_slave_block sx12xx_hal

radio chip selection

Radio chip driver is not included, allowing choice of radio device.
If you're using SX1272 or SX1276, then import sx127x driver into your program.
if you're using SX1261 or SX1262, then import sx126x driver into your program.
if you're using SX1280, then import sx1280 driver into your program.
If you're using NAmote72 or Murata discovery, then you must import only sx127x driver.

This project is used as slave device with i2c_lora_master on raspberry pi. This i2c_lora_slave offloads the real-time requirements onto microcontroller. Also permits multiple slave radio devices connected to master. Radio MAC layer exists on I2C master, along with application layer.

If beacon operation is enabled, I2C functions which access radio chip are blocked while beacon is loaded and transmitted.
See lib_i2c_slave_block for wiring connections.

Committer:
Wayne Roberts
Date:
Fri Feb 08 11:58:09 2019 -0800
Revision:
0:9eb5b8bf9f7b
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wayne Roberts 0:9eb5b8bf9f7b 1 #include <stdint.h>
Wayne Roberts 0:9eb5b8bf9f7b 2 #include "cmds.h"
Wayne Roberts 0:9eb5b8bf9f7b 3
Wayne Roberts 0:9eb5b8bf9f7b 4 const uint8_t cmd_to_length[] =
Wayne Roberts 0:9eb5b8bf9f7b 5 {
Wayne Roberts 0:9eb5b8bf9f7b 6 /* CMD_UNUSED */ 0,
Wayne Roberts 0:9eb5b8bf9f7b 7 /* CMD_TEST */ 3,
Wayne Roberts 0:9eb5b8bf9f7b 8 /* CMD_TEST32 */ 32,
Wayne Roberts 0:9eb5b8bf9f7b 9 /* CMD_BEACON_PAYLOAD */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 10 /* CMD_CFG */ sizeof(cfg_t),
Wayne Roberts 0:9eb5b8bf9f7b 11 /* CMD_IRQ */ sizeof(irq_t),
Wayne Roberts 0:9eb5b8bf9f7b 12 /* CMD_SKIP_BEACONS */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 13 /* CMD_CURRENT_SLOT */ 2,
Wayne Roberts 0:9eb5b8bf9f7b 14
Wayne Roberts 0:9eb5b8bf9f7b 15 /* CMD_FSK_MODEM_CFG_WRITE */ 10,
Wayne Roberts 0:9eb5b8bf9f7b 16 /* CMD_FSK_MODEM_CFG_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 17 /* CMD_FSK_PKT_CFG_WRITE */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 18 /* CMD_FSK_PKT_CFG_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 19 /* CMD_FSK_SYNC_WRITE */ 6,
Wayne Roberts 0:9eb5b8bf9f7b 20 /* CMD_FSK_SYNC_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 21 /* CMD_LORA_SYMBTO_WRITE */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 22 /* CMD_REQ_RANDOM */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 23 /* CMD_CFHZ_WRITE */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 24 /* CMD_CFHZ_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 25 /* CMD_TXDBM_WRITE */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 26 /* CMD_TXDBM_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 27 /* CMD_LORA_MODEM_CFG_WRITE */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 28 /* CMD_LORA_MODEM_CFG_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 29 /* CMD_RX_START */ 4,
Wayne Roberts 0:9eb5b8bf9f7b 30 /* CMD_LORA_PKT_CFG_WRITE */ 3,
Wayne Roberts 0:9eb5b8bf9f7b 31 /* CMD_LORA_PKT_CFG_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 32 /* CMD_BEACON_CFG_WRITE */ 6,
Wayne Roberts 0:9eb5b8bf9f7b 33 /* CMD_STANDBY */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 34 /* CMD_OPMODE_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 35 /* CMD_PUBLIC_NET */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 36 /* CMD_MAX_PAYLEN_WRITE */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 37 /* CMD_RX_PAYLOAD */ 32,
Wayne Roberts 0:9eb5b8bf9f7b 38 /* CMD_TX_BUF_START */ 32,
Wayne Roberts 0:9eb5b8bf9f7b 39 /* CMD_TX_BUF */ 32,
Wayne Roberts 0:9eb5b8bf9f7b 40 /* CMD_SEND */ 0,
Wayne Roberts 0:9eb5b8bf9f7b 41 /* CMD_RSSI_REQ */ 1,
Wayne Roberts 0:9eb5b8bf9f7b 42 /* CMD_RADIO_RESET */ 1
Wayne Roberts 0:9eb5b8bf9f7b 43 };