forked from xuos/xiuos
remove sx127x.h in app_match_nuttx/nuttx/include/nuttx/wireless/lpwan
This commit is contained in:
parent
e69319a1bb
commit
1c73eca6e3
|
@ -1,318 +0,0 @@
|
|||
/****************************************************************************
|
||||
* include/nuttx/wireless/lpwan/sx127x.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __INCLUDE_NUTTX_SX127X_H
|
||||
#define __INCLUDE_NUTTX_SX127X_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/wireless/ioctl.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Declarations
|
||||
****************************************************************************/
|
||||
|
||||
/* Constants to SX127X */
|
||||
|
||||
/* PA BOOST threshold power */
|
||||
|
||||
#define SX127X_PASELECT_POWER (14)
|
||||
|
||||
/* BAND3 (HF) -> 862(779) - 1020(960) MHz
|
||||
* BAND2 (LF) -> 410 - 525(480) MHz
|
||||
* BAND1 (LF) -> 137 - 175(160) MHz
|
||||
*/
|
||||
|
||||
#define SX127X_HFBAND_THR (525000000)
|
||||
|
||||
/* IOCTL commands ***********************************************************/
|
||||
|
||||
/* arg: Pointer to int */
|
||||
|
||||
#define SX127XIOC_RSSIGET _WLCIOC(SX127X_FIRST+0)
|
||||
|
||||
/* arg: Pointer to enum sx127x_modulation_e */
|
||||
|
||||
#define SX127XIOC_MODULATIONSET _WLCIOC(SX127X_FIRST+1)
|
||||
#define SX127XIOC_MODULATIONGET _WLCIOC(SX127X_FIRST+2)
|
||||
|
||||
/* arg: Pointer to enum sx127x_opmode_fskook_e */
|
||||
|
||||
#define SX127XIOC_OPMODESET _WLCIOC(SX127X_FIRST+3)
|
||||
#define SX127XIOC_OPMODEGET _WLCIOC(SX127X_FIRST+4)
|
||||
|
||||
/* arg: Pointer to struct sx127x_chanscan_ioc_s */
|
||||
|
||||
#define SX127XIOC_CHANSCAN _WLCIOC(SX127X_FIRST+5)
|
||||
|
||||
/* arg: Pointer to uint32_t */
|
||||
|
||||
#define SX127XIOC_PREAMBLESET _WLCIOC(SX127X_FIRST+6)
|
||||
#define SX127XIOC_PREAMBLEGET _WLCIOC(SX127X_FIRST+7)
|
||||
|
||||
/* arg: Pointer to struct sx127x_syncword_ioc_s */
|
||||
|
||||
#define SX127XIOC_SYNCWORDSET _WLCIOC(SX127X_FIRST+8)
|
||||
#define SX127XIOC_SYNCWORDGET _WLCIOC(SX127X_FIRST+9)
|
||||
|
||||
/* arg: Pointer to uint32_t */
|
||||
|
||||
#define SX127XIOC_RANDOMGET _WLCIOC(SX127X_FIRST+10)
|
||||
|
||||
/* TODO SX127X IOC:
|
||||
* - CRC ON/OFF
|
||||
* - FDEV
|
||||
* - RX_BW + AFC_BW
|
||||
* - BW for LORA
|
||||
* - SF for LORA
|
||||
* - CR for LORA
|
||||
* - FREQ HOPPING
|
||||
* - IMPLICIT HEADER for LORA
|
||||
*/
|
||||
|
||||
/* RX FIFO data *************************************************************/
|
||||
|
||||
#ifdef CONFIG_LPWAN_SX127X_RXSUPPORT
|
||||
# define SX127X_READ_DATA_HEADER_LEN (sizeof(struct sx127x_read_hdr_s) - \
|
||||
SX127X_READ_DATA_MAX)
|
||||
# define SX127X_READ_DATA_MAX (CONFIG_LPWAN_SX127X_RXFIFO_DATA_LEN)
|
||||
# define SX127X_RXFIFO_ITEM_SIZE (sizeof(struct sx127x_read_hdr_s))
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data Types
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_ADAPTER_LORA_SX1278
|
||||
/* Framework connect Lora data */
|
||||
|
||||
struct SX127xDataFormat
|
||||
{
|
||||
uint8_t flame_head;
|
||||
uint32_t length;
|
||||
uint16_t panid;
|
||||
uint8_t client_id;
|
||||
uint8_t gateway_id;
|
||||
uint8_t data_type;
|
||||
uint8_t data[128];
|
||||
uint16_t crc16;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LPWAN_SX127X_RXSUPPORT
|
||||
/* RX FIFO data */
|
||||
|
||||
struct sx127x_read_hdr_s
|
||||
{
|
||||
uint16_t datalen;
|
||||
int8_t snr;
|
||||
int16_t rssi;
|
||||
uint8_t reserved[3];
|
||||
#ifdef CONFIG_ADAPTER_LORA_SX1278
|
||||
struct SX127xDataFormat data;
|
||||
#else
|
||||
uint8_t data[SX127X_READ_DATA_MAX];
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Channel scan data */
|
||||
|
||||
struct sx127x_chanscan_ioc_s
|
||||
{
|
||||
uint32_t freq;
|
||||
int16_t rssi_thr;
|
||||
int16_t rssi_max;
|
||||
int16_t rssi_min;
|
||||
uint16_t stime;
|
||||
bool free;
|
||||
};
|
||||
|
||||
/* SyncWord data */
|
||||
|
||||
struct sx127x_syncword_ioc_s
|
||||
{
|
||||
uint8_t syncword[8];
|
||||
uint8_t len;
|
||||
};
|
||||
|
||||
/* Modulation types */
|
||||
|
||||
enum sx127x_modulation_e
|
||||
{
|
||||
SX127X_MODULATION_INVALID = 0, /* Initial state */
|
||||
SX127X_MODULATION_FSK = 1,
|
||||
SX127X_MODULATION_OOK = 2,
|
||||
SX127X_MODULATION_LORA = 3
|
||||
};
|
||||
|
||||
/* Operating modes */
|
||||
|
||||
enum sx127x_opmode_fskook_e
|
||||
{
|
||||
SX127X_OPMODE_INVALID = 0, /* Initial state */
|
||||
SX127X_OPMODE_SLEEP = 1,
|
||||
SX127X_OPMODE_STANDBY = 2,
|
||||
SX127X_OPMODE_FSTX = 3,
|
||||
SX127X_OPMODE_TX = 4,
|
||||
SX127X_OPMODE_FSRX = 5,
|
||||
SX127X_OPMODE_RX = 6, /* RXCONT for LORA */
|
||||
SX127X_OPMODE_RXSINGLE = 7, /* Only LORA */
|
||||
SX127X_OPMODE_CAD = 8, /* Only LORA */
|
||||
};
|
||||
|
||||
/* FSK bandwidth */
|
||||
|
||||
enum sx127x_fskook_bw_e
|
||||
{
|
||||
FSKOOK_BANDWIDTH_2P6KHZ = 0x17,
|
||||
FSKOOK_BANDWIDTH_3P1KHZ = 0x0f,
|
||||
FSKOOK_BANDWIDTH_3P9KHZ = 0x07,
|
||||
FSKOOK_BANDWIDTH_5P2KHZ = 0x16,
|
||||
FSKOOK_BANDWIDTH_6P3KHZ = 0x0e,
|
||||
FSKOOK_BANDWIDTH_7P8KHZ = 0x06,
|
||||
FSKOOK_BANDWIDTH_10P4KHZ = 0x15,
|
||||
FSKOOK_BANDWIDTH_12P5KHZ = 0x0d,
|
||||
FSKOOK_BANDWIDTH_15P6KHZ = 0x05,
|
||||
FSKOOK_BANDWIDTH_20P8KHZ = 0x14,
|
||||
FSKOOK_BANDWIDTH_25KHZ = 0x0c,
|
||||
FSKOOK_BANDWIDTH_31P3KHZ = 0x04,
|
||||
FSKOOK_BANDWIDTH_41P7KHZ = 0x13,
|
||||
FSKOOK_BANDWIDTH_50KHZ = 0x0b,
|
||||
FSKOOK_BANDWIDTH_62P5KHZ = 0x03,
|
||||
FSKOOK_BANDWIDTH_83P3KHZ = 0x12,
|
||||
FSKOOK_BANDWIDTH_100KHZ = 0x0a,
|
||||
FSKOOK_BANDWIDTH_125KHZ = 0x02,
|
||||
FSKOOK_BANDWIDTH_166P7KHZ = 0x11,
|
||||
FSKOOK_BANDWIDTH_200KHZ = 0x09,
|
||||
FSKOOK_BANDWIDTH_250KHZ = 0x01,
|
||||
|
||||
/* Other settings reserved */
|
||||
};
|
||||
|
||||
/* LORA bandwidth */
|
||||
|
||||
enum sx127x_lora_bw_e
|
||||
{
|
||||
LORA_BANDWIDTH_7P8KHZ = 0,
|
||||
LORA_BANDWIDTH_10P4KHZ = 1,
|
||||
LORA_BANDWIDTH_15P6KHZ = 2,
|
||||
LORA_BANDWIDTH_20P8KHZ = 3,
|
||||
LORA_BANDWIDTH_31P2KHZ = 4,
|
||||
LORA_BANDWIDTH_41P4KHZ = 5,
|
||||
LORA_BANDWIDTH_62P5KHZ = 6,
|
||||
LORA_BANDWIDTH_125KHZ = 7,
|
||||
LORA_BANDWIDTH_250KHZ = 9
|
||||
};
|
||||
|
||||
/* LORA SF */
|
||||
|
||||
enum sx127x_lora_sf_e
|
||||
{
|
||||
LORA_SF_6 = 6,
|
||||
LORA_SF_7 = 7,
|
||||
LORA_SF_8 = 8,
|
||||
LORA_SF_9 = 9,
|
||||
LORA_SF_10 = 10,
|
||||
LORA_SF_11 = 11,
|
||||
LORA_SF_12 = 12
|
||||
};
|
||||
|
||||
/* LORA coding rate */
|
||||
|
||||
enum sx127x_lora_cr_e
|
||||
{
|
||||
LORA_CR_4d5 = 1,
|
||||
LORA_CR_4d6 = 2,
|
||||
LORA_CR_4d7 = 3,
|
||||
LORA_CR_4d8 = 4
|
||||
};
|
||||
|
||||
/* Board-specific operations and configuration */
|
||||
|
||||
struct sx127x_lower_s
|
||||
{
|
||||
/* Attach DIO0 interrupt - RXREADY/TXREADY/CADREADY */
|
||||
|
||||
CODE int (*irq0attach)(xcpt_t handler, FAR void *arg);
|
||||
|
||||
#ifdef CONFIG_LPWAN_SX127X_DIO1
|
||||
/* Not supported: Attach DIO1 interrupt */
|
||||
|
||||
CODE int (*irq1attach)(xcpt_t handler, FAR void *arg);
|
||||
#endif
|
||||
#ifdef CONFIG_LPWAN_SX127X_DIO2
|
||||
/* Not supported: Attach DIO2 interrupt */
|
||||
|
||||
CODE int (*irq2attach)(xcpt_t handler, FAR void *arg);
|
||||
#endif
|
||||
#ifdef CONFIG_LPWAN_SX127X_DIO3
|
||||
/* Not supported: Attach DIO3 interrupt */
|
||||
|
||||
CODE int (*irq3attach)(xcpt_t handler, FAR void *arg);
|
||||
#endif
|
||||
#ifdef CONFIG_LPWAN_SX127X_DIO4
|
||||
/* Not supported: Attach DIO4 interrupt */
|
||||
|
||||
CODE int (*irq4attach)(xcpt_t handler, FAR void *arg);
|
||||
#endif
|
||||
#ifdef CONFIG_LPWAN_SX127X_DIO5
|
||||
/* Not supported: Attach DIO5 interrupt */
|
||||
|
||||
CODE int (*irq5attach)(xcpt_t handler, FAR void *arg);
|
||||
#endif
|
||||
|
||||
/* Reset radio module */
|
||||
|
||||
CODE void (*reset)(void);
|
||||
|
||||
/* Change radio operation mode */
|
||||
|
||||
CODE int (*opmode_change)(int opmode);
|
||||
|
||||
/* Change radio frequency */
|
||||
|
||||
CODE int (*freq_select)(uint32_t freq);
|
||||
|
||||
/* Set PA BOOST output */
|
||||
|
||||
CODE int (*pa_select)(bool enable);
|
||||
|
||||
/* Force PA BOOST output */
|
||||
|
||||
bool pa_force;
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
int sx127x_register(FAR struct spi_dev_s *spi,
|
||||
FAR const struct sx127x_lower_s *lower);
|
||||
|
||||
#endif /* __INCLUDE_NUTTX_SX127X_H */
|
Loading…
Reference in New Issue